WO2023115367A1 - 一种多协议数据传输方法及装置、网络和存储介质 - Google Patents
一种多协议数据传输方法及装置、网络和存储介质 Download PDFInfo
- Publication number
- WO2023115367A1 WO2023115367A1 PCT/CN2021/140331 CN2021140331W WO2023115367A1 WO 2023115367 A1 WO2023115367 A1 WO 2023115367A1 CN 2021140331 W CN2021140331 W CN 2021140331W WO 2023115367 A1 WO2023115367 A1 WO 2023115367A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- protocol
- packet
- protocol type
- type information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Definitions
- the present application relates to the technical field of network communication, in particular to a multi-protocol data transmission method and device, a network and a storage medium.
- heterogeneous transmission protocols such as IP protocol, NDN protocol, QUIC protocol, computing power network transmission protocol, etc.
- IP protocol IP protocol
- NDN protocol NDN protocol
- QUIC protocol computing power network transmission protocol
- These heterogeneous protocols need to be Integrated processing on network layer devices, but their respective transmission semantics are different, and different hardware devices are required for transmission during forwarding.
- the first kind of idea is to convert between protocols by setting gateway nodes, so as to achieve the purpose of network integration
- the second kind of idea is to support A programmable open switch with software and hardware of different protocols coordinated to achieve the purpose of network convergence.
- the two are based on TCP to realize the integration of the two networks.
- Two gateway nodes are set at the edge of the network. These two gateway nodes are respectively connected to the sender and receiver of TCP. After receiving the TCP message, the gateway node will perform protocol conversion; however, the communication semantics of the TCP protocol and the NDN protocol are different.
- the TCP protocol is an end-to-end protocol, while the NDN protocol is a content-oriented protocol. Complete multi-path data transmission; in addition, the TCP protocol is a push process, and the NDN protocol is a pull process, and the two cannot achieve protocol matching.
- NDN and IP are completely separated, NDN is no longer deployed on IP, but NDN is deployed on Ethernet, and NDN is directly performed on the link layer Forwarding and transmission of data packets; the disadvantage of this method is that it is more difficult to deploy.
- the research in the field of TCP/IP and NDN network integration is not yet mature, and the necessary technical support is lacking.
- the technical problem mainly solved by the application is: how to improve the multi-protocol processing capability of the switch.
- the present application proposes a multi-protocol data transmission method and device, network and storage medium.
- an embodiment provides a data transmission method supporting multiple protocols, including: obtaining a data packet of a preset protocol type; decomposing the data packet to obtain packet header data and packet body data; parsing the packet header Data obtains protocol type information and/or forwarding path label information; selects a matching data processing channel from multiple data processing channels according to the protocol type information; performs protocol type information on the header data according to the matching data processing channel conversion, and/or update forwarding path label information to obtain new packet header data; recombine the new packet header data and the packet body data, and transmit the reassembled data packet.
- the analyzing the packet header data to obtain protocol type information and/or forwarding path label information includes: parsing the packet header data according to a preset finite state machine to obtain the protocol type information of the packet header data; and/or, analyzing and obtaining The user-defined vector inserted in the header data, and the forwarding path label information of the header data is obtained according to the user-defined vector.
- the protocol type information includes one or more of TCP/IP protocol, NDN protocol, computing power orchestration protocol, blockchain protocol, cryptographic protocol, QUIC protocol, and DCCP protocol.
- the parsing the header data according to the preset finite state machine to obtain the protocol type information of the header data includes: identifying a plurality of custom fields in the header data according to the finite state machine, and the plurality of The self-defined field includes an ehtertype field, an ip_proto field and a tl_code field; according to the ehtertype field, it is judged which one of the IPv6 protocol, the IPv4 protocol and the NDN protocol the protocol type information of the header data belongs to; if it belongs to the IPv6 protocol or the IPv4 protocol In this case, according to the ip_proto field, it is judged that the protocol type information of the data packet is UDP type or TCP type; in the case of the NDN protocol, according to the tl_code field, it is judged that the protocol type information of the data packet is Interest packet transmission type or packet transfer type.
- the converting the protocol type information of the packet header data according to the matching data processing channel, and/or updating the forwarding path label information to obtain new packet header data includes: matching the protocol type information
- the data processing channel preprocesses the data packet to obtain an execution action of the data packet; performs conversion processing of protocol type information on the header data in the data packet according to the execution action, and/or performs forwarding path labeling Update processing of information to obtain new header data.
- the preprocessing of the data packet through the data processing channel matching the protocol type information to obtain the execution action of the data packet includes: obtaining multiple data processing channels according to the protocol type information A protocol matching action table; configure the data packet according to the multi-protocol matching action table to obtain an execution action for the data packet; the multi-protocol action matching table is used for prefix masking of the network and routing of devices field and the port number of the output end to perform address labeling; the execution action includes the operation of protocol conversion and/or the operation of label update.
- performing conversion processing of the protocol type information on the header data in the data packet, and/or updating the forwarding path label information to obtain new header data includes: when the execution action indicates During the operation of protocol conversion, the protocol type contained in the packet header data is replaced by the preset target network protocol to realize the conversion of protocol type information; when the execution action indicates the label update operation, the data is used Perform mathematical operations on the unique feature matrix of the network transmission device that the packet passes through and the custom vector inserted in the packet header data to update the label information of the forwarding path; when the execution action indicates the operation of protocol conversion and label update, Using the target network protocol to replace the protocol type contained in the packet header data, and using the unique feature matrix of the network transmission device through which the data packet passes and the user-defined vector inserted in the packet header data to perform mathematical operations.
- the recombining the new packet header data and the packet body data, and transmitting the reassembled data packet includes: splicing the new packet header data and the packet body data to obtain a spliced reorganized data packet ; Outputting the reassembled data packet from a preset network port, so as to transmit the reassembled data packet through the network.
- an embodiment provides a network transmission device, including: a network port, used to access the Internet, and send and receive data packets transmitted by the Internet; a processor, connected to the network port, for Obtain a preset type of data packet from the network port, decompose the data packet to obtain packet header data and packet body data, parse the packet header data to obtain protocol type information and/or forwarding path label information, according to the protocol type information Select a matching data processing channel from multiple data processing channels, convert the protocol type information of the packet header data according to the matching data processing channel, and/or update the forwarding path label information, and obtain new packet header data , and recombine the new packet header data and the packet body data, and output the reassembled data packet from the network port.
- the processor includes an analysis module; the analysis module analyzes the header data according to a preset finite state machine to obtain the protocol type information of the header data; and/or, the analysis module analyzes and obtains the packet header data
- the inserted custom vector is used to obtain the forwarding path label information of the header data according to the custom vector;
- the protocol type information includes TCP/IP protocol, NDN protocol, computing power arrangement protocol, blockchain protocol, cryptographic protocol, One or more of the QUIC protocol and the DCCP protocol.
- the parsing module parses the header data according to a preset finite state machine, and obtains the protocol type information of the header data, including: the parsing module identifies a plurality of custom-defined header data according to the finite state machine field, the multiple custom fields include ehtertype field, ip_proto field and tl_code field; the parsing module judges which of IPv6 protocol, IPv4 protocol and NDN protocol the protocol type information of the header data belongs to according to the ehtertype field Or; in the case of IPv6 protocol or IPv4 protocol, the analysis module judges the protocol type information of the data packet according to the ip_proto field to be UDP type or TCP type; in the case of NDN agreement, the analysis module According to the tl_code field, it is judged that the protocol type information of the data packet is an Interest packet transmission type or a data packet transmission type.
- the processor also includes a plurality of data processing channels that are respectively matched with a plurality of different protocol type information; among the plurality of data processing channels, the data processing channel that matches the protocol type information receives the data packet; and
- the data processing channel matching the protocol type information calls the corresponding multi-protocol matching action table; the data processing channel matching the protocol type information configures the data packet according to the multi-protocol matching action table to obtain The execution action for the data packet;
- the multi-protocol action matching table is used to address the prefix mask of the network, the routing field of the device and the port number of the output end; the execution action includes the operation of protocol conversion, and/ or label update operations.
- the processor also includes an interaction module; when the interaction module judges that the execution action indicates a protocol conversion operation, it uses a preset target network protocol to replace the protocol type contained in the packet header data, so as to realize the protocol type information conversion; when the interaction module judges that the execution action indicates that the label is updated, it uses the unique feature matrix of the network transmission device through which the data packet passes and the custom vector inserted in the header data to perform mathematical operations to obtain Realize the update of forwarding path label information; when the interaction module judges that the execution action indicates the operation of protocol conversion and label update, use the target network protocol to replace the protocol type contained in the packet header data, and use the data packet Mathematical operations are performed on the unique characteristic matrix of the network transmission device and the custom vector inserted in the packet header data.
- the processor also includes a reassembly module; the reassembly module splices the new packet header data and the packet body data to obtain a spliced reassembly data packet; the reassembly module outputs the reassembly data from a network port packet, to perform network transmission on the reassembled data packet.
- the network transmission device is a switch, a router, a gateway or a network card.
- an embodiment provides a heterogeneous converged network, including a data plane and a control plane;
- the data plane includes a plurality of network transmission devices topologically connected, and each of the network transmission devices can support multiple communication protocol for data forwarding;
- the control plane is connected to the network transmission equipment in the data plane, and is used to control the data forwarding path of the network transmission equipment; in the data plane, each of the network
- the transmission device can obtain data packets of preset protocol types forwarded by other connected network transmission devices, decompose the data packets to obtain header data and packet body data;
- the network transmission device can parse the header data to obtain the protocol type information and forwarding path label information, select a matching data processing channel from multiple data processing channels according to the protocol type information, and perform protocol type information conversion and forwarding path on the header data according to the matching data processing channel Update the label information to obtain new packet header data;
- the network transmission device can reassemble the new packet header data and the packet body data, and transmit the reassembled data packet to the next
- an embodiment provides a computer-readable storage medium, where a program is stored on the medium, and the program can be executed by a processor to implement the data transmission method described in the first aspect above.
- a multi-protocol data transmission method and device, network, and storage medium according to the above-mentioned embodiments, wherein the data transmission method includes: obtaining a data packet of any protocol type in the multi-protocol type, decomposing the data packet to obtain packet header data and packet body data , analyze the packet header data to obtain protocol type information and/or forwarding path label information, select a matching data processing channel from multiple data processing channels according to the protocol type information, and perform protocol type information on the packet header data according to the matching data processing channel Convert, and/or update forwarding path label information, obtain new packet header data, reassemble new packet header data and packet body data, and transmit the reassembled data packet.
- the technical solution can analyze data packets of various protocol types, not only supporting conventional IPv4/IPv6 protocols of the same family, but also for those NDN protocols, computing power orchestration protocols, blockchain protocols, etc. with special heterogeneous characteristics Provide effective support to overcome compatibility issues between them, have strong adaptability to new SDN networks, and can also be oriented to some cutting-edge network architecture application scenarios, especially for certain specific protocol types using matching channels Special processing, so that it can support the forwarding tasks of multiple protocol data packets from the technical level; secondly, the technical solution can forward multiple data packets of different protocol types, with strong compatibility and small upgrade changes to the original devices.
- the technical solution can flexibly support different network protocols, and the support for new network protocols will not affect its support for existing network protocols, only need to configure more data processing
- the channel is enough, that is, incrementally modify the protocol analysis plug-in and protocol processing channel on the original basis, and add a new state jump to the new protocol on the finite state machine, and then propose a new protocol processing channel for the new protocol
- the technical solution can be applied to network transmission equipment such as routers, thereby providing a feasible technical route for the deployment of heterogeneous converged networks, which can support IP networks, NDN networks, computing power networks, and transmission layer distribution.
- the seamless fusion of protocols between the coordinated and controlled networks can realize the "progressive" upgrade requirements of the network
- FIG. 1 is a structural diagram of a network transmission device in an embodiment of the present application
- Fig. 2 is the structural representation of processor
- FIG. 3 is a flowchart of a data transmission method supporting multiple protocols in an embodiment of the present application
- Fig. 4 is the flowchart of parsing header data
- Fig. 5 is the flowchart of protocol conversion and label update
- Fig. 6 is a schematic diagram of the principle of information conversion
- FIG. 7 is a schematic structural diagram of a multi-protocol matching action table
- FIG. 8 is a structural diagram of a heterogeneous fusion network in an embodiment of the present application.
- FIG. 9 is a schematic structural diagram of the data layer
- Fig. 10 is a schematic diagram of the communication connection between the switch and the controller
- Figure 11 is a schematic diagram of the principle of a multi-protocol switch
- Fig. 12 is a structural diagram of a network transmission device in another embodiment of the present application.
- connection and “connection” mentioned in this application include direct and indirect connection (connection) unless otherwise specified.
- the technical solution of the present application constructs a transmission device and implementation method capable of supporting data packet forwarding of various protocol types, and is used to transmit data packets of various protocols in the network. Not only can it routinely support IP protocols, it can also support heterogeneous types of NDN protocols and computing power orchestration protocols, and the support for new network protocols will not affect the support for existing network protocols. It has strong compatibility and can be better Adapt to the network protocol requirements of the new network, so as to promote and use it in the cutting-edge network architecture.
- the technical solution of this application analyzes and identifies the data packet through the protocol analysis plug-in, which can identify the data packet of which protocol the current data packet belongs to.
- the protocol analysis plug-in parses the data packet, the data packet will enter the matching protocol processing pipeline for processing Processing, data packets of different protocols will enter different protocol processing pipelines respectively. For different protocols that require it, due to the coupling of the direct semantic function of the protocol, while the data is parallelly shunted and processed, some timing processes also perform status changes between related multiple parallel processing management channels according to status changes. and data coordination. After the data packet is processed by the protocol, it will be sent to the reverse analysis plug-in, reassembled to generate a new data packet, and then forwarded.
- the network transmission device 1 mainly includes a network port 11 and a processor 12 , which will be described separately below.
- the network port 11 is a network interface component, used for accessing the external Internet, and sending and receiving data packets transmitted by the Internet.
- the type of network port 11 may be any one of RJ-45 interface, RJ-11 interface, SC optical fiber interface, FDDI interface, AUI interface, and BNC interface.
- the processor 12 is connected with the network port 11, and its function is to obtain data packets of any one protocol type in the multi-protocol type from the network port 11, decompose the data packets to obtain packet header data and packet body data, and then analyze the packet header data to obtain protocol type information and/or forwarding path label information, select a matching data processing channel from multiple data processing channels according to the protocol type information, convert the protocol type information of the packet header data according to the matching data processing channel, and/or perform forwarding path
- the label information is updated to obtain new packet header data, reassemble the new packet header data and packet body data, and output the reassembled data packet from the network port.
- the processor 12 may be conventional logic processing components, such as CPU, MCU, FPGA, single-chip microcomputer, etc., and may even include some peripheral auxiliary electronic components, which will not be specifically described here.
- the processor 12 should have some logic processing capabilities, so as to realize the functions of decomposing, parsing, transmitting, protocol converting, label updating and reassembling of data packets.
- the processor 12 includes an analysis module 121 , multiple data processing channels (such as reference numerals 1221 , 1222 , 1223 , and 1224 ), an interaction module 123 and a reorganization module 124 , which are respectively described as follows.
- the data packet transmitted in the network may be any protocol type, such as a data packet of any one protocol type in the multi-protocol type
- the analysis module 121 needs to decompose the data packet to obtain the header data and the packet body data; since the header data is the rule information of data transmission, the analysis module 121 is required to further analyze the header data to obtain the protocol type information and/or forwarding path label information.
- the parsing module 121 may analyze the header data according to a preset finite state machine, so as to obtain the protocol type information of the header data. And/or, in another case, in order to obtain the forwarding path label information in the header data, the parsing module 122 can analyze and obtain the custom vector inserted in the packet header data, and obtain the forwarding path label information of the packet header data according to the custom vector .
- the protocol type information may include one of the TCP/IP protocol, NDN protocol, computing power orchestration protocol, blockchain protocol, cryptographic protocol, QUIC protocol, and DCCP protocol. one or more.
- the TCP/IP protocol and the NDN protocol are relatively conventional network protocols
- the computing power orchestration protocol, blockchain protocol, cryptographic protocol, QUIC protocol, and DCCP protocol are network protocols that are only used in specific applications.
- parsing module 121 can regard parsing module 121 as the protocol parsing plug-in in processor 12, after parsing module 121 receives the data packet of certain protocol type, first can be processed through the processing of protocol parsing plug-in, thereby the header of data packet Perform protocol analysis to identify which type of network protocol the current data packet is.
- the parsing module 121 can accept data packets of IP protocol type (including IPv4, IPv6), data packets of NDN protocol type (including NDN interest packets, NDN data packets), data packets of orchestration protocol type, and data packets of blockchain protocol type packets, and even packets of other protocol types are acceptable. It can be understood that for data packets of different protocol types, the parsing module 121 will identify the protocol type, and record the protocol type of the data packet in the metadata.
- the parsing module 121 parses the header data according to a preset finite state machine to obtain the protocol type information of the header data, including the following process:
- the parsing module 121 identifies multiple custom fields in the header data according to the finite state machine, where the multiple custom fields may include ehtertype field, ip_proto field and tl_code field.
- the parsing module 121 judges which one of the IPv6 protocol, IPv4 protocol and NDN protocol the protocol type information of the header data belongs to according to the ehtertype field.
- the parsing module 1212 will judge the protocol type information of the data packet as UDP type or TCP type according to the ip_proto field.
- the parsing module 121 judges that the protocol type of the packet header data belongs to the NDN protocol, the parsing module 121 will judge the protocol type information of the data packet according to the tl_code field as the transmission type of the interest packet or the transmission type of the data packet.
- FIG. 6 shows a finite state machine. Based on the finite state machine, the protocol type of the data packet can be judged, and there are different protocol jumps for data packets of different protocol types. Data packets of different protocol types are encapsulated into an Ethernet frame (Ethernet), so the parsing module 121 first parses the header of the Ethernet frame to obtain header data, and the header of the Ethernet frame will contain multiple custom fields.
- Ethernet Ethernet frame
- the protocol type inserted in the current packet header data is the IPv6 protocol; if the value of the ethertype field is 0x8000, the protocol type inserted in the current packet header data is the IPv4 protocol ; After identifying the IPv4 protocol and the IPv6 protocol, the value of the ip_proto field will be judged. If the value of the ip_proto field is 0x0017, the protocol type of the current packet is UDP; if the value of the ip_proto field is 0x0006, the current packet The protocol type is TCP type.
- the protocol type inserted in the current packet header data is the NDN protocol; after the NDN protocol is recognized, obtain the value of the tl_code field before making a judgment, if the value of tl_code is 0x05, the current data packet should be an NDN interest packet in terms of protocol type; if the value of tl_code is 0x06, the current data packet should be an NDN data packet in terms of protocol type; of course, for NDN interest packets and NDN data packets , the data identifier can be further judged by the tlv_type field.
- the NDN Interest packet (or NDN data packet) has the NDN Nonce identifier.
- the NDN Interest packet (or NDN data packet) has the NDN Name identifier.
- the parsing module 121 will record the protocol type of the data packet in the metadata, and will call the protocol type in the metadata in the next processing.
- the processor 12 includes multiple data processing channels 1221 , 1222 , 1223 , and 1224 respectively matched with multiple different protocol type information, and these data processing channels are used to respectively transmit and process data packets of specific protocol types, In this way, data transmission and processing efficiency are enhanced, and the forwarding tasks of data packets of various protocols are also supported.
- the multiple data processing channels 1221 , 1222 , 1223 , and 1224 shown in FIG. 2 are just an implementation manner, and the number of data processing channels can be flexibly increased or decreased according to actual requirements. It can also be understood that different data processing channels will process different types of data packets.
- data packets of the IPv4 protocol type will enter the data processing channel matching the IPv4 protocol for processing
- data packets of the IPv6 protocol type will enter the IPv6 protocol type.
- Protocol matching data processing channel for processing NDN protocol type data packets will enter the NDN protocol matching data processing channel for processing
- orchestration protocol type data packets will enter the orchestration protocol matching data processing channel for processing
- blockchain Data packets of the protocol type will enter the data processing channel matching the blockchain protocol for processing
- data packets of other protocol types will enter the data processing channel matching other protocols for processing, which will not be explained here.
- the protocol type information of the data packet has been known after the data packet passes through the parsing module 121, so for multiple data processing channels 1221, 1222, 1223, 1224, the protocol type information in these multiple data processing channels
- the matching data processing channel (such as 1221) can receive the data packet forwarded from the analysis module 121, then the data processing channel 1221 matching the protocol type information calls the corresponding multi-protocol matching action table, and then, matches the protocol type information
- the data processing channel 1221 for information matching configures the data packet according to the multi-protocol matching action table, and obtains the execution action for the data packet.
- the multi-protocol action matching table here is used to mark the prefix mask of the network, the routing field of the device and the port number of the output end; the execution action here includes the operation of protocol conversion, and/or the operation of label update operate. It can be understood that for each data processing channel, not only data packets of matching protocol types can be transmitted, but also action configurations can be performed on the data packets; in addition, multiple data processing channels are composed of multi-protocol matching action tables, so they are also data packets The heart of the processing mechanism.
- the multi-protocol matching action table shown in Figure 7 the multi-protocol matching action table occupies a storage space of 9*16 bits, the first 8 bits store a longest prefix mask value, the middle 8*16 bits store the routing field, and the last 8 bits store the routing field. 8 bits are used to store the port number of the output port.
- the longest prefix mask value will be set to 32
- the middle 2*16 bits will be set to a 32-bit IPv4 destination address
- the middle 6*16 bits will be set to 0
- 8 bits will be set to the output port number. For example, if the IPv4 address is 10.118.0.2 and the output port is 3, the corresponding entry is the first entry in Figure 7 .
- the longest prefix mask value will be set to 128, the middle 8*16 bits will be set to the IPv6 destination address, and the last 8 bits will be set to the output port number.
- the IPv6 address is CDCD:910A:2222:5498:8475:1111:3900:2020, and the output port is 4, the corresponding entry is the second entry in Figure 7.
- the longest prefix mask value will be set to the number of name components * 16, and the number of middle name components * 16 bits will be set to the mapping value of the NDN name.
- the middle ( 8-number of name components)*16 bits will be set to 0, and the last 8 bits will be set to output port number 2, then the corresponding entry is the third entry in Figure 7.
- processor 12 includes interaction module 123, and interaction module 123 is connected with multiple data processing channels 1221, 1222, 1223, 1224; conversion, and/or update the forwarding path label information, so as to obtain new packet header data. Since each data processing channel obtains the execution action of the data packet after configuring the data packet according to the multi-protocol matching action, the interaction module 123 can perform the protocol conversion operation in the execution action and/or the label update operation on the data packet for further interaction.
- the purpose of performing the protocol conversion operation by the interaction module 123 is to realize cross-protocol process communication between different data processing channels, and to solve the interaction requirement of coupling protocols after data lane processing by supporting the conversion of protocol type information.
- the interaction module 123 when the interaction module 123 judges that the action indicates protocol conversion, it replaces the protocol type contained in the packet header data with the preset target network protocol, so as to realize the conversion of the protocol type information.
- the interaction module 123 when the interaction module 123 judges to perform the operation indicating that the label is updated, it uses the unique feature matrix of the network transmission equipment through which the data packet passes and the custom vector inserted in the packet header data to perform mathematical operations to realize the forwarding path Update of label information.
- the interaction module 123 judges to execute the operation indicating protocol conversion and label update
- the target network protocol is used to replace the protocol type contained in the packet header data, and the uniqueness of the network transmission equipment through which the data packet passes is used. Matrices do math with custom vectors interpolated in header data.
- the purpose of performing label update by the interaction module 123 is to compress and record the actual forwarding path information of the data packet passing through multiple network transmission devices (such as switches) through the label value.
- the ingress switch After the data packet enters the data plane composed of multiple switches, the ingress switch will execute the label insertion algorithm to insert the initial label value (that is, the custom vector) into the packet header data of the data packet.
- the label value will be updated by the switch through the label update algorithm, that is, the unique feature matrix of the switch and the custom vector inserted in the header data will perform mathematical operations; when the data packet reaches the end of the path, the egress switch will remove the label value and report Give the control plane of the upper layer, so that the controller in the control plane can know the actual forwarding path of the data packet in each switch.
- the label update algorithm that is, the unique feature matrix of the switch and the custom vector inserted in the header data will perform mathematical operations
- the interaction module 123 implements cross-protocol process communication between different data processing channels, and by supporting the conversion of protocol type information, it solves the problem of interaction requirements for coupling protocols after data lane processing, so that data packets can be processed in different protocols. Convert between types to achieve an overall interactive coupling relationship.
- the IP protocol is a one-way network protocol, and does not face the transmission problem of different addresses, while other network protocols need to face the transmission problem of different addresses, so the header data of different protocol data packets can be converted, supplemented and exchanged through the interaction module 123. / or delete. For example, for the data packets of the orchestration protocol and the transmission protocol, each has a channel.
- the orchestration protocol After the orchestration protocol makes a decision-making task and "pairs" with the network transmission device such as a router, it informs the transmission protocol and initiates the relevant "data transmission” to the "selected” one. Router node; during this period, the orchestration protocol needs to return information such as the IP protocol address of the transmission protocol to the task demander. Under the constraints of the sequence relationship, after the task party's data "roams" to the "selected” router and the calculation is completed, it needs to Returns the task completion status; finally, the calculation result is returned from the "transport protocol", or from the orchestration protocol to the "requester". Protocol conversion, supplementation and/or deletion of packet header data of different protocol data packets can be realized through the above-mentioned method, thereby forming new packet header data.
- the processor 12 includes a reassembly module 124, which is connected to the interaction module 123, and its function is to reassemble new packet header data and packet body data and transmit the reassembled data packet.
- the reassembly module 124 splices the new packet header data and the packet body data to obtain a spliced reassembled data packet; For network transmission.
- the reassembly module 124 can be regarded as a data packet reassembly plug-in. When a data packet passes through a specific data processing channel and an interaction module, these two modules will involve disassembly and modification of the data packet. Therefore, the When the data packet is forwarded, the data packet needs to be reassembled and forwarded through the data packet reassembly plug-in.
- the network transmission device 1 involved may be a switch, a router, a gateway or a network card, as long as it can perform networking and data packet processing, and the specific hardware type is not limited.
- the network transmission device in this embodiment can analyze multiple protocol data packets, and further support the forwarding task of multiple protocol data packets. Each goes its own way to reduce the congestion in the data processing process, and at the same time, the processing logic is clearer.
- this embodiment solves the problem of interaction requirements of the coupling protocol after the data packet is divided into channels.
- the data packet can realize the interactive transformation on the protocol, and there is a coupling relationship on the whole.
- Task router then this router can realize the transfer and transmission of data packets through protocol conversion, avoiding the occurrence of congested transmission of many data packets on a single router.
- this embodiment discloses a data transmission method supporting multiple protocols, and the data transmission method is mainly applied to the processor 12 .
- the data transmission method may include steps 210-260, which will be described respectively below.
- Step 210 acquiring data packets of any one protocol type in the multi-protocol types.
- the parsing module 121 in the processor 12 obtains a data packet with a certain protocol type from the network 11.
- the data packet can have TCP/IP protocol, NDN protocol, computing power orchestration protocol, blockchain Any protocol type in protocol, cryptographic protocol, QUIC protocol, and DCCP protocol.
- Step 220 disassemble the data packet to obtain packet header data and packet body data.
- the parsing module 121 after the parsing module 121 obtains a data packet of any protocol type in the multi-protocol type from the network port 11, the parsing module 121 needs to decompose the data packet to obtain packet header data and packet body data.
- Step 230 analyzing the packet header data to obtain protocol type information and/or forwarding path label information.
- the parsing module 121 is required to further parse the packet header data to obtain protocol type information and/or forwarding path label information.
- the parsing module 121 may analyze the header data according to a preset finite state machine, so as to obtain the protocol type information of the header data.
- the parsing module 122 can analyze and obtain the custom vector inserted in the header data, and obtain the forwarding path label information of the packet header data according to the custom vector.
- the protocol type information may include one of TCP/IP protocol, NDN protocol, computing power arrangement protocol, blockchain protocol, cryptographic protocol, QUIC protocol, DCCP protocol or many.
- Step 240 Select a matching data processing channel from multiple data processing channels according to the protocol type information.
- Channels are used to transmit and process packets of a specific protocol type respectively.
- Different data processing channels will process different types of data packets. For example, data packets of the IPv4 protocol type will enter the data processing channel matching the IPv4 protocol for processing, and data packets of the IPv6 protocol type will enter the data processing channel matching the IPv6 protocol.
- Processing channel for processing data packets of NDN protocol type will enter the data processing channel matching the NDN protocol for processing, data packets of the orchestration protocol type will enter the data processing channel matching the orchestration protocol for processing, data packets of the blockchain protocol type The packet will enter the data processing channel matching the blockchain protocol for processing, and the data packets of other protocol types will enter the data processing channel matching other protocols for processing.
- each data processing channel not only data packets of matching protocol type can be transmitted, but also action configuration can be performed on the data packets.
- the data packet is preprocessed through the data processing channel matching the protocol type information, so as to obtain the execution action of the data packet.
- the data processing channel matches the information of a certain protocol type, when processing the transmitted data packet, it is necessary to call the corresponding multi-protocol matching action table, and then configure the data packet according to the multi-protocol matching action table, and obtain the The execution action of the packet.
- the multi-protocol action matching table here is used to mark the prefix mask of the network, the routing field of the device and the port number of the output end; the execution action here includes the operation of protocol conversion, and/or the operation of label update operate.
- the multi-protocol matching action table refer to the three entries in FIG. 7 and related descriptions in Embodiment 1, which will not be repeated here.
- Step 250 Convert the protocol type information of the packet header data according to the matching data processing channel, and/or update the forwarding path label information to obtain new packet header data.
- the interaction module 123 can perform the protocol conversion operation and/or label update according to the execution action The operation of the data packet is further interactively processed.
- the interaction module 123 converts the protocol type information and/or updates the forwarding path label information to the header data in the data packet according to the execution action to obtain new header data.
- Case 1 when the interaction module 123 judges to perform the operation indicating protocol conversion, it uses the preset target network protocol to replace the protocol type contained in the packet header data, so as to realize the conversion of the protocol type information.
- the interaction module 123 when the interaction module 123 judges to execute the operation indicating that the label is updated, it uses the unique feature matrix of the network transmission equipment through which the data packet passes and the custom vector inserted in the packet header data to perform mathematical operations to realize the forwarding path label information. renew.
- Case 3 when the interaction module 123 judges to execute the operation indicating protocol conversion and label update, it uses the target network protocol to replace the protocol type contained in the packet header data, and uses the unique feature matrix and packet header of the network transmission equipment through which the data packet passes. A custom vector interpolated in the data for mathematical operations.
- Step 260 reassemble the new packet header data and packet body data, and transmit the reassembled data packet.
- the reassembly module 124 in the processor 12 splices the new packet header data and the packet body data to obtain the spliced reorganization data packet; then, the reassembly module 124 outputs the reassembly data packet from the network port 11, For network transmission of reassembled packets.
- step 230 mainly involves the process of parsing the data packet header, wherein parsing the packet header data to obtain the protocol type information may specifically include steps 231-233, specifically referring to FIG. 4 , which are described as follows.
- Step 231 identify multiple custom fields in the packet header data according to the finite state machine, where the multiple custom fields include ehtertype field, ip_proto field and tl_code field.
- Step 232 judge according to the ehtertype field which one of the IPv6 protocol, IPv4 protocol and NDN protocol the protocol type information of the header data belongs to.
- Step 233 in the case of judging that the protocol type of the header data belongs to the IPv6 protocol or the IPv4 protocol, judge the protocol type information of the packet according to the ip_proto field to be a UDP type or a TCP type; or, determine that the protocol type of the header data belongs to the NDN protocol In this case, according to the tl_code field, it is judged that the protocol type information of the data packet is the transmission type of the interest packet or the transmission type of the data packet.
- steps 231-233 can be further described by means of the finite state machine shown in FIG. 6 .
- Data packets of different protocol types are encapsulated into an Ethernet frame (Ethernet), so the parsing module 121 first parses the header of the Ethernet frame to obtain header data, and the header of the Ethernet frame will contain multiple custom fields.
- Ethernet Ethernet frame
- the protocol type inserted in the current packet header data is the IPv6 protocol; if the value of the ethertype field is 0x8000, the protocol type inserted in the current packet header data is the IPv4 protocol ; After identifying the IPv4 protocol and the IPv6 protocol, the value of the ip_proto field will be judged. If the value of the ip_proto field is 0x0017, the protocol type of the current packet is UDP; if the value of the ip_proto field is 0x0006, the current packet The protocol type is TCP type.
- the protocol type inserted in the current packet header data is the NDN protocol; after the NDN protocol is recognized, obtain the value of the tl_code field before making a judgment, if the value of tl_code is 0x05, the current data packet should be an NDN interest packet in terms of protocol type; if the value of tl_code is 0x06, the current data packet should be an NDN data packet in terms of protocol type; of course, for NDN interest packets and NDN data packets , the data identifier can be further judged by the tlv_type field.
- the NDN Interest packet (or NDN data packet) has the NDN Nonce identifier.
- the NDN Interest packet (or NDN data packet) has the NDN Name identifier.
- the parsing module 121 will record the protocol type of the data packet in the metadata, and will call the protocol type in the metadata in the next processing.
- this step 250 mainly involves the process of protocol type conversion and label updating, so refer to FIG. 5 , this step 250 may specifically include steps 251-257, which are respectively described as follows.
- a multi-protocol matching action table is obtained according to the data processing channel matched with the protocol type information.
- the multi-protocol action matching table here is used to address the prefix mask of the network, the routing field of the device and the port number of the output terminal.
- Step 252 configure the data packet according to the multi-protocol matching action table, and obtain the execution action for the data packet.
- the execution action here includes the operation of protocol conversion and/or the operation of label update.
- Step 253 judging whether the execution action is an operation indicating protocol conversion, if so, go to step 255 , otherwise go to step 257 .
- step 254 it is judged whether the execution action is an operation indicating label update, if so, go to step 256, otherwise go to step 257.
- Step 255 when performing the operation indicating protocol conversion, use the preset target network protocol to replace the protocol type contained in the packet header data, so as to realize the conversion of the protocol type information.
- protocol type information conversion is to realize cross-protocol process communication between different data processing channels.
- the IP protocol is a one-way network protocol, and does not face the transmission problem of different addresses, while other network protocols need to face the transmission problem of different addresses, so the header data of different protocol data packets can be converted, supplemented and exchanged through the interaction module 123. /or delete to form new header data.
- Step 256 when performing the operation of updating the action instruction label, perform mathematical operations using the unique feature matrix of the network transmission equipment that the data packet passes through and the custom vector inserted in the header data, so as to update the forwarding path label information.
- the purpose of implementing the update of the forwarding path label information is to compress and record the actual forwarding path information of the data packet passing through multiple network transmission devices (such as switches) through the label value.
- the ingress switch After the data packet enters the data plane composed of multiple switches, the ingress switch will execute the label insertion algorithm to insert the initial label value (that is, the custom vector) into the packet header data of the data packet.
- the label value will be updated by the switch through the label update algorithm, that is, the unique feature matrix of the switch and the custom vector inserted in the header data will perform mathematical operations; when the data packet reaches the end of the path, the egress switch will remove the label value and report Give the control plane of the upper layer, so that the controller in the control plane can know the actual forwarding path of the data packet in each switch.
- the label update algorithm that is, the unique feature matrix of the switch and the custom vector inserted in the header data will perform mathematical operations
- Step 257 enter this step when the execution action does not indicate the operation of protocol conversion, or does not indicate the operation of label update, and may not perform any operation (that is, no operation), so as to be ready to enter the execution action judgment of the next data packet.
- this embodiment discloses a heterogeneous converged network.
- the heterogeneous converged network mainly includes a data plane 3 and a control plane 4 , which will be described separately below.
- Data plane 3 includes multiple network transmission devices connected topologically, and each network transmission device can support multiple communication protocols for data forwarding.
- Each network transmission device included in the data plane 3 may refer to the structure in FIG. 1 and FIG. 2 , and the network transmission device may be a switch, a router, a gateway or a network card.
- the control plane 4 is connected to the network transmission equipment in the data plane 3, and is used to control the data forwarding path of the network transmission equipment.
- multiple network transmission devices in the data plane 3 may be multiple switches connected topologically, such as switches 31, 32, 33, 34, 35, 36, and a controller 41 is deployed in the control plane 4 and the controller 41 is connected to each switch, and the controller 41 in the control plane 4 is used to control the data forwarding path of each switch in the data plane 3 .
- the purpose of each switch in the data layer 3 is to provide network access between different hosts. For the hosts 51, 52, 53, and 54 in FIG. It communicates with the switch 35, and the host 54 communicates with the switch 36. Each host relies on each switch to realize the interconnection and intercommunication of the network.
- each switch in the data layer presents a topology connection relationship, and individual switches are used as ingress switches.
- Data packets can be sent to the ingress switch one by one according to the data packet transmission queue, and the data packets for performing computing power (that is, computing power packets) can be sent to the ingress switch one by one according to the computing power task queue.
- data packets are forwarded by various switches on the data plane.
- each switch may decompose, analyze, transmit specific channels, protocol conversion, label update, recombination, etc. on the data packets, and then send the data packets to the WAN by the egress switch. to be transmitted to other user equipment, or the data packet (such as computing power packet) is sent to the cloud computing server by the egress switch to perform cloud computing.
- each network transmission device can obtain data packets of any protocol type in the multi-protocol types forwarded by other connected network transmission devices, and obtain the packet header by decomposing the data packets Data and packet body data; moreover, the network transmission device can analyze the packet header data to obtain the protocol type information and forwarding path label information, select a matching data processing channel from multiple data processing channels according to the protocol type information, and process according to the matching data The channel converts the protocol type information of the packet header data and updates the forwarding path label information to obtain new packet header data; in addition, the network transmission device can reorganize the new packet header data and packet body data, and send it to the next network on the forwarding path The transmitting device transmits the reassembled data packets.
- FIG. 10 can be used to represent the communication connection relationship between any switch (such as the switch 31 ) in the data plane 3 and the controller 41 in the control plane.
- the controller 41 can send detection packets to the switch 31 to actively detect the data forwarding paths of the switches in the data plane 3 for path consistency verification, and the switch 31 can also actively receive data packets of preset protocol types forwarded by other switches.
- the analysis module in the switch 31 decomposes the data packet to obtain the header data and the packet body data, and then analyzes the header data according to the preset finite state machine to obtain the protocol type information of the header data; Vector, get the forwarding path label information of the packet header data according to the custom vector.
- the data processing channel in the switch 31 that matches the protocol type information pre-processes the data packet, that is, executes an action to obtain the data packet through matching action processing.
- the interaction module in the switch 31 performs conversion processing of protocol type information on the header data in the data packet according to the execution action, and/or performs update processing of forwarding path label information to obtain new header data;
- the set target network protocol replaces the protocol type contained in the header data to realize the conversion of the protocol type information; in the label update process, the unique feature matrix of the network transmission equipment through which the data packet passes and the self-identity inserted in the header data are used.
- the vector is defined to perform mathematical operations, and the forwarding path label information is updated through the processing of the update algorithm, and the updated forwarding path label information can be reported to the controller 41 . Since the new packet header data is obtained, the new packet header data and packet body data can be reassembled, and then the reassembled data packet can be output.
- the processing process of the switch to decompose, analyze, transmit through a specific channel, convert the protocol, update the label, and reassemble the data packet can refer to Figure 11 .
- the parser that is, the parsing module
- the protocol type information of the data packet can be obtained by decomposing and parsing, such as NDN data packet, NDN interest packet, IPv4 data packet, IPv6 Which protocol type of data packet is in the data packet; the use of multiple data processing channels is the key mechanism for the switch to support multi-protocol data processing.
- the data processing channel matching the IPv4 protocol is used to transmit and configure IPv4 data packets
- the data processing channel matching the IPv6 protocol is used to transmit and configure IPv6 data packets
- the data processing channel matching the NDN protocol is used to transmit and configure NDN Interest packets and NDN data packets.
- Each data processing channel is configured with a multi-protocol matching action table to complete the configuration of the data packet, then a general multi-protocol matching action table can be used to support NDN interest packets (such as Interest-pkt) and NDN data packets (such as Data-pkt) , IPv4 data packets (such as IPv4-pkt) and IPv6 data packets (such as IPv6-pkt) processing.
- the multi-protocol matching action table can be specifically divided into FIB table and PIT table. Among them, the FIB table can not only support the forwarding of NDN interest packets but also support the forwarding of IPv4 and IPV6 data packets.
- Each row in the PIT table corresponds to a PIT code And it can support the forwarding of NDN data packets; in addition, the content storage area CS is used for buffering the received NDN data packets.
- the NDN data processing channel for processing NDN data packets is specifically defined.
- the NDN data processing channel consists of two matching action tables, namely the matching action table PIT and the matching action table NDN-FIB.
- Each interest packet that supports the NDN protocol will first pass through the content storage area CS, and then through the matching action table PIT and matching action table NDN-FIB.
- Each data packet supporting the NDN protocol will first pass through the matching action table PIT, and then pass through the content storage area CS.
- the IPv4 protocol specifically define the IPv4 data processing channel for processing IPv4 data packets.
- the IPv4 data processing channel is composed of the matching action table IPv4-FIB, and each data packet supporting the IPv4 protocol will be processed by the matching action table IPv4-FIB.
- the processing is specifically defined IPv6 data processing channel for IPv6 packets, e.g., IPv6
- the data processing channel is composed of the matching action table IPv6-FIB, and each IPv6 protocol data packet will be processed by the matching action table IPv6-FIB.
- a general multi-protocol matching action table can be used to support the processing of NDN interest packets, NDN data packets, IPv4 data packets and IPv6 data packets at the same time.
- the general multi-protocol matching action table please refer to Figure 7.
- the parser that is, the parsing module
- the parsing module in the switch decomposes and parses the data
- not only the header data and packet body data of the data packet can be obtained, but also the protocol type information and forwarding path label of the packet header data can be obtained information.
- the data processing channel that matches the protocol type information will preprocess the data packet, that is, the execution action of the data packet is obtained through matching action processing.
- the interaction module in the switch will convert the protocol type information of the packet header data in the data packet according to the execution action, and/or update the forwarding path label information to obtain new packet header data.
- the switch needs to use the preset target network protocol to replace the protocol type contained in the packet header data, so as to realize the conversion of the protocol type information; in the label update process, the switch needs to use the The unique feature matrix of the network transmission device performs mathematical operations with the custom vector inserted in the packet header data, and the forwarding path label information is updated through the processing of the update algorithm. At this time, the updated forwarding path label information can be reported.
- the reverse parser in the switch (that is, the reassembly module) reassembles the new packet header data and the original packet body data to obtain a new data packet, that is, the reassembled data packet; of course, the reassembly module uses the data packet transmission interface, The reassembled data packet is sent to the network for further forwarding, or the data packet can be discarded directly to enter the next cycle, and the next data packet is processed by the parser in the next cycle.
- the switch that forwards data packets on the actual path for the first time is defined as the ingress switch
- the switch that forwards data packets last on the actual path is the egress switch
- the remaining switches on the actual path are intermediate switches.
- the data plane 3 uses the ingress switch on the actual path to insert the initial label value into the data packet, and reports the initial label value to the control plane 4 .
- the initialization tag value may consist of a two-dimensional random vector (v 1 , v 2 ) and a 32-bit modulus p, wherein the two-dimensional random vector may include two 32-bit integers.
- the initial label value is used in subsequent label update calculations.
- the data layer 3 uses the intermediate switches and egress switches on the actual path to update the initial label value of the data packet.
- the controller 41 can assign a matrix address to each switch and send it to the corresponding switch, so that each switch can have a unique 2*2 feature matrix (represented by Mi), and the four in the feature matrix Both values are 32-bit integers. Every time a data packet passes through a switch (indicated by Si), the switch Si will perform matrix multiplication between the label value in the data packet and the characteristic matrix Mi of the switch Si, so as to obtain a new label value to replace the original label value.
- the modulus in the value, det represents the matrix determinant, (v 2i+1 ,v 2i+2 ), (v 2i-1 ,v 2i ) both represent two-dimensional random vectors, the subscript i represents the serial number of the switch, % represents Modulo operation.
- the data layer 3 can also form the corresponding actual forwarding information with the header data of the data packet according to the label value updated by any switch in the intermediate switch and the egress switch on the actual path, and report it to the controller 41 in the control layer 4 .
- the label updating process is as follows: a) For the intermediate switch on the actual path, the intermediate switch performs matrix multiplication operation on its characteristic matrix and the initial label value inserted in the data packet to obtain the first label value. b) For the egress switch on the actual path, the egress switch performs a matrix multiplication operation on its own characteristic matrix and the first label value to obtain the second label value. c) In the matrix multiplication operation, the modulus calculation (such as Mi%p) is performed on the feature matrix involved in the operation to prevent matrix multiplication overflow, and the first label value and the second label value are updated label values, which need to be compared with The header data together form the actual forwarding information.
- the modulus calculation such as Mi%p
- the heterogeneous converged network in this embodiment means that there are multiple types of communication protocols at the bottom of the network.
- a network based on the TCP/IP protocol and a network based on the NDN protocol belong to two types of heterogeneous networks.
- NFV network virtualization
- programmable interactive technologies the network is more open, and the functions that need to be undertaken are becoming more and more diversified and integrated.
- Most of the traditional network protocols only complete the function of data transmission, and the emerging network layer protocols have gradually increased the direct connection, distribution and arrangement of computing tasks (computing power network protocol), identity authentication and data privacy protection (blockchain protocol).
- TSN delay-sensitive protocol
- Other advanced types of protocols these put forward new application requirements and scenarios for the processing technology of new programmable routers.
- the emerging network underlying protocols can be roughly divided into: stateless protocols (such as UDP), simple state protocols (such as TCP only maintains connection-oriented transmission state, such as NDN adds data identification to distinguish repeated states) , data relay state and link interface state), complex state protocols (such as computing power network orchestration protocol, protocol packets can interact across layers, and the semantic function of protocol packets is not only the interaction on the data level, but also needs to interact with the device state, At the same time, there is also the function of interacting with protocol packets in time sequence), and then puts forward new scenarios and new challenges in the processing mode of router equipment
- An example is used to discuss the fusion processing technology of heterogeneous fusion network.
- this fusion processing technology can be further extended to heterogeneous fusion network based on other types of network communication protocols.
- network communication protocols can be Wifi, Bluetooth, 5G/6G; in addition, other types of protocols with control interaction semantics can include blockchain, TSN, token protocol, DCN (data center network protocol), network layer probe protocol, telemetry protocol, etc.
- the technical solution in this embodiment can flexibly support different network protocols, and the support for new network protocols will not affect its support for existing network protocols, only need to configure more data processing channels, That is to make incremental modifications to the protocol analysis plug-in and protocol processing channel on the original basis, and add a new state jump to the new protocol on the finite state machine, and then propose a new protocol processing channel for the new protocol.
- the technical solution can be applied to network transmission equipment such as routers, thus providing a feasible technical route for the deployment of heterogeneous converged networks, and can support distributed coordination of IP networks, NDN networks, computing power networks, and transport layers
- the seamless integration of the protocol with the controlled network can realize the "gradual" upgrade requirements of the network.
- a network transmission device is disclosed in this embodiment, and the network transmission device 6 includes a memory 61 and a processor 62 .
- the memory 61 and the processor 62 are the main components of the network transmission device 6.
- the network transmission device 6 may also include some functional modules connected to the processor 62. For details, refer to the first embodiment above. Let's go into more detail.
- the memory 61 can be used as a computer-readable storage medium for storing a program here, and the program can be a program code corresponding to the data transmission method supporting multiple protocols in the second embodiment.
- the processor 62 is connected to the memory 61, and is used to execute the program stored in the memory 61 to implement the data transmission method disclosed in the second embodiment above, specifically steps 210-260 in FIG. 3 . It should be noted that, the functions implemented by the processor 62 may refer to the processor 12 in the first embodiment, and no detailed description is given here.
- the program can also be stored in a storage medium such as a server, another computer, a magnetic disk, an optical disk, a flash disk, or a mobile hard disk, and saved by downloading or copying.
- a storage medium such as a server, another computer, a magnetic disk, an optical disk, a flash disk, or a mobile hard disk, and saved by downloading or copying.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种多协议数据传输方法及装置、网络和存储介质,其中数据传输方法包括:获取多协议类型中任意一个协议类型的数据包,分解数据包以得到包头数据和包体数据,解析包头数据得到协议类型信息和/或转发路径标签信息,根据协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,重组新的包头数据和包体数据并传输重组后的数据包。技术方案能够对那些常规以及异质协议类型的数据包进行转发,克服协议兼容性问题并能够应用于新型网络构架,并且通过对协议类型信息进行转换可解决数据分道处理后耦合协议的交互需求问题。
Description
本申请涉及网络通信技术领域,具体涉及一种多协议数据传输方法及装置、网络和存储介质。
随着计算机网络的发展和可编程技术带来的开放性,出现越来越多的异构传输协议,如IP协议、NDN协议、QUIC协议、算力网络传输协议等,这些异构协议需要在网络层设备上集成处理,但是各自的传输语义并不相同,在转发的时候需要不同的硬件设备进行传输。
目前,在TCP/IP网络和NDN网络融合的相关研究中,第一类思路是通过设置网关节点来进行协议之间的转换,从而达到网络融合的目的;第二类思路是通过增量部署支持不同协议的软硬件协同的可编程开放式交换机,来达到网络融合的目的。无论是使用哪一种思路,在研究和应用中都还存在一些问题。
对于设置网络节点的情况,一者是利用HTTP实现两网的融合,虽然考虑到了NDN协议与HTTP协议在协议语义方面的很多相似之处,但是缺点在于HTTP作为应用层协议,势必会携带更多的语义信息,这就导致在协议转换过程中可能会损失部分信息。二者是基于TCP来实现两网融合,在网络边缘设置两个网关节点,这两个网关节点分别与TCP的发送端和接收端相连接,当网关节点接收到TCP发送端或接收端发来的TCP报文后,网关节点会进行协议转换;然而,TCP协议和NDN协议的通信语义不同,TCP协议是一个端到端的协议,NDN协议则是一个面向内容的协议,需要基于逐跳来才能完成多路径的数据传输;此外,TCP协议是一个推送的过程,NDN协议是一个拉取的过程,二者并不能够实现协议匹配。
对于增量部署可编程开放式交换机的情况,是将NDN与IP完全分离开,不再将NDN部署在IP之上,而是将NDN部署在以太网之上,在链路层上直接进行NDN数据包的转发和传输;这种方式的缺点在于部署的难度较大,目前TCP/IP和NDN网络融合领域的研究还不成熟,缺少必要的技术支持。
本申请主要解决的技术问题是:如何提高交换机的多协议处理能力。
为解决上述技术问题,本申请提出一种多协议数据传输方法及装置、网络和存储介质。
根据第一方面,一种实施例中提供一种支持多协议的数据传输方法,包括:获取预设协议类型的数据包;分解所述数据包以得到包头数据和包体数据;解析所述包头数据得到协议类型信息和/或转发路径标签信息;根据所述协议类型信息从多个数据处理通道中选择相匹配的数据处理通道;根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据;重组所述新的包头数据和所述包体数据,并传输重组后的数据包。
所述解析所述包头数据得到协议类型信息和/或转发路径标签信息,包括:根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息;和/或,解析获得所述包头数据中插入的自定义向量,根据所述自定义向量得到所述包头数据的转发路径标签信息。
所述协议类型信息包括TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的一者或多者。
所述根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息,包括:根据所述有限状态机识别所述包头数据中的多个自定义字段,所述多个自定义字段包括ehtertype字段、ip_proto字段和tl_code字段;根据所述ehtertype字段判断所述包头数据的协议类型信息属于IPv6协议、IPv4协议和NDN协议中的哪一者;在属于IPv6协议或IPv4协议的情况下,根据所述ip_proto字段判断所述数据包的协议类型信息为UDP类型或TCP类型;在属于NDN协议的情况下,根据所述tl_code字段判断所述数据包的协议类型信息为兴趣包传输类型或数据包传输类型。
所述根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据,包括:通过与所述协议类型信息相匹配的数据处理通道对所述数据包进行预处理,得到所述数据包的执行动作;根据所述执行动作对所述数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据。
所述通过与所述协议类型信息相匹配的数据处理通道对所述数据包进行预处理,得到所述数据包的执行动作,包括:根据与所述协议类型信息相匹配的数据处理通道得到多协议匹配动作表;根据所述多协议匹配动作表对所述数据包进行配置,得到针对所述数据包的执行动作;所述多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记;所述执行动作包括协议转换的操作,和/或标签更新的操作。
所述根据所述执行动作对所述数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据,包括:当所述执行动作指示协议转换的操作时,利用预设的目标网络协议对所述包头数据中包含的协议类型进行替换,以实现协议类型信息的转换;当所述执行动作指示标签更新的操作时,利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新;当所述执行动作指示协议转换和标签更新的操作时,利用目标网络协议对所述包头数据中包含的协议类型进行替换,以及利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算。
所述重组所述新的包头数据和所述包体数据,并传输重组后的数据包,包括:将所述新的包头数据和所述包体数据进行拼接,得到拼接而成的重组数据包;从预设的网络端口输出所述重组数据包,以对所述重组数据包进行网络传输。
根据第二方面,一种实施例中提供一种网络传输设备,包括:网络端口,用于接入互联网,且收发所述互联网传输的数据包;处理器,与所述网络端口连接,用于从所述网络端口获取预设类型的数据包,分解所述数据包以得到包头数据和包体数据,解析所述包头数据得到协议类型信息和/或转发路径标签信息,根据所述协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据,以及重组所述新的包头数据和所述包体数据,并从所述网络端口输出重组后的数据包。
所述处理器包括解析模块;所述解析模块根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息;和/或,所述解析模块解析获得所述包头数据中插入的自定义向量,根据所述自定义向量得到所述包头数据的转发路径标签信息;所述协议类型信息包括TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的一者或多者。
所述解析模块根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息,包括:所述解析模块根据所述有限状态机识别所述包头数据中的多个自定义字段,所述多个自定义字段包括ehtertype字段、ip_proto字段和tl_code字段;所述解析模块根据所述ehtertype字段判断所述包头数据的协议类型信息属于IPv6协议、IPv4协议和NDN协议中的哪一者;在属于IPv6协议或IPv4协议的情况下,所述解析模块根据所述ip_proto字段判断所述数据包的协议类型信息为UDP类型或TCP类型;在属于NDN协议的情况下,所述解析模块根据所述tl_code字段判断所述数据包的协议类型信息为兴趣包传输类型或数据包传输类型。
所述处理器还包括与多个不同的协议类型信息分别匹配的多个数据处理通道;所述多个数据处理通道中与所述协议类型信息相匹配的数据处理通道接收所述数据包;与所述协议类型信息相匹配的数据处理通道调取对应的多协议匹配动作表;与所述协议类型信息相匹配的数据处理通道根据所述多协议匹配动作表对所述数据包进行配置,得到针对所述数据包的执行动作;所述多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记;所述执行动作包括协议转换的操作,和/或标签更新的操作。
所述处理器还包括交互模块;所述交互模块判断所述执行动作指示协议转换的操作时,利用预设的目标网络协议对所述包头数据中包含的协议类型进行替换,以实现协议类型信息的转换;所述交互模块判断所述执行动作指示标签更新的操作时,利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新;所述交互模块判断所述执行动作指示协议转换和标签更新的操作时,利用目标网络协议对所述包头数据中包含的协议类型进行替换,以及利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算。
所述处理器还包括重组模块;所述重组模块将所述新的包头数据和所述包体数据进行拼接,得到拼接而成的重组数据包;所述重组模块从网络端口输出所述重组数据包,以对所述重组数据包进行网络传输。
所述网络传输装置为交换机、路由器、网关或网卡。
根据第三方面,一种实施例中提供一种异构融合网络,包括数据层面和控制层面 ;所述数据层面包括拓扑连接的多个网络传输设备,每个所述网络传输设备能够支持多种通信协议以进行数据转发;所述控制层面与所述数据层面中的网络传输设备进行连接,用于控制所述网络传输设备的数据转发的路径;在所述数据层面中,每个所述网络传输设备能够获取所连接的其它网络传输设备转发过来的预设协议类型的数据包,分解所述数据包以得到包头数据和包体数据;所述网络传输设备能够解析所述包头数据得到协议类型信息和转发路径标签信息,根据所述协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换和进行转发路径标签信息的更新,得到新的包头数据;所述网络传输设备能够重组所述新的包头数据和所述包体数据,并向转发路径上的下一个网络传输设备传输重组后的数据包。
根据第四方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述第一方面中所述的数据传输方法。
依据上述实施例的一种多协议数据传输方法及装置、网络和存储介质,其中数据传输方法包括:获取多协议类型中任意一个协议类型的数据包,分解数据包以得到包头数据和包体数据,解析包头数据得到协议类型信息和/或转发路径标签信息,根据协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据,重组新的包头数据和包体数据并传输重组后的数据包。第一方面,技术方案可以对多种协议类型的数据包进行解析,不仅支持常规同族的IPv4/IPv6协议,还对那些具有特殊异质特性的NDN协议、算力编排协议、区块链协议等进行有效支持,克服它们之间的兼容性问题,对诸如新型SDN网络具有很强的适应性,也可面向于一些前沿网络构架的应用场景,特别是针对某些特定协议类型使用匹配的通道进行专门处理,如此可从技术层面支持多种协议数据包的转发任务;第二方面,技术方案能够对多种不同协议类型的数据包进行转发,兼容性强且对原有装置的升级变动小,不仅依据数据包的协议类型信息选择相匹配的数据处理通道,还支持对协议类型信息进行转换,从而解决数据分道处理后耦合协议的交互需求问题,使得数据包能够在不同协议类型之间进行转换,实现整体上的交互耦合关系;第三方面,技术方案能够灵活支持不同的网络协议,对新型网络协议的支持不会影响其对现有网络协议的支持,只需要配置更多的数据处理通道即可,也就是在原本基础上对协议解析插件、协议处理通道进行增量修改,并且在有限状态机上这对新型协议增加新的状态跳转,然后针对新型协议提出新的协议处理通道;第四方面,技术方案可以应用在路由器等网络传输设备上,由此给异构融合网络的部署提供了一种可实现的技术路线,能够支持IP网络、NDN网络、算力网络及传输层分布式协调与控制的网络之间的协议无缝融合,可实现网络的“渐进式”的升级需求。
图1为本申请一种实施例中网络传输设备的结构图;
图2为处理器的结构示意图;
图3为本申请一种实施例中支持多协议的数据传输方法的流程图;
图4为解析包头数据的流程图;
图5为协议转换和标签更新的流程图;
图6为信息转换的原理示意图;
图7为多协议匹配动作表的结构示意图;
图8为本申请一种实施例中异构融合网络的结构图;
图9为数据层面的结构示意图;
图10为交换机和控制器通信连接的示意图;
图11多协议交换机的原理示意图;
图12为本申请另一种实施例中网络传输设备的结构图。
下面通过具体实施方式结合附图对本申请作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
本申请技术方案构建一个能够支持多种协议类型的数据包转发的传输装置及实现方法,用来对网络中多种协议数据包进行传输。不仅能够常规的支持IP协议,还能够支持异质类型的NDN协议、算力编排协议,并且在对新型网络协议的支持时不会影响对现有网络协议的支持,兼容性强,可更好适应新型网络的网络协议要求,从而在前沿的网络构架中进行推广使用。本申请技术方案通过协议解析插件对数据包进行解析和识别,能够识别出当前数据包属于哪种协议的数据包,在协议解析插件解析完数据包之后,数据包会进入匹配的协议处理管道进行处理,不同协议的数据包会分别进入不同的协议处理管道。对于有需要的不同协议,由于协议直接的语义功能上的耦合性原因,在数据并行分流处理的同时,某些时序流程上也根据状态的变化在相关的多个并行处理管理通道之间进行状态和数据的相互协调处理。数据包经过协议处理之后会被送到逆解析插件,重组生成新的数据包,然后再转发出去。
实施例一、
请参考图1,本实施例中公开一种网络传输设备,该网络传输设备1主要包括网络端口11和处理器12,下面分别说明。
网络端口11是网络接口部件,用于接入外部的互联网,并且收发互联网传输的数据包。网络端口11的类型可以是RJ-45接口、RJ-11接口、SC光纤接口、FDDI接口、AUI接口、BNC接口中的任一者。
处理器12与网络端口11连接,其作用是从网络端口11获取多协议类型中任意一个协议类型的数据包,分解数据包以得到包头数据和包体数据,然后,解析包头数据得到协议类型信息和/或转发路径标签信息,根据协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据,以及重组新的包头数据和包体数据,并从网络端口输出重组后的数据包。
需要说明的是,处理器12可以常规的逻辑处理部件,比如CPU、MCU、FPGA、单片机等,甚至还可以包括一些外围辅助的电子元器件,这里不做具体说明。当然,处理器12应该具有一些逻辑处理能力,从而实现对数据包的分解、解析、传输、协议转换、标签更新和重组的功能。
在本实施例中,参见图2,处理器12包括解析模块121、多个数据处理通道(如附图标记1221、1222、1223、1224)、交互模块123和重组模块124,分别说明如下。
由于网络中传输的数据包可能为任意的协议类型,比如多协议类型中任意一个协议类型的数据包,所以,解析模块121从网络端口11获取多协议类型中任意一个协议类型的数据包之后,需要解析模块121分解数据包才能得到包头数据和包体数据;由于包头数据是数据传输的规则类信息,所以还需要解析模块121进一步解析包头数据来得到协议类型信息和/或转发路径标签信息。
在一个情况下,为了得到包头数据中的协议类型信息,解析模块121可根据预设的有限状态机解析包头数据,从而得到包头数据的协议类型信息。和/或,在另个一情况下,为了得到包头数据中的转发路径标签信息,解析模块122可解析获得包头数据中插入的自定义向量,并根据自定义向量得到包头数据的转发路径标签信息。
需要说明的是,由于数据包可能为任意的协议类型,所以协议类型信息可包括TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的一者或多者。其中,TCP/IP协议、NDN协议均是较为常规的网络协议,而算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议则是在特定应用场合下才使用的网络协议。
比如图2,可将解析模块121视为处理器12中的协议解析插件,解析模块121接收到某一种协议类型的数据包之后,首先会经过协议解析插件的处理,从而对数据包的包头进行协议解析,以便识别出当前的数据包是哪一种网络协议类型的数据包。解析模块121能够接受IP协议类型(包括IPv4、IPv6)的数据包、NDN协议类型的数据包(包括NDN兴趣包、NDN数据包),以及编排协议类型的数据包、区块链协议类型的数据包,甚至还可接受其它协议类型的数据包。可以理解,对于不同协议类型的数据包,解析模块121都会识别出其协议类型,并在元数据中记录下该数据包的协议类型。
在一个具体实施例中,解析模块121根据预设的有限状态机解析包头数据,得到包头数据的协议类型信息,包括以下处理过程:
(1)解析模块121根据有限状态机识别包头数据中的多个自定义字段,这里的多个自定义字段可包括ehtertype字段、ip_proto字段和tl_code字段。
(2)解析模块121根据ehtertype字段判断包头数据的协议类型信息属于IPv6协议、IPv4协议和NDN协议中的哪一者。
(3)解析模块121在判断包头数据的协议类型属于IPv6协议或IPv4协议的情况下,解析模块1212会根据ip_proto字段判断数据包的协议类型信息为UDP类型或TCP类型。
(4)解析模块121在判断包头数据的协议类型属于NDN协议的情况下,解析模块121会根据tl_code字段判断数据包的协议类型信息为兴趣包传输类型或数据包传输类型。
比如图6示意了一个有限状态机,基于该有限状态机可以判断数据包的协议类型,对不同协议类型的数据包有着不同的协议跳转。不同协议类型的数据包都被封装到以太帧(Ethernet)中,因此解析模块121先解析以太帧包头以得到包头数据,在以太帧包头中会包含多个自定义字段。第一种情况下,如果以太帧的ethertype字段的值为0x86DD,则当前包头数据中插入的协议类型是IPv6协议;如果ethertype字段的值为0x8000,则当前包头数据中插入的协议类型是IPv4协议;在识别出IPv4协议和IPv6协议之后,接着会判断ip_proto字段的值,如果ip_proto字段的值是0x0017,则当前数据包的协议类型是UDP类型;如果ip_proto字段的值是0x0006,则当前数据包的协议类型是TCP类型。第二种情况下,如果以太帧的ethertype字段的值为0x9999,则当前包头数据中插入的协议类型是NDN协议;当识别出NDN协议之后,获取tl_code字段的值再进判断,如果tl_code的值是0x05,则当前数据包在协议类型上应为NDN兴趣包;如果tl_code的值是0x06,则当前数据包在协议类型上应为NDN数据包;当然,对于NDN兴趣包和NDN数据包而言,都可通过tlv_type字段来进一步判断数据标识,在tlv_type=0x08时NDN兴趣包(或NDN数据包)具有NDN Nonce标识,在tlv_type=0x07时NDN兴趣包(或NDN数据包)具有NDN Name标识,从而完成具体类型的识别。可以理解,当解析模块121对数据包解析和识别完毕之后,会将数据包的协议类型记录在元数据中,并且会在接下来处理过程中调用元数据中的协议类型。
参见图2,处理器12包括与多个不同的协议类型信息分别匹配的多个数据处理通道1221、1222、1223、1224,这些数据处理通道用于分别对特定协议类型的数据包进行传输处理,从而加强数据传输和处理效率,也支持多种协议数据包的转发任务。可以理解,图2中示意的多个数据处理通道1221、1222、1223、1224只是一种实施方式,还可以根据实际的需求而灵活增加或减少数据处理通道的数目。还可以理解,不同的数据处理通道会对不同类型的数据包进行处理, 比如,IPv4协议类型的数据包会进入到IPv4协议匹配的数据处理通道进行处理,IPv6协议类型的数据包会进入到IPv6协议匹配的数据处理通道进行处理,NDN协议类型的数据包会进入到NDN协议匹配的数据处理通道进行处理,编排协议类型的数据包会进入到编排协议匹配的数据处理通道进行处理,区块链协议类型的数据包会进入到区块链协议匹配的数据处理通道进行处理,其它协议类型的数据包会进入到其它协议匹配的数据处理通道进行处理,这里不再一一进行说明。
在一具体实施例中,数据包经过解析模块121后已经得知数据包的协议类型信息,所以对于多个数据处理通道1221、1222、1223、1224,这多个数据处理通道中与协议类型信息相匹配的数据处理通道(比如1221)能够接收来自解析模块121转发过来的数据包,那么,与协议类型信息相匹配的数据处理通道1221调取对应的多协议匹配动作表,然后,与协议类型信息相匹配的数据处理通道1221根据多协议匹配动作表对数据包进行配置,得到针对数据包的执行动作。需要说明的是,这里的多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记;这里的执行动作包括协议转换的操作,和/或标签更新的操作。可以理解,对于每个数据处理通道,不仅可以传输相匹配协议类型的数据包,还可以对数据包进行动作配置;此外,多个数据处理通道是由多协议匹配动作表组成,所以也是数据包处理机制的核心。
比如图7中示意的多协议匹配动作表,该多协议匹配动作表占9*16位的存储空间,前8位存储一个最长前缀掩码值,中间的8*16位存储路由字段,后8位用来存储输出端口的端口号。
如果当前表项是IPv4路由表项,则最长前缀掩码值会设置为32,中间的2*16位会设置为32位的IPv4目的地址,中间的6*16位会设置为0,最后8位会设置为输出端口号。例如,IPv4地址为10.118.0.2,输出端口为3,则对应的表项就是图7中的第一条表项。
如果当前的表项是IPv6路由表项,则最长前缀掩码值会设置为128,中间的8*16位会设置为IPv6目的地址,最后8位设置为输出端口号。例如,IPv6地址为CDCD:910A:2222:5498:8475:1111:3900:2020,输出端口为4,则对应的表项就是图7中的第二条表项。
如果当前的表项是NDN路由表项,则最长前缀掩码值会设置为其名称组件个数*16,中间的名称组件个数*16位会设置为NDN名称的映射值,中间的(8-名称组件个数)*16位会设置为0,最后8位设置为输出端口号2,则对应的表项就是图7中的第三条表项。
参见图2,处理器12包括交互模块123,交互模块123与多个数据处理通道1221、1222、1223、1224连接;交互模块123的作用是根据相匹配的数据处理通道对包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,从而得到新的包头数据。由于每个数据处理通道在根据多协议匹配动作配置完数据包之后,得到数据包的执行动作,从而交互模块123就可以依据执行动作中协议转换的操作,和/或标签更新的操作对数据包进行进一步的交互处理。
需要说明的是,交互模块123执行协议转换操作的目的是实现不同数据处理通道之间的跨协议进程通信,通过支持对协议类型信息进行转换来解决数据分道处理后耦合协议的交互需求问题。
在一个情况下,交互模块123判断执行动作指示协议转换的操作时,则利用预设的目标网络协议对包头数据中包含的协议类型进行替换,以实现协议类型信息的转换。
在另一个情况下,交互模块123判断执行动作指示标签更新的操作时,则利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新。
在又一个情况下,交互模块123判断执行动作指示协议转换和标签更新的操作时,利用目标网络协议对包头数据中包含的协议类型进行替换,以及利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算。
需要说明的是,交互模块123执行标签更新的目的是通过标签值来压缩记录数据包在经过多个网络传输设备(比如交换机)过程中的实际转发路径信息。数据包进入到多个交换机组成的数据层面后,入口交换机会执行标签插入算法将初始标签值(即自定义向量)插入到数据包的包头数据中,随着数据包在数据层面中进行转发,标签值会被交换机通过标签更新算法进行更新,即交换机的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算;当数据包到达路径终点时,出口交换机会将标签值移除并且上报给上一层的控制层面,以便控制层面中的控制器了解到数据包在各交换机中的实际转发路径。
可以理解,交互模块123实现了不同数据处理通道之间的跨协议进程通信,通过支持对协议类型信息进行转换,从而解决数据分道处理后耦合协议的交互需求问题,使得数据包能够在不同协议类型之间进行转换,实现整体上的交互耦合关系。IP协议是单向的网络协议,不面临不同地址的传输问题,而其它网络协议则需要面临不同地址的传输问题,所以可通过交互模块123实现对不同协议数据包的包头数据进行转换、补充和/或删除。比如对于编排协议、传输协议的数据包,各自有一个通道,编排协议做出决策任务与诸如路由器的网络传输设备“配对”以后,告知传输协议,发起相关的“数据传输”到“选中”的路由器节点;期间,编排协议需要返回传输协议的IP协议地址等信息给任务需求方,在时序先后关系的约束下,等任务方的数据“漫游”到“被选中”的路由器计算完成之后,需要返回任务完成状态;最后,计算结果从“传输协议”返回,或者从编排协议返回给“请求方”。通过上述方式即可实现不同协议数据包的包头数据的协议转换、补充和/或删除,从而形成新的包头数据。
参见图2,处理器12包括重组模块124,重组模块124与交互模块123连接,其作用是重组新的包头数据和包体数据并传输重组后的数据包。
在一个具体实施例中,重组模块124将新的包头数据和包体数据进行拼接,得到拼接而成的重组数据包;然后,重组模块124从网络端口11输出重组数据包,以对重组数据包进行网络传输。需要说明的是,重组模块124可是视为是数据包重组插件,数据包在经过特定的数据处理通道和交互模块时,这两个模块会涉及到对数据包的拆解和修改,因此在将数据包转发出去的时候,需要通过数据包重组插件将数据包进行重组再转发出去。
在本实施例中,涉及的网络传输装置1可以为交换机、路由器、网关或网卡,只要能够进行联网和数据包的处理即可,具体的硬件类型不做限制。
可以理解,本实施例中的网络传输设备可以对多种协议数据包进行解析,进一步支持多种协议数据包的转发任务,对不同协议类型的数据包分通道处理的好处是保证不同的数据包各行其道,降低数据处理过程中的拥塞,同时在处理逻辑上也更加清晰。
可以理解,本实施例中的解决了数据包分通道处理后耦合协议的交互需求问题,数据包可实现协议上的交互转化,从整体上又是有耦合关系,那么一旦确定了接受某个计算任务的路由器,则这个路由器就能通过协议转换来实现数据包的中转和发送,避免众多数据包在单个路由器上的拥堵传输情形的发生。
实施例二、
在实施例一中公开的网络传输设备的基础上,本实施例中公开一种支持多协议的数据传输方法,该数据传输方法主要应用于处理器12上。
在本实施例中,请参考图3,数据传输方法可包括步骤210-260,下面分别说明。
步骤210,获取多协议类型中任意一个协议类型的数据包。比如图1和图2,处理器12中的解析模块121从网络断11获取具有某种协议类型的数据包,该数据包可以具有TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的任一种协议类型。
步骤220,分解数据包以得到包头数据和包体数据。
比如图1和图2,解析模块121从网络端口11获取多协议类型中任意一个协议类型的数据包之后,还需要解析模块121分解数据包才能得到包头数据和包体数据。
步骤230,解析包头数据得到协议类型信息和/或转发路径标签信息。
由于包头数据是数据传输的规则类信息,所以还需要解析模块121进一步解析包头数据来得到协议类型信息和/或转发路径标签信息。在一个情况下,为了得到包头数据中的协议类型信息,解析模块121可根据预设的有限状态机解析包头数据,从而得到包头数据的协议类型信息。在另个一情况下,为了得到包头数据中的转发路径标签信息,解析模块122可解析获得包头数据中插入的自定义向量,并根据自定义向量得到包头数据的转发路径标签信息。
可以理解,由于数据包可能为任意的协议类型,所以协议类型信息可包括TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的一者或多者。
步骤240,根据协议类型信息从多个数据处理通道中选择相匹配的数据处理通道。
从而加强数据传输和处理效率,同时支持多种协议数据包的转发任务,所以在图2中为多个不同的协议类型信息分别匹配多个数据处理通道1221、1222、1223、1224,这些数据处理通道用于分别对特定协议类型的数据包进行传输处理。不同的数据处理通道会对不同类型的数据包进行处理,比如,IPv4协议类型的数据包会进入到IPv4协议匹配的数据处理通道进行处理,IPv6协议类型的数据包会进入到IPv6协议匹配的数据处理通道进行处理,NDN协议类型的数据包会进入到NDN协议匹配的数据处理通道进行处理,编排协议类型的数据包会进入到编排协议匹配的数据处理通道进行处理,区块链协议类型的数据包会进入到区块链协议匹配的数据处理通道进行处理,其它协议类型的数据包会进入到其它协议匹配的数据处理通道进行处理。
对于每个数据处理通道,不仅可以传输相匹配协议类型的数据包,还可以对数据包进行动作配置。比如图2,通过与协议类型信息相匹配的数据处理通道对数据包进行预处理,以得到数据包的执行动作。对于与某个协议类型信息相匹配的数据处理通道,在对传输的数据包进行处理时,需要调取对应的多协议匹配动作表,然后根据多协议匹配动作表对数据包进行配置,得到针对数据包的执行动作。
需要说明的是,这里的多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记;这里的执行动作包括协议转换的操作,和/或标签更新的操作。关于多协议匹配动作表可以参见图7中的三条表项,以及实施例一中的相关说明,这里不再进行赘述。
步骤250,根据相匹配的数据处理通道对包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据。
比如图2,由于每个数据处理通道在根据多协议匹配动作配置完数据包之后得到数据包的执行动作,那么接下来交互模块123就可以依据执行动作中协议转换的操作,和/或标签更新的操作对数据包进行进一步的交互处理。在一个实施例中,交互模块123根据执行动作对数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据。
情况一,交互模块123判断执行动作指示协议转换的操作时,则利用预设的目标网络协议对包头数据中包含的协议类型进行替换,以实现协议类型信息的转换。情况二,交互模块123判断执行动作指示标签更新的操作时,则利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新。情况三,交互模块123判断执行动作指示协议转换和标签更新的操作时,利用目标网络协议对包头数据中包含的协议类型进行替换,以及利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算。
步骤260,重组新的包头数据和包体数据,并传输重组后的数据包。比如图1和图2,处理器12中的重组模块124将新的包头数据和包体数据进行拼接,得到拼接而成的重组数据包;然后,重组模块124从网络端口11输出重组数据包,以对重组数据包进行网络传输。
在本实施例中,上面的步骤230主要涉及解析数据包头的过程,其中解析包头数据得到协议类型信息可以具体包括步骤231-233,具体参考图4,分别说明如下。
步骤231,根据有限状态机识别包头数据中的多个自定义字段,这里的多个自定义字段包括ehtertype字段、ip_proto字段和tl_code字段。
步骤232,根据ehtertype字段判断包头数据的协议类型信息属于IPv6协议、IPv4协议和NDN协议中的哪一者。
步骤233,在判断包头数据的协议类型属于IPv6协议或IPv4协议的情况下,根据ip_proto字段判断数据包的协议类型信息为UDP类型或TCP类型;或者,在判断包头数据的协议类型属于NDN协议的情况下,根据tl_code字段判断数据包的协议类型信息为兴趣包传输类型或数据包传输类型。
在一个具体实施例中,可以借助图6示意的有限状态机对步骤231-233进行进一步的说明。不同协议类型的数据包都被封装到以太帧(Ethernet)中,因此解析模块121先解析以太帧包头以得到包头数据,在以太帧包头中会包含多个自定义字段。第一种情况下,如果以太帧的ethertype字段的值为0x86DD,则当前包头数据中插入的协议类型是IPv6协议;如果ethertype字段的值为0x8000,则当前包头数据中插入的协议类型是IPv4协议;在识别出IPv4协议和IPv6协议之后,接着会判断ip_proto字段的值,如果ip_proto字段的值是0x0017,则当前数据包的协议类型是UDP类型;如果ip_proto字段的值是0x0006,则当前数据包的协议类型是TCP类型。第二种情况下,如果以太帧的ethertype字段的值为0x9999,则当前包头数据中插入的协议类型是NDN协议;当识别出NDN协议之后,获取tl_code字段的值再进判断,如果tl_code的值是0x05,则当前数据包在协议类型上应为NDN兴趣包;如果tl_code的值是0x06,则当前数据包在协议类型上应为NDN数据包;当然,对于NDN兴趣包和NDN数据包而言,都可通过tlv_type字段来进一步判断数据标识,在tlv_type=0x08时NDN兴趣包(或NDN数据包)具有NDN Nonce标识,在tlv_type=0x07时NDN兴趣包(或NDN数据包)具有NDN Name标识,从而完成具体类型的识别。可以理解,当解析模块121对数据包解析和识别完毕之后,会将数据包的协议类型记录在元数据中,并且会在接下来处理过程中调用元数据中的协议类型。
在本实施例中,上面的步骤250主要涉及协议类型转换和标签更新的过程,那么可参考图5,该步骤250可具体包括步骤251-257,分别说明如下。
步骤251,根据与协议类型信息相匹配的数据处理通道得到多协议匹配动作表。这里的多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记。
步骤252,根据多协议匹配动作表对数据包进行配置,得到针对数据包的执行动作。这里的执行动作包括协议转换的操作,和/或标签更新的操作。步骤252之后同时进入步骤253和步骤254。
步骤253,判断执行动作是否是指示协议转换的操作,若是则进入步骤255,若否则进入步骤257。
步骤254,判断执行动作是否是指示标签更新的操作,若是则进入步骤256,若否则进入步骤257。
步骤255,在执行动作指示协议转换的操作时,利用预设的目标网络协议对包头数据中包含的协议类型进行替换,以实现协议类型信息的转换。
需要说明的是,实现协议类型信息转换的目的是实现不同数据处理通道之间的跨协议进程通信,通过支持对协议类型信息进行转换,从而解决数据分道处理后耦合协议的交互需求问题,使得数据包能够在不同协议类型之间进行转换,进而实现整体上的交互耦合关系。IP协议是单向的网络协议,不面临不同地址的传输问题,而其它网络协议则需要面临不同地址的传输问题,所以可通过交互模块123实现对不同协议数据包的包头数据进行转换、补充和/或删除,从而形成新的包头数据。
步骤256,在执行动作指示标签更新的操作时,利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新。
需要说明的是,实现转发路径标签信息更新的目的是通过标签值来压缩记录数据包在经过多个网络传输设备(比如交换机)过程中的实际转发路径信息。数据包进入到多个交换机组成的数据层面后,入口交换机会执行标签插入算法将初始标签值(即自定义向量)插入到数据包的包头数据中,随着数据包在数据层面中进行转发,标签值会被交换机通过标签更新算法进行更新,即交换机的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算;当数据包到达路径终点时,出口交换机会将标签值移除并且上报给上一层的控制层面,以便控制层面中的控制器了解到数据包在各交换机中的实际转发路径。
步骤257,在执行动作没有指示协议转换的操作,或者没有指示标签更新的操作时就进入该步骤,可以不进行任何操作(即无操作),以便时刻准备进入下一个数据包的执行动作判断。
技术人员可以理解,当执行动作同时指示协议转换和标签更新的操作时,一方面需要利用目标网络协议对包头数据中包含的协议类型进行替换,另一方面需要利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算。
实施例三、
在实施例一中公开的网络传输设备,以及实施例二中公开的支持多协议的数据传输方法的基础上,本实施例中公开一种异构融合网络。
在本实施例中,参考图8,异构融合网络主要包括数据层面3和控制层面4,下面分别说明。
数据层面3包括拓扑连接的多个网络传输设备,每个网络传输设备能够支持多种通信协议以进行数据转发。数据层面3中包括的每个网络传输设备可以参考图1和图2中的结构,且网络传输设备可为交换机、路由器、网关或网卡。
控制层面4与数据层面3中的网络传输设备进行连接,用于控制网络传输设备的数据转发的路径。
在图8中,数据层面3中的多个网络传输设备可以是拓扑连接的多个交换机,如交换机31、32、33、34、35、36,控制层面4中部署有控制器41且控制器41与各交换机连接,控制层面4中的控制器41用于控制数据层面3中每个交换机的数据转发的路径。数据层面3中的各交换机目的是提供不同主机之间的网络通路,对于图8中的主机51、52、53、54,主机51与交换机31通信连接,主机52与交换机34通信连接,主机53与交换机35通信连接,主机54与交换机36通信连接,各个主机依靠各个交换机实现网络的互连互通。
比如图9,数据层面中的各个交换机呈现拓扑连接的关系,个别交换机作为入口交换机,入口交换机接入互联网并接收互联网中用户设备(即主机,如摄像头、手机终端、车载终端等设备)产生的数据包,当然普通的数据包可按照数据包传输队列一个个被发送到入口交换机,执行算力的数据包(即算力包)可以按照算力任务队列一个个被发送到入口交换机。此外,数据包经过数据层面的各个交换机进行转发,期间每个交换机可能对数据包进行分解、解析、特定通道传输、协议转换、标签更新、重组等处理,然后由出口交换机将数据包发送到广域网以传输到其它用户设备,或者由出口交换机将数据包(如算力包)发送到云计算服务器以执行云端运算。
在本实施例中,对于数据层面3,其中的每个网络传输设备能够获取所连接的其它网络传输设备转发过来的多协议类型中任意一种协议类型的数据包,通过分解数据包以得到包头数据和包体数据;而且,网络传输设备能够解析包头数据得到协议类型信息和转发路径标签信息,根据协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对包头数据进行协议类型信息的转换和进行转发路径标签信息的更新,得到新的包头数据;此外,网络传输设备能够重组新的包头数据和包体数据,并向转发路径上的下一个网络传输设备传输重组后的数据包。
在本实施例中,可以通过图10表示数据层面中3中任意一个交换机(如交换机31)和控制层面中的控制器41之间的通信连接关系。控制器41可向交换机31发送探测包以主动探测数据层面3中各交换机的数据转发路径以便进行路径一致性验证,交换机31也可主动接收其它交换机转发过来的预设协议类型的数据包。交换机31中的解析模块分解数据包以得到包头数据和包体数据,然后根据预设的有限状态机解析包头数据得到包头数据的协议类型信息;和/或,解析获得包头数据中插入的自定义向量,根据自定义向量得到包头数据的转发路径标签信息。交换机31中与协议类型信息匹配的数据处理通道对数据包进行预处理,即通过匹配动作处理得到数据包的执行动作。交换机31中的交互模块根据执行动作对数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据;在协议转换处理中,利用预设的目标网络协议对包头数据中包含的协议类型进行替换,以实现协议类型信息的转换;在标签更新处理中,利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算,通过更新算法的处理实现转发路径标签信息的更新,可将更新后的转发路径标签信息上报到控制器41。由于得到了新的包头数据,那么可以将新的包头数据和包体数据进行重组,然后输出重组数据包。
对于数据层面3中每个支持多协议的交换机,交换机对数据包进行分解、解析、特定通道传输、协议转换、标签更新、重组等处理过程可以参考图11。利用解析器(即解析模块)接收多协议类型中任意一个协议类型的数据包,通过分解和解析可得知数据包的协议类型信息,比如为NDN数据包、NDN兴趣包、IPv4数据包、IPv6数据包中哪一协议类型的数据包;利用多个数据处理通道是交换机支持多协议数据处理方式的关键机制,比如匹配IPv4协议的数据处理通道用来传输和配置IPv4数据包,匹配IPv6协议的数据处理通道用来传输和配置IPv6数据包,匹配NDN协议的数据处理通道道用来传输和配置NDN兴趣包和NDN数据包。每个数据处理通道由多协议匹配动作表来完成数据包的配置,那么可以使用通用的多协议匹配动作表来支持对NDN兴趣包(如Interest-pkt)、NDN数据包(如Data-pkt)、IPv4数据包(如IPv4-pkt)和IPv6数据包(如IPv6-pkt)的处理。可将多协议匹配动作表具体为FIB表和PIT表,其中,FIB表既能够支持NDN兴趣包的转发又能够支持IPv4和IPV6数据包的转发,PIT表中的每一行都对应了一个PIT码且能够支持NDN数据包的转发;此外,内容存储区CS用于缓存接收到的NDN数据包。
在图11中,针对NDN协议,具体定义了处理NDN数据包的NDN数据处理通道,比如,NDN数据处理通道由两个匹配动作表组成,分别是匹配动作表 PIT和匹配动作表NDN-FIB。每一个支持NDN协议的兴趣包都会先经过内容存储区CS,然后经过匹配动作表
PIT 和匹配动作表NDN-FIB。每一个支持NDN协议的数据包都会先经过匹配动作表PIT,然后经过内容存储区CS。针对IPv4协议,具体定义处理IPv4 数据包的IPv4数据处理通道,比如,IPv4数据处理通道由匹配动作表IPv4-FIB 组成,每一个支持IPv4协议的数据包都会经过匹配动作表 IPv4-FIB 的处理。针对 IPv6 协议,具体定义了处理
IPv6 数据包的 IPv6数据处理通道,比如,IPv6
数据处理通道由匹配动作表IPv6-FIB组成,每一个IPv6协议的数据包都会经过匹配动作表IPv6-FIB的处理。当然,为了进行简化说明,可以用一个通用的多协议匹配动作表来同时支持对NDN兴趣包、NDN数据包、IPv4数据包和IPv6数据包的处理,该通用的多协议匹配动作表可以具体参见图7。
在图11中,由于交换机中的解析器(即解析模块)对数据进行分解和解析处理,不仅可以得到数据包的包头数据和包体数据,还可以得到包头数据的协议类型信息和转发路径标签信息。在数据包经过匹配的数据处理通道时,与协议类型信息匹配的数据处理通道会对数据包进行预处理,即通过匹配动作处理得到数据包的执行动作。之后,交换机中的交互模块会根据执行动作对数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据。可以理解,在协议转换处理中,交换机需要利用预设的目标网络协议对包头数据中包含的协议类型进行替换,以实现协议类型信息的转换;在标签更新处理中,交换机需要利用数据包所经过网络传输设备的唯一性特征矩阵与包头数据中插入的自定义向量进行数学运算,通过更新算法的处理实现转发路径标签信息的更新,此时可对更新后的转发路径标签信息进行上报。接下来,交换机中的逆解析器(即重组模块)对新的包头数据和原来的包体数据进行重组,得到新的数据包,即重组的数据包;当然,重组模块利用数据包传输接口,将重组的数据包发送到网络中以继续进行转发,也可将数据包直接丢弃而进入下一次的循环,在下一次的循环中由解析器对下一个数据包进行处理。
接下来,将从数据层面3的角度对数据包的标签更新过程进行说明。在数据层面3中,定义实际路径上首次转发数据包的交换机为入口交换机,实际路径上最后转发数据包的交换机为出口交换机,实际路径上其余的交换机为中间交换机。数据层面3利用实际路径上的入口交换机在数据包内插入初始标签值,并向控制层面4上报初始标签值。比如,初始化标签值可由一个二维随机向量(v
1,v
2)和一个32位的模数p组成的,其中二维随机向量可包含两个32位的整数。初始标签值用于后续的标签更新计算。数据层面3利用实际路径上的中间交换机和出口交换机对数据包的初始标签值进行更新。比如,控制器41可为每个交换机分配一个矩阵地址并下发到对应的交换机,这样每个交换机都可拥有一个唯一的2*2的特征矩阵(用Mi表示),并且特征矩阵中的四个数值都是32位的整数。数据包每经过一个交换机(用Si表示),该交换机Si都会将数据包中的标签值与该交换机Si的特征矩阵Mi就进行矩阵乘法的运算,从而得到新的标签值以代替原标签值。比如,标签值的更新过程参考下面公式p=p*det(Mi)、(v
2i+1,v
2i+2)=(v
2i-1,v
2i)*Mi%p,其中,p为标签值中的模数,det表示矩阵行列式, (v
2i+1,v
2i+2)、(v
2i-1,v
2i)均表示二维随机向量,下标i表示交换机的序号,%表示求模运算。当然,数据层面3还可以根据实际路径上的中间交换机和出口交换机中的任一交换机更新的标签值,和数据包的包头数据形成对应的实际转发信息并上报给控制层面4中的控制器41。
在一个具体实施例中,标签更新过程如下:a)对于实际路径上的中间交换机,中间交换机将自身的特征矩阵和数据包内插入的初始标签值进行矩阵乘法运算,得到第一标签值。b)对于实际路径上的出口交换机,出口交换机将自身的特征矩阵和第一标签值进行矩阵乘法运算,得到第二标签值。c)在矩阵乘法运算中,对参与运算的特征矩阵进行取模计算(如Mi%p)以防止矩阵乘法溢出,并且第一标签值和第二标签值均为更新的标签值,都需要与包头数据一起形成实际转发信息。
需要说明的是,本实施例中异构融合网络的意思是网络底层的通信协议有多种协议类型,例如基于TCP/IP协议的网络和基于NDN协议的网络就属于两种异构的网络。随着底层网络虚拟化、NFV、可编程交互技术的出现,网络更加开放,需要承担的功能也越来越多样化、集成化。传统的网络协议大多只是完成数据的传输功能,新出现的网络层协议也逐渐增加了对计算任务的直接对接、分配及编排(算力网络协议)、身份认证及数据隐私保护(区块链协议为例)、时延敏感协议(TSN)等先进类型协议,这些对新型的可编程路由器的处理技术提出了新的应用需求和场景。新出现的网络底层协议从特征类型上来看,可以大致分为:无状态协议(如UDP)、简单状态协议(如TCP仅仅维护面向连接的传输状态,如NDN增加了数据的标识以区分重复状态、数据中继状态和链路接口状态)、复杂状态协议(如算力网络编排协议,协议包可以跨层交互、协议包语义功能上不仅是数据层面上的交互,也需要与设备状态交互、同时也存在时序上与协议包交互的功能),进而对路由器设备的处理方式上提出了新场景、新挑战 本本申请技术方案以TCP/IP协议、NDN协议、算力任务编排协议等网络协议为例来讨论了异构融合网络的融合处理技术,当然,还可以将这种融合处理技术进一步推广到基于其它类型网络通信协议的异构融合网络中。
技术人员可以理解,其它类型的网络通信协议可以是Wifi、蓝牙、5G/6G; 此外,其它类型的带有控制交互语义的协议可以包括区块链、TSN、令牌协议、DCN(数据中心网络协议)、网络层探针协议、遥测协议等。
技术人员可以理解,本实施例中的技术方案能够灵活支持不同的网络协议,对新型网络协议的支持不会影响其对现有网络协议的支持,只需要配置更多的数据处理通道即可,也就是在原本基础上对协议解析插件、协议处理通道进行增量修改,并且在有限状态机上这对新型协议增加新的状态跳转,然后针对新型协议提出新的协议处理通道。此外,技术方案可以应用在路由器等网络传输设备上,由此给异构融合网络的部署提供了一种可实现的技术路线,能够支持IP网络、NDN网络、算力网络及传输层分布式协调与控制的网络之间的协议无缝融合,可实现网络的“渐进式”的升级需求。
实施例四、
在本实施例二中公开的数据传输方法的基础上,本实施例中公开一种网路传输装置,该网络传输装置6包括存储器61和处理器62。
在本实施例中,存储器61和处理器62是网络传输装置6的主要部件,当然网络传输装置6还可以包括一些与处理器62连接的功能模块,具体可参考上面的实施例一,这里不再详细说明。
其中,存储器61可作为计算机可读存储介质,这里用于存储程序,该程序可以是实施例二中支持多协议的数据传输方法对应的程序代码。
其中,处理器62与存储器61连接,用于执行存储器61中存储的程序以实现上面实施例二中公开的数据传输方法,具体比如图3中的步骤210-260。需要说明的是,处理器62实现的功能可以参考实施例一中的处理器12,这里不再进行详细说明。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本申请进行阐述,只是用于帮助理解本申请技术方案,并不用以限制本申请。对于所属技术领域的技术人员,依据本申请的思想,还可以做出若干简单推演、变形或替换。
Claims (17)
- 一种支持多协议的数据传输方法,其特征在于,包括:获取多协议类型中任意一个协议类型的数据包;分解所述数据包以得到包头数据和包体数据;解析所述包头数据得到协议类型信息和/或转发路径标签信息;根据所述协议类型信息从多个数据处理通道中选择相匹配的数据处理通道;根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据;重组所述新的包头数据和所述包体数据,并传输重组后的数据包。
- 如权利要求1所述的数据传输方法,其特征在于,所述解析所述包头数据得到协议类型信息和/或转发路径标签信息,包括:根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息;和/或,解析获得所述包头数据中插入的自定义向量,根据所述自定义向量得到所述包头数据的转发路径标签信息。
- 如权利要求2所述的数据传输方法,其特征在于,所述协议类型信息包括TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的一者或多者。
- 如权利要求2所述的数据传输方法,其特征在于,所述根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息,包括:根据所述有限状态机识别所述包头数据中的多个自定义字段,所述多个自定义字段包括ehtertype字段、ip_proto字段和tl_code字段;根据所述ehtertype字段判断所述包头数据的协议类型信息属于IPv6协议、IPv4协议和NDN协议中的哪一者;在属于IPv6协议或IPv4协议的情况下,根据所述ip_proto字段判断所述数据包的协议类型信息为UDP类型或TCP类型;在属于NDN协议的情况下,根据所述tl_code字段判断所述数据包的协议类型信息为兴趣包传输类型或数据包传输类型。
- 如权利要求1所述的数据传输方法,其特征在于,所述根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据,包括:通过与所述协议类型信息相匹配的数据处理通道对所述数据包进行预处理,得到所述数据包的执行动作;根据所述执行动作对所述数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据。
- 如权利要求5所述的数据传输方法,其特征在于,所述通过与所述协议类型信息相匹配的数据处理通道对所述数据包进行预处理,得到所述数据包的执行动作,包括:根据与所述协议类型信息相匹配的数据处理通道得到多协议匹配动作表;根据所述多协议匹配动作表对所述数据包进行配置,得到针对所述数据包的执行动作;所述多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记;所述执行动作包括协议转换的操作,和/或标签更新的操作。
- 如权利要求6所述的数据传输方法,其特征在于,所述根据所述执行动作对所述数据包中的包头数据进行协议类型信息的转换处理,和/或进行转发路径标签信息的更新处理,得到新的包头数据,包括:当所述执行动作指示协议转换的操作时,利用预设的目标网络协议对所述包头数据中包含的协议类型进行替换,以实现协议类型信息的转换;当所述执行动作指示标签更新的操作时,利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新;当所述执行动作指示协议转换和标签更新的操作时,利用目标网络协议对所述包头数据中包含的协议类型进行替换,以及利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算。
- 如权利要求1所述的数据传输方法,其特征在于,所述重组所述新的包头数据和所述包体数据,并传输重组后的数据包,包括:将所述新的包头数据和所述包体数据进行拼接,得到拼接而成的重组数据包;从预设的网络端口输出所述重组数据包,以对所述重组数据包进行网络传输。
- 一种网络传输设备,其特征在于,包括:网络端口,用于接入互联网,且收发所述互联网传输的数据包;处理器,与所述网络端口连接,用于从所述网络端口获取多协议类型中任意一个协议类型的数据包,分解所述数据包以得到包头数据和包体数据,解析所述包头数据得到协议类型信息和/或转发路径标签信息,根据所述协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换,和/或进行转发路径标签信息的更新,得到新的包头数据,以及重组所述新的包头数据和所述包体数据,并从所述网络端口输出重组后的数据包。
- 如权利要求9所述的网络传输设备,其特征在于,所述处理器包括解析模块;所述解析模块根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息;和/或,所述解析模块解析获得所述包头数据中插入的自定义向量,根据所述自定义向量得到所述包头数据的转发路径标签信息;所述协议类型信息包括TCP/IP协议、NDN协议、算力编排协议、区块链协议、密码协议、QUIC协议、DCCP协议中的一者或多者。
- 如权利要求9所述的网络传输设备,其特征在于,所述解析模块根据预设的有限状态机解析所述包头数据,得到所述包头数据的协议类型信息,包括:所述解析模块根据所述有限状态机识别所述包头数据中的多个自定义字段,所述多个自定义字段包括ehtertype字段、ip_proto字段和tl_code字段;所述解析模块根据所述ehtertype字段判断所述包头数据的协议类型信息属于IPv6协议、IPv4协议和NDN协议中的哪一者;在属于IPv6协议或IPv4协议的情况下,所述解析模块根据所述ip_proto字段判断所述数据包的协议类型信息为UDP类型或TCP类型;在属于NDN协议的情况下,所述解析模块根据所述tl_code字段判断所述数据包的协议类型信息为兴趣包传输类型或数据包传输类型。
- 如权利要求9或10所述的网络传输设备,其特征在于,所述处理器还包括与多个不同的协议类型信息分别匹配的多个数据处理通道;所述多个数据处理通道中与所述协议类型信息相匹配的数据处理通道接收所述数据包;与所述协议类型信息相匹配的数据处理通道调取对应的多协议匹配动作表;与所述协议类型信息相匹配的数据处理通道根据所述多协议匹配动作表对所述数据包进行配置,得到针对所述数据包的执行动作;所述多协议动作匹配表用于对网络的前缀掩码、设备的路由字段和输出端的端口号进行地址标记;所述执行动作包括协议转换的操作,和/或标签更新的操作。
- 如权利要求12所述的网络传输设备,其特征在于,所述处理器还包括交互模块;所述交互模块判断所述执行动作指示协议转换的操作时,利用预设的目标网络协议对所述包头数据中包含的协议类型进行替换,以实现协议类型信息的转换;所述交互模块判断所述执行动作指示标签更新的操作时,利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算,以实现转发路径标签信息的更新;所述交互模块判断所述执行动作指示协议转换和标签更新的操作时,利用目标网络协议对所述包头数据中包含的协议类型进行替换,以及利用所述数据包所经过网络传输设备的唯一性特征矩阵与所述包头数据中插入的自定义向量进行数学运算。
- 如权利要求9所述的网络传输设备,其特征在于,所述处理器还包括重组模块;所述重组模块将所述新的包头数据和所述包体数据进行拼接,得到拼接而成的重组数据包;所述重组模块从网络端口输出所述重组数据包,以对所述重组数据包进行网络传输。
- 如权利要求9所述的网络传输装置,其特征在于,所述网络传输装置为交换机、路由器、网关或网卡。
- 一种异构融合网络,其特征在于,包括数据层面和控制层面;所述数据层面包括拓扑连接的多个网络传输设备,每个所述网络传输设备能够支持多种通信协议以进行数据转发;所述控制层面与所述数据层面中的网络传输设备进行连接,用于通过多个协议类型控制所述网络传输设备的数据转发的路径;在所述数据层面中,每个所述网络传输设备能够获取所连接的其它网络传输设备转发过来的多协议类型中任意一个协议类型的数据包,分解所述数据包以得到包头数据和包体数据;所述网络传输设备能够解析所述包头数据得到协议类型信息和转发路径标签信息,根据所述协议类型信息从多个数据处理通道中选择相匹配的数据处理通道,根据相匹配的数据处理通道对所述包头数据进行协议类型信息的转换和进行转发路径标签信息的更新,得到新的包头数据;所述网络传输设备能够重组所述新的包头数据和所述包体数据,并向转发路径上的下一个网络传输设备传输重组后的数据包。
- 一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-8中任一项所述的数据传输方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2021/140331 WO2023115367A1 (zh) | 2021-12-22 | 2021-12-22 | 一种多协议数据传输方法及装置、网络和存储介质 |
| CN202180098873.9A CN117441318B (zh) | 2021-12-22 | 2021-12-22 | 一种多协议数据传输方法及设备、网络和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2021/140331 WO2023115367A1 (zh) | 2021-12-22 | 2021-12-22 | 一种多协议数据传输方法及装置、网络和存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023115367A1 true WO2023115367A1 (zh) | 2023-06-29 |
Family
ID=86900994
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2021/140331 Ceased WO2023115367A1 (zh) | 2021-12-22 | 2021-12-22 | 一种多协议数据传输方法及装置、网络和存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN117441318B (zh) |
| WO (1) | WO2023115367A1 (zh) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116193411A (zh) * | 2023-02-02 | 2023-05-30 | 广东为辰信息科技有限公司 | 一种蓝牙控车指令的修改重放方法 |
| CN116962220A (zh) * | 2023-09-05 | 2023-10-27 | 之江实验室 | 一种全维可定义智信网络装置 |
| CN118611956A (zh) * | 2024-06-24 | 2024-09-06 | 福建天晴在线互动科技有限公司 | 一种网络数据处理方法及终端 |
| CN118890404A (zh) * | 2024-09-29 | 2024-11-01 | 深圳中网讯通技术有限公司 | 5g协议与行短兼容互通方法及系统 |
| CN120358291A (zh) * | 2025-06-19 | 2025-07-22 | 杭州中科亿芯微电子科技有限公司 | 一种射频收发机的数据交互方法及系统 |
| CN121098954A (zh) * | 2025-09-12 | 2025-12-09 | 济南瑞泉电子有限公司 | 一种水表数据分层组包传输方法及系统 |
| CN121333954A (zh) * | 2025-12-15 | 2026-01-13 | 哈尔滨工程大学三亚南海创新发展基地 | 支持多协议动态加载与二次开发的跨域通信仿真系统 |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119759818B (zh) * | 2024-12-27 | 2025-09-23 | 中国人民解放军61623部队 | 一种用于通信机房的自适应接口适配方法及装置 |
| CN120602572B (zh) * | 2025-05-09 | 2026-04-14 | 北京邮电大学 | 可编程网络设备的在线动态编程方法、系统及存储介质 |
| CN120342971A (zh) * | 2025-06-19 | 2025-07-18 | 北京融为科技有限公司 | 用于fpga传输的协议层数据处理方法及装置 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070009161A1 (en) * | 2005-07-08 | 2007-01-11 | Hollingsworth William A | Data format conversion |
| CN101771697A (zh) * | 2010-01-20 | 2010-07-07 | 西安电子科技大学 | 基于模式匹配方式的网络数据流识别方法 |
| CN103281213A (zh) * | 2013-04-18 | 2013-09-04 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
| CN110225008A (zh) * | 2019-05-27 | 2019-09-10 | 四川大学 | 一种云环境下sdn网络状态一致性验证方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112087441B (zh) * | 2020-09-03 | 2022-08-16 | 郑州信大先进技术研究院 | 多协议通信方法、智慧家庭网关及多协议通信系统 |
-
2021
- 2021-12-22 WO PCT/CN2021/140331 patent/WO2023115367A1/zh not_active Ceased
- 2021-12-22 CN CN202180098873.9A patent/CN117441318B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070009161A1 (en) * | 2005-07-08 | 2007-01-11 | Hollingsworth William A | Data format conversion |
| CN101771697A (zh) * | 2010-01-20 | 2010-07-07 | 西安电子科技大学 | 基于模式匹配方式的网络数据流识别方法 |
| CN103281213A (zh) * | 2013-04-18 | 2013-09-04 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
| CN110225008A (zh) * | 2019-05-27 | 2019-09-10 | 四川大学 | 一种云环境下sdn网络状态一致性验证方法 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116193411A (zh) * | 2023-02-02 | 2023-05-30 | 广东为辰信息科技有限公司 | 一种蓝牙控车指令的修改重放方法 |
| CN116962220A (zh) * | 2023-09-05 | 2023-10-27 | 之江实验室 | 一种全维可定义智信网络装置 |
| CN118611956A (zh) * | 2024-06-24 | 2024-09-06 | 福建天晴在线互动科技有限公司 | 一种网络数据处理方法及终端 |
| CN118890404A (zh) * | 2024-09-29 | 2024-11-01 | 深圳中网讯通技术有限公司 | 5g协议与行短兼容互通方法及系统 |
| CN120358291A (zh) * | 2025-06-19 | 2025-07-22 | 杭州中科亿芯微电子科技有限公司 | 一种射频收发机的数据交互方法及系统 |
| CN121098954A (zh) * | 2025-09-12 | 2025-12-09 | 济南瑞泉电子有限公司 | 一种水表数据分层组包传输方法及系统 |
| CN121333954A (zh) * | 2025-12-15 | 2026-01-13 | 哈尔滨工程大学三亚南海创新发展基地 | 支持多协议动态加载与二次开发的跨域通信仿真系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117441318A (zh) | 2024-01-23 |
| CN117441318B (zh) | 2024-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2023115367A1 (zh) | 一种多协议数据传输方法及装置、网络和存储介质 | |
| US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
| Li et al. | Protocol oblivious forwarding (POF): Software-defined networking with enhanced programmability | |
| EP2820809B1 (en) | Dynamic service insertion in a fabric switch | |
| EP2544417B1 (en) | Communication system, path control apparatus, packet forwarding apparatus and path control method | |
| US11323366B2 (en) | Path determining method, apparatus, and system | |
| CN102685006A (zh) | 一种转发数据报文的方法及装置 | |
| WO2018032962A1 (zh) | 一种信息同步的方法,装置及系统 | |
| US6697872B1 (en) | Distributed packet processing using encapsulation and decapsulation chains | |
| CN104717098A (zh) | 一种数据处理方法及装置 | |
| US20250184260A1 (en) | Data transmission method and gateway device | |
| JP6480452B2 (ja) | パケット処理方法および装置 | |
| CN113285878A (zh) | 负载分担的方法、第一网络设备 | |
| CN114448859A (zh) | 支持用于边界网关协议的多传输选项 | |
| WO2018000859A1 (zh) | 拓扑确定方法、消息响应方法、控制器以及交换机 | |
| CN114422415A (zh) | 在分段路由中的出口节点处理流 | |
| Sunday et al. | Application of software-defined networking | |
| Hu et al. | Flexible flow converging: A systematic case study on forwarding plane programmability of protocol-oblivious forwarding (POF) | |
| Lei et al. | Can host-based SDNs rival the traffic engineering abilities of switch-based SDNs? | |
| EP3902228B1 (en) | Data message transmission methods | |
| CN115412512B (zh) | 一种基于IPv6的多云跨网互通方法及装置 | |
| CN117880003A (zh) | 数据转发方法、装置、设备和存储介质 | |
| WO2023082706A1 (zh) | 一种处理报文的系统、方法和网络装置 | |
| JP6932118B2 (ja) | パケット処理方法および装置 | |
| WO2023231438A1 (zh) | 报文发送的方法、网络设备及系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21968517 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202180098873.9 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21968517 Country of ref document: EP Kind code of ref document: A1 |