CN114285907A - Data transmission method and device, electronic equipment and storage medium - Google Patents

Data transmission method and device, electronic equipment and storage medium Download PDF

Info

Publication number
CN114285907A
CN114285907A CN202111470049.XA CN202111470049A CN114285907A CN 114285907 A CN114285907 A CN 114285907A CN 202111470049 A CN202111470049 A CN 202111470049A CN 114285907 A CN114285907 A CN 114285907A
Authority
CN
China
Prior art keywords
data
data message
vas
sid
node
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.)
Granted
Application number
CN202111470049.XA
Other languages
Chinese (zh)
Other versions
CN114285907B (en
Inventor
庞冉
王光全
曹畅
张学茹
朱琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202111470049.XA priority Critical patent/CN114285907B/en
Publication of CN114285907A publication Critical patent/CN114285907A/en
Application granted granted Critical
Publication of CN114285907B publication Critical patent/CN114285907B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The application provides a data transmission method, a data transmission device, electronic equipment and a storage medium, relates to the technical field of communication, and is used for providing value-added service capability for user services as required. The method comprises the following steps: acquiring a first data message; determining at least two second data messages according to the first data message; wherein the SL values of the at least two second data messages are different from the SL values of the first data message; the SL values of the second data messages in the at least two second data messages are different; and forwarding the corresponding second data message or the original data message to the node corresponding to each second data message or processing the second data message according to the SID indicated by the SL value in each second data message. The method and the device are used in the data transmission process.

Description

Data transmission method and device, electronic equipment and storage medium
Technical Field
The present application relates to the field of communications technologies, and in particular, to a data transmission method and apparatus, an electronic device, and a storage medium.
Background
In the related art, only the serial VAS service is supported in a Service Function Chain (SFC) scene based on Segment Routing Internet Protocol Version 6 (SRv 6). The serial VAS service means that the data message is forwarded sequentially through each VAS node, and each VAS node performs corresponding data processing on the data message to realize VAS node-related value-added service. In the serial VAS service, a data packet to be transmitted needs to be processed by a VAS node, which will affect the time delay, service performance, and reliability of the service. Therefore, in the value added service scenario without the necessity of serial processing, how to provide the value added service capability for the user service as required becomes a problem that needs to be solved at present.
Disclosure of Invention
The application provides a data transmission method, a data transmission device, electronic equipment and a storage medium, which can provide value-added service capability for user services as required.
In a first aspect, a data transmission method is provided, including: acquiring a first data message; the first data packet includes: the values of segment routing extension message headers SRH and SL and an original data message; the SRH comprises a plurality of SIDs, and the SIDs comprise SIDs corresponding to N-1 value-added service VAS nodes and a post SID; n is an integer greater than or equal to 2; the value of SL is used to indicate the number of SIDs that need to be processed to reach the destination node; the SID corresponding to the VAS node is any one of the following items: the SID of the VAS node or the SID of the Proxy corresponding to the VAS node; determining at least two second data messages according to the first data message; wherein the SL values of the at least two second data packets are different from the SL value of the first data packet; the SL values of the second data messages in the at least two second data messages are different; and forwarding the corresponding second data message to the node corresponding to each second data message or processing the second data message according to the SID indicated by the SL value in each second data message.
With reference to the first aspect, in a possible implementation manner, the first data packet includes a first field, where the first field is used to indicate that the first data packet is copied; determining at least two second data packets according to the first data packet, including: copying the first data message according to the first field to obtain at least two first data messages; and adjusting the SL value of each first data message in the at least two first data messages respectively, and determining the at least two second data messages.
With reference to the first aspect, in a possible implementation manner, the first field is specifically configured to indicate that N-1 first data packets are copied.
With reference to the first aspect, in a possible implementation manner, the at least two first data packets are N first data packets; the at least two second data packets are N second data packets.
With reference to the first aspect, in a possible implementation manner, the values of SL in the N first data messages are all M, where M is a positive integer greater than or equal to N.
With reference to the first aspect, in a possible implementation manner, a value of SL of an ith data packet in the N second data packets is M-i, where i is a positive integer less than or equal to N; when i is smaller than N, the value of SL of the ith data message is used for indicating SID corresponding to the ith VAS node in the N-1 VAS nodes; and when i is equal to N, the value of SL of the ith data message is used for indicating the postSID.
With reference to the first aspect, in a possible implementation manner, the SID corresponding to the VAS node is a VAS SID; the forwarding, according to the SID indicated by the value of the SL in each second data message, the corresponding second data message to the node corresponding to each second data message includes: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is the VAS SID of the ith VAS node; and sending the ith second data message to the ith VAS node.
With reference to the first aspect, in a possible implementation manner, when i is less than N, an i-th VAS SID in an SRH in the i-th second data packet includes a second field; the second field is used for indicating that the VAS node does not need to forward the data message carrying the second field.
With reference to the first aspect, in a possible implementation manner, the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node; the processing the second data message according to the SID indicated by the value of the SL in each second data message includes: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is a Proxy SID corresponding to the ith VAS node; processing the ith second data message; and sending the processed second data message to the ith VAS node.
With reference to the first aspect, in a possible implementation manner, when i is less than N, a SID of a Proxy corresponding to an ith VAS node in an SRH in the ith second data message includes a third field; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
With reference to the first aspect, in a possible implementation manner, the first field is specifically configured to indicate that 1 first data packet is copied.
With reference to the first aspect, in a possible implementation manner, the at least two first data packets are two first data packets; the at least two second data packets are two second data packets.
With reference to the first aspect, in a possible implementation manner, the values of SL in the two first data messages are both M, where M is a positive integer greater than or equal to N.
With reference to the first aspect, in a possible implementation manner, a value of SL in a first second data message of the two second data messages is M-1; the value of SL in the second data packet is M-N; the value of SL in the first second data message is used to indicate the SID corresponding to the 1 st VAS node of the N-1 VAS nodes; the value of SL in the second data message is used to indicate the postsid.
With reference to the first aspect, in a possible implementation manner, the SID corresponding to the VAS node is the VAS SID.
With reference to the first aspect, in a possible implementation manner, the 1 st VAS node to the N-2 nd VAS SID in the SRH in the first second data message include a fourth field; the fourth field is used for indicating a VAS node to perform SL minus 1 operation on the data message carrying the fourth field, determining a SID indicated by the SL value after the minus 1 operation, and sending the data message carrying the fourth field after the SL-1 operation to the node indicated by the SL value after the minus 1 operation; the (N-1) th VAS SID in the SRH in the first data message comprises a second field; and the second field of the VAS node is used for indicating that the VAS node does not need to forward the data message carrying the second field.
With reference to the first aspect, in a possible implementation manner, the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node.
With reference to the first aspect, in a possible implementation manner, the SID of the Proxy corresponding to the 1 st VAS node to the N-2 th VAS node in the SRH in the first second data message includes a fifth field; the fifth field is used for indicating the Proxy to send the processed second data message to the corresponding VAS node and returning a third data message to the service function forwarder SFF, wherein the third data message is determined by the VAS node corresponding to the Proxy according to the processed second data message; the (N-1) th VAS SID in the SRH in the first data message comprises a third field; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
With reference to the first aspect, in a possible implementation manner, the method further includes: receiving the third data message from the Proxy; adding the SRH of the first second data message into the third data message, and subtracting 1 from the value of the SL in the SRH of the first second data message to obtain a fourth data message; determining a SID indicated by a value of SL in the fourth data packet; and sending the fourth data message to a Proxy corresponding to the SID indicated by the SL value in the fourth data message.
With reference to the first aspect, in a possible implementation manner, the first field is carried in an SFF SID of the first data packet.
With reference to the first aspect, in a possible implementation manner, the first field is specifically carried in a Function field of an SFF SID of the first data packet.
With reference to the first aspect, in a possible implementation manner, the first field is specifically carried in an alignment field of the SFF SID of the first data packet.
In a second aspect, a data transmission apparatus is provided, including: a communication unit and a processing unit; the communication unit is used for acquiring a first data message; the first data packet includes: the values of segment routing extension message headers SRH and SL and an original data message; the SRH comprises a plurality of SIDs, and the SIDs comprise SIDs corresponding to N-1 value-added service VAS nodes and a post SID; n is an integer greater than or equal to 2; the value of SL is used to indicate the number of SIDs that need to be processed to reach the destination node; the SID corresponding to the VAS node is any one of the following items: the SID of the VAS node or the SID of the Proxy corresponding to the VAS node; the processing unit is used for determining at least two second data messages according to the first data message; wherein the SL values of the at least two second data packets are different from the SL value of the first data packet; the SL values of the second data messages in the at least two second data messages are different; the processing unit is further configured to forward the corresponding second data packet to a node corresponding to each second data packet or process the second data packet according to the SID indicated by the value of the SL in each second data packet.
With reference to the second aspect, in a possible implementation manner, the first data packet includes a first field, where the first field is used to indicate that the first data packet is copied; the processing unit is specifically configured to: copying the first data message according to the first field to obtain at least two first data messages; and adjusting the SL value of each first data message in the at least two first data messages respectively, and determining the at least two second data messages.
With reference to the second aspect, in a possible implementation manner, the first field is specifically configured to indicate that N-1 first data packets are copied.
With reference to the second aspect, in a possible implementation manner, the at least two first data packets are N first data packets; the at least two second data packets are N second data packets.
With reference to the second aspect, in a possible implementation manner, the values of SL in the N first data messages are all M, where M is a positive integer greater than or equal to N.
With reference to the second aspect, in a possible implementation manner, a value of SL of an ith data packet in the N second data packets is M-i, where i is a positive integer less than or equal to N; when i is smaller than N, the value of SL of the ith data message is used for indicating SID corresponding to the ith VAS node in the N-1 VAS nodes; and when i is equal to N, the value of SL of the ith data message is used for indicating the postSID.
With reference to the second aspect, in a possible implementation manner, the SID corresponding to the VAS node is a VAS SID; the processing unit is specifically configured to: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is the VAS SID of the ith VAS node; and instructing the communication unit to send the ith second data message to the ith VAS node.
With reference to the second aspect, in a possible implementation manner, when i is less than N, an i-th VAS SID in an SRH in the i-th second data packet includes a second field; the second field is used for indicating that the VAS node does not need to forward the data message carrying the second field.
With reference to the second aspect, in a possible implementation manner, the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node; the processing unit is specifically configured to: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is a Proxy SID corresponding to the ith VAS node; processing the ith second data message; and instructing the communication unit to send the processed second data message to the ith VAS node.
With reference to the second aspect, in a possible implementation manner, when i is less than N, a Proxy SID corresponding to an ith VAS node in an SRH in the ith second data message includes a third field; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
With reference to the second aspect, in a possible implementation manner, the first field is specifically configured to indicate that 1 first data packet is copied.
With reference to the second aspect, in a possible implementation manner, the at least two first data packets are two first data packets; the at least two second data packets are two second data packets.
With reference to the second aspect, in a possible implementation manner, the values of SL in the two first data messages are both M, where M is a positive integer greater than or equal to N.
With reference to the second aspect, in a possible implementation manner, a value of SL in a first second data message of the two second data messages is M-1; the value of SL in the second data packet is M-N; the value of SL in the first second data message is used to indicate the SID corresponding to the 1 st VAS node of the N-1 VAS nodes; the value of SL in the second data message is used to indicate the postsid.
With reference to the second aspect, in a possible implementation manner, the SID corresponding to the VAS node is the VAS SID.
With reference to the second aspect, in a possible implementation manner, the 1 st VAS node to the N-2 nd VAS SID in the SRH in the first second data message include a fourth field; the fourth field is used for indicating a VAS node to perform SL minus 1 operation on the data message carrying the fourth field, determining a SID indicated by the SL value after the minus 1 operation, and sending the data message carrying the fourth field after the SL-1 operation to the node indicated by the SL value after the minus 1 operation; the (N-1) th VAS SID in the SRH in the first data message comprises a second field; and the second field of the VAS node is used for indicating that the VAS node does not need to forward the data message carrying the second field.
With reference to the second aspect, in a possible implementation manner, the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node.
With reference to the second aspect, in a possible implementation manner, the SID of the Proxy corresponding to the 1 st VAS node to the N-2 th VAS node in the SRH in the first second data message includes a fifth field; the fifth field is used for indicating the Proxy to send the processed second data message to the corresponding VAS node and returning a third data message to the service function forwarder SFF, wherein the third data message is determined by the VAS node corresponding to the Proxy according to the processed second data message; the (N-1) th VAS SID in the SRH in the first data message comprises a third field; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
With reference to the second aspect, in a possible implementation manner, the processing unit is further configured to: instructing the communication unit to receive the third data packet from the Proxy; adding the SRH of the first second data message into the third data message, and subtracting 1 from the value of the SL in the SRH of the first second data message to obtain a fourth data message; determining a SID indicated by a value of SL in the fourth data packet; and instructing the communication unit to send the fourth data message to a Proxy corresponding to the SID indicated by the SL value in the fourth data message.
With reference to the second aspect, in a possible implementation manner, the first field is carried in an SFF SID of the first data packet.
With reference to the second aspect, in a possible implementation manner, the first field is specifically carried in a Function field of an SFF SID of the first data packet.
With reference to the second aspect, in a possible implementation manner, the first field is specifically carried in an alignment field of the SFF SID of the first data packet.
In a third aspect, the present application provides a data transmission apparatus, including: a processor and a communication interface; the communication interface is coupled to a processor for executing a computer program or instructions for implementing the data transmission method as described in the first aspect and any one of the possible implementations of the first aspect.
In a fourth aspect, the present application provides a computer-readable storage medium having instructions stored therein, which when executed by a processor of a data transmission apparatus, enable the data transmission apparatus to perform the data transmission method as described in the first aspect and any one of the possible implementations of the first aspect.
In the present application, the names of the above-mentioned data transmission devices do not limit the devices or functional modules themselves, and in actual implementation, the devices or functional modules may appear by other names. Insofar as the functions of the respective devices or functional blocks are similar to those of the present invention, they are within the scope of the claims of the present invention and their equivalents.
These and other aspects of the invention will be more readily apparent from the following description.
The technical scheme provided by the application at least brings the following beneficial effects: in an SRv6SFC scenario, an SFF obtains at least two second data messages through a first data message, and the SL values of the at least two second data messages are different from the SL value of the first data message; the SL values of the second data packets in the at least two second data packets are different. Thereby enabling the SLs in the at least two second data messages to point to the VAS node and the back node, respectively. In this way, the SFF may send the second data message of the SL directed to the VAS node, and the VAS node provides the bypass VAS traffic detection service for the time period, and sends the second data message of the SL directed to the backend node for the forwarding process of the data packet. Based on the method and the device, the value-added service capability can be provided for the user service as required.
Drawings
Fig. 1 is a schematic structural diagram of a data transmission device according to an embodiment of the present application;
fig. 2 is a schematic network architecture diagram of an SFC network according to an embodiment of the present disclosure;
fig. 3 is a schematic network architecture diagram of an SRv6SFC network according to an embodiment of the present disclosure;
fig. 4 is a schematic diagram of an IPv6 data packet including an SRH according to an embodiment of the present application;
fig. 5 is a schematic flowchart of a data transmission method according to an embodiment of the present application;
fig. 6 is a schematic flowchart of another data transmission method according to an embodiment of the present application;
fig. 7 is a schematic flowchart of another data transmission method according to an embodiment of the present application;
fig. 8 is a schematic flowchart of another data transmission method according to an embodiment of the present application;
fig. 9 is a schematic flowchart of another data transmission method according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of another data transmission device according to an embodiment of the present application.
Detailed Description
The term "and/or" herein is merely an association describing an associated object, meaning that three relationships may exist, e.g., a and/or B, may mean: a exists alone, A and B exist simultaneously, and B exists alone.
The terms "first" and "second" and the like in the description and drawings of the present application are used for distinguishing different objects or for distinguishing different processes for the same object, and are not used for describing a specific order of the objects.
Furthermore, the terms "including" and "having," and any variations thereof, as referred to in the description of the present application, are intended to cover non-exclusive inclusions. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not limited to only those steps or elements listed, but may alternatively include other steps or elements not listed, or inherent to such process, method, article, or apparatus.
It should be noted that in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described herein as "exemplary" or "e.g.," is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the word "exemplary" or "such as" is intended to present concepts related in a concrete fashion.
In the description of the present application, the meaning of "a plurality" means two or more unless otherwise specified.
In order to implement the data transmission method provided by the embodiment of the present application, an embodiment of the present application provides a data transmission apparatus, which is used for executing the data transmission method. The data transmission device described in the present application may specifically be an SFF in an SRv6SFC network. Fig. 1 is a schematic structural diagram of a data transmission device according to an embodiment of the present application. As shown in fig. 1, the data transmission apparatus 100 includes at least one processor 101, a communication line 102, and at least one communication interface 104, and may further include a memory 103. The processor 101, the memory 103 and the communication interface 104 may be connected via a communication line 102.
The processor 101 may be a Central Processing Unit (CPU), an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present application, such as: one or more Digital Signal Processors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs).
The communication link 102 may include a path for communicating information between the aforementioned components.
The communication interface 104 is used for communicating with other devices or a communication network, and may use any transceiver or the like, such as ethernet, Radio Access Network (RAN), Wireless Local Area Network (WLAN), and the like.
The memory 103 may be, but is not limited to, a read-only memory (ROM) or other type of static storage device that may store static information and instructions, a Random Access Memory (RAM) or other type of dynamic storage device that may store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disk storage, optical disk storage (including compact disc, laser disc, optical disc, digital versatile disc, blu-ray disc, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to include or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
In a possible design, the memory 103 may exist independently from the processor 101, that is, the memory 103 may be a memory external to the processor 101, in which case, the memory 103 may be connected to the processor 101 through the communication line 102, and is used for storing execution instructions or application program codes, and is controlled by the processor 101 to execute, so as to implement the data transmission method provided by the following embodiments of the present application. In yet another possible design, the memory 103 may also be integrated with the processor 101, that is, the memory 103 may be an internal memory of the processor 101, for example, the memory 103 is a cache memory, and may be used for temporarily storing some data and instruction information.
As one implementation, the processor 101 may include one or more CPUs, such as CPU0 and CPU1 of FIG. 1. As another implementation, the data transmission device 100 may include multiple processors, such as the processor 101 and the processor 107 in fig. 1. As yet another implementation, the data transmission apparatus 100 may further include an output device 105 and an input device 106.
Hereinafter, terms related to the embodiments of the present application are explained for the convenience of the reader.
1. Service Function (SF).
The server function in the embodiment of the present application is a service function in which various service nodes provide a safe, fast, and stable network service for a data packet when the data packet is transmitted in a network.
The network services provided by SF are generally in four to 7 layers (Layer 4 to Layer 7, L4 to L7) of the Open System Interconnection (OSI) model. Such as DPI, FW, IPS, etc. Since these services are also Value-added Service (VAS) nodes, the SF is also equivalent to a VAS node in this application.
The node providing the service function for the data packet is called a VAS node. VAS nodes to which the present application relates include, but are not limited to: deep Packet Inspection (DPI), firewall (FireWalls) node, Load Balancing (Load Balancing) node, Intrusion Prevention System (IPS) node, and Web Application Firewall (WAF) node.
In the data packet transmission process, the data packet generally needs to sequentially pass through the corresponding VAS nodes according to the sequence corresponding to the service logic of the data packet, so as to meet the service requirement required by the data packet.
2、SFC。
A service function chain, also called a service chain or a traffic chain, is a data transmission link consisting of a set of SF nodes (also called VAS nodes). When the data message needs the service function provided by the corresponding service function chain, the path information of the service function chain can be written into the data message, so that each VAS node in the service function chain can process the data message in sequence and provide the corresponding service function; after the processing is completed, the VAS node determines a VAS node of the next hop according to the path information of the service function chain in the data message, and forwards the data message to the VAS node of the next hop.
There are various methods for implementing SFC in the related art, such as NSH technology, SRv6 technology, and the like. The present application relates generally to SRv 6-based SFC technology.
In a possible implementation, a network architecture of the SFC is shown in fig. 2, and includes: a source node 101, a flow classifier 102, at least one Service Function Forwarder (SFF) 103, at least one SF104, and a destination node 105.
The source node 101 is a node that generates a data packet, and the destination node 105 is a node that the data packet needs to reach.
The flow classifier 102 is configured to classify a data packet from the source node 101 in a data flow form, and forward the data packet to a corresponding Service Function Path (SFP). The flow classifier is the starting point of the SFC and generally supports five-tuple based traffic classification rules.
And the SFF103 is used for forwarding the data message in the SFC. SFF103 is typically connected to SF104 and configured to identify content in the data message and forward the message to corresponding SF104 according to the content in the message.
SF104 is configured to provide specific service functions for the data packets. For the service function provided by the SF, reference may be made to the description in "1, service function" in the above noun explanation, and details are not described here.
3. A serial VAS service and a bypass VAS traffic detection service.
Two common ways of VAS services include: a. serial VAS node services; b. bypassing VAS traffic detection.
The serial VAS node service means that a data message needs to be processed by the VAS node so as to realize a service function corresponding to the VAS node. For example, the VAS node is a firewall node, and the data packet with the destination address of the internet needs to pass through the firewall before entering the internet. Since the VAS node in the serial VAS service needs to process the data packet, the serial VAS service generally affects the delay, the service performance, and the reliability of the data packet. Some low latency, large bandwidth traffic may not be suitable for serial VAS services.
The bypass VAS traffic detection service means that the data packet does not need to be processed by the VAS node, and the VAS node only needs a service for detecting the related content of the data packet, such as an audit service. In the bypass VAS flow detection service, data messages are copied in a mirror image mode, the copied data messages are sent to corresponding VAS nodes, and the VAS nodes detect the copied data messages; the original data message can be forwarded continuously according to the forwarding path without being processed by the VAS node. In the bypass VAS traffic detection service, the VAS node does not need to process the data message, so the bypass VAS traffic detection service has smaller influence on the time delay, the service performance and the reliability of the data message.
However, the current SRv6 service chain implementation is only applicable in the serial VAS service scenario, but not applicable in the bypass VAS traffic detection service scenario.
4、SRv6。
SRv6 the network typically includes three nodes, SRv6 source node, transit node and SRv6 segment end node.
Wherein, the SRv6 source node refers to the node that generates SRv6 data packet. SRv6 the process of pushing the data message is completed in the source node.
Transit node refers to a node that forwards SRv6 a data packet. The transit node only forwards SRv6 data packets without any SRv6 processing.
Segment SRv6 end nodes refer to nodes that receive and process SRv6 data packets. The SRv6 Segment endpoint node may parse the SRv6 data packet, determine the Segment Identification (SID) command and SRH command of the SRv6 data packet, and perform corresponding operations according to these commands.
In the related art, SRv6SFC implementations include Stateless (Stateless) SRv6SFC and Stateful (Stateful) SRv6 SFC.
Wherein Stateless SRv6SFC refers to an implementation that does not maintain the forwarding state of each SFC on the SFF.
Stateful SRv6SFC refers to an implementation that requires maintaining the forwarding state of each SFC on the SFF. The present application is mainly directed to the implementation of Stateful SRv6 SFC.
In an implementation of the Stateful SRv6SFC, the implementation includes: aware and Unaware scenarios.
Aware means that the SFs in SRv6 all support SRv6, and these SFs can be directly connected to SFFs. The SF issues a SID, also referred to as a Service SID, corresponding to the SF in the network.
Unaware means that the SF in SRv6 does not support SRv6, SRv6 agent (SRv6 Proxy) needs to be added between SF and SFF, SRv6 Proxy forwards SRv6 data packet from SFF to SF, after SF completes processing SRv6 data packet, SF returns processed SRv6 data packet to SRv6 Proxy, SRv6 Proxy sends processed SRv6 data packet to SFF. In the Unaware scenario, a SID of SRv6 Proxy is published in SRv 6. SRv6 the function of Proxy is usually integrated in the SFF.
5. SRv6, the Unaware scenario.
Under the Unaware scenario, a network architecture diagram of SRv6SFC is shown in fig. 3, and includes: a classifier (SC) 201, at least one SFF202, at least one SF203, an IPv6 node 204, and a SRv6 tail node 205.
The descriptions of the classifier SC201, the at least one SFF202, and the at least one SF203 may refer to the descriptions of the flow classifier 102, the at least one SFF103, and the at least one SF104 in fig. 2, which are not described herein again.
An example, as shown in fig. 3, SFF202 includes SFF #1 and SFF # 2. The SF203 includes SF #1 and SF # 2.
The IPv6 node 204 is a forwarding node for forwarding a data packet during service forwarding. SRv6 Tail node (Tail End)205, which is the node that the data packet needs to reach.
The following describes, with reference to fig. 3, a process of data forwarding by the SRv6SFC in an Unaware scenario:
step 1, a classifier receives a data message. The data message may be an original IPv4 message (denoted as original data message) from the user's network.
And 2, classifying the data messages by the classifier through matching classification information such as quintuple and the like, and redirecting the data messages which need SRv6SFC classification to a SRv6(Traffic Engineering) Traffic Engineering Policy (also recorded as SRv6TE Policy).
And 3, the classifier performs SRv6 message packaging on the data message according to SRv6TE Policy, and increases SRH. The destination address of the encapsulated data packet (denoted as the first SRv6 packet) is SF #1Proxy SID.
And 4, the classifier sends a first SRv6 message to the SFF # 1. Accordingly, SFF #1 receives the first SRv6 message from the classifier.
Step 5, the SFF #1 analyzes the first SRv6 message, and determines that the destination address of the message is SF #1Proxy SID; the SFF #1 sends the original data message in the first SRv6 message to the SF # 1. Accordingly, SF #1 receives the original data message from SFF # 1.
And 6, processing the original data message by the SF #1, and sending the processed data message back to the SFF # 1.
And step 7, the SFF #1 searches configuration information according to the information of an input interface (an interface which is connected with the SF and receives the IPv4 message) of the message, adds new SRH information to the original data message according to the configuration information, and performs SRv6 packaging to obtain a second SRv6 message. The destination address of the second SRv6 message is SF #2Proxy SID.
And step 8, the SFF #1 sends a second SRv6 message to the SFF #2 connected with the SF # 2. Accordingly, SFF #2 receives the second SRv6 message from SFF # 1.
Step 9, the SFF #2 analyzes the second SRv6 message, and determines that the destination address of the message is SF #2Proxy SID; the SFF #2 sends the original data packet in the second SRv6 packet to the SF # 2. Accordingly, SF #2 receives the original data message from SFF # 2.
And step 10, the SF #2 processes the original data message and sends the processed data message back to the SFF # 2.
Step 11, the SFF #2 searches for configuration information according to the information of the incoming interface of the message (the interface of the SFF connected to the SF to receive the IPv4 message), then adds new SRH information to the original data message according to the configuration information, and performs SRv6 encapsulation to obtain a third SRv6 message. The destination address of the third SRv6 message is Tail End SID.
And step 12, the SFF #2 sends a third SRv6 message to the Tail End node according to the IGP shortest route. Correspondingly, the Tail End node receives the third SRv6 message.
And step 13, analyzing the third SRv6 message by the Tail End node, and determining that the destination node of the third SRv6 message is the SID of the Tail End node. And decapsulating the third SRv6 message by the Tail End node to determine the original data message, and updating the IPv6 destination address field to Tail end.DT4 SID.
And step 14, the Tail End node searches a local SID list according to the Tail end.DT4 SID, executes the Tail end.DT4 SID related instruction, and forwards the original data message to the corresponding IPv4 VPN or the public network.
The above is a network architecture diagram and data forwarding process of SRv6SFC in the Unaware scenario. It should be noted that the network architecture diagram of the SRv6SFC in the aware scenario and the data forwarding process are similar to those in the Unaware scenario, and the description of the present application is omitted here.
6、SRv6 SID。
The SRv6 SID is a special address form of IPv 6. The SRv6 SID generally includes the following three parts: locator, Function, armaments (optional).
The Locator is an identifier allocated to a certain node in the network topology, and is used for routing and forwarding the message to the node. The Locator is used to identify the location information of the node (i.e., the location information of the node in the network topology). The Locator has routable and polymerizable attributes, and in the network transmission process, the route of the node corresponding to the Locator is issued to the network by the node in the form of IGP route. After receiving the IGP route of the node corresponding to the Locator, the other device may forward the corresponding data packet to the node corresponding to the Locator according to the IGP route. The Locator can route the message to the network equipment executing the instruction, so as to realize the addressing of the network instruction. In the SRv6 SID, the Locator length is variable in order to fit different size networks.
Function is a forwarding action required to be performed to express the SID corresponding to the SID. In SRv6 network programming, different forwarding behaviors are expressed by different functions. The SIDs may be defined as different types of SIDs according to the functions of different functions to represent different forwarding behaviors. Forwarding behaviors referred to in this application include, but are not limited to: forwarding the message to a designated link; and (5) looking up a table in a designated table for forwarding.
Argments is called Args for short, and is an optional field in SRv6 SID, and is used for characterizing parameters when the device executes SRv6 SID instruction. Such parameters include, but are not limited to: flow parameters and service parameters. For example, for an instruction to fragment a network packet, the length of the fragment carrying the packet may be defined in the Args field of the instruction.
After the SRv6 message is received by the node, the message is processed according to SRv6 SID as follows:
first, the node defining SR segmentation information establishes a local SID entry in a forwarding table (FIB).
After receiving SRv6 the node carries out longest prefix match to the message according to the destination address of the message. The matching result comprises:
(1) FIB table entries representing locally defined SRv6 SIDs.
(2) A FIB entry representing a local interface address that is not locally defined as an SRv6 SID.
(3) FIB table entries representing a non-local route.
(4) No matching entries.
The SRv6 SID includes a plurality of FIB entries, each FIB entry indicating behavior and parameters associated with the SID. The user can customize any service-related SID behavior with the flexibility of applying SRv6 network programmability. The currently defined partial SID behavior is shown in table 1 below.
TABLE 1
Figure BDA0003391405040000151
Figure BDA0003391405040000161
The SRV6 Service chain (SFC) proxy Service SID defined by the current IETF SPRING working group manuscript mainly includes:
1) as: static Proxy (Static Proxy) SID, issued by SRv6 Proxy node. As functions to strip the SRH header and send the original data packet to SF through the corresponding interface or virtual interface (such as VLAN ID). And after the message carrying the appointed VLAN ID is returned SRv6 Proxy from SF, inserting the cached SRH into the report message according to the VLAN ID, and continuously forwarding. The mapping of SRH to virtual interface is generated by static configuration and is therefore called static proxy SID.
2) Ad: dynamic Proxy (Dynamic Proxy) SID, issued by SRv6 Proxy node. And the AD adds the dynamic learning capability on the basis of the static agent SID, and changes the mapping relation between the SRH and the virtual interface from static configuration into dynamic generation according to the SRH of the received message.
3) Am, end: the Masquerading Proxy (Masquerading Proxy) SID is issued by the SRv6 Proxy node. AM is the function of updating the real destination address, i.e. SID [0] in Segment List, to DA, thus pretending IPv6 message carrying real destination address and forwarding to SF. The message returned by the SF needs to replace the next SID with a DA at SRv6 Proxy, and continues to forward.
It should be noted that, in the above table 1, only a part of the SID behaviors are illustrated, and the SID also includes other behaviors in an actual implementation process, which is not limited in this application.
7、SRH。
At SRv6, a new type, called SRH, is added to the route extension header of IPv 6. The SRH is used to specify a display path of the IPv6 message, and stores path constraint information (Segment List) of the IPv6 message. In the process of message forwarding, the head node adds an SRH in the IPv6 message, and the intermediate node can forward the message according to the path information included in the SRH.
An example, the format of an IPv6 datagram containing SRH is shown in fig. 4 below.
The IPv6 basic header is an original header in the IPv6 message, and this is not described in this application. Payload refers to an original data message in an IPv6 message.
The key information in SRH includes: routing Type (Routing Type), segment List (Segments List), and remaining Segments (Segments Left, SL). The key information is explained below:
the routing type is used for identifying the type of the message header, and when the value of the routing type is 4, the message header is represented as an SRH.
Segments List includes: (Segment List [0], Segment List [1], Segment List [2],. Segment List [0] through Segment List [ n ] correspond to instructions of a computer program, and the first instruction to be executed is Segment List [ n ]. SL corresponds to a PC (program counter) pointer of a computer program, and points to the currently executing instruction. The initial value of SL is n, and the value of SL is reduced by 1 after each instruction is executed. At this point, SL points to the next instruction to be executed. The node executes the instruction pointed to by SL.
For an example, the message structure of SRH in Aware mode is shown in table 2 below:
TABLE 2
IPv6 Header
Back SID
VAS(N-1)SID
……
VAS 1SID
SFF SID
Pre-SID
Original data message
Wherein, the IPv6 Header is an IPv6 data message Header; the post-SID is the SID of the next hop node in the original forwarding path of the data packet. The VAS (N-1) SID to VAS 1SID are SIDs of VAS nodes providing VAS service for the data packet. The SFF SID is SRv6 SID of the SFF used for processing the data packet in the network. The pre-SID is the SID of the previous hop node that sent the datagram to SRv6 network. . The original data message refers to the data message before the data message entered SRv 6. As an example, the original datagram may be a user datagram received from an IPv4 network.
For another example, in the Unaware mode, the message structure of SRH is shown in table 3 below:
TABLE 3
IPv6 Header
Back SID
VAS(N-1)Proxy SID
……
VAS Proxy 1SID
SFF SID
Pre-SID
Original data message
Wherein, the VAS 1Proxy SID is the Proxy SID corresponding to VAS 1.
The terms related to the present application are explained in detail above.
In the related art, only the serial VAS service is supported in a Service Function Chain (SFC) scene based on Segment Routing Internet Protocol Version 6 (SRv 6). The serial VAS service means that data messages are sequentially forwarded without being sent to VAS nodes, and each VAS node carries out corresponding data on the data messages to realize VAS node-related value-added services. In the serial VAS service, a data packet needs to be processed by a VAS node, which will affect the delay, performance and reliability of the service. Therefore, how to reduce the delay of service transmission in the SRv6SFC scenario and improve the service performance and reliability becomes a problem that needs to be solved at present.
As shown in fig. 5, the data transmission method provided in the embodiment of the present application includes S501 to S503. The following is a detailed description:
s501, the SFF acquires a first data message.
The first data packet includes: the values of segment routing extension message headers SRH and SL and an original data message; the SRH comprises a plurality of SIDs, and the SIDs comprise SIDs corresponding to N-1 value-added service VAS nodes and a postSID; n is an integer greater than or equal to 2; the value of SL is used to indicate one SID in SRH; the SID corresponding to the VAS node is any one of the following items: the SID of the VAS node or the SID of the Proxy corresponding to the VAS node.
The post node is a next hop node of the SFF, and the post node is a node other than the VAS node, for example, the post node may be the IPv6 node in fig. 3 in combination with fig. 3.
The understanding of the VAS node can refer to the description of the VAS node in the above noun explanation, and the description thereof is omitted.
S502, the SFF determines at least two second data messages according to the first data message.
Wherein the SL values of the at least two second data messages are different from the SL values of the first data message; the SL values of the second data messages in the at least two second data messages are different.
S503, the SFF forwards the corresponding second data message to the node corresponding to each second data message or processes the second data message according to the SID indicated by the SL value in each second data message.
In a specific implementation manner, when the value of the SL in the second data message is M-1, the value of the SL in the second data message points to the SID corresponding to the first VAS node of the N-1 VAS nodes; … …, respectively; when the value of the SL in the second data message is M-i, the value of the SL of the second data message points to the SID corresponding to the ith VAS node in the N-1 VAS nodes; … …, respectively; when the value of the SL in the second data message is M- (N-1), the value of the SL of the second data message points to the SID corresponding to the last VAS node in the N-1 VAS nodes; and when the value of the SL in the second data message is M-N, the value of the SL of the second data message points to the rear SID.
After the SFF determines the SID indicated by the SL value of each second data message, determining the ith second data message in the N second data messages; and the SID indicated by the value of SL in the ith second data message is the VAS SID of the ith VAS node. And the SFF sends the ith second data message to the ith VAS node.
Or after the SFF determines the SID indicated by the value of the SL of each second data packet, determining the ith second data packet in the N second data packets; and the SID indicated by the value of SL in the ith second data message is the Proxy SID corresponding to the ith VAS node. And the SFF executes a proxy function to process the ith second data message and sends the processed second data message to the ith VAS node.
It should be noted that when there are multiple postsids, and the SL value is M-N, the SL value points to the first postsid of the multiple postsids.
In a possible implementation manner, after determining the SID pointed to by the value of the SL of the second data packet, the SFF obtains the SID from the SRH, and writes the SID into the destination address field of the header of the second data packet. And the SFF sends the second data message to the corresponding node according to the destination address field in the second data message.
The method at least has the following beneficial effects: in an SRv6SFC scenario, the SFF obtains at least two second data messages through the first data message, and the SL values of the at least two second data messages are different from the SL value of the first data message; the SL values of the second data messages in the at least two second data messages are different. Thereby enabling the SLs in the at least two second data messages to point to the VAS node and the back node, respectively. In this way, the SFF may send the second data message of the SL directed to the VAS node, and the VAS node provides the bypass VAS traffic detection service for the time period, and sends the second data message of the SL directed to the backend node for the forwarding process of the data packet. Based on the method and the device, the value-added service capability can be provided for the user service as required.
In addition, the data transmission method provided by the application can complete bypass VAS flow detection service on data in an SRv6SFC scene, reduces the time delay of data transmission, and improves the service performance and reliability of data transmission.
In a possible implementation manner of S502, the first data packet includes a first field, and the first field is used to indicate that the first data packet is copied.
In this case, S502 can be specifically determined by the following steps 1 to 2.
Step 1, the SFF copies the first data message according to the first field to obtain at least two first data messages.
And the SFF copies the first data message according to the first field to obtain at least two first data messages with the same content.
In a possible implementation manner, the SFF parses the first data packet to determine the SFF SID in the SRH of the first data packet, and determines that the first field exists in the SFF SID. And the SFF determines that the first data message is a message which needs to be copied by the SFF. After that, the SFF copies the first data packet according to the first field to obtain at least two first data packets.
In a possible implementation manner, the end.cs field is further used to indicate the number of copies of the first data packet.
Illustratively, when the first field is an end.cs1 field, the first field is used to indicate that the first data packet is copied to N-1, and the end.cs1 field may carry a specific value of N. At this time, the SFF copies the N-1 first data packets according to the first field, to obtain N first data packets in total.
And when the first field is the end.CS2 field, the first field is used for indicating that the first data message is copied by 1. At this time, the SFF copies 1 first data packet according to the first field, and obtains two first data packets in total.
And step 2, the SFF respectively adjusts the SL value of each first data message in the at least two first data messages, and determines at least two second data messages.
The SL values in the at least two first data packets are the same, and the SL values in the at least two second data packets are different.
In one example, the SL in the first data packet has a value of M, where M is a positive integer greater than or equal to N.
In a possible implementation manner, under the condition that the SFF copies N-1 first data packets to obtain N first data packets in total, the SFF subtracts 1 from a value of SL in the first data packet to obtain a first second data packet, where the value of SL in the first second data packet is M-1; … … the SFF subtracts i from the value of SL in the ith first data packet to obtain the ith second data packet, where the value of SL in the ith second data packet is M-i, … …, and the SFF subtracts N from the value of SL in the nth first data packet to obtain the nth second data packet, where the value of SL in the nth second data packet is M-N. i is a positive integer less than or equal to N.
In a possible implementation manner, under the condition that the SFF copies 1 first data packet to obtain two first data packets in total, the SFF subtracts 1 from the value of the SL in the first data packet to obtain a first second data packet; and the SFF subtracts N from the value of SL in the second first data message to obtain a 2 nd second data message.
Optionally, the SRH of the first data packet further includes an SFF SID. The first field is carried in the SFF SID of the first data packet. Specifically, the first field is carried in a Function field in the SFF SID of the first data packet, or the first field is carried in an alignment field in the SFF SID of the first data packet.
Specifically, the first field is an end.cs1 field; alternatively, the first field is an end.cs2 field.
The specific implementation manner in S502 at least can bring the following beneficial effects: in the SRv6SFC scenario, a first field for indicating to copy the first data packet is added in the first data packet, and after receiving the first data packet, the SFF copies the first data packet according to the first field. Thereafter, the SFF adjusts the SL of the first data message to obtain a second data message. The SL in the second data message after the adjustment of the SL can point to the VAS node and the post node, respectively. In this way, the SFF may send the second data message of the SL directed to the VAS node, and the VAS node provides the bypass VAS traffic detection service for the time period, and sends the second data message of the SL directed to the backend node for the forwarding process of the data packet. Based on this, the data transmission method provided by the application can complete bypass VAS flow detection service on data in SRv6SFC scene, reduce the time delay of data transmission, and improve the service performance and reliability of data transmission.
The following describes the first field in detail:
the first field is used to indicate that the first data packet is copied.
The first field may be carried in the SFF SID of the first datagram. Specifically, the first field may be carried in a Function field of the SFF SID of the first data packet; alternatively, the first field may be carried in an alignment field of the SFF SID of the first datagram.
In this application, the first field is used to instruct the SFF to copy the first data packet into N first data packets (denoted as case 1), or the first field is used to instruct the SFF to copy the first data packet into two first data packets (denoted as case 2). The first field in case 1 and case 2 will be described below, respectively
In case 1, the first field includes an indication identifier indicating that the SFF copies the first data packet, and the first field further includes an indication identifier indicating a value of N. In case 1, the field name of the first field is described as end.cs1.
An example, the form of SID carrying the first field is shown in table 4 below:
TABLE 4
Figure BDA0003391405040000211
In conjunction with table 4, the field name end.cs1 of the first field is carried in the Function field of the SID, and the N value in the first field is carried in the definitions field of the SID.
For yet another example, the SID carrying the first field is in the form shown in table 5 below:
TABLE 5
Figure BDA0003391405040000221
With reference to table 5, the field name end.cs1 of the first field and the N value in the first field are both carried in the Function field of the SID. For example, end.cs1 has 16 bits, the first 8 bits select 00000001 to represent end.cs1, and the last 8 bits represent N value (2 system).
The padding values in table 5 are padding bits. The padding bits have no practical significance, and may be 0000 or other values, and are not used for identifying the message copy number.
It should be noted that, although the two examples in table 4 and table 5 are only different for the N value corresponding to the bit position, the operation of SRv6 represents a read action for different positions, which also affects SRH header compression and other operations. This is not described in detail herein.
In combination with the above table 4 and table 5, the field name end.cs1 of the first field and the N value in the first field together constitute the content of the first field.
And 2, the first field comprises an indication mark for indicating the SFF to copy the first data message. In addition, the first field may further include an indication flag indicating the value of N. And the SFF determines to copy 1 first data message directly according to the indication mark indicating to copy the first data message. In case 2, the field name of the first field is end.cs2.
When the first field includes an indication identifier indicating a value of N, a specific implementation manner of the first field CS2 in case 2 is similar to that in case 1, except that in case 2, the value of N is no longer used to indicate a packet replication number, but is only used to indicate a number of VAS nodes required by the packet, and other understanding about the first field may refer to case 1 described above, and is not described here again.
When the first field does not include the indication identifier indicating the value of N, the SID may include only the identifier end.cs2 of the first field. The bits used to carry the N value in case 1 will be reserved.
Note that, in case 1, end.cs1 may be represented by 00000001. End.cs2 may be represented by 00000002 in case 2. After reading the field with the value of 00000002, the SFF copies 1 first data message directly according to the field.
The first field is described in detail above.
It should be noted that, in this embodiment of the present application, in combination with two cases of the first field, when the first field is used to instruct the SFF to copy the first data packet into N first data packets (that is, the first field is used to instruct to copy N-1 first data packets), the data transmission method provided in the present application may be specifically implemented by the following method 1.
In a case where the first field is used to instruct the SFF to copy the first data packet into two first data packets (that is, the first field is used to instruct to copy 1 first data packet), the data transmission method provided in the present application may be specifically implemented by the following method 2.
Methods 1 and 2 are described in detail below.
Method 1, the first field is used to instruct the SFF to copy the first data packet into N first data packets.
It should be noted that in method 1, the specific implementation of the SRv6SFC network in the Aware mode (denoted as scene 1) and in the Unaware mode (denoted as scene 2) is different. In the Aware mode, the SID corresponding to the VAS node is the VAS SID; and in the Unaware mode, the SID corresponding to the VAS node is a Proxy SID corresponding to the VAS node.
In the following, scenario 1 and scenario 2 are described separately in method 1:
scene 1, Aware mode.
As shown in fig. 6, in scenario 1 of method 1, the data transmission method provided in the embodiment of the present application may be specifically implemented through the following S601-S609.
S601, the SFF receives the first data message.
Optionally, the first data packet may be a data packet sent by a front-end node of the SFF to the SFF.
In one possible implementation, the head node in the SRv6SFC network is a classifier. After the classifier receives original data packets from other networks (for example, IPv4 data packets from IPv4 networks), the classifier classifies the data packets according to the original data classifier by matching classification information such as quintuple, and redirects data packets that need SRv6SFC after classification to SRv6TE Policy. The classifier SRv6 packets the data message according to SRv6TE Policy, adding the SRH including the first field. And the value of N in the first field is determined according to the number of VAS nodes corresponding to the data message. The classifier packages the IPv4 data message to obtain a first data message, and the first data message sequentially passes through the front node of the SFF to send the first data message to the SFF.
S602, the SFF reads a first field in the first data message, and copies N-1 first data messages according to the first field to obtain N first data messages.
Specifically, after receiving the first data packet, the SFF parses the SRH in the first data packet, and obtains the first field in the first data packet. The first field comprises an indication identifier for indicating the SFF to copy the first data message, and the first field also comprises an indication identifier for indicating the value of N.
And the SFF copies the N-1 first data messages according to the value of the N indicated by the first field to obtain N first data messages.
An example, the SRH in the N first data packets includes a segment list, which includes: < postSID, VAS (N-1) SID, … …, VAS 1SID, SFF SID, PreSID >. S603 and SFF adjust the SL values in the N first data packets, respectively.
In a specific implementation manner, the SL values in the N first data messages are all M.
The SFF subtracts 1 from the value of SL in the first data message, and the value of SL in the first data message is M-1; … …, respectively; and the SFF subtracts i from the value of SL in the ith first data packet, wherein the value of SL in the ith first data packet is M-i, … …, and subtracts N from the value of SL in the Nth first data packet, wherein the value of SL in the Nth first data packet is M-N.
It should be noted that, when i is smaller than N, the value of SL of the ith data packet is used to indicate the SID corresponding to the ith VAS node in the N-1 VAS nodes.
And when i is equal to N, the value of SL of the ith data message is used for indicating the first postSID by SID.
S604, SFF adjusts the destination address field in N first data messages.
Optionally, after adjusting the value of the SL in the first data packet, the SFF determines the SID pointed to by the adjusted value of the SL, and obtains the SID pointed to by the SL from the SHR and writes the SID into the destination address field of the first data packet.
Illustratively, for the ith first data packet, the adjusted SL value is M-i. The value of SL points to the SID as the ith VAS SID. The SFF extracts the ith VAS SID from the ith first data message, and writes the ith VAS SID into the destination address field of the ith first data message. The value of SL of the ith second data message is M-i, and the destination address field comprises the ith VAS SID.
S605 and SFF add a second field to each first data packet.
The second field is used for indicating that the VAS node does not need to forward the data message carrying the second field.
In a possible implementation manner, the second field is carried in the ith VAS SID in the SRH of the ith first data packet. Specifically, the second field is carried in the Function field of the i-th VAS SID in the SRH of the i-th data packet.
In one example, the second field is an end.st field.
Specifically, the SFF determines the ith VAS SID according to the value of SL in the ith first data packet. The SFF adds a second field to the Function field of the ith VAS SID.
Note that the second field may not be added in the nth first data packet.
S606, the SFF determines N second data messages.
Specifically, the second data packet determined by the SFF is the first data packet processed through the steps in S603-S605.
The SL in the ith second data message has a value of M-i, and the destination address field includes the ith VAS SID. The Function field of the ith VAS SID includes a second field.
And S607, the SFF sends the second data message to the VAS node and the post node according to the destination address field of each second data message.
In one example, the SFF sends the first second data message to the first VAS node, the SFF sends the second data message to the second VAS node, and … … the SFF sends the N-1 th second data message to the N-1 th VAS node. And the SFF sends the Nth second data message to the post node.
And S608, the VAS node processes the second data message.
Specifically, after receiving the second data message, the VAS node identifies a Function field in the SID corresponding to the VAS node. And the VAS node determines that the Function field comprises a second field, and after the VAS node processes the second data message and completes the value-added service of the second data message, the VAS node confirms that the VAS service process is finished and does not continue to forward the second data message.
For example, after receiving the ith second data packet, the ith VAS node identifies the ith VAS SID in the ith second data packet. And determining that the Function field of the ith VAS SID comprises a second field, and after the ith VAS node processes the second data message and completes the ith second data message value-added service, the ith VAS node confirms that the VAS service process is finished and does not continue to forward the ith second data message.
It should be noted that the fact that the VAS node does not forward the second data packet any more means that the VAS node does not send the second data packet after the value-added service to the SFF node any more.
And S609, the post node forwards the second data message.
Specifically, the back-end node forwards the second data packet to the next-hop node according to the original service path of the second data packet.
In the above, a method for completing a bypass VAS node detection service for a first data packet by copying N-1 first data packets in an Aware mode is provided.
Scene 2, Unaware mode.
As shown in fig. 7, in scenario 2 of method 1, the data transmission method provided in the embodiment of the present application may be specifically implemented through the following steps S701 to S710.
S701, the SFF receives a first data message.
For a specific implementation of S701, reference may be made to S601 described above, which is not described herein again.
S702, the SFF reads a first field in the first data message, and copies N-1 first data messages according to the first field to obtain N first data messages.
For a specific implementation of S702, refer to S602 above, which is not described herein again.
S703 and SFF adjust the SL values in the N first data packets, respectively.
It is noted that the specific implementation manner of S703 is similar to that of S603 described above. The difference is that when the SL points to the SID corresponding to the VAS node in S704, the SID corresponding to the VAS node is the SID of proxy corresponding to the VAS node.
S704, the SFF adds a third field to each first data packet.
And the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving the data message returned from the target VAS node.
In a possible implementation manner, the third field is carried in the ith VAS SID in the SRH of the ith first data packet. Specifically, the third field is carried in the Function field of the i-th VAS SID in the SRH of the i-th data packet.
An example, the second field is an end.as2 field; alternatively, the second field is end.
Specifically, the SFF determines the ith VAS SID according to the value of SL in the ith first data packet. The SFF adds a third field to the Function field of the ith VAS SID.
Note that the third field may not be added in the nth first data packet.
S705, the SFF determines N second data messages.
Specifically, the second data packet determined by the SFF is the first data packet processed through the steps in S703-S705 above.
And the value of SL in the ith second data message is M-i. The Function field of the ith VAS SID includes a third field.
S706, the SFF sends the second data message to proxy corresponding to the SID and the post node according to the SID indicated by the SL of each second data message.
Specifically, the SFF determines an ith second data packet of the N second data packets; and the Proxy SID corresponding to the ith VAS node is indicated by the value of the SL of the ith second data message. And the SFF sends the ith second data message to a Proxy corresponding to the ith VAS node.
The SFF determines the Nth second data message; and the SFF sends the Nth second data message to the post node.
In one example, the SFF sends the first second data message to a Proxy corresponding to the first VAS node, the SFF sends the second data message to a Proxy corresponding to the second VAS node, and … … the SFF sends the N-1 th second data message to a Proxy corresponding to the N-1 th VAS node. And the SFF sends the Nth second data message to the post node.
And S707, Proxy processes the second data message and determines the processed second data message.
In one possible implementation, the Proxy processing the second data message includes: and the Proxy analyzes the second data message and determines an original data message.
Specifically, the Proxy analyzes the ith second data packet, and determines that the SID of the Proxy corresponding to the ith VAS node of the second data packet includes the third field. And the Proxy extracts the original data message from the second data message. And the Proxy determines to send the original data message to the ith VAS node without waiting for the processed second data message returned to the Proxy by the ith VAS node.
As an example, the original datagram may be an IPv4 datagram.
It should be noted that the original data packets parsed from the different second data packets are the same.
And S708, the Proxy sends the processed second data message to the VAS node.
In one possible implementation manner, the Proxy sends the original data packet extracted from the second data packet to the VAS node through an interface or a virtual interface corresponding to the VAS node.
Specifically, the Proxy corresponding to the ith VAS node sends the original data message to the ith VAS node.
Or, the Proxy may also directly send the second data packet to the VAS node, which is not limited in this application.
It should be noted that, in the embodiment of the present application, the function of the Proxy is usually implemented by an SFF, and at this time, the SFF may not perform the action of sending the second data packet to the Proxy, but directly perform the action corresponding to the Proxy. In the present application, actions performed by Proxy may be adaptively understood as actions performed by SFF integrated with Proxy function, which is not limited in the present application.
And S709, the VAS node processes the processed second data message.
In one possible implementation, the VAS node processes the original data packet to complete the value-added service of the original data packet. The VAS node confirms that the VAS service process is finished and does not continue to forward the original data message.
For example, after the ith VAS node receives the original data packet, the value added service to the original data packet is completed. The ith VAS node confirms that the VAS service process is finished and does not continuously forward the original data message.
It should be noted that the fact that the VAS node does not forward the original data packet any more means that the VAS node does not send the original data packet after the value-added service to the Proxy any more.
And S710, the post node forwards the second data message.
For a specific implementation manner of S710, reference may be made to S609 described above, which is not described herein again.
In the above, a method for completing the detection service of the bypass VAS node of the first data packet by copying N-1 first data packets in the Unaware mode is provided.
In the above, the data method of the present application in method 1 is also described with reference to scene 1 and scene 2.
The method 1 at least brings the following beneficial effects: the SFF obtains N second data messages according to the first data message, wherein first N-1 second data messages in the N second data messages are respectively sent to corresponding VAS nodes (or sent to corresponding VAS nodes through proxy of the VAS nodes) for value added service processing, and the nth second data message is directly subjected to subsequent forwarding processing. The VAS is carried out on the data message, the data transmitted subsequently is not processed, the stability and the reliability of data transmission are improved, and the time delay of data message transmission is reduced. In addition, the SFF directly obtains N second data messages and respectively sends the N second data messages to N-1 VAS nodes for processing, and therefore efficiency of value added service processing on the data messages is improved.
Method 2 is described below:
method 2, the first field is used to instruct the SFF to copy the first data packet into two first data packets.
It should be noted that in method 2, the SRv6SFC network has different specific implementations in the Aware mode (denoted as scene 3) and in the Unaware mode (denoted as scene 4). In the following, scenario 3 and scenario 4 are described separately in method 2:
scene 3, Aware mode.
As shown in fig. 8, in scenario 3 of the method 2, the data transmission method provided in the embodiment of the present application may be specifically implemented through the following steps S801 to S813.
S801, the SFF receives the first data message.
For a specific implementation of S801, reference may be made to S601 described above, which is not described herein again.
S802, the SFF reads a first field in the first data message, and copies 1 first data message according to the first field to obtain two first data messages.
Specifically, after receiving the first data packet, the SFF parses the SRH in the first data packet, and obtains the first field in the first data packet. The first field comprises an indication mark for indicating the SFF to copy the first data message.
And the SFF copies 1 first data message according to the first field to obtain two first data messages.
In one example, the SRH in the two first data packets includes segment lists each including < < postsid, VAS (N-1) SID, … …, VAS 1SID, SFF SID, preamble SID > >.
S803 and SFF adjust the SL values in the two first data packets, respectively.
In a specific implementation manner, the SFF subtracts 1 from the value of SL in the first data packet, where the value of SL in the first data packet is M-1; and the SFF subtracts N from the value of SL in the second first data message, wherein the value of SL in the second first data message is M-N.
The value of SL in the first second data message is used to indicate the SID corresponding to the 1 st VAS node of the N-1 VAS nodes.
The value of SL in the second datagram is used for SID to indicate the first postSID.
S804, SFF adjusts the destination address field in the two first data messages respectively.
Optionally, after adjusting the value of the SL in the first data packet, the SFF determines the SID pointed to by the adjusted value of the SL, and obtains the SID pointed to by the SL from the SHR and writes the SID into the destination address field of the first data packet.
Illustratively, for the first data packet, the adjusted SL has a value of M-1. The value of SL points to the SID as the first VAS SID. The SFF extracts the first VAS SID from the first data packet, and writes the first VAS SID into the destination address field of the first data packet.
For the second first data packet, the adjusted value of SL is M-N. The value of SL points to a SID that is a postSID. And the SFF extracts the post SID from the second first data message and writes the post SID into the destination address field of the second first data message.
S805, the SFF adds a second field and a fourth field to the first data packet.
And the fourth field is used for indicating the VAS node to carry out SL minus 1 operation on the data message carrying the fourth field, determining the SID indicated by the SL value after the minus 1 operation, and sending the data message carrying the fourth field after the SL-1 operation to the node indicated by the SL value after the minus 1 operation.
In one possible implementation, the fourth field is carried in the VAS SID in the data packet SRH. Specifically, the fourth field is carried in the Function field of the VAS SID in the data message SRH.
In one example, the fourth field is an END/end.x field. A specific understanding of the END/end.x field can be found in reference to the description of the relevant fields in table 1 above.
Optionally, a fourth field is added to each VAS SID in the first N-2 VAS nodes in the first data packet. After each VAS node processes the first second data message corresponding to the first data message, each VAS node can forward the first second data message to the next VAS node.
A second field is added to the SID of the (N-1) th VAS node (i.e., the last VAS node). The understanding of the second field can be understood by referring to the above description of S605, and is not described herein again.
In one example, the second field is an end.st field.
It should be noted that the fourth field and the second field may not be added in the second first data packet.
S806, the SFF determines the first second data message and the second data message.
The value of SL in the first second data message is M-1, and the destination address field includes the first VAS SID, the second field, and the fourth field.
The SL in the first second datagram has a value M-N and the destination address field includes the postsid, but the second and fourth fields may not be included in the second datagram.
S807, SFF sends the first second data message to the first VAS node. Correspondingly, the first VAS node receives the first second data message from the SFF.
Specifically, the SFF sends the first second data packet to the first VAS node according to the first VAS SID in the destination address field of the current first second data packet.
And S808, the first VAS node processes the first second data message.
Specifically, after receiving the first second data packet, the first VAS node performs value-added service processing on the first second data packet.
And S809, the first VAS node determines the operation instruction in the current VAS SID of the first second data message.
If the operation command in the VAS SID is the second field, the forwarding is ended.
If the operation command in the VAS SID is the fourth field, the following S810 is performed.
It should be noted that, ending forwarding refers to that the VAS node does not send the second data packet after the value-added service to the SFF node and the next VAS node any more.
And S810, subtracting 1 from the SL value in the first second data message by the first VAS node, determining the next VAS SID pointed by the SL, and writing the next VAS SID into the destination address of the first second data message.
And S811, the first VAS node forwards the processed first and second data messages to the next VAS node.
And the SFF and the next VAS node respectively and sequentially execute the processes in the S808-S809 until the operation instruction in the current VAS SID is determined to be the second field, and the forwarding process is ended.
S812, the SFF sends a second data message to the post node. Correspondingly, the back-end node receives a second data message from the SFF.
And S813, the back node forwards the second data message.
The specific implementation manner of S813 may refer to S609 described above, which is not described herein again.
In the above, a method for completing a bypass VAS node detection service for a first data packet by copying 1 first data packet in an Aware mode is provided.
Scene 4, Unaware mode.
As shown in fig. 9, in scenario 4 of the method 2, the data transmission method provided in the embodiment of the present application may be specifically implemented through the following steps S901 to S916.
S901, SFF receives the first data message.
For a specific implementation manner of S901, reference may be made to S601 described above, which is not described herein again.
S902, the SFF reads a first field in the first data message, and copies 1 first data message according to the first field to obtain two first data messages.
The specific implementation manner of S902 may refer to S802 described above, which is not described herein again.
S903 and SFF adjust the SL values in the two first data packets, respectively.
For a specific implementation manner of S903, reference may be made to S803, which is not described herein again.
S904, the SFF adds a third field and a fifth field to the first data packet.
And the fifth field is used for indicating the Proxy to send the processed second data message to the corresponding VAS node and returning a third data message to the service function forwarder SFF, wherein the third data message is determined by the VAS node corresponding to the Proxy according to the processed second data message.
In one possible implementation, the fifth field is carried in the VAS SID in the data packet SRH. Specifically, the fifth field is carried in the Function field of the VAS SID in the data message SRH.
An example, the fifth field is an end.as/AD field. Specific understanding of the as/AD field can be found in reference to the description of the relevant fields in table 1 above.
Optionally, a fifth field is added to the Proxy SID corresponding to each VAS node in the first N-2 VAS nodes in the first data packet. And each Proxy sends the processed second data message to the corresponding VAS node, and the VAS node processes the received data message and then returns the data message to the Proxy. And the Proxy forwards the data message to the SFF node.
A third field is added to the SID of the (N-1) th VAS node (i.e., the last VAS node). The understanding of the third field may be understood with reference to the description of the above S705, which is not described herein again.
An example, the third field is an end.as2 field; alternatively, the third field is an end.ad2 field.
It should be noted that the third field and the fifth field may not be added in the second first data packet.
S905, the SFF determines a first second data message and a second data message.
And the SL in the first second data message has a value of M-1 and comprises a fifth field of a third field.
The SL in the first second datagram has a value M-N, but the fifth field of the third field may not be included in the second datagram.
S906 and the SFF send a first second data message to the Proxy corresponding to the first VAS node. Correspondingly, the Proxy corresponding to the first VAS node receives the first second data message from the SFF.
Specifically, the SFF sends the first second data packet to the Proxy (denoted as the first Proxy) corresponding to the first VAS node to which the value of the current first second data packet SL points, according to the SID of the Proxy (denoted as the first Proxy) corresponding to the first VAS node.
And S907, the first Proxy processes the first second data message to obtain a processed second data message.
And S908, the first Proxy sends the processed second data message to the first VAS node.
And S909, the first Proxy determines the operation instruction included in the SID of the Proxy corresponding to the first VAS node.
And if the operation instruction included in the SID of the Proxy is the third field, ending the forwarding.
If the operation instruction included in the SID of Proxy is the fifth field, the following S911 is executed.
It should be noted that, ending forwarding means that the Proxy node does not need to receive the data packet processed by the VAS node, and the Proxy does not want the SFF or the next VAS node to forward the data packet.
S910, the first Proxy receives the third data message of the VAS node.
And the third data message is determined by the VAS node corresponding to the Proxy according to the processed second data message.
And S911, the first Proxy forwards the third data message to the SFF. Accordingly, the SFF receives the third data packet from the first Proxy.
S912, SFF adds SRH of the first second data message in the third data message, and subtracts 1 from SL value in SRH of the first second data message to obtain the fourth data message.
In a possible implementation manner, the processed second data packet is an original data packet, and the SFF re-adds the SRH to the original data packet, which is the same as the SRH before the SFF sends the original data packet or the second data packet corresponding to the original data packet to the Proxy.
In a possible implementation manner, after receiving an original data packet, the SFF determines the ingress interface information of the original data packet (and the interface, which is linked with proxy or SF on the SFF and receives the original data packet), searches the configuration information of the original data packet according to the ingress interface information, and then adds SRH to the original data packet according to the configuration information.
S913, the SFF determines the SID indicated by the value of SL in the fourth data packet.
And the destination address of the first data message is the Proxy SID corresponding to the next VAS node. For example, if the SID of the Proxy before the third data packet is obtained is the SID of the Proxy corresponding to the first VAS node, then in S913, the destination address of the fourth data packet is the SID of the Proxy corresponding to the second VAS node.
S914, SFF sends the fourth data message to Proxy corresponding to SID indicated by SL value in the fourth data message.
And the SFF, the Proxy corresponding to the next VAS node and the next VAS node respectively execute the processes in S907-S914 in sequence until the operation instruction in the SID of the Proxy corresponding to the current VAS node is determined to be a third field, and the forwarding process is ended.
S915, the SFF sends a second data message to the post node. Correspondingly, the back-end node receives a second data message from the SFF.
S916, the back-end node forwards the second data packet.
The specific implementation manner of S916 may refer to S609 described above, which is not described herein again.
In the above, a method for completing a bypass VAS node detection service for a first data packet by copying 1 first data packet in an Unaware mode is provided.
The data method of the present application in method 2 is also described above with reference to scene 3 and scene 4.
The method 2 at least has the following beneficial effects: the SFF obtains N second data messages according to the first data message, wherein first N-1 second data messages in the N second data messages are respectively sent to corresponding VAS nodes (or sent to corresponding VAS nodes through proxy of the VAS nodes) for value added service processing, and the nth second data message is directly subjected to subsequent forwarding processing. The VAS is carried out on the data message, the data transmitted subsequently is not processed, the stability and the reliability of data transmission are improved, and the time delay of data message transmission is reduced. In addition, the SFF only needs to copy 1 first data message to determine the second data message, and the pressure caused by processing the second data by the SFF is reduced.
It can be seen that the technical solutions provided in the embodiments of the present application are mainly introduced from the perspective of methods. To implement the above functions, it includes hardware structures and/or software modules for performing the respective functions. Those of skill in the art will readily appreciate that the various illustrative modules and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
In the embodiment of the present application, the data transmission device may be divided into the functional modules according to the method example, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. Optionally, the division of the modules in the embodiment of the present application is schematic, and is only a logic function division, and there may be another division manner in actual implementation.
Fig. 10 is a schematic structural diagram of a data transmission device according to an embodiment of the present application. The data transmission device includes: a communication unit 1001 and a processing unit 1002. A communication unit 1001 configured to acquire a first data packet; the first data packet includes: the values of segment routing extension message headers SRH and SL and an original data message; the SRH comprises a plurality of SIDs, and the plurality of SIDs comprise SIDs corresponding to N-1 value added service VAS nodes and a post SID; n is an integer greater than or equal to 2; the value of SL is used to indicate the number of SIDs that need to be processed to reach the destination node; the SID corresponding to the VAS node is any one of the following items: the SID of the VAS node or the SID of the Proxy corresponding to the VAS node; a processing unit 1002, configured to determine at least two second data packets according to the first data packet; wherein the SL values of the at least two second data messages are different from the SL values of the first data message; the SL values of the second data messages in the at least two second data messages are different; the processing unit 1002 is further configured to forward or process the corresponding second data packet to the node corresponding to each second data packet according to the SID indicated by the value of the SL in each second data packet.
Optionally, the first data packet includes a first field, and the first field is used to indicate that the first data packet is copied; the processing unit 1002 is specifically configured to: copying the first data messages according to the first fields to obtain at least two first data messages; and adjusting the SL value of each first data message in the at least two first data messages respectively, and determining at least two second data messages.
Optionally, the first field is specifically used to indicate that N-1 first data packets are copied.
Optionally, the at least two first data packets are N first data packets; the at least two second data packets are N second data packets.
Optionally, the SL values in the N first data packets are all M, where M is a positive integer greater than or equal to N.
Optionally, the value of SL of the ith data packet in the N second data packets is M-i, where i is a positive integer less than or equal to N; when i is smaller than N, the value of SL of the ith data message is used for indicating SID corresponding to the ith VAS node in the N-1 VAS nodes; and when i is equal to N, the value of SL of the ith data message is used for indicating the postSID.
Optionally, the SID corresponding to the VAS node is a VAS SID; the processing unit 1002 is specifically configured to: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is the VAS SID of the ith VAS node; instructing the communication unit 1001 to send the ith second data packet to the ith VAS node.
Optionally, when i is smaller than N, the i-th VAS SID in the SRH in the i-th second data packet includes a second field; the second field is used for indicating that the VAS node does not need to forward the data message carrying the second field.
Optionally, the SID corresponding to the VAS node is the SID of the Proxy corresponding to the VAS node; the processing unit 1002 is specifically configured to: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is a Proxy SID corresponding to the ith VAS node; processing the ith second data message; instructing the communication unit 1001 to send the processed second data packet to the ith VAS node.
Optionally, when i is smaller than N, a Proxy SID corresponding to an ith VAS node in an SRH in an ith second data message includes a third field; the third field is used for indicating the Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node, and the processed second data message returned by the target VAS node does not need to be received.
Optionally, the first field is specifically used to indicate that 1 first data packet is copied.
Optionally, the at least two first data packets are two first data packets; the at least two second data messages are two second data messages.
Optionally, the SL in the two first data packets is both M, where M is a positive integer greater than or equal to N.
Optionally, the value of SL in the first of the two second data messages is M-1; the value of SL in the second data packet is M-N; the value of SL in the first second data message is used for indicating the SID corresponding to the 1 st VAS node in the N-1 VAS nodes; the value of SL in the second datagram is used to indicate the postsid.
Optionally, the SID corresponding to the VAS node is a VAS SID.
Optionally, the 1 st VAS node to the N-2 nd VAS SID in the SRH in the first second data packet include a fourth field; the fourth field is used for indicating the VAS node to carry out SL minus 1 operation on the data message carrying the fourth field, determining the SID indicated by the SL value after minus 1 operation, and sending the data message carrying the fourth field after SL-1 operation to the node indicated by the SL value after minus 1 operation; the N-1 VAS SID in the SRH in the first data message comprises a second field; the second field of the VAS node is used for indicating that the VAS node does not need to forward the data packet carrying the second field.
Optionally, the SID corresponding to the VAS node is a SID of the Proxy corresponding to the VAS node.
Optionally, the SID of the Proxy corresponding to the 1 st VAS node to the N-2 th VAS node in the SRH in the first second data packet includes a fifth field; the fifth field is used for indicating the Proxy to send the processed second data message to the corresponding VAS node and returning a third data message to the service function forwarder SFF, wherein the third data message is the data message determined by the Proxy corresponding VAS node according to the processed second data message; the N-1 VAS SID in the SRH in the first data message comprises a third field; the third field is used for indicating the Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node, and the processed second data message returned by the target VAS node does not need to be received.
Optionally, the processing unit 1002 is further configured to: instruct communications unit 1001 to receive a third data packet from Proxy; adding the SRH of the first second data message in the third data message, and subtracting 1 from the value of the SL in the SRH of the first second data message to obtain a fourth data message; determining the SID indicated by the value of SL in the fourth data packet; instructing the communication unit 1001 to transmit the fourth data packet to the Proxy corresponding to the SID indicated by the value of the SL in the fourth data packet.
Optionally, the first field is carried in the SFF SID of the first data packet.
Optionally, the first field is specifically carried in a Function field of the SFF SID of the first data packet.
Optionally, the first field is specifically carried in an alignment field of the SFF SID of the first data packet.
Optionally, the data transmission apparatus may further comprise a storage unit 1003 for storing program codes and/or data of the data transmission apparatus.
The processing unit 1002 may be a processor or a controller, among others. Which may implement or perform the various illustrative logical blocks, modules, and circuits described in connection with the disclosure. A processor may also be a combination of computing functions, e.g., comprising one or more microprocessors, a DSP and a microprocessor, or the like. The communication unit 1001 may be a transceiver circuit or a communication interface or the like. The storage unit 1003 may be a memory. When the processing unit 1002 is a processor, the communication unit 1001 is a communication interface, and the storage unit 1003 is a memory, the data transmission device according to the embodiment of the present application may be the data transmission device shown in fig. 1.
Through the description of the above embodiments, it is clear to those skilled in the art that, for convenience and simplicity of description, the foregoing division of the functional modules is merely used as an example, and in practical applications, the foregoing function distribution may be completed by different functional modules according to needs, that is, the internal structure of the network node is divided into different functional modules to complete all or part of the above described functions. For the specific working processes of the system, the module and the network node described above, reference may be made to the corresponding processes in the foregoing method embodiments, which are not described herein again.
The embodiment of the present application further provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the instructions are executed by a computer, the computer executes each step in the method flow shown in the above method embodiment.
Embodiments of the present application provide a computer program product comprising instructions which, when run on a computer, cause the computer to perform the training method of the above-described method embodiments.
The computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, and a hard disk. Random Access Memory (RAM), Read-Only Memory (ROM), Erasable Programmable Read-Only Memory (EPROM), registers, a hard disk, an optical fiber, a portable Compact disk Read-Only Memory (CD-ROM), an optical storage device, a magnetic storage device, or any other form of computer-readable storage medium, in any suitable combination, or as appropriate in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. Of course, the storage medium may also be integral to the processor. The processor and the storage medium may reside in an Application Specific Integrated Circuit (ASIC). In embodiments of the invention, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Since the apparatus, the device, the computer-readable storage medium, and the computer program product in the embodiments of the present invention may be applied to the method described above, for technical effects obtained by the apparatus, the computer-readable storage medium, and the computer program product, reference may also be made to the method embodiments described above, and details of the embodiments of the present application are not repeated herein.
The above description is only an embodiment of the present application, but the scope of the present application is not limited thereto, and any changes or substitutions within the technical scope of the present disclosure should be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (46)

1. A method of data transmission, comprising:
acquiring a first data message; the first data packet includes: segment routing extension message header SRH, value of the remaining segment SL and original data message; the SRH comprises a plurality of Segment Identifiers (SIDs), and the SIDs comprise SIDs corresponding to N-1 value-added service VAS nodes and a post SID; n is an integer greater than or equal to 2; the value of SL is used to indicate the number of SIDs that need to be processed to reach the destination node; the SID corresponding to the VAS node is any one of the following items: the SID of the VAS node or the SID of the Proxy corresponding to the VAS node;
determining at least two second data messages according to the first data message; wherein the SL values of the at least two second data packets are different from the SL value of the first data packet; the SL values of the second data messages in the at least two second data messages are different;
and forwarding the corresponding second data message to the node corresponding to each second data message or processing the second data message according to the SID indicated by the SL value in each second data message.
2. The method of claim 1, wherein the first data packet includes a first field, and wherein the first field is used to indicate that the first data packet is copied;
determining at least two second data packets according to the first data packet, including:
copying the first data message according to the first field to obtain at least two first data messages;
and adjusting the SL value of each first data message in the at least two first data messages respectively, and determining the at least two second data messages.
3. The method of claim 2, wherein the first field is specifically configured to indicate that N-1 of the first data packets are to be replicated.
4. The method of claim 3, wherein the at least two first datagrams are N first datagrams; the at least two second data packets are N second data packets.
5. The method of claim 4, wherein the SL's in the N first data packets all have a value M, and M is a positive integer greater than or equal to N.
6. The method according to claim 5, wherein the value of SL of the ith data packet of the N second data packets is M-i, i is a positive integer less than or equal to N;
when i is smaller than N, the value of SL of the ith data message is used for indicating SID corresponding to the ith VAS node in the N-1 VAS nodes;
and when i is equal to N, the value of SL of the ith data message is used for indicating the postSID.
7. The method of claim 6, wherein the SID corresponding to the VAS node is vasssid; the forwarding, according to the SID indicated by the value of the SL in each second data message, the corresponding second data message to the node corresponding to each second data message includes:
determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is the VASSID of the ith VAS node;
and sending the ith second data message to the ith VAS node.
8. The method of claim 7, wherein in the case that i is less than N, a second field is included in an i-th vasssid in an SRH in the i-th second data message; the second field is used for indicating that the VAS node does not need to forward the data message carrying the second field.
9. The method according to claim 6, wherein the SID corresponding to the VAS node is the SID of the Proxy corresponding to the VAS node; the processing the second data message according to the SID indicated by the value of the SL in each second data message includes:
determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is a Proxy SID corresponding to the ith VAS node;
processing the ith second data message;
and sending the processed second data message to the ith VAS node.
10. The method according to claim 9, wherein in case i is smaller than N, a third field is included in SID of Proxy corresponding to ith VAS node in SRH in the ith second data message; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving the data message returned from the target VAS node.
11. The method of claim 2, wherein the first field is specifically configured to indicate that 1 of the first data packets is duplicated.
12. The method of claim 11, wherein the at least two first datagrams are two first datagrams; the at least two second data packets are two second data packets.
13. The method of claim 12, wherein the SL in both of the two first data packets has a value M, and wherein M is a positive integer greater than or equal to N.
14. The method of claim 13, wherein the SL in the first of the two second data messages has a value of M-1; the value of SL in the second data packet is M-N;
the value of SL in the first second data message is used to indicate the SID corresponding to the 1 st VAS node of the N-1 VAS nodes;
the value of SL in the second data message is used to indicate the postsid.
15. The method of claim 14, wherein the SID corresponding to the VAS node is the vasssid.
16. The method of claim 15, wherein the 1 st to N-2 th vasssids in the SRH in the first second data message include a fourth field therein; the fourth field is used for indicating a VAS node to perform SL minus 1 operation on the data message carrying the fourth field, determining a SID indicated by the SL value after the minus 1 operation, and sending the data message carrying the fourth field after the SL-1 operation to the node indicated by the SL value after the minus 1 operation;
the (N-1) th VASSID in the SRH in the first data message comprises a second field; and the second field of the VAS node is used for indicating that the VAS node does not need to forward the data message carrying the second field.
17. The method of claim 14, wherein the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node.
18. The method according to claim 17, wherein a fifth field is included in the SID of Proxy corresponding to the 1 st to N-2 th VAS nodes in the SRH in the first second data message; the fifth field is used for indicating the Proxy to send the processed second data message to the corresponding VAS node and returning a third data message to the service function forwarder SFF, wherein the third data message is determined by the VAS node corresponding to the Proxy according to the processed second data message;
the (N-1) th VASSID in the SRH in the first data message comprises a third field; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
19. The method of claim 18, further comprising:
receiving the third data message from the Proxy;
adding the SRH of the first second data message into the third data message, and subtracting 1 from the value of the SL in the SRH of the first second data message to obtain a fourth data message;
determining a SID indicated by a value of SL in the fourth data packet;
and sending the fourth data message to a Proxy corresponding to the SID indicated by the SL value in the fourth data message.
20. The method of any of claims 2-7, 9 and 11-19, wherein the first field is carried in an SFF SID of the first datagram.
21. The method of claim 20, wherein the first field is specifically carried in a Function field of an SFF SID of the first data packet.
22. The method of claim 20, wherein the first field is specifically carried in an alignment field of the SFF SID of the first datagram.
23. A data transmission apparatus, comprising: a communication unit and a processing unit;
the communication unit is used for acquiring a first data message; the first data packet includes: segment routing extension message header SRH, value of the remaining segment SL and original data message; the SRH comprises a plurality of Segment Identifiers (SIDs), and the SIDs comprise SIDs corresponding to N-1 value-added service VAS nodes and a post SID; n is an integer greater than or equal to 2; the value of SL is used to indicate the number of SIDs that need to be processed to reach the destination node; the SID corresponding to the VAS node is any one of the following items: the SID of the VAS node or the SID of the Proxy corresponding to the VAS node;
the processing unit is used for determining at least two second data messages according to the first data message; wherein the SL values of the at least two second data packets are different from the SL value of the first data packet; the SL values of the second data messages in the at least two second data messages are different;
the processing unit is further configured to forward the corresponding second data packet to a node corresponding to each second data packet or process the second data packet according to the SID indicated by the value of the SL in each second data packet.
24. The apparatus of claim 23, wherein the first data packet includes a first field, and wherein the first field is used to indicate that the first data packet is copied;
the processing unit is specifically configured to: copying the first data message according to the first field to obtain at least two first data messages;
and adjusting the SL value of each first data message in the at least two first data messages respectively, and determining the at least two second data messages.
25. The apparatus of claim 24, wherein the first field is specifically configured to indicate that N-1 of the first data packets are to be replicated.
26. The apparatus according to claim 25, wherein the at least two first datagrams are N first datagrams; the at least two second data packets are N second data packets.
27. The apparatus of claim 26, wherein the SL values in the N first data packets are all M, and wherein M is a positive integer greater than or equal to N.
28. The apparatus according to claim 27, wherein the value of SL of the ith data packet of the N second data packets is M-i, i being a positive integer less than or equal to N;
when i is smaller than N, the value of SL of the ith data message is used for indicating SID corresponding to the ith VAS node in the N-1 VAS nodes;
and when i is equal to N, the value of SL of the ith data message is used for indicating the postSID.
29. The apparatus of claim 28, wherein the SID corresponding to the VAS node is vasssid; the processing unit is specifically configured to: determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is the VASSID of the ith VAS node;
and instructing the communication unit to send the ith second data message to the ith VAS node.
30. The apparatus of claim 29, wherein in the case that i is less than N, a second field is included in an i-th vasssid in an SRH in the i-th second data message; the second field is used for indicating that the VAS node does not need to forward the data message carrying the second field.
31. The apparatus according to claim 28, wherein the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node; the processing unit is specifically configured to:
determining the ith second data message in the N second data messages; the SID indicated by the SL value in the ith second data message is a Proxy SID corresponding to the ith VAS node;
processing the ith second data message; and instructing the communication unit to send the processed second data message to the ith VAS node.
32. The apparatus according to claim 31, wherein in case i is smaller than N, a third field is included in SID of Proxy corresponding to i-th VAS node in SRH in the i-th second data message; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
33. The apparatus of claim 24, wherein the first field is specifically configured to indicate that 1 of the first data packets is to be copied.
34. The apparatus according to claim 33, wherein the at least two first datagrams are two first datagrams; the at least two second data packets are two second data packets.
35. The apparatus of claim 34, wherein the SL in the two first data packets has a value of M, and wherein M is a positive integer greater than or equal to N.
36. The apparatus of claim 35, wherein the SL in a first of the two second data messages has a value of M "1; the value of SL in the second data packet is M-N;
the value of SL in the first second data message is used to indicate the SID corresponding to the 1 st VAS node of the N-1 VAS nodes;
the value of SL in the second data message is used to indicate the postsid.
37. The apparatus of claim 36, wherein the SID corresponding to the VAS node is the vasssid.
38. The apparatus of claim 37, wherein a fourth field is included in from 1 st VAS node to N-2 th vasssid in the SRH in the first second data message; the fourth field is used for indicating a VAS node to perform SL minus 1 operation on the data message carrying the fourth field, determining a SID indicated by the SL value after the minus 1 operation, and sending the data message carrying the fourth field after the SL-1 operation to the node indicated by the SL value after the minus 1 operation;
the (N-1) th VASSID in the SRH in the first data message comprises a second field; and the second field of the VAS node is used for indicating that the VAS node does not need to forward the data message carrying the second field.
39. The apparatus of claim 36, wherein the SID corresponding to the VAS node is a SID of a Proxy corresponding to the VAS node.
40. The apparatus according to claim 39, wherein a fifth field is included in the SID of Proxy corresponding to the 1 st VAS node to the N-2 nd VAS node in the SRH in the first second data message; the fifth field is used for indicating the Proxy to send the processed second data message to the corresponding VAS node and returning a third data message to the service function forwarder SFF, wherein the third data message is determined by the VAS node corresponding to the Proxy according to the processed second data message;
the (N-1) th VASSID in the SRH in the first data message comprises a third field; and the third field is used for indicating a Proxy corresponding to the target VAS node to send the processed second data message to the target VAS node without receiving a data message returned from the target VAS node.
41. The apparatus of claim 40, wherein the processing unit is further configured to:
instructing the communication unit to receive the third data packet from the Proxy;
adding the SRH of the first second data message into the third data message, and subtracting 1 from the value of the SL in the SRH of the first second data message to obtain a fourth data message;
determining a SID indicated by a value of SL in the fourth data packet;
and instructing the communication unit to send the fourth data message to a Proxy corresponding to the SID indicated by the SL value in the fourth data message.
42. The apparatus of any of claims 24-29, 31 and 33-41, wherein the first field is carried in an SFF SID of the first datagram.
43. The apparatus of claim 42, wherein the first field is specifically carried in a Function field of an SFF SID of the first data packet.
44. The apparatus of claim 42, wherein the first field is specifically carried in an alignment field of an SFF SID of the first datagram.
45. An electronic device, comprising: a processor and a memory; wherein the memory is configured to store computer-executable instructions that, when executed by the electronic device, are executed by the processor to cause the electronic device to perform the data transmission method of any of claims 1-22.
46. A computer-readable storage medium, comprising instructions that when executed by an electronic device cause the computer to perform the data transmission method of any of claims 1-22.
CN202111470049.XA 2021-12-03 2021-12-03 Data transmission method, device, electronic equipment and storage medium Active CN114285907B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111470049.XA CN114285907B (en) 2021-12-03 2021-12-03 Data transmission method, device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111470049.XA CN114285907B (en) 2021-12-03 2021-12-03 Data transmission method, device, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN114285907A true CN114285907A (en) 2022-04-05
CN114285907B CN114285907B (en) 2023-05-26

Family

ID=80870801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111470049.XA Active CN114285907B (en) 2021-12-03 2021-12-03 Data transmission method, device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN114285907B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915455A (en) * 2022-04-24 2022-08-16 华控清交信息科技(北京)有限公司 Ciphertext data transmission method and device for ciphertext data transmission

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090046627A1 (en) * 2007-08-13 2009-02-19 Sharp Laboratories Of America, Inc. METHOD AND SYSTEM FOR CONTROL OF DISCONTINUOUS RECEPTION (DRX) BY A MOBILE DEVICE IN A WIRELESS COMMUNICATIONS NETWORK SUPPORTING VOICE-OVER-INTERNET-PROTOCOL (VoIP)
AU2014354005B8 (en) * 2014-11-27 2016-07-28 Komatsu Ltd. System for managing mining machinery, method for managing mining machinery, and dump truck
CN110832813A (en) * 2017-06-27 2020-02-21 思科技术公司 Ethernet virtual private network using segmented routing
WO2020249035A1 (en) * 2019-06-14 2020-12-17 华为技术有限公司 Method and device for implementing service function processing
CN112350934A (en) * 2019-08-07 2021-02-09 中国电信股份有限公司 Data transmission method, network node and data transmission system
CN112491926A (en) * 2020-12-11 2021-03-12 迈普通信技术股份有限公司 SRv6 path quality measuring method, device, electronic equipment and storage medium
CN112583745A (en) * 2019-09-27 2021-03-30 华为技术有限公司 Method, equipment and system for forwarding message in SR network
WO2021089052A1 (en) * 2019-11-08 2021-05-14 华为技术有限公司 Packet transmission method, proxy node, and storage medium
CN113411259A (en) * 2021-06-30 2021-09-17 新华三技术有限公司 Message forwarding method, device and equipment
CN113542118A (en) * 2020-04-13 2021-10-22 中兴通讯股份有限公司 Segmented routing header compression method, service processing method and device
CN113556284A (en) * 2020-04-24 2021-10-26 中国移动通信有限公司研究院 Data packet processing method and device
CN113691448A (en) * 2020-05-18 2021-11-23 华为技术有限公司 SRv6 method for forwarding message in service chain, SFF and SF device

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090046627A1 (en) * 2007-08-13 2009-02-19 Sharp Laboratories Of America, Inc. METHOD AND SYSTEM FOR CONTROL OF DISCONTINUOUS RECEPTION (DRX) BY A MOBILE DEVICE IN A WIRELESS COMMUNICATIONS NETWORK SUPPORTING VOICE-OVER-INTERNET-PROTOCOL (VoIP)
AU2014354005B8 (en) * 2014-11-27 2016-07-28 Komatsu Ltd. System for managing mining machinery, method for managing mining machinery, and dump truck
CN110832813A (en) * 2017-06-27 2020-02-21 思科技术公司 Ethernet virtual private network using segmented routing
WO2020249035A1 (en) * 2019-06-14 2020-12-17 华为技术有限公司 Method and device for implementing service function processing
CN112350934A (en) * 2019-08-07 2021-02-09 中国电信股份有限公司 Data transmission method, network node and data transmission system
CN112583745A (en) * 2019-09-27 2021-03-30 华为技术有限公司 Method, equipment and system for forwarding message in SR network
WO2021089052A1 (en) * 2019-11-08 2021-05-14 华为技术有限公司 Packet transmission method, proxy node, and storage medium
CN113542118A (en) * 2020-04-13 2021-10-22 中兴通讯股份有限公司 Segmented routing header compression method, service processing method and device
CN113556284A (en) * 2020-04-24 2021-10-26 中国移动通信有限公司研究院 Data packet processing method and device
CN113691448A (en) * 2020-05-18 2021-11-23 华为技术有限公司 SRv6 method for forwarding message in service chain, SFF and SF device
CN112491926A (en) * 2020-12-11 2021-03-12 迈普通信技术股份有限公司 SRv6 path quality measuring method, device, electronic equipment and storage medium
CN113411259A (en) * 2021-06-30 2021-09-17 新华三技术有限公司 Message forwarding method, device and equipment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄建洋;兰巨龙;胡宇翔;马腾;: "一种基于分段路由的多路径流传输机制" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915455A (en) * 2022-04-24 2022-08-16 华控清交信息科技(北京)有限公司 Ciphertext data transmission method and device for ciphertext data transmission

Also Published As

Publication number Publication date
CN114285907B (en) 2023-05-26

Similar Documents

Publication Publication Date Title
US11463561B2 (en) Enhanced segment routing processing of packets
CN108293020B (en) Service forwarding unique to infrastructure
US11979322B2 (en) Method and apparatus for providing service for traffic flow
US10516610B2 (en) Segment routing packet policies and functions providing processing signaling and packet forwarding efficiencies in a network
JP7481436B2 (en) Method, device and system for forwarding packets in a SR network
EP3780517B1 (en) Method and apparatus for processing multicast data packet
US20180278521A1 (en) System and method for providing a bit indexed service chain
US10693790B1 (en) Load balancing for multipath group routed flows by re-routing the congested route
US10397116B1 (en) Access control based on range-matching
CN112468397B (en) IPv6 message processing method and device
CN105337881A (en) Data message processing method, service node and stream guiding point
US20240187346A1 (en) Systems and methods for scalable validation of multiple paths in a network using segment routing
CN111131539B (en) Message forwarding method and device
WO2020182085A1 (en) Transmission method and device for message
CN115589389A (en) Method, system, equipment and storage medium for processing ACL
CN114285907B (en) Data transmission method, device, electronic equipment and storage medium
CN110022263B (en) Data transmission method and related device
US20230254246A1 (en) Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (sr-mpls) networks
CN115834472A (en) Message processing method, forwarding strategy obtaining method and device
CN111770049B (en) Global cache variable and message information storage method and device
WO2021088433A1 (en) Message processing method, device and system
CN113364676B (en) Method and device for processing data stream
CN115865802B (en) Flow mirroring method and device of virtual instance, virtual machine platform and storage medium
US11368354B2 (en) Multi-result lookups
WO2024001701A1 (en) Data processing method, apparatus and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant