A message transmission method, a sending device, a receiving device and a storage medium
By segmenting data packets into multiple segments and utilizing hash operations and probe packet prediction techniques, the problem of single-link congestion was solved, achieving link load balancing and improving the overall network link utilization.
Patent Information
- Application Number
- CN202311069994.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-23
- Publication Date
- 2026-01-16
- Estimated Expiration
- 2043-08-23
AI Technical Summary
The existing flow-based load balancing mechanism leads to congestion on individual links and uneven link load, affecting network traffic scheduling efficiency.
The data packet is divided into multiple slice packets, and hash operations are performed using hash perturbation factors and quintuple information. The slice packets are then distributed and sent across multiple transmission links. By combining network information obtained from probe packets, link prediction and feature information establishment are performed to ensure that the slice packets are transmitted on multiple paths.
This avoids congestion caused by excessive load on a single link, achieves balanced link load, and improves the average link utilization rate of the entire network.
Smart Images

Figure CN118827555B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of communication, in particular to a message transmission method, a sending device, a receiving device and a storage medium. BACKGROUND
[0002] As an infrastructure carrying intelligent computing power, the data flow of the intelligent computing center has the characteristics of large traffic and long duration. In this scenario, if low latency, zero packet loss and high throughput are required, the first problem to be solved is the congestion caused by uneven network traffic scheduling.
[0003] Currently, the per-flow load sharing mechanism is a single-flow single-path traffic scheduling method, which loads all data packets belonging to the same flow to the same link. Although this scheduling method is simple in principle, it can easily cause single-link congestion and uneven link load, and the average link utilization of the whole network is low. SUMMARY
[0004] Embodiments of the present application provide a message transmission method, a sending device, a receiving device and a storage medium, which distribute multiple slice messages to multiple transmission links for sending. Compared with sending complete data messages through a transmission link, this method can avoid congestion caused by excessive load on a single link, make the link load more balanced, and improve the average link utilization of the whole network.
[0005] The technical solution of the embodiments of the present application is as follows:
[0006] The embodiments of the present application provide a message transmission method applied to a sending device, and the method comprises:
[0007] The multiple slice messages cut from the same data message are dispersed to multiple transmission links for sending.
[0008] In the above method, each slice message in the multiple slice messages carries the five-tuple information of the data message, and the flow label carries a hash perturbation factor.
[0009] The multiple slice messages cut from the same data message are dispersed to multiple transmission links for sending, which comprises:
[0010] Hash operations are performed on the hash perturbation factor and the five-tuple information carried by each slice message in the multiple slice messages respectively to obtain multiple hash operation results corresponding to the multiple slice messages.
[0011] Each slice message in the multiple slice messages is distributed to a transmission link associated with the corresponding hash operation result for sending.
[0012] Among the multiple hash operation results, at least one hash operation result is associated with a transmission link different from other hash operation results.
[0013] In the above method, before the multiple slice packets cut from the same data packet are dispersed and sent on multiple transmission links, the method further comprises:
[0014] After sending the probe packet to the connected first device to make the first device write its network information into the probe packet, the probe packet is sent to other devices connected to the first device, and the forwarding of the probe packet between devices continues until the probe packet returns to the sending device carrying the network information of each device in the whole network;
[0015] For each data flow, transmission link prediction is performed based on different hash perturbation factors, and the relationship between different hash perturbation factors and available transmission links is determined as corresponding multi-path feature information according to the network information of each device.
[0016] Obtain the data packet and cut the data packet into the multiple slice packets;
[0017] In order to achieve multi-link transmission of the multiple slice packets, a hash perturbation factor is selected for each slice packet in the multiple slice packets from the multi-path feature information corresponding to the data flow to which the data packet belongs, and a flow label is written.
[0018] In the above method, after the relationship between different hash perturbation factors and available transmission links is determined as corresponding multi-path feature information, the method further comprises:
[0019] For each data flow, the corresponding multi-path feature information is associated with the corresponding five-tuple information, and stored in the database;
[0020] Before the hash perturbation factor is selected for each slice packet in the multiple slice packets and the flow label is written, the method further comprises:
[0021] According to the five-tuple information of the data packet, the multi-path feature information corresponding to the data flow to which the data packet belongs is obtained from the database;
[0022] Among them, the five-tuple information of the data packet is the five-tuple information corresponding to the data flow to which the data packet belongs.
[0023] In the above method, the flow label of each slice packet in the multiple slice packets carries a packet cutting identifier and a sequence identifier indicating the arrangement order of the slice packet in the data packet.
[0024] The embodiment of the present application provides a message transmission method, which is applied to a receiving device, and the method comprises the following steps:
[0025] receiving a plurality of slice messages which are cut from the same data message on a plurality of transmission links;
[0026] recombining the plurality of slice messages to obtain the data message.
[0027] In the method, the flow label of each slice message in the plurality of slice messages carries a message cutting identifier and a sequence identifier indicating the arrangement sequence of the slice message in the data message.
[0028] In the method, the recombining the plurality of slice messages to obtain the data message comprises the following steps:
[0029] identifying the cutting identifier from the respective flow label for each slice message in the plurality of slice messages;
[0030] acquiring the sequence identifier from the respective flow label for each slice message in the plurality of slice messages in the case that the cutting identifier is identified from the respective flow label;
[0031] sequentially recombining the plurality of slice messages according to the respective sequence identifier of each slice message to obtain the data message.
[0032] In the method, each slice message in the plurality of slice messages carries the five-tuple information of the data message, the five-tuple information in the data message is the five-tuple information corresponding to the data flow to which the data message belongs, and the method further comprises the following steps:
[0033] determining that the plurality of slice messages belong to the same data flow based on the five-tuple information carried by each slice message in the plurality of slice messages.
[0034] The embodiment of the present application provides a sending device, which comprises the following steps:
[0035] a sending module, configured to send a plurality of slice messages which are cut from the same data message to a plurality of transmission links.
[0036] The embodiment of the present application provides a receiving device, which comprises the following steps:
[0037] a receiving module, configured to receive a plurality of slice messages which are cut from the same data message on a plurality of transmission links;
[0038] a recombining module, configured to recombine the plurality of slice messages to obtain the data message.
[0039] The embodiment of the present application provides a sending device, comprising a first processor, a first memory and a first communication bus.
[0040] The first communication bus is used for realizing the communication connection between the first processor and the first memory.
[0041] The first processor is used for executing one or more computer programs stored in the first memory, so as to realize the packet transmission method applied to the sending device.
[0042] The embodiment of the present application provides a receiving device, comprising a second processor, a second memory and a second communication bus.
[0043] The second communication bus is used for realizing the communication connection between the second processor and the second memory.
[0044] The second processor is used for executing one or more computer programs stored in the second memory, so as to realize the packet transmission method applied to the receiving device.
[0045] The embodiment of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to realize the packet transmission method.
[0046] The embodiment of the present application provides a packet transmission method, a sending device, a receiving device and a storage medium, the packet transmission method applied to the sending device comprises the following steps: dispersing a plurality of slice packets cut from a same data packet to a plurality of transmission links for sending. The technical scheme provided by the embodiment of the present application disperses a plurality of slice packets to a plurality of transmission links for sending, compared with sending a complete data packet through a transmission link, can avoid the link congestion caused by the too large load of a single link, make the load of the link more balanced, and improve the average link utilization rate of the whole network. BRIEF DESCRIPTION OF DRAWINGS
[0047] Figure 1 The flowchart of the packet transmission method provided by the embodiment of the present application Figure One
[0048] Figure 2 The flowchart of the packet processing method provided by the embodiment of the present application
[0049] Figure 3 The flowchart of the packet transmission method provided by the embodiment of the present application Figure Two ;
[0050] Figure 4 The structure diagram of the sending device provided by the embodiment of the present application Figure One ;
[0051] Figure 5 A schematic diagram of the structure of a transmitting device provided in an embodiment of this application. Figure Two ;
[0052] Figure 6 A schematic diagram of the structure of a receiving device provided in an embodiment of this application. Figure One ;
[0053] Figure 7 A schematic diagram of the structure of a receiving device provided in an embodiment of this application. Figure Two . Detailed Implementation
[0054] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0055] The technical solutions of this application and how they solve the aforementioned technical problems will be described in detail below through embodiments and in conjunction with the accompanying drawings. The embodiments below can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.
[0056] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0057] This application provides a message transmission method implemented through a sending device and a receiving device. The sending device and receiving device can be any electronic device capable of sending and receiving messages; this application does not impose any limitations.
[0058] Figure 1 A flowchart illustrating a message transmission method provided in this application embodiment. Figure One .like Figure 1 As shown in the embodiments of this application, the message transmission method applied to the sending device mainly includes the following steps:
[0059] S101. Multiple slices of data packets, which are divided from the same data packet, are distributed and sent on multiple transmission links.
[0060] In the embodiments of this application, the sending device can distribute multiple slices of data packets, which are divided from the same data packet, across multiple transmission links for transmission.
[0061] It can be understood that in the embodiments of the present application, for one data message, multiple slice messages can be split, and the sending device can send the multiple slice messages split from the same data message on multiple transmission links, that is, multiple paths are selected to send the multiple slice messages, so that the slice messages are evenly shared and sent on multiple transmission links, compared with sending the complete data message on one transmission link, the single link load can be avoided to cause link congestion, the link load is more balanced, and the average link utilization of the whole network is improved.
[0062] It should be noted that in the embodiments of the present application, the number of slice messages and transmission links can be the same, that is, one-to-one correspondence between multiple slice messages and multiple transmission links, that is, different transmission links transmit different slice messages. In addition, the number of transmission links can also be less than the number of slice messages, but not less than two, that is, one transmission link can also transmit one, or two or more number of slice messages. The number of slice messages and transmission links can be determined according to actual needs and application scenarios, and the embodiments of the present application are not limited.
[0063] In the embodiments of the present application, each slice message in the multiple slice messages carries five-tuple information of the data message, and the flow label carries a hash perturbation factor; the sending device sends the multiple slice messages split from the same data message on multiple transmission links, including: performing hash operation on the hash perturbation factor and the five-tuple information carried by each slice message in the multiple slice messages respectively to obtain multiple hash operation results corresponding to the multiple slice messages; and distributing each slice message in the multiple slice messages to a transmission link associated with the corresponding hash operation result for sending; wherein at least one hash operation result in the multiple hash operation results is associated with a transmission link different from other hash operation results.
[0064] It should be noted that in the embodiments of the present application, each slice message carries five-tuple information of the data message, and the flow label of each slice message carries a hash perturbation factor, wherein the five-tuple information carried by each slice message is the same, and plays the same role when the transmission link is distributed, and the sending device distributes the multiple slice messages to the multiple transmission links, and the decisive factor is the hash perturbation factor carried by the flow label in each slice message.
[0065] In the embodiments of the present application, the flow label of each slice message in the plurality of slice messages further carries a message slicing identifier and a sequence identifier indicating the arrangement sequence of the slice message in the data message. The flow label of any message carrying the message slicing identifier indicates that the message is obtained by message slicing, i.e., the message is a sliced message; the sequence identifier can facilitate the recombination of the plurality of slice messages. Specifically, the message slicing identifier can be added to some bits of the flow label of each slice message, and the sequence identifier can be added to some bits, and the specific addition position is not limited in the embodiments of the present application.
[0066] It should be noted that, in the embodiments of the present application, the sending device can be a device for generating the plurality of slice messages, or a device for forwarding the plurality of slice messages.
[0067] It can be understood that, in the embodiments of the present application, the sending device can be a device for generating the plurality of slice messages, specifically, can be a source network card device, which can send the plurality of slice messages dispersed on a plurality of transmission links after generating the plurality of slice messages, and further forward the plurality of slice messages to the receiving device through a switch. The sending device can also be a device for forwarding the plurality of slice messages, specifically, can be a switch, which can send the plurality of slice messages dispersed on a plurality of transmission links after obtaining the plurality of slice messages, and receive by the receiving device. In the embodiments of the present application, for the source network card device and the switch, the plurality of slice messages can be sent dispersed on a plurality of transmission links when sending the plurality of slice messages, and the switch can also send the sliced messages dispersedly in the case that the source network card device sends the plurality of slice messages dispersed on a plurality of links to the switch. The specific sending device is not limited in the embodiments of the present application.
[0068] It should be noted that, in the embodiments of the present application, if the sending device is a device for generating the plurality of slice messages, specifically, is a source network card device, the source network card device will send a credit message to the receiving device before sending the message, specifically, the receiving device is a destination network card device, and the destination network card device responds to the source network card device based on the current buffer to guide the sending rate of the source network card device, thereby avoiding network congestion.
[0069] In the embodiments of the present application, if the sending device is a device for generating the plurality of slice messages, the sending device further needs to slice the data message into the plurality of slice messages in advance, and select a hash perturbation factor for each slice message and write the hash perturbation factor into the flow label.
[0070] Figure 2 A flowchart of a message processing method provided in the embodiments of the present application is shown in FIG. 1. Figure 2As shown, in the embodiments of the present application, if the sending device is a device for generating multiple slice messages, specifically, the sending device is a source network card device, before the sending device sends multiple slice messages cut from the same data message on multiple transmission links, the following steps can also be performed:
[0071] S201, sending a probe message to a connected first device, so that the first device writes its network information into the probe message and then sends it to other devices connected to the first device, continuing to forward the probe message between devices until the probe message returns to the sending device after passing through each device in the network and carrying the network information of each device.
[0072] In the embodiments of the present application, a special probe message can be periodically constructed on the network card side and sent to the connected switch, specifically, the directly connected switch, which is equivalent to the above-mentioned first device. The directly connected switch puts the device identifier or IP address of the device and the current network information (including but not limited to link capacity, queue information, and sending rate) into the probe message and copies multiple copies of the probe message. In addition to the port that receives the probe message, the probe message is sent out from other ports. The on-the-way switch, i.e., other devices, performs the same operation, i.e., putting the device identifier or IP address of the device and the current network information into the probe message for the next forwarding until each device in the network is traversed. Then the probe message returns to the source network card device carrying the network information of each device. The source network card device obtains the network information of each device in the network from the received probe message.
[0073] S202, for each data flow, respectively performing transmission link prediction based on different hash perturbation factors, and deleting unusable transmission links according to the network information of each device carried by the probe message, and determining the relationship between different hash perturbation factors and available transmission links as corresponding multi-path feature information.
[0074] In the embodiments of the present application, the source network card device can perform transmission link prediction based on different hash perturbation factors for each data flow. In this process, the network information of each device in the network obtained in step 201 can be further used to delete unusable transmission links in the predicted transmission links. Thus, the available transmission links predicted based on different hash perturbation factors can be obtained, and this information is determined as the corresponding multi-path feature information.
[0075] S203, obtaining a data message and cutting the data message into multiple slice messages.
[0076] In the embodiments of the present application, the source network card device can obtain a data message and cut the data message into multiple slice messages. The specific cutting method and the number of cuts are not limited in the embodiments of the present application.
[0077] S204, from the multi-path characteristic information corresponding to the data flow to which the data message belongs, select a hash perturbation factor for each of the plurality of slice messages to write a flow label.
[0078] In the embodiment of the present application, after obtaining the plurality of slice messages, the source network card device selects a hash perturbation factor for each of the plurality of slice messages from the multi-path characteristic information corresponding to the data flow to which the data message belongs to write a flow label, and specifically, the selected hash perturbation factor can be added to some bits of the flow label of each slice message.
[0079] It can be understood that in the embodiment of the present application, when the source network card device selects a hash perturbation factor for each of the plurality of slice messages to write a flow label, it is targeted at subsequent multi-link transmission of the plurality of slice messages, for example, a hash perturbation factor a is selected for slice message a from the multi-path characteristic information corresponding to the data flow to which the data message belongs, and the hash operation result obtained by using the hash perturbation factor a and the five-tuple information of the data message is associated with transmission link a, then when selecting a hash perturbation factor for slice message b, a hash perturbation factor that can make the hash operation result associated with other transmission links is selected as much as possible.
[0080] In the embodiment of the present application, after determining the relationship between different hash perturbation factors and available transmission links as the corresponding multi-path characteristic information, the following steps can be further performed: for each data flow, the corresponding multi-path characteristic information is associated with the corresponding five-tuple information, and is stored in a database; and correspondingly, before selecting a hash perturbation factor for each of the plurality of slice messages to write a flow label, the following steps can be further performed: according to the five-tuple information of the data message, the multi-path characteristic information corresponding to the data flow to which the data message belongs is obtained from the database; wherein the five-tuple information of the data message is the five-tuple information corresponding to the data flow to which the data message belongs.
[0081] It can be understood that in the embodiment of the present application, the multi-path characteristic information corresponding to each data flow, i.e., the relationship between different hash perturbation factors and available transmission links, can be stored in the database in the form of a list, and in the database, the naming method of the multi-path characteristic information is uniquely determined by the five-tuple information corresponding to the data flow, thereby realizing the corresponding association between the multi-path characteristic information and the five-tuple information. Since for a data message, the five-tuple information of the data message is the five-tuple information corresponding to the data flow to which the data message belongs, therefore, before selecting a hash perturbation factor for the plurality of slice messages, the multi-path characteristic information corresponding to the data flow to which the data message belongs can be called from the database according to the five-tuple information of the data message.
[0082] It should be noted that in the embodiments of the present application, the five-tuple information of the data packet, and the five-tuple information of each slice packet in the plurality of slice packets are actually the five-tuple information corresponding to the data flow to which the data packet belongs, and the five-tuple information before and after the packet splitting is the same.
[0083] Figure 3 A flowchart of a packet transmission method provided in the embodiments of the present application Figure Two As shown in Figure 3 , in the embodiments of the present application, the packet transmission method applied to the receiving device mainly includes the following steps:
[0084] S301, receiving a plurality of slice packets split from the same data packet on a plurality of transmission links.
[0085] In the embodiments of the present application, the receiving device can receive a plurality of slice packets split from the same data packet on a plurality of transmission links.
[0086] It can be understood that in the embodiments of the present application, for the receiving device, which can be specifically a destination network card device, it actually receives a plurality of slice packets forwarded by a source network card device through a switch device, and regardless of the source network card device or the switch, they both send a plurality of slice packets dispersed on a plurality of transmission links, based on which the receiving device can receive a plurality of slice packets split from the same data packet on a plurality of transmission links.
[0087] S302, recombining the plurality of slice packets to obtain the data packet.
[0088] In the embodiments of the present application, the receiving device can recombine the plurality of slice packets to obtain the data packet.
[0089] In the embodiments of the present application, the flow label of each slice packet in the plurality of slice packets carries a packet splitting identifier and a sequence identifier indicating the arrangement order of the slice packet in the data packet. The receiving device recombines the plurality of slice packets to obtain the data packet, including: for each slice packet in the plurality of slice packets, identifying the packet splitting identifier from the respective flow label; for each slice packet in the plurality of slice packets, acquiring the sequence identifier from the respective flow label in the case of identifying the packet splitting identifier from the respective flow label; and sorting and recombining the plurality of slice packets according to the respective sequence identifier of each slice packet to obtain the data packet.
[0090] In the embodiments of the present application, each slice message in the plurality of slice messages carries five-tuple information of a data message, the five-tuple information of the data message is five-tuple information corresponding to a data flow to which the data message belongs, and the receiving device can also determine that the plurality of slice messages belong to the same data flow based on the five-tuple information of each slice message in the plurality of slice messages.
[0091] It can be understood that, in the embodiments of the present application, the receiving device first performs buffering processing on the received plurality of slice messages and puts the plurality of slice messages into a buffer for waiting for next processing, and then the plurality of slice messages are taken out from the buffer for next processing. Since each slice message carries a slice division identifier and a sequence identifier indicating an arrangement order of the slice message in a data message, the receiving device can determine the attribute of the slice message, i.e., the slice message is obtained by message division, by identifying the slice division identifier, so as to determine that further message recombination is needed. The arrangement order of each slice message in a complete data message can be determined by identifying the sequence identifier carried by the flow tag of each slice message, so that the plurality of slice messages can be sorted and recombined according to the arrangement order, and the data message can be restored. In addition, the receiving device can also determine the data flow to which the message belongs according to the five-tuple information carried by the slice message.
[0092] It should be noted that, in the embodiments of the present application, if the receiving device finds that the plurality of slice messages are recombined out of order, there are two solutions to solve the problem. One is to put the task of recombining the slice messages out of order to the destination network card side for completion, i.e., the receiving device autonomously completes the recombination out of order. The other is to hand over the task of recombining the slice messages out of order to an application. If packet loss occurs, selective retransmission can be used to obtain the lost message.
[0093] Based on the message transmission method applied to the sending device and the receiving device, it can be known that the sending device mainly involves a source network card device and a switch, and the receiving device mainly involves a destination network card device. First, the source network card device periodically sends a probe message to perform multi-path probing and obtain network topology information and link load information. Second, before sending data, the source network card device performs simulation to obtain multi-path characteristic information, selects a transmission link based on a hash perturbation factor, and implements single-flow multi-path sending. When the message reaches the switch, the switch can also send the plurality of slice messages to a plurality of transmission links. Finally, when the plurality of slice messages reach the destination network card device, the plurality of slice messages are buffered, it is known that the message is obtained by message division by identifying the slice division identifier, and the plurality of slice messages are recombined into a complete data message by further identifying the sequence identifier. In addition, if the receiving device recombines out of order and delivers the network card or the upper-layer application processes, if packet loss occurs, the lost message is selectively retransmitted.
[0094] The present application provides a sending device. Figure 4A structure of a sending device provided in an embodiment of the present application Figure One As shown in Figure 4 In an embodiment of the present application, the sending device comprises:
[0095] The sending module 401 is configured to send the multiple slice messages cut from the same data message to multiple transmission links.
[0096] In an embodiment of the present application, each slice message of the multiple slice messages carries five-tuple information of the data message, and the flow label carries a hash perturbation factor;
[0097] The sending module 401 is configured to perform hash operation on the hash perturbation factor and the five-tuple information carried by each slice message of the multiple slice messages respectively, to obtain multiple hash operation results corresponding to the multiple slice messages; and send each slice message of the multiple slice messages to a transmission link associated with a corresponding hash operation result; wherein at least one hash operation result of the multiple hash operation results is associated with a transmission link different from those associated with other hash operation results.
[0098] In an embodiment of the present application, the sending device further comprises a processing module 402 (not shown in the figure);
[0099] The sending module 401 is further configured to send a probe message to a first device connected thereto, so that the first device writes its network information into the probe message and then sends the probe message to other devices connected to the first device, to continue forwarding the probe message between devices until the probe message returns to the sending device after passing through each device in the network and carrying network information of each device;
[0100] The processing module 402 is configured to, for each data flow, perform transmission link prediction based on different hash perturbation factors respectively, and delete unavailable transmission links according to network information of each device carried by the probe message, to determine a relationship between different hash perturbation factors and available transmission links as corresponding multi-path characteristic information; obtain the data message and cut the data message into the multiple slice messages; and select a hash perturbation factor for each slice message of the multiple slice messages from the multi-path characteristic information corresponding to a data flow to which the data message belongs, and write the hash perturbation factor into a flow label.
[0101] In an embodiment of the present application, the processing module 402 is further configured to, for each data flow, associate the corresponding multi-path feature information with the corresponding five-tuple information and store them in a database; and obtain the multi-path feature information corresponding to the data flow to which the data packet belongs from the database according to the five-tuple information of the data packet; wherein the five-tuple information of the data packet is the five-tuple information corresponding to the data flow to which the data packet belongs.
[0102] In an embodiment of the present application, each slice packet in the plurality of slice packets carries a flow label, a packet splitting identifier, and a sequence identifier indicating the arrangement order of the slice packet in the data packet.
[0103] Figure 5 A structure of a sending device provided in an embodiment of the present application is shown in FIG. 5. Figure Two As shown in FIG. 5, in an embodiment of the present application, the sending device comprises a first processor 501, a first memory 502, and a first communication bus 503. Figure 5
[0104] The first communication bus 503 is configured to realize the communication connection between the first processor 501 and the first memory 502.
[0105] The first processor 501 is configured to execute one or more computer programs stored in the first memory 502 to realize the packet transmission method applied to the sending device.
[0106] An embodiment of the present application provides a receiving device. Figure 6 A structure of a receiving device provided in an embodiment of the present application is shown in FIG. 6. Figure One As shown in FIG. 6, in an embodiment of the present application, the receiving device comprises: Figure 6
[0107] The receiving module 601 is configured to receive a plurality of slice packets split from the same data packet on a plurality of transmission links.
[0108] The recombination module 602 is configured to recombine the plurality of slice packets to obtain the data packet.
[0109] In an embodiment of the present application, each slice packet in the plurality of slice packets carries a flow label, a packet splitting identifier, and a sequence identifier indicating the arrangement order of the slice packet in the data packet.
[0110] In one embodiment of this application, the reassembly module 602 is configured to: identify a packet segmentation identifier from its respective flow label for each of the plurality of slice packets; obtain a sequence identifier from its respective flow label for each of the plurality of slice packets if a packet segmentation identifier is identified from its respective flow label; and sort and reassemble the plurality of slice packets according to their respective sequence identifiers to obtain the data packet.
[0111] In one embodiment of this application, each of the plurality of slice packets carries the 5-tuple information of the data packet. The 5-tuple information in the data packet is the 5-tuple information corresponding to the data stream to which the data packet belongs. The reassembly module 602 is further configured to determine that the plurality of slice packets belong to the same data stream based on the 5-tuple information carried by each of the plurality of slice packets.
[0112] Figure 7 A schematic diagram of the structure of a receiving device provided in an embodiment of this application. Figure Two .like Figure 7 As shown in the embodiments of this application, the receiving device includes: a second processor 701, a second memory 702, and a second communication bus 703;
[0113] The second communication bus 703 is used to realize the communication connection between the second processor 701 and the second memory 702;
[0114] The second processor 701 is used to execute one or more computer programs stored in the second memory 702 to implement the above-described message transmission method applied to the receiving device.
[0115] This application provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the aforementioned message transmission method. The computer-readable storage medium can be volatile memory, such as random-access memory (RAM); or non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (SSD); or it can be a device including one or any combination of the above-mentioned memories, such as a mobile phone, computer, tablet device, personal digital assistant, etc.
[0116] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of hardware embodiments, software embodiments, or embodiments combining software and hardware aspects. Furthermore, this application can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0117] This application is described with reference to schematic and / or block diagrams of implementations of methods, apparatus (systems), and computer program products according to embodiments of this application. It should be understood that each block of the schematic and / or block diagrams can be implemented by computer program instructions, and combinations of blocks in the schematic and / or block diagrams can be implemented. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the schematic and / or block diagrams. Figure One One or more processes and / or boxes Figure One A device that provides the functions specified in one or more boxes.
[0118] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in the implementation flow diagram. Figure One One or more processes and / or boxes Figure One The function specified in one or more boxes.
[0119] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure One One or more processes and / or boxes Figure One Figure One The steps of the function specified in one or more boxes.
[0120] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method of transmitting a packet, characterized by, The method applied to a sending device comprises: sending multiple slice packets split from a same data packet to multiple transmission links; each of the multiple slice packets carries five-tuple information of the data packet and a flow label carrying a hash perturbation factor; the sending of the multiple slice packets split from the same data packet to the multiple transmission links comprises: performing hash operation on the hash perturbation factor and the five-tuple information carried by each of the multiple slice packets to obtain multiple hash operation results corresponding to the multiple slice packets; sending each of the multiple slice packets to a transmission link associated with a corresponding hash operation result; wherein at least one of the multiple hash operation results is associated with a transmission link different from those associated with other hash operation results; before the sending of the multiple slice packets split from the same data packet to the multiple transmission links, the method further comprises: sending a probe packet to a first device connected thereto, so that the first device writes its network information into the probe packet and then sends the probe packet to other devices connected to the first device, and continues to forward the probe packet between devices until the probe packet returns to the sending device after passing through all devices in the network and carrying network information of each device; for each data flow, performing transmission link prediction based on different hash perturbation factors respectively, and deleting unusable transmission links according to network information of each device, to determine a relationship between different hash perturbation factors and usable transmission links as corresponding multi-path feature information; obtaining the data packet and splitting the data packet into the multiple slice packets; selecting a hash perturbation factor for each of the multiple slice packets from the multi-path feature information corresponding to a data flow to which the data packet belongs, and writing the hash perturbation factor into a flow label.
2. The method of claim 1, wherein, after the determination of the relationship between different hash perturbation factors and usable transmission links as corresponding multi-path feature information, the method further comprises: for each data flow, associating the corresponding multi-path feature information with corresponding five-tuple information, and storing the same in a database; before the selection of a hash perturbation factor for each of the multiple slice packets and writing the same into a flow label, the method further comprises: obtaining the multi-path feature information corresponding to a data flow to which the data packet belongs from the database according to five-tuple information of the data packet; wherein the five-tuple information of the data packet is five-tuple information corresponding to the data flow to which the data packet belongs.
3. The method of any one of claims 1-2, wherein: each of the multiple slice packets carries a packet split identifier in a flow label and a sequence identifier indicating an arrangement order of the slice packet in the data packet.
4. A message transmission method characterized by comprising: The method applied to a receiving device comprises: receiving multiple slice packets split from a same data packet on multiple transmission links; recombining the multiple slice packets to obtain the data packet; Each of the plurality of slice packets carries five-tuple information of the data packet, and the flow label carries a hash perturbation factor; The plurality of slice packets are obtained by performing hash operations on the hash perturbation factors and the five-tuple information carried by each of the plurality of slice packets by the sending device, and the plurality of slice packets correspond to a plurality of hash operation results; each of the plurality of slice packets is distributed to a transmission link associated with the corresponding hash operation result for sending; and at least one of the plurality of hash operation results is associated with a transmission link different from other hash operation results. The plurality of slice packets and the hash perturbation factor carried by the flow label of each slice packet are obtained by the sending device performing the following steps: sending a probe packet to a connected first device, so that the first device writes its own network information into the probe packet, and then sends the probe packet to other devices connected to the first device, and continues to forward the probe packet between devices until the probe packet returns to the sending device after passing through each device in the network and carrying the network information of each device; for each data flow, transmission link prediction is performed based on different hash perturbation factors, and the relationship between different hash perturbation factors and available transmission links is determined as corresponding multi-path characteristic information according to the network information of each device and by deleting unusable transmission links; the data packet is obtained, and the data packet is divided into the plurality of slice packets; and the hash perturbation factor for each of the plurality of slice packets is selected from the multi-path characteristic information corresponding to the data flow to which the data packet belongs, and written into the flow label.
5. The method of claim 4, wherein For each of the plurality of slice packets, the flow label carries a packet division identifier and a sequence identifier indicating the arrangement order of the slice packet in the data packet.
6. The method according to claim 4 or 5, characterized in that, The recombining of the plurality of slice packets to obtain the data packet comprises: For each of the plurality of slice packets, identifying the packet division identifier from the respective flow label; For each of the plurality of slice packets, obtaining the sequence identifier from the respective flow label when the packet division identifier is identified from the respective flow label; The plurality of slice packets are sorted and recombined according to the respective sequence identifier of each slice packet to obtain the data packet.
7. The method of claim 4, wherein, Each of the plurality of slice packets carries five-tuple information of the data packet, and the five-tuple information of the data packet is five-tuple information corresponding to a data flow to which the data packet belongs, and the method further comprises: Based on the five-tuple information carried by each of the plurality of slice packets, it is determined that the plurality of slice packets belong to the same data flow.
8. A transmitting device, comprising: The sending module is configured to send a plurality of slice packets divided from the same data packet to a plurality of transmission links; and Each of the plurality of slice packets carries five-tuple information of the data packet, and the flow label carries a hash perturbation factor; The sending module is configured to perform hash operation on each of the plurality of slice packets by using the hash perturbation factor and the quintuple information carried by the slice packet, to obtain a plurality of hash operation results corresponding to the plurality of slice packets. Each of the plurality of slice packets is sent on a transmission link associated with a corresponding hash operation result. At least one of the plurality of hash operation results is associated with a transmission link different from those associated with other hash operation results. The sending device further includes a processing module. The sending module is further configured to send a probe packet to a first device connected thereto, so that the first device writes its network information into the probe packet and then sends the probe packet to other devices connected to the first device, and continues to forward the probe packet between devices until the probe packet returns to the sending device after passing through all devices in the network and carrying the network information of each device. The processing module is configured to, for each data flow, perform transmission link prediction based on different hash perturbation factors respectively, delete unavailable transmission links according to the network information of each device, and determine the relationship between different hash perturbation factors and available transmission links as corresponding multi-path feature information.
9. A receiving device, characterized by The processing module is configured to obtain the data packet and split the data packet into the plurality of slice packets, and select a hash perturbation factor for each of the plurality of slice packets from the multi-path feature information corresponding to the data flow to which the data packet belongs, and write the hash perturbation factor into a flow tag. The receiving module is configured to receive a plurality of slice packets split from a same data packet on a plurality of transmission links. The recombination module is configured to recombine the plurality of slice packets to obtain the data packet. Each of the plurality of slice packets carries quintuple information of the data packet, and a flow tag carries a hash perturbation factor. The plurality of slice packets are obtained by performing hash operation on each of the plurality of slice packets by using the hash perturbation factor and the quintuple information carried by the slice packet. Each of the plurality of slice packets is sent on a transmission link associated with a corresponding hash operation result. At least one of the plurality of hash operation results is associated with a transmission link different from those associated with other hash operation results. The multiple slice messages and the hash perturbation factor carried by each slice message flow label are obtained by the sending device performing the following steps: sending a probe message to a connected first device, so that the first device writes its network information into the probe message, and then sends the probe message to other devices connected to the first device, and continues to forward the probe message between devices until the probe message returns to the sending device after passing through each device in the network and carrying the network information of each device; for each data flow, transmission link prediction is performed based on different hash perturbation factors, and the unusable transmission links are deleted according to the network information of each device, and the relationship between different hash perturbation factors and the available transmission links is determined as the corresponding multi-path characteristic information; Obtaining the data message and dividing the data message into the multiple slice messages; selecting a hash perturbation factor for each slice message in the multiple slice messages from the multi-path characteristic information corresponding to the data flow to which the data message belongs, and writing the hash perturbation factor into a flow label.
10. A transmitting device, comprising: Comprise: A first processor, a first memory and a first communication bus; The first communication bus is used to realize the communication connection between the first processor and the first memory; The first processor is used to execute one or more computer programs stored in the first memory to realize the message transmission method in any one of claims 1-3.
11. A receiving device, characterized by Comprise: A second processor, a second memory and a second communication bus; The second communication bus is used to realize the communication connection between the second processor and the second memory; The second processor is used to execute one or more computer programs stored in the second memory to realize the message transmission method in any one of claims 4-7.
12. A computer readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to realize the message transmission method in any one of claims 1-7.
Citation Information
Patent Citations
Message forwarding method and device
CN101873251A
Message disorder rearrangement method and single board
CN113691469A