WO2021174986A1 - 一种数据流处理的方法及装置 - Google Patents
一种数据流处理的方法及装置 Download PDFInfo
- Publication number
- WO2021174986A1 WO2021174986A1 PCT/CN2020/141750 CN2020141750W WO2021174986A1 WO 2021174986 A1 WO2021174986 A1 WO 2021174986A1 CN 2020141750 W CN2020141750 W CN 2020141750W WO 2021174986 A1 WO2021174986 A1 WO 2021174986A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data flow
- resource module
- uplink data
- message
- identifier
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Definitions
- IP Internet Protocol
- Service Function SF
- NAT Network Address Translation
- Firewall Firewall
- SFF service function forwarder
- the resource module of SF can be expanded and contracted with service changes, the resource module of SF corresponding to uplink transmission and downlink transmission may change.
- the resource module of SF due to the change of SF resource module during uplink and downlink transmission, It cannot effectively guarantee that the uplink and downlink messages of the same data stream are sent to the same resource module of the SF for processing, resulting in a high communication transmission failure rate.
- the present application provides a data stream processing method and device to improve the success rate of communication transmission.
- an embodiment of the present application provides a data stream processing method, including:
- the resource module identifier used to transmit the uplink data flow message is recorded in the uplink data flow message, so that during the downlink data flow transmission process, from the message Obtain the identifier, determine the resource module used for uplink data stream transmission according to the identifier, and continue to use the resource module for downlink data stream packet transmission, so that the same module is used to process the upstream and downstream data streams, which effectively improves The success rate of communication transmission.
- the destination address for processing the uplink data flow packet is determined according to the received uplink data flow packet; the resource module corresponding to the destination address is determined to be used for processing the The resource module of the uplink data flow message and the identifier of the resource module used for processing the uplink data flow message.
- the modified uplink data flow message carries the corresponding relationship between the identifier of the resource module and the SF.
- the corresponding relationship between the unique identifier of the resource module used to transmit the uplink data flow message and the SF used to transmit the uplink data flow message is determined, and The corresponding relationship is added to the uplink data flow message, so that in the process of downlink data flow message transmission, the resource module for uplink data flow transmission can be determined according to the corresponding relationship, and the transmission is performed according to the resource module Downlink data stream messages effectively improve the success rate of communication transmission.
- the corresponding relationship is added to the SRH of the uplink data flow packet.
- the corresponding relationship is added to the segment routing identifier (segment routing identifier, SID) in the segment list in the SRH; or the corresponding relationship is added to the option of the SRH.
- the selected type length value type length value, TLV
- a forwarding entry is searched according to the destination address, and the forwarding entry includes the resource module corresponding to the destination address and the identifier of the resource module corresponding to the destination address; from the forwarding table
- the resource module used to process the uplink data flow message and the identifier of the resource module used to process the uplink data flow message are acquired in the item.
- the method further includes: receiving a protocol message, the protocol message carrying the destination address and the resource module corresponding to the destination address; and generating the protocol message according to the protocol message Forwarding entries.
- the protocol message also carries part or all of the following: service SID type; resource quantity ResourceWeight; SRv6 service function Service Function.
- the correspondence between the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow passes during the transmission of the uplink data flow packet is learned.
- the nodes in the service chain After the nodes in the service chain complete their own corresponding upstream data stream processing, they can acquire the corresponding relationship through learning, and encapsulate the corresponding relationship into the downstream data stream packet, so that the downstream data During the transmission of the flow message, the nodes in the service chain obtain the resource module for processing the uplink data flow message according to the corresponding relationship in the downlink data flow message, and perform processing according to the resource module.
- the processing of downstream data stream messages effectively improves the success rate of communication transmission.
- the identifier of the resource module is a unique identifier of the resource module in the whole world, and the global is used to indicate all service functions SF in the data stream processing process; and/or the resource module
- the identifier of is the unique identifier of the resource module in the SF.
- the method further includes: receiving a downlink data flow message, wherein the downlink data flow message carries an identifier of a resource module used to process the uplink data flow message, and the downlink data
- the destination address of the flow message is the source address of the upstream data flow message, and the source address of the downstream data flow message is the destination address of the upstream data flow message;
- the identifier of the resource module of the flow message determines the resource module used to process the downlink data flow message, the resource module used to process the downlink data flow message, and the resource module used to process the uplink data flow message same.
- the destination address for processing the downlink data flow message is determined; according to the destination address and used to process the uplink data flow message
- the identifier of the resource module of determines the resource module used to process the downlink data stream packet.
- the correspondence between the identifier of the resource module used to process the uplink data flow message and the service function SF is added to the segment routing header SRH of the downlink data flow message.
- an embodiment of the present application also provides a data stream processing method, including:
- Receive a downlink data flow message where the downlink data message carries an identifier of a resource module used to process the uplink data flow message corresponding to the downlink data flow message;
- the identifier of the resource module of the message determines the resource module used for processing the downlink data flow message, and the resource module used for processing the downlink data flow message is the same as the resource module used for processing the uplink data flow message.
- the identification of the resource module is carried in the downlink data flow message, so that when the downlink data flow message is transmitted, the identification of the resource module can be used to determine the resource module for processing the downlink data flow message. Resource module to improve the success rate of communication transmission.
- an uplink data flow message is received, and the uplink data flow message carries the identifier of the resource module used to process the uplink data flow message and the service through which the uplink data flow message passes.
- the uplink data flow message carries the identifier of the resource module used to process the uplink data flow message and the service through which the uplink data flow message passes.
- the learning record is generated, the learning record contains the identifier of the resource module used to process the upstream data flow message and the upstream data flow message Correspondence of SF.
- the learning record corresponding to the downlink data flow message is determined; The corresponding relationship between the identifier of the resource module used for processing the uplink data flow packet and the SF through which the uplink data flow packet passes, included in the record, is added to the downlink data flow packet.
- the corresponding relationship between the identifier of the resource module used to process the uplink data flow message and the SF through which the uplink data flow passes is added to the segment route of the downlink data flow message The header SRH.
- the corresponding relationship between the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow passes is added to the segment in the segment list in the SRH Routing identifier SID; or adding the corresponding relationship between the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow passes, to the optional type length value TLV field in the SRH.
- the resource module corresponding to the SF is determined according to the destination address; according to the correspondence between the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow passes , Determining a resource module used for processing the downlink data flow packet from the resource module corresponding to the SF.
- the method further includes: after determining that the resource module corresponding to the identifier of the resource module for processing the uplink data flow packet is faulty, reselecting one of the remaining resource modules corresponding to the SF The resource module is used to process the downlink data stream message.
- the identifier of the resource module used to process the uplink data flow packet is a globally unique identifier of the resource module used to process the uplink data flow packet. It is used to indicate all service functions SF in the data stream processing process; and/or the identifier of the resource module is the unique identifier of the resource module used to process the uplink data stream packet in the SF.
- the embodiments of the present application provide a data stream processing device, which can be used to perform the operations in the first aspect and any possible implementation manners of the first aspect.
- the device may include a module unit for performing each operation in the foregoing first aspect or any possible implementation of the first aspect; and/or, the device may be used to perform the foregoing second aspect and any of the second aspects.
- the apparatus may include a module unit for performing the above-mentioned second aspect or each operation in any possible implementation manner of the second aspect.
- an embodiment of the present application provides a data stream processing device.
- the device includes a processor, a transceiver, and optionally a memory.
- the processor, the transceiver and the memory communicate with each other through internal connection paths.
- the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory.
- the foregoing execution causes the apparatus to execute any method in the foregoing first aspect or any possible implementation of the first aspect; and/or, causes the apparatus to execute the foregoing second aspect or second aspect Any of the possible implementations of.
- an embodiment of the present application provides a data stream processing system, which includes a first node, a second node, and so on.
- the first node is used to execute any one of the methods in the first aspect or the first aspect; the second node is used to execute any one of the methods in the second aspect or the second aspect.
- the embodiments of the present application provide a chip system, including a processor, and optionally a memory; wherein the memory is used to store a computer program, and the processor is used to call and run the computer program from the memory, so that the The communication device of the chip system executes any one of the above-mentioned first aspect or any of the possible implementations of the first aspect; and/or makes the communication device installed with the chip system execute any of the above-mentioned second aspect or any possibility of the second aspect Any one of the implementation methods.
- the embodiments of the present application provide a computer program product, the computer program product includes: computer program code, when the computer program code is executed by the communication unit, processing unit or transceiver, or processor of the communication device, the communication device Perform any method in the foregoing first aspect or any possible implementation manner of the first aspect; and/or cause the communication device to perform any method in the foregoing second aspect or any possible implementation manner of the second aspect.
- an embodiment of the present application provides a computer-readable storage medium, and the computer-readable storage medium stores a program, and the program causes the device to execute any method in the above-mentioned first aspect or any possible implementation of the first aspect And/or to cause the apparatus to execute any method in the foregoing second aspect or any possible implementation manner of the second aspect.
- the embodiments of the present application provide a computer program.
- the computer program When the computer program is executed on a computer, it will enable the computer to implement the first aspect or any one of the possible implementations of the first aspect; And/or, cause the computer to implement the foregoing second aspect or any method in any possible implementation manner of the second aspect.
- FIG. 1 is a schematic diagram of the same resource module processing that the SFF sends uplink and downlink messages to the SF provided by this application;
- FIG. 2 is a schematic diagram of a data stream transmission scenario provided by this application.
- FIG. 3 is a schematic diagram of a data stream processing method provided by this application.
- FIG. 4 is a schematic diagram of the first uplink data packet processing provided by this application.
- FIG. 5 is a schematic diagram of the first type of downlink data message processing provided by this application.
- FIG. 6 is a schematic diagram of the flow of the first data stream processing provided by this application.
- FIG. 7 is a schematic diagram of the second type of uplink data message processing provided by this application.
- FIG. 8 is a schematic diagram of the second type of downlink data message processing provided by this application.
- FIG. 9 is a schematic diagram of the second data stream processing process provided by this application.
- FIG. 10 is a schematic diagram of the first data stream processing apparatus provided by this application.
- FIG. 11 is a schematic diagram of a second data stream processing apparatus provided by this application.
- FIG. 12 is a schematic diagram of a third data stream processing apparatus provided by this application.
- FIG. 13 is a schematic diagram of a fourth data stream processing apparatus provided by this application.
- anycast (anycast) type of service SID to the SF
- the forwarder of the service chain dynamically generates load-sharing entries, realizing data streams in multiple Dynamic load sharing between resource modules.
- the forwarder of the service chain dynamically generates load-sharing entries, realizing data streams in multiple Dynamic load sharing between resource modules.
- the user's status information is created and saved, which is used to process the downstream packets of the data stream, such as address Conversion or legality check, etc.
- these state data are only stored locally in the resource module that executes the processing. Therefore, the SFF is required to send the uplink and downlink messages of the same data stream to the same resource module of the SF for processing.
- the uplink data message performs load sharing on the Access-Leaf node, and resource module 2 is selected, and the downlink data message performs load sharing on the Border-Leaf node, resource module 2 must also be selected.
- an embodiment of the present application provides a data stream processing method. It can be applied to any data stream sending scenario.
- the basic idea of the embodiments of this application is to record the information of the resource module to be processed during the upstream forwarding of the data stream, and send the recorded information of the resource module together with the data stream, so that when the data stream is forwarded downstream At this time, the same resource module may be determined for forwarding according to the information of the resource module carried in the data stream.
- FIG. 2 a schematic diagram of a data stream transmission scenario provided for this application, assuming that the service chain for data transmission includes Access-Leaf, SFF1, SFF2, SFF3 and Border-Leaf, and Access-Leaf, SFF1, SFF2, SFF3
- the SRv6 Locator of Border-Leaf and Border-Leaf are respectively B0::/64, B1::/64, B2::/64, B3::/64 and B4::/64.
- SF1, SF2 and SF3 are respectively composed of 3, 2 and 1 resource modules.
- the head-end and tail-end of the upstream data flow service chain are Access-Leaf and Border-Leaf respectively; the Head-end and Tail-end of the downstream data flow service chain are Border-Leaf and Access-Leaf.
- the nodes in the service chain that transmit uplink data stream packets are collectively referred to as the first node, and the nodes in the service chain that perform downlink data flow packet transmission are collectively referred to as the first node.
- the first node and the second node may be the same or different.
- the embodiments of this application can be applied to the SRv6 service chain scenario, and it is applicable to the scenario where SF supports SRv6.
- SFF is not used as a service function chain (SFC) proxy (proxy); it is also applicable to the scenario where SF does not support SRv6.
- SFF doubles as SFC Proxy.
- FIG. 2 of the embodiment of the present application is only a simplified schematic diagram for ease of understanding and an example.
- the transmission scenario described is to more clearly illustrate the technical solutions of the embodiments of the present application, and does not constitute a provision for the embodiments of the present application.
- those of ordinary skill in the art know that with the evolution of the network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are equally applicable to similar technical problems.
- Data stream refers to a set of ordered data sequences with start and end bytes, including input stream and output stream.
- SRv6 refers to a new extension in the protocol (Internet protocol, IP) extension header directly connected between networks of Internet Protocol Version 6 (Internet Protocol Version 6, IPv6). This extension is called segment routing Header (segment routing header, SRH), and this part of the extension does not destroy the standard IP header, so SRv6 can be considered as a native IPv6 technology.
- IP Internet protocol
- IPv6 Internet Protocol Version 6
- At least one means one or more, and “plurality” means two or more.
- “And/or” describes the association relationship of the associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, and B exists alone, where A, B can be singular or plural.
- the character “Yes” generally indicates that the associated objects before and after are an “or” relationship.
- “The following at least one item (a) or similar expressions refers to any combination of these items, including single item (a) or plural items (A) any combination.
- at least one item (a) of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple .
- the ordinal numbers such as “first” and “second” mentioned in the embodiments of this application are used to distinguish multiple objects, and are not used to limit the order, timing, priority, or importance of multiple objects.
- the first priority criterion and the second priority criterion are only for distinguishing different criteria, but do not indicate the difference in content, priority, or importance of the two criteria.
- an embodiment of the present application provides a data stream processing method, which includes:
- S300 Node A receives an uplink data stream packet.
- the node A is the head node for processing the uplink data flow packet, and when the node A receives the uplink data flow packet, it obtains the SID-List according to the service chain strategy for processing the uplink data flow packet. .
- the S300 may also include: the head node receives a protocol message, and the protocol message carries the correspondence between the destination address and the SF.
- S301 The node A sends the uplink data flow packet to the node B.
- the node B is a node in an uplink data flow packet transmission service chain.
- the node A may determine the node B that receives the uplink data flow packet according to the destination address in the SID-List, and then forward the uplink data flow packet to the node B.
- the Node B determines an identifier of a resource module used to process the uplink data flow packet and the resource module used to process the uplink data flow packet.
- the node B searches for a forwarding entry according to the destination address; selects one entry from at least one entry corresponding to the forwarding entry, and combines the The resource module corresponding to the selected entry is used as the resource module for processing the uplink data flow message, and the identifier of the resource module is recorded in the forwarding entry.
- a Hash algorithm may be used to select one table entry from the at least one table entry according to the keyword of the uplink data stream message.
- the node B in the embodiment of the present application determines the forwarding entry according to the destination address in the SID-List, which can be understood as the node B according to the destination address in the SID-List, Determine the corresponding SF, where the SF contains at least one resource module.
- the Node B selects a resource from the at least one resource module as a resource module for processing the uplink data flow packet, and records the selected resource module The ID of the resource module.
- the Node B determines that the SF corresponding to the destination address is SF1 according to the destination address, and the SF1 includes three resource modules, and the identifiers of the three resource modules are respectively, resource module identifiers 1. Resource module identification 2 and resource module identification 3. Then, the node B selects a resource module from the three resource modules. For example, if the node B selects a resource module corresponding to the resource module identifier 3, the resource module corresponding to the resource module identifier 3 is used as the processing The resource module of the uplink data flow message. Finally, the Node B records the identifier of the resource module used to process the uplink data flow packet, that is, the resource module identifier 3.
- the head node (ie node A) in the service chain is SFF
- the specific execution method of node A in the above S300 can be referred to the execution method of node B in S302, which is a concise description. I will not repeat them here.
- the Node B modifies the uplink data flow packet according to the identifier of the resource module.
- the Node B determines the resource module used to process the uplink data flow packet, for example, the Node B selects the resource module for processing the uplink data.
- the identifier of the resource module of the flow message is resource module identifier 3, and the Node B adds the identifier of the resource module (ie, the resource module identifier 3) to the uplink data flow message. Therefore, the modified uplink data message includes the identifier of the resource module used for processing the uplink data flow message.
- the Node B may determine the resource module for processing the uplink data flow packet, but before processing the uplink data flow packet through the resource module, Modify the uplink data flow message according to the identifier of the selected resource module; alternatively, the Node B may, after determining the resource module for processing the uplink data flow message, successfully complete the execution through the resource module After local forwarding, the uplink data stream message is modified according to the identifier of the selected resource module. That is to say, the embodiment of this application does not limit the timing of modifying the uplink data stream packet according to the identifier of the selected resource module. Any modification method and timing applicable to the embodiment of this application belong to the implementation of this application. The scope of protection of the case.
- the SF can be based on the resource module identifier (for example, resource module identifier 3) Modify the uplink data stream message; if the SF does not have the ability to modify the SID in the segment list, it can be modified by the Node B according to the resource module identifier (for example, resource module identifier 3) The upstream data flow message.
- the resource module identifier for example, resource module identifier 3
- the Node B sends the modified uplink data flow packet.
- the node B sends the modified uplink data flow message to the next node corresponding to the service chain according to the destination address in the SID-List .
- the node B determines the next node to send according to the data stream key value and the SID-List.
- the node that subsequently receives the uplink data flow message repeats S302 to S304, which will not be repeated here, until the service chain completes the processing of the uplink data flow message, that is, performs the processing of the uplink data flow message.
- the tail node (for example, node N) of the service chain receives the uplink data flow message.
- the node for querying the destination address and selecting the resource module and the node for modifying the uplink data message may be the same or different. Qualify.
- the node N After receiving the uplink data flow message, the node N learns the correspondence between the identifier of the resource module used to process the uplink data flow message and the SF according to the uplink data flow message, and generates a learning record.
- the uplink data flow message carries the identifier of the resource module used to process the uplink data flow message and the information of the SF through which the uplink data flow message passes. Correspondence. Therefore, the node that has received the upstream data stream message can obtain the content carried in the upstream data stream message through learning, and generate a corresponding learning record through learning.
- each node that processes the uplink data flow packet after receiving the uplink data flow packet, it can obtain and learn the information used for processing in the uplink data flow packet.
- the corresponding relationship between the identifier of the resource module of the uplink data flow message and the SF through which the uplink data flow passes; or each node that processes the uplink data flow message can process the data flow according to the uplink data flow.
- the corresponding relationship between the identifier of the resource module used to process the uplink data stream message and the SF During the transmission of the message learning data stream, the corresponding relationship between the identifier of the resource module used to process the uplink data stream message and the SF.
- the learning of the corresponding relationship may not be performed.
- the head node (for example, node N) that processes the downlink data flow packet receives the downlink data flow packet.
- the tail node for processing the upstream data stream packet is the head node for processing the downstream data stream packet, then the head node for processing the downstream data stream Is node N.
- the node N obtains the SID-List from the service chain policy after receiving the downlink data stream message.
- the node N adds the corresponding relationship between the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow packet passes, which is contained in the learning record, to the In the downstream data stream message.
- the head node that performs downlink data flow processing determines the learning record corresponding to the downlink data flow message according to the correspondence between the uplink data flow message and the downlink data flow message; where The learning record includes a correspondence between the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow passes; and the downlink data flow packet is modified according to the learning record.
- the identifiers of the three resource modules are HashID1, HashID2, and HashID2, respectively. HashID3.
- the resource module identified as HashID2 in the SF1 is selected to process the uplink data stream packet, the corresponding relationship between the SF1 and the resource module identified as HashID2 is recorded.
- the downlink data stream arrives, learn the corresponding relationship and modify the downlink data stream message, that is, in the downlink data stream message, it is recorded that when the downlink data stream message is processed by SF1, the use identifier is HashID2 Resource module.
- the destination address of the downstream data flow packet is the source address of the upstream data flow packet, and the source address of the downstream data flow packet is the upstream The destination address of the data flow message; or the protocol of the upstream data flow message is the same as the protocol of the downstream data flow message.
- source port and destination port of the upstream data flow packet in the embodiment of this application may be the opposite or different from the source port and destination port of the downstream data flow packet. It is not limited.
- the node N determines the resource module used for processing the downlink data flow packet according to the identifier of the resource module used for processing the uplink data flow packet.
- the resource module for processing the downlink data flow message is the same as the resource module for processing the uplink data flow message.
- the node N uses the process of learning and modifying the downlink data flow message in S307, so that the downlink data flow message carries resources for processing the uplink data flow message corresponding to the downlink data flow message The ID of the module.
- the node N compares the corresponding relationship between the destination address in the SID-List and the identifier of the resource module used to process the uplink data flow packet and the SF through which the uplink data flow packet passes.
- the downlink data flow message is forwarded to the corresponding node C in the service chain that processes the downlink data flow message.
- the nodes in the service chain for transmitting the downlink data flow message are based on the identifier of the resource module used to process the uplink data flow message carried in the downlink data flow message. According to the correspondence relationship with the SF through which the uplink data flow message passes, it is determined from at least one table entry corresponding to the forwarding table entry which resource module corresponding to the table entry is selected as the resource module for processing the downlink data flow message.
- the node that subsequently receives the downlink data flow message repeats this step until the service chain that processes the downlink data flow message completes the downlink data flow message processing, that is, performs the downlink data flow message processing
- a resource module when performing downlink data stream transmission, if the node determines the current destination address, the resource corresponding to the identifier of the resource module carried in the downlink data stream packet After the module fails, a resource module can be reselected from the remaining resource modules corresponding to the destination address to process the downlink data stream message.
- the embodiment of this application is an optional way.
- the identification of the resource module in the embodiment of this application can be represented by HashID, and the SID is composed of three parts: locator, function and arguments.
- the Arguments part represents the HashID of the SF resource module, and the Arguments part may also contain data streams, services, or any other information required by the Function.
- this embodiment allocates an SID in the format of Locator:Function:1 for the SF, which means that the resource module identified as 1 in the SF is designated to perform the function.
- Arguments is 0 means that the resource module that performs the function is not specified.
- the identifier of the resource module may also be used for Identifies a resource module in the entire network, or the identifier of the resource module can be used to identify a resource module in the SF. The following will introduce separately according to different identification situations.
- Identification situation 1 The identification of the resource module is used to identify a resource module in the SF.
- HashID is allocated to the resource module of the SF, where the allocated HashID is unique within the SF.
- Each SFF advertises the Service SID through a dynamic routing protocol, which carries the HashID of the SF resource module. After each SFF learns the Service SID of each SF, it generates a forwarding entry of the Service SID. Some examples are shown in Table 1 to Table 4.
- Identification situation 2 The identification of the resource module is used to identify a resource module in the entire network.
- HashID is assigned to the resource module of SF, and each network node generates ECMP forwarding entries of Service SID, including local static entries and remote dynamic entries, and each entry is recorded
- Service SID including local static entries and remote dynamic entries
- the corresponding relationship between the identifier of the resource module and the SF is also determined, so as to determine the corresponding relationship between the identifier of the resource module and the SF according to the unique identifier and the identifier of the resource module.
- the corresponding relationship of the SF modifies the uplink data stream message.
- the modification can be made in the following ways:
- the embodiment of the present application adds the corresponding relationship to the SRH of the uplink data flow packet.
- Modification 1 Add the corresponding relationship to the SID in the segment list in the SRH.
- the modification 1 is to expand the dynamic routing protocol in the control plane.
- Service SID sub-TLV and Service attribute Sub-sub-TLV are added.
- Modification 2 Add the corresponding relationship to the optional TLV field in the SRH.
- the modification 2 is to extend the dynamic routing protocol in the control plane and the data plane respectively.
- control plane is modified as follows:
- Case 1 After the upstream data flow is processed by the resource module of the SF, as shown in Figure 4, the Arguments field corresponding to the SID in the SRH Segment List is modified to record the resource module that processes the data flow. Then, learn the correspondence between the keywords of the upstream data stream and the Segment List in the SRH in Border-Leaf, and use the SID with valid Arguments learned from the upstream data stream when encapsulating the downstream data stream message.
- the Arguments field of the identification SID is HashID
- the joint key value of Locator:Function and HashID is used to find the forwarding table.
- the embodiment of the present application provides a data stream processing method based on the above situation 1.
- the specific steps are as follows:
- the uplink data message enters the Access-Leaf, and the SID-List is obtained from the service chain strategy.
- S601 Encapsulate the data message according to the strategy.
- the data stream keyword can be a 5-tuple (source IP, destination IP, protocol number, source port number, destination port number) or a triple (source IP, destination IP). IP, Flow Label), etc.
- an entry with a HashID of 2 can also be selected, and the message is sent to the resource module 2 of SF1.
- the resource module 1 of SF1 receives the uplink data message, and after executing the corresponding service function, it releases the outer SRH encapsulation, and at the same time modifies the Arguments section of the inner SRH[SL], and returns to the SFF1.
- S604 can also be completed by SFF1.
- the resource module 2 of SF2 receives the uplink data message, and after executing the corresponding service function, it releases the outer SRH encapsulation, and at the same time modifies the Arguments section of the inner SRH[SL], and returns to the SFF2.
- S606 can also be completed by SFF2.
- the resource module 1 of SF3 receives the uplink data message, and after executing the corresponding service function, it releases the outer SRH encapsulation, and at the same time modifies the Arguments section of the inner SRH[SL], and returns to SFF3.
- S608 can also be completed by SFF3.
- Border-Leaf receives the uplink data message, and performs the corresponding relationship between the data flow key value and the SID-List ⁇ FlowKey, ⁇ A1::1:1,A2::1:2,A3::1:1> ⁇ Learning.
- the downstream data stream packet enters the Border-Leaf, and the SID-List ⁇ A3::1:0,A2::1:0,A1::1:0,B0::1 ⁇ is obtained from the service chain strategy, where B0::1 is the SID of Access-Leaf at the end of the service chain.
- Border-Leaf finds the record ⁇ FlowKey, ⁇ A1::1:1,A2::1:2,A3::1:1>, learned in S609 according to the correspondence between the upstream and downstream data flows FlowKey.
- the Access-Leaf receives the downlink data message, decapsulates the SRH, and forwards it according to the IP or MAC header of the inner payload.
- the Tail-end as the service chain can choose to learn or not to learn the correspondence between the FlowKey of the downlink data stream and the HashID of each SF.
- the SFF when the resource module of the SF handles a failure, the SFF can quickly sense through the detection mechanism and then perform local protection switching. If the upstream traffic reaches SFF1, and SFF1 senses that the resource module with HashID of SF1 is faulty, it can switch to other ECMP entries and forward the message to the resource module with HashID of 2 or send it to the resource module with HashID of 3 via SFF2 for processing . If the downstream data stream arrives at SFF2, SFF2 senses that the resource module specified by the HashID in the message is faulty, and SFF2 can decide to discard the message or select other reachable entries to forward the message according to the local policy.
- Case 2 After the upstream data flow is processed by the resource module of SF, as shown in Figure 7, when each network node forwards the upstream data flow message, it writes the resource module HashID of the processing resource module into the Optional TLV of SRH and carries it hop by hop To the end node of the business chain. The tail node dynamically learns the correspondence between the data stream and the SF resource module that processes the stream. After the downstream packet of the data flow enters the service chain, as shown in Figure 8, the HashID of the SF resource module that processes the upstream packet of the data flow is searched and encapsulated in the SRH Optional TLV. The network node looks up the table according to the Service SID and HashID in the SRH Forward.
- the embodiment of the present application provides a data stream processing method based on the above situation 2.
- the situation of selecting a business agent is introduced, and the specific steps are as follows:
- S900 The uplink data message enters the Access-Leaf, and the SID-List is obtained from the service chain strategy.
- the B4::1 is the SID of the service chain tail node Border-Leaf.
- S901 Encapsulate the data message according to the strategy.
- the SID-List in the table entry only contains a unique SID, if no other attributes need to be specified, the SRH can be omitted and the destination address of the IPv6 header can be directly modified.
- SFF1 receives the uplink data message, and executes the service chain proxy operation according to the destination address B1::100 of the message.
- SFF1 forwards the message for the second time according to the current destination address A2::1, and SFF1 is hashed to the entry with HashID 5 for forwarding.
- the SFF2 receives the uplink data message, and executes the service chain proxy operation according to the destination address B2::101 of the message.
- SFF2 forwards the message for the third time according to the current destination address A3::1, and SFF2 hashes to the table entry with HashID 6 for forwarding.
- the SFF3 receives the uplink data message, and executes the service chain proxy operation according to the destination address B3::100 of the message.
- SFF3 forwards the message for the third time according to the current destination address B4::1.
- Border-Leaf receives the uplink data message, strips the SRH and learns the correspondence between the key value of the data flow and the SF HashID recorded in the SRH ⁇ FlowKey, ⁇ A1::1,1>, ⁇ A2::1,5 >, ⁇ A3::1,6> ⁇ .
- S913 the downlink data message enters Border-Leaf, and SID-List ⁇ A3::1,A2::1,A1::1,B0::1 ⁇ is obtained from the business chain strategy, where B0::1 is the business chain SID of the tail node Access-Leaf.
- Border-Leaf uses the destination address A3::1 and HashID 6 as the composite key value in the forwarding table to query the forwarding table for forwarding packets:
- SFF3 receives the downlink data message, and executes the service chain proxy operation according to the message destination address B3::100.
- SFF3 obtains the destination address A2::100 and HashID 5 from the message, and uses the two as the composite key to query and forward the message:
- SFF2 receives the downlink data message, and executes the service chain proxy operation according to the message destination address B2::101.
- SFF2 obtains the destination address A1::100 and HashID 1 from the message, and uses the two as the composite key to query and forward the message:
- S920, SFF1 receives the downlink data message, and executes the service chain proxy operation according to the message destination address B1::100.
- SFF1 obtains the destination address B0::1 from the message, and forwards the message:
- the Access-Leaf receives the downlink data message, decapsulates the SRH, and forwards it according to the IP or MAC header of the inner payload.
- the Access-Leaf as the Tail-end of the service chain can choose to learn or not to learn the correspondence between the FlowKey of the downlink data stream and the HashID of each SF.
- the SFF/SFC Proxy can perform local protection switching after quickly sensing through the detection mechanism. If the upstream traffic reaches SFF1, and SFF1 senses that the resource module with HashID of SF1 is faulty, it can continue to query the local FIB and forward the message to the resource module with HashID of 2 or send it to the resource module with HashID of 4 via SFF2 for processing. If the downstream data stream reaches SFF2, SFF2 senses that the resource module with SF2 HashID 5 is faulty, and SFF2 can decide to discard the packet according to the local policy or select other local reachable entries to forward the packet.
- the above-mentioned realization devices include hardware structures and/or software modules corresponding to the respective functions.
- the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software-driven hardware depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered beyond the scope of this application.
- a data stream processing device of the present application includes a processor 1000, a memory 1010, and a transceiver 1020;
- the processor 1000 is responsible for managing the bus architecture and general processing, and the memory 1010 can store data used by the processor 1000 when performing operations.
- the transceiver 1020 is used to receive and transmit data under the control of the processor 1000.
- the bus architecture may include any number of interconnected buses and bridges. Specifically, one or more processors represented by the processor 1000 and various circuits of the memory represented by the memory 1010 are linked together. The bus architecture can also link various other circuits such as peripheral devices, voltage regulators, power management circuits, etc., which are all known in the art, and therefore, will not be further described herein.
- the bus interface provides the interface.
- the processor 1000 is responsible for managing the bus architecture and general processing, and the memory 1010 can store data used by the processor 1000 when performing operations.
- the process disclosed in the embodiment of the present application may be applied to the processor 1000 or implemented by the processor 1000.
- each step of the signal processing flow can be completed by an integrated logic circuit of hardware in the processor 1000 or instructions in the form of software.
- the processor 1000 may be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, and can implement or execute the The disclosed methods, steps and logic block diagrams.
- the general-purpose processor may be a microprocessor or any conventional processor or the like.
- the steps of the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed and completed by a hardware processor, or executed and completed by a combination of hardware and software modules in the processor.
- the software module can be located in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
- the storage medium is located in the memory 1010, and the processor 1000 reads the information in the memory 1010, and completes the steps of the signal processing flow in combination with its hardware.
- the processor 1000 is configured to read the program in the memory 1001 and execute the method flow in S300-S308 shown in FIG. 3; or execute, for example, the method flow in S600-S618 shown in FIG. 6; or execute For example, the method flow in S900-S922 shown in FIG. 9.
- the present application provides a data stream processing device, which includes:
- the communication unit 1100 is configured to receive uplink data stream packets
- the processing unit 1101 determines the resource module used to process the uplink data flow message and the identifier of the resource module; modifies the uplink data flow message according to the identifier of the resource module, and the modified uplink data flow The message includes the identifier of the resource module used to process the uplink data flow message;
- the communication unit 1100 is also configured to send the modified uplink data stream message.
- the processing unit may perform the processing of the uplink data flow packet by the node in the uplink data flow packet transmission service chain in S300-S305 as shown in FIG. 3
- the communication unit may execute the method flow of receiving and/or forwarding the uplink data flow packet by the node in the service chain for uplink data flow packet transmission in S300-S305 as shown in FIG. 3; or
- the processing unit may execute the process of the method for processing the uplink data stream packet by the node in the service chain of S600-S612 for uplink data flow packet transmission in S600-S612 as shown in FIG. 6, and the communication unit may execute as shown in FIG.
- the node in the service chain for uplink data flow packet transmission receives and/or forwards the uplink data flow packet; or the processing unit may execute as shown in FIG. 9
- the node in the service chain for uplink data flow message transmission processes the flow of the method for processing the uplink data flow message.
- the communication unit may perform the uplink data processing in S900-S912 as shown in FIG. The flow of the method in which nodes in the stream message transmission service chain receive and/or forward the uplink data stream message.
- processing unit 1101 is specifically configured to:
- the destination address for processing the uplink data flow message determines the resource module for processing the uplink data flow message from the resource module corresponding to the destination address; The identifier of the resource module used to process the uplink data flow packet.
- the modified uplink data flow message carries the corresponding relationship between the identifier of the resource module and the service function SF.
- processing unit 1101 is specifically configured to:
- the corresponding relationship is added to the SRH of the uplink data flow packet.
- processing unit 1101 is specifically configured to:
- processing unit 1101 is specifically configured to:
- processing unit 1101 is further configured to:
- the forwarding entry is generated according to the protocol message.
- the protocol message further carries some or all of the following:
- Service segment identifier SID type SID type
- resource quantity ResourceWeight
- segment routing Internet Protocol version 6 SRv6 service function Service Function.
- the identifier of the resource module is a global unique identifier of the resource module, and the global is used to indicate all service functions SF in the data stream processing process; and/or the identifier of the resource module The identifier is the unique identifier of the resource module in the SF.
- processing unit 1101 is further configured to:
- the downlink data flow message carries the identifier of the resource module used to process the uplink data flow message, and the destination address of the downlink data flow message is the uplink
- the source address of the data flow message the source address of the downlink data flow message is the destination address of the uplink data flow message; the source address is determined according to the identifier of the resource module used to process the uplink data flow message Regarding the resource module for processing the downlink data flow message, the resource module for processing the downlink data flow message is the same as the resource module for processing the uplink data flow message.
- processing unit 1101 is specifically configured to:
- processing unit 1101 is further configured to:
- the corresponding relationship between the identifier of the resource module used for processing the uplink data flow message and the service function SF is added to the segment routing header SRH of the downlink data flow message.
- the functions of the communication unit 1100 and the processing unit 1101 shown in FIG. 11 may be executed by the processor 1000 running a program in the memory 1010, or executed by the processor 1000 alone.
- a data stream processing device of the present application includes a processor 1200, a memory 1210, and a transceiver 1220;
- the processor 1200 is responsible for managing the bus architecture and general processing, and the memory 1210 can store data used by the processor 1200 when performing operations.
- the transceiver 1220 is used to receive and transmit data under the control of the processor 1200.
- the bus architecture may include any number of interconnected buses and bridges. Specifically, one or more processors represented by the processor 1200 and various circuits of the memory represented by the memory 1210 are linked together.
- the bus architecture can also link various other circuits such as peripheral devices, voltage regulators, power management circuits, etc., which are all known in the art, and therefore, will not be further described herein.
- the bus interface provides the interface.
- the processor 1200 is responsible for managing the bus architecture and general processing, and the memory 1210 can store data used by the processor 1200 when performing operations.
- the process disclosed in the embodiment of the present application may be applied to the processor 1200 or implemented by the processor 1200.
- each step of the signal processing flow can be completed by an integrated logic circuit of hardware in the processor 1200 or instructions in the form of software.
- the processor 1200 may be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, and may implement or execute the The disclosed methods, steps and logic block diagrams.
- the general-purpose processor may be a microprocessor or any conventional processor or the like.
- the steps of the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed and completed by a hardware processor, or executed and completed by a combination of hardware and software modules in the processor.
- the software module can be located in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
- the storage medium is located in the memory 1210, and the processor 1200 reads the information in the memory 1210, and completes the steps of the signal processing flow in combination with its hardware.
- the processor 1200 is configured to read the program in the memory 1201 and execute the method flow in S300-S308 shown in FIG. 3; or execute, for example, the method flow in S600-S618 shown in FIG. 6; or execute For example, the method flow in S900-S922 shown in FIG. 9.
- the present application provides a data stream processing device, which includes:
- the communication unit 1300 is configured to receive a downlink data flow message, where the downlink data message carries an identifier of a resource module used to process an uplink data flow message corresponding to the downlink data flow message;
- the processing unit 1301 is configured to determine a resource module for processing the downlink data flow message according to the identifier of the resource module for processing the uplink data flow message, and the resource module for processing the downlink data flow message is The resource module of the message is the same as the resource module used for processing the uplink data flow message.
- the processing unit may perform the processing of the downlink data stream packet by the node in the downlink data stream packet transmission service chain in S306-S308 as shown in FIG. 3
- the communication unit may execute the method flow of receiving and/or forwarding the downlink data flow message by the node in the service chain of performing downlink data flow message transmission in S306 to S308 as shown in FIG. 3; or
- the processing unit may execute the process of the method for processing the downlink data stream packet by the nodes in the downlink data stream packet transmission service chain in S613-S618 as shown in FIG. 6, and the communication unit may execute as shown in FIG.
- the node in the downlink data stream packet transmission service chain receives and/or forwards the method flow of the downlink data stream packet; or the processing unit may execute as shown in FIG. 9
- the node in the downlink data stream packet transmission service chain processes the method flow of the downlink data stream packet.
- the communication unit may perform the downlink data processing in S913-S922 as shown in FIG. The flow of the method in which nodes in the stream message transmission service chain receive and/or forward the downlink data stream message.
- processing unit 1301 is further configured to:
- the uplink data flow message carrying a correspondence between the identifier of the resource module used to process the uplink data flow message and the service function SF through which the uplink data flow message passes;
- a learning record is generated, and the learning record includes the corresponding relationship between the identifier of the resource module used for processing the uplink data flow message and the SF through which the uplink data flow message passes.
- processing unit 1301 was previously used for:
- the corresponding relationship between the identifier of the resource module used for processing the uplink data flow packet and the SF through which the uplink data flow packet passes, included in the learning record, is added to the downlink data flow packet.
- processing unit 1301 is specifically configured to:
- the corresponding relationship between the identifier of the resource module used for processing the uplink data flow packet and the SF through which the uplink data flow passes is added to the segment routing header SRH of the downlink data flow packet.
- processing unit 1301 is specifically configured to:
- the corresponding relationship between the identifier of the resource module used for processing the uplink data flow packet and the SF through which the uplink data flow passes is added to the optional type length value TLV field in the SRH.
- processing unit 1301 is specifically configured to:
- the resource module corresponding to the SF is determined; according to the correspondence between the identifier of the resource module for processing the uplink data flow message and the SF through which the uplink data flow passes, the resource module corresponding to the SF is determined Determine the resource module used to process the downlink data stream packet in the.
- processing unit 1301 is further configured to:
- the identifier of the resource module used to process the uplink data flow packet is a globally unique identifier of the resource module used to process the uplink data flow packet, and the global use It indicates all service functions SF in the data stream processing process; and/or the identifier of the resource module is the unique identifier of the resource module used to process the uplink data stream packet in the SF.
- the functions of the communication unit 1300 and the processing unit 1301 shown in FIG. 13 may be executed by the processor 1200 running a program in the memory 1210, or executed by the processor 1200 alone.
- An embodiment of the present application also provides a data stream processing system, which includes: a first node, a second node, etc.;
- the first node may be a node that performs uplink data stream packet transmission as shown in FIG. 3 or FIG. 6, or as shown in FIG. 9; the second node may be as shown in FIG. 3 or FIG. 6, or as shown in FIG. Indicates the node that performs the downlink data stream packet transmission.
- the first node may execute, for example, the method procedure performed by the node when transmitting uplink data stream packets in S300-S308 shown in FIG. 3; or execute, for example, S600-S618 shown in FIG. The process of the method executed by the node during the transmission of the uplink data stream packet; or, for example, the process of the method executed by the node during the transmission of the uplink data stream packet in S900-S922 shown in FIG. 9, which will not be repeated here.
- the second node may execute the method procedure performed by the node when transmitting a downlink data stream packet in S300-S308 as shown in FIG. 3; or execute, for example, performing downlink data stream packet transmission in S600-S618 as shown in FIG.
- the flow of the method executed by the time node; or, for example, the flow of the method executed by the node when the downlink data stream packet is transmitted in S900-S922 shown in FIG. 9 is not repeated here.
- various aspects of the data stream processing method provided in the embodiments of the present application can also be implemented in the form of a program product, which includes program code, and when the program code runs on a computer device, The program code is used to make the computer device execute the steps in the data stream processing method according to various exemplary embodiments of the present application described in this specification.
- the program product can use any combination of one or more readable media.
- the readable medium may be a readable signal medium or a readable storage medium.
- the readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or a combination of any of the above. More specific examples (non-exhaustive list) of readable storage media include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Type programmable read only memory (EPROM or flash memory), optical fiber, portable compact disk read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- the program product for data stream processing may adopt a portable compact disk read-only memory (CD-ROM) and include program code, and may run on a server device.
- CD-ROM portable compact disk read-only memory
- the program product of this application is not limited to this.
- the readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or in combination with a data stream processing device or device.
- the readable signal medium may include a data signal propagated in baseband or as a part of a carrier wave, and readable program code is carried therein. This propagated data signal can take many forms, including, but not limited to, electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- the readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with a periodic network action system, apparatus, or device.
- the program code contained on the readable medium can be transmitted by any suitable medium, including, but not limited to, wireless, wired, optical cable, RF, etc., or any suitable combination of the above.
- the program code used to perform the operations of the present application can be written in any combination of one or more programming languages.
- the programming languages include object-oriented programming languages—such as Java, C++, etc., as well as conventional procedural programming languages. Programming language-such as "C" language or similar programming language.
- the program code can be executed entirely on the user's computing device, partly on the user's device, executed as an independent software package, partly on the user's computing device and partly executed on the remote computing device, or entirely on the remote computing device or server Executed on.
- the remote computing device may be connected to the user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device.
- LAN local area network
- WAN wide area network
- the embodiment of the present application also provides a computing device readable storage medium for the data stream processing method, that is, the content is not lost after the power is off.
- the storage medium stores a software program, including program code.
- the program code runs on a computing device, the software program can implement any of the above embodiments of the present application when it is read and executed by one or more processors. Data stream processing scheme.
- this application may take the form of a computer program product on a computer-usable or computer-readable storage medium, which has a computer-usable or computer-readable program code implemented in the medium to be used or used by the instruction execution system. Used in conjunction with the instruction execution system.
- a computer-usable or computer-readable medium can be any medium that can contain, store, communicate, transmit, or transmit a program for use by an instruction execution system, apparatus, or device, or in combination with an instruction execution system, Device or equipment use.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据流处理的方法及装置。该方法包括:接收上行数据流报文;确定用于处理上行数据流报文的资源模块以及所述资源模块的标识;根据资源模块的标识修改上行数据流报文,并将修改后的上行数据流报文进行转发。接收下行数据流报文后,根据下行数据流报文中的资源模块的标识,确定用于处理下行数据流报文的资源模块,所述下行数据流报文中的资源模块的标识,是在学习所述上行数据流报文中的资源模块的标识后添加的。该方法进行下行数据流报文传输时,根据学习到的上行数据流报文中的资源模块的标识,确定进行下行数据流报文传输的资源模块,通过相同的资源模块进行上行数据流报文和下行数据流报文的传输,有效提升了通信传输的成功率。
Description
相关申请的交叉引用
本申请要求在2020年03月05日提交中国专利局、申请号为202010148537.8、申请名称为“一种数据流处理的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及互联网协议(internet protocol,IP)领域,尤其涉及一种数据流处理的方法及装置。
在数据流的上行报文处理过程中,经常会存在一些特殊的有状态的业务功能(Service Function,SF),如网络地址转换(Network Address Translation,NAT)、防火墙(Firewall)等。其中,为了顺利完成数据流的上行报文处理,例如地址转化或合法性检查,会创建和保存用户的状态信息。而为了减少系统内的通信和存储开销,提高处理性能,只将所述状态信息保存在执行处理的资源模块本地。因此,要求业务功能转发器(service function forwarder,SFF)将同一数据流的上下行报文送至SF的同一个资源模块处理,从而才能获取到所述状态信息,顺利进行地址转化或合法性检查等。
目前随着虚拟化、云原生技术的发展和成熟,被业务链串接的业务功能逐步从物理网络功能(physical network function,PNF)演进为虚拟网络功能(virtualized network function,VNF)或云原生网络功能(cloud-native network function,CNF),实现了SF的资源模块更灵活的随业务变化而迁移或扩缩容。
但是,由于SF的资源模块可以随业务变化进行扩缩容,从而可能会使上行传输与下行传输时对应的SF的资源模块发生变化,而目前因上下行传输过程中SF的资源模块发生变化,无法有效保证同一数据流的上下行报文送至SF的同一个资源模块处理,导致通信传输失败率较高。
发明内容
本申请提供一种数据流处理的方法及装置,用以提升通信传输成功率。
第一方面,本申请实施例提供一种数据流处理的方法,包括:
接收上行数据流报文;确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据流报文包括所述用于处理所述上行数据流报文的资源模块的标识;发送修改后的所述上行数据流报文。
基于该方案,进行上行数据传输过程中,将用于传输所述上行数据流报文的资源模块标识记录到所述上行数据流报文中,从而在下行数据流传输过程中,从报文中获取所述标识,根据所述标识确定用于进行上行数据流传输的资源模块,继续使用该资源模块进行下 行数据流报文的传输,从而使用相同的模块处理上、下行数据流,有效提升了通信传输的成功率。
在一种可能的实现方式中,根据接收到的所述上行数据流报文,确定处理所述上行数据流报文的目的地址;从所述目的地址对应的资源模块中确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
基于该方案,提供了更详细的确定资源模块以及资源模块唯一标识的方法。
在一种可能的实现方式中,修改后的所述上行数据流报文中携带所述资源模块的标识与SF的对应关系。
基于该方案,在进行上行数据流报文传输后,确定用于传输所述上行数据流报文的资源模块的唯一标识与用于传输所述上行数据流报文的SF的对应关系,并将所述对应关系添加到所述上行数据流报文中,从而可以在进行下行数据流报文传输过程中,根据所述对应关系确定上行数据流传输的资源模块,并根据所述资源模块进行传输下行数据流报文,有效提升了通信传输的成功率。
在一种可能的实现方式中,将所述对应关系添加到所述上行数据流报文的SRH中。
基于该方案,提供了一种添加对应关系的方法,适用性更强。
在一种可能的实现方式中,将所述对应关系添加到所述SRH中的段列表中的段路由标识(segment routing identifier,SID);或将所述对应关系添加到所述SRH中的可选的类型长度值(type length value,TLV)字段。
基于该方案,提供了多种将所述对应关系添加到所述上行数据流报文中的方法,适用性更强。
在一种可能的实现方式中,根据所述目的地址查找转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
在一种可能的实现方式中,所述方法还包括:接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;根据所述协议报文生成所述转发表项。
在一种可能的实现方式中,所述协议报文中还携带下列中的部分或全部:服务SID类型;资源数量ResourceWeight;SRv6服务功能Service Function。
在一种可能的实现方式中,学习所述上行数据流报文传输过程中,用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系。
基于该方案,业务链中的节点在完成自身对应的上行数据流处理后,可以通过学习获取所述对应关系,并将所述对应关系封装到所述下行数据流报文中,从而使下行数据流报文进行传输过程中,业务链中的节点根据所述下行数据流报文中的所述对应关系,获取用于处理所述上行数据流报文的资源模块,并根据所述资源模块进行下行数据流报文的处理,有效提升了通信传输的成功率。
在一种可能的实现方式中,所述资源模块的标识为所述资源模块在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为所述资源模块在SF内的唯一标识。
在一种可能的实现方式中,还包括:接收下行数据流报文,其中,所述下行数据流报文中携带用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地 址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,用于处理所述下行数据流报文的资源模块与用于处理所述上行数据流报文的资源模块相同。
在一种可能的实现方式中,根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;根据所述目的地址以及用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
在一种可能的实现方式中,将用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
第二方面,本申请实施例还提供一种数据流处理的方法,包括:
接收下行数据流报文,其中,所述下行数据报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,用于处理所述下行数据流报文的资源模块与用于处理所述上行数据流报文的资源模块相同。
基于该方案,通过使下行数据流报文中携带资源模块的标识,从而在进行下行数据流报文传输时,可以根据所述资源模块的标识,确定用于处理所述下行数据流报文的资源模块,提升通信传输的成功率。
在一种可能的实现方式中,接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
在一种可能的实现方式中,接收下行数据流报文后,根据上行数据流报文与下行数据流报文的对应关系,确定所述下行数据流报文对应的学习记录;将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中。
在一种可能的实现方式中,将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
在一种可能的实现方式中,将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的可选的类型长度值TLV字段。
在一种可能的实现方式中,根据目的地址,确定SF对应的资源模块;根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
在一种可能的实现方式中,还包括:确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
在一种可能的实现方式中,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处 理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
第三方面,本申请实施例提供了一种数据流处理的装置,该装置可以用来执行上述第一方面及第一方面的任意可能的实现方式中的操作。例如,装置可以包括用于执行上述第一方面或第一方面的任意可能的实现方式中的各个操作的模块单元;和/或,该装置可以用来执行上述第二方面及第二方面的任意可能的实现方式中的操作,例如,装置可以包括用于执行上述第二方面或第二方面的任意可能的实现方式中的各个操作的模块单元。
第四方面,本申请实施例提供了一种数据流处理的装置,该装置包括:处理器、收发器,可选的还包括存储器。其中,处理器、收发器和存储器之间通过内部连接通路互相通信。存储器用于存储指令,处理器用于执行所述存储器存储的指令。当处理器执行存储器存储的指令时,上述执行使得装置执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得装置执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第五方面,本申请实施例提供一种数据流处理的系统,该系统包括第一节点、第二节点等。
其中,所述第一节点用于执行上述第一方面或第一方面中任意一种方法;所述第二节点用于执行上述第二方面或第二方面中任意一种方法。
第六方面,本申请实施例提供了一种芯片系统,包括处理器,可选的还包括存储器;其中,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片系统的通信设备执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得安装有芯片系统的通信设备执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第七方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码被通信设备的通信单元、处理单元或收发器、处理器运行时,使得通信设备执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得通信设备执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,程序使得装置执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得装置执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第九方面,本申请实施例提供了一种计算机程序,计算机程序在某一计算机上执行时,将会使得计算机实现上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得计算机实现上述第二方面或第二方面的任意可能的实现方式中的任一方法。
图1为本申请提供的SFF将上下行报文送至SF的同一个资源模块处理示意图;
图2为本申请提供的一种数据流传输场景示意图;
图3为本申请提供的一种数据流处理的方法示意图;
图4为本申请提供的第一种上行数据报文处理示意图;
图5为本申请提供的第一种下行数据报文处理示意图;
图6为本申请提供的第一种数据流处理的流程示意图;
图7为本申请提供的第二种上行数据报文处理示意图;
图8为本申请提供的第二种下行数据报文处理示意图;
图9为本申请提供的第二种数据流处理的流程示意图;
图10为本申请提供的第一种数据流处理的装置示意图;
图11为本申请提供的第二种数据流处理的装置示意图;
图12为本申请提供的第三种数据流处理的装置示意图;
图13为本申请提供的第四种数据流处理的装置示意图。
进行数据流处理时,通过为SF分配任播(anycast)类型的服务(service)SID,用动态路由协议发布Service SID,由业务链的转发器动态生成负载分担表项,实现数据流在多个资源模块之间动态负载分担。其中,对于某些特殊的有状态SF,如NAT、Firewall等,在数据流的上行报文处理过程中,创建和保存了用户的状态信息,用于对数据流下行报文的处理,如地址转化或合法性检查等。而为了减少系统内的通信和存储开销,提高处理性能,这些状态数据只保存在执行处理的资源模块本地。因此,要求SFF将同一数据流的上下行报文送至SF的同一个资源模块处理。
示例性的,如图1所示,上行数据报文在Access-Leaf节点执行负载分担,选择资源模块2,下行数据报文在Border-Leaf节点执行负载分担,也必须选择资源模块2。
进一步的,目前随着虚拟化、云原生技术的发展和成熟,被业务链串接的业务功能逐步从PNF演进为VNF或云原生网络功能CNF,使SF的资源模块可以随业务变化进行扩缩容。
但是,随着SF的资源模块可以随业务变化灵活的进行扩缩容的同时,会无法有效保证同一数据流的上下行报文送至SF的同一个资源模块处理,从而导致通信传输失败率较高。
为解决该问题,本申请实施例提供一种数据流处理的方法。可应用于任何数据流发送场景中。本申请实施例的基础思想就是在进行数据流上行转发的过程中,记录进行处理的资源模块的信息,并将记录的所述资源模块的信息随数据流一起发送,从而当数据流进行下行转发时,可以根据所述数据流携带的所述资源模块的信息,确定相同的资源模块进行转发。
如图2所示,为本申请提供的一个数据流传输场景示意图,假设进行数据传输的业务链包括Access-Leaf、SFF1、SFF2、SFF3和Border-Leaf,以及Access-Leaf、SFF1、SFF2、SFF3和Border-Leaf的SRv6 Locator分别为B0::/64、B1::/64、B2::/64、B3::/64和B4::/64。其中,SF1、SF2和SF3分别由3个、2个和1个资源模块组成。上行数据流业务链的头端(head-end)和尾端(tail-end)分别为Access-Leaf和Border-Leaf;下行数据流业务链的Head-end和Tail-end分别为Border-Leaf和Access-Leaf。其中,为方便描述,本申请实施例中将所述业务链中进行上行数据流报文传输的节点统称为第一节点,将所述业务链中进行下行数据流报文传输的节点统称为第二节点。本申请实施例中所述第一节点与所述第二节点可以相同也可以不同。
其中,本申请实施例可以应用于SRv6业务链场景中,对于SF支持SRv6的场景适用, 例如,SFF不作为业务链(service function chain,SFC)代理(proxy);对于SF不支持SRv6的场景也适用,例如,SFF兼做SFC Proxy。
需要说明的是,本申请实施例上述图2仅为便于理解而示例的简化示意图,描述的传输场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以下,对本申请实施例中的相关名词进行解释说明,以便于理解。
1)数据流(data stream),是指一组有序,有起点和终点的字节的数据序列,包括输入流和输出流。
2)SRv6,是指直接在互联网协议第6版(internet protocol version 6,IPv6)的网络之间互连的协议(internet protocol,IP)扩展头中进行新的扩展,这个扩展部分称为段路由报头(segment routing header,SRH),而这部分扩展没有破坏标准的IP头,因此可以认为SRv6是一种本地的(native)的IPv6技术。
3)本申请实施例中的术语“系统”和“网络”可被互换使用。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“以是一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)下或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一优先级准则和第二优先级准则,只是为了区分不同的准则,而并不是表示这两种准则的内容、优先级或者重要程度等的不同。
此外,本申请实施例和权利要求书及附图中的术语“包括”和“具有”不是排他的。例如,包括了一系列步骤或模块的过程、方法、系统、产品或设备,不限定于已列出的步骤或模块,还可以包括没有列出的步骤或模块。
如图3所示,本申请实施例提供了一种数据流处理的方法,该方法包括:
S300,节点A接收上行数据流报文。
其中,假设所述节点A为进行上行数据流报文处理的头节点,当所述节点A接收到上行数据流报文后,根据进行上行数据流报文处理的业务链策略中获取SID-List。
另外,该S300中还可以包括:所述头节点接收协议报文,所述协议报文中携带目的地址与SF的对应关系。
S301,所述节点A将所述上行数据流报文发送给节点B。
假设,所述节点B为上行数据流报文传输业务链中的节点。
其中,所述节点A可以根据所述SID-List中的目的地址确定接收所述上行数据流报文的节点B,然后,将所述上行数据流报文转发给所述节点B。
S302,所述节点B确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
其中,本申请实施例中一种可选的方式,所述节点B根据所述目的地址查找转发表项;从所述转发表项对应的至少一个表项中选取一个表项,并将所述选取的表项对应的资源模块作为处理所述上行数据流报文的资源模块,以及将所述资源模块的标识记录在所述转发表项中。
进一步的,本申请实施例中可根据所述上行数据流报文的关键字使用Hash算法选择从所述至少一个表项中选取一个表项。
本领域技术人员应理解,本申请实施例中所述节点B根据所述SID-List中的目的地址,确定转发表项,可以理解为所述节点B根据所述SID-List中的目的地址,确定对应的SF,所述SF中包含至少一个资源模块。
进一步的,所述节点B在根据所述目的地址,确定至少一个资源模块后,从所述至少一个资源模块中选取一个资源,作为处理所述上行数据流报文的资源模块,并记录所选取的资源模块的标识。
示例性的,所述节点B根据所述目的地址,确定所述目的地址对应的SF为SF1,且所述SF1中包含3个资源模块,所述3个资源模块的标识分别为,资源模块标识1、资源模块标识2以及资源模块标识3。然后,所述节点B从所述3个资源模块中选取一个资源模块,例如,所述节点B选取的为资源模块标识3对应的资源模块,则所述资源模块标识3对应的资源模块作为处理所述上行数据流报文的资源模块。最后,所述节点B将用于处理所述上行数据流报文的资源模块的标识记录下来,即所述资源模块标识3。
需要说明的是,当所述业务链中的头节点(即节点A)为SFF时,上述S300中所述节点A的具体执行方式可参见所述S302中节点B的执行方式,为简洁描述,在此不进行赘述。
S303,所述节点B根据所述资源模块的标识修改所述上行数据流报文。
其中,本申请实施例中一种可选的方式,所述节点B在确定用于处理所述上行数据流报文的资源模块后,例如,所述节点B选取的用于处理所述上行数据流报文的资源模块的标识为资源模块标识3,则所述节点B将所述资源模块的标识(即资源模块标识3)添加到所述上行数据流报文中。从而使修改后的所述上行数据报文包括所述用于处理所述上行数据流报文的资源模块的标识。
需要说明是,本申请实施例中所述节点B可以在确定完用于处理所述上行数据流报文的资源模块后,但还没有通过所述资源模块处理所述上行数据流报文之前,根据所选取的资源模块的标识修改所述上行数据流报文;或者,所述节点B可以在确定完用于处理所述上行数据流报文的资源模块后,并成功通过该资源模块执行完本地转发后,根据所选取的资源模块的标识修改所述上行数据流报文。也就是说,本申请实施例中并不限定根据所述选取的资源模块的标识修改所述上行数据流报文的时机,任何适用于本申请实施例的修改方式以及时机,都属于本申请实施例的保护范围。
本申请实施例中一种可选的方式,若所述SF具有修改段列表(segment list)中SID的能力,则可以由所述SF根据所述资源模块的标识(例如,资源模块标识3)修改所述上行数据流报文;若所述SF不具有修改段列表(segment list)中SID的能力,则可以由所述节点B根据所述资源模块的标识(例如,资源模块标识3)修改所述上行数据流报文。
S304,所述节点B发送修改后的所述上行数据流报文。
其中,本申请实施例中一种可选的方式,所述节点B根据所述SID-List中的目的地址 将修改后的所述上行数据流报文发送给所述业务链对应的下一节点。
进一步的,所述节点B根据数据流键值与SID-List确定发送的下一节点。
其中,后续接收到所述上行数据流报文的节点重复执行S302~S304,在此不进行赘述,直到所述业务链完成所述上行数据流报文处理,即进行上行数据流报文处理的业务链的尾节点(例如节点N)接收到所述上行数据流报文。
需要说明的是,在上行数据流报文的处理过程中,查询目的地址以及选择资源模块的节点与修改上行数据报文的节点可以相同也可以不同,本申请实施例仅是举例说明,并不进行限定。
S305,所述节点N接收到所述上行数据流报文后,根据所述上行数据流报文学习用于处理所述上行数据流报文的资源模块的标识与SF的对应关系,并生成学习记录。
其中,本申请实施例中通过上述步骤的执行,使得所述上行数据流报文中携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。从而,可以使接收到所述上行数据流报文的节点,通过学习,获得所述上行数据流报文中所述携带的内容,以及通过学习,生成对应的学习记录。
本申请实施例中另一种可选的方式,进行上行数据流报文处理的每个节点在接收到上行数据流报文后,可以获取并学习所述上行数据流报文中的用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系;或者进行上行数据流报文处理的每个节点都可以在完成数据流处理后,根据上行数据流报文学习数据流传输过程中,用于处理所述上行数据流报文的资源模块的标识与SF的对应关系。
需要说明的是,当节点不是尾节点时,可以不用执行学习所述对应关系。
S306,进行下行数据流报文处理的头节点(例如,节点N)接收下行数据流报文。
其中,本申请实施例中,图3所示的流程中,假设进行上行数据流报文处理的尾节点为进行下行数据流报文处理的头节点,则所述进行下行数据流处理的头节点为节点N。
另外,本申请实施例中所述节点N在接收到所述下行数据流报文后,从业务链策略中获取SID-List。
S307,所述节点N将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,添加到所述下行数据流报文中。
具体的,确定下行数据流到来后,所述进行下行数据流处理的头节点根据上行数据流报文与下行数据流报文的对应关系,确定所述下行数据流报文对应的学习记录;其中,所述学习记录包含用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系;根据所述学习记录修改所述下行数据流报文。
示例性的,假设所述上行数据流报文在传输过程中,用于传输所述上行数据流报文的SF1中存在3个资源模块,所述三个资源模块的标识分别为HashID1、HashID2和HashID3。其中,选择了所述SF1中的标识为HashID2的资源模块处理所述上行数据流报文,则记录所述SF1与所述标识为HashID2的资源模块的对应关系。当下行数据流到来后,学习所述对应关系,并修改所述下行数据流报文,即在所述下行数据流报文中记载通过SF1处理所述下行数据流报文时,使用标识为HashID2的资源模块。
其中,本申请实施例中一种可选的方式,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;或者所述上行数据流报文的协议与所述下行数据流报文的协议相同。
另外,本申请实施例中所述上行数据流报文的源端口和目的端口,与所述下行数据流报文的源端口和目的端口可能是相反的,也可能不同,具体本申请实施例中并不进行限定。
需要说明的是,本申请实施例中对于所述上行数据流报文的目的地址以及源地址,与所述下行数据流报文的源地址以及目的地址不对应的情况,依旧适用本申请所述方法;对于所述上行数据流报文的协议与所述下行数据流报文的协议不相同的情况,也同样适用本申请所述方法。并且,该步骤中,可以仅当节点是进行下行数据流报文传输的头节点时,学习并将学习到的所述对应关系添加到所述下行数据流报文中,所述业务链中进行下行数据流报文传输的其他节点可以直接使用已添加所述对应关系的报文,无需进行学习。
S308,所述节点N根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块。
本申请实施例中,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
其中,所述节点N通过上述S307的学习以及修改下行数据流报文的过程,使得所述下行数据流报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识。
假设,所述节点N根据SID-List中的目的地址以及所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,将所述下行数据流报文转发给进行下行数据流报文处理的业务链中对应的节点C。
本申请实施例中一种可选的方式,进行下行数据流报文传输的业务链中的节点根据所述下行数据流报文携带的用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,从转发表项对应的至少一个表项中确定选取哪个表项对应的资源模块作为处理所述下行数据流报文的资源模块。
其中,后续接收到所述下行数据流报文的节点重复执行该步骤,直到所述进行下行数据流报文处理的业务链完成所述下行数据流报文处理,即进行下行数据流报文处理的业务链的尾节点接收到所述下行数据流报文。
需要说的是,本申请实施例一种可选的方式,在进行下行数据流传输时,若节点确定当前目的地址下,所述下行数据流报文携带的所述资源模块的标识对应的资源模块故障后,可从所述目的地址对应的剩余资源模块中重新选择一个资源模块处理所述下行数据流报文。本申请实施例一种可选的方式,本申请实施例中所述资源模块的标识可以通过HashID进行表示,所述SID由定位器(locator),功能(function)和参数(arguments)三部分组成,其中本申请实施例中通过Arguments部分表示SF资源模块的HashID,所述Arguments部分还可以包含数据流、业务或者任何其他被Function所需要的信息。
示例性的,本实施例为SF分配格式为Locator:Function:1的SID,则表示指定所述SF中标识为1的资源模块执行该功能。其中,Arguments为0表示未指定执行该功能的资源模块。
其中,因为在进行数据传输过程中,可能会存在多个SF,每个SF中可能会存在多个资源模块,为了有效的确定用于进行传输的资源模块,所述资源模块的标识还可用于标识全网内的一个资源模块,或者所述资源模块的标识可用于标识SF内的一个资源模块,下面根据标识情况的不同,分别进行介绍。
标识情况1:所述资源模块的标识用于标识SF内的一个资源模块。
示例性的,基于图2所示的业务链,为SF的资源模块分配HashID,其中,分配的HashID在SF内唯一。在相连的SFF上配置SF的Service SID、与SF资源模块相连的接口以及HashID。
各SFF通过动态路由协议发布Service SID,携带SF资源模块的HashID。各SFF学习到各SF的Service SID后生成Service SID的转发表项,部分举例如表1~表4所示。
| Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
| A1::1:0/120 | 1 | B1::1 | NNI网络侧接口 |
| 2 | B1::1 | NNI | |
| 3 | B2::1 | NNI |
表1 Access-Leaf生成Service SID转发表项举例
| Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
| A1::1:0/120 | 1 | - | UNI用户侧接口 |
| 2 | - | UNI | |
| 3 | B2::1 | NNI网络侧接口 | |
| A1::2:0/120 | 1 | - | UNI |
| 2 | B2::1 | NNI |
表2 SFF1生成Service SID转发表项举例
| Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
| A1::2:0/120 | 1 | B1::1 | NNI网络侧接口 |
| 2 | - | UNI用户侧接口 | |
| A1::3:0/120 | 1 | B3::1 | NNI |
表3 SFF2生成Service SID转发表项举例
| Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
| A3::2:0/120 | 1 | - | UNI用户侧接口 |
表4 SFF3生成Service SID转发表项举例
标识情况2:所述资源模块的标识用于标识全网内的一个资源模块。
示例性的,基于图2所示的业务链,为SF的资源模块分配HashID,各网络节点生成Service SID的ECMP转发表项,包括本地静态表项和远端动态表项,各表项中记录对应HashID,部分举例如表5~表6所示。
| Prefix前缀 | HashID | SID-List列表 | Type类型 |
| A1::1/128 | 1 | <B1::100> | NNI网络侧接口 |
| 2 | <B1::101> | NNI | |
| 4 | <B2::100> | NNI |
表5 Access-Leaf生成各SF Service SID表项举例
| Prefix前缀 | HashID | SID-List列表 | Type列表 |
| A2::1/128 | 3 | <B1::102> | UNI用户侧接口 |
| 5 | <B2::101> | NNI网络侧接口 |
表6 SFF1生成各SF Service SID表项举例
进一步的,本申请实施例在确定用于处理所述上行数据流报文的资源模块以及所述资源模块的标识后,还确定所述资源模块的标识与SF的对应关系,从而根据唯一标识与SF的对应关系修改所述上行数据流报文。
其中,本申请实施例根据唯一标识与SF的对应关系修改所述上行数据流报文过程中,可以通过下列方式进行修改:
示例性的,本申请实施例将所述对应关系添加到所述上行数据流报文的SRH中。
进一步的,本申请实施例提供了多种将所述对应关系添加到所述SRH的方式,具体并不限于下述几种:
修改方式1:将所述对应关系添加到所述SRH中的段列表中的SID。
也就是说,所述修改方式1是在控制平面对动态路由协议进行拓展。
示例性的,如表7所示,新增Service SID sub-TLV和Service属性(attribute)Sub-sub-TLV。
表7新增Service SID sub-TLV和Service Attribute Sub-sub-TLV
修改方式2:将所述对应关系添加到所述SRH中的可选的TLV字段。
也就是说,所述修改方式2是在控制平面和数据平面分别对动态路由协议进行扩展。
示例性的,如表8所示,对控制平面修改如下:
表8控制平面修改表
如表9所示,对数据平面修改如下:
表9数据平面修改表
为更清楚的对本申请实施例进行介绍,下面基于对数据流报文的不同修改情况,选取 两个例子进行详细介绍。
情况1:上行数据流经SF的资源模块处理后,如图4所示,修改SRH Segment List中对应SID的Arguments字段,记录处理该数据流的资源模块。然后,在Border-Leaf学习上行数据流的关键字与SRH中Segment List的对应关系,并在封装下行数据流报文时,使用从上行数据流报文中学习到的含有效Arguments的SID。网络节点转发下行数据流报文时,如图5所示,识别SID的Arguments字段为HashID,使用Locator:Function和HashID的联合键值查找转发表。
如图6所示,本申请实施例基于上述情况1提供了一种数据流处理的方法,具体步骤如下:
S600,上行数据报文进入Access-Leaf,从业务链策略中获得SID-List。
其中,假设SID-List为{A1::1:0,A2::1:0,A3::1:0,B4::1},所述B4::1为业务链尾节点Border-Leaf的SID。
S601,根据策略封装数据报文。
封装后的报文为(B0::1,A1::1:0)(B4::1,A3::1:0,A2::1:0,A1::1:0;SL=3)。
S602,Access-Leaf在转发表中查询当前目的地址A1::1:0,根据数据流关键字哈希选择HashID为1的表项转发,获得Transit Node B1::1,执行插入(T.Insert)操作,插入SRH(A1::1:0,B1::1;SL=1),最后查目的地址B1::1转发数据报文(B0::1,B1::1)(A1::1:0,B1::1;SL=1)(B4::1,A3::1:0,A2::1:0,A1::1:0;SL=3)。
本申请实施例一种可选的方式中,所述数据流关键字可以为五元组(源IP,目的IP,协议号,源端口号,目的端口号)或者三元组(源IP,目的IP,Flow Label流标签)等。
S603,SFF1接收上行数据报文,根据A1::1:0执行本地转发,选择HashID为1的表项将报文(B0::1,A1::1:0)(A1::1:0,B1::1;SL=0)(B4::1,A3::1:0,A2::1:0,A1::1:0;SL=3)送至SF1的资源模块1。
其中,需要说明的是,本申请实施例中还可选择HashID为2的表项,将所述报文发送至SF1的资源模块2。
S604,SF1的资源模块1接收到上行数据报文,执行对应业务功能后,解除外层SRH封装,同时修改内层SRH[SL]的Arguments段,并返回所述SFF1。
需要说明的是,本申请实施例中,如果SF无修改Segment List中的SID能力,S604也可由SFF1完成。
S605,SFF1根据下一个SID转发报文(B0::1,A2::1:0)(B4::1,A3::1:0,A2::1:0,A1::1:1;SL=2)。
S606,SFF2接收上行数据报文,根据A2::1:0执行本地转发,选择HashID为2的表项将报文(B0::1,A2::1:0)(A2::1:0,B2::1;SL=0)(B4::1,A3::1:0,A2::1:2,A1::1:1;SL=2)送至SF2的资源模块2。
S607,SF2的资源模块2接收到上行数据报文,执行对应业务功能后,解除外层SRH封装,同时修改内层SRH[SL]的Arguments段,并返回所述SFF2。
需要说明的是,本申请实施例中,如果SF无修改Segment List中的SID能力,S606也可由SFF2完成。
S608,SFF2根据下一个SID转发报文(B0::1,A3::1:0)(B4::1,A3::1:0,A2::1:2,A1::1:1;SL=1)。
S609,SFF3接收上行数据报文,根据A3::1:0执行本地转发,选择HashID为1的表 项将报文(B0::1,A3::1:0)(A3::1:0,B3::1;SL=0)(B4::1,A3::1:1,A2::1:2,A1::1:1;SL=1)送至SF3的资源模块1。
S610,SF3的资源模块1接收到上行数据报文,执行对应业务功能后,解除外层SRH封装,同时修改内层SRH[SL]的Arguments段,并返回SFF3。
需要说明的是,本申请实施例中,如果SF无修改Segment List中的SID能力,S608也可由SFF3完成。
S611,SFF3根据下一个SID转发报文(B0::1,B4::1)(B4::1,A3::1:1,A2::1:2,A1::1:1;SL=0)。
S612,Border-Leaf接收上行数据报文,进行数据流键值与SID-List的对应关系{Flow Key,<A1::1:1,A2::1:2,A3::1:1>}的学习。
S613,下行数据流报文进入Border-Leaf,从业务链策略中获得SID-List{A3::1:0,A2::1:0,A1::1:0,B0::1},其中B0::1为业务链尾节点Access-Leaf的SID。
S614,Border-Leaf根据上下行数据流Flow Key的对应关系查找到在S609中学习到的记录{Flow Key,<A1::1:1,A2::1:2,A3::1:1>},以含有Arguments的SID填入SRH,并根据目的地址A3::1:0和HashID 1为关键字查转发表转发报文(B4::1,A3::1:1)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=3)。
S615,SFF3接收下行数据报文,根据目的地址A2::1:0和HashID 2为关键字查转发表转发报文(B4::1,A2::1:2)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=2)。
S616,SFF2接收下行数据报文,根据目的地址A1::1:0和HashID 1为关键字查转发表转发报文(B4::1,A1::1:1)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=1)。
S617,SFF1接收下行数据报文,根据目的地址B0::1为关键字查转发表转发报文(B4::1,B0::1)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=0)。
S618,Access-Leaf接收下行数据报文,解SRH封装后,根据内层Payload的IP或者MAC头转发。
其中,作为业务链的Tail-end可选择学习或者不学习下行数据流的Flow Key与各SF的HashID的对应关系。
本申请实施例一种可选的方式中,当SF的资源模块处理故障时,SFF通过检测机制快速感知后可进行本地的保护切换。如上行流量到达SFF1,而SFF1感知SF1的HashID为1的资源模块故障,可切换至其它ECMP表项,将报文转发给HashID为2的资源模块或经SFF2送到HashID为3的资源模块处理。若下行数据流到达SFF2时,SFF2感知报文中指定HashID的资源模块故障,SFF2可以根据本地策略决定丢弃报文或选择其它可达表项转发报文。
情况2:上行数据流经SF的资源模块处理后,如图7所示,各网络节点在转发上行数据流报文时,将执行处理的资源模块HashID写入SRH的Optional TLV,并逐跳携带到业务链尾节点。尾节点动态学习数据流与处理该流的SF资源模块的对应关系。数据流下行报文进入业务链后,如图8所示,查找处理该数据流上行报文的SF资源模块HashID,并封装在SRH Optional TLV中,网络节点根据SRH中的Service SID和HashID查表转发。
如图9所示,本申请实施例基于上述情况2提供了一种数据流处理的方法,其中,选取业务代理的情况进行介绍,具体步骤如下:
S900,上行数据报文进入Access-Leaf,从业务链策略中获得SID-List。
其中,假设SID-List为{A1::1,A2::1,A3::1,B4::1},所述B4::1为业务链尾节点Border-Leaf的SID。
S901,根据策略封装数据报文。
封装后的报文为(B0::1,A1::1)(B4::1,A3::1,A2::1,A1::1;SL=3)。
S902,Access-Leaf在转发表中查询当前目的地址A1::1,根据数据流关键字哈希选择HashID为1的表项转发报文(B0::1,B1::100)(B4::1,A3::1,A2::1,A1::1;SL=3)。
本申请实施例中一种可选的方式,因表项中SID-List仅包含唯一的SID,若无其它属性需要指定可省略SRH,直接修改IPv6首部的目的地址。
S903,SFF1接收上行数据报文,根据报文的目的地址B1::100执行业务链代理操作。
S904,完成业务代理操作后,恢复所述数据流的SRv6封装,在SRH中填写执行处理的资源模块的资源模块HashID。
例如,在SRH中填写执行SF1处理的资源模块HashID。
其中,当前报文为(B0::1,A2::1)(B4::1,A3::1,A2::1,A1::1;SL=2;<index=3,HashID=1>)。
需要特殊说明的是,填写该HashID的处理除了由SFF1完成之外,也可以由Access-Leaf完成。两者的区别在于,后者填写HashID之后,SFF1因指定资源模块故障,将流量快切到其它资源模块时,需要修改该HashID。前者可避免反复修改HashID。
S905,SFF1根据当前目的地址A2::1第二次转发报文,SFF1哈希到HashID为5的表项转发。
其中,当前报文为(B0::1,B2::101)(B4::1,A3::1,A2::1,A1::1;SL=2;<index=3,HashID=1>)。
S906,SFF2接收上行数据报文,根据报文的目的地址B2::101执行业务链代理操作。
S907,完成业务代理操作后,恢复所述数据流的SRv6封装,在SRH中填写执行处理的资源模块的资源模块HashID。
例如,在SRH中填写执行SF2处理的资源模块HashID。
其中,当前报文为(B0::1,A3::1)(B4::1,A3::1,A2::1,A1::1;SL=1;<index=3,HashID=1>,<index=2,HashID=5>)。
S908,SFF2根据当前目的地址A3::1第三次转发报文,SFF2哈希到HashID为6的表项转发。
其中,当前报文为(B0::1,B3::100)(B4::1,A3::1,A2::1,A1::1;SL=1;<index=3,HashID=1>,<index=2,HashID=5>)。
S909,SFF3接收上行数据报文,根据报文的目的地址B3::100执行业务链代理操作。
S910,完成业务代理操作后,恢复所述数据流的SRv6封装,在SRH中填写执行处理的资源模块的资源模块HashID。
例如,在SRH中填写执行SF3处理的资源模块HashID。
其中,当前报文为(B0::1,B4::1)(B4::1,A3::1,A2::1,A1::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S911,SFF3根据当前目的地址B4::1第三次转发报文。
最终SFF3转发如下数据报文:
(B0::1,B4::1)(B4::1,A3::1,A2::1,A1::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S912,Border-Leaf接收上行数据报文,剥去SRH同时学习数据流关键值与SRH中记 录的SF HashID的对应关系{Flow Key,<A1::1,1>,<A2::1,5>,<A3::1,6>}。
S913,下行数据报文进入Border-Leaf,从业务链策略中获得SID-List{A3::1,A2::1,A1::1,B0::1},其中B0::1为业务链尾节点Access-Leaf的SID。
S914,Border-Leaf根据上下行数据流Flow Key的对应关系查找到在S911中学习到的记录{Flow Key,<A1::1,1>,<A2::1,5>,<A3::1,6>},将SF Service SID的HashID封装在SRH中:
(B4::1,A3::1)(B0::1,A1::1,A2::1,A3::1;SL=3;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S915,Border-Leaf在转发表中以目的地址A3::1和HashID 6为复合键值查询转发表转发报文:
(B4::1,B3::100)(B0::1,A1::1,A2::1,A3::1;SL=3;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S916,SFF3接收下行数据报文,根据报文目的地址B3::100执行业务链代理操作。
其中,所述下行数据流报文从所述目的地址B3::100返回后(例如,所述下行数据流报文从SF3返回),恢复其SRv6封装:
(B4::1,A2::1)(B0::1,A1::1,A2::1,A3::1;SL=2;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S917,SFF3从报文中获得目的地址A2::100及HashID 5,并以二者为复合键值查询转发报文:
(B4::1,B2::101)(B0::1,A1::1,A2::1,A3::1;SL=2;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S918,SFF2接收下行数据报文,根据报文目的地址B2::101执行业务链代理操作。
其中,所述下行数据流报文从所述目的地址B2::101返回后(例如,所述下行数据流报文从SF2返回),恢复其SRv6封装:
(B4::1,A1::1)(B0::1,A1::1,A2::1,A3::1;SL=1;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S919,SFF2从报文中获得目的地址A1::100及HashID 1,并以二者为复合键值查询转发报文:
(B4::1,B1::100)(B0::1,A1::1,A2::1,A3::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S920,SFF1接收下行数据报文,根据报文目的地址B1::100执行业务链代理操作。
其中,所述下行数据流报文从所述目的地址B1::100返回后(例如,所述下行数据流报文从SF1返回),恢复其SRv6封装:
(B4::1,B0::1)(B0::1,A1::1,A2::1,A3::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S921,SFF1从报文中获得目的地址B0::1,并转发报文:
(B4::1,B0::1)(B0::1,A1::1,A2::1,A3::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S922,Access-Leaf接收下行数据报文,解SRH封装后,根据内层Payload的IP或者MAC头转发。
其中,所述Access-Leaf作为业务链的Tail-end可选择学习或者不学习下行数据流的Flow Key与各SF的HashID的对应关系。
本申请实施例一种可选的方式中,当SF的资源模块处理故障时,SFF/SFC Proxy通过检测机制快速感知后可进行本地的保护切换。如上行流量到达SFF1,而SFF1感知SF1的HashID为1的资源模块故障,可继续查询本地FIB,将报文转发给HashID为2的资源模块或经SFF2送到HashID为4的资源模块处理。若下行数据流到达SFF2时,SFF2感知SF2 HashID为5的资源模块故障,SFF2可以根据本地策略决定丢弃报文或选择本地其它可达表项转发报文。
通过上述对本申请方案的介绍,可以理解的是,上述实现各设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图10所示,本申请一种数据流处理的装置,该装置包括处理器1000、存储器1010和收发机1020;
处理器1000负责管理总线架构和通常的处理,存储器1010可以存储处理器1000在执行操作时所使用的数据。收发机1020用于在处理器1000的控制下接收和发送数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1010代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1000负责管理总线架构和通常的处理,存储器1010可以存储处理器1000在执行操作时所使用的数据。
本申请实施例揭示的流程,可以应用于处理器1000中,或者由处理器1000实现。在实现过程中,信号处理流程的各步骤可以通过处理器1000中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1000可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1010,处理器1000读取存储器1010中的信息,结合其硬件完成信号处理流程的步骤。
具体地,处理器1000,用于读取存储器1001中的程序并执行如图3所示的S300-S308中的方法流程;或执行例如图6所示的S600-S618中的方法流程;或执行例如图9所示的S900-S922中的方法流程。
如图11所示,本申请提供一种数据流处理的装置,该装置包括:
通信单元1100,用于接收上行数据流报文;
处理单元1101,确定用于处理所述上行数据流报文的资源模块以及所述资源模块的标 识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据流报文包括用于处理所述上行数据流报文的资源模块的标识;
通信单元1100,还用于发送修改后的所述上行数据流报文。
可选地,当所述装置运行时,所述处理单元可以执行如图3所示的S300-S305中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行处理的方法流程,所述通信单元可以执行如图3所示的S300~S305中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图6所示的S600-S612中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行处理的方法流程,所述通信单元可以执行如图6所示的S600~S612中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图9所示的S900-S912中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行处理的方法流程,所述通信单元可以执行如图9所示的S900~S912中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行接收和/或转发的方法流程。
一种可选的实施方式,所述处理单元1101具体用于:
根据接收到的所述上行数据流报文,确定处理所述上行数据流报文的目的地址;从所述目的地址对应的资源模块中确定用于处理所述上行数据流报文的资源模块以及用于处理所述上行数据流报文的资源模块的标识。
一种可选的实施方式,修改后的所述上行数据流报文中携带所述资源模块的标识与业务功能SF的对应关系。
一种可选的实施方式,所述处理单元1101具体用于:
将所述对应关系添加到所述上行数据流报文的SRH中。
一种可选的实施方式,所述处理单元1101具体用于:
将所述对应关系添加到所述SRH中的段列表中的SID;或将所述对应关系添加到所述SRH中的可选的TLV字段。
一种可选的实施方式,所述处理单元1101具体用于:
根据所述目的地址查找转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;
从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
一种可选的实施方式,所述处理单元1101还用于:
接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;
根据所述协议报文生成所述转发表项。
一种可选的实施方式,所述协议报文中还携带下列中的部分或全部:
服务段标识SID类型;资源数量ResourceWeight;段路由互联网协议第6版SRv6服务功能Service Function。
一种可选的实施方式,所述资源模块的标识为所述资源模块在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为所述资源模块在SF内的唯一标识。
一种可选的实施方式,所述处理单元1101还用于:
接收下行数据流报文,其中,所述下行数据流报文中携带所述用于处理所述上行数据 流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
一种可选的实施方式,所述处理单元1101具体用于:
根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;
根据所述目的地址以及所述用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
一种可选的实施方式,所述处理单元1101还用于:
将所述用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
上述图11所示的通信单元1100和处理单元1101的功能可以由处理器1000运行存储器1010中的程序执行,或者由处理器1000单独执行。
如图12所示,本申请一种数据流处理的装置,该装置包括处理器1200、存储器1210和收发机1220;
处理器1200负责管理总线架构和通常的处理,存储器1210可以存储处理器1200在执行操作时所使用的数据。收发机1220用于在处理器1200的控制下接收和发送数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器1200代表的一个或多个处理器和存储器1210代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1200负责管理总线架构和通常的处理,存储器1210可以存储处理器1200在执行操作时所使用的数据。
本申请实施例揭示的流程,可以应用于处理器1200中,或者由处理器1200实现。在实现过程中,信号处理流程的各步骤可以通过处理器1200中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1200可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1210,处理器1200读取存储器1210中的信息,结合其硬件完成信号处理流程的步骤。
具体地,处理器1200,用于读取存储器1201中的程序并执行如图3所示的S300-S308中的方法流程;或执行例如图6所示的S600-S618中的方法流程;或执行例如图9所示的S900-S922中的方法流程。
如图13所示,本申请提供一种数据流处理的装置,该装置包括:
通信单元1300,用于接收下行数据流报文,其中,所述下行数据报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;
处理单元1301,用于根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
可选地,当所述装置运行时,所述处理单元可以执行如图3所示的S306-S308中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行处理的方法流程,所述通信单元可以执行如图3所示的S306~S308中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图6所示的S613-S618中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行处理的方法流程,所述通信单元可以执行如图6所示的S613~S618中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图9所示的S913-S922中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行处理的方法流程,所述通信单元可以执行如图9所示的S913~S922中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行接收和/或转发的方法流程。
一种可选的实施方式,所述处理单元1301还用于:
接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;
根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
一种可选的实施方式,所述处理单元1301之前还用于:
根据所述上行数据流报文与所述下行数据流报文的对应关系,确定所述学习记录;
将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中。
一种可选的实施方式,所述处理单元1301具体用于:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
一种可选的实施方式,所述处理单元1301具体用于:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或,
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的可选的类型长度值TLV字段。
一种可选的实施方式,所述处理单元1301具体用于:
根据目的地址,确定SF对应的资源模块;根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
一种可选的实施方式,所述处理单元1301还用于:
确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
一种可选的实施方式,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资 源模块在SF内的唯一标识。
上述图13所示的通信单元1300和处理单元1301的功能可以由处理器1200运行存储器1210中的程序执行,或者由处理器1200单独执行。
本申请实施例还提供一种数据流处理的系统,该系统包括:第一节点、第二节点等;
所述第一节点可以是如图3或图6,再或者图9所示的进行上行数据流报文传输的节点;所述第二节点可以是如图3或图6,再或者图9所示的进行下行数据流报文传输的节点。
当所述系统运行时,所述第一节点可以执行例如图3所示的S300-S308中进行上行数据流报文传输时节点执行的方法流程;或执行例如图6所示的S600-S618中进行上行数据流报文传输时节点执行的方法流程;或执行例如图9所示的S900-S922中进行上行数据流报文传输时节点执行的方法流程,在此不进行赘述。
所述第二节点可以执行如图3所示的S300-S308中进行下行数据流报文传输时节点执行的方法流程;或执行例如图6所示的S600-S618中进行下行数据流报文传输时节点执行的方法流程;或执行例如图9所示的S900-S922中进行下行数据流报文传输时节点执行的方法流程,在此不进行赘述。
在一些可能的实施方式中,本申请实施例提供的数据流处理的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序代码在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书中描述的根据本申请各种示例性实施方式的数据流处理的方法中的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
根据本申请的实施方式的用于数据流处理的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在服务器设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被数据流处理装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由周期网络动作系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程 式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备。
本申请实施例针对数据流处理的方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当所述程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本申请实施例上面任何一种数据流处理的方案。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (43)
- 一种数据流处理方法,其特征在于,包括:接收上行数据流报文;确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据报文包括所述用于处理所述上行数据流报文的资源模块的标识;发送修改后的所述上行数据流报文。
- 如权利要求1所述的方法,其特征在于,所述确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识,包括:根据接收到的所述上行数据流报文,确定处理所述上行数据流报文的目的地址;从所述目的地址对应的资源模块中确定所述用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
- 如权利要求1或2所述的方法,其特征在于,修改后的所述上行数据流报文中携带所述资源模块的标识与业务功能SF的对应关系。
- 如权利要求3所述的方法,其特征在于,所述修改所述上行数据流报文,包括:将所述对应关系添加到所述上行数据流报文的段路由报头SRH中。
- 如权利要求4所述的方法,其特征在于,所述将所述对应关系添加到所述上行数据流报文的SRH中,包括:将所述对应关系添加到所述SRH中的段列表中的段路由标识SID;或将所述对应关系添加到所述SRH中的可选的类型长度值TLV字段。
- 如权利要求2~5任一项所述的方法,其特征在于,所述从所述目的地址对应的资源模块中确定所述用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识,包括:根据所述目的地址查找转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
- 如权利要求6所述的方法,其特征在于,还包括:接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;根据所述协议报文生成所述转发表项。
- 如权利要求1~7任一项所述的方法,其特征在于,所述资源模块的标识用于在所述资源模块所属的业务功能SF内唯一标识所述资源模块,或者,所述资源模块的标识用于在处理数据流的所有SF内唯一标识所述资源模块。
- 如权利要求1~8任一项所述的方法,其特征在于,所述将修改后的所述上行数据流报文进行转发之后,所述方法还包括:接收下行数据流报文,其中,所述下行数据流报文中携带所述用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
- 如权利要求9所述的方法,其特征在于,根据所述资源模块的标识确定用于处理所述下行数据流报文的资源模块,包括:根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;根据所述目的地址以及所述用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
- 如权利要求9所述的方法,其特征在于,根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块之前,还包括:将所述用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
- 一种数据流处理方法,其特征在于,包括:接收下行数据流报文,其中,所述下行数据流报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
- 如权利要求12所述的方法,其特征在于,所述接收下行数据流报文之前,所述方法还包括:接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
- 如权利要求13所述的方法,其特征在于,所述接收所述下行数据流报文之后,所述方法还包括:根据所述上行数据流报文与所述下行数据流报文的对应关系,确定所述学习记录;将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中。
- 如权利要求14所述的方法,其特征在于,将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中,包括:将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
- 如权利要求15所述的方法,其特征在于,将所述对应关系添加到所述下行数据流报文的SRH中,包括:将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的可选的类型长度值TLV字段。
- 如权利要求13~16任一项所述的方法,其特征在于,根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,包括:根据目的地址,确定SF对应的资源模块;根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
- 如权利要求17所述的方法,其特征在于,所述方法还包括:确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
- 如权利要求12~18任一项所述的方法,其特征在于,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
- 一种数据流处理的装置,其特征在于,包括:处理单元和通信单元;所述通信单元,用于接收上行数据流报文;所述处理单元,确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据流报文包括所述用于处理所述上行数据流报文的资源模块的标识;所述通信单元,还用于发送修改后的所述上行数据流报文。
- 如权利要求20所述的装置,其特征在于,所述处理单元具体用于:根据接收到的所述上行数据流报文,确定用于处理所述上行数据流报文的目的地址;从所述目的地址对应的资源模块中确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
- 如权利要求20或21所述的装置,其特征在于,修改后的所述上行数据流报文中携带所述资源模块的标识与业务功能SF的对应关系。
- 如权利要求22所述的装置,其特征在于,所述处理单元具体用于:将所述对应关系添加到所述上行数据流报文的段路由报头SRH中。
- 如权利要求23所述的装置,其特征在于,所述处理单元具体用于:将所述对应关系添加到所述SRH中的段列表中的段路由标识SID;或将所述对应关系添加到所述SRH中的可选的类型长度值TLV字段。
- 如权利要求21~24任一项所述的装置,其特征在于,所述处理单元具体用于:根据所述目的地址确定转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
- 如权利要求25所述的装置,其特征在于,所述处理单元还用于:接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;根据所述协议报文生成所述转发表项。
- 如权利要求21~26任一项所述的装置,其特征在于,所述资源模块的标识为所述资源模块在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和 /或所述资源模块的标识为所述资源模块在SF内的唯一标识。
- 如权利要求21~27任一项所述的装置,其特征在于,所述处理单元还用于:接收下行数据流报文,其中,所述下行数据流报文中携带用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
- 如权利要求28所述的装置,其特征在于,所述处理单元具体用于:根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;根据所述目的地址以及所述用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
- 如权利要求28所述的装置,其特征在于,所述处理单元还用于:将所述用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
- 一种数据流处理的装置,其特征在于,包括:处理单元和通信单元;所述通信单元,用于接收下行数据流报文,其中,所述下行数据报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;所述处理单元,用于根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
- 如权利要求31所述的装置,其特征在于,所述接收下行数据流报文之前,所述处理单元还用于:接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
- 如权利要求32所述的装置,其特征在于,所述处理单元还用于:根据所述上行数据流报文与所述下行数据流报文的对应关系,确定所述学习记录;将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,添加到所述下行数据流报文中。
- 如权利要求33所述的装置,其特征在于,所述处理单元具体用于:将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
- 如权利要求34所述的装置,其特征在于,所述处理单元具体用于:将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系添加到所述SRH中的可选的类型长度值TLV字段。
- 如权利要求32~35任一项所述的装置,其特征在于,所述处理单元具体用于:根据目的地址,确定SF对应的资源模块;根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
- 如权利要求36所述的装置,其特征在于,所述处理单元还用于:确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
- 如权利要求31~37任一项所述的装置,其特征在于,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
- 一种数据流处理的装置,其特征在于,包括:至少一个处理器;其中,所述至少一个处理器用于与存储器耦合,并读取所述存储器中存储的计算机指令,根据所述计算机指令执行如权利要求1~11中任一所述的方法步骤。
- 一种数据流处理的装置,其特征在于,包括:至少一个处理器;其中,所述至少一个处理器用于与存储器耦合,并读取所述存储器中存储的计算机指令,根据所述计算机指令执行如权利要求12~19中任一所述的方法步骤。
- 一种数据流处理的系统,其特征在于,包括:第一节点和第二节点;所述第一节点是如权利要求20-30任一项所述的装置,所述第二节点是如权利要求31-38任一项所述的装置。
- 一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在装置上运行时,使得第一节点执行如权利要求1~11中任一所述的方法步骤;或使得第二节点执行如权利要求12~19中任一所述的方法步骤。
- 一种计算机程序产品,其特征在于,包含有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至11中任一项所述的方法;或执行如权利要求12至19中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP20923270.1A EP4102784B1 (en) | 2020-03-05 | 2020-12-30 | Data stream processing method and device |
| US17/902,182 US20230006921A1 (en) | 2020-03-05 | 2022-09-02 | Data stream processing method and apparatus |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010148537.8A CN113364676B (zh) | 2020-03-05 | 2020-03-05 | 一种数据流处理的方法及装置 |
| CN202010148537.8 | 2020-03-05 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/902,182 Continuation US20230006921A1 (en) | 2020-03-05 | 2022-09-02 | Data stream processing method and apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021174986A1 true WO2021174986A1 (zh) | 2021-09-10 |
Family
ID=77523781
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2020/141750 Ceased WO2021174986A1 (zh) | 2020-03-05 | 2020-12-30 | 一种数据流处理的方法及装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20230006921A1 (zh) |
| EP (1) | EP4102784B1 (zh) |
| CN (1) | CN113364676B (zh) |
| WO (1) | WO2021174986A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111930757B (zh) * | 2020-09-24 | 2021-01-12 | 南京中兴软件有限责任公司 | 数据处理方法、系统、封装节点和解封装节点 |
| CN116366592B (zh) * | 2023-03-07 | 2025-10-31 | 烽火通信科技股份有限公司 | 一种srv6 sfc双栈的实现方法及装置 |
| CN119299200B (zh) * | 2024-10-23 | 2025-09-30 | 杭州安恒信息技术股份有限公司 | 一种数据流转处理方法、装置、设备及存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
| CN103916719A (zh) * | 2013-01-06 | 2014-07-09 | 中兴通讯股份有限公司 | 操作管理维护消息优先发送方法、装置及系统 |
| WO2014205660A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 一种转发数据包的方法、装置和路由设备 |
| WO2016150020A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | 基于调度流标识的报文调度方法和装置 |
| US20180310287A1 (en) * | 2015-12-29 | 2018-10-25 | Huawei Technologies Co., Ltd. | Terminal device, network device, data transmission method, and wireless communications system |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104469845B (zh) * | 2013-09-18 | 2019-05-10 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
| US20170093698A1 (en) * | 2015-09-30 | 2017-03-30 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting service function chaining in a communication network |
| US10084703B2 (en) * | 2015-12-04 | 2018-09-25 | Cisco Technology, Inc. | Infrastructure-exclusive service forwarding |
| US10164875B2 (en) * | 2016-02-22 | 2018-12-25 | Cisco Technology, Inc. | SR app-segment integration with service function chaining (SFC) header metadata |
| CN113055290B (zh) * | 2016-07-01 | 2022-12-06 | 华为技术有限公司 | 基于业务功能链sfc的报文转发方法、装置和系统 |
| US10567276B2 (en) * | 2016-08-05 | 2020-02-18 | Huawei Technologies Co., Ltd. | Virtual network pre-configuration in support of service-based traffic forwarding |
| US20190140863A1 (en) * | 2017-11-06 | 2019-05-09 | Cisco Technology, Inc. | Dataplane signaled bidirectional/symmetric service chain instantiation for efficient load balancing |
| JP7056626B2 (ja) * | 2019-04-09 | 2022-04-19 | 日本電信電話株式会社 | 通信システム及び通信方法 |
-
2020
- 2020-03-05 CN CN202010148537.8A patent/CN113364676B/zh active Active
- 2020-12-30 WO PCT/CN2020/141750 patent/WO2021174986A1/zh not_active Ceased
- 2020-12-30 EP EP20923270.1A patent/EP4102784B1/en active Active
-
2022
- 2022-09-02 US US17/902,182 patent/US20230006921A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
| CN103916719A (zh) * | 2013-01-06 | 2014-07-09 | 中兴通讯股份有限公司 | 操作管理维护消息优先发送方法、装置及系统 |
| WO2014205660A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 一种转发数据包的方法、装置和路由设备 |
| WO2016150020A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | 基于调度流标识的报文调度方法和装置 |
| US20180310287A1 (en) * | 2015-12-29 | 2018-10-25 | Huawei Technologies Co., Ltd. | Terminal device, network device, data transmission method, and wireless communications system |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4102784A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113364676A (zh) | 2021-09-07 |
| US20230006921A1 (en) | 2023-01-05 |
| EP4102784A4 (en) | 2023-07-19 |
| CN113364676B (zh) | 2023-05-02 |
| EP4102784A1 (en) | 2022-12-14 |
| EP4102784B1 (en) | 2025-05-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3863240B1 (en) | Method for forwarding packet in hybrid network, device, and system | |
| US12468657B2 (en) | Message forwarding method and apparatus based on remote direct data storage, and network card and device | |
| CN111510386B (zh) | 用于处理报文的方法和装置 | |
| CN112953831A (zh) | 一种报文转发方法及装置 | |
| JP2022550343A (ja) | Srネットワークでパケットを転送する方法、デバイス、及びシステム | |
| US10461958B2 (en) | Packet transmission method and apparatus | |
| US20220345404A1 (en) | Packet sending method, routing entry generation method, apparatus, and storage medium | |
| US20240187346A1 (en) | Systems and methods for scalable validation of multiple paths in a network using segment routing | |
| WO2018032961A1 (zh) | 一种管理信息的方法,装置及系统 | |
| WO2021238741A1 (zh) | 报文转发方法、系统、设备、节点设备和存储介质 | |
| WO2021174986A1 (zh) | 一种数据流处理的方法及装置 | |
| US12381820B2 (en) | Data processing method and system, encapsulation node, and de-encapsulation node | |
| CN114285907B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
| CN117615017A (zh) | 算力请求方法、装置及系统 | |
| WO2022111666A1 (zh) | 一种路由通告方法、装置及系统 | |
| KR20200136516A (ko) | Sfc 네트워크에서 토폴로지 정보를 동기화하기 위한 방법, 및 라우팅 네트워크 엘리먼트 | |
| WO2022134674A1 (zh) | 报文传输的方法、装置、设备、存储介质及系统 | |
| CN114374666B (zh) | 一种报文转发方法、装置、电子设备及存储介质 | |
| Geissler et al. | Tablevisor 2.0: Towards full-featured, scalable and hardware-independent multi table processing | |
| CN108353017B (zh) | 计算系统和用于操作多网关虚拟机上的多个网关的方法 | |
| CN116389356B (zh) | 一种跨可用区的通信方法及相关装置及云网络 | |
| CN116055446B (zh) | 跨网络的报文转发方法、电子设备及机器可读存储介质 | |
| CN117596205A (zh) | 报文处理方法、装置、电子设备及可读介质 | |
| CN113918326B (zh) | 一种处理请求的方法及装置 | |
| CN117768388A (zh) | 在OpenStack下应用虚拟路由器的装置和方法 |
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: 20923270 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2020923270 Country of ref document: EP Effective date: 20220907 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 2020923270 Country of ref document: EP |


