WO2014202030A1 - 增强OpenFlow网络能力的网络控制器、交换机和方法 - Google Patents

增强OpenFlow网络能力的网络控制器、交换机和方法 Download PDF

Info

Publication number
WO2014202030A1
WO2014202030A1 PCT/CN2014/080476 CN2014080476W WO2014202030A1 WO 2014202030 A1 WO2014202030 A1 WO 2014202030A1 CN 2014080476 W CN2014080476 W CN 2014080476W WO 2014202030 A1 WO2014202030 A1 WO 2014202030A1
Authority
WO
WIPO (PCT)
Prior art keywords
protocol
link layer
switch
message
data packet
Prior art date
Application number
PCT/CN2014/080476
Other languages
English (en)
French (fr)
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 北京邮电大学
Publication of WO2014202030A1 publication Critical patent/WO2014202030A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping

Definitions

  • the present invention relates to the field of network communication technologies, and in particular, to a network controller, a switch, and a method for enhancing an OpenFlow network capability. Background technique
  • SDN Software Defined Network
  • SDN is a software-defined network that consists of a two-part architecture: a control network consisting of network controllers and a data network consisting of the underlying switches. It concentrates the intelligence in the traditional network in the control network composed of network controllers. The underlying switches do not have any network intelligence, and only forward data according to the instructions of the network controller.
  • the OpenFlow network based on the OpenFlow protocol is an implementation of SDN.
  • the existing OpenFlow network includes a network controller 10 and an underlying switch 20.
  • the control network composed of the network controller 10 can be regarded as a network operating system, and the network user can be programmed by using the standard SDN API provided by the network controller 10 to the upper layer service, that is, the network application 30 is developed in a software-defined manner.
  • the underlying switch 20 does not have any network intelligence. It can only parse, match, and forward data packets according to the flow table sent by the OpenFlow network controller.
  • the network controllers in the existing OpenFlow network have many limitations and deficiencies in the software definition capabilities of the switch data network:
  • the network architecture supported by the OpenFlow network is limited.
  • the existing OpenFlow network only supports the traditional transmission control protocol TCP/Internet Protocol (IP) network architecture, and does not support non-IP network architecture.
  • IP Internet Protocol
  • Network users cannot deploy heterogeneous networks of different architectures in a software-defined manner on the network according to their needs.
  • the OpenFlow protocol cannot specify the way the switch handles data packets in a software-defined manner. It can only use the Actions of the OpenFlow protocol specification to perform simple processing on the data packets. 3.
  • the OpenFlow protocol cannot manage various network resources on the switch (such as queues on switch ports) in a software-defined manner, and cannot guarantee the QoS parameters of data flows in the network.
  • the OpenFlow network protocol can only be based on the Ethernet Layer 2 protocol and cannot be based on other link layer protocols (for example, the optical network layer 2 protocol and the L2 protocol in 3GPP). The developer cannot use the software to define the OpenFlow network. Dependent link layer protocol for programming.
  • Scenario 1 (see Figure 2): When a heterogeneous architecture network is deployed in an existing OpenFlow network, the heterogeneous network uses a new network protocol Proto-A encapsulated in IPv4 headers for end-to-end data transmission.
  • the network controller cannot configure the switch to parse and forward the network protocol Proto-A packets in a software-defined manner. This will provide a new processing mechanism for the OpenFlow network to enable the network controller to configure the switch to parse and forward multiple network protocols.
  • Scenario 2 (see Figure 3): When tunneling is used in an existing OpenFlow network, an IPv4 header is encapsulated for the IPv6 packet at the tunnel entrance, and the encapsulated IPv4 header is removed at the tunnel exit to restore the original IPv6. data pack.
  • the action of the switch processing the data packet cannot be extended in a software-defined manner to complete the encapsulation and decapsulation of the tunnel. That is, existing OpenFlow networks cannot configure such tunnel scenarios in a software-defined manner.
  • Scenario 3 When a voice service is deployed on an OpenFlow network, the OpenFlow protocol used by the existing OpenFlow network cannot configure the bandwidth of the physical link and the packet loss rate of the queue, and cannot guarantee the reliable bandwidth of the voice channel. That is, the existing OpenFlow network in this scenario cannot configure the network resources used by one data flow in a software-defined manner to guarantee the QoS parameters of the data flow.
  • Scenario 4 The packet network protocol format in the existing OpenFlow network can only depend on the link layer protocol of Ethernet, and does not support other data link layer protocols. Users should be able to configure the switch in a software-defined manner so that the switch can understand multiple link layer protocols, enabling the switch to forward packets from multiple network interfaces. Summary of the invention
  • an object of the present invention is to provide a network controller, a switch, and a method for enhancing an OpenFlow network capability, so that the OpenFlow network of the present invention can software define a network architecture, so that different architectures can be deployed in an OpenFlow network.
  • Heterogeneous network, and each different Networking has the function of independent addressing, routing and execution of related network protocols, so that it is existing
  • the software-defined capabilities and software-defined scope of the network are greatly improved and expanded, so that the programmability of the entire SDN network is further improved.
  • the invention provides a network controller, the network controller comprising:
  • a protocol parsing configuration module configured to generate a network protocol configuration message required to parse a network protocol of the data packet, and deliver the network protocol configuration message
  • a packet processing programming module configured to generate an operation configuration message, specify an operation on the data packet in a software-defined manner, and deliver the operation configuration message;
  • a queue resource configuration module configured to generate a queue configuration message, specify a queue parameter of the switch port queue in a software-defined manner, and deliver the queue configuration message
  • a link layer protocol configuration module configured to generate a link layer protocol configuration message, specify a data link layer protocol required to parse the data packet, and a frame structure describing the data link layer protocol in a software defined manner, and Send the link layer protocol configuration message.
  • the invention also provides a switch, the switch comprising:
  • a link layer protocol adaptation module configured to receive a link layer protocol configuration message, parse the data link layer protocol of the received data packet according to the link layer protocol configuration message, and send the data link layer protocol to the protocol parsing module;
  • the protocol parsing module And configured to perform network protocol parsing on the data packet parsed by the data link layer, extract a key segment, and generate a structured data packet according to the configuration of the protocol parsing table in the received protocol configuration message;
  • a packet processing pipeline module configured to divide at least one flow table stored in the switch into at least one pipeline, match the structured data packet according to the flow entry of the at least one flow table, and perform the data packet on the data packet
  • the setting operation in the matched flow entry item performs a corresponding operation on the data packet according to the received operation configuration message
  • an output queue module configured to receive a queue configuration message, and set a corresponding queue parameter according to the queue configuration message, so that the data packet processing pipeline module forwards the data packet to a corresponding output queue according to the flow table instruction.
  • the present invention also provides a method for enhancing the capability of an OpenFlow network, comprising the following steps: (1) The switch receives a network data packet, and determines whether the data link layer protocol of the data packet can be parsed; if so, the step is performed (3); if not, generating a first control message, and reporting the data packet to the network controller; (2) after receiving the control message, the network controller determines whether to configure a data link layer protocol for the switch, and if not, discards the data packet; if necessary, the first control message Responding to: parsing a data link layer protocol required by the data packet and describing a frame structure of the data link layer protocol, and then transmitting the data packet to the switch by using an extended OpenFlow message;
  • the switch parses the link layer protocol of the data packet, and determines whether the network protocol analysis can be performed on the data packet that has been analyzed by the link layer protocol, and if so, step (5) is performed; If not, generating a second control message, and reporting the data packet that cannot be parsed by the network protocol to the network controller;
  • the network controller in response to the second control message, determining whether it is necessary to configure a new network protocol that is parsed by the switch, and if not, discarding the data packet; if necessary, parsing the data packet
  • the required protocol parsing table is sent to the switch by using the extended OpenFlow message;
  • the switch parses the network protocol of the data packet according to the protocol parsing table and extracts a matching item
  • the switch searches for a flow table of the switch according to the matching item extracted from the data packet, and determines whether the data packet matches the flow entry of the switch; if yes, Performing step (8); if not, generating a third control message, reporting the data packet that cannot be matched to the network controller;
  • the network controller determines whether the third control message needs to be processed, and if not, the data packet is discarded; to be processed, the network controller sends the switch to the switch according to its service logic.
  • Corresponding flow table configuring corresponding queue resources, and delivering corresponding operation content of processing the data packet;
  • the network controller matches the flow table according to the key segment extracted from the data packet, and executes an instruction matched to the flow entry, performs software-defined configuration processing on the data packet, and then processes the data packet.
  • the data packet is distributed to the corresponding port output queue;
  • the switch encapsulates the corresponding data link layer protocol according to the link layer information description, and then forwards the data packet from different network interfaces.
  • the invention has the beneficial effects that the OpenFlow network system with enhanced programmability of the invention improves the existing OpenFlow network architecture, and expands the software-definable modules and functions in the OpenFlow network, so that the software can be defined in OpenFlow.
  • Heterogeneous networks of multiple different types of services are deployed in the network, and the software-defined scope of the SDN network is extended, and the OpenFlow network is enhanced.
  • the programmability enables a variety of different network services to be deployed more flexibly and conveniently into OpenFlow networks. Therefore, the present invention has a good prospect of popularization and application. BRIEF DESCRIPTION OF THE DRAWINGS
  • Figure 1 is a schematic diagram of the composition of an existing OpenFlow network architecture.
  • FIG. 2 is a schematic diagram of a process of adding a new network protocol to a network controller in an existing OpenFlow network based on an original protocol executed by a switch capable of configuring, parsing, and forwarding control.
  • Figure 3 (A) and (B) are two schematic diagrams of the IPv6 packet structure of the unencapsulated IPv4 header and the IPv6 packet structure of the IPv4 header for the tunnel scene.
  • FIG. 4 is a schematic structural diagram of an OpenFlow network system architecture with enhanced programmability according to the present invention.
  • FIG. 5 is a schematic structural diagram of a protocol parsing unit in a network system according to the present invention.
  • FIG. 6 is a schematic diagram showing the structure of a message structure of a configuration protocol parsing table in the network system of the present invention.
  • FIG. 7 is a schematic diagram showing the composition of a structured data packet after being parsed by a protocol in the network system of the present invention.
  • FIG. 8 is a schematic structural diagram of a data processing unit in a network system according to the present invention.
  • FIG. 9 is a schematic structural diagram of a message structure for configuring an Action in a network system according to the present invention.
  • Figure 10 is a schematic diagram showing the design steps of a Pipeline multi-stage pipeline in the network system of the present invention.
  • FIG. 11 is a schematic structural diagram of a message configuration forwarding queue message structure in a network system according to the present invention.
  • FIG. 12 is a schematic structural diagram of a link layer protocol configuration unit in a network system according to the present invention.
  • FIG. 13 is a schematic diagram showing the structure of a message structure for configuring a link layer protocol in the network system of the present invention.
  • Figure 14 is a flow chart showing the operational steps of the working method of the network system of the present invention.
  • FIG. 15 is a schematic diagram of a new protocol parsing table added to the network system of the present invention. detailed description
  • FIG. 4 is a schematic diagram showing the architecture of an OpenFlow network system with enhanced programmability of the present invention. Figure. The network controllers and switches of the existing OpenFlow network are respectively extended.
  • the network controller 30 adds: a protocol parsing configuration module 31, a packet processing programming module 32, a queue resource configuration module 33, and a link layer protocol configuration module 34.
  • a protocol parsing configuration module 31 a protocol parsing configuration module 41, a packet processing pipeline module 42, an output queue module 43, and a link layer protocol adaptation module 44.
  • the structural composition of these two modules is shown in Figure 5.
  • the protocol parsing configuration module 31 is responsible for delivering the extended OpenFlow message to the switch 40, configuring and parsing various network protocols used by the switch 40, and adding the protocol parsing table used by the switch 40 through the extended OpenFlow message. Delete and modify operations, and configure the protocol resolution function of switch 40 in a software-defined manner.
  • the extended OpenFlow message is also called a protocol configuration message and includes the following three fields: a message header, an instruction, and a protocol content description.
  • Command is used to set an action that can be executed according to the extended OpenFlow message, including: creating a new table (Create) in the protocol parsing table, modifying an existing table (Modify), and deleting a table (Delete), and many more.
  • Protocol content For example, the information in the network protocol and the protocol fields that need to be extracted are described in the NetPDL language including extensible markup language (XML).
  • XML extensible markup language
  • the protocol parsing module 41 has two functions: 1) responsible for processing the protocol configuration message sent by the network controller 30; 2) performing protocol parsing on the data packet entering the switch 40 according to the protocol configuration message. To this end, the module is responsible for maintaining a plurality of protocol resolution tables, and the protocol resolution table is negotiated by the network controller 30. Configure the message to configure. Each protocol resolution table can be used to resolve a particular network protocol and extract the value of the relevant key fields of the protocol. For example, the protocol parsing table of IPv4 can extract the value of a key segment such as a source IP address and a destination IP address in a data packet. Therefore, the input of the protocol parsing module 41 is the original network data packet, and the output thereof is a structured network data packet extracted from the network protocol key field.
  • the structured data packet is a data packet in which a key segment of the network protocol is extracted, and in the MatchFields substructure, a matching item extracted by the protocol analysis table is stored.
  • the packet processing programming module 32 and the packet processing pipeline module 42 are configured to process the transmission of data packets in the network, and jointly complete the matching and processing of the data packets by the switch flow table.
  • the structure of the two modules is shown in Figure 8.
  • the packet processing programming module 32 is responsible for specifying the operation of the switch on the data packet in a software-defined manner.
  • the packet processing operation Action command is sent to the designated switch 40 through the extended OpenFlow protocol, and the software defines the switch 40 to process the packet.
  • the user in order to enable the switch to perform complex tunnel encapsulation and decapsulation operations on the data packet, the user can send the code used for the tunnel encapsulation and decapsulation operations to the switch 40 through the extended OpenFlow protocol, and the switch 40
  • the code is stored in switch 40 as an extended Action for tunnel encapsulation and decapsulation of the data packets. After the intermediate packets of the tunnel ingress and egress switches are matched to a specific flow entry, the tunnel encapsulation and decapsulation actions are performed to complete the processing of the data packets at the tunnel entry and exit.
  • FIG. 9 is a schematic structural diagram of a message structure for configuring an Action in a network system according to the present invention.
  • the packet processing programming module 32 configures the switch 40 to support the extended OpenFlow message structure of the Action, including the following three fields: a message header, an instruction, and an operation description.
  • Command Used to set the operation content of extended OpenFlow message execution, including: Add a new Action ( Create ) to the switch, modify an Action ( Modify ) in the switch, and delete an Action ( Delete ) in the switch.
  • Action Description A processing code for a packet that indicates the processing of the packet. A list of parameters that the procedure and Action need to accept.
  • the packet processing pipeline module 42 is used to provide a processing strategy. It divides multiple flow tables in the switch 40 into multiple different pipelines to isolate data flows and isolated network resources belonging to different virtual networks, and matches the structured data packets according to the flow entry, and then matches the matched data packets. Perform the set operation in the flow entry to perform software-defined operations on the packet.
  • the input to the packet processing pipeline module 42 is the structured data packet output by the protocol parsing module 41, the output of which is the data packet transmitted in the network.
  • the switch pipeline in the existing OpenFlow network supports multi-level flow tables. All data packets must first match the logical level 0 flow table.
  • the level 0 flow table consists of several physical flow tables. Its function is to distribute the data packets to different Matches in the pipeline. If you hit the level 0 flow table, the packet jumps to the other stream table to continue matching.
  • FIG. 10 is a schematic diagram showing the design of a Pipeline multi-stage pipeline in the network system of the present invention.
  • the packet processing pipeline module 42 divides the multi-level flow table in the switch 40 into a plurality of pipelines. After matching and processing by different pipelines, the data packets are distributed to different output queues, and the pairs belong to different pipelines respectively. The data stream is isolated. This process can be used to isolate virtual network flow table resources and network bandwidth in network virtualization. Each virtual network can have its own independent pipeline.
  • the level 0 flow table first matches the data packet and extracts the corresponding field, and then distributes the data packet to the appropriate pipeline.
  • the data packet may be matched by different fields. For example, in the ICN virtual network, the packet matches the extracted URL field and outputs the packet to the corresponding port queue. In the label switching virtual network, the data packet matches the extracted switching label and is output to the corresponding port queue.
  • the input to the packet processing pipeline module 42 is the structured packet output by the protocol parsing module 41.
  • the output of the packet processing pipeline module 42 is the data packet transmitted in the network.
  • (C) a queue resource configuration module 33 and an output queue module 43 for providing QoS guarantee for data flows in the network, configuring queue parameters in the OpenFlow network switch in a software-defined manner, and performing traffic on the data flows in the network Plastic surgery.
  • the queue resource configuration module 33 is configured to configure the queue parameter of the switch port queue in a software-defined manner, and send the configuration information to the switch 40 through the extended OpenFlow protocol message; the queue parameter on the switch port configured by the module Including: queue identifier queue_id, parent queue identifier parent_id, queue type, queue length, maximum processing unit, minimum bandwidth, maximum bandwidth, priority, etc., for the network controller to use the software-defined way to control the network congestion and flow control.
  • FIG. 11 is a schematic diagram showing the structure of a message configuration forwarding queue message structure in the network system of the present invention. As shown in FIG. 11, the queue resource configuration module 33 configures the following two fields in the extended OpenFlow message structure of the forwarding queue: a message header and a queue parameter.
  • the queue parameter (queue_configure) is used to store various information about all configuration queues, including the queue type, and various queue parameters supported by the switch (including queue ID queue_id, parent queue identifier parent_id, queue type, queue length, maximum processing unit, Minimum bandwidth, maximum bandwidth, priority, etc.).
  • the output queue module 43 is responsible for accepting the configuration of the queue resource configuration module 33, setting corresponding queue parameters, so that the packet processing pipeline module forwards the data packet to the corresponding output queue according to the flow table instruction; and the method enables the network controller to Distribute data streams to different output queues to provide different QoS guarantees for different data streams.
  • the link layer protocol configuration module 34 and the link layer protocol adaptation block 44 are configured to configure and parse different data link layer protocols used by the OpenFlow network to hide differences in data link layer protocols in the network.
  • Figure 12 is a diagram showing the composition of the link layer protocol configuration module 34 and the link layer protocol adaptation module 44 in the network system of the present invention.
  • the link layer protocol configuration module 34 is configured to specify a data link layer protocol used by the OpenFlow network in a software-defined manner, and send the data link layer protocol configuration information to the switch through the extended OpenFlow message. To enable the OpenFlow network to use any data link layer protocol including user customization.
  • the link layer protocol adaptation module 44 processes the data frame received by the switch, the input is a data frame received by a different network interface of the switch, and the output is a network data packet parsed by the data link layer protocol.
  • the module processes the packets forwarded by the switch, its input is the data packet in the switch output queue, and the output is a data frame encapsulating different data link layer protocols.
  • FIG. 13 is a schematic diagram showing the structure of a message structure for configuring a link layer protocol in the network system of the present invention. See Figure 13, Link Layer Protocol Configuration Module 34 Configuring Extensions to the Link Layer Protocol The following three fields in the OpenFlow message structure: Message Header, Instruction, and Link Layer Adaptation Code.
  • Standard Header using the OpenFlow protocol indicates that the extended Openflow message is a configuration message of the link layer protocol adaptation module for the switch, as shown in type 1 in FIG. 13; 2) an Expererer message that extends the OpenFlow protocol: indicates the above configuration message , as shown in type 2 in Figure 13.
  • Command For example, it is used to set the operation of the link layer protocol, including: supporting a new link layer protocol, deleting the existing link layer protocol support, and modifying the existing link layer protocol parsing process. .
  • Link layer adaptation code A link layer protocol adaptation code defined for the user software, the code comprising: a) describing how to extract its payload from a new link layer frame, and what protocol is used for the payload. ; b) describes how to encapsulate the data packets in the switch into a frame of a link layer protocol.
  • the link layer protocol adaptation module 44 is configured to parse the configuration information sent by the network controller 30, and write the link layer protocol description sent by the network controller 30 to the programmable module in the network interface.
  • the module also adapts the link layer data received by each network interface of the switch, parses the data link layer protocol of different network interface data frames, and hides the difference of different link layer protocols: that is, for different network interfaces. After the data frame is parsed, it is placed in the input queue.
  • the module encapsulates different data link layer protocols from the data packets forwarded from different network interfaces to the output queue, and then forwards them out through the network interface.
  • the link layer protocol adaptation module 44 determines whether the programmable module in the network interface can parse the data link of the data frame. The layer protocol; if yes, the step (3) is performed; if not, the link layer protocol adaptation module 44 generates a control message including the packet-in, and reports the unprocessable data frame to the network controller. 30 link layer protocol configuration module 34;
  • the link layer protocol configuration module 34 determines whether the data link layer protocol is to be configured for the switch, and if not, discards the data packet; If necessary, the link layer protocol configuration module 34 responds to the control message: parsing the data link layer protocol required for the data packet and describing the frame structure of the data link layer protocol, and then using the extended OpenFlow message The data packet is sent to the link layer protocol adaptation module 44 of the switch;
  • the link layer protocol adaptation module 44 parses the link layer protocol of the data frame, and sends the data packet parsed by the layer 2 protocol in the data frame to the protocol parsing module 41.
  • the protocol parsing module 41 determines whether it can Parsing the data packet, if yes, performing step (5); if not, generating packet-in Control message, and report the unresolved data packet to the protocol parsing configuration module 31 of the network controller;
  • the protocol parsing configuration module 31 responds to the control message and determines whether it is necessary to configure a new network protocol parsed by the switch, and if not, discards the data packet; if necessary, parses the protocol parsing table required for the data packet.
  • the protocol parsing module 41 sent to the switch by using the extended OpenFlow message;
  • the protocol parsing module 41 parses the packet network protocol and extracts the matching item according to the protocol parsing table
  • the packet processing pipeline module 42 searches the switch flow table according to the matching item extracted from the data packet, and determines whether the data packet matches the switch flow entry; if yes, performs step (8); if not, generates The packet-in control message reports the data packet that cannot be matched to the network controller;
  • the network controller determines whether the packet-in control message needs to be processed, and if not, the network packet is discarded; to be processed, the network controller sends a corresponding flow table to the switch according to its service logic.
  • the queue resource configuration module 33 configures the corresponding queue resource, and the packet processing programming module 32 delivers the operation content corresponding to the processing of the data packet;
  • the packet processing programming module 32 matches the flow table according to the key field extracted from the data packet, and executes an instruction matched to the flow table entry, performs software-defined configuration processing on the data packet, and then processes the processed data packet.
  • the data packet is distributed to the corresponding port output queue;
  • the link layer protocol adaptation module 44 of the switch forwards the corresponding data link layer protocol to the data packet according to the link layer information description of the programmable module, and then forwards it out from different network interfaces.
  • the protocol parsing configuration module in the network controller 31 uses the software to define a new protocol Proto-A protocol parsing table (ie, the TCP header encapsulation protocol Proto-A).
  • the protocol parsing table is used to describe the packet structure of the protocol Proto-A, and the matching fields that the protocol needs to extract.
  • the protocol parsing configuration module 31 sends the protocol parsing table of the protocol Proto-A to the protocol parsing module 41 of the switch through the extended OpenFlow message.
  • the protocol parsing module 41 parses the configuration information of the network controller, and parses the protocol Proto-A. Tables and other configured protocol resolution tables are stored in the switch.
  • the protocol parsing module of the switch 41 reads unresolved network packets from the switch input queue.
  • the protocol parsing module 41 sends the structured data packet from which the matching item is extracted to the packet processing Pipeline module 42 for matching processing.
  • the packet processing programming module 32 specifies the operation of the data packet by the switch in a software-defined manner, and encapsulates the software-defined packet operation into an extended OpenFlow message, and then delivers the packet processing to the switch. .
  • Pipeline module 42 parses the configuration information of the network controller and adds the newly configured Action of the network controller to the switch.
  • the packet processing Pipeline module 42 obtains the data packet structured by extracting the key segment from the input queue, first matches in the flow table No. 0, and then matches the instruction of the entry according to the flow table No. 0, and the data is The packets are sent to different pipelines and continue to match the flow table.
  • the queue resource configuration module in the network controller 33 uses the software to define the configuration parameters of the port output queue on the switch, and delivers it to the switch through the extended OpenFlow protocol message.
  • the output queue of the switch accepts the configuration of the network controller, sets the parameters of the corresponding output queue, and configures the queue of the queue type p_fifo, queue length txlen, maximum processing unit MTU, guaranteed bandwidth rate, maximum bandwidth ceil, and priority prio. parameter.
  • Pipeline module 42 feeds packets belonging to different pipelines into different export queues.
  • the egress queue performs traffic shaping on the data flow in the queue according to the parameters configured by the network controller.
  • the link layer protocol configuration module 34 defines the data link layer protocol supported by the OpenFlow network by software, describes the frame structure of the data link layer protocol, and sends the extended OpenFlow message to the switch.
  • the link layer protocol adaptation module 44 parses the configuration message of the network controller and writes the link layer protocol description information to the programmable module.
  • Different network interfaces of the switch receive network data frames encapsulated by different data link layer protocols, and the link layer protocol adaptation module 44 parses the data frames according to link layer protocol description information in the programmable modules thereof. , hide the differences in the data link layer protocol for the switch.
  • the link layer protocol adaptation module 44 encapsulates the corresponding data link layer protocol according to the description of the link layer information of its programmable module.
  • the extended OpenFlow network of the present invention can support multiple heterogeneous networks with different addressing, routing mechanisms and different network architectures, while also enhancing the software-definable scope and programmability of existing OpenFlow networks.

Landscapes

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

Abstract

提供了一种网络控制器、交换机,用于配置和解析网络协议,对交换机接收的数据包进行预解析,提取网络协议中的关键字段,以与流水线中的流表相匹配;处理数据包的传输,完成交换机流表对数据包的匹配和处理;以软件定义的方式配置网络交换机中的队列参数,对网络中的数据流进行流量整形;配置和适配OpenFlow网络使用的不同数据链路层协议。

Description

增强 OpenFlow网络能力的网络控制器、 交换机和方法 本申请要求于 2013年 6月 21日提交中国专利局、申请号为 201310248700.8、 发明名称为 "一种增强可编程能力的 OpenFlow网络系统和方法"的中国专利申 请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及网络通信技术领域,特别是涉及一种增强 OpenFlow网络能力的 网络控制器、 交换机和方法。 背景技术
SDN ( Software Defined Network )为软件定义网络, 包括两部分架构: 由网 络控制器组成的控制网络和由底层的交换机组成的数据网络。 它将传统网络中 的智能集中在由网络控制器组成的控制网络中, 底层的交换机不具有任何网络 智能, 仅仅按照网络控制器的指令转发数据。
基于 OpenFlow协议的 OpenFlow网络是 SDN的一种实现方式。
参见图 1, 介绍现有的 OpenFlow网络的结构组成。 现有的 OpenFlow网络 包括网络控制器 10和底层的交换机 20。 其中, 由网络控制器 10组成的控制网 络可视为是网络操作系统, 网络用户可使用网络控制器 10向上层业务提供的标 准 SDN API进行编程, 也就是使用软件定义的方式开发网络应用 30。 而底层的 交换机 20不具备任何网络智能, 它只能按照 OpenFlow网络控制器下发的流表 对数据包进行解析、 匹配和转发。
现有的 OpenFlow 网络中的网络控制器对交换机数据网络的软件定义能力 存在诸多局限和不足:
1、 OpenFlow网络支持的网络体系结构有限, 现有的 OpenFlow网络仅仅支 持传统的传输控制协议 TCP/互联网协议 IP ( Transmission Control Protocol /Internet Protocol ) 的网络体系结构, 不支持非 IP的网络体系结构。 网络用户不 能根据自己需求在网络中以软件定义的方式部署不同体系架构的异构网络。
2、 OpenFlow协议不能通过软件定义的方式规定交换机对数据包的处理方 式, 仅仅能够使用 OpenFlow协议规范的几种 Action对数据包进行简单的处理。 3、 OpenFlow协议不能通过软件定义的方式管理交换机上的各种网络资源 (如交换机端口上的队列 ), 不能保障网络中的数据流的 QoS参数。
4、 OpenFlow 网络协议只能基于以太网的二层协议, 不能基于其他的链路 层协议(例如, 光网络二层协议和 3GPP中的 L2协议), 开发者不能通过软件 定义的方式对 OpenFlow网络依赖的链路层协议进行编程。
下面通过具体的场景,说明现有的 OpenFlow网络缺乏足够的可软件定义功 能, 难以适应软件定义网络的需求。
场景 1 (参见图 2 ): 现有的 OpenFlow网络中要部署一种异构体系网络时, 该异构网络使用一种新的使用 IPv4头封装的网络协议 Proto-A进行端到端的数 据传输。 但是, 使用现有的 OpenFlow协议, 网络控制器无法釆用软件定义方式 配置交换机解析和转发网络协议 Proto-A的数据包。 这就要为 OpenFlow网络提 供一种新的使网络控制器能配置交换机解析和转发多种网络协议的处理机制。
场景 2 (参见图 3 ): 在现有的 OpenFlow网络中使用隧道技术时, 要在隧道 入口处为 IPv6数据包封装一个 IPv4头, 并在隧道出口处去掉该封装的 IPv4头 而恢复原来的 IPv6数据包。 使用现有的 OpenFlow协议不能用软件定义的方式 扩展交换机对数据包的处理的 Action, 完成隧道的封装和解封装。 也就是, 现 有 OpenFlow网络不能通过软件定义的方式配置这种隧道场景。
场景 3: OpenFlow网络中部署一个话音业务时, 现有的 OpenFlow网络使 用的 OpenFlow协议不能配置物理链路的带宽和队列的丟包率,无法保障话路的 可靠带宽。 也就是, 这种场景下的现有 OpenFlow网络不能通过软件定义的方式 配置一条数据流使用的网络资源, 以保障数据流的 QoS参数。
场景 4: 现有的 OpenFlow网络中数据包网络协议格式只能依赖于以太网的 链路层协议, 不支持其他的数据链路层协议。 用户应该能够使用软件定义的方 式配置交换机, 使得交换机能够理解多种链路层协议, 从而使交换机能够转发 来自多种网络接口的数据包。 发明内容
有鉴于此, 本发明的目的是提供一种增强 OpenFlow 网络能力的网络控制 器、 交换机和方法, 使得本发明的 OpenFlow网络能够对网络体系架构进行软件 定义, 从而在 OpenFlow网络中可以部署不同体系结构的异构网络, 而且每个异 构网络都具有独立的寻址、 路由与执行相关网络协议的功能, 这样, 就在现有
SDN 网络基础上, 对网络的软件定义的能力和软件定义的范畴进行大幅度的提 升与扩展, 从而使得整个 SDN网络的可编程性能得到进一步提高。
本发明提供了一种网络控制器, 该网络控制器包括:
协议解析配置模块, 用于生成解析一数据包的网络协议所需的网络协议配 置消息, 并下发该网络协议配置消息;
数据包处理编程模块, 用于生成操作配置消息, 以软件定义的方式指定对 所述数据包的操作, 并下发该操作配置消息;
队列资源配置模块, 用于生成队列配置消息, 以软件定义的方式指定交换 机端口队列的队列参数, 并下发该队列配置消息;
链路层协议配置模块, 用于生成链路层协议配置消息, 以软件定义的方式 指定解析所述数据包所需要的数据链路层协议和描述该数据链路层协议的帧结 构, 并下发该链路层协议配置消息。
本发明还提供了一种交换机, 该交换机包括:
链路层协议适配模块, 用于接收链路层协议配置消息, 根据链路层协议配 置消息解析接收到的数据包的数据链路层协议, 并将其送入协议解析模块; 协议解析模块, 用于根据所收到的协议配置消息中对协议解析表的配置, 对经过数据链路层解析的所述数据包进行网络协议解析、 提取关键字段, 生成 结构化的数据包;
数据包处理流水线模块, 用于将交换机中存储的至少一个流表划分为至少 一个流水线, 按照所述至少一个流表的流表项匹配所述结构化的数据包, 并对 所述数据包执行所匹配的流表项中的设定操作, 按照收到的操作配置消息对所 述数据包执行相应的操作;
输出队列模块, 用于接收队列配置消息, 根据所述队列配置消息设置相应 的队列参数, 使所述数据包处理流水线模块根据流表指令, 将所述数据包转发 到相应的输出队列。。
本发明还提供了一种增强 OpenFlow网络能力的方法, 包括下列步骤: ( 1 )交换机接收到一个网络数据包, 判断是否能够解析所述数据包的数据 链路层协议; 若能够, 则执行步骤(3 ); 若不能够, 则产生第一控制消息, 并 将所述数据包上报网络控制器; ( 2 )所述网络控制器接收到所述控制消息后, 判断是否要为交换机配置数 据链路层协议, 若不需要, 则丟弃该数据包; 若需要, 则对所述第一控制消息 做出响应: 解析所述数据包所需要的数据链路层协议和描述该数据链路层协议 的帧结构, 再通过扩展的 OpenFlow消息将所述数据包下发给所述交换机;
( 3 )所述交换机解析所述数据包的链路层协议, 并判断是否能够对所述进 行了链路层协议解析后的数据包进行网络协议解析, 若能够, 则执行步骤(5 ); 若不能够, 则产生第二控制消息, 并将该不能进行网络协议解析的数据包上报 给所述网络控制器;
( 4 )所述网络控制器响应所述第二控制消息, 判断是否需要配置所述交换 机解析的新网络协议, 若不需要, 则丟弃所述数据包; 若需要, 将解析所述数 据包所需要的协议解析表利用扩展的 OpenFlow消息下发给所述交换机;
( 5 )所述交换机根据所述协议解析表解析所述数据包的网络协议并提取匹 酉己项;
( 6 )所述交换机根据从所述数据包中提取的所述匹配项查找所述交换机的 一个流表, 判断所述数据包是否与所述交换机的所述流表项相匹配; 若是, 则 执行步骤(8 ); 若否, 则生成第三控制消息, 将不能匹配的所述数据包上报网 络控制器;
( 7 )所述网络控制器判断是否需要处理所述第三控制消息, 若不要处理, 则丟弃所述数据包; 若要处理, 则网络控制器根据其业务逻辑, 为所述交换机 下发相应的流表, 配置相应的队列资源, 下发相应的处理所述数据包的操作内 容;
( 8 )所述网络控制器根据从所述数据包提取的关键字段匹配流表, 并执行 匹配到流表项中的指令, 对所述数据包进行软件定义的配置处理, 再将处理后 的所述数据包分发至相应的端口输出队列;
( 9 )所述交换机根据链路层信息描述, 给所述数据包封装相应的数据链路 层协议后, 将其从不同的网络接口中转发出去。
本发明的有益效果:本发明增强可编程能力的 OpenFlow网络系统对现有的 OpenFlow网络体系架构作了改进, 扩展了 OpenFlow网络中可软件定义的模块 与功能,从而可以使用软件定义的方式在 OpenFlow网络中部署多个不同类型业 务的异构网络, 并扩展了 SDN网络可软件定义的范畴, 增强了 OpenFlow网络 的可编程能力,使得多种不同的网络业务能够更加灵活、方便地部署到 OpenFlow 网络中。 因此, 本发明具有艮好的推广应用前景。 附图简要说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中所 需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是现有的 OpenFlow网络架构组成示意图。
图 2是现有的 OpenFlow网络中的网络控制器在其能够配置、解析与转发控 制的交换机执行的原有协议基础上增添一种新型网络协议的过程示意图。
图 3 ( A )、( B )分别是未封装 IPv4头的 IPv6数据包结构组成和用于隧道场 景的使用 IPv4头封装的 IPv6数据包结构组成两个示意图。
图 4是本发明增强可编程能力的 OpenFlow网络系统架构组成示意图。
图 5是本发明网络系统中的协议解析单元组成结构示意图。
图 6是本发明网络系统中的配置协议解析表的消息结构组成示意图。
图 7是本发明网络系统中经过协议解析后的结构化数据包组成示意图。 图 8是本发明网络系统中的数据处理单元结构组成示意图。
图 9是本发明网络系统中配置 Action的消息结构组成示意图。
图 10是本发明网络系统中 Pipeline多级流水线设计步骤示意图。
图 11是本发明网络系统中的消息配置转发队列消息结构组成示意图。
图 12是本发明网络系统中的链路层协议配置单元结构组成示意图。
图 13是本发明网络系统中的配置链路层协议的消息结构组成示意图。
图 14是本发明网络系统工作方法操作步骤流程图。
图 15是本发明网络系统添加新的协议解析表示意图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面结合附图和实施例对 本发明作进一步的详细描述。
图 4示出了本发明增强可编程能力的 OpenFlow 网络系统的架构组成示意 图。 其中对现有 OpenFlow网络的网络控制器和交换机分别进行了扩展。
如图 4所示, 在网络控制器 30增设: 协议解析配置模块 31、 数据包处理编 程模块 32、 队列资源配置模块 33和链路层协议配置模块 34。在 SDN交换机 40 增设与网络控制器 30中所述四个模块分别相对应的四个模块:协议解析模块 41、 数据包处理流水线模块 42、 输出队列模块 43和链路层协议适配模块 44。 藉由 该四组八个对应模块的协作配合,使得该 OpenFlow网络中能够部署多个异构网 络, 实现协议无关的数据转发, 同时增加了网络的可编程性。
接下来参考图 4介绍本发明网络系统所增设的四组 8个功能模块。
( A )协议解析配置模块 31和协议解析模块 41,用于配置和解析网络协议, 并对交换机接收的数据包进行预解析, 提取网络协议中的关键字段, 以与流水 线中的流表相匹配。 这两个模块的结构组成参见图 5所示。
如图 5所示, 协议解析配置模块 31负责下发扩展的 OpenFlow消息给交换 机 40, 配置并解析交换机 40使用的多种网络协议, 通过扩展的 OpenFlow消息 对交换机 40使用的协议解析表进行添加、 删除和修改等操作, 并釆用软件定义 的方式配置交换机 40的协议解析功能。
参见图 6,介绍该协议解析配置模块 31向交换机 40下发的用于配置协议解 析表的扩展 OpenFlow消息的结构。该扩展 OpenFlow消息也称为协议配置消息, 包括下述三个字段: 消息头、 指令和协议内容描述。
消息头( Header ):该字段有两种类型, 1 )釆用 OpenFlow协议的标准 Header, 重新定义一种 type类型 xxx,用于表示扩展 OpenFlow消息为协议解析表的配置 消息, 如图 6中类型 1所示; 2 )釆用扩展 OpenFlow协议的 Experimenter消息, 用于表示扩展 OpenFlow消息为协议解析表的配置消息, 如图 6中类型 2所示。
指令( Command )·· 用于设定根据所述扩展 OpenFlow消息能够执行的操作 Action, 包括: 创建协议解析表中的新表(Create ), 修改已有表( Modify )和删 除表 ( Delete ), 等等。
协议内容描述: 例如釆用包括基于可扩展标记语言 XML ( extensible markup language ) 的 NetPDL语言描述网络协议中的信息和需要提取的协议字段。
协议解析模块 41有两部分功能: 1 ) 负责处理网络控制器 30发送的协议配 置消息; 2 )根据该协议配置消息对进入交换机 40的数据包进行协议解析。 为 此, 该模块负责维护多个协议解析表, 协议解析表是由网络控制器 30通过协议 配置消息来配置。 每个协议解析表可用于解析一种特定的网络协议, 并提取该 协议相关关键字段的值。 例如, 利用 IPv4的协议解析表能够提取数据包中的源 IP地址、 目的 IP地址等关键字段的值。 故该协议解析模块 41的输入是原始的 网络数据包, 其输出是提取了网络协议关键字段的结构化的网络数据包。
参见图 7,示出了本发明网络系统中经过协议解析后的结构化的网络数据包 的结构组成示意图。 结构化数据包是提取了网络协议的关键字段的数据包, 其 中, 在 MatchFields子结构中, 保存有协议解析表提取出的匹配项。
( B )数据包处理编程模块 32和数据包处理流水线模块 42, 用于处理网络 中数据包的传输, 共同完成交换机流表对数据包的匹配和处理。 该两个模块的 结构图如图 8所示。
参见图 8, 数据包处理编程模块 32, 负责以软件定义的方式来指定交换机 对数据包的操作 ( Action )方式。 通过扩展的 OpenFlow协议将数据包处理操作 Action指令下发到指定的交换机 40, 由软件定义交换机 40对数据包处理操作。 例如, 在 OpenFlow网络中, 为了使交换机能够对数据包进行复杂的隧道封装和 解封装操作, 用户可以将隧道封装和解封装操作使用的代码通过扩展的 OpenFlow协议下发给交换机 40, 交换机 40将这段代码作为对数据包进行隧道 封装和解封装的扩展 Action存储在交换机 40中。隧道入口和出口交换机的中数 据包匹配到特定的流表项后, 执行隧道的封装和解封装的 Action, 就完成了隧 道入口和出口对数据包的处理。
图 9是本发明网络系统中配置 Action的消息结构组成示意图。如图 9所示, 数据包处理编程模块 32配置交换机 40可支持 Action的扩展 OpenFlow消息结 构组成, 包括下述三个字段: 消息头、 指令和操作描述。
消息头( Header ):该字段有两种类型, 1 )釆用 OpenFlow协议的标准 Header, 并扩展其 type类型: 表示扩展 OpenFlow消息为交换机处理数据的 Action配置 消息,如图 9中类型 1所示; 2 ):釆用扩展 OpenFlow协议的 Experimenter消息: 表示为这种配置消息, 如图 9中类型 2所示;
指令(Command ): 用于设定扩展 OpenFlow消息执行的操作内容, 包括: 为交换机添加一个新的 Action ( Create )、修改交换机中的一个 Action ( Modify ) 和删除交换机中的一个 Action ( Delete )。
操作( Action )描述: 为对数据包的处理代码, 用于指明对数据包的处理过 程和 Action需要接受的参数列表。
数据包处理流水线模块 42, 用于提供一种处理策略。 它将交换机 40中多个 流表划分成多个不同流水线, 以隔离分属于不同虚拟网之间的数据流和隔离网 络资源, 并按照流表项匹配结构化数据包, 再对匹配的数据包执行流表项中的 设定操作, 对数据包执行软件定义的操作。 数据包处理流水线模块 42的输入是 协议解析模块 41输出的结构化数据包, 其输出是网络中传输的数据包。
现有 OpenFlow网络中的交换机流水线支持多级流表,所有的数据包必须先 匹配逻辑上的 0级流表, 0级流表由若干个物理流表组成, 其功能是将数据包分 发到不同的流水线中进行匹配, 如果命中 0级流表, 数据包跳转到其他流表继 续进行匹配。
图 10是本发明网络系统中 Pipeline多级流水线设计示意图。在图 10中,数 据包处理流水线模块 42将交换机 40中多级流表划分为若干条流水线, 经过不 同流水线的匹配和处理后, 数据包被分发到不同的输出队列, 对分别属于不同 的流水线的数据流进行隔离。 这种处理流程可用于网络虚拟化中虚拟网流表资 源和网络带宽的隔离, 每个虚拟网都可以有自己独立的流水线。
0级流表先匹配数据包并提取的相应字段,再将该数据包分发到合适的流水 线中, 在每条流水线内, 根据虚拟网中部署的网络协议, 数据包可能进行不同 字段的匹配。 例如, 在 ICN虚拟网中, 数据包匹配提取的 URL字段, 将数据包 输出到相应的端口队列。 在标签交换虚拟网中, 数据包匹配提取的交换标签, 输出到相应的端口队列中。
因此, 数据包处理流水线模块 42的输入是协议解析模块 41输出的结构化 数据包。 数据包处理流水线模块 42的输出是网络中传输的数据包。
( C ) 队列资源配置模块 33和输出队列模块 43, 用于为网络中数据流提供 QoS保障、 并以软件定义的方式来配置 OpenFlow网络交换机中的队列参数, 以 及对网络中的数据流进行流量整形。
其中, 队列资源配置模块 33, 用于用软件定义的方式来配置交换机端口队 列的队列参数, 并将该配置信息通过扩展的 OpenFlow协议消息下发给交换机 40; 该模块配置的交换机端口上队列参数包括: 队列标识 queue_id、 父队列标识 parent_id、 队列类型、 队列长度、 最大处理单元、 最小带宽、 最大带宽和优先级 等等, 以供网络控制器釆用该软件定义的方式对网络进行拥塞控制与流量控制。 图 11示出了本发明网络系统中的消息配置转发队列消息结构组成示意图。 如图 11所示, 队列资源配置模块 33配置转发队列的扩展 OpenFlow消息结构组 成中的下述两个字段: 消息头和队列参数。
消息头( Header ):该字段有两种类型, 1 )釆用 OpenFlow协议的标准 Header, 并扩展其 type类型: 表示扩展 OpenFlow消息为交换机处理转发队列的配置消 息, 如图 11中类型 1所示; 2 ): 扩展 OpenFlow的 Experimenter消息, 表示为 这种配置消息, 如图 11中类型 2所示。
队列参数(queue_configure ), 用于存储所有配置队列的各种信息, 包含队 列类型, 以及交换机支持的多种队列参数(包括队列标识 queue_id、 父队列标识 parent_id、 队列类型、 队列长度、 最大处理单元、 最小带宽、 最大带宽和优先级 等)。
输出队列模块 43, 负责接受队列资源配置模块 33的配置,设置相应的队列 参数, 使得数据包处理流水线模块根据流表指令, 将数据包转发到相应的输出 队列; 并用该方法使得网络控制器能够将数据流分发到不同的输出队列, 为不 同数据流提供不同的 QoS保障。
( D )链路层协议配置模块 34 和链路层协议适配块 44, 用于配置和解析 OpenFlow网络使用的不同数据链路层协议,隐藏网络中数据链路层协议的差异。
图 12示出了本发明网络系统中的链路层协议配置模块 34和链路层协议适 配模块 44的组成示意图。 如图 12所示, 链路层协议配置模块 34, 负责以软件 定义的方式来指定 OpenFlow网络使用的数据链路层协议,将数据链路层协议配 置信息通过扩展的 OpenFlow消息下发给交换机, 以使 OpenFlow网络能够使用 包括用户自定义的任意的数据链路层协议。 该链路层协议适配模块 44处理交换 机接收到的数据帧时, 其输入为交换机不同网络接口接收到的数据帧, 输出是 经过数据链路层协议解析的网络数据包。 该模块处理交换机转发的数据包时, 其输入为交换机输出队列中的数据包, 输出是封装了不同数据链路层协议的数 据帧。
图 13是本发明网络系统中的配置链路层协议的消息结构组成示意图。 参见 图 13, 链路层协议配置模块 34配置链路层协议的扩展 OpenFlow消息组成结构 中的下述三个字段: 消息头、 指令和链路层适配代码。
消息头( Header ):该字段有两种类型, 1 )使用 OpenFlow协议的标准 Header, 并扩展其 type类型:表示扩展 Openflow消息是用于交换机的链路层协议适配模 块的配置消息, 如图 13 中类型 1 所示; 2 ) 釆用扩展 OpenFlow 协议的 Experimenter消息: 表示上述配置消息, 如图 13中类型 2所示。
指令(Command ): 例如用于设定对链路层协议的操作, 包括: 支持一个新 的链路层协议、 删除对现有的链路层协议支持和修改现有的链路层协议解析过 程。
链路层适配代码: 为用户软件定义的链路层协议适配代码, 该代码包括: a ) 描述如何从一个新的链路层帧中提取其载荷, 以及该载荷釆用何种协议封装的; b )描述如何将交换机中数据包封装到一个链路层协议的帧中。
链路层协议适配模块 44, 用于解析网络控制器 30发送的配置信息, 将网络 控制器 30下发的链路层协议描述写入到网络接口中可编程模块。 该模块还对交 换机各个网络接口接收到的链路层数据进行适配操作, 解析不同网络接口数据 帧的数据链路层协议, 并隐藏不同链路层协议的差异: 即对来自不同网络接口 的数据帧进行解析后, 将其放入输入队列。 该模块对输出队列是将从不同网络 接口转发来的数据包封装不同的数据链路层协议后, 再由网络接口转发出去。
参见图 14, 介绍本发明增强可编程能力的 OpenFlow 网络系统的工作方法 的下述具体操作步骤:
( 1 ) 当交换机不同的网络接口接收到使用不同数据链路层协议封装的网络 数据帧后, 链路层协议适配模块 44判断网络接口中的可编程模块是否能够解析 该数据帧的数据链路层协议; 若能够, 则跳转执行步骤(3 ); 若不能够, 则链 路层协议适配模块 44产生包括 packet-in的控制消息,并将该不能处理的数据帧 上报网络控制器 30的链路层协议配置模块 34;
( 2 )链路层协议配置模块 34接收到链路层协议适配模块 44上报的控制消 息后, 判断是否要为交换机配置数据链路层协议, 若不需要, 则丟弃该数据包; 若需要, 则链路层协议配置模块 34对该控制消息做出响应: 解析该数据包所需 要的数据链路层协议和描述该数据链路层协议的帧结构, 再通过扩展的 OpenFlow消息将该数据包下发给交换机的链路层协议适配模块 44;
( 3 )链路层协议适配模块 44解析该数据帧的链路层协议, 将该数据帧中 的二层协议解析后的数据包送入协议解析模块 41 ;协议解析模块 41判断其是否 能够解析该数据包, 若能够, 则执行步骤(5 ); 若不能够, 则产生包括 packet-in 的控制消息,并将该不能解析的数据包上报网络控制器的协议解析配置模块 31 ;
( 4 )协议解析配置模块 31 响应该控制消息, 并判断是否需要配置交换机 解析的新网络协议, 若不需要, 则丟弃该数据包; 若需要, 将解析该数据包所 需要的协议解析表利用扩展的 OpenFlow消息下发给交换机的协议解析模块 41 ;
( 5 )协议解析模块 41 根据协议解析表解析该数据包网络协议和提取匹配 项;
( 6 )数据包处理流水线模块 42根据从该数据包提取的匹配项查找交换机 流表, 判断该数据包是否与交换机流表项相匹配; 若是, 则执行步骤(8 ); 若 否, 则生成 Packet-in控制消息, 将不能匹配的该数据包上报网络控制器;
( 7 )网络控制器判断是否需要处理该 packet-in控制消息, 若不要处理, 则 丟弃该数据包; 若要处理, 则网络控制器根据其业务逻辑, 为交换机下发相应 的流表, 队列资源配置模块 33 配置相应的队列资源, 数据包处理编程模块 32 下发相应处理该数据包的操作内容;
( 8 )数据包处理编程模块 32根据从该数据包提取的关键字段匹配流表, 并执行匹配到流表项中的指令, 对该数据包进行软件定义的配置处理, 再将处 理后的该数据包分发至相应的端口输出队列;
( 9 ) 交换机的链路层协议适配模块 44根据其可编程模块的链路层信息描 述, 给数据包封装相应的数据链路层协议后, 将其从不同的网络接口中转发出 去。
上述总体工作流程图中, 纵向箭头表示系统数据平面的数据流, 横向箭头 表示控制平面的数据流。 本发明系统中, 有四对模块的功能关系密切, 下面分 别介绍该系统中各个模块之间的工作流程:
( A )协议解析配置模块 31和协议解析模块 41之间的工作流程:
a) 以添加协议解析表为例 (参见图 15 ), 说明控制平面的工作流程:
( 1 )网络控制器中的协议解析配置模块 31釆用软件定义新协议 Proto-A的 协议解析表(即用 TCP头封装协议 Proto-A )。该协议解析表用于描述协议 Proto-A 的数据包结构, 以及协议需要提取的匹配字段等信息。
( 2 ) 协议解析配置模块 31 将协议 Proto-A 的协议解析表通过扩展的 OpenFlow消息下发给交换机的协议解析模块 41。
( 3 )协议解析模块 41解析网络控制器的配置信息, 将协议 Proto-A的解析 表和其他已配置的协议解析表存储于交换机中。
b)数据平面工作流程(以解析 Proto- A数据包为例):
( 1 ) 交换机的协议解析模块 41 从交换机输入队列中读取未解析的网络数 据包。
( 2 )从读取的网络数据包最外层协议开始, 进行协议字段的解析和提取关 键字段, 先后解析 Ethernet协议、 IPv4协议、 TCP协议和 Proto- A协议, 并依照 各个协议解析表提取协议中的关键字段, 经过协议解析表解析后的数据包就变 为结构化的数据包(参见图 8所示)。
( 3 ) 协议解析模块 41 将提取匹配项的结构化数据包送入数据包处理 Pipeline模块 42进行匹配处理。
( B )数据包处理编程模块 32和数据包处理流水线模块 42之间的工作流程: a)控制平面的工作流程 (以配置新的 Action为例 ):
( 1 )数据包处理编程模块 32釆用软件定义的方式指定交换机对于数据包 的操作, 并将软件定义的数据包操作封装成扩展的 OpenFlow消息, 再下发给交 换机的数据包处理 Pipeline模块 42。
( 2 )数据包处理 Pipeline模块 42解析网络控制器的配置信息, 将网络控制 器新配置的 Action添加到交换机中。
b)数据平面的工作流程:
( 1 )数据包处理 Pipeline模块 42从输入队列中取得提取关键字段结构化的 数据包, 先在 0号流表中进行匹配, 再根据 0号流表匹配到表项的指令, 将该 数据包送入不同的流水线, 继续匹配流表。
( 2 )进入不同流水线的该数据包完成流表匹配后,执行流表项中的 Action, 对数据包执行网络控制器软件定义的操作后, 转发到流表项指定的出口队列。
( C ) 队列资源配置模块 33和输出队列模块 43之间的工作流程:
a)控制平面的工作流程
( 1 ) 网络控制器中的队列资源配置模块 33 用软件定义交换机上的端口输 出队列的配置参数, 并通过扩展的 OpenFlow协议消息将其下发给交换机。
( 2 )交换机的输出队列接受网络控制器的配置,设置相应输出队列的参数, 配置队列的队列类型 p_fifo、队列长度 txlen、最大处理单元 MTU、保证带宽 rate、 最大带宽 ceil和优先级 prio等队列参数。 b)数据平面的工作流程:
( 1 )数据包处理 Pipeline模块 42将分属于不同流水线的数据包送入各个不 同的出口队列。
( 2 ) 出口队列根据网络控制器配置的参数, 对队列中的数据流进行流量整 形。
( D )链路层协议配置模块 34和链路层协议适配模块 44之间的工作流程: a)控制平面的工作流程:
( 1 )链路层协议配置模块 34用软件定义 OpenFlow网络支持的数据链路层 协议, 描述数据链路层协议的帧结构, 并通过扩展的 OpenFlow消息下发给交换 机。
( 2 )链路层协议适配模块 44解析网络控制器的配置消息, 将链路层协议 描述信息写入可编程模块。
b)数据平面的工作流程:
( 1 )交换机不同的网络接口接收到使用不同数据链路层协议封装的网络数 据帧, 链路层协议适配模块 44根据其可编程模块中的链路层协议描述信息, 对 数据帧进行解析, 为交换机隐藏数据链路层协议的差异。
( 2 )交换机的输出队列将数据包从网络接口转发以前, 链路层协议适配模 块 44根据其可编程模块的链路层信息的描述, 给该数据包封装相应的数据链路 层协议。
本发明扩展的 OpenFlow网络中能够支持多个具有不同的寻址、路由机制和 不同的网络体系结构的异构网络, 同时还增强了现有 OpenFlow网络的可软件定 义的范畴和可编程性。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发 明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发 明保护的范围之内。

Claims

权利要求书
1、 一种网络控制器, 其特征在于其包括:
协议解析配置模块, 用于生成解析一数据包的网络协议所需的协议配置消 息, 并下发所述协议配置消息;
数据包处理编程模块, 用于生成操作配置消息, 以软件定义的方式指定对 所述数据包的操作, 并下发所述操作配置消息;
队列资源配置模块, 用于生成队列配置消息, 以软件定义的方式指定交换 机端口队列的队列参数, 并下发所述队列配置消息;
链路层协议配置模块, 用于生成链路层协议配置消息, 以软件定义的方式 指定解析所述数据包所需要的数据链路层协议和描述该数据链路层协议的帧结 构, 并下发所述链路层协议配置消息。
2、 根据权利要求 1所述的网络控制器, 其特征在于, 所述协议配置消息用 于配置协议解析表, 具有扩展的 OpenFlow协议消息结构, 包括以下三个字段: 消息头, 表示所述协议配置消息为配置协议解析表的消息;
指令, 用于设定所述协议配置消息能够进行的与协议解析表有关的操作; 协议内容描述, 描述网络协议中的信息和需要提取的网络协议字段。
3、 根据权利要求 1或 2所述的网络控制器, 其特征在于, 所述协议配置消 息能够进行的与协议解析表有关的操作包括下列至少一个: 创建新的协议解析 表、 修改已有的协议解析表和删除已有的协议解析表。
4、 根据权利要求 3所述的网络控制器, 其特征在于, 所述协议内容描述是 釆用包括基于可扩展标记语言 XML的 NetPDL语言描述的。
5、 根据权利要求 1所述的网络控制器, 其特征在于, 所述操作配置消息具 有扩展的 OpenFlow协议消息结构, 包括以下三个字段:
消息头, 表示所述操作配置消息为配置交换机处理数据的操作的消息; 指令, 用于设定所述操作配置消息执行的操作内容;
操作描述, 包括对所述数据包处理的代码, 用于指明对所述数据包的处理 过程和操作所需要接受的参数列表。
6、 根据权利要求 5所述的网络控制器, 其特征在于所述执行的操作内容包 括下列至少一个: 在所述交换机中创建一个新的操作、 修改所述交换机中的一 个操作和删除所述交换机中的一个操作。
7、 根据权利要求 1所述的网络控制器, 其特征在于, 所述队列配置消息具 有扩展的 OpenFlow协议消息结构, 包括以下两个字段:
消息头, 表示所述队列配置消息为配置所述交换机处理转发队列的消息; 队列参数, 用于存储所有配置队列的信息。
8、 根据权利要求 7所述的网络控制器, 其特征在于, 所述队列参数包括下 列至少一个: 队列标识、 父队列标识、 队列类型、 队列长度、 最大处理单元、 最小带宽、 最大带宽和优先级。
9、 根据权利要求 1所述的网络控制器, 其特征在于, 所述链路层协议配置 消息具有扩展的 OpenFlow协议消息结构, 包括以下三个字段:
消息头, 表示所述链路层协议配置消息为配置所述交换机的链路层协议的 消息;
指令, 用于设定对链路层协议的操作;
链路层适配代码, 描述如何从一个链路层帧中提取其载荷, 以及封装所述 载荷所釆用的协议, 描述如何将所述数据包封装到一个链路层协议的帧中。
10、 根据权利要求 9所述的网络控制器, 其特征在于, 所述对链路层协议 的操作包括下列至少一个: 支持一个新的链路层协议、 删除对现有的链路层协 议的支持和修改现有的链路层协议的解析过程。
11、 一种交换机, 其特征在于其包括:
链路层协议适配模块, 用于接收链路层协议配置消息, 根据链路层协议配 置消息解析接收到的数据包的数据链路层协议, 并将其送入协议解析模块; 协议解析模块, 用于根据所收到的协议配置消息中对协议解析表的配置, 对经过数据链路层解析的所述数据包进行网络协议解析、 提取关键字段, 生成 结构化的数据包;
数据包处理流水线模块, 用于将交换机中存储的至少一个流表划分为至少 一个流水线, 按照所述至少一个流表的流表项匹配所述结构化的数据包, 并对 所述结构化的数据包执行所匹配的流表项中的设定操作, 按照收到的操作配置 消息对所述结构化的数据包执行相应的操作;
输出队列模块, 用于接收队列配置消息, 根据所述队列配置消息设置相应 的队列参数, 使所述数据包处理流水线模块根据流表指令, 将所述所述数据包 转发到相应的输出队列。
12、 根据权利要求 11所述的交换机, 其特征在于, 所述协议配置消息用于 配置协议解析表, 具有扩展的 OpenFlow协议消息结构, 包括以下三个字段: 消息头, 表示所述协议配置消息为配置协议解析表的消息;
指令, 用于设定所述协议配置消息能够进行的与协议解析表有关的操作; 协议内容描述, 描述网络协议中的信息和需要提取的网络协议字段。
13、 根据权利要求 11或 12所述的交换机, 其特征在于, 所述协议配置消 息能够进行的与协议解析表有关的操作包括下列至少一个: 创建新的协议解析 表、 修改已有的协议解析表和删除已有的协议解析表。
14、 根据权利要求 13所述的交换机, 其特征在于, 所述协议内容描述是釆 用包括基于可扩展标记语言 XML的 NetPDL语言描述的。
15、 根据权利要求 11所述的交换机, 其特征在于, 所述操作配置消息具有 扩展的 OpenFlow协议消息结构, 包括以下三个字段:
消息头, 表示所述操作配置消息为配置交换机处理数据的操作的消息; 指令, 用于设定所述操作配置消息执行的操作内容;
操作描述, 包括对所述数据包处理的代码, 用于指明对所述数据包的处理 过程和操作所需要接受的参数列表。
16、 根据权利要求 15所述的交换机, 其特征在于所述执行的操作内容包括 下列至少一个: 在所述交换机中创建一个新的操作、 修改所述交换机中的一个 操作和删除所述交换机中的一个操作。
17、 根据权利要求 11所述的交换机, 其特征在于, 所述队列配置消息具有 扩展的 OpenFlow协议消息结构, 包括以下两个字段:
消息头, 表示所述队列配置消息为配置所述交换机处理转发队列的消息; 队列参数, 用于存储所有配置队列的信息。
18、 根据权利要求 17所述的交换机, 其特征在于, 所述队列参数包括下列 至少一个: 队列标识、 父队列标识、 队列类型、 队列长度、 最大处理单元、 最 小带宽、 最大带宽和优先级。
19、 根据权利要求 11所述的交换机, 其特征在于, 所述链路层协议配置消 息具有扩展的 OpenFlow协议消息结构, 包括以下三个字段:
消息头, 表示所述链路层协议配置消息为配置交换机的链路层协议的消息; 指令, 用于设定对链路层协议的操作; 链路层适配代码, 描述如何从一个链路层帧中提取其载荷, 以及封装所述 载荷所釆用的协议, 描述如何将所述数据包封装到一个链路层协议的帧中。
20、 根据权利要求 19所述的交换机, 其特征在于, 所述对链路层协议的操 作包括下列至少一个: 支持一个新的链路层协议、 删除对现有的链路层协议的 支持和修改现有的链路层协议的解析过程。
21、 一种增强 OpenFlow网络能力的方法, 其特征在于: 所述方法包括下列 步骤:
( 1 )交换机接收到一个网络数据包, 判断是否能够解析所述数据包的数据 链路层协议; 若能够, 则执行步骤(3 ); 若不能够, 则产生第一控制消息, 并 将所述数据包上报网络控制器;
( 2 )所述网络控制器接收到所述控制消息后, 判断是否要为交换机配置数 据链路层协议, 若不需要, 则丟弃该数据包; 若需要, 则对所述第一控制消息 做出响应: 解析所述数据包所需要的数据链路层协议和描述该数据链路层协议 的帧结构, 再通过扩展的 OpenFlow消息将所述数据包下发给所述交换机;
( 3 )所述交换机解析所述数据包的链路层协议, 并判断是否能够对所述进 行了链路层协议解析后的数据包进行网络协议解析, 若能够, 则执行步骤(5 ); 若不能够, 则产生第二控制消息, 并将该不能进行网络协议解析的数据包上报 给所述网络控制器;
( 4 )所述网络控制器响应所述第二控制消息, 判断是否需要配置所述交换 机解析的新网络协议, 若不需要, 则丟弃所述数据包; 若需要, 将解析所述数 据包所需要的协议解析表利用扩展的 OpenFlow消息下发给所述交换机;
( 5 )所述交换机根据所述协议解析表解析所述数据包的网络协议并提取匹 酉己项;
( 6 )所述交换机根据从所述数据包中提取的所述匹配项查找所述交换机的 一个流表, 判断所述数据包是否与所述交换机的所述流表项相匹配; 若是, 则 执行步骤(8 ); 若否, 则生成第三控制消息, 将不能匹配的所述数据包上报网 络控制器;
( 7 )所述网络控制器判断是否需要处理所述第三控制消息, 若不要处理, 则丟弃所述数据包; 若要处理, 则所述网络控制器根据其业务逻辑, 为所述交 换机下发相应的流表, 配置相应的队列资源, 下发相应的处理所述数据包的操 作内容;
(8)所述网络控制器根据从所述数据包提取的关键字段匹配流表, 并执行 匹配到流表项中的指令, 对所述数据包进行软件定义的配置处理, 再将处理后 的所述数据包分发至相应的端口输出队列;
(9)所述交换机根据链路层信息描述, 给所述数据包封装相应的数据链路 层协议后, 将其从不同的网络接口中转发出去。
PCT/CN2014/080476 2013-06-21 2014-06-23 增强OpenFlow网络能力的网络控制器、交换机和方法 WO2014202030A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310248700.8A CN103347013B (zh) 2013-06-21 2013-06-21 一种增强可编程能力的OpenFlow网络系统和方法
CN201310248700.8 2013-06-21

Publications (1)

Publication Number Publication Date
WO2014202030A1 true WO2014202030A1 (zh) 2014-12-24

Family

ID=49281787

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/080476 WO2014202030A1 (zh) 2013-06-21 2014-06-23 增强OpenFlow网络能力的网络控制器、交换机和方法

Country Status (2)

Country Link
CN (1) CN103347013B (zh)
WO (1) WO2014202030A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553749A (zh) * 2016-02-26 2016-05-04 广东技术师范学院 一种基于sdn的icn逻辑拓扑构建方法
CN108390899A (zh) * 2017-02-03 2018-08-10 中国科学院声学研究所 一种基于软件定义网络的二层交换机内容协同的方法
CN112685625A (zh) * 2020-12-31 2021-04-20 中国人民解放军战略支援部队信息工程大学 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置
CN113114494A (zh) * 2021-04-02 2021-07-13 新疆大学 一种基于sdn的物联网异构网络通信设备及数据传递算法
CN113708966A (zh) * 2021-08-24 2021-11-26 清华大学 一种交换机网络化在线配置方法、系统和设备
CN114338225A (zh) * 2021-03-29 2022-04-12 井芯微电子技术(天津)有限公司 策略分发器、拟态交换机及网络系统
CN114553757A (zh) * 2022-01-29 2022-05-27 阿里巴巴(中国)有限公司 基于可编程交换机的协议报文处理方法、装置和设备
CN114567688A (zh) * 2022-03-11 2022-05-31 之江实验室 一种基于fpga的协同网络协议解析方法和装置

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103347013B (zh) * 2013-06-21 2016-02-10 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法
CN104580066A (zh) * 2013-10-11 2015-04-29 镇江和邦通信技术有限公司 基于OpenFlow网络的企业级多媒体通信的QoS实现方法
CN104579968B (zh) * 2013-10-26 2018-03-09 华为技术有限公司 Sdn交换机获取精确流表项方法及sdn交换机、控制器、系统
CN103560951A (zh) * 2013-11-13 2014-02-05 华为技术有限公司 报文处理方法及物理转发设备
CN103647658B (zh) * 2013-11-27 2016-12-07 华为技术有限公司 一种软件定义网络系统中网络设备的管理方法和控制器
US20160380899A1 (en) * 2013-11-28 2016-12-29 Kt Corporation Method and apparatus for dynamic traffic control in sdn environment
US20150172192A1 (en) * 2013-12-12 2015-06-18 International Business Machines Corporation Software-defined networking physical controller
US9473418B2 (en) * 2013-12-12 2016-10-18 International Business Machines Corporation Resource over-subscription
US9253028B2 (en) * 2013-12-13 2016-02-02 International Business Machines Corporation Software-defined networking tunneling extensions
US9620213B2 (en) 2013-12-27 2017-04-11 Cavium, Inc. Method and system for reconfigurable parallel lookups using multiple shared memories
US9379963B2 (en) 2013-12-30 2016-06-28 Cavium, Inc. Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
CN103795596B (zh) * 2014-03-03 2017-05-24 北京邮电大学 可编程控制的sdn网络测量系统和测量方法
US9413357B2 (en) 2014-06-11 2016-08-09 Cavium, Inc. Hierarchical statistically multiplexed counters and a method thereof
US9635146B2 (en) 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
CN104135446B (zh) * 2014-07-15 2017-06-09 武汉绿色网络信息服务有限责任公司 基于SDN实现IPv4向IPv6过渡的系统及方法
CN105471726B (zh) 2014-09-05 2019-08-27 华为技术有限公司 转发参数传递的方法及设备
US9813327B2 (en) 2014-09-23 2017-11-07 Cavium, Inc. Hierarchical hardware linked list approach for multicast replication engine in a network ASIC
KR101996337B1 (ko) 2014-10-28 2019-07-04 후아웨이 테크놀러지 컴퍼니 리미티드 교환기 처리 방법, 제어기, 교환기 및 교환기 처리 시스템
CN104486227B (zh) * 2014-12-11 2017-10-13 武汉绿色网络信息服务有限责任公司 通过VxLAN技术实现IPv6灵活部署的系统及方法
CN105812330B (zh) * 2014-12-31 2019-11-12 中国电信股份有限公司 蜂窝网络系统、控制方法、装置和网元及集中控制器
US10491525B2 (en) 2015-03-10 2019-11-26 Huawei Technologies Co., Ltd. Traffic engineering feeder for packet switched networks
US9749225B2 (en) 2015-04-17 2017-08-29 Huawei Technologies Co., Ltd. Software defined network (SDN) control signaling for traffic engineering to enable multi-type transport in a data plane
KR20170123662A (ko) * 2015-03-10 2017-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 평면에서 멀티 타입 전송을 가능하게 하는 트래픽 엔지니어링을 위한 소프트웨어 정의 네트워크(sdn) 제어 시그널링
CN107529352B (zh) * 2015-03-13 2020-11-20 马维尔亚洲私人有限公司 用于软件定义的数据中心网络的协议独立的可编程交换机(pips)
CN104717683B (zh) * 2015-03-26 2018-05-29 清华大学 一种基于软件定义网络南向接口协议的用户请求处理方法
US10616144B2 (en) 2015-03-30 2020-04-07 Cavium, Llc Packet processing system, method and device having reduced static power consumption
US9866483B2 (en) * 2015-07-20 2018-01-09 Schweitzer Engineering Laboratories, Inc. Routing of traffic in network through automatically generated and physically distinct communication paths
CN105245981A (zh) * 2015-10-15 2016-01-13 上海斐讯数据通信技术有限公司 软件定义吉比特无源光网络流表控制协议封装方法及装置
CN105357117B (zh) * 2015-10-21 2019-12-13 上海斐讯数据通信技术有限公司 一种流表下发方法、系统、sdn控制器及sdn交换机
CN105227378B (zh) * 2015-10-28 2019-04-02 陈鸣 综合管理WiFi网络和有线网络的软件定义系统以及方法
CN105471633B (zh) * 2015-11-18 2019-04-26 武汉烽火网络有限责任公司 一种应用于sdn的图形化编程方法
CN105553710A (zh) * 2015-12-14 2016-05-04 北京信息科技大学 在软件定义网络中的交换机中控制QoS的设备和方法
CN106888176B (zh) * 2015-12-15 2019-11-29 瑞昱半导体股份有限公司 网路装置及其控制方法
CN105959154B (zh) * 2016-06-22 2019-04-05 中国科学技术大学 一种基于编程工具的协议无关网络的转发管理方法
CN107547440B (zh) * 2016-06-28 2020-12-08 上海宽带技术及应用工程研究中心 一种sdn控制器消息队列管理方法及系统
CN106230512A (zh) * 2016-07-21 2016-12-14 国网信息通信产业集团有限公司 一种电力泛在光接入组网系统
CN106254271B (zh) * 2016-08-08 2019-07-19 北京邮电大学 一种用于软件定义网络的可编程队列配置方法及装置
CN106533943A (zh) * 2016-12-06 2017-03-22 中国电子科技集团公司第三十二研究所 基于网络交换芯片的微码和流表的实现方法
CN107332707B (zh) * 2017-07-25 2019-06-14 北京邮电大学 一种sdn网络测量数据的采集方法和装置
CN107645450B (zh) * 2017-10-11 2019-10-25 中国科学技术大学 基于协议无感知转发技术的流表虚拟化装置及方法
CN109495295B (zh) * 2018-10-31 2021-02-02 电子科技大学 一种接入智能管控方法
CN109831389A (zh) * 2019-03-14 2019-05-31 山东浪潮云信息技术有限公司 一种基于OpenFlow流量统计的负载均衡调度方法
CN110247908A (zh) * 2019-06-11 2019-09-17 优刻得科技股份有限公司 基于可编程网络交换技术的数据发送的方法、装置和系统
CN114374648B (zh) * 2020-10-14 2024-03-19 芯启源(南京)半导体科技有限公司 一种np芯片结合tcam实现智能网卡的方法
CN113076137B (zh) * 2021-03-11 2022-02-22 中国电子科技集团公司第五十四研究所 一种基于指令集的可编程流处理装置及方法
CN113132156B (zh) * 2021-03-31 2022-08-12 中国人民解放军战略支援部队信息工程大学 存储-计算-传输一体化的网络功能基础平台结构及方法
CN113660120B (zh) * 2021-08-13 2022-07-29 大连海事大学 一种数据平面动作可编程的软件定义网络系统
CN114416150A (zh) * 2022-01-18 2022-04-29 清华大学 可编程数据平面在运行时的更新方法及装置
CN116974580B (zh) * 2023-09-25 2024-01-09 之江实验室 多模态网络编译方法、系统和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546351A (zh) * 2012-03-15 2012-07-04 北京邮电大学 openflow网络和现有IP网络互联的系统和方法
US20130054761A1 (en) * 2011-08-29 2013-02-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G Packet Core in a Cloud Computer with Openflow Data and Control Planes
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机
CN103067245A (zh) * 2012-12-28 2013-04-24 中兴通讯股份有限公司 一种用于网络虚拟化的流表空间隔离装置及方法
CN103098427A (zh) * 2010-09-08 2013-05-08 日本电气株式会社 交换系统、交换控制系统和存储介质
CN103347013A (zh) * 2013-06-21 2013-10-09 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103098427A (zh) * 2010-09-08 2013-05-08 日本电气株式会社 交换系统、交换控制系统和存储介质
US20130054761A1 (en) * 2011-08-29 2013-02-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G Packet Core in a Cloud Computer with Openflow Data and Control Planes
CN102546351A (zh) * 2012-03-15 2012-07-04 北京邮电大学 openflow网络和现有IP网络互联的系统和方法
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机
CN103067245A (zh) * 2012-12-28 2013-04-24 中兴通讯股份有限公司 一种用于网络虚拟化的流表空间隔离装置及方法
CN103347013A (zh) * 2013-06-21 2013-10-09 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553749A (zh) * 2016-02-26 2016-05-04 广东技术师范学院 一种基于sdn的icn逻辑拓扑构建方法
CN108390899A (zh) * 2017-02-03 2018-08-10 中国科学院声学研究所 一种基于软件定义网络的二层交换机内容协同的方法
CN108390899B (zh) * 2017-02-03 2020-02-04 中国科学院声学研究所 一种基于软件定义网络的二层交换机内容协同的方法
CN112685625A (zh) * 2020-12-31 2021-04-20 中国人民解放军战略支援部队信息工程大学 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置
CN114338225A (zh) * 2021-03-29 2022-04-12 井芯微电子技术(天津)有限公司 策略分发器、拟态交换机及网络系统
CN114338225B (zh) * 2021-03-29 2024-04-12 井芯微电子技术(天津)有限公司 策略分发器、拟态交换机及网络系统
CN113114494A (zh) * 2021-04-02 2021-07-13 新疆大学 一种基于sdn的物联网异构网络通信设备及数据传递算法
CN113114494B (zh) * 2021-04-02 2024-03-01 新疆大学 一种sdn的物联网异构网络通信设备及数据传递方法
CN113708966A (zh) * 2021-08-24 2021-11-26 清华大学 一种交换机网络化在线配置方法、系统和设备
CN113708966B (zh) * 2021-08-24 2022-05-31 清华大学 一种交换机网络化在线配置方法、系统和设备
CN114553757A (zh) * 2022-01-29 2022-05-27 阿里巴巴(中国)有限公司 基于可编程交换机的协议报文处理方法、装置和设备
CN114567688A (zh) * 2022-03-11 2022-05-31 之江实验室 一种基于fpga的协同网络协议解析方法和装置

Also Published As

Publication number Publication date
CN103347013B (zh) 2016-02-10
CN103347013A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
WO2014202030A1 (zh) 增强OpenFlow网络能力的网络控制器、交换机和方法
Kempf et al. Moving the mobile evolved packet core to the cloud
US9894003B2 (en) Method, apparatus and system for processing data packet
Ishimori et al. Control of multiple packet schedulers for improving QoS on OpenFlow/SDN networking
KR101755138B1 (ko) 통신 시스템, 제어 장치, 및 네트워크 토폴로지 관리 방법
Li et al. Source routing with protocol-oblivious forwarding (POF) to enable efficient e-health data transfers
EP2479937B1 (en) Node, control server, communication method and program for packet processing using openflow
CN105723657B (zh) 交换机、控制器、系统及链路质量检测方法
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
US10645006B2 (en) Information system, control apparatus, communication method, and program
Li et al. Improving SDN scalability with protocol-oblivious source routing: A system-level study
WO2013059991A1 (zh) 数据报文处理方法和系统、报文转发设备
WO2018149338A1 (zh) 基于sdn的远端流镜像控制方法、实现方法及相关设备
US10033619B2 (en) Data processing method and apparatus for OpenFlow network
WO2013086897A1 (zh) 生成表项的方法、接收报文的方法及相应装置和系统
US20220070091A1 (en) Open fronthaul network system
Hu et al. Design and demonstration of SDN-based flexible flow converging with protocol-oblivious forwarding (POF)
JP6480452B2 (ja) パケット処理方法および装置
KR20160122226A (ko) 통신 시스템, 제어 장치, 통신 제어 방법 및 프로그램
WO2023115367A1 (zh) 一种多协议数据传输方法及装置、网络和存储介质
US20160134522A1 (en) Data flow processing method, device, and system
WO2016017737A1 (ja) スイッチ、オーバーレイネットワークシステム、通信方法及びプログラム
KR20180086964A (ko) 패킷 전송 방법 및 오픈플로우 스위치
WO2014131334A1 (zh) 一种多链路融合方法及设备
CN111327445B (zh) 报文采样方法及解封装方法、节点、系统及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14813191

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14813191

Country of ref document: EP

Kind code of ref document: A1