WO2016023148A1 - 报文的控制方法、交换机及控制器 - Google Patents

报文的控制方法、交换机及控制器 Download PDF

Info

Publication number
WO2016023148A1
WO2016023148A1 PCT/CN2014/084084 CN2014084084W WO2016023148A1 WO 2016023148 A1 WO2016023148 A1 WO 2016023148A1 CN 2014084084 W CN2014084084 W CN 2014084084W WO 2016023148 A1 WO2016023148 A1 WO 2016023148A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
message
switch
controller
original
Prior art date
Application number
PCT/CN2014/084084
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 华为技术有限公司
Priority to EP14899770.3A priority Critical patent/EP3166275A4/en
Priority to CN201480009721.7A priority patent/CN105684382A/zh
Priority to PCT/CN2014/084084 priority patent/WO2016023148A1/zh
Publication of WO2016023148A1 publication Critical patent/WO2016023148A1/zh
Priority to US15/421,667 priority patent/US10305783B2/en

Links

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/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a packet control method, a switch, and a controller.
  • SDN Software-Defined Network
  • the network element in the Openflow protocol includes a controller (Controller) and a forwarder (Switch).
  • the controller is responsible for determining the forwarding action of the service flow according to the packet characteristics, and sending the corresponding flow rule and corresponding action to the Switch;
  • the flow rule is stored, and the corresponding action is performed on the packet that meets the flow rule, so that the packet is forwarded or processed.
  • the Switch can report the message to the controller through the first packet message Packet_in.
  • the controller sends the packet to the Switch through the second packet message Packet_out.
  • the Switch processes the Packet_out message in three ways. First, Swtich matches Packet_out from the first-level flow table.
  • the packet carries the packet, and the packet is processed by the pipeline of the flow table.
  • the controller carries the flow table location of the Packet_in in the Pakcet_out message, and the Switch processes the packet from the specified flow table according to the value of the flow table location.
  • the Packet_out message carries the action set of the packet processing, and the Switch processes the packet according to the action set, and does not need to perform pipeline matching.
  • the inventor of the present application found in the long-term research and development process that the above three modes of the switch completely process the message according to the instruction of the controller, and when the data message is modified, it is found that it needs to be submitted to the control plane for processing and After being sent back to the switch for processing by the controller, there will be information loss caused by the previous modification.
  • the technical problem to be solved by the present invention is to provide a packet control method, a switch, and a controller, which enable the switch to flexibly process packets according to the instructions of the controller.
  • the present invention provides a packet control method, which includes: a switch receiving a packet, and processing the packet according to a pipeline, wherein the original content of the packet is an original packet, and the original The packet is stored in the cache and identifies the cache location by the cache identifier.
  • the switch sends a first packet message Packet_in to the controller, where the first packet message is sent.
  • the requesting controller determines a processing method of the packet, where the first packet message carries the cache identifier and all or part of the content of the packet, and an input port And the information obtained during the processing of the packet;
  • the switch receives a second packet message Packet_out sent by the controller, where the second packet message is used to deliver the a message processing instruction for processing the message, the second message message carrying the cache identifier and a message processing instruction, where the message processing instruction includes indication information of a specified flow table, the designation
  • the flow table is an initial flow table in the pipeline used by the switch to reprocess the message; the switch starts processing the message again from the specified flow table according to the message processing instruction.
  • the method further includes: the switch storing the original packet in a cache, and generating a cache identifier, where the cache identifier is used to identify a cache of the original packet
  • the switch carries the cache identifier in the process of processing the packet according to the flow table.
  • the switch before the step of storing the packet in a cache, includes: the switch receiving a cache instruction sent by the controller, the cache instruction requiring the switch to store the original content of the message specified by the controller.
  • the switch sends the first packet to the controller Before the step of the message Packet_in, the switch includes: receiving, by the controller, an original message carrying the original message, where the carrying original message instruction indicates that the switch carries the original message when sending the first message; The switch carries all of the original packet, a part of the original packet, or a variant of the original packet in the first packet message, and sends the packet to the controller.
  • any one of the first to the third possible implementation manners of the first aspect in a fourth possible implementation manner of the first aspect, the switch, according to the packet processing instruction, The step of reprocessing the packet from the specified flow table includes: the switch obtaining the original packet by using the cache identifier; and the switch according to the packet processing instruction, from the first level The flow table reprocesses the obtained original message, wherein the specified flow table is the first stage of the pipeline.
  • any one of the first to the third possible implementation manners of the first aspect in a fifth possible implementation manner of the first aspect, the switch, according to the packet processing instruction, And the step of re-processing the packet from the specified flow table, comprising: obtaining, by the switch, the flow table identifier table_id of the current flow table of the original packet in the processing process by using the cache identifier; The switch obtains the current packet obtained after the original packet processing from the cache; the switch sends the current packet to the flow table identifier table of the current flow table according to the packet processing instruction. The location in the pipeline indicated by the id continues to be processed, wherein the specified flow table is a flow table identified by the flow table identifier table_id.
  • the method further includes: in processing the packet, the switch records the The flow table identifier table_id of the current flow table in the process of the message; the switch stores the flow table identifier table_id of the current flow table in the process in the process in the generated cache identifier In the cache.
  • the switch receives the Before the step of the second packet message Packet_out, the method further includes: the switch receiving an indication that the controller adds, deletes, or modifies the flow entry, and adding the flow entry according to the indication , delete or modify the operation.
  • the switch sends the first packet to the controller
  • the step of the message Packet_in includes: the switch sends a first packet message Packet_in to the controller, and the Packet_id field of the first packet message stores the cache identifier.
  • the switch sends the first packet to the controller
  • the step of the message Packet_in includes: the switch sends a first message message Packet_in to the controller, and the Buffer_id field of the first message message stores the cache identifier.
  • the present invention provides a packet control method, where the method includes: receiving, by a controller, a first packet message Packet_in sent by a switch, where the first packet message is used to report information of a packet to a controller,
  • the requesting controller determines a processing method of the packet, where the first packet message carries a cache identifier and all or part of the content of the packet, an input port number, and information obtained during the processing of the packet
  • the original content of the packet is the original packet, and the cache identifier is used to identify the cache location of the original packet; the controller analyzes and processes the information of the packet to generate a packet processing instruction.
  • the controller sends a second packet message Packet_out to the switch, where the second packet message is used to send a message processing instruction for processing the packet to the switch, the second packet
  • the message carries the cache identifier and the packet processing instruction, where the packet processing instruction includes indication information of the specified flow table, where the specified flow table is used by the switch to reprocess the packet.
  • the method before the step of the controller receiving the first packet message Packet_in sent by the switch, the method includes: the controller sending a cache instruction to the switch, where the cache instruction Instructing the switch to store the original content of the message specified by the controller.
  • the controller before the step of the controller sending the second packet message Packet_out to the switch, the controller includes: sending, by the controller, the flow entry to the switch Instructions for adding, deleting, or modifying operations.
  • the controller before the step of the controller receiving the first packet message Packet_in sent by the switch, the controller includes: sending, by the controller, the original packet message to the switch, where The carrying the original message instruction instructs the switch to carry the original message when sending the first message.
  • the present invention provides a switch, where the switch includes: a first receiving module, a processing module, a sending module, a second receiving module, and a reprocessing module; the first receiving module is configured to receive a packet, where The original content of the packet is the original packet, the original packet is stored in the cache and the cache location is identified by the cache identifier; the processing module is configured to process the packet according to the pipeline; the sending module When the packet fails to match the flow table, the first message message Packet_in is sent to the controller, where the first message message is used to report the information of the message to the controller, requesting the controller to determine For processing the foregoing packet, the first packet message carries a cache identifier and all or part of the content of the packet, an input port number, and information obtained during the processing of the packet; The receiving module is configured to receive a second packet message Packet_out sent by the controller, where the second packet message is used to send a packet processing instruction for processing the packet to the switch The second packet message message
  • the switch further includes: a storage module; the storage module is configured to store the original packet in a cache, and generate a cache identifier, where the cache identifier is used
  • the processing module is further configured to carry the cache identifier in the process of processing the packet according to the flow table.
  • the switch further includes a third receiving module, where the third receiving module is configured to receive the controller A cache instruction sent, the cache instruction requiring the switch to store the original content of the message specified by the controller.
  • the switch further includes a fourth receiving module, where The fourth receiving module is configured to receive the original message carrying the command sent by the controller, where the carrying the original message instruction instructs the switch to carry the original message when sending the first message; the sending module It is further configured to carry all of the original message, a part of the original message, or a variant of the original message in the first message message and send the message to the controller.
  • the reprocessing module includes: a first obtaining unit And the first reprocessing unit; the first obtaining unit is configured to obtain the original packet by using the cache identifier; the first reprocessing unit is configured to use the first processing table according to the packet processing instruction The original message obtained by the first obtaining unit is processed again, wherein the specified flow table is the first stage of the pipeline.
  • the reprocessing module includes: a second obtaining unit a third obtaining unit and a second reprocessing unit, wherein the second obtaining unit is configured to obtain, by using the cache identifier, a flow table identifier table_id of the current flow table of the original packet in the processing process;
  • the third obtaining unit is configured to obtain, from the cache, the current message obtained after the original message processing;
  • the second reprocessing unit is configured to send the current message to the current according to the message processing instruction Flow table identifier table
  • the location in the pipeline indicated by the id continues to be processed, wherein the specified flow table is a flow table identified by the flow table identifier table_id.
  • the switch further includes a recording module, where the recording module is used in processing the packet And storing, according to a predetermined requirement, a flow table identifier table_id of the current flow table of the packet in the processing process; the storage module is further configured to stream the current flow table of the packet in the processing process
  • the table identifier table_id is stored in the cache in which the cache identifier has been generated.
  • the switch further includes a fifth receiving module and an operation
  • the fifth receiving module is configured to receive an indication that the controller adds, deletes, or modifies the flow entry; the operation module is configured to add the flow entry according to the indication , delete or modify the operation.
  • the sending module is specifically configured to send to the controller
  • the first message message Packet_in, the Packet_id field of the first message message stores the cache identifier.
  • the sending module is specifically configured to send to the controller, in a ninth possible implementation manner of the third aspect,
  • the first message message Packet_in, the Buffer_id field of the first message message stores the cache identifier.
  • the present invention provides a controller, where the controller includes: a receiving module, a processing module, and a first sending module; and the receiving module is configured to receive a first packet message Packet_in sent by the switch, where the first The message message is used to report the information of the message to the controller, and the requesting controller determines the processing method of the message, where the first message carries the cache identifier and all or part of the content of the message, and the input port.
  • the original content of the packet is an original packet
  • the cache identifier is used to identify a cache location of the original packet
  • the first sending module is configured to send a second packet message Packet_out to the switch, where the second packet message is used to send to the switch Sending a message processing instruction for processing the message, where the second message message carries the cache identifier and a message processing instruction, where the message processing instruction includes an indication of a specified flow table Information, the specified flow table is a starting flow table in a pipeline used by the switch to reprocess the message.
  • the controller further includes a second sending module, where the second sending module is configured to send a cache instruction to the switch, where the cache instruction instructs the switch to store The original content of the message specified by the controller.
  • the controller further includes a third sending module, where the third sending module is configured to send, add, delete, or modify the flow entry to the switch Instructions for operation.
  • the controller further includes a fourth sending module, where the fourth sending module is configured to send, by the switch, an original packet carrying command, where the original packet is carried The instruction instructs the switch to carry the original message when sending the first message.
  • the present invention provides a switch, the switch includes: a processor, a memory coupled to the processor, a receiver, and a transmitter; the receiver is configured to receive a message, where the packet is The original content is the original message; the memory is used to store the original message, and the cache location is identified by a cache identifier; the memory is further configured to store a flow table; the processor is configured to process the pipeline according to the pipeline The message is used by the sender to send a first message message Packet_in to the controller when the packet fails to match a flow table, where the first message is used to report the message to the controller.
  • the requesting controller determines a processing method for the foregoing packet, where the first packet message carries the cache identifier and all or part of the content of the packet, an input port number, and a process in the packet processing process.
  • the receiver is configured to receive a second packet message Packet_out sent by the controller, where the second packet message is used to send the packet to the switch for processing the packet a packet processing instruction, where the second packet message carries the cache identifier and a packet processing instruction, where the packet processing instruction includes indication information of a specified flow table, where the specified flow table is reprocessed by the switch a start flow table in the pipeline used by the message, and storing the message processing instruction in the memory; the processor is configured to retrieve the memory to obtain the message processing instruction, according to the report The text processing instruction starts processing the message again from the specified flow table.
  • the present invention provides a controller, the controller including: a processor, a memory coupled to the processor, a receiver, and a transmitter; the receiver is configured to receive a first message sent by the switch Packet_in, and storing the first message message Packet_in in the memory, where the first message message is used to report information of the message to the controller, and the controller is requested to determine a processing method of the message,
  • the first message carries the cache identifier and all or part of the content of the packet, the input port number, and the information obtained during the processing of the packet, where the original content of the packet is the original packet.
  • the cache identifier is used to identify a cache location of the original packet, and the processor is configured to retrieve the information of the packet that is sent by the first packet message Packet_in. The information is analyzed and processed to generate a message processing instruction; the sender is configured to send a second message message Packet_out to the switch, where the second message is used to deliver the message to the switch a packet processing instruction for processing the packet, the second packet message carrying the cache identifier and a packet processing instruction, where the packet processing instruction includes indication information of a specified flow table, the specified flow table Retrieving the initial flow table in the pipeline used by the message for the switch.
  • the original packet is stored in the cache and the cache location is identified by the cache identifier.
  • the first packet message sent by the switch to the controller carries the cache identifier.
  • the second packet message received by the switch carries the cache identifier and the packet processing instruction, and the packet processing instruction includes the indication information of the specified flow table.
  • the switch starts processing the packet again from the specified flow table according to the packet processing instruction. In this manner, the original packet can be obtained according to the cache identifier when the switch needs the original packet, so that the switch can flexibly process the packet according to the indication of the controller.
  • FIG. 1 is a flow chart of an embodiment of a method for controlling a message according to the present invention
  • FIG. 2 is a flowchart of another embodiment of a method for controlling a message according to the present invention.
  • FIG. 3 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • FIG. 4 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • FIG. 5 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • FIG. 6 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • FIG. 7 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • FIG. 8 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • FIG. 9 is a schematic structural diagram of an embodiment of a switch according to the present invention.
  • FIG. 10 is a schematic structural diagram of another embodiment of a switch according to the present invention.
  • FIG. 11 is a schematic structural diagram of still another embodiment of a switch according to the present invention.
  • FIG. 12 is a schematic structural diagram of still another embodiment of a switch according to the present invention.
  • FIG. 13 is a schematic structural diagram of still another embodiment of a switch according to the present invention.
  • Figure 14 is a schematic structural view of an embodiment of a controller of the present invention.
  • Figure 15 is a schematic structural view of another embodiment of the controller of the present invention.
  • Figure 16 is a schematic structural view of still another embodiment of the controller of the present invention.
  • FIG. 17 is a schematic structural diagram of a physical entity of an embodiment of a switch according to the present invention.
  • FIG. 18 is a schematic diagram showing the physical structure of an embodiment of a controller of the present invention.
  • FIG. 1 is a flowchart of a method for controlling a message according to the present invention.
  • This embodiment is a flowchart of a method at the switch end, and includes:
  • Step S101 The switch receives the packet and processes the packet according to the pipeline.
  • the original content of the packet is the original packet, and the original packet is stored in the cache and the cache location is identified by the cache identifier.
  • a switch (English: Switch) is a network device used for electrical signal forwarding. It provides an exclusive electrical signal path for any two network nodes that access the switch. After receiving the packet, the switch processes the packet according to the pipeline. The original content of the message is the original message.
  • the original message is not processed by the switch.
  • the original message contains all the most original and comprehensive information.
  • the message processed by the switch is changed by the switch.
  • the original message contains no comprehensive information.
  • the original packet is stored in the cache, and the cache identifier is used to identify the cache location of the original packet. When the original packet is needed, the original packet can be obtained from the cache by using the cache identifier.
  • the pipeline consists of a flow table.
  • the flow table consists of a number of flow entries. Each flow entry is a forwarding rule.
  • the packets entering the switch are forwarded through the query flow table to obtain the destination port.
  • Flow table entry by header field (English: Header) Fields), counters (English: Counters) and operations (English: Actions); where the header field is the identifier of the flow entry; the counter is used to count the statistics of the flow entry; the operation indicates the report matching the flow entry
  • the operations that should be performed including the type of processing and related parameters, such as forwarding, discarding, modifying, encapsulating, decapsulating, and so on.
  • the header field is also called a matching field, and is used to match the header content of the packet received by the switch.
  • the information such as the packet header field and the receiving port number is matched with the specified value.
  • a quintuple (source IP address, destination IP address, protocol type, source port number, destination port number) of IP packets, and various header fields (source MAC address, destination MAC address, etc.) in the Ethernet frame header, etc.
  • the match here can be either an exact match or a mask match.
  • the switch processes the packets according to the pipeline. For example, the matching starts from the first flow table. If the entry is matched, the instructions in the entry are executed, and then the next flow table is forwarded to continue the matching operation. If there is no matching entry in the flow table, the packet will be discarded or forwarded to the controller for processing. If the instruction in the matching entry no longer jumps to the next flow table, the matching ends, and the corresponding operations (Actions) are performed, such as forwarding the packet to the specified output port, dropping the packet, modifying the packet header, and forwarding to Group table, etc.
  • the matching starts from the first flow table. If the entry is matched, the instructions in the entry are executed, and then the next flow table is forwarded to continue the matching operation. If there is no matching entry in the flow table, the packet will be discarded or forwarded to the controller for processing. If the instruction in the matching entry no longer jumps to the next flow table, the matching ends, and the corresponding operations (Actions) are performed, such as forwarding the packet to the specified
  • Step S102 When the packet fails to match a flow table, the switch sends a first packet message Packet_in to the controller, where the first packet message is used to report the information of the packet to the controller, and the controller is requested to determine the packet.
  • the first packet message carries the cache identifier and all or part of the content of the packet, the input port number, and the information obtained during the packet processing.
  • the first packet message Packet_in is a message that the switch reports the information of the packet to the controller, and the information may be the case that the packet is processed, the packet processing failure, or the current processing status, etc., in the flow table entry.
  • the switch can report the packet to the controller through the first packet message Packet_in, requesting the controller to determine the processing method of the packet.
  • the switch may report the message to the controller through the first packet message Packet_in in the case that the switch needs to send a message to the controller.
  • the first packet message carries a cache identifier, which helps the controller to carry the cache identifier when sending the second packet message to the switch.
  • the first message also includes all or part of the content of the message, the input port number, and the information obtained during the message processing.
  • All or part of the content of the message may be the entire content of the original message, part of the content, the modified message, the modification record of the message, etc.; the input port number is used to identify the switch; the information obtained in the message processing may be It is used to provide additional information for controller reference, which is convenient for the controller to analyze and process the message.
  • the switch sends a first packet message Packet_in to the controller, and the Packet_id field of the first packet message stores the cache identifier. In this way, the functionality of the existing Packet_id can be extended.
  • the switch sends the first packet message Packet_in to the controller, and the Buffer_id field of the first packet message stores the cache identifier. In this way, the functionality of existing Buffer_id cells can be extended.
  • Step S103 The switch receives the second packet message Packet_out sent by the controller, and the second packet message is used to send a packet processing instruction for processing the packet to the switch, and the second packet message carries the cache identifier and the packet processing.
  • the instruction, the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the second packet message Packet_out is used by the controller to send a packet processing instruction for processing the packet to the switch, and is a message corresponding to the first packet message Packet_in.
  • the packet processing instruction includes indication information of the specified flow table, and the specified flow is specified.
  • the table is the initial flow table in the pipeline used by the switch to reprocess the packet.
  • the specified flow table can be the first-level flow table.
  • the specified flow table may be a flow table whose matching fails; the message processing instruction is carried in the second message.
  • the first packet message Packet_in carries a cache identifier
  • the second packet message Packet_out is a message that responds to the first packet message Packet_in, and also carries the cache identifier, so that when the switch receives the second packet message Packet_out, the original packet needs to be original.
  • the original packet can be obtained through the cache identifier.
  • Step S104 The switch starts processing the packet again from the specified flow table according to the packet processing instruction.
  • the packet When the switch receives the second packet message Packet_out, the packet can be processed again according to the packet processing instruction carried in the second packet message Packet_out, and the original packet can be reprocessed again.
  • the processing may also start by processing the current packet from the matching failed flow table.
  • the switch receives the packet and processes the packet according to the pipeline.
  • the original packet is stored in the cache and the cache location is used to identify the cache location.
  • the switch sends the packet to the controller.
  • the packet message Packet_in carries the cache identifier and all or part of the content of the packet, the input port number, and the information obtained during the packet processing process.
  • the switch receives the second packet message Packet_out sent by the controller and carries the cache identifier.
  • the packet processing instruction the packet processing instruction includes the indication information of the specified flow table; the switch performs the processing of the packet again from the specified flow table according to the packet processing instruction, and in this manner, the original message of the switch can be needed in the switch.
  • the original packet is obtained according to the cache identifier, so that the switch can flexibly process the packet according to the indication of the controller.
  • FIG. 2 to FIG. 4 are flowcharts of three other embodiments of the control method of the message according to the present invention.
  • the three implementation manners are flowcharts of the method at the switch end.
  • the three implementation manners are basically the same as the implementation manners of FIG. 1.
  • FIG. 1 and related text descriptions please refer to FIG. 1 and related text descriptions, and the specific details are as follows:
  • Step S201 The switch receives the packet, and the original content of the received packet is the original packet.
  • Step S202 The switch receives a cache instruction sent by the controller, and the cache instruction requires the switch to store the original content of the message specified by the controller.
  • the original content of the message is the original message. That is, whether the switch caches the original message can be determined according to the controller's cache instruction.
  • step S201 and step S202 have no obvious sequence, and step S202 may be performed before step S203.
  • Step S203 The switch stores the original packet in the cache, and generates a cache identifier, where the cache identifier is used to identify the cache location of the original packet.
  • Step S204 The switch processes the packet according to the flow table, and carries the cache identifier in the process.
  • Step S205 The switch receives the original message command sent by the controller, and carries the original message instruction to instruct the switch to carry the original message when sending the first message.
  • the switch When the switch sends the first packet, whether the original packet carries the original packet can be determined according to the original packet command sent by the controller.
  • the switch may carry all the original message, a part of the original message, or the original message in the first message according to the actual processing, and send the message to the first message. Controller.
  • step S205 only needs to be performed before step S206, and there is no obvious sequence with the previous steps.
  • Step S206 When the packet fails to match a flow table, the switch sends a first packet message Packet_in to the controller, where the first packet message is used to report the information of the packet to the controller, and the controller is requested to determine the packet.
  • the first packet message carries the cache identifier and all or part of the content of the packet, the input port number, and the information obtained during the processing of the packet.
  • the step S206 is specifically: the switch sends a first packet message Packet_in to the controller, where the first packet message carries the cache identifier and all the original packets obtained by the cache identifier, a part of the original message or the original message.
  • the variant of the message also carries the input port number and the information obtained during the processing of the message.
  • the switch sends the first packet message Packet_in to the controller, and the Buffer_id field of the first packet message stores the cache identifier. In this way, the functionality of existing Buffer_id cells can be extended.
  • the switch sends a first packet message Packet_in to the controller, and the Packet_id field of the first packet message stores the cache identifier. In this way, the functionality of the existing Packet_id can be extended.
  • Step S207 The switch receives the second packet message Packet_out sent by the controller, where the second packet message is used to send a packet processing instruction for processing the packet, and the second packet message carries the cache identifier and the packet processing.
  • the instruction, the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • Step S208 The switch starts processing the packet again from the specified flow table according to the packet processing instruction.
  • Step S208 can be performed in the following manner, specifically:
  • Step S208a The switch obtains the original packet by using the cache identifier.
  • Step S208b The switch re-processes the obtained original packet from the first-level flow table according to the packet processing instruction, where the specified flow table is the first stage of the pipeline.
  • the switch obtains the original packet by using the cache identifier, and the original packet is re-processed from the first-level flow table.
  • This mode is more suitable for the case where the original message needs to be reprocessed, or some switches do not support the insertion process of the intermediate flow table for the message.
  • the switch stores the received original packet in the cache, and generates a cache identifier.
  • the packet carries the cache identifier in the process of processing the packet according to the flow table, and the sent packet_in carries the cache identifier and all or part of the content of the packet. Entering the port number and the information obtained during the processing of the packet; the received Packet_out carries the cache identifier and the packet processing instruction; and the packet is processed again.
  • the switch stores the original packet received in the cache and generates the cache identifier.
  • the cache identifier is carried in both the sent and received messages. In this manner, the switch can obtain the original packet according to the cache identifier.
  • the original message which enables the switch to process the message better.
  • the controller sends the cache command to enable the switch to selectively buffer the original packet.
  • the controller sends the original packet command to transmit all or part of the original packet or the original packet.
  • the controller is provided so that the controller obtains the complete message information as much as possible, and makes a correct judgment on the processing of the message; the original message is obtained by the cache identifier, and can be processed again from the original message of the first-level flow table.
  • FIG. 5 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • This embodiment is a flowchart of a method at the switch end.
  • This embodiment is basically the same as the embodiment of FIG. 1. 1 and the corresponding text description, the specific content is as follows:
  • Step S301 The switch receives the packet, and the original content of the received packet is the original packet.
  • Step S302 The switch stores the original packet in the cache, and generates a cache identifier, where the cache identifier is used to identify the cache location of the original packet.
  • Step S303 The switch processes the packet according to the flow table, and carries the cache identifier in the process.
  • Step S304 In the process of processing the message, according to the predetermined requirement, the switch records the flow table identifier table_id of the current flow table in the process of processing the message.
  • Step S305 The switch stores the flow table identifier table_id of the current flow table in the process of processing the message in the cache in which the cache identifier is generated.
  • the switch In the process of processing the packet, the switch records the flow table identifier table_id of the current flow table, and stores the flow table identifier table_id in the cache that has generated the cache identifier, so as to obtain the flow table identifier table_id according to the cache identifier, so that When reprocessing, the current packet can be sent to the flow table identifier table of the current flow table.
  • the position in the pipeline indicated by id continues to be processed.
  • Step S306 When the packet fails to match the flow table, the switch sends a first packet message Packet_in to the controller, where the first message is used to report the information of the packet to the controller, and the controller is requested to determine the packet.
  • the first message message carries the cache identifier and all or part of the content of the message, the input port number, and the information obtained during the packet processing.
  • the switch sends the first packet message Packet_in to the controller, and the Buffer_id field of the first packet message stores the cache identifier. In this way, the functionality of existing Buffer_id cells can be extended.
  • the switch sends a first packet message Packet_in to the controller, and the Packet_id field of the first packet message stores the cache identifier. In this way, the functionality of the existing Packet_id can be extended.
  • Step S307 The switch receives an indication of adding, deleting, or modifying the flow entry of the controller, and performs an operation of adding, deleting, or modifying the flow entry according to the indication.
  • Step S308 The switch receives the second packet message Packet_out sent by the controller, and the second packet message is used to send a packet processing instruction for processing the packet to the switch, and the second packet message carries the cache identifier and the packet processing.
  • the instruction, the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • Step S309 The switch obtains the flow table identifier table_id of the current flow table of the original packet during processing by using the cache identifier.
  • Step S310 The switch obtains the current packet obtained after the original packet processing from the cache.
  • Step S311 The switch sends the current packet to the flow table identifier table of the current flow table according to the packet processing instruction.
  • the location in the pipeline indicated by the id continues to be processed, wherein the specified flow table is the flow table identified by the flow table identifier table_id.
  • the switch obtains the flow table identifier table_id of the current flow table in the process of processing the original packet by using the cache identifier, obtains the current packet obtained after the original packet processing from the cache, and then sends the current packet to the flow table of the current flow table.
  • Identification table The position in the pipeline indicated by the id continues to be processed. In this way, the packet can be exempted from being reprocessed from the first-level flow table, which saves time. This mode is suitable for some switches to support the intermediate flow table of the packet. Insertion processing.
  • the switch stores the received original packet in the cache, and generates a cache identifier.
  • the packet carries the cache identifier in the process of processing the packet according to the flow table, and the sent packet_in carries the cache identifier and all or part of the content of the packet. Enter the port number and the information obtained during the packet processing; the received Packet_out carries the cache identifier and the packet processing instruction; the packet is processed again.
  • the switch stores the original packet received in the cache and generates the cache identifier.
  • the cache identifier is carried in both the sent and received messages. In this manner, the switch can obtain the original packet according to the cache identifier.
  • the original message which enables the switch to process the message better and more flexibly.
  • the flow table identifier table_id of the current flow table is recorded, and the flow table identifier table_id is stored in the cache in which the cache identifier is generated, and the packet can be exempted from being reprocessed from the first-level flow table, thereby saving time.
  • FIG. 6 is a flowchart of still another embodiment of a method for controlling a message according to the present invention.
  • Step S401 The controller receives the first packet message Packet_in sent by the switch, and the first packet message is used to report the information of the packet to the controller, and the controller is requested to determine the processing method of the packet, where the first packet message is carried. Cache ID and all or part of the packet, the input port number, and the information obtained during the packet processing.
  • the original content of the packet is the original packet.
  • the cache identifier is used to identify the cache location of the original packet.
  • the controller (English: Controller) is used to centrally control the network and implement the functions of the control layer.
  • the controller controls the flow table in the switch through the standard interface of the OpenFlow protocol, thereby implementing centralized control of the entire network, for example, discovering the network.
  • Status and events topology, devices, traffic
  • control switch communication shared storage, threads, tests, and more.
  • the first packet message Packet_in is a message that the switch reports the information of the packet to the controller, and the information may be the case that the packet is processed, the packet processing failure, or the current processing status, etc., in the flow table entry.
  • the switch can report the packet to the controller through the first packet message Packet_in, requesting the controller to determine the processing method of the packet.
  • the switch may report the message to the controller through the first packet message Packet_in in the case that the switch needs to send a message to the controller.
  • the first packet message carries a cache identifier, which helps the controller to carry the cache identifier when sending the second packet message to the switch.
  • the cache identifier is used to identify the cache location of the original message.
  • the first message also includes all or part of the content of the message, the input port number, and the information obtained during the message processing.
  • All or part of the content of the message may be the entire content of the original message, part of the content, the modified message, the modification record of the message, etc.; the input port number is used to identify the switch; the information obtained in the message processing may be It is used to provide additional information for controller reference, which is convenient for the controller to analyze and process the message.
  • Step S402 The controller analyzes and processes the information of the message to generate a message processing instruction.
  • the message processing instruction is an instruction of how the message is processed after the controller analyzes and processes the message, that is, the message processing instruction.
  • Step S403 The controller sends a second packet message Packet_out to the switch, where the second packet message is used to send a packet processing instruction for processing the packet, and the second packet message carries the cache identifier and the packet processing instruction.
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the second packet message Packet_out is used by the controller to send a packet processing instruction for processing the packet to the switch, and is a message corresponding to the first packet message Packet_in.
  • the packet processing instruction includes indication information of the specified flow table, and the specified flow is specified.
  • the table is the initial flow table in the pipeline used by the switch to reprocess the packet.
  • the specified flow table can be the first-level flow table.
  • the specified flow table may be a flow table whose matching fails; the message processing instruction is carried in the second message.
  • the first packet message Packet_in carries a cache identifier
  • the second packet message Packet_out is a message that responds to the first packet message Packet_in, and also carries the cache identifier, so that when the switch receives the second packet message Packet_out, the original packet needs to be original.
  • the original packet can be obtained through the cache identifier.
  • the controller receives the first packet message Packet_in sent by the switch, and the Packet_in carries all or part of the content of the cache identifier and the packet, the input port number, and the information obtained during the processing of the packet; Performing an analysis process, generating a message processing instruction, and sending a second message message Packet_out to the switch, where the second message message carries a cache identifier and a message processing instruction. Because the controller carries the cache identifier in the received and sent messages, the switch can obtain the original packet according to the cache identifier when the switch needs the original packet, so that the switch can process the report flexibly according to the instruction of the controller. Text.
  • FIG. 7 and FIG. 8 are flowcharts of two embodiments of a method for controlling a message according to the present invention.
  • This embodiment is a method flow of a controller, and the embodiment is basically the same as the embodiment of FIG.
  • Figure 6 and related text descriptions please refer to Figure 6 and related text descriptions. The differences are as follows:
  • Step S501 The controller sends a cache instruction to the switch, where the cache instruction instructs the switch to store the original content of the message specified by the controller.
  • the original content of the message is the original message. That is, whether the switch caches the original message can be determined according to the controller's cache instruction.
  • Step S502 The controller sends an original message carrying the original message to the switch, and the original message is sent to the switch to carry the original message when the first message is sent by the switch.
  • the controller Before the controller receives the first packet message, if the controller needs the original packet, the controller sends the original packet command to instruct the switch to carry the original packet when the first packet message is sent.
  • Step S503 The controller receives the first packet message Packet_in sent by the switch, where the first packet message is used to report the information of the packet to the controller, and the controller is requested to determine the processing method of the packet, where the first packet message carries the buffer.
  • the original content of the packet is the original packet, and the cache identifier is used to identify the cache location of the original packet.
  • the original content of the packet and the information obtained during the processing of the packet are the original packet.
  • the step S503 is specifically: the controller receives the first packet message Packet_in sent by the switch, where the first packet message carries the cache identifier and all the original packets obtained by the cache identifier, part of the original packet or The original message is modified, and the cache identifier is used to identify the cache location of the original message.
  • Step S504 The controller analyzes and processes the information of the message to generate a message processing instruction.
  • the step S504 is specifically: the controller analyzes and processes all of the original message, a part of the original message or the original message, and generates a message processing instruction.
  • Step S505 The controller sends an indication to the switch to perform an operation of adding, deleting, or modifying the flow entry.
  • Step S506 The controller sends a second packet message Packet_out to the switch, where the second packet message is used to send a packet processing instruction for processing the packet, and the second packet message carries the cache identifier and the packet processing instruction.
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the step S506 is specifically: the controller sends a second packet message Packet_out to the switch, where the second packet message carries the cache identifier and the controller, all of the original packet, a part of the original packet, or the original packet.
  • the deformation processing is processed by the message processing instruction generated after the analysis.
  • the controller receives the first packet message Packet_in sent by the switch, and the Packet_in carries all or part of the content of the cache identifier and the packet, the input port number, and the information obtained during the processing of the packet; The information is analyzed and processed to generate a message processing instruction, and the second message message Packet_out is sent to the switch, and the second message carries the cache identifier and the message processing instruction. Because the controller carries the cache identifier in the received and sent messages, the switch can obtain the original packet according to the cache identifier when the switch needs the original packet, so that the switch can process the report flexibly according to the instruction of the controller. Text.
  • the controller sends the cache command to enable the switch to selectively buffer the original packet.
  • the controller sends the original packet command to transmit all or part of the original packet or the original packet. Give the controller so that the controller can get the most complete message information and make a correct judgment on the processing of the message.
  • FIG. 9 is a schematic structural diagram of an embodiment of a switch according to the present invention.
  • the switch includes: a first receiving module 101, a processing module 102, a sending module 103, a second receiving module 104, and a reprocessing module 105.
  • switch in this embodiment may perform the steps in the method flow of FIG. 1 to FIG. 5.
  • the first receiving module 101 is configured to receive the packet, where the original content of the packet is the original packet, and the original packet is stored in the cache and the cache location is identified by the cache identifier.
  • the original message is not processed by the switch.
  • the original message contains all the most original and comprehensive information.
  • the message processed by the switch is changed by the switch.
  • the original message contains no comprehensive information.
  • the original packet is stored in the cache, and the cache identifier is used to identify the cache location of the original packet. When the original packet is needed, the original packet can be obtained from the cache by using the cache identifier.
  • the processing module 102 is configured to process the message according to the pipeline.
  • the pipeline consists of a flow table.
  • the flow table consists of a number of flow entries. Each flow entry is a forwarding rule.
  • the packets entering the switch are forwarded through the query flow table to obtain the destination port.
  • Flow table entry by header field (English: Header) Fields), counters (English: Counters) and operations (English: Actions); where the header field is the identifier of the flow entry; the counter is used to count the statistics of the flow entry; the operation indicates the report matching the flow entry The operation that the text should perform.
  • the header field is also called a matching field, and is used to match the header content of the packet received by the switch. Specifically, the information such as the packet header field and the receiving port number is matched with the specified value.
  • the packet is processed according to the flow table. For example, the matching is started from the first flow table. If the entry is matched, the instruction in the entry is executed, and then the next flow table is skipped to continue the matching operation. If there is no matching entry in the flow table, the packet will be discarded or forwarded to the controller for processing. If the instruction in the matching entry no longer jumps to the next flow table, the matching ends, and the corresponding operations (Actions) are performed, such as forwarding the packet to the specified output port, dropping the packet, modifying the packet header, and forwarding to Group table, etc.
  • the matching is started from the first flow table. If the entry is matched, the instruction in the entry is executed, and then the next flow table is skipped to continue the matching operation. If there is no matching entry in the flow table, the packet will be discarded or forwarded to the controller for processing. If the instruction in the matching entry no longer jumps to the next flow table, the matching ends, and the corresponding operations (Actions) are performed, such as forwarding the packet to the
  • the sending module 104 is configured to send a first packet message Packet_in to the controller when the packet fails to match the flow table, where the first message is used to report the information of the packet to the controller, and the controller is requested to determine the report.
  • the processing method of the text, the first message carries the cache identifier and all or part of the content of the message, the input port number, and the information obtained during the packet processing.
  • the first packet message Packet_in is a message that the switch reports the information of the packet to the controller, and the information may be the case that the packet is processed, the packet processing failure, or the current processing status, etc., in the flow table entry. In the scenario where the matching fails, the first packet message Packet_in can be reported to the controller, and the controller is requested to determine the processing method of the packet. Alternatively, the switch may report the message to the controller through the first packet message Packet_in in the case that the switch needs to send a message to the controller.
  • the first packet message carries a cache identifier, which helps the controller to carry the cache identifier when sending the second packet message to the switch.
  • the first message also includes all or part of the content of the message, the input port number, and the information obtained during the message processing.
  • All or part of the content of the message may be the entire content of the original message, part of the content, the modified message, the modification record of the message, etc.; the input port number is used to identify the switch; the information obtained in the message processing may be It is used to provide additional information for controller reference, which is convenient for the controller to analyze and process the message.
  • the switch sends a first packet message Packet_in to the controller, and the Packet_id field of the first packet message stores the cache identifier. In this way, the functionality of the existing Packet_id can be extended.
  • the first packet message Packet_in is sent to the controller, and the Buffer_id field of the first packet message stores the cache identifier. In this way, the functionality of existing Buffer_id cells can be extended.
  • the second receiving module 104 is configured to receive a second packet message Packet_out sent by the controller, where the second packet message is used to send a packet processing instruction for processing the packet to the switch, where the second packet message carries the cache identifier and
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the second packet message Packet_out is used by the controller to send a packet processing instruction for processing the packet to the switch, and is a message corresponding to the first packet message Packet_in.
  • the packet processing instruction includes indication information of the specified flow table, and the specified flow is specified.
  • the table is the initial flow table in the pipeline used by the switch to reprocess the packet.
  • the specified flow table can be the first-level flow table.
  • the specified flow table may be a flow table whose matching fails; the message processing instruction is carried in the second message.
  • the first packet message Packet_in carries a cache identifier
  • the second packet message Packet_out is a message that responds to the first packet message Packet_in, and also carries the cache identifier, so that when the switch receives the second packet message Packet_out, the original packet needs to be original.
  • the original packet can be obtained through the cache identifier.
  • the reprocessing module 105 is configured to perform processing on the packet again from the specified flow table according to the message processing instruction.
  • the packet processing instruction carried in the second packet message Packet_out may be used to process the packet again from the specified flow table, and the processing may be performed on the original packet. It is also possible to continue processing the current packet starting from the matching failed flow table.
  • the switch receives the packet and processes the packet according to the pipeline.
  • the original packet is stored in the cache and the cache location is used to identify the cache location.
  • the switch sends the packet to the controller.
  • the packet message Packet_in carries the cache identifier and all or part of the content of the packet, the input port number, and the information obtained during the packet processing process.
  • the switch receives the second packet message Packet_out sent by the controller and carries the cache identifier.
  • the packet processing instruction the packet processing instruction includes the indication information of the specified flow table; the switch performs the processing of the packet again from the specified flow table according to the packet processing instruction, and in this manner, the original message of the switch can be needed in the switch.
  • the original packet is obtained according to the cache identifier, so that the switch can flexibly process the packet according to the indication of the controller.
  • FIG. 10 to FIG. 12 are schematic structural diagrams of two other embodiments of the switch of the present invention.
  • the switch in this embodiment is basically the same as the switch in FIG. 9.
  • FIG. 7 and related text descriptions please refer to the following:
  • the switch includes: a first receiving module 201, a storage module 202, a processing module 203, a sending module 204, a second receiving module 205, a reprocessing module 206, a third receiving module 207, and a fourth receiving module 208.
  • switch in this embodiment may perform the steps in the method flow of FIG. 2 to FIG. 4.
  • the first receiving module 201 is configured to receive a packet, and the original content of the received packet is the original packet.
  • the third receiving module 207 is configured to receive a cache instruction sent by the controller, where the cache instruction requires the switch to store the original content of the message specified by the controller.
  • the original content of the message is the original message. That is, whether the switch caches the original message can be determined according to the controller's cache instruction.
  • the storage module 202 is configured to store the original message in the cache, and generate a cache identifier, where the cache identifier is used to identify the cache location of the original message.
  • the processing module 203 is configured to process the packet according to the flow table, and carry the cache identifier during the processing.
  • the fourth receiving module 208 is configured to receive the original packet carrying command sent by the controller, and carry the original packet command to instruct the switch to carry the original packet when sending the first packet message.
  • the first packet When the first packet is sent, whether the original packet is carried may be determined according to the original packet command sent by the controller. When the first message message is required to carry the original message, the entire message, a part of the original message, or the original message may be carried in the first message according to the actual processing, and sent to the control. Device.
  • the sending module 204 is configured to send a first packet message Packet_in to the controller when the packet fails to match the flow table, where the first message is used to report the information of the packet to the controller, and the controller is requested to determine the report.
  • the processing method of the text, the first message carries the cache identifier and all or part of the content of the message, the input port number, and the information obtained during the packet processing.
  • the sending module 204 is specifically configured to send the first packet message Packet_in to the controller, where the first packet message carries the cache identifier carried by the processing module 203 and is obtained by using the cache identifier. All of the original message, part of the original message, or the original message, the second message carries the cache identifier and the controller changes the message according to the original message, a part of the original message, or the original message.
  • the message processing instruction after the analysis processing.
  • the sending module 204 is further configured to send a first packet message Packet_in to the controller, where the Packet_id field of the first packet message stores a cache identifier. In this way, the functionality of the existing Packet_id can be extended.
  • the sending module 204 is further configured to send a first packet message Packet_in to the controller, where the Buffer_id field of the first packet message stores the cache identifier. In this way, the functionality of existing Buffer_id cells can be extended.
  • the second receiving module 205 is configured to receive a second packet message Packet_out sent by the controller, where the second packet message is used to send a packet processing instruction for processing the packet, and the second packet message carries the cache identifier.
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the second packet message carries the buffer identifier and the message processing instruction that the controller analyzes and processes the packet according to the original packet, a part of the original packet, or the original packet modification.
  • the reprocessing module 206 is configured to perform processing on the packet again from the specified flow table according to the message processing instruction.
  • the reprocessing module 206 includes a first obtaining unit 2061 and a first reprocessing unit 2062.
  • the first obtaining unit 2061 is configured to obtain the original message by using the cache identifier.
  • the first reprocessing unit 2062 is configured to reprocess the original message obtained by the first obtaining unit from the first level flow table according to the message processing instruction, where the specified flow table is the first stage of the pipeline.
  • the original packet is obtained by using the cache identifier, and the original packet is re-processed from the first-level flow table.
  • This mode is more suitable for the case where the original message needs to be reprocessed, or some switches do not support the insertion process of the intermediate flow table for the message.
  • the embodiment of the present invention stores the received original message in the cache, and generates a cache identifier; the cache identifier is carried in the process of processing the packet according to the flow table; the sent packet_in carries the cache identifier and all or part of the content of the packet, Entering the port number and the information obtained during the processing of the packet; the received Packet_out carries the cache identifier and the packet processing instruction; and the packet is processed again.
  • the switch stores the original packet received in the cache and generates the cache identifier.
  • the cache identifier is carried in both the sent and received messages. In this manner, the switch can obtain the original packet according to the cache identifier.
  • the original message which enables the switch to process the message better.
  • the controller sends the cache command to enable the switch to selectively buffer the original packet.
  • the controller sends the original packet command to transmit all or part of the original packet or the original packet.
  • the controller is provided so that the controller obtains the complete message information as much as possible, and makes a correct judgment on the processing of the message; the original message is obtained by the cache identifier, and can be processed again from the original message of the first-level flow table.
  • FIG. 13 is a schematic structural diagram of still another embodiment of a switch according to the present invention.
  • the switch in this embodiment is basically the same as the switch in FIG. 9.
  • FIG. 9 and related text descriptions The following content:
  • the switch includes: a first receiving module 301, a storage module 302, a processing module 303, a sending module 304, a second receiving module 305, a reprocessing module 306, a recording module 307, a fifth receiving module 308, and an operating module 309.
  • switch in this embodiment may perform the steps in the method flow of FIG. 5.
  • the first receiving module 301 is configured to receive a packet, and the original content of the received packet is the original packet.
  • the storage module 302 is configured to store the original message in the cache, and generate a cache identifier, where the cache identifier is used to identify the cache location of the original message.
  • the processing module 303 is configured to process the packet according to the flow table, and carry the cache identifier in the process.
  • the recording module 307 is configured to record the flow table identifier table_id of the current flow table in the process of processing the message according to a predetermined requirement in the process of processing the message.
  • the storage module 302 is further configured to store the flow table identifier table_id of the current flow table in the processing of the packet recorded by the recording module 307 in the cache in which the cache identifier is generated.
  • the flow table identifier table_id of the current flow table is recorded, and the flow table identifier table_id is stored in the cache that has generated the cache identifier, so that the flow table identifier table_id is obtained according to the cache identifier, so that When processing again, the current packet can be sent to the flow table identifier table of the current flow table.
  • the position in the pipeline indicated by id continues to be processed.
  • the sending module 304 is configured to send a first packet message Packet_in to the controller when the packet fails to match the flow table, where the first message is used to report the information of the packet to the controller, and the controller is requested to determine the report.
  • the processing method of the text, the first message carries the cache identifier and all or part of the content of the message, the input port number, and the information obtained during the packet processing.
  • the sending module 304 is specifically configured to send a first packet message Packet_in to the controller, where the Buffer_id field of the first packet message stores the cache identifier. In this way, the functionality of existing Buffer_id cells can be extended.
  • the sending module 304 is specifically configured to send a first packet message Packet_in to the controller, where the Packet_id field of the first packet message stores a cache identifier. In this way, the functionality of the existing Packet_id can be extended.
  • the fifth receiving module 308 is configured to receive an indication that the controller of the controller adds, deletes, or modifies the operation.
  • the operation module 309 is configured to perform an operation of adding, deleting, or modifying the flow entry according to the indication.
  • the second receiving module 305 is configured to receive a second packet message Packet_out sent by the controller, where the second packet message is used to send a packet processing instruction for processing the packet to the switch, where the second packet message carries the cache identifier and
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the reprocessing module 306 is configured to perform processing on the packet again from the specified flow table according to the message processing instruction.
  • the reprocessing module 306 includes a second obtaining unit 3063, a third obtaining unit 3064, and a second reprocessing unit 3065.
  • the second obtaining unit 3063 is configured to obtain, by using the cache identifier, a flow table identifier table_id of the current flow table in which the packet is processed.
  • the third obtaining unit 3064 is configured to obtain, from the cache, the current message obtained after the original message processing.
  • the second reprocessing unit 3065 is configured to send the current packet to the flow table identifier table of the current flow table according to the packet processing instruction.
  • the location in the pipeline indicated by the id continues to be processed, wherein the specified flow table is the flow table identified by the flow table identifier table_id.
  • the embodiment of the present invention stores the received original packet in the cache, and generates a cache identifier; carries the cache identifier in the process of processing the packet according to the flow table; the sent Packet_in carries the cache identifier and all or part of the content and input of the packet. The port number and the information obtained during the packet processing process; the received Packet_out carries the cache identifier and the packet processing instruction; the packet is processed again.
  • the switch stores the original packet received in the cache and generates the cache identifier.
  • the cache identifier is carried in both the sent and received messages. In this manner, the switch can obtain the original packet according to the cache identifier.
  • the original message which enables the switch to process the message better and more flexibly.
  • the flow table identifier table_id of the current flow table is recorded, and the flow table identifier table_id is stored in the cache in which the cache identifier is generated, and the packet can be exempted from being reprocessed from the first-level flow table, thereby saving time.
  • FIG. 14 is a schematic structural diagram of an embodiment of a controller according to the present invention.
  • the controller includes: a receiving module 401, a processing module 402, and a first sending module 403.
  • switch in this embodiment may perform the steps in the method flow of FIG. 6 to FIG. 8.
  • the receiving module 401 is configured to receive the first packet message Packet_in sent by the switch, where the first packet message is used to report the information of the packet to the controller, and the requesting controller determines the processing method of the packet, where the first packet message carries the buffer.
  • the original content of the packet is the original packet, and the cache identifier is used to identify the cache location of the original packet.
  • the original content of the packet and the information obtained during the processing of the packet are the original packet.
  • the first packet message Packet_in is a message that the switch reports the information of the packet to the controller, and the information may be the case that the packet is processed, the packet processing failure, or the current processing status, etc., in the flow table entry. In the scenario where the match fails, The switch can report the packet to the controller through the first packet message Packet_in, and request the controller to determine the processing method of the packet. Alternatively, the switch may report the message to the controller through the first packet message Packet_in in the case that the switch needs to send a message to the controller.
  • the first packet message carries a cache identifier, which helps the controller to carry the cache identifier when sending the second packet message to the switch.
  • the cache identifier is used to identify the cache location of the original message.
  • the first message also includes all or part of the content of the message, the input port number, and the information obtained during the message processing.
  • All or part of the content of the message may be the entire content of the original message, part of the content, the modified message, the modification record of the message, etc.; the input port number is used to identify the switch; the information obtained in the message processing may be It is used to provide additional information for controller reference, which is convenient for the controller to analyze and process the message.
  • the processing module 402 is configured to analyze and process the information of the message to generate a message processing instruction.
  • the first sending module 403 is configured to send a second packet message Packet_out to the switch, where the second packet message is used to send a packet processing instruction for processing the packet, and the second packet message carries the cache identifier and the packet.
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the second packet message Packet_out is used by the controller to send a packet processing instruction for processing the packet to the switch, and is a message corresponding to the first packet message Packet_in.
  • the packet processing instruction includes indication information of the specified flow table, and the specified flow is specified.
  • the table is the initial flow table in the pipeline used by the switch to reprocess the packet.
  • the specified flow table can be the first-level flow table.
  • the specified flow table may be a flow table whose matching fails; the message processing instruction is carried in the second message.
  • the first packet message Packet_in carries a cache identifier
  • the second packet message Packet_out is a message that responds to the first packet message Packet_in, and also carries the cache identifier, so that when the switch receives the second packet message Packet_out, the original packet needs to be original.
  • the original packet can be obtained through the cache identifier.
  • the controller receives the first packet message Packet_in sent by the switch, and the Packet_in carries all or part of the content of the cache identifier and the packet, the input port number, and the information obtained during the processing of the packet; Performing an analysis process, generating a message processing instruction, and sending a second message message Packet_out to the switch, where the second message message carries a cache identifier and a message processing instruction. Because the controller carries the cache identifier in the received and sent messages, the switch can obtain the original packet according to the cache identifier when the switch needs the original packet, so that the switch can process the report flexibly according to the instruction of the controller. Text.
  • FIG. 16 15 and FIG. 16, 15 and FIG. 16 are schematic structural diagrams of two other embodiments of the controller of the present invention.
  • the controller of the present embodiment is basically the same as the controller of FIG. 14, and the similarities are shown in FIG. 14 and related. Text description, the difference is as follows:
  • the controller includes a receiving module 501, a processing module 502, a first sending module 503, a second sending module 504, a third sending module 505, and a fourth sending module 506.
  • switch in this embodiment may perform the steps in the method flow of FIG. 7 and FIG. 8.
  • the second sending module 504 is configured to send a cache instruction to the switch, where the cache instruction instructs the switch to store the original content of the message specified by the controller.
  • the original content of the message is the original message. That is, whether the switch caches the original message can be determined according to the controller's cache instruction.
  • the fourth sending module 506 is configured to send the original message command to the switch, and carry the original message instruction to instruct the switch to carry the original message when sending the first message.
  • the controller Before receiving the first packet message, if the controller needs the original packet, the controller sends the original packet command to instruct the switch to carry the original packet when the first packet message is sent.
  • the receiving module 501 is configured to receive the first packet message Packet_in sent by the switch, where the first packet message is used to report the information of the packet to the controller, and the requesting controller determines the processing method of the packet, where the first packet message carries the buffer.
  • the original content of the packet is the original packet, and the cache identifier is used to identify the cache location of the original packet.
  • the original content of the packet and the information obtained during the processing of the packet are the original packet.
  • the information related to the packet refers to all of the original packet obtained by the cache identifier, a part of the original packet, or a variant of the original packet.
  • the processing module 502 is configured to analyze and process the information of the packet, and generate a message processing instruction.
  • the controller includes the fourth sending module 506, specifically, all of the original packet, a part of the original packet, or the original packet.
  • the deformation is analyzed and processed to generate a message processing instruction.
  • the third sending module 505 is configured to send, to the switch, an indication of an operation of adding, deleting, or modifying the flow entry.
  • the first sending module 503 is configured to send a second packet message Packet_out to the switch, where the second packet message is used to send a packet processing instruction for processing the packet, and the second packet message carries the cache identifier and the packet.
  • the message processing instruction includes the indication information of the specified flow table, and the specified flow table is the initial flow table in the pipeline used by the switch to reprocess the message.
  • the information related to the packet refers to all of the original packet obtained by the cache identifier, a part of the original packet, or a variant of the original packet.
  • the controller receives the first packet message Packet_in sent by the switch, and the Packet_in carries all or part of the content of the cache identifier and the packet, the input port number, and the information obtained during the processing of the packet; The information is analyzed and processed to generate a message processing instruction, and the second message message Packet_out is sent to the switch, and the second message carries the cache identifier and the message processing instruction. Because the controller carries the cache identifier in the received and sent messages, the switch can obtain the original packet according to the cache identifier when the switch needs the original packet, so that the switch can process the report flexibly according to the instruction of the controller. Text.
  • the controller sends the cache command to enable the switch to selectively buffer the original packet.
  • the controller sends the original packet command to transmit all or part of the original packet or the original packet. Give the controller so that the controller can get the most complete message information and make a correct judgment on the processing of the message.
  • FIG. 17 is a schematic diagram of a physical entity structure of an embodiment of a switch according to the present invention.
  • the switch includes a processor 11, a memory 12 coupled to the processor 11, a receiver 13, and a transmitter 14.
  • switch in this embodiment may perform the steps in the method flow of FIG. 1 to FIG. 5.
  • the receiver 13 receives the message, where the original content of the message is the original message
  • the memory 12 is configured to store the original message and identify its cache location by using a cache identifier; the memory 12 is further configured to store a flow table;
  • the processor 11 is configured to process the message according to a pipeline
  • the transmitter 14 is configured to send a first packet message Packet_in to the controller when the packet fails to match a flow table, where the first message is used to report the information of the packet to the controller. And requesting, by the controller, a method for processing the foregoing packet, where the first packet message carries all or part of the content of the cache identifier and the packet, an input port number, and information obtained during the processing of the packet. ;
  • the receiver 13 is configured to receive a second packet message Packet_out sent by the controller, where the second packet message is used to send a message processing instruction for processing the packet to the switch, where The second packet message carries the cache identifier and the packet processing instruction, where the packet processing instruction includes indication information of a specified flow table, where the specified flow table is used by the switch to reprocess the message. a starting flow table in the pipeline, and storing the message processing instructions in the memory 12;
  • the processor 11 is configured to retrieve the message processing instruction by the memory 12, and perform processing on the message again from the specified flow table according to the message processing instruction.
  • the switch stores the received original packet in the cache, and generates a cache identifier.
  • the packet carries the cache identifier in the process of processing the packet according to the flow table;
  • the sent Packet_in carries the cache identifier and information related to the packet;
  • the Packet_out carries the cache identifier and the packet processing instruction; the packet is processed again.
  • the switch stores the original packet received in the cache and generates the cache identifier.
  • the cache identifier is carried in both the sent and received messages. In this manner, the switch can obtain the original packet according to the cache identifier.
  • the original message which enables the switch to process the message better.
  • FIG. 18 is a schematic diagram showing the physical structure of an embodiment of a controller according to the present invention.
  • the controller includes a processor 21, a memory 22 coupled to the processor 21, a receiver 23, and a transmitter 24.
  • controller of the present embodiment may perform the steps in the method flow of FIG. 6 to FIG. 8.
  • the receiver 23 is configured to receive a first packet message Packet_in sent by the switch, and store the first packet message Packet_in in the memory 22.
  • the first packet message is used to report the report to the controller.
  • the requesting controller determines a processing method of the packet, where the first packet message carries a cache identifier and all or part of the content of the packet, an input port number, and the obtained in the packet processing process.
  • the original content of the packet is the original packet, and the cache identifier is used to identify the cache location of the original packet.
  • the processor 21 is configured to retrieve the information about the packet that is carried by the first packet message Packet_in, and analyze and process the information of the packet to generate a message processing instruction.
  • the transmitter 24 is configured to send a second packet message Packet_out to the switch, where the second packet message is used to send a message processing instruction for processing the packet to the switch, where the The second message carries the cache identifier and the packet processing instruction, where the packet processing instruction includes indication information of the specified flow table, where the specified flow table is used in the pipeline used by the switch to reprocess the packet. Start flow table.
  • the controller receives the first packet message Packet_in sent by the switch, and the Packet_in carries the cache identifier and the information related to the packet; analyzes and processes the information related to the packet, generates a packet processing instruction, and sends the packet processing instruction to the switch.
  • the second message message Packet_out the second message message carries a buffer identifier and a message processing instruction generated by the controller after analyzing and processing the information related to the message. Because the controller carries the cache identifier in the received and sent messages, the original packet can be obtained according to the cache identifier when the switch needs the original packet, so that the switch can process the packet better.
  • the disclosed system, apparatus, and method may be implemented in other manners.
  • the device implementations described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be another division manner for example, multiple units or components may be used. Combinations can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
  • 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, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the present embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • the technical solution of the present invention which is essential or contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the methods of the various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read only memory (ROM, Read-Only) Memory, random access memory (RAM), disk or optical disk, and other media that can store program code.

Landscapes

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

Abstract

本发明公开了一种报文的控制方法、交换机及控制器。该方法包括:交换机接收报文,按照流水线处理报文,原始报文存储在缓存中并以缓存标识来标识其缓存位置;当报文与一个流表匹配失败时,交换机向控制器发送第一报文消息Packet_in,并携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;交换机接收控制器发送的第二报文消息Packet_out,并携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息;交换机按照报文处理指令,从指定流表开始对报文进行再次处理。通过这种方式,能够使交换机根据控制器的指示灵活处理报文。

Description

报文的控制方法、交换机及控制器
【技术领域】
本发明涉及通讯技术领域,特别是涉及一种报文的控制方法、交换机及控制器。
【背景技术】
为解决网元的部署灵活性和可管理性,业界提出了软件定义网络(Software-Defined Network ,SDN)的概念。SDN将网元的控制逻辑和转发功能解耦,并集中部署控制逻辑,通过操作集中部署的控制面设备,可以简单实现对网络的控制和维护,提高网络的管理效率,并使转发面设备简单化和通用化。Openflow协议是SDN网络中一种典型的技术。
Openflow协议中的网元包括控制器(Controller)和转发器(Switch),其中Controller负责根据报文特征确定该业务流的转发动作,将对应的流规则和对应的动作下发给Switch;Switch获取并存储该流规则,对于后续符合该流规则的报文,执行对应的动作,实现报文的转发或处理。在流表表项匹配失败的场景下,Switch可以通过第一报文消息Packet_in消息上报给控制器;控制器将报文的处理动作通过第二报文消息Packet_out消息发送给Switch。目前Switch对Packet_out消息的处理有三种方式:第一,Swtich从第一级流表匹配Packet_out 消息携带的报文,报文进行流表的流水线处理;第二,Controller在Pakcet_out消息中携带引起Packet_in的流表位置,Switch根据流表位置的值,从指定的流表开始处理报文;第三,Packet_out消息携带报文处理的动作集,Switch根据动作集处理报文,不需要进行流水线的匹配。
但是,本申请的发明人在长期的研发过程中发现,上述三种方式交换机都是完全根据控制器的指示处理报文的,当数据报文被修改之后又发现需要提交给控制面进行处理以及之后由控制器发回交换机处理时,会出现因前期修改而造成的信息丢失问题。
【发明内容】
本发明主要解决的技术问题是提供一种报文的控制方法、交换机及控制器,能够使交换机根据控制器的指示灵活处理报文。
第一方面,本发明提供一种报文的控制方法,该方法包括:交换机接收报文,按照流水线处理所述报文,其中,所述报文的原始内容即为原始报文,所述原始报文存储在缓存中并以缓存标识来标识其缓存位置;当所述报文与一个流表匹配失败时,所述交换机向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带所述缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;所述交换机接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表;所述交换机按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
在第一方面的第一种可能的实现方式中,还包括:所述交换机将所述原始报文存储在缓存中,并产生缓存标识,所述缓存标识用于标识所述原始报文的缓存位置;所述交换机在按照流表处理所述报文的过程中携带所述缓存标识。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述交换机将所述报文存储在缓存中的步骤之前,包括:所述交换机接收所述控制器发送的缓存指令,所述缓存指令要求所述交换机存储所述控制器指定的所述报文的原始内容。
结合第一方面、第一方面的第一种至第二种中任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述交换机向控制器发送第一报文消息Packet_in的步骤之前,包括:所述交换机接收所述控制器发送的携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文;所述交换机将原始报文的全部、原始报文的一部分或原始报文的变形携带在所述第一报文消息中发送给所述控制器。
结合第一方面、第一方面的第一种至第三种中任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述交换机按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理的步骤,包括:所述交换机通过所述缓存标识获得所述原始报文;所述交换机按照所述报文处理指令,从第一级流表对所述获得的原始报文进行再次处理,其中,所述指定流表为流水线的第一级。
结合第一方面、第一方面的第一种至第三种中任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述交换机按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理的步骤,包括:所述交换机通过所述缓存标识获得所述原始报文在所述处理过程中的当前流表的流表标识table_id;所述交换机从缓存中获得所述原始报文处理之后得到的当前报文;所述交换机按照所述报文处理指令,将当前报文发送到所述当前流表的流表标识table id所指示的流水线中的位置继续进行处理,其中,所述指定流表为流表标识table_ id标识的流表。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,还包括:在处理所述报文的过程中,按照预定要求,所述交换机记录所述报文在所述处理过程中的当前流表的流表标识table_id;所述交换机将所述报文在所述处理过程中的当前流表的流表标识table_id存储在所述已产生缓存标识的缓存中。
结合第一方面、第一方面的第二种至第六种中任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述交换机接收所述控制器发送的第二报文消息Packet_out的步骤之前,还包括:所述交换机接收所述控制器的对所述流表项进行增加、删除或修改操作的指示,并根据所述指示对所述流表项进行增加、删除或修改的操作。
结合第一方面、第一方面的第二种至第七种中任一种可能的实现方式,在第一方面的第八种可能的实现方式中,所述交换机向控制器发送第一报文消息Packet_in的步骤,包括:所述交换机向控制器发送第一报文消息Packet_in,所述第一报文消息的Packet_id字段存储所述缓存标识。
结合第一方面、第一方面的第二种至第七种中任一种可能的实现方式,在第一方面的第九种可能的实现方式中,所述交换机向控制器发送第一报文消息Packet_in的步骤,包括:所述交换机向控制器发送第一报文消息Packet_in,所述第一报文消息的Buffer_id字段存储所述缓存标识。
第二方面,本发明提供一种报文的控制方法,该方法包括:控制器接收交换机发送的第一报文消息Packet_in,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;所述控制器对所述报文的信息进行分析处理,产生报文处理指令;所述控制器向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
在第二方面的第一种可能的实现方式中,所述控制器接收交换机发送的第一报文消息Packet_in的步骤之前,包括:所述控制器向所述交换机发送缓存指令,所述缓存指令指示所述交换机存储所述控制器指定的所述报文的原始内容。
在第二方面的第二种可能的实现方式中,所述控制器向所述交换机发送第二报文消息Packet_out的步骤之前,包括:所述控制器向所述交换机发送对所述流表项进行增加、删除或修改操作的指示。
在第二方面的第三种可能的实现方式中,所述控制器接收交换机发送的第一报文消息Packet_in的步骤之前,包括:所述控制器向所述交换机发送携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文。
第三方面,本发明提供一种交换机,所述交换机包括:第一接收模块、处理模块、发送模块、第二接收模块以及再处理模块;所述第一接收模块用于接收报文,其中,所述报文的原始内容即为原始报文,所述原始报文存储在缓存中并以缓存标识来标识其缓存位置;所述处理模块用于按照流水线处理所述报文;所述发送模块用于当所述报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;所述第二接收模块用于接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表;所述再处理模块用于按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
在第三方面的第一种可能的实现方式中,所述交换机还包括:存储模块;所述存储模块用于将所述原始报文存储在缓存中,并产生缓存标识,所述缓存标识用于标识所述原始报文的缓存位置;所述处理模块还用于在按照流表处理所述报文的过程中携带所述缓存标识。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述交换机还包括第三接收模块,所述第三接收模块用于接收所述控制器发送的缓存指令,所述缓存指令要求所述交换机存储所述控制器指定的所述报文的原始内容。
结合第三方面、第三方面的第一种至第二种中任一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述交换机还包括第四接收模块,所述第四接收模块用于接收所述控制器发送的携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文;所述发送模块还用于将原始报文的全部、原始报文的一部分或原始报文的变形携带在所述第一报文消息中发送给所述控制器。
结合第三方面、第三方面的第一种至第三种中任一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述再处理模块包括:第一获得单元和第一再处理单元;所述第一获得单元用于通过所述缓存标识获得所述原始报文;所述第一再处理单元用于按照所述报文处理指令,从第一级流表对所述第一获得单元获得的原始报文进行再次处理,其中,所述指定流表为流水线的第一级。
结合第三方面、第三方面的第一种至第三种中任一种可能的实现方式,在第三方面的第五种可能的实现方式中,所述再处理模块包括:第二获得单元、第三获得单元以及第二再处理单元;所述第二获得单元用于通过所述缓存标识获得所述原始报文在所述处理过程中的当前流表的流表标识table_id;所述第三获得单元用于从缓存中获得所述原始报文处理之后得到的当前报文;所述第二再处理单元用于按照所述报文处理指令,将所述当前报文发送到所述当前流表的流表标识table id所指示的流水线中的位置继续进行处理,其中,所述指定流表为流表标识table_ id标识的流表。
结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述交换机还包括记录模块,所述记录模块用于在处理所述报文的过程中,按照预定要求,记录所述报文在所述处理过程中的当前流表的流表标识table_id;所述存储模块还用于将所述报文在所述处理过程中的当前流表的流表标识table_id存储在所述已产生缓存标识的缓存中。
结合第三方面、第三方面的第一种至第六种中任一种可能的实现方式,在第三方面的第七种可能的实现方式中,所述交换机还包括第五接收模块和操作模块;所述第五接收模块用于接收所述控制器的对所述流表项进行增加、删除或修改操作的指示;所述操作模块用于根据所述指示对所述流表项进行增加、删除或修改的操作。
结合第三方面、第三方面的第一种至第七种中任一种可能的实现方式,在第三方面的第八种可能的实现方式中,所述发送模块具体用于向控制器发送第一报文消息Packet_in,所述第一报文消息的Packet_id字段存储所述缓存标识。
结合第三方面、第三方面的第一种至第八种中任一种可能的实现方式,在第三方面的第九种可能的实现方式中,所述发送模块具体用于向控制器发送第一报文消息Packet_in,所述第一报文消息的Buffer_id字段存储所述缓存标识。
第四方面,本发明提供一种控制器,所述控制器包括:接收模块、处理模块、第一发送模块;所述接收模块用于接收交换机发送的第一报文消息Packet_in,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;所述处理模块用于对所述报文的信息进行分析处理,产生报文处理指令;所述第一发送模块用于向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
在第四方面的第一种可能的实现方式中,所述控制器还包括第二发送模块,所述第二发送模块用于向所述交换机发送缓存指令,所述缓存指令指示所述交换机存储所述控制器指定的所述报文的原始内容。
在第四方面的第二种可能的实现方式中,所述控制器还包括第三发送模块,所述第三发送模块用于向所述交换机发送对所述流表项进行增加、删除或修改操作的指示。
在第四方面的第三种可能的实现方式中,所述控制器还包括第四发送模块,所述第四发送模块用于向所述交换机发送携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文。
第五方面,本发明提供一种交换机,所述交换机包括:处理器、与所述处理器耦合的存储器、接收器、发送器;所述接收器用于接收报文,其中,所述报文的原始内容即为原始报文;所述存储器用于存储所述原始报文,并以缓存标识来标识其缓存位置;所述存储器还用于存储流表;所述处理器用于按照流水线处理所述报文;所述发送器用于当所述报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带所述缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;所述接收器用于接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表,并将所述报文处理指令存储在所述存储器中;所述处理器用于调取所述存储器获得所述报文处理指令,按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
第六方面,本发明提供一种控制器,所述控制器包括:处理器、与所述处理器耦合的存储器、接收器以及发送器;所述接收器用于接收交换机发送的第一报文消息Packet_in,并将所述第一报文消息Packet_in存储在所述存储器中,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;所述处理器用于调取所述存储器获得所述第一报文消息Packet_in携带的所述报文的信息,对所述报文的信息进行分析处理,产生报文处理指令;所述发送器用于向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
本发明实施例中,将原始报文存储在缓存中并以缓存标识来标识其缓存位置;当报文与一个流表匹配失败时,交换机向控制器发送的第一报文消息携带缓存标识,交换机接收的第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息;交换机按照报文处理指令,从指定流表开始对报文进行再次处理,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。
【附图说明】
图1是本发明报文的控制方法一实施方式的流程图;
图2是本发明报文的控制方法另一实施方式的流程图;
图3是本发明报文的控制方法又一实施方式的流程图;
图4是本发明报文的控制方法又一实施方式的流程图;
图5是本发明报文的控制方法又一实施方式的流程图;
图6是本发明报文的控制方法又一实施方式的流程图;
图7是本发明报文的控制方法又一实施方式的流程图;
图8是本发明报文的控制方法又一实施方式的流程图;
图9是本发明交换机一实施方式的结构示意图;
图10是本发明交换机另一实施方式的结构示意图;
图11是本发明交换机又一实施方式的结构示意图;
图12是本发明交换机又一实施方式的结构示意图;
图13是本发明交换机又一实施方式的结构示意图;
图14是本发明控制器一实施方式的结构示意图;
图15是本发明控制器另一实施方式的结构示意图;
图16是本发明控制器又一实施方式的结构示意图;
图17是本发明交换机一实施方式的物理实体结构示意图;
图18是本发明控制器一实施方式的物理实体结构示意图。
【具体实施方式】
下面结合附图和实施方式对本发明进行详细说明。
参阅图1,图1是本发明报文的控制方法一实施方式的流程图,本实施方式是交换机端的方法流程图,包括:
步骤S101:交换机接收报文,按照流水线处理报文,其中,报文的原始内容即为原始报文,原始报文存储在缓存中并以缓存标识来标识其缓存位置。
交换机(英文:Switch)是一种用于电信号转发的网络设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机接收报文后,按照流水线处理报文。其中,报文的原始内容即为原始报文。
原始报文是没有经过该交换机处理的,该原始报文包含所有最原始、最全面的信息;经过交换机处理过的报文被交换机更改部分信息,没有原始报文所含有的信息全面。原始报文存储在缓存中,缓存标识用于标识原始报文的缓存位置,在需要原始报文的时候,可以通过缓存标识从缓存获得原始报文。
流水线由流表组成,流表由很多流表项组成,每一个流表项就是一个转发规则,进入交换机的报文通过查询流表来获得转发的目的端口。流表项由头域(英文:Header Fields)、计数器(英文:Counters)和操作(英文:Actions)组成;其中头域是流表项的标识;计数器用来计数流表项的统计数据;操作标明了与该流表项匹配的报文应该执行的操作,包括处理类型及相关的参数,所述处理类型如转发、丢弃、修改、封装解封装等。头域也称作匹配域,用于对交换机接收到的报文的报头内容进行匹配,具体是指将报文头域以及接收端口号等信息与指定的值进行匹配,报文头域比如IP五元组(IP报文的源IP地址、目的IP地址、协议类型、源端口号、目的端口号)、以太网帧头中的各种头域(源MAC地址、目的MAC地址等)等,这里的匹配可以是精确匹配也可以是掩码匹配。
交换机按照流水线处理报文,例如:从第一个流表开始匹配,如果匹配到表项,则执行表项中的指令,然后跳转到下一个流表继续匹配操作。如果报文在流表中没有匹配表项,报文则会被丢弃或者转发到控制器进行处理。如果匹配的表项中的指令不再跳转下一个流表,则匹配结束,并执行匹配对应的操作(Actions),如将报文转发到指定输出端口、丢包、修改数据包头、转发到群组表等。
步骤S102:当报文与一个流表匹配失败时,交换机向控制器发送第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对上述报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。
第一报文消息Packet_in是指交换机向控制器上报报文的信息的消息,该信息可以是报文处理通过的情况、报文处理失败的情况、或当前处理现状等等,在流表表项匹配失败的场景下,交换机可以通过第一报文消息Packet_in上报给控制器,请求控制器确定对上述报文的处理方法。或者在交换机需要向控制器发送消息的情况下,交换机也可以通过第一报文消息Packet_in上报给控制器。
第一报文消息携带缓存标识,有助于控制器向交换机发送第二报文消息时可以携带该缓存标识。
第一报文消息还包括报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。报文的全部或部分内容可以是原始报文的全部内容、部分内容、修改过的报文、报文的修改记录等;输入端口号用来标识交换机;在报文处理中所获得的信息可以用来提供另外的供控制器参考的信息,便于控制器分析处理报文。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Packet_id字段存储缓存标识。通过这种方式,能够扩展现有的Packet_id的功能。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Buffer_id字段存储缓存标识。通过这种方式,能够扩展现有的Buffer_id信元的功能。
步骤S103:交换机接收控制器发送的第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
第二报文消息Packet_out是用于控制器向交换机发送对报文进行处理的报文处理指令,是响应第一报文消息Packet_in的消息,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表,例如,当需要报文重新开始处理时,指定流表可以是第一级流表,当需要报文从匹配失败的流表开始处理时,指定流表可以是匹配失败的流表;该报文处理指令携带在第二报文消息中。第一报文消息Packet_in携带有缓存标识,第二报文消息Packet_out是响应第一报文消息Packet_in的消息,也携带该缓存标识,以便于当交换机收到第二报文消息Packet_out后,需要原始报文时,可以通过该缓存标识获取到原始报文。
步骤S104:交换机按照报文处理指令,从指定流表开始对报文进行再次处理。
当交换机接收到第二报文消息Packet_out,即可按照第二报文消息Packet_out中携带的报文处理指令,从指定流表开始对报文进行再次处理,再次处理可以是对原始报文进行重新处理,也可以是对当前报文从匹配失败的流表开始,继续进行处理。
本发明实施方式交换机接收报文,按照流水线处理报文,原始报文存储在缓存中并以缓存标识来标识其缓存位置;当报文与一个流表匹配失败时,交换机向控制器发送第一报文消息Packet_in,并携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;交换机接收控制器发送的第二报文消息Packet_out,并携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息;交换机按照报文处理指令,从指定流表开始对报文进行再次处理,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。
参阅图2至图4,图2至图4是本发明报文的控制方法另三种实施方式的流程图。本三种实施方式是交换机端的方法流程图,本三种实施方式和图1的实施方式基本相同,相同之处请参见图1和相关的文字说明,不同之处具体内容如下:
步骤S201:交换机接收报文,该接收的报文的原始内容即为原始报文。
步骤S202:交换机接收控制器发送的缓存指令,缓存指令要求交换机存储控制器指定的报文的原始内容。
所述报文的原始内容即原始报文。即交换机是否缓存原始报文可以根据控制器的缓存指令来决定。
需要说明的是,步骤S201和步骤S202没有明显的先后顺序,步骤S202只要在步骤S203之前执行即可。
步骤S203:交换机将原始报文存储在缓存中,并产生缓存标识,缓存标识用于标识原始报文的缓存位置。
步骤S204:交换机按照流表处理报文,并在处理过程中携带缓存标识。
步骤S205:交换机接收控制器发送的携带原始报文指令,携带原始报文指令指示交换机在发送第一报文消息时携带原始报文。
交换机发送第一报文消息的时候,是否携带原始报文可以根据控制器发送的携带原始报文指令决定。指示要求第一报文消息携带原始报文的时候,交换机可以根据实际处理情况将原始报文的全部、原始报文的一部分或原始报文的变形携带在第一报文消息中,以发送给控制器。
需要指出的是,步骤S205只需要在步骤S206之前执行即可,和前面的步骤没有明显的先后顺序。
步骤S206:当报文与一个流表匹配失败时,交换机向控制器发送第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对上述报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息。
当执行步骤S205时,步骤S206具体是:交换机向控制器发送第一报文消息Packet_in,第一报文消息携带缓存标识和通过缓存标识获得的原始报文的全部、原始报文的一部分或原始报文的变形,还携带输入端口号以及在所述报文处理过程中所获得的信息。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Buffer_id字段存储缓存标识。通过这种方式,能够扩展现有的Buffer_id信元的功能。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Packet_id字段存储缓存标识。通过这种方式,能够扩展现有的Packet_id的功能。
步骤S207:交换机接收控制器发送的第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
步骤S208:交换机按照报文处理指令,从指定流表开始对报文进行再次处理。
步骤S208可以通过下面的方式执行,具体可以是:
步骤S208a:交换机通过缓存标识获得原始报文。
步骤S208b:交换机按照报文处理指令,从第一级流表对获得的原始报文进行再次处理,其中,指定流表为流水线的第一级。
这种方式即交换机通过缓存标识获得原始报文,对原始报文重新从第一级流表开始处理。该方式比较适合需要重新处理原始报文的情况、或者某些交换机也不支持对报文进行中间流表的插入处理的情况。
本发明实施方式交换机将接收的原始报文存储在缓存中,并产生缓存标识;在按照流表处理报文的过程中携带缓存标识;发送的Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;接收的Packet_out携带缓存标识和报文处理指令;对报文进行再次处理。由于交换机将接收的原始报文存储在缓存中,并产生缓存标识,在发送和接收的消息中均携带该缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够更好的处理报文。另外,通过控制器发送缓存指令,可以使交换机选择性地缓存原始报文;通过控制器发送携带原始报文指令,可以将原始报文的全部、原始报文的一部分或原始报文的变形发送给控制器,以便于控制器获得尽量完整的报文信息,对报文的处理作出正确的判断;通过缓存标识获得原始报文,可以从第一级流表原始报文进行再次处理。
参阅图5,图5是本发明报文的控制方法又一实施方式的流程图,本实施方式是交换机端的方法流程图,本实施方式和图1的实施方式基本相同,相同之处请参见图1和相应的文字说明,不同之处具体内容如下:
步骤S301:交换机接收报文,接收的报文的原始内容即为原始报文。
步骤S302:交换机将原始报文存储在缓存中,并产生缓存标识,缓存标识用于标识原始报文的缓存位置。
步骤S303:交换机按照流表处理报文,并在处理过程中携带缓存标识。
步骤S304:在处理报文的过程中,按照预定要求,交换机记录报文在处理过程中的当前流表的流表标识table_id。
步骤S305:交换机将报文在处理过程中的当前流表的流表标识table_id存储在已产生缓存标识的缓存中。
交换机在处理报文的过程中,记录当前流表的流表标识table_id,并将该流表标识table_id存储在已产生缓存标识的缓存中,以便于根据缓存标识获得流表标识table_id,从而在后面的再处理时,可以将当前报文发送到当前流表的流表标识table id所指示的流水线中的位置继续进行处理。
步骤S306:当报文与一个流表匹配失败时,交换机向控制器发送第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对上述报文的处理方法,第一报文消息携带缓存标识和和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Buffer_id字段存储缓存标识。通过这种方式,能够扩展现有的Buffer_id信元的功能。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Packet_id字段存储缓存标识。通过这种方式,能够扩展现有的Packet_id的功能。
步骤S307:交换机接收控制器的对流表项进行增加、删除或修改操作的指示,并根据指示对流表项进行进行增加、删除或修改的操作。
步骤S308:交换机接收控制器发送的第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
步骤S309:交换机通过缓存标识获得原始报文在处理过程中的当前流表的流表标识table_id。
步骤S310:交换机从缓存中获得原始报文处理之后得到的当前报文。
步骤S311:交换机按照报文处理指令,将当前报文发送到当前流表的流表标识table id所指示的流水线中的位置继续进行处理,其中,指定流表为流表标识table_ id标识的流表。
交换机通过缓存标识获得原始报文在处理过程中的当前流表的流表标识table_id,从缓存中获得原始报文处理之后得到的当前报文,然后将当前报文发送到当前流表的流表标识table id所指示的流水线中的位置继续进行处理,通过这种方式,可以免除报文从第一级流表重新处理,节约了时间;这种方式适合某些交换机支持对报文进行中间流表的插入处理的情况。
本发明实施方式交换机将接收的原始报文存储在缓存中,并产生缓存标识;在按照流表处理报文的过程中携带缓存标识;发送的Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;接收的Packet_out携带缓存标识和报文处理指令;对报文进行再次处理。由于交换机将接收的原始报文存储在缓存中,并产生缓存标识,在发送和接收的消息中均携带该缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够更好且灵活的处理报文。另外,记录当前流表的流表标识table_id,并将该流表标识table_id存储在已产生缓存标识的缓存中,可以免除报文从第一级流表重新处理,节约时间。
需要说明的是,在实际应用中,可以根据具体情况,对上述实施方式中的步骤进行增减或组合,在此不再进行赘叙。
参阅图6,图6是本发明报文的控制方法又一实施方式的流程图,本实施方式是控制器端的方法流程,包括:
步骤S401:控制器接收交换机发送的第一报文消息Packet_in,,第一报文消息用于向控制器报告报文的信息,请求控制器确定对报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息,报文的原始内容即为原始报文,缓存标识用于标识原始报文的缓存位置。
控制器(英文:Controller)用于对网络进行集中控制,实现控制层的功能;控制器通过OpenFlow协议标准接口对交换机中的流表进行控制,从而实现对整个网络进行集中控制,例如:发现网络状态和事件(拓扑结构,设备,流量),控制交换机通信,共享存储、线程、测试等资源。
第一报文消息Packet_in是指交换机向控制器上报报文的信息的消息,该信息可以是报文处理通过的情况、报文处理失败的情况、或当前处理现状等等,在流表表项匹配失败的场景下,交换机可以通过第一报文消息Packet_in上报给控制器,请求控制器确定对上述报文的处理方法。或者在交换机需要向控制器发送消息的情况下,交换机也可以通过第一报文消息Packet_in上报给控制器。
第一报文消息携带缓存标识,有助于控制器向交换机发送第二报文消息时可以携带该缓存标识。缓存标识用于标识原始报文的缓存位置。
第一报文消息还包括报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。报文的全部或部分内容可以是原始报文的全部内容、部分内容、修改过的报文、报文的修改记录等;输入端口号用来标识交换机;在报文处理中所获得的信息可以用来提供另外的供控制器参考的信息,便于控制器分析处理报文。
步骤S402:控制器对报文的信息进行分析处理,产生报文处理指令。
报文处理指令是控制器对报文的信息进行分析处理后,产生的对该报文如何处理的指示,即报文处理指令。
步骤S403:控制器向交换机发送第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
第二报文消息Packet_out是用于控制器向交换机发送对报文进行处理的报文处理指令,是响应第一报文消息Packet_in的消息,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表,例如,当需要报文重新开始处理时,指定流表可以是第一级流表,当需要报文从匹配失败的流表开始处理时,指定流表可以是匹配失败的流表;该报文处理指令携带在第二报文消息中。第一报文消息Packet_in携带有缓存标识,第二报文消息Packet_out是响应第一报文消息Packet_in的消息,也携带该缓存标识,以便于当交换机收到第二报文消息Packet_out后,需要原始报文时,可以通过该缓存标识获取到原始报文。
本发明实施方式控制器接收交换机发送的第一报文消息Packet_in,Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;对报文的信息进行分析处理,产生报文处理指令,向交换机发送第二报文消息Packet_out,第二报文消息携带缓存标识和报文处理指令。由于控制器在接受和发送的消息中均携带缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。
参阅图7和图8,图7和图8是本发明报文的控制方法两个实施方式的流程图,本实施方式是控制器端的方法流程,本实施方式和图6的实施方式基本相同,相同之处请参见图6和相关的文字说明,不同之处具体内容如下:
步骤S501:控制器向交换机发送缓存指令,缓存指令指示交换机存储控制器指定的报文的原始内容。
所述报文的原始内容即原始报文。即交换机是否缓存原始报文可以根据控制器的缓存指令来决定。
步骤S502:控制器向交换机发送携带原始报文指令,携带原始报文指令指示交换机在发送第一报文消息时携带原始报文。
控制器接收第一报文消息的之前,如果控制器需要原始报文,则控制器发送的携带原始报文指令,指示交换机发送第一报文消息时携带原始报文。
步骤S503:控制器接收交换机发送的第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息,报文的原始内容即为原始报文,缓存标识用于标识原始报文的缓存位置。
当步骤S502执行时,步骤S503具体为:控制器接收交换机发送的第一报文消息Packet_in,第一报文消息携带缓存标识和通过缓存标识获得的原始报文的全部、原始报文的一部分或原始报文的变形,缓存标识用于标识原始报文的缓存位置。
步骤S504:控制器对报文的信息进行分析处理,产生报文处理指令。
当步骤S502执行时,步骤S504具体为:控制器对原始报文的全部、原始报文的一部分或原始报文的变形进行分析处理,产生报文处理指令。
步骤S505:控制器向交换机发送对流表项进行增加、删除或修改的操作的指示。
步骤S506:控制器向交换机发送第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
当步骤S502执行时,步骤S506具体为:控制器向交换机发送第二报文消息Packet_out,第二报文消息携带缓存标识和控制器对原始报文的全部、原始报文的一部分或原始报文的变形进行分析处理后产生的报文处理指令。
本发明实施方式控制器接收交换机发送的第一报文消息Packet_in,Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;对报文的信息进行分析处理,产生报文处理指令,向交换机发送第二报文消息Packet_out,第二报文消息携带缓存标识和报文处理指令。由于控制器在接受和发送的消息中均携带缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。另外,通过控制器发送缓存指令,可以使交换机选择性地缓存原始报文;通过控制器发送携带原始报文指令,可以将原始报文的全部、原始报文的一部分或原始报文的变形发送给控制器,以便于控制器获得尽量完整的报文信息,对报文的处理作出正确的判断。
参阅图9,图9是本发明交换机一实施方式的结构示意图,该交换机包括:第一接收模块101、处理模块102、发送模块103、第二接收模块104以及再处理模块105。
需要说明的是,本实施方式的交换机可以执行图1至图5方法流程中的步骤。
第一接收模块101用于接收报文,其中,报文的原始内容即为原始报文,原始报文存储在缓存中并以缓存标识来标识其缓存位置。
原始报文是没有经过该交换机处理的,该原始报文包含所有最原始、最全面的信息;经过交换机处理过的报文被交换机更改部分信息,没有原始报文所含有的信息全面。原始报文存储在缓存中,缓存标识用于标识原始报文的缓存位置,在需要原始报文的时候,可以通过缓存标识从缓存获得原始报文。
处理模块102用于按照流水线处理报文。
流水线由流表组成,流表由很多流表项组成,每一个流表项就是一个转发规则,进入交换机的报文通过查询流表来获得转发的目的端口。流表项由头域(英文:Header Fields)、计数器(英文:Counters)和操作(英文:Actions)组成;其中头域是流表项的标识;计数器用来计数流表项的统计数据;操作标明了与该流表项匹配的报文应该执行的操作。头域也称作匹配域,用于对交换机接收到的报文的报头内容进行匹配,具体是指将报文头域以及接收端口号等信息与指定的值进行匹配。
按照流表处理报文,例如:从第一个流表开始匹配,如果匹配到表项,则执行表项中的指令,然后跳转到下一个流表继续匹配操作。如果报文在流表中没有匹配表项,报文则会被丢弃或者转发到控制器进行处理。如果匹配的表项中的指令不再跳转下一个流表,则匹配结束,并执行匹配对应的操作(Actions),如将报文转发到指定输出端口、丢包、修改数据包头、转发到群组表等。
发送模块104用于当报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对上述报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。
第一报文消息Packet_in是指交换机向控制器上报报文的信息的消息,该信息可以是报文处理通过的情况、报文处理失败的情况、或当前处理现状等等,在流表表项匹配失败的场景下,可以通过第一报文消息Packet_in上报给控制器,请求控制器确定对上述报文的处理方法。或者在交换机需要向控制器发送消息的情况下,交换机也可以通过第一报文消息Packet_in上报给控制器。
第一报文消息携带缓存标识,有助于控制器向交换机发送第二报文消息时可以携带该缓存标识。
第一报文消息还包括报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。报文的全部或部分内容可以是原始报文的全部内容、部分内容、修改过的报文、报文的修改记录等;输入端口号用来标识交换机;在报文处理中所获得的信息可以用来提供另外的供控制器参考的信息,便于控制器分析处理报文。
其中,交换机向控制器发送第一报文消息Packet_in,第一报文消息的Packet_id字段存储缓存标识。通过这种方式,能够扩展现有的Packet_id的功能。
其中,向控制器发送第一报文消息Packet_in,第一报文消息的Buffer_id字段存储缓存标识。通过这种方式,能够扩展现有的Buffer_id信元的功能。
第二接收模块104用于接收控制器发送的第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
第二报文消息Packet_out是用于控制器向交换机发送对报文进行处理的报文处理指令,是响应第一报文消息Packet_in的消息,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表,例如,当需要报文重新开始处理时,指定流表可以是第一级流表,当需要报文从匹配失败的流表开始处理时,指定流表可以是匹配失败的流表;该报文处理指令携带在第二报文消息中。第一报文消息Packet_in携带有缓存标识,第二报文消息Packet_out是响应第一报文消息Packet_in的消息,也携带该缓存标识,以便于当交换机收到第二报文消息Packet_out后,需要原始报文时,可以通过该缓存标识获取到原始报文。
再处理模块105用于按照报文处理指令,从指定流表开始对报文进行再次处理。
当接收到第二报文消息Packet_out,即可按照第二报文消息Packet_out中携带的报文处理指令,从指定流表开始对报文进行再次处理,再次处理可以是对原始报文进行重新处理,也可以是对当前报文从匹配失败的流表开始,继续进行处理。
本发明实施方式交换机接收报文,按照流水线处理报文,原始报文存储在缓存中并以缓存标识来标识其缓存位置;当报文与一个流表匹配失败时,交换机向控制器发送第一报文消息Packet_in,并携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;交换机接收控制器发送的第二报文消息Packet_out,并携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息;交换机按照报文处理指令,从指定流表开始对报文进行再次处理,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。
参阅图10至图12,图10至图12是本发明交换机另两个实施方式的结构示意图,本实施方式的交换机和图9的交换机基本相同,相同之处请参见图7和相关的文字说明,不同之处请具体参见如下内容:
该交换机包括:第一接收模块201、存储模块202、处理模块203、发送模块204、第二接收模块205、再处理模块206、第三接收模块207、第四接收模块208。
需要说明的是,本实施方式的交换机可以执行图2至图4方法流程中的步骤。
第一接收模块201用于接收报文,接收的报文的原始内容即为原始报文。
第三接收模块207用于接收控制器发送的缓存指令,缓存指令要求交换机存储控制器指定的报文的原始内容。
报文的原始内容即原始报文。即交换机是否缓存原始报文可以根据控制器的缓存指令来决定。
存储模块202用于将原始报文存储在缓存中,并产生缓存标识,缓存标识用于标识原始报文的缓存位置。
处理模块203用于按照流表处理报文,并在处理过程中携带缓存标识。
第四接收模块208用于接收控制器发送的携带原始报文指令,携带原始报文指令指示交换机在发送第一报文消息时携带原始报文。
发送第一报文消息的时候,是否携带原始报文可以根据控制器发送的携带原始报文指令决定。指示要求第一报文消息携带原始报文的时候,可以根据实际处理情况将原始报文的全部、原始报文的一部分或原始报文的变形携带在第一报文消息中,以发送给控制器。
发送模块204用于当报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对上述报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。
当交换机包括第四接收模块208时,发送模块204具体用于向控制器发送第一报文消息Packet_in,第一报文消息携带处理模块203在处理过程中携带的缓存标识和通过缓存标识获得的原始报文的全部、原始报文的一部分或原始报文的变形,第二报文消息携带缓存标识和控制器根据原始报文的全部、原始报文的一部分或原始报文的变形对报文进行分析处理后的报文处理指令。
其中,发送模块204还具体用于向控制器发送第一报文消息Packet_in,第一报文消息的Packet_id字段存储缓存标识。通过这种方式,能够扩展现有的Packet_id的功能。
其中,发送模块204还具体用于向控制器发送第一报文消息Packet_in,第一报文消息的Buffer_id字段存储缓存标识。通过这种方式,能够扩展现有的Buffer_id信元的功能。
第二接收模块205用于接收控制器发送的第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
此时,第二报文消息携带缓存标识和控制器根据原始报文的全部、原始报文的一部分或原始报文的变形对报文进行分析处理后的报文处理指令。
再处理模块206用于按照报文处理指令,从指定流表开始对报文进行再次处理。
其中,再处理模块206包括:第一获得单元2061和第一再处理单元2062。
第一获得单元2061用于通过缓存标识获得原始报文。
第一再处理单元2062用于按照报文处理指令,从第一级流表对第一获得单元获得的原始报文进行再次处理,其中,指定流表为流水线的第一级。
这种方式即通过缓存标识获得原始报文,对原始报文重新从第一级流表开始处理。该方式比较适合需要重新处理原始报文的情况、或者某些交换机也不支持对报文进行中间流表的插入处理的情况。
本发明实施方式将接收的原始报文存储在缓存中,并产生缓存标识;在按照流表处理报文的过程中携带缓存标识;发送的Packet_in携带缓存标识和和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;接收的Packet_out携带缓存标识和报文处理指令;对报文进行再次处理。由于交换机将接收的原始报文存储在缓存中,并产生缓存标识,在发送和接收的消息中均携带该缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够更好的处理报文。另外,通过控制器发送缓存指令,可以使交换机选择性地缓存原始报文;通过控制器发送携带原始报文指令,可以将原始报文的全部、原始报文的一部分或原始报文的变形发送给控制器,以便于控制器获得尽量完整的报文信息,对报文的处理作出正确的判断;通过缓存标识获得原始报文,可以从第一级流表原始报文进行再次处理。
参阅图13,图13是本发明交换机又一实施方式的结构示意图,本实施方式的交换机和图9的交换机基本相同,相同之处请参见图9和相关的文字说明,不同之处具体请参见如下内容:
该交换机包括:第一接收模块301、存储模块302、处理模块303、发送模块304、第二接收模块305、再处理模块306、记录模块307、第五接收模块308、操作模块309。
需要说明的是,本实施方式的交换机可以执行图5方法流程中的步骤。
第一接收模块301用于接收报文,接收的报文的原始内容即为原始报文。
存储模块302用于将原始报文存储在缓存中,并产生缓存标识,缓存标识用于标识原始报文的缓存位置。
处理模块303用于按照流表处理报文,并在处理过程中携带存缓存标识。
记录模块307用于在处理报文的过程中,按照预定要求,记录报文在处理过程中的当前流表的流表标识table_id。
存储模块302还用于将记录模块307记录的报文在处理过程中的当前流表的流表标识table_id存储在已产生缓存标识的缓存中。
在处理报文的过程中,记录当前流表的流表标识table_id,并将该流表标识table_id存储在已产生缓存标识的缓存中,以便于根据缓存标识获得流表标识table_id,从而在后面的再处理时,可以将当前报文发送到当前流表的流表标识table id所指示的流水线中的位置继续进行处理。
发送模块304用于当报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对上述报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。
其中,发送模块304具体用于向控制器发送第一报文消息Packet_in,第一报文消息的Buffer_id字段存储缓存标识。通过这种方式,能够扩展现有的Buffer_id信元的功能。
其中,发送模块304具体用于向控制器发送第一报文消息Packet_in,第一报文消息的Packet_id字段存储缓存标识。通过这种方式,能够扩展现有的Packet_id的功能。
第五接收模块308用于接收控制器的对流表项进行增加、删除或修改操作的指示。
操作模块309用于根据指示对流表项进行进行增加、删除或修改的操作。
第二接收模块305用于接收控制器发送的第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
再处理模块306用于按照报文处理指令,从指定流表开始对报文进行再次处理。
再处理模块306包括:第二获得单元3063、第三获得单元3064和第二再处理单元3065。
第二获得单元3063用于通过缓存标识获得报文在处理过程中的当前流表的流表标识table_id。
第三获得单元3064用于从缓存中获得原始报文处理之后得到的当前报文。
第二再处理单元3065用于按照报文处理指令,将当前报文发送到当前流表的流表标识table id所指示的流水线中的位置继续进行处理,其中,指定流表为流表标识table_ id标识的流表。
通过缓存标识获得原始报文在处理过程中的当前流表的流表标识table_id,从缓存中获得原始报文处理之后得到的当前报文,然后将当前报文发送到当前流表的流表标识table id所指示的流水线中的位置继续进行处理,通过这种方式,可以免除报文从第一级流表重新处理,节约了时间;这种方式适合某些交换机支持对报文进行中间流表的插入处理的情况。
本发明实施方式将接收的原始报文存储在缓存中,并产生缓存标识;在按照流表处理报文的过程中携带缓存标识;发送的Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;接收的Packet_out携带缓存标识和报文处理指令;对报文进行再次处理。由于交换机将接收的原始报文存储在缓存中,并产生缓存标识,在发送和接收的消息中均携带该缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够更好且灵活的处理报文。另外,记录当前流表的流表标识table_id,并将该流表标识table_id存储在已产生缓存标识的缓存中,可以免除报文从第一级流表重新处理,节约时间。
需要说明的是,在实际应用中,可以根据具体情况,对上述实施方式中的交换机进行模块或单元的增减或组合,在此不再进行赘叙。
参阅图14,图14是本发明控制器一实施方式的结构示意图,该控制器包括:接收模块401、处理模块402、第一发送模块403。
需要说明的是,本实施方式的交换机可以执行图6至图8方法流程中的步骤。
接收模块401用于接收交换机发送的第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息,报文的原始内容即为原始报文,缓存标识用于标识原始报文的缓存位置。
第一报文消息Packet_in是指交换机向控制器上报报文的信息的消息,该信息可以是报文处理通过的情况、报文处理失败的情况、或当前处理现状等等,在流表表项匹配失败的场景下, 交换机可以通过第一报文消息Packet_in上报给控制器,请求控制器确定对上述报文的处理方法。或者在交换机需要向控制器发送消息的情况下,交换机也可以通过第一报文消息Packet_in上报给控制器。
第一报文消息携带缓存标识,有助于控制器向交换机发送第二报文消息时可以携带该缓存标识。缓存标识用于标识原始报文的缓存位置。
第一报文消息还包括报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息。报文的全部或部分内容可以是原始报文的全部内容、部分内容、修改过的报文、报文的修改记录等;输入端口号用来标识交换机;在报文处理中所获得的信息可以用来提供另外的供控制器参考的信息,便于控制器分析处理报文。
处理模块402用于对报文的信息进行分析处理,产生报文处理指令。
第一发送模块403用于向交换机发送第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
第二报文消息Packet_out是用于控制器向交换机发送对报文进行处理的报文处理指令,是响应第一报文消息Packet_in的消息,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表,例如,当需要报文重新开始处理时,指定流表可以是第一级流表,当需要报文从匹配失败的流表开始处理时,指定流表可以是匹配失败的流表;该报文处理指令携带在第二报文消息中。第一报文消息Packet_in携带有缓存标识,第二报文消息Packet_out是响应第一报文消息Packet_in的消息,也携带该缓存标识,以便于当交换机收到第二报文消息Packet_out后,需要原始报文时,可以通过该缓存标识获取到原始报文。
本发明实施方式控制器接收交换机发送的第一报文消息Packet_in,Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息;对报文的信息进行分析处理,产生报文处理指令,向交换机发送第二报文消息Packet_out,第二报文消息携带缓存标识和报文处理指令。由于控制器在接受和发送的消息中均携带缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。
参阅图15和图16,15和图16是本发明控制器另两个实施方式的结构示意图,本实施方式的控制器和图14的控制器基本相同,相同之处请参见图14和相关的文字说明,不同之处具体请参见如下内容:
该控制器包括:接收模块501、处理模块502、第一发送模块503、第二发送模块504、第三发送模块505、第四发送模块506。
需要说明的是,本实施方式的交换机可以执行图7和图8方法流程中的步骤。
第二发送模块504用于向交换机发送缓存指令,缓存指令指示交换机存储控制器指定的报文的原始内容。
报文的原始内容即原始报文。即交换机是否缓存原始报文可以根据控制器的缓存指令来决定。
第四发送模块506用于向交换机发送携带原始报文指令,携带原始报文指令指示交换机在发送第一报文消息时携带原始报文。
控制器接收第一报文消息的之前,如果控制器需要原始报文,则发送的携带原始报文指令,指示交换机发送第一报文消息时携带原始报文。
接收模块501用于接收交换机发送的第一报文消息Packet_in,第一报文消息用于向控制器报告报文的信息,请求控制器确定对报文的处理方法,第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在报文处理过程中所获得的信息,报文的原始内容即为原始报文,缓存标识用于标识原始报文的缓存位置。
当控制器包括第四发送模块506时,与报文相关的信息是指通过缓存标识获得的原始报文的全部、原始报文的一部分或原始报文的变形。
处理模块502用于对报文的信息进行分析处理,产生报文处理指令,当控制器包括第四发送模块506时,具体是对原始报文的全部、原始报文的一部分或原始报文的变形进行分析处理,产生报文处理指令。
第三发送模块505用于向交换机发送对流表项进行增加、删除或修改的操作的指示。
第一发送模块503用于向交换机发送第二报文消息Packet_out,第二报文消息用于向交换机下发对报文进行处理的报文处理指令,第二报文消息携带缓存标识和报文处理指令,报文处理指令包含指定流表的指示信息,指定流表为交换机重新处理报文所使用的流水线中的起始流表。
当控制器包括第四发送模块506时,与报文相关的信息是指通过缓存标识获得的原始报文的全部、原始报文的一部分或原始报文的变形。
本发明实施方式控制器接收交换机发送的第一报文消息Packet_in,Packet_in携带缓存标识和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;对报文的信息进行分析处理,产生报文处理指令,向交换机发送第二报文消息Packet_out,第二报文消息携带缓存标识和报文处理指令。由于控制器在接受和发送的消息中均携带缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够根据控制器的指示灵活处理报文。另外,通过控制器发送缓存指令,可以使交换机选择性地缓存原始报文;通过控制器发送携带原始报文指令,可以将原始报文的全部、原始报文的一部分或原始报文的变形发送给控制器,以便于控制器获得尽量完整的报文信息,对报文的处理作出正确的判断。
参阅图17,图17是本发明交换机一实施方式的物理实体结构示意图,该交换机包括:处理器11、与所述处理器11耦合的存储器12、接收器13、发送器14。
需要说明的是,本实施方式的交换机可以执行图1至图5方法流程中的步骤。
所述接收器13接收报文,其中,所述报文的原始内容即为原始报文;
所述存储器12用于存储所述原始报文,并以缓存标识来标识其缓存位置;所述存储器12还用于存储流表;
所述处理器11用于按照流水线处理所述报文;
所述发送器14用于当所述报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带所述缓存标识和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;
所述接收器13用于接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和所述报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表,并将所述报文处理指令存储在所述存储器12中;
所述处理器11用于调取所述存储器12获得所述报文处理指令,按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
本发明实施方式交换机将接收的原始报文存储在缓存中,并产生缓存标识;在按照流表处理报文的过程中携带缓存标识;发送的Packet_in携带缓存标识和与报文相关的信息;接收的Packet_out携带缓存标识和报文处理指令;对报文进行再次处理。由于交换机将接收的原始报文存储在缓存中,并产生缓存标识,在发送和接收的消息中均携带该缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够更好的处理报文。
参阅图18,图18是本发明控制器一实施方式的物理实体结构示意图,该控制器包括:处理器21、与所述处理器21耦合的存储器22、接收器23以及发送器24。
需要说明的是,本实施方式的控制器可以执行图6至图8方法流程中的步骤。
所述接收器23用于接收交换机发送的第一报文消息Packet_in,并将所述第一报文消息Packet_in存储在所述存储器22中,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;
所述处理器21用于调取所述存储器22获得所述第一报文消息Packet_in携带的所述报文的信息,对所述报文的信息进行分析处理,产生报文处理指令;
所述发送器24用于向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
本发明实施方式控制器接收交换机发送的第一报文消息Packet_in,Packet_in携带缓存标识和与报文相关的信息;对与报文相关的信息进行分析处理,产生报文处理指令,向交换机发送第二报文消息Packet_out,第二报文消息携带缓存标识和控制器对与报文相关的信息进行分析处理后产生的报文处理指令。由于控制器在接受和发送的消息中均携带缓存标识,通过这种方式,可以在交换机需要原始报文的时候根据该缓存标识获取原始报文,从而使得交换机能够更好的处理报文。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (30)

  1. 一种报文的控制方法,其特征在于,包括:
    交换机接收报文,按照流水线处理所述报文,其中,所述报文的原始内容即为原始报文,所述原始报文存储在缓存中并以缓存标识来标识其缓存位置;
    当所述报文与一个流表匹配失败时,所述交换机向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带所述缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;
    所述交换机接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表;
    所述交换机按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
  2. 根据权利要求1所述的方法,其特征在于,还包括:
    所述交换机将所述原始报文存储在缓存中,并产生缓存标识,所述缓存标识用于标识所述原始报文的缓存位置;
    所述交换机在按照流表处理所述报文的过程中携带所述缓存标识。
  3. 根据权利要求2所述的方法,其特征在于,所述交换机将所述报文存储在缓存中的步骤之前,包括:
    所述交换机接收所述控制器发送的缓存指令,所述缓存指令要求所述交换机存储所述控制器指定的所述报文的原始内容。
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述交换机向控制器发送第一报文消息Packet_in的步骤之前,包括:
    所述交换机接收所述控制器发送的携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文;所述交换机将原始报文的全部、原始报文的一部分或原始报文的变形携带在所述第一报文消息中发送给所述控制器。
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述交换机按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理的步骤,包括:
    所述交换机通过所述缓存标识获得所述原始报文;
    所述交换机按照所述报文处理指令,从第一级流表对所述获得的原始报文进行再次处理,其中,所述指定流表为流水线的第一级。
  6. 根据权利要求1-4任一项所述的方法,其特征在于,所述交换机按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理的步骤,包括:
    所述交换机通过所述缓存标识获得所述原始报文在所述处理过程中的当前流表的流表标识table_id;
    所述交换机从缓存中获得所述原始报文处理之后得到的当前报文;
    所述交换机按照所述报文处理指令,将当前报文发送到所述当前流表的流表标识table id所指示的流水线中的位置继续进行处理,其中,所述指定流表为流表标识table_ id标识的流表。
  7. 根据权利要求6所述的方法,其特征在于,还包括:
    在处理所述报文的过程中,按照预定要求,所述交换机记录所述报文在所述处理过程中的当前流表的流表标识table_id;
    所述交换机将所述报文在所述处理过程中的当前流表的流表标识table_id存储在所述已产生缓存标识的缓存中。
  8. 根据权利要求1-7任一项所述的方法,其特征在于,所述交换机接收所述控制器发送的第二报文消息Packet_out的步骤之前,还包括:
    所述交换机接收所述控制器的对所述流表项进行增加、删除或修改操作的指示,并根据所述指示对所述流表项进行增加、删除或修改的操作。
  9. 根据权利要求1-8任一项所述的方法,其特征在于,所述交换机向控制器发送第一报文消息Packet_in的步骤,包括:
    所述交换机向控制器发送第一报文消息Packet_in,所述第一报文消息的Packet_id字段存储所述缓存标识。
  10. 根据权利要求1-8任一项所述的方法,其特征在于,所述交换机向控制器发送第一报文消息Packet_in的步骤,包括:
    所述交换机向控制器发送第一报文消息Packet_in,所述第一报文消息的Buffer_id字段存储所述缓存标识。
  11. 一种报文的控制方法,其特征在于,包括:
    控制器接收交换机发送的第一报文消息Packet_in,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;
    所述控制器对所述报文的信息进行分析处理,产生报文处理指令;
    所述控制器向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
  12. 根据权利要求11所述的方法,其特征在于,所述控制器接收交换机发送的第一报文消息Packet_in的步骤之前,包括:
    所述控制器向所述交换机发送缓存指令,所述缓存指令指示所述交换机存储所述控制器指定的所述报文的原始内容。
  13. 根据权利要求11所述的方法,其特征在于,所述控制器向所述交换机发送第二报文消息Packet_out的步骤之前,包括:
    所述控制器向所述交换机发送对所述流表项进行增加、删除或修改操作的指示。
  14. 根据权利要求11所述的方法,其特征在于,所述控制器接收交换机发送的第一报文消息Packet_in的步骤之前,包括:
    所述控制器向所述交换机发送携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文。
  15. 一种交换机,其特征在于,所述交换机包括:第一接收模块、处理模块、发送模块、第二接收模块以及再处理模块;
    所述第一接收模块用于接收报文,其中,所述报文的原始内容即为原始报文,所述原始报文存储在缓存中并以缓存标识来标识其缓存位置;
    所述处理模块用于按照流水线处理所述报文;
    所述发送模块用于当所述报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;
    所述第二接收模块用于接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表;
    所述再处理模块用于按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
  16. 根据权利要求15所述的交换机,其特征在于,所述交换机还包括:存储模块;
    所述存储模块用于将所述原始报文存储在缓存中,并产生缓存标识,所述缓存标识用于标识所述原始报文的缓存位置;
    所述处理模块还用于在按照流表处理所述报文的过程中携带所述缓存标识。
  17. 根据权利要求16所述的交换机,其特征在于,所述交换机还包括第三接收模块,所述第三接收模块用于接收所述控制器发送的缓存指令,所述缓存指令要求所述交换机存储所述控制器指定的所述报文的原始内容。
  18. 根据权利要求15至17任一项所述的交换机,其特征在于,所述交换机还包括第四接收模块,所述第四接收模块用于接收所述控制器发送的携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文;
    所述发送模块还用于将原始报文的全部、原始报文的一部分或原始报文的变形携带在所述第一报文消息中发送给所述控制器。
  19. 根据权利要求15-18任一项所述的交换机,所述再处理模块包括:第一获得单元和第一再处理单元;
    所述第一获得单元用于通过所述缓存标识获得所述原始报文;
    所述第一再处理单元用于按照所述报文处理指令,从第一级流表对所述第一获得单元获得的原始报文进行再次处理,其中,所述指定流表为流水线的第一级。
  20. 根据权利要求15-18任一项所述的交换机,其特征在于,所述再处理模块包括:第二获得单元、第三获得单元以及第二再处理单元;
    所述第二获得单元用于通过所述缓存标识获得所述原始报文在所述处理过程中的当前流表的流表标识table_id;
    所述第三获得单元用于从缓存中获得所述原始报文处理之后得到的当前报文;
    所述第二再处理单元用于按照所述报文处理指令,将所述当前报文发送到所述当前流表的流表标识table id所指示的流水线中的位置继续进行处理,其中,所述指定流表为流表标识table_ id标识的流表。
  21. 根据权利要求20所述的交换机,其特征在于,所述交换机还包括记录模块,所述记录模块用于在处理所述报文的过程中,按照预定要求,记录所述报文在所述处理过程中的当前流表的流表标识table_id;
    所述存储模块还用于将所述报文在所述处理过程中的当前流表的流表标识table_id存储在所述已产生缓存标识的缓存中。
  22. 根据权利要求15-21任一项所述的交换机,其特征在于,所述交换机还包括第五接收模块和操作模块;
    所述第五接收模块用于接收所述控制器的对所述流表项进行增加、删除或修改操作的指示;
    所述操作模块用于根据所述指示对所述流表项进行增加、删除或修改的操作。
  23. 根据权利要求15-22任一项所述的交换机,其特征在于,所述发送模块具体用于向控制器发送第一报文消息Packet_in,所述第一报文消息的Packet_id字段存储所述缓存标识。
  24. 根据权利要求15-22任一项所述的交换机,其特征在于,所述发送模块具体用于向控制器发送第一报文消息Packet_in,所述第一报文消息的Buffer_id字段存储所述缓存标识。
  25. 一种控制器,其特征在于,所述控制器包括:接收模块、处理模块、第一发送模块;
    所述接收模块用于接收交换机发送的第一报文消息Packet_in,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;
    所述处理模块用于对所述报文的信息进行分析处理,产生报文处理指令;
    所述第一发送模块用于向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
  26. 根据权利要求25所述的控制器,其特征在于,所述控制器还包括第二发送模块,所述第二发送模块用于向所述交换机发送缓存指令,所述缓存指令指示所述交换机存储所述控制器指定的所述报文的原始内容。
  27. 根据权利要求25所述的控制器,其特征在于,所述控制器还包括第三发送模块,所述第三发送模块用于向所述交换机发送对所述流表项进行增加、删除或修改操作的指示。
  28. 根据权利要求25所述的控制器,其特征在于,所述控制器还包括第四发送模块,所述第四发送模块用于向所述交换机发送携带原始报文指令,所述携带原始报文指令指示所述交换机在发送第一报文消息时携带所述原始报文。
  29. 一种交换机,其特种在于,所述交换机包括:处理器、与所述处理器耦合的存储器、接收器、发送器;
    所述接收器用于接收报文,其中,所述报文的原始内容即为原始报文;
    所述存储器用于存储所述原始报文,并以缓存标识来标识其缓存位置;所述存储器还用于存储流表;
    所述处理器用于按照流水线处理所述报文;
    所述发送器用于当所述报文与一个流表匹配失败时,向控制器发送第一报文消息Packet_in,所述第一报文消息用于向控制器报告所述报文的信息,请求控制器确定对上述报文的处理方法,所述第一报文消息携带所述缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息;
    所述接收器用于接收所述控制器发送的第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表,并将所述报文处理指令存储在所述存储器中;
    所述处理器用于调取所述存储器获得所述报文处理指令,按照所述报文处理指令,从所述指定流表开始对所述报文进行再次处理。
  30. 一种控制器,其特征在于,所述控制器包括:处理器、与所述处理器耦合的存储器、接收器以及发送器;
    所述接收器用于接收交换机发送的第一报文消息Packet_in,并将所述第一报文消息Packet_in存储在所述存储器中,所述第一报文消息用于向控制器报告报文的信息,请求控制器确定对所述报文的处理方法,所述第一报文消息携带缓存标识和所述报文的全部或部分内容、输入端口号以及在所述报文处理过程中所获得的信息,所述报文的原始内容即为原始报文,所述缓存标识用于标识所述原始报文的缓存位置;
    所述处理器用于调取所述存储器获得所述第一报文消息Packet_in携带的所述报文的信息,对所述报文的信息进行分析处理,产生报文处理指令;
    所述发送器用于向所述交换机发送第二报文消息Packet_out,所述第二报文消息用于向所述交换机下发对所述报文进行处理的报文处理指令,所述第二报文消息携带所述缓存标识和报文处理指令,所述报文处理指令包含指定流表的指示信息,所述指定流表为所述交换机重新处理所述报文所使用的流水线中的起始流表。
PCT/CN2014/084084 2014-08-11 2014-08-11 报文的控制方法、交换机及控制器 WO2016023148A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP14899770.3A EP3166275A4 (en) 2014-08-11 2014-08-11 Packet control method, switch and controller
CN201480009721.7A CN105684382A (zh) 2014-08-11 2014-08-11 报文的控制方法、交换机及控制器
PCT/CN2014/084084 WO2016023148A1 (zh) 2014-08-11 2014-08-11 报文的控制方法、交换机及控制器
US15/421,667 US10305783B2 (en) 2014-08-11 2017-02-01 Packet control method, switch, and controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/084084 WO2016023148A1 (zh) 2014-08-11 2014-08-11 报文的控制方法、交换机及控制器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/421,667 Continuation US10305783B2 (en) 2014-08-11 2017-02-01 Packet control method, switch, and controller

Publications (1)

Publication Number Publication Date
WO2016023148A1 true WO2016023148A1 (zh) 2016-02-18

Family

ID=55303755

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/084084 WO2016023148A1 (zh) 2014-08-11 2014-08-11 报文的控制方法、交换机及控制器

Country Status (4)

Country Link
US (1) US10305783B2 (zh)
EP (1) EP3166275A4 (zh)
CN (1) CN105684382A (zh)
WO (1) WO2016023148A1 (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
CN105391567B (zh) * 2014-09-05 2019-05-24 华为技术有限公司 流量管理实现方法、装置和网络设备
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US11223520B1 (en) 2017-01-31 2022-01-11 Intel Corporation Remote control plane directing data plane configurator
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10623308B2 (en) * 2017-02-17 2020-04-14 Dell Products L.P. Flow routing system
US10757028B1 (en) 2017-04-23 2020-08-25 Barefoot Networks, Inc. Configurable forwarding element deparser
US10511523B1 (en) * 2017-05-15 2019-12-17 Barefoot Networks, Inc. Network forwarding element with data plane packet snapshotting capabilities
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US10826840B1 (en) 2017-07-23 2020-11-03 Barefoot Networks, Inc. Multiple copies of stateful tables
US10536379B2 (en) * 2017-09-28 2020-01-14 Argela Yazilim Ve Bilisim Teknolojileri San Ve Tic. A.S. System and method for control traffic reduction between SDN controller and switch
US10771387B1 (en) 2017-09-28 2020-09-08 Barefoot Networks, Inc. Multiple packet data container types for a processing pipeline
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US10608844B2 (en) 2017-10-02 2020-03-31 Vmware, Inc. Graph based routing through multiple public clouds
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11121985B2 (en) 2019-08-27 2021-09-14 Vmware, Inc. Defining different public cloud virtual networks for different entities based on different sets of measurements
US11611507B2 (en) 2019-10-28 2023-03-21 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11438789B2 (en) 2020-01-24 2022-09-06 Vmware, Inc. Computing and using different path quality metrics for different service classes
US11477127B2 (en) 2020-07-02 2022-10-18 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11363124B2 (en) 2020-07-30 2022-06-14 Vmware, Inc. Zero copy socket splicing
US11575591B2 (en) * 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11601356B2 (en) 2020-12-29 2023-03-07 Vmware, Inc. Emulating packet flows to assess network links for SD-WAN
US11792127B2 (en) 2021-01-18 2023-10-17 Vmware, Inc. Network-aware load balancing
US11463560B2 (en) 2021-01-20 2022-10-04 Jump Algorithms, Llc Network interface architecture having a directly modifiable pre-stage packet transmission buffer
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11637768B2 (en) 2021-05-03 2023-04-25 Vmware, Inc. On demand routing mesh for routing packets through SD-WAN edge forwarding nodes in an SD-WAN
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11924106B2 (en) * 2021-08-24 2024-03-05 Hewlett Packard Enterprise Development Lp Method and system for granular dynamic quota-based congestion management
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
CN115086450B (zh) * 2022-06-01 2023-11-17 珠海高凌信息科技股份有限公司 一种可编程数据平面装置、流表更新方法及交换机
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612562A (zh) * 2003-10-28 2005-05-04 武汉烽火网络有限责任公司 用策略流实现不同因特网协议数据包转发的方法和设备
WO2014057375A2 (en) * 2012-10-08 2014-04-17 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
CN103763367A (zh) * 2014-01-17 2014-04-30 浪潮(北京)电子信息产业有限公司 一种云计算数据中心分布式虚拟网络设计方法及系统
CN103761060A (zh) * 2014-01-27 2014-04-30 华为技术有限公司 一种数据处理方法及服务器

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110070555A1 (en) * 2009-09-21 2011-03-24 Garrison Dental Solutions Matrix band for dental applications
KR101422381B1 (ko) * 2010-04-19 2014-07-22 닛본 덴끼 가부시끼가이샤 스위치 및 플로우 테이블 제어 방법
US8619546B2 (en) * 2010-08-17 2013-12-31 Alcatel Lucent Method and apparatus for coping with link failures in central control plane architectures
US8804747B2 (en) * 2010-09-23 2014-08-12 Cisco Technology, Inc. Network interface controller for virtual and distributed services
US9001827B2 (en) * 2010-12-17 2015-04-07 Big Switch Networks, Inc. Methods for configuring network switches
JP5884822B2 (ja) * 2011-02-17 2016-03-15 日本電気株式会社 フロー通信システム
EP2693708B1 (en) * 2011-03-29 2019-09-04 Nec Corporation Network system and method for acquiring vlan tag information
BR112014007795A2 (pt) * 2011-10-05 2017-04-18 Nec Corp sistema de redução de carga e sistema de redução de carga
US8711860B2 (en) * 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
US8521905B2 (en) * 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US9332479B2 (en) * 2012-01-04 2016-05-03 Ofinno Technologies, Llc Network site for wireless communications
US8705536B2 (en) * 2012-03-05 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating forwarding elements including shadow tables and related forwarding elements
EP2835941A4 (en) * 2012-04-03 2015-12-09 Nec Corp NETWORK SYSTEM, CONTROLLER, AND PACKET AUTHENTICATION METHOD
CN103220225B (zh) * 2012-05-21 2015-07-08 华为技术有限公司 报文处理方法及设备、系统
CN103067199B (zh) * 2012-12-19 2015-11-25 华为技术有限公司 深度报文检测结果扩散方法及装置
CN104782087B (zh) * 2013-07-19 2018-03-13 华为技术有限公司 交换设备、控制器、交换设备配置、报文处理方法及系统
KR20150053620A (ko) * 2013-11-08 2015-05-18 한국전자통신연구원 패킷 전송 장치 및 방법
CN104702502B (zh) * 2013-12-09 2019-11-26 中兴通讯股份有限公司 网络路径计算方法及装置
US10193771B2 (en) * 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9996467B2 (en) * 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US9569368B2 (en) * 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
WO2015109486A1 (zh) * 2014-01-23 2015-07-30 华为技术有限公司 报文的隧道处理方法、交换设备及控制设备
US9237129B2 (en) * 2014-05-13 2016-01-12 Dell Software Inc. Method to enable deep packet inspection (DPI) in openflow-based software defined network (SDN)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612562A (zh) * 2003-10-28 2005-05-04 武汉烽火网络有限责任公司 用策略流实现不同因特网协议数据包转发的方法和设备
WO2014057375A2 (en) * 2012-10-08 2014-04-17 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
CN103763367A (zh) * 2014-01-17 2014-04-30 浪潮(北京)电子信息产业有限公司 一种云计算数据中心分布式虚拟网络设计方法及系统
CN103761060A (zh) * 2014-01-27 2014-04-30 华为技术有限公司 一种数据处理方法及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3166275A4 *

Also Published As

Publication number Publication date
CN105684382A (zh) 2016-06-15
US10305783B2 (en) 2019-05-28
US20170142000A1 (en) 2017-05-18
EP3166275A4 (en) 2017-07-19
EP3166275A1 (en) 2017-05-10

Similar Documents

Publication Publication Date Title
WO2016023148A1 (zh) 报文的控制方法、交换机及控制器
WO2014186986A1 (zh) 流转发方法、设备及系统
WO2015194890A1 (en) Method and apparatus for establishing user plane bearer
WO2015078008A1 (zh) 一种链路发现的方法、系统及设备
WO2016017995A1 (en) System and method of controlling data transmission of external apparatus connected to gateway
WO2010021493A2 (en) Method and apparatus for transmitting broadcast data, and method and apparatus for receiving broadcast data
WO2016032021A1 (ko) 음성 명령 인식을 위한 장치 및 방법
WO2015137604A1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
WO2017222344A1 (en) Data transmission supporting method and apparatus
WO2015032188A1 (zh) 小区的切换方法、终端和网络设备
WO2013178003A1 (zh) 服务节点切换方法及系统
WO2015133865A1 (en) Method and system for establishing a service session between seeker device and advertiser device
WO2016036048A1 (en) Method and device for data encrypting
WO2018076873A1 (zh) 数据分享方法、装置、介质、电子设备及系统
WO2018076871A1 (zh) 联系人信息的同步方法、装置、介质、电子设备及系统
WO2017219636A1 (zh) 数据交互方法、云端服务器以及智能终端
WO2014171727A1 (en) Apparatus and method for generating key hierarchy in wireless network
WO2015016655A1 (en) Method and apparatus for establishing communication between terminals
WO2017080409A1 (zh) 一种数字媒体内容播放转移的方法以及相关设备
WO2015106461A1 (zh) 地址获取方法及网络虚拟化边缘设备
WO2015093790A1 (en) Method and apparatus for controlling virtual switching
WO2015103748A1 (zh) 认证关联方法及系统
WO2017049432A1 (zh) 一种数据传输方法及装置
WO2013141517A1 (ko) 제어 장치 및 그의 동작 방법, 서버 및 그의 동작 방법
WO2017206882A1 (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: 14899770

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2014899770

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014899770

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE