WO2024108493A1 - Virtual and real combined dynamic traffic scheduling method and apparatus based on sdn and ndn - Google Patents

Virtual and real combined dynamic traffic scheduling method and apparatus based on sdn and ndn Download PDF

Info

Publication number
WO2024108493A1
WO2024108493A1 PCT/CN2022/134100 CN2022134100W WO2024108493A1 WO 2024108493 A1 WO2024108493 A1 WO 2024108493A1 CN 2022134100 W CN2022134100 W CN 2022134100W WO 2024108493 A1 WO2024108493 A1 WO 2024108493A1
Authority
WO
WIPO (PCT)
Prior art keywords
ndn
data packet
virtual
packet
producer
Prior art date
Application number
PCT/CN2022/134100
Other languages
French (fr)
Chinese (zh)
Inventor
葛俊成
闫林林
邹涛
徐琪
骆汉光
张汝云
Original Assignee
之江实验室
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 之江实验室 filed Critical 之江实验室
Priority to PCT/CN2022/134100 priority Critical patent/WO2024108493A1/en
Publication of WO2024108493A1 publication Critical patent/WO2024108493A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Definitions

  • the present invention belongs to the fields of computer network technology and mobile communication technology, and in particular to a virtual-real combined dynamic traffic scheduling method and device based on SDN (Software-Defined Networking) and NDN (Named Data Networking).
  • SDN Software-Defined Networking
  • NDN Named Data Networking
  • control plane and forwarding plane are integrated into one piece of hardware and run.
  • the control plane which is the brain of data forwarding, is distributed to each network node, making it difficult to control the entire network.
  • SDN decouples the control management plane from the data forwarding plane.
  • the network is centrally managed by the control layer without relying on the underlying network devices. It has three major features: “separation of control and forwarding", “virtualization of device resources” and “universal hardware and software programmability”.
  • IP networks are mainly used as communication networks to transmit data packets point-to-point. With the rapid growth of e-commerce, digital media, social networks and smartphone applications, distributed networks are more common than communication networks. Point-to-point communication protocols are complex and error-prone to solve distributed problems.
  • NDN Named Data Networking proposes an evolution of the IP architecture, which has two types of data packets: interest packets and data packets. Its natural support for caching and multicasting can be widely used in scenarios such as video streaming, real-time conferencing, and in-vehicle networks. The consumer puts the content name of the required data block in an interest packet and forwards it to the network.
  • the interest packet reaches the node with the requested data, it returns a data packet containing the content name and content, as well as a signature bound by the producer's secret key.
  • the forwarding of interest packets and data packets depends on three tables: PIT table (Pending Interest Table, request interest table), FIB table (Forwarding Information Base, forwarding information table), and CS table (Content Store, content storage table).
  • PIT table stores the content name and input port of the interest packet that has been forwarded but has not yet received the data packet.
  • the NDN router will check the matching data in the CS table. If it exists, the router will forward the data packet according to all the port numbers corresponding to the PIT table.
  • the router will look up the content name of the interest packet in the PIT table. If there is a matching entry, the router will only add the port number to this matching entry. Otherwise, the router will forward the interest packet to the data producer according to the FIB forwarding table entry and insert the port number information into the PIT table.
  • the data packet arrives at the router, it will first match the PIT table. If the match is successful, the data packet will be forwarded to all ports corresponding to the PIT table, and then the PIT entry will be deleted and the data packet will be cached in the CS table. If the match to the PIT table fails, the data packet will be discarded.
  • Virtual network is a local network virtualized by Mininet simulation platform, including virtual switches and virtual hosts. It can flexibly simulate various network topologies according to user needs, but it cannot achieve good forwarding performance due to resource constraints. Programmable switches have good forwarding performance, but when building a large-scale network environment, the equipment maintenance and purchase costs are huge. Therefore, building a large-scale forwarding network that combines virtual and real can meet the needs of scale and authenticity at the same time.
  • the FIB table uses a flooding method to maintain the routing of the entire network through the Link State Routing Protocol (NLSR). Its processing delay increases sharply as the topology increases, which can easily cause problems such as interest packet discarding due to untimely FIB table updates.
  • NLSR Link State Routing Protocol
  • LSDB Link State Database
  • the purpose of the present invention is to address the technical defects of "the routers of the traditional NDN architecture need to use the link state routing protocol NLSR to maintain the routing of the entire network by flooding, the processing delay is too long, and it is easy to cause the interest packet to be discarded due to the untimely update of the FIB", "there is a lag in the update of the FIB table, and the producer cannot be immediately discovered by the NDN router when it moves", and "it is difficult to meet the scalability and authenticity requirements when building a large-scale network environment”.
  • a virtual-real dynamic traffic scheduling method based on SDN and NDN is proposed for use in the field of computer network technology to solve the above-mentioned problems existing in the traditional NDN architecture.
  • a first aspect of an embodiment of the present invention provides a virtual-real combined dynamic traffic scheduling method based on SDN and NDN, the method comprising:
  • a producer host When a producer host joins or leaves the NDN network, it sends a request packet to the SDN controller, and the SDN controller updates the producer data based on the request packet;
  • the programmable switch or virtual switch determines the type of the data packet; if the data packet is an IP data packet, it performs layer 2 and layer 3 forwarding; if the data packet is an NDN interest packet, it forwards it according to the content storage table, request interest table, and forwarding information table; if the data packet is an NDN data packet, it forwards it according to the content storage table and request interest table.
  • a second aspect of an embodiment of the present invention provides a virtual-real combined dynamic traffic scheduling device based on SDN and NDN, comprising one or more processors for the above-mentioned virtual-real combined dynamic traffic scheduling method based on SDN and NDN.
  • a third aspect of an embodiment of the present invention provides a computer-readable storage medium on which a program is stored.
  • the program When the program is executed by a processor, it is used to implement the above-mentioned virtual-real combined dynamic traffic scheduling method based on SDN and NDN.
  • the virtual-real combined dynamic traffic scheduling method based on SDN and NDN proposed in the present invention separates the control plane from the data plane, so that the network forwarding decision is determined by the control plane with a global view, and the data plane only needs to forward according to the PIT table, FIB table and CS table, which solves the problem that the routers of the traditional NDN architecture need to use NLSR to maintain the routing of the entire network through flooding, and the processing delay is too long, which easily causes the interest packet discarding problem due to the untimely update of FIB.
  • FIG1 is a diagram of a virtual-real network deployment based on SDN and NDN provided by the present invention.
  • FIG2 is a schematic block diagram of a virtual-real combined dynamic traffic scheduling method based on SDN and NDN provided by the present invention.
  • FIG3 is a flow chart of a virtual-real combined dynamic traffic scheduling method based on SDN and NDN provided by the present invention.
  • FIG4 is a schematic diagram of an SDN controller.
  • FIG5 is a schematic diagram of a virtual-real combined dynamic traffic scheduling device based on SDN and NDN provided by the present invention.
  • the present invention proposes a virtual-real dynamic traffic scheduling method based on SDN and NDN, as shown in Figure 1.
  • the network architecture includes an SDN controller, several programmable switches, virtual switches, and several producer hosts and consumer hosts running the NDN protocol stack.
  • the programmable switch of the data plane uses a Tofino switch
  • the SDN controller uses an ONOS controller
  • the virtual switch is built by a server running the Mininet simulation platform.
  • the controller connects all programmable switches and virtual switches through a control link, and the programmable switch and the virtual switch are connected to the producer host and consumer host running the NDN protocol stack.
  • the virtual-real dynamic traffic scheduling method based on SDN and NDN includes several nodes; the nodes include a producer host running the NDN protocol stack, a consumer host running the NDN protocol stack, a server running the Mininet virtual network simulation platform, a P4 programmable switch, and an SDN controller.
  • This method combines the original distributed NDN architecture with the SDN architecture, and with the help of the SDN "digital control separation" idea, the data plane only needs to complete the data packet forwarding, and the routing decision is handed over to the central controller.
  • the embodiment of the present invention proposes a virtual-real combined dynamic traffic scheduling method based on SDN and NDN, and the specific implementation steps are as follows:
  • Step 1 Build an NDN network based on the network topology: several virtual switches form a virtual network topology, several programmable switches form a physical network topology, connect several virtual network topologies with the physical network topology, and then communicate with the SDN controller through the P4runtime southbound interface; and randomly connect several producer hosts and consumer hosts running the NDN protocol stack to a programmable switch or a virtual switch.
  • the virtual switch builds a virtual network based on the customized network topology through the server running the Mininet simulation platform.
  • the programmable switch establishes a connection with the server through the network cable.
  • the server unbinds the network card from the host machine through the PCI network card transparent transmission method and directly connects to the virtual machine running the Mininet simulation platform.
  • the producer and consumer hosts running the NDN protocol stack are connected to the programmable switch and the virtual switch through a direct network cable.
  • the SDN controller adds the virtual switch device, link, and device configuration information including the programmable switch and the Mininet simulation platform to the network view of the SDN controller by calling the Netconf protocol interface.
  • the SDN selects the ONOS controller, and the ONOS controller calls the REST API of the Netconf protocol interface.
  • the REST API interface function consists of the controller's username and password, the controller's instance IP address, and the network configuration file.
  • the ONOS controller's username and password combination is configured as onos:rocks
  • the ONOS controller's instance IP address is configured as 192.168.56.111
  • the network configuration file is set to /tmp/cfg.json in json format.
  • the network configuration file adds the programmable switch and virtual switch, link, and switch device configuration information to the network view of the ONOS controller by specifying properties such as pipeconf and driver.
  • the controller includes a network discovery module, a host service module, an NDN management module, and a network configuration module.
  • the network discovery module is responsible for maintaining the link view between switches, and the controller completes link discovery through the LLDP and BDDP protocols.
  • the host service module is responsible for host discovery and determines the host location in the global view.
  • the controller provides host discovery and positioning functions by monitoring ARP messages and DHCP messages.
  • the NDN management module is responsible for maintaining the producer data table.
  • the producer data table is responsible for recording the producer host information, including the host MAC address, the switch ID to which the host is directly connected, and the hash value of the data packet content name.
  • the network configuration module is responsible for injecting attributes and configuration information into each network component, including device name, management address, device location, owner information, hardware and software versions, and device port type and name.
  • Step 2 When the producer host joins or leaves the NDN network, it sends a request data packet to the SDN controller, and the controller updates the producer data based on the request data packet.
  • the producer host running the NDN protocol stack After the producer host running the NDN protocol stack is connected to the NDN network, it actively sends a request data packet to the SDN controller.
  • the request data packet includes the data packet content name that the producer host can provide services and the corresponding MAC address of the producer host.
  • the format of the request data packet is: source MAC address, destination MAC address, packet type, and payload.
  • the source MAC address is the MAC address of the producer host network card
  • the destination MAC address is the multicast address 01:00:5e:00:17:aa
  • the packet type is 0x8625
  • the payload is the TLV information (type-length-value) of the request data packet.
  • the programmable switch or virtual switch directly connected to the producer host running the NDN protocol stack receives the request data packet and inputs it (packet in) to the SDN controller.
  • the NDN management module of the SDN controller obtains the switch ID directly connected to the producer host according to the producer host MAC address in the request data packet, and updates and stores the hash value of the producer host MAC address, the switch ID directly connected to the producer host, and the data packet content name in the producer data.
  • producer data is stored in the form of a producer data table.
  • the producer data table maintained by the NDN management module in the ONOS controller is shown in Table 1 below:
  • Host MAC address ID of the switch to which the host is directly connected Hash value of the packet content name 62:f6:67:88:de:21(first producer) device:p4-dev-2 0x850c (/NDN1/SWP/PCA/DATA1) 62:f6:67:88:de:21(first producer) device:p4-dev-2 0x6b29 (/NDN1/SWP/PCB/VIDEO) 62:f6:67:88:de:21(first producer) device:p4-dev-2 0x65a3 (/NDN1/SWP/SWV/DATA2) 4e:c5:57:69:47:fe (second producer) device:vir-dev-6 0x12af(/NDN2/SWP/DATA3) 4e:c5:57:69:47:fe (second producer) device:vir-dev-6 0x850c (/NDN1/SWP/PCA/DATA1)
  • the producer host running the NDN protocol stack When the producer host running the NDN protocol stack is disconnected from the NDN network or does not provide the corresponding service, it actively sends a request data packet to the SDN controller to tell the SDN controller to delete the corresponding table entry in the producer data table to update the producer data table.
  • the format of the request data packet is: source MAC address, destination MAC address, packet type, and payload.
  • the source MAC address is the MAC address of the producer host network card
  • the destination MAC address is the multicast address 01:00:5e:00:17:aa
  • the packet type is 0x8626
  • the payload is the TLV information of the request data packet.
  • the programmable switch or virtual switch directly connected to the producer host running the NDN protocol stack receives the request data packet and inputs it (packet in) to the ONOS controller.
  • the ONOS controller searches for these two data in the producer data table according to the MAC address of the producer host network card and the hash value of the data packet content name. If found, the two data are deleted from the producer data table to update the producer data table.
  • Step 3 When forwarding a data packet between programmable switches or virtual switches, the programmable switch or virtual switch determines the type of the data packet; if the data packet is an IP data packet, it performs layer 2 or 3 forwarding (L2/L3 forwarding); if the data packet is an NDN interest packet, it is forwarded according to the content storage table (CS table, Content Store), request interest table (PIT table, Pending Interest Table) and forwarding information table (FIB table, Forwarding Information Base); if the data packet is an NDN data packet, it is forwarded according to the content storage table and request interest table.
  • L2/L3 forwarding layer 2 or 3 forwarding
  • CS table Content Store
  • PIT table Pending Interest Table
  • FIB table Forwarding Information Base
  • the process of determining the type of a data packet by a programmable switch or virtual switch includes: when the packet type is 0x0806 or 0x0800, the data packet is an IP data packet, and the programmable switch or virtual switch performs layer 2/3 forwarding (L2/L3 forwarding). When the packet type is 0x8624, the programmable switch or virtual switch performs NDN packet parsing. If the packet type is 0x05, the data packet is forwarded as an NDN interest packet. If the packet type is 0x06, the data packet is forwarded as an NDN data packet, otherwise it is discarded.
  • L2/L3 forwarding layer 2/3 forwarding
  • the NDN packet includes the NDN interest packet and the NDN data packet.
  • the NDN interest packet/NDN data packet enters the switch directly connected to it, and first obtains the content name of the interest packet/data packet according to the TLV nested information loop and outputs it.
  • the content name of the NDN interest packet/NDN data packet adopts a hierarchical structure.
  • the format of the NDN interest packet/NDN data packet is set as: /NDN1/SWP/PCA/DATA1, which means that the content name of the NDN interest packet/NDN data packet has four segments, each of which is NDN1, SWP, PCA, and DATA1.
  • the switch directly connected to the NDN interest packet/NDN data packet hashes the content name into a 32-bit value in sequence through a hash algorithm (HashAlgorithm.crc16).
  • the switch reads the content name of the NDN packet /NDN1/SWP/PCA/DATA1 in sequence according to the TLV nesting information, hashes NDN1 to 0xa36d, NDN1 and SWP to 0x12af, NDN1, SWP, and PCA to 0x2ce4, and NDN1, SWP, PCA, and DATA1 to 0x850c, and stores them in the switch as metadata for subsequent processing.
  • the forwarding process when the data packets are IP data packets, NDN interest packets, and NDN data packets is described in detail below.
  • Layer 2/L3 forwarding (L2/L3 forwarding) is performed.
  • the data packet is an IP data packet
  • the programmable switch or virtual switch performs layer 2/3 forwarding (L2/L3 forwarding).
  • the data packet is an NDN interest packet, it is forwarded according to the content store table (CS table, Content Store), request interest table (PIT table, Pending Interest Table) and forwarding information table (FIB table, Forwarding Information Base).
  • CS table Content Store
  • request interest table PIT table, Pending Interest Table
  • FOB table Forwarding Information Base
  • the specific steps include:
  • the matching record is searched from the content storage table (CS table). If the match with the content storage table is successful, it means that there is a data packet that satisfies the NDN interest packet. Then the NDN interest packet is encapsulated into an NDN format message, and the forwarding port set of the request interest table (PIT table) is searched according to the content name. The NDN format message is forwarded from the forwarding port and the interest packet is discarded.
  • CS table content storage table
  • the hash value of the interest packet content name is used as the key to match the forwarding information table (FIB table). If the match is successful, the NDN interest packet is forwarded from the forwarding port corresponding to the forwarding information table entry, and the inbound port number is inserted into the request interest table (PIT table).
  • the specific format is a key-value pair, that is, the hash value of the content name of the NDN interest packet is used as the key, and the inbound port set is used as the value.
  • the NDN interest packet arrives at the s2 virtual switch from port 3, and the source MAC address in the NDN interest packet is the network card address 00:0c:29:1e:6f:d4 of the first consumer host, the destination MAC address is the multicast address 01:00:5e:00:17:aa, the type is 0x8624, and the payload is the TLV information of the NDN interest packet.
  • the s2 virtual switch has a FIB table entry: the match domain is the hash value 0x850c of /NDN1/SWP/PCA/DATA1, and the action domain is forwarding from port 1.
  • the PIT table is queried.
  • the key is the hash value 0x850c of /NDN1/SWP/PCA/DATA1.
  • the value key is 00000100, indicating that there was an NDN interest packet sent from port 2 to the s2 virtual switch.
  • the value is set to 00001100 through a shift operation, and the value is finally written back to the PIT table.
  • the s2 virtual switch will forward the data packet from ports 2 and 3.
  • the outbound port number is set to the controller port number, and the NDN interest packet is forwarded to the SDN controller.
  • the SDN controller queries the information of the consumer host according to the source MAC address of the interest packet through the host service module, and then queries the access switch ID of the consumer host.
  • the SDN controller queries the producer data table, finds the producer host MAC address corresponding to the content name of the NDN interest packet, and the switch ID set directly connected to the producer host, selects the shortest path from the switch ID set, sends the FIB matching flow table along the path, and sends the output (Packet out) message to the switch directly connected to the producer host, and sets the outbound port of the interest packet.
  • the source MAC is the first consumer's network card address 00:0c:29:1e:6f:d4
  • the destination MAC is the multicast address 01:00:5e:00:17:aa
  • the type is 0x8624
  • the payload is the TLV information of the NDN interest packet.
  • the controller After receiving the input packet in request, the controller will query the source MAC address of the interest packet.
  • the access switch ID corresponding to the source MAC address is device:vir-dev-2.
  • the NDN management module of the ONOS controller finds the switch IDs of the host direct connection from the producer data table, which are device:p4-dev-2 and device:vir-dev-6 respectively.
  • the path cost from the switch device:vir-dev-2 to device:p4-dev-2 and device:vir-dev-6 is calculated, and the optimal path is selected as S2-S1-P4_1-P4_2.
  • the ONOS controller needs to send a packet out message to the ingress switch device:vir-dev-2, set the outbound port to 1, and then send the FIB flow table to the virtual switch S2, virtual switch S1, and programmable switch P4_1 in turn.
  • the port number of the switch P4_2 to which the first producer is connected is determined, and the FIB flow table is sent to the programmable switch P4_2.
  • the FIB flow table sent by the ONOS controller is shown in Table 2.
  • Table 2 FIB flow table sent by ONOS controller
  • the data packet is an NDN data packet, it is forwarded according to the content store table (CS table, Content Store) and the request interest table (PIT table, Pending Interest Table).
  • CS table Content Store
  • PIT table Pending Interest Table
  • the switch When it is determined to be an NDN data packet, the switch will first query the PIT table to see if there is a content name corresponding to the NDN data packet. If the query is successful, the NDN data packet will be forwarded to all forwarding ports listed in the PIT table, the PIT entry will be deleted, and then the CS table will be searched according to the hash value 0x850c of the content name of the NDN data packet. If the corresponding table entry in the CS table is found, it means that the content library already has the corresponding data and no processing is performed. Otherwise, the corresponding key-value pair is inserted in the CS table and the data is cached in the content library. If the query to the PIT table fails, the NDN data packet is discarded.
  • the first producer when the first producer receives a request packet with a content name of /NDN1/SWP/PCA/DATA1 from the first consumer, it will send a data packet to the first consumer.
  • the source MAC address is the network card address 00:0c:29:ea:85:b2 of the first producer
  • the destination MAC address is the multicast address 01:00:5e:00:17:aa
  • the type is 0x8624
  • the payload is the TLV information of the NDN data packet.
  • the programmable switch P4_2 When the programmable switch P4_2 receives the data packet, it first queries the content name of the NDN data packet according to the PIT table.
  • the data packet is forwarded from the outbound ports 1 and 2 of the programmable switch P4_2 respectively. Then, the CS table is searched according to the content name hash value 0x850c. If the corresponding table entry of the CS table is found, where the key key is 0x850c and the value key value is 1, it means that the content library already has the corresponding data and no processing is performed. Otherwise, insert an entry with key 0x850c and value 1 into the CS table and cache the data in the content library. If no corresponding entry is found in the PIT table, discard the data packet.
  • the present invention also provides an embodiment of the virtual-real combined dynamic traffic scheduling device based on SDN and NDN.
  • an embodiment of the present invention provides a virtual-real combined dynamic traffic scheduling device based on SDN and NDN, including one or more processors for implementing the virtual-real combined dynamic traffic scheduling method based on SDN and NDN in the above embodiment.
  • the embodiment of the virtual-real combination dynamic traffic scheduling device based on SDN and NDN of the present invention can be applied to any device with data processing capabilities, and the any device with data processing capabilities can be a device or apparatus such as a computer.
  • the device embodiment can be implemented by software, or by hardware or a combination of software and hardware. Taking software implementation as an example, as a device in a logical sense, it is formed by the processor of any device with data processing capabilities in which it is located to read the corresponding computer program instructions in the non-volatile memory into the memory for execution. From the hardware level, as shown in Figure 5, it is a hardware structure diagram of any device with data processing capabilities where the virtual-real combination dynamic traffic scheduling device based on SDN and NDN of the present invention is located. In addition to the processor, memory, network interface, and non-volatile memory shown in Figure 5, any device with data processing capabilities where the device in the embodiment is located can also include other hardware according to the actual function of the device with data processing capabilities, which will not be described in detail.
  • the relevant parts can refer to the partial description of the method embodiment.
  • the device embodiment described above is only illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of the present invention. A person of ordinary skill in the art can understand and implement it without paying creative labor.
  • An embodiment of the present invention further provides a computer-readable storage medium on which a program is stored.
  • the program is executed by a processor, the virtual-real combined dynamic traffic scheduling method based on SDN and NDN in the above embodiment is implemented.
  • the computer-readable storage medium may be an internal storage unit of any device with data processing capability described in any of the aforementioned embodiments, such as a hard disk or a memory.
  • the computer-readable storage medium may also be any device with data processing capability, such as a plug-in hard disk, a smart media card (SMC), an SD card, a flash card, etc. equipped on the device.
  • the computer-readable storage medium may also include both an internal storage unit of any device with data processing capability and an external storage device.
  • the computer-readable storage medium is used to store the computer program and other programs and data required by any device with data processing capability, and may also be used to temporarily store data that has been output or is to be output.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed in the present invention are a virtual and real combined dynamic traffic scheduling method and apparatus based on SDN and NDN. The method comprises: constructing an NDN on the basis of network topology, and connecting virtual switches, programmable switches, an SDN controller, producer hosts and consumer hosts; when the producer hosts access or leave the network, sending a request data packet to the controller, and the controller updating producer data according to the request data packet; when the data packet is forwarded between the programmable switches or the virtual switches, the programmable switches or the virtual switches judging the type of the data packet; if the data packet is an IP data packet, carrying out L2/L3 forwarding; if the data packet is an NDN interest packet, forwarding same according to a content storage table, a pending interest table and a forwarding information base, and when the forwarding information base fails to match, the switches sending a request to the controller, and the controller deciding a forwarding path; and if the data packet is an NDN data packet, forwarding same according to the content storage table and the pending interest table.

Description

基于SDN与NDN的虚实结合动态流量调度方法及装置Virtual-real combined dynamic traffic scheduling method and device based on SDN and NDN 技术领域Technical Field
本发明属于计算机网络技术领域和移动通信技术领域,尤其涉及一种基于SDN(软件定义网络,Software-Defined Networking)与NDN(命名数据网络,Named Data Networking)的虚实结合动态流量调度方法及装置。The present invention belongs to the fields of computer network technology and mobile communication technology, and in particular to a virtual-real combined dynamic traffic scheduling method and device based on SDN (Software-Defined Networking) and NDN (Named Data Networking).
背景技术Background technique
传统的网络设备中控制平面和转发平面被整合在一个硬件中运行,作为数据转发大脑的控制平面被分配到各个网络节点中,很难实现全网把控。SDN将控制管理平面和数据转发平面进行解耦,网络由控制层集中管理,无需依赖底层的网络设备,具有“控制与转发分离”、“设备资源虚拟化”和“通用硬件及软件可编程”三大特性。In traditional network devices, the control plane and forwarding plane are integrated into one piece of hardware and run. The control plane, which is the brain of data forwarding, is distributed to each network node, making it difficult to control the entire network. SDN decouples the control management plane from the data forwarding plane. The network is centrally managed by the control layer without relying on the underlying network devices. It has three major features: "separation of control and forwarding", "virtualization of device resources" and "universal hardware and software programmability".
IP网络主要被用来作为通信网络,点对点传送数据包,随着电子商务、数字媒体、社交网络和智能手机应用的快速增长,分布式网络比通信网络更加普遍,点对点通信协议解决分布式问题既复杂又容易出错。NDN(Named Data Networking)提出了一种IP架构的演进,它有两种类型数据包:兴趣包和数据包。其天然支持缓存和多播的特性可以广泛应用于视频流传输、实时会议、车载网络等场景。消费者将所需数据块的内容名放在一个兴趣包中,并转发至网络,一旦兴趣包到达有被请求数据的节点,则返回一个包含内容名和内容的数据包,以及由生产者秘钥绑定的签名。兴趣包和数据包转发依赖三个表:PIT表(Pending Interest Table,请求兴趣表)、FIB表(Forwarding Information Base,转发信息表)、CS表(Content Store,内容存储表)。PIT表存储了已经转发但还没收到数据包的兴趣包内容名以及输入端口。当一个数据包到达时,NDN路由器会检查CS表的匹配数据,如果存在,路由器根据PIT表对应的所有端口号转发数据包;如果不存在,路由器会查找PIT表对应兴趣包的内容名,如果有匹配条目,路由器只会在这个匹配条目上添加端口号,否则,路由器根据FIB转发表项将兴趣包转发给数据生产者,并将端口号信息插入到PIT表。当数据包到达路由器时,首先匹配PIT表,如果匹配成功,将数据包转发至PIT表对应的所有端口,然后删除PIT条目,并将数据包缓存在CS表,如果匹配PIT表不成功,则丢弃数据包。IP networks are mainly used as communication networks to transmit data packets point-to-point. With the rapid growth of e-commerce, digital media, social networks and smartphone applications, distributed networks are more common than communication networks. Point-to-point communication protocols are complex and error-prone to solve distributed problems. NDN (Named Data Networking) proposes an evolution of the IP architecture, which has two types of data packets: interest packets and data packets. Its natural support for caching and multicasting can be widely used in scenarios such as video streaming, real-time conferencing, and in-vehicle networks. The consumer puts the content name of the required data block in an interest packet and forwards it to the network. Once the interest packet reaches the node with the requested data, it returns a data packet containing the content name and content, as well as a signature bound by the producer's secret key. The forwarding of interest packets and data packets depends on three tables: PIT table (Pending Interest Table, request interest table), FIB table (Forwarding Information Base, forwarding information table), and CS table (Content Store, content storage table). The PIT table stores the content name and input port of the interest packet that has been forwarded but has not yet received the data packet. When a data packet arrives, the NDN router will check the matching data in the CS table. If it exists, the router will forward the data packet according to all the port numbers corresponding to the PIT table. If it does not exist, the router will look up the content name of the interest packet in the PIT table. If there is a matching entry, the router will only add the port number to this matching entry. Otherwise, the router will forward the interest packet to the data producer according to the FIB forwarding table entry and insert the port number information into the PIT table. When the data packet arrives at the router, it will first match the PIT table. If the match is successful, the data packet will be forwarded to all ports corresponding to the PIT table, and then the PIT entry will be deleted and the data packet will be cached in the CS table. If the match to the PIT table fails, the data packet will be discarded.
虚拟网络是由Mininet仿真平台虚拟的局部网络,包括虚拟交换机和虚拟主机,可根据用户需求,灵活的模拟各种网络拓扑,但囿于资源限制,不能达到很好的转发性能。可编程交换机拥有较好的转发性能,但构建大规模网络环境时,设备维护和购置成本巨大,因此,构建虚实结合的大规模转发网络可同时满足规模性和真实性需求。Virtual network is a local network virtualized by Mininet simulation platform, including virtual switches and virtual hosts. It can flexibly simulate various network topologies according to user needs, but it cannot achieve good forwarding performance due to resource constraints. Programmable switches have good forwarding performance, but when building a large-scale network environment, the equipment maintenance and purchase costs are huge. Therefore, building a large-scale forwarding network that combines virtual and real can meet the needs of scale and authenticity at the same time.
由于NDN内容名相较于IP地址种类更丰富,兴趣包转发依赖FIB的内容名查找匹配,需占用大量SRAM资源和TCAM资源。FIB表通过链路状态路由协议(NLSR)使用泛洪方式维护全网路由,其处理时延随着拓扑增大急剧增加,易造成FIB表更新不及时导致的兴趣包丢弃等问题。且NDN路由器上存在的链路状态数据库(LSDB)只能以同步周期间隔更新数据,当生产者移动时,不能立刻被NDN路由器发现,导致FIB表的更新存在滞后性。Since NDN content names are richer than IP addresses, interest packet forwarding relies on content name lookup and matching in the FIB, which requires a large amount of SRAM and TCAM resources. The FIB table uses a flooding method to maintain the routing of the entire network through the Link State Routing Protocol (NLSR). Its processing delay increases sharply as the topology increases, which can easily cause problems such as interest packet discarding due to untimely FIB table updates. In addition, the Link State Database (LSDB) on the NDN router can only update data at synchronous cycle intervals. When the producer moves, it cannot be immediately discovered by the NDN router, resulting in a lag in the update of the FIB table.
发明内容Summary of the invention
本发明目的是针对“传统NDN架构的路由器需使用链路状态路由协议NLSR通过泛洪方式维护全网路由,处理时延过长,易造成FIB更新不及时导致的兴趣包丢弃”、“FIB表的更新存在滞后性,当生产者移动时不能立刻被NDN路由器发现”、“构建大规模网络环境时很难满足规模性和真实性需求”的技术缺陷,提出了一种基于SDN与NDN的虚实结合动态流量调度方法,用于计算机网络技术领域,解决传统NDN架构存在的上述问题。The purpose of the present invention is to address the technical defects of "the routers of the traditional NDN architecture need to use the link state routing protocol NLSR to maintain the routing of the entire network by flooding, the processing delay is too long, and it is easy to cause the interest packet to be discarded due to the untimely update of the FIB", "there is a lag in the update of the FIB table, and the producer cannot be immediately discovered by the NDN router when it moves", and "it is difficult to meet the scalability and authenticity requirements when building a large-scale network environment". A virtual-real dynamic traffic scheduling method based on SDN and NDN is proposed for use in the field of computer network technology to solve the above-mentioned problems existing in the traditional NDN architecture.
为了达到上述目的,本发明的技术方案如下:本发明实施例的第一方面提供了一种基于SDN与NDN的虚实结合动态流量调度方法,所述方法包括:In order to achieve the above object, the technical solution of the present invention is as follows: A first aspect of an embodiment of the present invention provides a virtual-real combined dynamic traffic scheduling method based on SDN and NDN, the method comprising:
基于网络拓扑构建NDN网络:将若干虚拟交换机组成虚拟网络拓扑,若干可编程交换机组成实体网络拓扑,将若干虚拟网络拓扑与实体网络拓扑连接,且均与SDN控制器通信;运行NDN协议栈的生产者主机、消费者主机随机连接至某一可编程交换机或某一虚拟交换机;Build an NDN network based on network topology: several virtual switches form a virtual network topology, several programmable switches form a physical network topology, several virtual network topologies are connected to the physical network topology, and all communicate with the SDN controller; the producer host and consumer host running the NDN protocol stack are randomly connected to a programmable switch or a virtual switch;
生产者主机接入或离开NDN网络时,向SDN控制器发送请求数据包,SDN控制器根据请求数据包更新生产者数据;When a producer host joins or leaves the NDN network, it sends a request packet to the SDN controller, and the SDN controller updates the producer data based on the request packet;
在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发;如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发。When forwarding a data packet between programmable switches or virtual switches, the programmable switch or virtual switch determines the type of the data packet; if the data packet is an IP data packet, it performs layer 2 and layer 3 forwarding; if the data packet is an NDN interest packet, it forwards it according to the content storage table, request interest table, and forwarding information table; if the data packet is an NDN data packet, it forwards it according to the content storage table and request interest table.
本发明实施例的第二方面提供了一种基于SDN与NDN的虚实结合动态流量调度装置,包括一个或多个处理器,用于上述的基于SDN与NDN的虚实结合动态流量调度方法。A second aspect of an embodiment of the present invention provides a virtual-real combined dynamic traffic scheduling device based on SDN and NDN, comprising one or more processors for the above-mentioned virtual-real combined dynamic traffic scheduling method based on SDN and NDN.
本发明实施例的第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的基于SDN与NDN的虚实结合动态流量调度方法。A third aspect of an embodiment of the present invention provides a computer-readable storage medium on which a program is stored. When the program is executed by a processor, it is used to implement the above-mentioned virtual-real combined dynamic traffic scheduling method based on SDN and NDN.
本发明的有益效果为:The beneficial effects of the present invention are:
本发明提出的基于SDN与NDN的虚实结合动态流量调度方法,通过控制面与数据面分离,使网络的转发决策由拥有全局视图的控制面决定,数据面只需根据PIT表、FIB表和CS表转发,解决了传统NDN架构的路由器需使用NLSR通过泛洪方式维护全网路由,处理时 延过长,易造成FIB更新不及时导致的兴趣包丢弃问题。The virtual-real combined dynamic traffic scheduling method based on SDN and NDN proposed in the present invention separates the control plane from the data plane, so that the network forwarding decision is determined by the control plane with a global view, and the data plane only needs to forward according to the PIT table, FIB table and CS table, which solves the problem that the routers of the traditional NDN architecture need to use NLSR to maintain the routing of the entire network through flooding, and the processing delay is too long, which easily causes the interest packet discarding problem due to the untimely update of FIB.
采用本发明的方法实现兴趣包和数据包的转发过程中,生产者接入或离开NDN网络时,会向控制器发送请求包。当FIB表查找失败后,交换机会发送输入(packet in)请求给控制器,确定兴趣包转发路径。解决了FIB的更新存在滞后性,当生产者移动时不能立刻被NDN路由器发现导致的通信失败问题。In the process of forwarding interest packets and data packets using the method of the present invention, when a producer joins or leaves the NDN network, it will send a request packet to the controller. When the FIB table search fails, the switch will send an input (packet in) request to the controller to determine the forwarding path of the interest packet. This solves the problem of communication failure caused by the lag in the update of the FIB and the failure of the producer to be immediately discovered by the NDN router when it moves.
通过搭建可编程交换机与虚拟交换机相结合的虚实结合网络环境,解决了构建大规模网络环境时很难满足规模性和真实性需求问题。By building a virtual-real network environment that combines programmable switches and virtual switches, the problem of difficulty in meeting scale and authenticity requirements when building a large-scale network environment is solved.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1为本发明提供的基于SDN与NDN的虚实结合网络部署图。FIG1 is a diagram of a virtual-real network deployment based on SDN and NDN provided by the present invention.
图2为本发明提供的基于SDN与NDN的虚实结合动态流量调度方法的示意性框图。FIG2 is a schematic block diagram of a virtual-real combined dynamic traffic scheduling method based on SDN and NDN provided by the present invention.
图3为本发明提供的基于SDN与NDN的虚实结合动态流量调度方法的流程图。FIG3 is a flow chart of a virtual-real combined dynamic traffic scheduling method based on SDN and NDN provided by the present invention.
图4为SDN控制器的示意图。FIG4 is a schematic diagram of an SDN controller.
图5为本发明提供的基于SDN与NDN的虚实结合动态流量调度装置的示意图。FIG5 is a schematic diagram of a virtual-real combined dynamic traffic scheduling device based on SDN and NDN provided by the present invention.
具体实施方式Detailed ways
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。In order to make the purpose, technical scheme and advantages of the present invention clearer, the present invention is further described in detail below in conjunction with specific embodiments and with reference to the accompanying drawings. It should be understood that these descriptions are only exemplary and are not intended to limit the scope of the present invention. In addition, in the following description, the description of well-known structures and technologies is omitted to avoid unnecessary confusion of the concept of the present invention.
基于现有技术存在的问题,本发明提出了一种基于SDN与NDN的虚实结合动态流量调度方法,如图1所示,依托的网络架构包含SDN控制器、若干可编程交换机、虚拟交换机、若干运行NDN协议栈的生产者主机和消费者主机。具体地,本发明实施例中,数据平面的可编程交换机采用Tofino交换机,SDN控制器使用ONOS控制器,虚拟交换机通过运行Mininet仿真平台的服务器搭建。其中,控制器通过控制链路连接所有可编程交换机和虚拟交换机,可编程交换机、虚拟交换机与运行NDN协议栈的生产者主机、消费者主机连接。Based on the problems existing in the prior art, the present invention proposes a virtual-real dynamic traffic scheduling method based on SDN and NDN, as shown in Figure 1. The network architecture based on it includes an SDN controller, several programmable switches, virtual switches, and several producer hosts and consumer hosts running the NDN protocol stack. Specifically, in an embodiment of the present invention, the programmable switch of the data plane uses a Tofino switch, the SDN controller uses an ONOS controller, and the virtual switch is built by a server running the Mininet simulation platform. Among them, the controller connects all programmable switches and virtual switches through a control link, and the programmable switch and the virtual switch are connected to the producer host and consumer host running the NDN protocol stack.
所述基于SDN与NDN的虚实结合动态流量调度方法包含若干节点;其中,节点包括运行NDN协议栈的生产者主机、运行NDN协议栈的消费者主机、运行Mininet虚拟网络仿真平台的服务器、P4可编程交换机以及SDN控制器。该方法将原分布式的NDN架构与SDN架构结合,借助SDN“数控分离”的思想,数据面只需完成数据包转发,路由决策交给中心控制器完成。The virtual-real dynamic traffic scheduling method based on SDN and NDN includes several nodes; the nodes include a producer host running the NDN protocol stack, a consumer host running the NDN protocol stack, a server running the Mininet virtual network simulation platform, a P4 programmable switch, and an SDN controller. This method combines the original distributed NDN architecture with the SDN architecture, and with the help of the SDN "digital control separation" idea, the data plane only needs to complete the data packet forwarding, and the routing decision is handed over to the central controller.
如图2和图3所示,本发明实施例提出了一种基于SDN与NDN的虚实结合动态流量调度方法,具体实施步骤如下:As shown in FIG. 2 and FIG. 3 , the embodiment of the present invention proposes a virtual-real combined dynamic traffic scheduling method based on SDN and NDN, and the specific implementation steps are as follows:
步骤1、基于网络拓扑构建NDN网络:将若干虚拟交换机组成虚拟网络拓扑,若干可编 程交换机组成实体网络拓扑,将若干虚拟网络拓扑与实体网络拓扑连接,再通过P4runtime南向接口与SDN控制器通信;并将若干运行NDN协议栈的生产者主机、消费者主机随机连接至某一可编程交换机或某一虚拟交换机。Step 1: Build an NDN network based on the network topology: several virtual switches form a virtual network topology, several programmable switches form a physical network topology, connect several virtual network topologies with the physical network topology, and then communicate with the SDN controller through the P4runtime southbound interface; and randomly connect several producer hosts and consumer hosts running the NDN protocol stack to a programmable switch or a virtual switch.
虚拟交换机依据自定义的网络拓扑,通过运行Mininet仿真平台的服务器构建虚拟网络。可编程交换机通过网线与服务器建立连接,服务器通过PCI网卡透传的方式将网卡从宿主机解绑,直连到运行Mininet仿真平台的虚拟机中。运行NDN协议栈的生产者和消费者主机通过网线直连方式与可编程交换机与虚拟交换机相连。The virtual switch builds a virtual network based on the customized network topology through the server running the Mininet simulation platform. The programmable switch establishes a connection with the server through the network cable. The server unbinds the network card from the host machine through the PCI network card transparent transmission method and directly connects to the virtual machine running the Mininet simulation platform. The producer and consumer hosts running the NDN protocol stack are connected to the programmable switch and the virtual switch through a direct network cable.
所述SDN控制器通过调用Netconf协议接口,将包含可编程交换机和Mininet仿真平台的虚拟交换机设备、链路、设备配置信息添加到SDN控制器的网络视图中。示例性地,所述SDN选用ONOS控制器,ONOS控制器调用Netconf协议接口的REST API,所述REST API接口函数由控制器的用户名和密码、控制器的实例IP地址、网络配置文件组成。示例性地,其中,ONOS控制器的用户名和密码组合配置为onos:rocks,ONOS控制器的实例IP地址配置为192.168.56.111,网络配置文件设置为json格式的/tmp/cfg.json,网络配置文件通过指定pipeconf、driver等属性,将包含可编程交换机和虚拟交换机、链路、交换机设备配置信息添加到ONOS控制器的网络视图中。The SDN controller adds the virtual switch device, link, and device configuration information including the programmable switch and the Mininet simulation platform to the network view of the SDN controller by calling the Netconf protocol interface. Exemplarily, the SDN selects the ONOS controller, and the ONOS controller calls the REST API of the Netconf protocol interface. The REST API interface function consists of the controller's username and password, the controller's instance IP address, and the network configuration file. Exemplarily, the ONOS controller's username and password combination is configured as onos:rocks, the ONOS controller's instance IP address is configured as 192.168.56.111, and the network configuration file is set to /tmp/cfg.json in json format. The network configuration file adds the programmable switch and virtual switch, link, and switch device configuration information to the network view of the ONOS controller by specifying properties such as pipeconf and driver.
如图4所示,所述控制器包含网络发现模块、主机服务模块、NDN管理模块、网络配置模块。网络发现模块负责维护交换机间的链路视图,控制器通过LLDP和BDDP协议完成链路发现。主机服务模块负责主机发现,确定全局视图中的主机位置,控制器通过监听ARP报文和DHCP报文,为其提供主机发现和定位功能。NDN管理模块负责维护生产者数据表。生产者数据表负责记录生产者主机信息,包含主机MAC地址、主机直连的交换机ID、数据包内容名的哈希值。网络配置模块负责向各网络组件注入属性和配置信息,包括设备名称、管理地址、设备位置、拥有者信息、硬件和软件版本、设备端口类型和名称。As shown in Figure 4, the controller includes a network discovery module, a host service module, an NDN management module, and a network configuration module. The network discovery module is responsible for maintaining the link view between switches, and the controller completes link discovery through the LLDP and BDDP protocols. The host service module is responsible for host discovery and determines the host location in the global view. The controller provides host discovery and positioning functions by monitoring ARP messages and DHCP messages. The NDN management module is responsible for maintaining the producer data table. The producer data table is responsible for recording the producer host information, including the host MAC address, the switch ID to which the host is directly connected, and the hash value of the data packet content name. The network configuration module is responsible for injecting attributes and configuration information into each network component, including device name, management address, device location, owner information, hardware and software versions, and device port type and name.
步骤2、生产者主机接入或离开NDN网络时,向SDN控制器发送请求数据包,控制器根据请求数据包更新生产者数据。Step 2: When the producer host joins or leaves the NDN network, it sends a request data packet to the SDN controller, and the controller updates the producer data based on the request data packet.
运行NDN协议栈的的生产者主机连上NDN网络后,主动向SDN控制器发送请求数据包。所述请求数据包中包括生产者主机可以提供服务的数据包内容名、生产者主机对应MAC地址。所述请求数据包的格式为:源MAC地址、目的MAC地址、包类型、载荷。其中,源MAC地址为生产者主机网卡的MAC地址,目的MAC地址为组播地址01:00:5e:00:17:aa,包类型为0x8625,载荷为请求数据包的TLV信息(type-length-value)。与运行NDN协议栈的的生产者主机直连的可编程交换机或虚拟交换机收到请求数据包会输入(packet in)到SDN控制器,SDN控制器的NDN管理模块会根据请求数据包中的生产者主机MAC地址拿到与 生产者主机直连的交换机ID,并将生产者主机MAC地址、与生产者主机直连的交换机ID、数据包内容名的哈希值更新并存储在生产者数据中。在本实例中,以生产者数据表的形式存储生产者数据,在ONOS控制器中的NDN管理模块维护的生产者数据表如下表1所示:After the producer host running the NDN protocol stack is connected to the NDN network, it actively sends a request data packet to the SDN controller. The request data packet includes the data packet content name that the producer host can provide services and the corresponding MAC address of the producer host. The format of the request data packet is: source MAC address, destination MAC address, packet type, and payload. Among them, the source MAC address is the MAC address of the producer host network card, the destination MAC address is the multicast address 01:00:5e:00:17:aa, the packet type is 0x8625, and the payload is the TLV information (type-length-value) of the request data packet. The programmable switch or virtual switch directly connected to the producer host running the NDN protocol stack receives the request data packet and inputs it (packet in) to the SDN controller. The NDN management module of the SDN controller obtains the switch ID directly connected to the producer host according to the producer host MAC address in the request data packet, and updates and stores the hash value of the producer host MAC address, the switch ID directly connected to the producer host, and the data packet content name in the producer data. In this example, producer data is stored in the form of a producer data table. The producer data table maintained by the NDN management module in the ONOS controller is shown in Table 1 below:
表1:生产者数据表Table 1: Producer data sheet
主机MAC地址Host MAC address 主机直连的交换机IDID of the switch to which the host is directly connected 数据包内容名的哈希值Hash value of the packet content name
62:f6:67:88:de:21(第一生产者)62:f6:67:88:de:21(first producer) device:p4-dev-2device:p4-dev-2 0x850c(/NDN1/SWP/PCA/DATA1)0x850c (/NDN1/SWP/PCA/DATA1)
62:f6:67:88:de:21(第一生产者)62:f6:67:88:de:21(first producer) device:p4-dev-2device:p4-dev-2 0x6b29(/NDN1/SWP/PCB/VIDEO)0x6b29 (/NDN1/SWP/PCB/VIDEO)
62:f6:67:88:de:21(第一生产者)62:f6:67:88:de:21(first producer) device:p4-dev-2device:p4-dev-2 0x65a3(/NDN1/SWP/SWV/DATA2)0x65a3 (/NDN1/SWP/SWV/DATA2)
4e:c5:57:69:47:fe(第二生产者)4e:c5:57:69:47:fe (second producer) device:vir-dev-6device:vir-dev-6 0x12af(/NDN2/SWP/DATA3)0x12af(/NDN2/SWP/DATA3)
4e:c5:57:69:47:fe(第二生产者)4e:c5:57:69:47:fe (second producer) device:vir-dev-6device:vir-dev-6 0x850c(/NDN1/SWP/PCA/DATA1)0x850c (/NDN1/SWP/PCA/DATA1)
当运行NDN协议栈的的生产者主机断开与NDN网络连接,或不提供相应服务时,主动向SDN控制器发送请求数据包,告诉SDN控制器删除生产者数据表中对应的表项,以更新生产者数据表。所述请求数据包的格式为:源MAC地址、目的MAC地址、包类型、载荷。其中,源MAC地址为生产者主机网卡的MAC地址,目的MAC地址为组播地址01:00:5e:00:17:aa,包类型为0x8626,载荷为请求数据包的TLV信息。与运行NDN协议栈的的生产者主机直连的可编程交换机或虚拟交换机收到请求数据包会输入(packet in)到ONOS控制器,ONOS控制器根据生产者主机网卡的MAC地址和数据包内容名的哈希值在生产者数据表中查找这两项数据,若找到则在生产者数据表中删除这两项数据,以此更新生产者数据表。When the producer host running the NDN protocol stack is disconnected from the NDN network or does not provide the corresponding service, it actively sends a request data packet to the SDN controller to tell the SDN controller to delete the corresponding table entry in the producer data table to update the producer data table. The format of the request data packet is: source MAC address, destination MAC address, packet type, and payload. Among them, the source MAC address is the MAC address of the producer host network card, the destination MAC address is the multicast address 01:00:5e:00:17:aa, the packet type is 0x8626, and the payload is the TLV information of the request data packet. The programmable switch or virtual switch directly connected to the producer host running the NDN protocol stack receives the request data packet and inputs it (packet in) to the ONOS controller. The ONOS controller searches for these two data in the producer data table according to the MAC address of the producer host network card and the hash value of the data packet content name. If found, the two data are deleted from the producer data table to update the producer data table.
步骤3、在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发(L2/L3转发);如果数据包为NDN兴趣包,则根据内容存储表(CS表,Content Store)、请求兴趣表、(PIT表,Pending Interest Table)和转发信息表(FIB表,Forwarding Information Base)进行转发;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发。Step 3. When forwarding a data packet between programmable switches or virtual switches, the programmable switch or virtual switch determines the type of the data packet; if the data packet is an IP data packet, it performs layer 2 or 3 forwarding (L2/L3 forwarding); if the data packet is an NDN interest packet, it is forwarded according to the content storage table (CS table, Content Store), request interest table (PIT table, Pending Interest Table) and forwarding information table (FIB table, Forwarding Information Base); if the data packet is an NDN data packet, it is forwarded according to the content storage table and request interest table.
可编程交换机或虚拟交换机判断数据包的类型的过程包括:当包类型为0x0806或0x0800,则数据包为IP数据包,可编程交换机或虚拟交换机做二三层转发(L2/L3转发)。当包类型为0x8624,可编程交换机或虚拟交换机做NDN包解析,如果包类型为0x05,则数据包为NDN兴趣包转发,如果包类型为0x06,则数据包为NDN数据包转发,否则丢弃。The process of determining the type of a data packet by a programmable switch or virtual switch includes: when the packet type is 0x0806 or 0x0800, the data packet is an IP data packet, and the programmable switch or virtual switch performs layer 2/3 forwarding (L2/L3 forwarding). When the packet type is 0x8624, the programmable switch or virtual switch performs NDN packet parsing. If the packet type is 0x05, the data packet is forwarded as an NDN interest packet. If the packet type is 0x06, the data packet is forwarded as an NDN data packet, otherwise it is discarded.
其中,NDN包中包括NDN兴趣包和NDN数据包,NDN兴趣包/NDN数据包进入与其直连的交换机,首先根据TLV嵌套信息循环获取兴趣包/数据包的内容名并输出。Among them, the NDN packet includes the NDN interest packet and the NDN data packet. The NDN interest packet/NDN data packet enters the switch directly connected to it, and first obtains the content name of the interest packet/data packet according to the TLV nested information loop and outputs it.
所述NDN兴趣包/NDN数据包的内容名采用分层结构,在本实例中设置NDN兴趣包 /NDN数据包的格式为:/NDN1/SWP/PCA/DATA1,代表NDN兴趣包/NDN数据包的内容名有四段,每段分别为NDN1、SWP、PCA、DATA1。与NDN兴趣包/NDN数据包直连的交换机通过哈希算法(HashAlgorithm.crc16),将内容名依次哈希为一个32比特的值。具体地,当一个NDN兴趣包/NDN数据包到达交换机后,交换机根据TLV嵌套信息依次读取NDN包的内容名/NDN1/SWP/PCA/DATA1,将NDN1哈希为0xa36d,NDN1、SWP哈希为0x12af,NDN1、SWP、PCA哈希为0x2ce4,NDN1、SWP、PCA、DATA1哈希为0x850c,并作为元数据存在交换机中,做后续处理。The content name of the NDN interest packet/NDN data packet adopts a hierarchical structure. In this example, the format of the NDN interest packet/NDN data packet is set as: /NDN1/SWP/PCA/DATA1, which means that the content name of the NDN interest packet/NDN data packet has four segments, each of which is NDN1, SWP, PCA, and DATA1. The switch directly connected to the NDN interest packet/NDN data packet hashes the content name into a 32-bit value in sequence through a hash algorithm (HashAlgorithm.crc16). Specifically, when an NDN interest packet/NDN data packet arrives at the switch, the switch reads the content name of the NDN packet /NDN1/SWP/PCA/DATA1 in sequence according to the TLV nesting information, hashes NDN1 to 0xa36d, NDN1 and SWP to 0x12af, NDN1, SWP, and PCA to 0x2ce4, and NDN1, SWP, PCA, and DATA1 to 0x850c, and stores them in the switch as metadata for subsequent processing.
具体地,接下来对数据包分别为IP数据包、NDN兴趣包、NDN数据包时的转发过程进行详细描述。Specifically, the forwarding process when the data packets are IP data packets, NDN interest packets, and NDN data packets is described in detail below.
(A)如果数据包为IP数据包,则进行二三层转发(L2/L3转发)。(A) If the data packet is an IP data packet, Layer 2/L3 forwarding (L2/L3 forwarding) is performed.
当包类型为0x0806或0x0800,则数据包为IP数据包,可编程交换机或虚拟交换机做二三层转发(L2/L3转发)。When the packet type is 0x0806 or 0x0800, the data packet is an IP data packet, and the programmable switch or virtual switch performs layer 2/3 forwarding (L2/L3 forwarding).
(B)如果数据包为NDN兴趣包,则根据内容存储表(CS表,Content Store)、请求兴趣表(PIT表,Pending Interest Table)和转发信息表(FIB表,Forwarding Information Base)进行转发。(B) If the data packet is an NDN interest packet, it is forwarded according to the content store table (CS table, Content Store), request interest table (PIT table, Pending Interest Table) and forwarding information table (FIB table, Forwarding Information Base).
具体包括以下步骤:The specific steps include:
根据兴趣包内容名的哈希值,从内容存储表(CS表)查找匹配记录,如果与内容存储表匹配成功,说明有满足NDN兴趣包的数据包,则将NDN兴趣包封装成NDN格式报文,根据内容名查找请求兴趣表(PIT表)的转发端口集合,将NDN格式报文从转发端口转发,同时丢弃该兴趣包。According to the hash value of the interest packet content name, the matching record is searched from the content storage table (CS table). If the match with the content storage table is successful, it means that there is a data packet that satisfies the NDN interest packet. Then the NDN interest packet is encapsulated into an NDN format message, and the forwarding port set of the request interest table (PIT table) is searched according to the content name. The NDN format message is forwarded from the forwarding port and the interest packet is discarded.
如果查找CS表没有匹配记录,则将兴趣包内容名的哈希值作为key键与转发信息表(FIB表)进行匹配,如果匹配成功,则从转发信息表表项对应的转发端口转发NDN兴趣包,并将入端口号插入到请求兴趣表(PIT表)中,具体格式为键值对形式,即将NDN兴趣包的内容名的哈希值作为key键,入端口集合作为value键值。If there is no matching record in the CS table, the hash value of the interest packet content name is used as the key to match the forwarding information table (FIB table). If the match is successful, the NDN interest packet is forwarded from the forwarding port corresponding to the forwarding information table entry, and the inbound port number is inserted into the request interest table (PIT table). The specific format is a key-value pair, that is, the hash value of the content name of the NDN interest packet is used as the key, and the inbound port set is used as the value.
示例性地,如图1所示,如果第一消费者发送内容名为/NDN1/SWP/PCA/DATA1的NDN兴趣包,该NDN兴趣包从3号端口到达s2虚拟交换机,NDN兴趣包中的源MAC地址为第一消费者主机的网卡地址00:0c:29:1e:6f:d4,目的MAC地址为组播地址01:00:5e:00:17:aa,类型为0x8624,载荷为NDN兴趣包的TLV信息。此时s2虚拟交换机有FIB表项:匹配域为/NDN1/SWP/PCA/DATA1的哈希值0x850c,动作域为从1号端口转发。FIB表匹配成功后,查询PIT表,key键为/NDN1/SWP/PCA/DATA1的哈希值0x850c,此时查询到value键值为00000100,说明之前有从2号端口发到s2虚拟交换机的NDN兴趣包,通过移位操作将value 置为00001100,最后将value写回PIT表。此后,如果收到内容名为/NDN1/SWP/PCA/DATA1的数据包,s2虚拟交换机将从2号和3号端口转发数据包。For example, as shown in Figure 1, if the first consumer sends an NDN interest packet with a content name of /NDN1/SWP/PCA/DATA1, the NDN interest packet arrives at the s2 virtual switch from port 3, and the source MAC address in the NDN interest packet is the network card address 00:0c:29:1e:6f:d4 of the first consumer host, the destination MAC address is the multicast address 01:00:5e:00:17:aa, the type is 0x8624, and the payload is the TLV information of the NDN interest packet. At this time, the s2 virtual switch has a FIB table entry: the match domain is the hash value 0x850c of /NDN1/SWP/PCA/DATA1, and the action domain is forwarding from port 1. After the FIB table is matched successfully, the PIT table is queried. The key is the hash value 0x850c of /NDN1/SWP/PCA/DATA1. At this time, the value key is 00000100, indicating that there was an NDN interest packet sent from port 2 to the s2 virtual switch. The value is set to 00001100 through a shift operation, and the value is finally written back to the PIT table. After that, if a data packet with the content name /NDN1/SWP/PCA/DATA1 is received, the s2 virtual switch will forward the data packet from ports 2 and 3.
如果匹配FIB表不成功,将出端口号设置为控制器端口号,将NDN兴趣包转发至SDN控制器,SDN控制器收到输入(packet in)请求后通过主机服务模块根据兴趣包的源MAC地址查询消费者主机的信息,再查询该消费者主机的接入交换机ID。SDN控制器查询生产者数据表,找到该NDN兴趣包内容名对应的生产者主机MAC地址、与生产者主机直连的交换机ID集合,从交换机ID集合中选取路径最短的一条,沿该路径下发FIB匹配流表,并发送输出(Packet out)消息到与生产者主机直连的交换机,设置该兴趣包的出端口。If the match to the FIB table fails, the outbound port number is set to the controller port number, and the NDN interest packet is forwarded to the SDN controller. After receiving the input (packet in) request, the SDN controller queries the information of the consumer host according to the source MAC address of the interest packet through the host service module, and then queries the access switch ID of the consumer host. The SDN controller queries the producer data table, finds the producer host MAC address corresponding to the content name of the NDN interest packet, and the switch ID set directly connected to the producer host, selects the shortest path from the switch ID set, sends the FIB matching flow table along the path, and sends the output (Packet out) message to the switch directly connected to the producer host, and sets the outbound port of the interest packet.
示例性地,如果第一消费者发送内容名为/NDN1/SWP/PCA/DATA1的兴趣包,从3号端口到达s2虚拟交换机,源MAC为第一消费者的网卡地址00:0c:29:1e:6f:d4,目的MAC为组播地址01:00:5e:00:17:aa,类型为0x8624,载荷为NDN兴趣包的TLV信息。若此时交换机未匹配FIB表项,则执行如下操作:将出端口设置为控制器端口号255,入端口设置为虚拟交换机s2的入端口号3,请求包的packet in头字段设为生效。控制器收到输入packet in请求后,会查询兴趣包的源MAC地址,根据主机服务模块,查询源MAC地址对应的接入交换机ID为device:vir-dev-2,再根据兴趣包内容名/NDN1/SWP/PCA/DATA1对应的哈希值0x850c,ONOS控制器的NDN管理模块从生产者数据表找到主机直连的交换机ID,分别为device:p4-dev-2和device:vir-dev-6。最后通过拓扑管理模块,计算交换机device:vir-dev-2到device:p4-dev-2和device:vir-dev-6的路径代价,选取最优路径为S2-S1-P4_1-P4_2。接着,ONOS控制器需要对入口交换机device:vir-dev-2下发packet out消息,设置出端口为1,然后依次在虚拟交换机S2、虚拟交换机S1、可编程交换机P4_1上下发FIB流表。最后,根据主机服务模块,确定第一生产者所连接入交换机P4_2的端口号,在可编程交换机P4_2上下发FIB流表。ONOS控制器下发的FIB流表如表2所示。For example, if the first consumer sends an interest packet with the content name /NDN1/SWP/PCA/DATA1, which arrives at the s2 virtual switch from port 3, the source MAC is the first consumer's network card address 00:0c:29:1e:6f:d4, the destination MAC is the multicast address 01:00:5e:00:17:aa, the type is 0x8624, and the payload is the TLV information of the NDN interest packet. If the switch does not match the FIB table entry at this time, perform the following operations: set the egress port to the controller port number 255, the ingress port to the ingress port number 3 of the virtual switch s2, and set the packet in header field of the request packet to take effect. After receiving the input packet in request, the controller will query the source MAC address of the interest packet. According to the host service module, the access switch ID corresponding to the source MAC address is device:vir-dev-2. Then, according to the hash value 0x850c corresponding to the interest packet content name/NDN1/SWP/PCA/DATA1, the NDN management module of the ONOS controller finds the switch IDs of the host direct connection from the producer data table, which are device:p4-dev-2 and device:vir-dev-6 respectively. Finally, through the topology management module, the path cost from the switch device:vir-dev-2 to device:p4-dev-2 and device:vir-dev-6 is calculated, and the optimal path is selected as S2-S1-P4_1-P4_2. Next, the ONOS controller needs to send a packet out message to the ingress switch device:vir-dev-2, set the outbound port to 1, and then send the FIB flow table to the virtual switch S2, virtual switch S1, and programmable switch P4_1 in turn. Finally, according to the host service module, the port number of the switch P4_2 to which the first producer is connected is determined, and the FIB flow table is sent to the programmable switch P4_2. The FIB flow table sent by the ONOS controller is shown in Table 2.
表2:ONOS控制器下发FIB流表Table 2: FIB flow table sent by ONOS controller
交换机IDSwitch ID 匹配域Matching Domains 动作域Action Domain
device:vir-dev-2device:vir-dev-2 meta.name_hash=0x850cmeta.name_hash = 0x850c egress_spec=1egress_spec=1
device:vir-dev-1device:vir-dev-1 meta.name_hash=0x850cmeta.name_hash = 0x850c egress_spec=1egress_spec=1
device:p4-dev-1device:p4-dev-1 meta.name_hash=0x850cmeta.name_hash = 0x850c egress_spec=2egress_spec=2
device:p4-dev-2device:p4-dev-2 meta.name_hash=0x850cmeta.name_hash = 0x850c egress_spec=3egress_spec=3
(C)如果数据包为NDN数据包,则根据内容存储表(CS表,Content Store)和请求兴趣表(PIT表,Pending Interest Table)进行转发。(C) If the data packet is an NDN data packet, it is forwarded according to the content store table (CS table, Content Store) and the request interest table (PIT table, Pending Interest Table).
当判断为一个NDN数据包时,交换机首先会查询PIT表是否有对应NDN数据包的内容名,如果查询成功,则将NDN数据包转发到该PIT表中列出的所有转发端口,删除该PIT条目,接着根据NDN数据包的内容名的哈希值0x850c查找CS表,如果找到CS表对应表项,说明内容库已有相应数据,不做处理。否则,在CS表中插入对应的键值对,并将数据缓存在内容库中。如果查询PIT表失败,则丢弃该NDN数据包。When it is determined to be an NDN data packet, the switch will first query the PIT table to see if there is a content name corresponding to the NDN data packet. If the query is successful, the NDN data packet will be forwarded to all forwarding ports listed in the PIT table, the PIT entry will be deleted, and then the CS table will be searched according to the hash value 0x850c of the content name of the NDN data packet. If the corresponding table entry in the CS table is found, it means that the content library already has the corresponding data and no processing is performed. Otherwise, the corresponding key-value pair is inserted in the CS table and the data is cached in the content library. If the query to the PIT table fails, the NDN data packet is discarded.
示例性地,当第一生产者收到第一消费者发来内容名为/NDN1/SWP/PCA/DATA1的请求包时,会发送数据包给第一消费者。其中,源MAC地址为第一生产者的网卡地址00:0c:29:ea:85:b2,目的MAC地址为组播地址01:00:5e:00:17:aa,类型为0x8624,载荷为NDN数据包的TLV信息。当可编程交换机P4_2收到数据包后,首先根据PIT表查询NDN数据包的内容名,如果在PIT表中找到对应表项,其中key键为0x850c,value键值为00000110,则将数据包分别从可编程交换机P4_2的出端口1和2转发。接着根据内容名哈希值0x850c查找CS表,如果找到CS表对应表项,其中key键为0x850c,value键值为1,说明内容库已有相应数据,不做处理。否则,在CS表中插入key为0x850c,value为1的表项,同时将数据缓存在内容库中。如果在PIT表中没有找到对应表项,丢弃数据包。Exemplarily, when the first producer receives a request packet with a content name of /NDN1/SWP/PCA/DATA1 from the first consumer, it will send a data packet to the first consumer. Among them, the source MAC address is the network card address 00:0c:29:ea:85:b2 of the first producer, the destination MAC address is the multicast address 01:00:5e:00:17:aa, the type is 0x8624, and the payload is the TLV information of the NDN data packet. When the programmable switch P4_2 receives the data packet, it first queries the content name of the NDN data packet according to the PIT table. If the corresponding table entry is found in the PIT table, where the key key is 0x850c and the value key value is 00000110, the data packet is forwarded from the outbound ports 1 and 2 of the programmable switch P4_2 respectively. Then, the CS table is searched according to the content name hash value 0x850c. If the corresponding table entry of the CS table is found, where the key key is 0x850c and the value key value is 1, it means that the content library already has the corresponding data and no processing is performed. Otherwise, insert an entry with key 0x850c and value 1 into the CS table and cache the data in the content library. If no corresponding entry is found in the PIT table, discard the data packet.
与前述基于SDN与NDN的虚实结合动态流量调度方法的实施例相对应,本发明还提供了基于SDN与NDN的虚实结合动态流量调度装置的实施例。Corresponding to the aforementioned embodiment of the virtual-real combined dynamic traffic scheduling method based on SDN and NDN, the present invention also provides an embodiment of the virtual-real combined dynamic traffic scheduling device based on SDN and NDN.
参见图5,本发明实施例提供的一种基于SDN与NDN的虚实结合动态流量调度装置,包括一个或多个处理器,用于实现上述实施例中的基于SDN与NDN的虚实结合动态流量调度方法。Referring to FIG. 5 , an embodiment of the present invention provides a virtual-real combined dynamic traffic scheduling device based on SDN and NDN, including one or more processors for implementing the virtual-real combined dynamic traffic scheduling method based on SDN and NDN in the above embodiment.
本发明基于SDN与NDN的虚实结合动态流量调度装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明基于SDN与NDN的虚实结合动态流量调度装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。The embodiment of the virtual-real combination dynamic traffic scheduling device based on SDN and NDN of the present invention can be applied to any device with data processing capabilities, and the any device with data processing capabilities can be a device or apparatus such as a computer. The device embodiment can be implemented by software, or by hardware or a combination of software and hardware. Taking software implementation as an example, as a device in a logical sense, it is formed by the processor of any device with data processing capabilities in which it is located to read the corresponding computer program instructions in the non-volatile memory into the memory for execution. From the hardware level, as shown in Figure 5, it is a hardware structure diagram of any device with data processing capabilities where the virtual-real combination dynamic traffic scheduling device based on SDN and NDN of the present invention is located. In addition to the processor, memory, network interface, and non-volatile memory shown in Figure 5, any device with data processing capabilities where the device in the embodiment is located can also include other hardware according to the actual function of the device with data processing capabilities, which will not be described in detail.
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。The implementation process of the functions and effects of each unit in the above-mentioned device is specifically described in the implementation process of the corresponding steps in the above-mentioned method, and will not be repeated here.
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的 部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。For the device embodiment, since it basically corresponds to the method embodiment, the relevant parts can refer to the partial description of the method embodiment. The device embodiment described above is only illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of the present invention. A person of ordinary skill in the art can understand and implement it without paying creative labor.
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于SDN与NDN的虚实结合动态流量调度方法。An embodiment of the present invention further provides a computer-readable storage medium on which a program is stored. When the program is executed by a processor, the virtual-real combined dynamic traffic scheduling method based on SDN and NDN in the above embodiment is implemented.
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。The computer-readable storage medium may be an internal storage unit of any device with data processing capability described in any of the aforementioned embodiments, such as a hard disk or a memory. The computer-readable storage medium may also be any device with data processing capability, such as a plug-in hard disk, a smart media card (SMC), an SD card, a flash card, etc. equipped on the device. Furthermore, the computer-readable storage medium may also include both an internal storage unit of any device with data processing capability and an external storage device. The computer-readable storage medium is used to store the computer program and other programs and data required by any device with data processing capability, and may also be used to temporarily store data that has been output or is to be output.
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。Those skilled in the art will readily appreciate other embodiments of the present application after considering the description and practicing the contents disclosed herein. The present application is intended to cover any variations, uses or adaptations of the present application, which follow the general principles of the present application and include common knowledge or customary technical means in the art that are not disclosed in the present application. The description and examples are intended to be exemplary only.
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。It should be understood that the present application is not limited to the exact construction that has been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof.

Claims (12)

  1. 一种基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,所述方法包括:A virtual-real combined dynamic traffic scheduling method based on SDN and NDN, characterized in that the method comprises:
    基于网络拓扑构建NDN网络:将虚拟交换机组成虚拟网络拓扑,可编程交换机组成实体网络拓扑,将虚拟网络拓扑与实体网络拓扑连接,且均与SDN控制器通信;运行NDN协议栈的生产者主机、消费者主机随机连接至某一可编程交换机或某一虚拟交换机;Build an NDN network based on network topology: virtual switches form a virtual network topology, programmable switches form a physical network topology, connect the virtual network topology with the physical network topology, and both communicate with the SDN controller; the producer host and consumer host running the NDN protocol stack are randomly connected to a programmable switch or a virtual switch;
    生产者主机接入或离开NDN网络时,向SDN控制器发送请求数据包,SDN控制器根据请求数据包更新生产者数据;When a producer host joins or leaves the NDN network, it sends a request packet to the SDN controller, and the SDN controller updates the producer data based on the request packet;
    在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发;如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发,当转发信息表匹配失败时,交换机发送请求给控制器,由控制器决策转发路径;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发。When forwarding data packets between programmable switches or virtual switches, the programmable switch or virtual switch determines the type of data packet; if the data packet is an IP data packet, it is forwarded at layer 2 or 3; if the data packet is an NDN interest packet, it is forwarded according to the content storage table, request interest table, and forwarding information table. When the forwarding information table fails to match, the switch sends a request to the controller, which decides the forwarding path; if the data packet is an NDN data packet, it is forwarded according to the content storage table and request interest table.
  2. 根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,基于网络拓扑构建NDN网络的过程还包括:The virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 1 is characterized in that the process of building an NDN network based on the network topology also includes:
    SDN控制器通过调用Netconf协议接口,将包含可编程交换机和虚拟交换机对应的链路、设备配置信息添加到SDN控制器的网络视图中;SDN控制器通过P4runtime南向接口与可编程交换机、虚拟交换机通信。The SDN controller adds the link and device configuration information corresponding to the programmable switch and virtual switch to the network view of the SDN controller by calling the Netconf protocol interface; the SDN controller communicates with the programmable switch and virtual switch through the P4runtime southbound interface.
  3. 根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,所述SDN控制器包含:The virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 1 is characterized in that the SDN controller comprises:
    网络发现模块,用于维护可编程交换机、虚拟交换机间的链路视图,并通过LLDP协议和BDDP协议完成链路发现;The network discovery module is used to maintain the link view between programmable switches and virtual switches, and complete link discovery through the LLDP protocol and BDDP protocol;
    主机服务模块,负责主机发现,确定全局视图中的生产者主机和消费者主机的位置,并通过监听ARP报文和DHCP报文,为其提供主机发现和定位功能;The host service module is responsible for host discovery, determining the location of producer hosts and consumer hosts in the global view, and providing host discovery and positioning functions by monitoring ARP and DHCP messages;
    NDN管理模块,用于负责维护生产者数据;其中生产者数据包括生产者主机的MAC地址、生产者主机直连的交换机ID、数据包内容名的哈希值;NDN management module, responsible for maintaining producer data; producer data includes the MAC address of the producer host, the ID of the switch directly connected to the producer host, and the hash value of the data packet content name;
    网络配置模块负责向各网络组件注入属性和配置信息,包括设备名称、管理地址、设备位置、拥有者信息、硬件和软件版本、设备端口类型和名称。The network configuration module is responsible for injecting attributes and configuration information into each network component, including device name, management address, device location, owner information, hardware and software versions, and device port type and name.
  4. 根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,生产者主机接入NDN网络时,向控制器发送请求数据包,控制器根据请求数据包更新生产者数据的过程包括:The virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 1 is characterized in that when the producer host accesses the NDN network, it sends a request data packet to the controller, and the process in which the controller updates the producer data according to the request data packet includes:
    运行NDN协议栈的生产者主机接入NDN网络后,主动向SDN控制器发送请求数据包,与生产者主机直连的可编程交换机或虚拟交换机收到请求数据包后将请求数据包转发至SDN控制器,SDN控制器根据请求数据包中的生产者主机MAC地址得到与生产者主机直连的交换机ID,将生产者主机MAC地址、与生产者主机直连的交换机ID、数据包内容名的哈希值更新并存储在生产者数据中。After the producer host running the NDN protocol stack accesses the NDN network, it actively sends a request data packet to the SDN controller. After receiving the request data packet, the programmable switch or virtual switch directly connected to the producer host forwards the request data packet to the SDN controller. The SDN controller obtains the ID of the switch directly connected to the producer host based on the producer host MAC address in the request data packet, and updates the hash value of the producer host MAC address, the switch ID directly connected to the producer host, and the data packet content name and stores them in the producer data.
  5. 根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,生产者主机离开NDN网络时,向控制器发送请求数据包,控制器根据请求数据包更新生产者数据的过程包括:The virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 1 is characterized in that when the producer host leaves the NDN network, it sends a request data packet to the controller, and the process in which the controller updates the producer data according to the request data packet includes:
    运行NDN协议栈的生产者主机断开与NDN网络的连接前,主动向SDN控制器发送一个请求数据包,与生产者主机直连的可编程交换机或虚拟交换机收到请求数据包后将请求数据包转发至SDN控制器,SDN控制器根据生产者主机的MAC地址和数据包内容名的哈希值在生产者数据表中查找对应的条目并删除,以此更新生产者数据。Before the producer host running the NDN protocol stack disconnects from the NDN network, it actively sends a request data packet to the SDN controller. After receiving the request data packet, the programmable switch or virtual switch directly connected to the producer host forwards the request data packet to the SDN controller. The SDN controller searches for the corresponding entry in the producer data table based on the MAC address of the producer host and the hash value of the data packet content name and deletes it, thereby updating the producer data.
  6. 根据权利要求4或5所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,所述请求数据包的格式为:源MAC地址、目的MAC地址、包类型、载荷。According to the virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 4 or 5, it is characterized in that the format of the request data packet is: source MAC address, destination MAC address, packet type, and payload.
  7. 根据权利要求4或5所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,可编程交换机或虚拟交换机判断数据包的类型的过程包括:According to the virtual-real combination dynamic traffic scheduling method based on SDN and NDN according to claim 4 or 5, it is characterized in that the process of the programmable switch or virtual switch determining the type of the data packet includes:
    当包类型为0x0806或0x0800,则数据包为IP数据包;当包类型为0x8624,可编程交换机或虚拟交换机做NDN包解析,如果包类型为0x05,则数据包为NDN兴趣包,如果包类型为0x06,则数据包为NDN数据包。When the packet type is 0x0806 or 0x0800, the data packet is an IP data packet. When the packet type is 0x8624, the programmable switch or virtual switch performs NDN packet parsing. If the packet type is 0x05, the data packet is an NDN interest packet. If the packet type is 0x06, the data packet is an NDN data packet.
  8. 根据权利要求7所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,可编程交换机或虚拟交换机判断数据包类型的过程还包括:通过哈希算法对NDN兴趣包和/或NDN数据包的内容名进行哈希,得到内容名的哈希值。According to the virtual-real dynamic traffic scheduling method based on SDN and NDN according to claim 7, it is characterized in that the process of the programmable switch or virtual switch determining the type of data packet also includes: hashing the content name of the NDN interest packet and/or the NDN data packet through a hash algorithm to obtain a hash value of the content name.
  9. 根据权利要求1或7所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,The virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 1 or 7 is characterized in that:
    如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发的过程包括:If the data packet is an NDN interest packet, the process of forwarding according to the content storage table, the request interest table, and the forwarding information table includes:
    根据兴趣包内容名的哈希值,从内容存储表查找匹配记录;如果与内容存储表匹配成功,则从交换机的内容库中根据内容名的哈希值找到NDN数据包,根据内容名查找PIT表的转发端口集合,从转发端口转发,同时丢弃NDN兴趣包;According to the hash value of the content name of the interest packet, a matching record is searched from the content storage table; if the match with the content storage table is successful, the NDN data packet is found from the content library of the switch according to the hash value of the content name, and the forwarding port set of the PIT table is searched according to the content name, and forwarded from the forwarding port, while the NDN interest packet is discarded;
    如果与内容存储表匹配不成功,则将兴趣包内容名的哈希值作为key键与转发信息表进行匹配,如果匹配成功,则从转发信息表中对应的转发端口转发NDN兴趣包,并将入端口号插 入到请求兴趣表;If the match with the content storage table fails, the hash value of the interest packet content name is used as the key to match the forwarding information table. If the match succeeds, the NDN interest packet is forwarded from the corresponding forwarding port in the forwarding information table, and the inbound port number is inserted into the request interest table;
    如果与转发信息表匹配不成功,将出端口号设置为控制器端口号,然后将NDN兴趣包转发至SDN控制器,SDN控制器收到输入请求后根据NDN兴趣包的源MAC地址查询消费者主机的信息,再查询消费者主机的接入交换机ID;SDN控制器查询生产者数据,找到NDN兴趣包内容名对应的生产者主机MAC地址、与生产者主机直连的交换机ID集合,从交换机ID集合中选取路径最短的一条,沿路径为虚拟交换机或可编程交换机下发FIB匹配流表,并发送输出消息到与生产者主机直连的交换机,设置NDN兴趣包的出端口。If the match with the forwarding information table is unsuccessful, the outbound port number is set to the controller port number, and then the NDN interest packet is forwarded to the SDN controller. After receiving the input request, the SDN controller queries the information of the consumer host according to the source MAC address of the NDN interest packet, and then queries the access switch ID of the consumer host; the SDN controller queries the producer data, finds the producer host MAC address corresponding to the content name of the NDN interest packet, and the switch ID set directly connected to the producer host, selects the shortest path from the switch ID set, sends the FIB matching flow table to the virtual switch or programmable switch along the path, and sends the output message to the switch directly connected to the producer host, and sets the outbound port of the NDN interest packet.
  10. 根据权利要求1或7所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,The virtual-real combined dynamic traffic scheduling method based on SDN and NDN according to claim 1 or 7 is characterized in that:
    如果数据包为NDN数据包,则根据请求兴趣表和内容存储表进行转发的过程包括:If the data packet is an NDN data packet, the process of forwarding according to the request interest table and the content storage table includes:
    当判断为一个NDN数据包时,交换机首先会查询请求兴趣表是否有对应NDN数据包的内容名,如果查询成功,则将NDN数据包转发到请求兴趣表中列出的所有转发端口,删除请求兴趣表中对应的条目,接着根据NDN数据包的内容名的哈希值查找内容存储表,如果找到内容存储表中的对应表项,则不做处理;否则,在内容存储表中插入对应的键值对,并在交换机内容库中缓存NDN数据包;如果查询请求兴趣表失败,则丢弃该NDN数据包。When it is determined to be an NDN data packet, the switch will first query the request interest table to see if there is a content name corresponding to the NDN data packet. If the query is successful, the NDN data packet will be forwarded to all forwarding ports listed in the request interest table, and the corresponding entry in the request interest table will be deleted. Then, the content storage table will be searched according to the hash value of the content name of the NDN data packet. If the corresponding table entry in the content storage table is found, no processing will be performed; otherwise, the corresponding key-value pair will be inserted into the content storage table, and the NDN data packet will be cached in the switch content library; if the query to the request interest table fails, the NDN data packet will be discarded.
  11. 一种基于SDN与NDN的虚实结合动态流量调度装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-10中任一项所述的基于SDN与NDN的虚实结合动态流量调度方法。A virtual-real combined dynamic traffic scheduling device based on SDN and NDN, characterized by comprising one or more processors for implementing the virtual-real combined dynamic traffic scheduling method based on SDN and NDN as described in any one of claims 1-10.
  12. 一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-10中任一项所述的基于SDN与NDN的虚实结合动态流量调度方法。A computer-readable storage medium having a program stored thereon, characterized in that when the program is executed by a processor, it is used to implement the virtual-real combined dynamic traffic scheduling method based on SDN and NDN as described in any one of claims 1-10.
PCT/CN2022/134100 2022-11-24 2022-11-24 Virtual and real combined dynamic traffic scheduling method and apparatus based on sdn and ndn WO2024108493A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/134100 WO2024108493A1 (en) 2022-11-24 2022-11-24 Virtual and real combined dynamic traffic scheduling method and apparatus based on sdn and ndn

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/134100 WO2024108493A1 (en) 2022-11-24 2022-11-24 Virtual and real combined dynamic traffic scheduling method and apparatus based on sdn and ndn

Publications (1)

Publication Number Publication Date
WO2024108493A1 true WO2024108493A1 (en) 2024-05-30

Family

ID=91194816

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/134100 WO2024108493A1 (en) 2022-11-24 2022-11-24 Virtual and real combined dynamic traffic scheduling method and apparatus based on sdn and ndn

Country Status (1)

Country Link
WO (1) WO2024108493A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333510A (en) * 2014-11-24 2015-02-04 重庆邮电大学 Label switching forwarding strategy in named date network
CN108289062A (en) * 2017-12-21 2018-07-17 北京邮电大学 A kind of information centre's network structure based on software definition
US20180241669A1 (en) * 2017-02-22 2018-08-23 Cisco Technology, Inc. System and method to facilitate an information-centric networking socket and fast in-network authentication
CN113810287A (en) * 2021-09-10 2021-12-17 北京理工大学 Data retrieval and pushing method based on NDN and SDN

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333510A (en) * 2014-11-24 2015-02-04 重庆邮电大学 Label switching forwarding strategy in named date network
US20180241669A1 (en) * 2017-02-22 2018-08-23 Cisco Technology, Inc. System and method to facilitate an information-centric networking socket and fast in-network authentication
CN108289062A (en) * 2017-12-21 2018-07-17 北京邮电大学 A kind of information centre's network structure based on software definition
CN113810287A (en) * 2021-09-10 2021-12-17 北京理工大学 Data retrieval and pushing method based on NDN and SDN

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Chinese Master Thesis", 15 February 2019, TSINGHUA UNIVERSITY, CN, article WU, HAO: "Research on In-network Caching and Evolution Technology of Named Data Networking", pages: 1 - 122, XP009554924 *
HUANG TAO; GAO WEN-ZHE; SICHUAN XINGHUINUO: "Research on Routing Strategy of NDN Nnetwork Based on SDN Technology", DIGITAL TECHNOLOGY & APPLICATION, vol. 38, no. 2, 25 February 2022 (2022-02-25), pages 148 - 149, XP009554996, ISSN: 1007-9416, DOI: 10.19695/j.cnki.cn12-1369.2020.02.81 *

Similar Documents

Publication Publication Date Title
US7978631B1 (en) Method and apparatus for encoding and mapping of virtual addresses for clusters
US9019814B1 (en) Fast failover in multi-homed ethernet virtual private networks
CN106452857B (en) Method for generating configuration information and network control unit
US9736263B2 (en) Temporal caching for ICN
EP2843906B1 (en) Method, apparatus, and system for data transmission
US20180069715A1 (en) Multicasting within distributed control plane of a switch
CN107113241B (en) Route determining method, network configuration method and related device
US11652735B2 (en) Multicast data packet processing method, and apparatus
US9960998B2 (en) Forwarding packet in stacking system
WO2018010626A1 (en) Cloud-end data multicast method and system, and computer device
WO2017028398A1 (en) Communication processing method and device
US11153420B2 (en) Neighbor equivalence groups
WO2024093064A1 (en) Identifier management and forwarding optimization method and apparatus in large-scale multi-modal network
US20160380887A1 (en) Source imposition of network routes in computing networks
CN114885443B (en) Multi-mode network control system and method supporting mobile access of terminal
EP3588859A1 (en) Network device configuration versioning
JP2019523608A (en) Packet monitoring
US9553764B2 (en) Migration of guest bridge
WO2018001339A1 (en) Method and apparatus for forwarding packet in virtual extensible local area network (vxlan)
WO2016044990A1 (en) Method and apparatus for determining network topology, and centralized network state information storage device
WO2019128612A1 (en) Method and device for processing routing protocol packet
CN115865844B (en) Virtual-real combined dynamic flow scheduling method and device based on SDN (software defined network) and NDN (non-dynamic network)
US8855015B2 (en) Techniques for generic pruning in a trill network
US10764330B2 (en) LAN/SAN network security management
US8606890B2 (en) Managing communication between nodes in a virtual network