Communication method and device
By assigning numbers to the detection data packets and adjusting the transmission path of the service data packets based on the return order, the problems of data disorder and uneven bandwidth utilization in multi-path transmission are solved, and the orderly arrival of data packets and efficient load sharing are achieved.
Patent Information
- Application Number
- CN202110598905.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-30
- Filing Date
- 2021-05-31
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2041-05-31
AI Technical Summary
In multi-path transmission, how to reasonably distribute the data volume of each transmission path to fully utilize bandwidth resources and avoid data disorder, especially in scenarios such as data center networks and wide area networks.
By assigning numbers to the probe packets in the probe data stream and adjusting the transmission path of the service data packets based on the arrival order of the return probe packets, combined with the hash algorithm and different transmission path selections, packet-by-packet load sharing is achieved.
It achieves the in-order arrival of data packets in multi-path transmission, avoids data disorder problems, optimizes the utilization of bandwidth resources, and improves the efficiency of load sharing.
Smart Images

Figure CN113746751B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a communication method and device. Background Art
[0002] With the continuous development of cloud computing, data center traffic has gradually evolved from the traditional "north-south traffic" to "east-west traffic", which has brought higher challenges to network bandwidth and performance. In order to adapt to the new traffic distribution characteristics of cloud computing, the topology of the data center network (DCN) has undergone Figure 1 The evolution shown, from Figure 1 As can be seen in Figure 1, data center network architecture has evolved from a tree-like transmission network architecture (A) to a "fat-tree" network architecture (B). Unlike a tree-like network architecture, a fat-tree network architecture allows for multiple end-to-end transmission paths between any two edge switches, enabling end-to-end high-bandwidth, low-latency communication.
[0003] In addition, in addition to data center scenarios, such as Figure 2 As shown in Figure 2, the demand for multipath transmission is gradually increasing in scenarios such as wide area networks and metropolitan area networks. Therefore, when there are multiple transmission paths between the source node and the destination node to transmit data, how to reasonably distribute the amount of data transmitted by each transmission path, so as to fully utilize the bandwidth resources of each transmission path and avoid disordered transmission of data becomes an important issue in achieving optimal load sharing in multipath transmission. Summary of the Invention
[0004] The embodiments of the present application provide a communication method and apparatus for reasonably distributing the amount of data transmitted by each transmission path during multi-path transmission, making full use of the bandwidth resources of each transmission path, avoiding disorder of the transmitted data, and achieving optimal load sharing.
[0005] In a first aspect, the present application provides a communication method, the method comprising: a source node assigning a first number to a probe data packet in a probe data stream in a sending order, the first number being used for transmission path selection of the probe data packet; the source node sending the probe data packet in the probe data stream to the destination node at a first sending rate; when the source node receives each probe data packet returned by the destination node, the source node sends a business data packet to be transmitted in the business data stream, wherein the business data packet to be transmitted is assigned a second number corresponding to the probe data packet, the second number being used for transmission path selection of the business data packet; wherein, when the first number and the second number are the same, the transmission paths corresponding to the probe data packet assigned the first number and the business data packet assigned the second number are the same. Optionally, the source node sends the probe data packet in the probe data stream to the destination node at the first sending rate within one or more transmission cycles.
[0006] By adopting the above method, by introducing a new input variable (number), different business data packets in the same data stream can be hashed into different transmission paths, realizing multi-path packet-by-packet load sharing; at the same time, the business data transmission path adjustment strategy is based on the arrival order of the return detection data packets. The pre-transmission of the detection data packets is used to predict the link load of multiple paths at the next moment, thereby ensuring that the business data packets can arrive at the destination node in order, solving the most fatal data disorder problem in packet-by-packet load sharing, and realizing optimal load sharing.
[0007] In one possible design, the probe data packet transmitted back by the destination node carries a numbered reception sequence table, and the numbered reception sequence table is used by the destination node to record the first numbers of the probe data packets received in the current cycle in the order of reception when the probe data packet is received; the method also includes: when the source node receives each probe data packet transmitted back by the destination node, the source node updates the probe data packet arrival sequence table according to the numbered reception sequence table carried in the probe data packet transmitted back by the destination node, and the probe data packet arrival sequence table records the first numbers of the probe data packets that have arrived at the destination node in the current cycle in the order of arrival at the destination node. Optionally, the second number is the first number determined by the source node in the probe data packet arrival sequence table according to the order of receiving the probe data packets transmitted back by the destination node in the current cycle, which is consistent with the order.
[0008] In the above design, by introducing the arrival order information of the outbound probe data packet into the return probe data packet, the negative impact of the disordered transmission of the return probe data packet on the path planning of the business data message is effectively solved; even if the return probe data packet transmission process is disordered, the source node can still accurately restore the arrival order of the outbound probe data packet from the disordered return probe data packet, and correctly plan the path for the transmission of the business data packet to ensure that the business data packet arrives at the destination node in order.
[0009] In one possible design, the method further includes: the source node adjusting the first sending rate based on a packet loss rate of the detection data packet.
[0010] In the above design, the source node adjusts the detection packet sending rate according to the packet loss rate of the detection packet, which can effectively ensure that the detection packet sending rate matches the transmission bandwidth and avoid the overhead of additional traffic and processing resources.
[0011] In one possible design, the probe data packet does not include a data field.
[0012] In the above design, the detection data packet does not contain a data field, which can effectively reduce the traffic overhead caused by sending the detection data packet.
[0013] In the second aspect, the present application provides a communication method, which includes: when the destination node receives a probe data packet from the source node, the destination node updates a numbered reception sequence table, and the numbered reception sequence table is used to record the first number of the probe data packets received in the current cycle according to the reception order; the destination node returns the probe data packet to the source node, wherein the returned probe data packet carries the numbered reception sequence table.
[0014] By adopting the above method, by introducing the arrival order information of the outbound probe data packet into the return probe data packet, the negative impact of the disordered transmission of the return probe data packet on the path planning of the business data message is effectively solved; even if the return probe data packet transmission process is disordered, the source node can still accurately restore the arrival order of the outbound probe data packet from the disordered return probe data packet, and correctly plan the path for the transmission of the business data packet to ensure that the business data packet arrives at the destination node in order.
[0015] In one possible design, the detection data packet transmitted by the destination node to the source node carries information of the highest transmission priority, where the highest transmission priority corresponds to the lowest packet loss priority.
[0016] In the above design, the return probe data packet (i.e., the probe data packet sent back by the destination node to the source node) carries the information of the highest transmission priority, which can effectively prevent the transmission node from discarding the return probe data packet and ensure that the source node can send the business data packet according to the order information of the outbound probe data packet arriving at the destination node.
[0017] In one possible design, the probe data packet does not include a data field.
[0018] In the above design, the detection data packet does not contain a data field, which can effectively reduce the traffic overhead caused by sending the detection data packet.
[0019] In a third aspect, the present application provides a communication method, which includes: a transmission node receives a data packet, wherein the data packet carries a number, and the number is used to select a transmission path for the data packet; the transmission node calculates a hash value based on the source IP address, destination IP address, source port, destination port, transmission protocol and the number corresponding to the data packet; the transmission node selects the output port corresponding to the hash value to forward the data packet based on the hash value.
[0020] By adopting the above method, by introducing a new input variable (number), different business data packets or detection data packets in the same data stream can be hashed to different transmission paths, realizing multi-path packet-by-packet (data packet) load sharing.
[0021] In one possible design, the data packet is a probe data packet or a service data packet.
[0022] In one possible design, the method further includes: the transmission node allocating a first bandwidth for transmission of service data packets and a second bandwidth for transmission of probe data packets, wherein the first bandwidth is greater than the second bandwidth. Optionally, a ratio of the second bandwidth to the first bandwidth is a ratio of an average size of the probe data packets to an average size of the service data packets.
[0023] In the above design, transmission bandwidth is allocated to probe packets and business packets based on the ratio of the average size of probe packets to the average size of business packets, which is conducive to the transmission node to reasonably allocate bandwidth resources for transmitting probe packets and business packets.
[0024] In one possible design, the method also includes: when the detection data packet received by the transmission node is an outbound detection data packet, the transmission node transmits the outbound detection data packet through the second bandwidth; when the detection data packet received by the transmission node is a return detection data packet, the transmission node transmits the return detection data packet through the first bandwidth, wherein the outbound detection data packet is a detection data packet sent by the source node to the destination node, and the return detection data packet is a detection data packet returned by the destination node to the source node.
[0025] The above design can effectively prevent the transmission node from discarding the return probe data packet, ensuring that the source node can send the service data packet according to the arrival order information of the outbound probe data packet at the destination node.
[0026] In one possible design, the method also includes: when the rate at which the transmission node receives the outbound detection data packets is greater than the second bandwidth, the transmission node discards the outbound detection data packets, such as the transmission node discards the outbound detection data packets that exceed the transmission capacity (second bandwidth).
[0027] In the above design, the transmission node discards the outbound probe data packets that exceed the transmission capacity, which can prompt the source node to adjust the probe data packet sending rate according to the packet loss rate of the probe data packets, thereby effectively ensuring that the probe data packet sending rate matches the transmission bandwidth and avoiding additional traffic and processing resource overhead.
[0028] In one possible design, the return probe data packet carries information of the highest transmission priority, where the highest transmission priority corresponds to the lowest packet loss priority.
[0029] In the above design, the return probe data packet carries the information of the highest transmission priority, which can effectively prevent the transmission node from discarding the return probe data packet and ensure that the source node can send the business data packet according to the arrival order information of the outbound probe data packet at the destination node.
[0030] In one possible design, the probe data packet does not include a data field.
[0031] In the above design, the detection data packet does not contain a data field, which can effectively reduce the traffic overhead caused by sending the detection data packet.
[0032] In a fourth aspect, an embodiment of the present application provides a communication device having the function of implementing the above-mentioned first aspect or any possible design method of the first aspect, wherein the function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units (modules) corresponding to the above-mentioned functions, such as a communication unit and a processing unit.
[0033] In one possible design, the device may be a chip or an integrated circuit.
[0034] In one possible design, the apparatus includes a processor and a communication interface, the processor coupled to the communication interface for implementing the method described in the first aspect or any possible design of the first aspect. It will be appreciated that the communication interface may be a transceiver or an input / output interface. The apparatus may further include a memory storing a program executable by the processor for implementing the method described in the first aspect or any possible design of the first aspect.
[0035] In one possible design, the device may be a source node.
[0036] In a fifth aspect, an embodiment of the present application provides a communication device having the function of implementing the method in the second aspect or any possible design of the second aspect, wherein the function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units (modules) corresponding to the above functions, such as a communication unit and a processing unit.
[0037] In one possible design, the device may be a chip or an integrated circuit.
[0038] In one possible design, the apparatus includes a processor and a communication interface, the processor coupled to the communication interface for implementing the method described in the second aspect or any possible design of the second aspect. It will be appreciated that the communication interface may be a transceiver or an input / output interface. The apparatus may further include a memory storing a program executable by the processor for implementing the method described in the second aspect or any possible design of the second aspect.
[0039] In one possible design, the device may be a destination node.
[0040] In a sixth aspect, an embodiment of the present application provides a communication device having the function of implementing the third aspect or any possible design method of the third aspect, wherein the function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units (modules) corresponding to the above functions, such as a communication unit and a processing unit.
[0041] In one possible design, the device may be a chip or an integrated circuit.
[0042] In one possible design, the apparatus includes a processor and a communication interface, the processor coupled to the communication interface for implementing the method described in the third aspect or any possible design of the third aspect. It will be appreciated that the communication interface may be a transceiver or an input / output interface. The apparatus may further include a memory storing a program executable by the processor for implementing the method described in the third aspect or any possible design of the third aspect.
[0043] In one possible design, the device may be a transmission node.
[0044] In the seventh aspect, the present application provides a computer-readable storage medium, which stores computer instructions. When the computer instructions are executed, it can implement the method described in the first aspect or any possible design of the first aspect, or implement the method described in the second aspect or any possible design of the second aspect, or implement the method described in the third aspect or any possible design of the third aspect.
[0045] In an eighth aspect, the present application also provides a computer program product, including a computer program or instructions. When the computer program or instructions are executed, it can implement the method described in the first aspect or any possible design of the first aspect, or implement the method described in the second aspect or any possible design of the second aspect, or implement the method described in the third aspect or any possible design of the third aspect.
[0046] In the ninth aspect, the present application also provides a chip, which is used to implement the method described in the first aspect or any possible design of the first aspect, or to implement the method described in the second aspect or any possible design of the second aspect, or to implement the method described in the third aspect or any possible design of the third aspect.
[0047] The technical effects that can be achieved in the above-mentioned fourth to ninth aspects can be referred to the technical effects that can be achieved in the above-mentioned first to third aspects, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] Figure 1 This is a diagram of the evolution of the topology architecture of the data center network;
[0049] Figure 2 Schematic diagram of multipath transmission in wide area network and metropolitan area network;
[0050] Figure 3 A schematic diagram of the communication system architecture provided in an embodiment of the present application;
[0051] Figure 4A schematic diagram of the congestion-unaware flow-by-flow load balancing solution ECMP provided in an embodiment of the present application;
[0052] Figure 5 This is a schematic diagram of the principle of Presto, a fine-grained load balancing solution that is not aware of congestion status provided in an embodiment of the present application;
[0053] Figure 6 A schematic diagram of the scheduling strategy principle based on end-to-end congestion information provided in an embodiment of the present application;
[0054] Figure 7 A schematic diagram of the principle of a scheduling strategy based on local state information provided in an embodiment of the present application;
[0055] Figure 8 One of the communication process diagrams provided in the embodiment of the present application;
[0056] Figure 9 Schematic diagram of the congestion control mechanism for intermediate transmission nodes provided in an embodiment of the present application;
[0057] Figure 10 A schematic diagram of the workflow of the load balancing strategy provided in the embodiment of the present application;
[0058] Figure 11 Schematic diagram of the percentage of out-of-order data under different packet-by-packet load balancing strategies provided in the embodiments of the present application;
[0059] Figure 12 A schematic diagram of transmission completion time under different load sharing schemes provided in an embodiment of the present application;
[0060] Figure 13 A schematic diagram of a wide area network scenario with asymmetric round-trip paths provided in an embodiment of the present application;
[0061] Figure 14 A schematic diagram of a scenario in which out-of-order transmission of backhaul probe data packets in a wide area network is provided in an embodiment of the present application;
[0062] Figure 15 The second communication process diagram provided in the embodiment of the present application;
[0063] Figure 16 Schematic diagram of the sequential arrival of outbound probe data packets provided in an embodiment of the present application;
[0064] Figure 17 A schematic diagram of out-of-order return probe data packets provided in an embodiment of the present application;
[0065] Figure 18 Provide a scheduling strategy based on the end-to-end transmission path status for the embodiment of the present application;
[0066] Figure 19 A schematic diagram comparing network data transmission completion time and packet out-of-order ratio under different load sharing strategies provided in an embodiment of the present application;
[0067] Figure 20 A schematic diagram of network transmission completion rate and transmission completion time under different load sharing schemes in a WAN network failure scenario provided in an embodiment of the present application;
[0068] Figure 21 This is one of the structural diagrams of the communication device provided in the embodiment of the present application;
[0069] Figure 22 This is a second structural diagram of the communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0070] Figure 3 A possible communication system architecture diagram provided for an embodiment of the present application includes multiple hosts and multiple transmission nodes. The transmission nodes of the access layer and the aggregation layer can be divided into different clusters. In each cluster, each access layer transmission node is connected to each aggregation layer transmission node; at the same time, each aggregation layer transmission node is connected to one or more core layer transmission nodes, so that each cluster can be connected to any core layer transmission node. Figure 3 In the communication system architecture shown, there are multiple transmission paths between any two transmission nodes of the access layer to achieve high-bandwidth, low-latency communication between the two transmission nodes.
[0071] In addition, during data transmission, Figure 3Any host in the data transmission can serve as the source node, i.e., the data transmitter, or as the destination node, i.e., the data receiver. Data transmission is performed through multiple transmission paths constructed by multiple transmission nodes. Taking host A as the source node and host B as the destination node, the transmission paths between the source and destination nodes include transmission path 1: transmission node 11 - transmission node 21 - transmission node 31 - transmission node 24 - transmission node 16; transmission path 2: transmission node 11 - transmission node 22 - transmission node 31 - transmission node 24 - transmission node 16; transmission path 3: transmission node 11 - transmission node 23 - transmission node 31 - transmission node 24 - transmission node 16; transmission path 4: transmission node 11 - transmission node 23 - transmission node 32 - transmission node 24 - transmission node 16; and transmission path 5: transmission node 11 - transmission node 23 - transmission node 32 - transmission node 25 - transmission node 16. This application aims to solve the problem of how to distribute the amount of data transmitted by each transmission path when there are multiple transmission paths between the source node and the destination node for data transmission, so as to fully utilize the bandwidth resources of each transmission path, avoid disorder of the transmitted data, and achieve optimal load sharing.
[0072] Before introducing the embodiments of the present application, some terms in the present application are first explained to facilitate understanding by those skilled in the art.
[0073] 1) Host, a device with transceiver functions, for example, it can be a handheld device with wireless / wired connection function, a vehicle-mounted device, a wearable device, a computing device, a service server, a mobile station (MS) or other processing device connected to a wireless modem, etc., as well as a mobile terminal that communicates with one or more core networks via an access network, etc., and the embodiments of the present application are not limited to this.
[0074] 2) A transmission node is a device with data exchange (forwarding) function, which can be a switch, a router, a gateway, or other devices with data exchange function. The embodiments of the present application are not limited to this.
[0075] 3) Quintuple, usually refers to the source IP address, source port, destination IP address, destination port and transport layer protocol. For example: 192.168.1.1 10000 TCP 121.14.88.76 80 constitutes a quintuple. Its meaning is that a node with an IP address of 192.168.1.1 is connected to a node with an IP address of 121.14.88.76 and a port of 80 through port 10000 using the TCP protocol. In an embodiment of the present application, the transmission node can perform a hash calculation based on the quintuple of the received data packet, and select an output port based on the calculated hash value. For example: if the hash value obtained after hashing the quintuple is 80, the output port 80 of the transmission node is selected to forward the data packet; if the hash value obtained after hashing the quintuple is 100, the output port 100 of the transmission node is selected to forward the data packet.
[0076] 4) Equal cost multipath (ECMP) is a flow-by-flow load balancing solution that is not aware of congestion. Figure 4 As shown in the figure, the ECMP scheduling scheme uses a hashing method to calculate the egress ports for different data flows based on a five-tuple, completing a one-to-one mapping between each data flow and the end-to-end transmission path, and evenly hashing different data flows onto each end-to-end transmission path. Since the five-tuple for each flow is fixed, the egress port for each ECMP hash is also uniquely determined, and the end-to-end transmission path for that flow is ultimately uniquely determined. However, the biggest problem with the ECMP load balancing scheme is that when the traffic size in the network is unevenly distributed (a mixture of elephant flows and mouse flows), treating large and small flows as equivalent and assigning them to different transmission paths will result in severe load imbalance between the transmission paths.
[0077] 5) Presto solution is a fine-grained load balancing solution that is not aware of congestion. Figure 5As shown, the Presto solution will not adjust with the real-time changes in the data center status during the entire scheduling process, and the scheduling strategy is fixed. This solution uses a round-robin method to schedule multiple data streams arriving at the end side to different end-to-end transmission paths in turn with small flows (flow cells) (data flows with a fixed size of 64KB) as the granularity. Since this type of technical solution does not require the detection and recording of real-time status information, the execution efficiency of the solution is very high and does not introduce additional storage and computing overhead. The main principle of the Presto solution is to assume that multiple end-to-end transmission paths in the network are equivalent, so a simple hashing method is used to achieve a one-to-one mapping between each data stream and each end-to-end transmission path, and the data streams are evenly dispersed and scheduled to each end-to-end transmission path. However, in asymmetric data center networks or wide area networks (WANs), the transmission nodes in multiple end-to-end transmission paths often have different numbers of connected links. Due to the heterogeneity of the devices, the physical transmission rate of each link may also be different. Furthermore, during the scheduling process, the load conditions of each transmission node on the end-to-end transmission path change dynamically due to the sudden arrival of data streams. Therefore, the performance of each end-to-end transmission path in an asymmetric network is likely to vary significantly. Simply scheduling data streams evenly across each end-to-end transmission path will result in a serious imbalance in the load of each transmission path, with some transmission paths experiencing severe congestion while others are less loaded. Furthermore, in an asymmetric network architecture, data out-of-order problems may also occur.
[0078] 6) CONGA scheme is a scheduling strategy scheme based on end-to-end congestion information. Figure 6As shown in the figure, before each data scheduling decision, congestion information is detected for all end-to-end transmission paths passing through edge transmission nodes (path congestion can typically be approximated using metrics such as round trip time (RTT) and explicit congestion notification (ECN)). The congestion status of all transmission paths is recorded in a path status table. When making scheduling decisions, the scheduling algorithm queries the path status table for the congestion status of all end-to-end transmission paths to achieve deterministic data scheduling. For example, a newly generated data flow is scheduled to the end-to-end transmission path with the lightest current load (the CONGA strategy). This strategy continuously adjusts the data scheduling scheme in real time by detecting the congestion status of the data center network to achieve load balancing across multiple transmission paths. Regarding scheduling granularity, to avoid data out-of-order issues associated with packet-by-packet scheduling, CONGA employs a scheduling scheme based on bursts of tiny flowlets. This ensures that the packet interval between flowlets is greater than the maximum path delay difference, thus preventing data out-of-order between flowlets on multiple paths. However, the CONGA solution's biggest drawback is that detecting the status of all transmission paths in large-scale networks requires significant polling time, leading to significant information delays in the path status table. This significant polling and control time hinders real-time data flow scheduling. Furthermore, maintaining congestion information for all end-to-end transmission paths and executing scheduling policies in large-scale networks incurs significant storage and computational overhead. Therefore, CONGA and other strategies are limited to small-scale Layer 2 data center networks and are not applicable to larger networks.
[0079] 7) Drill solution is a scheduling strategy based on local state information, such as Figure 7As shown, the local scheduling strategy utilizes only the local congestion information of a particular node to perform local data scheduling. Therefore, when applying this technical solution, each node along the end-to-end transmission path makes a new scheduling decision, rather than just making it at the edge transmission node or source node. During each local scheduling, the scheduling strategy generates a scheduling decision based on the local node's congestion information (such as the amount of data backlog at each port). Because this type of solution only records the status information of the local node and not the global end-to-end transmission path, the information storage and polling overhead are greatly optimized, thus meeting the requirements of real-time scheduling. However, scheduling strategies based on local information distribute global scheduling decisions to each local node, completing end-to-end routing of network data through the sequential execution of the strategies of each local node along the end-to-end transmission path. The biggest drawback of this solution is its slow response to link and device failures. Under this strategy, if a node (such as a transmission node) fails, only its neighboring nodes will be able to detect it immediately. Remote nodes, without accessing the end-to-end transmission path status information, are unaware of the congestion and failure. Therefore, when a remote node on an end-to-end transmission path experiences a failure or congestion, the local node, unable to promptly detect the path status change, will continue to use the previous scheduling plan until the congestion is transmitted to its neighboring nodes, only then adjusting the scheduling strategy. Consequently, the scheduling strategy is prone to forming local congestion trees. Furthermore, local optimal solutions also sacrifice load balancing accuracy.
[0080] In addition, it should be understood that in the embodiments of the present application, at least one can also be described as one or more, and multiple can be two, three, four or more, and this application does not impose any restrictions.
[0081] In the embodiments of this application, " / " can indicate that the associated objects are in an "or" relationship. For example, A / B can mean A or B. "And / or" can be used to describe the existence of three relationships between associated objects. For example, "A and / or B" can mean: A exists alone, A and B exists simultaneously, or B exists alone. A and B can be singular or plural. To facilitate the description of the technical solutions of the embodiments of this application, the words "first" and "second" may be used in the embodiments of this application to distinguish between technical features with the same or similar functions. The words "first" and "second" do not limit the number or order of execution, and the words "first" and "second" do not necessarily mean different. In the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplary" or "for example" should not be construed as preferred or advantageous over other embodiments or designs. The use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner for easier understanding.
[0082] Because data packets provide the smallest possible unit of data flow adjustment, the present embodiment is based on the principle that the finest-grained per-packet (data packet) scheduling solution is the theoretically optimal load balancing strategy. It aims to further address the issue of data out-of-order scheduling on a per-packet basis to achieve optimal load balancing. The present embodiment is described in detail below with reference to the accompanying drawings.
[0083] [Example 1]
[0084] Figure 8 A communication process diagram provided in an embodiment of the present application includes:
[0085] S801: A source node assigns a first number to a probe data packet in a probe data stream according to a sending order, where the first number is used for transmission path selection of the probe data packet.
[0086] In an embodiment of the present application, a congestion control mechanism of micro-preview of probe data packets (credit) is adopted to realize the sending of business data packets. That is, before the business data packets are sent, the transmission of the business data packets is previewed by probe data, and the business data packets are sent based on the preview results of the probe data packets.
[0087] In order to enable data packets in the same data stream to be hashed to different transmission paths and realize load sharing of multiple transmission paths, in the embodiment of the present application, a hash algorithm is redesigned based on the hash algorithm of the existing transmission path. A new variable "number (seq)" is introduced on the basis of the five-tuple (i.e., source IP address, source port, destination IP address, destination port and transport layer protocol) to form a six-tuple. This allows different data packets in the same data stream to have different numbers despite having the same five-tuple. The hash values calculated based on the five-tuple + number hash are different, thus enabling different data packets in the same data stream to be hashed to different transmission paths.
[0088] In a possible implementation, the number may be carried in any free field of the data packet header, for example, in an options field or a time to live (TTL) field in the data packet header.
[0089] Specifically, when a source node has a service data stream to transmit, it first sends a probe data packet to detect congestion on multiple transmission paths. To ensure that multiple probe data packets in the same probe data stream are routed and forwarded across multiple transmission paths, the source node may assign incrementing first numbers to the probe data packets in the same probe data stream, based on the order in which the probe data packets were sent. For example, the first number of the first probe data packet in the probe data stream may be assigned "1," the first number of the second probe data packet may be assigned "2," the first number of the third probe data packet may be assigned "3," and so on.
[0090] At the same time, in order to reduce the traffic overhead caused by the detection data packet, the detection data packet may not include a data field, that is, the detection data packet may only include a packet header to reduce the data volume.
[0091] S802: The source node sends a detection data packet in the detection data flow to the destination node at a first sending rate.
[0092] In a possible embodiment, the source node can use a certain time length as a transmission period, and send detection data packets to the destination node at equal intervals (pacing) in each transmission period, where the first transmission rate of the source node to send the detection data packets to the destination node can be 0.5Gbps, etc.
[0093] After the transmission node located between the source node and the destination node receives the detection data packet (outbound detection data packet) sent by the source node and carrying the first number, it performs a hash calculation based on the five-tuple + the first number in the detection data packet, a total of 6 input parameters, to obtain a hash value, and selects the output port based on the obtained hash value.
[0094] For example: the five-tuple + first number of the first probe data packet is 192.168.1.1 10000TCP121.14.88.7680+1, the hash value obtained after calculation by the transmission node is 80, and the first probe data packet is forwarded through port 80; the five-tuple + first number of the second probe data packet is 192.168.1.1 10000TCP 121.14.88.7680+2, the hash value obtained after calculation by the transmission node is 85, and the second probe data packet is forwarded through port 85.
[0095] S803: When the destination node receives a detection data packet from the source node, the destination node returns the detection data packet to the source node.
[0096] Specifically, after receiving each data packet, the destination node can first determine whether the data packet is a probe packet or a service packet. If the received data packet is a probe packet, the probe packet is transmitted back. For example, the destination node can swap the source and destination IP addresses of the probe packet and transmit it, transmitting the probe packet back to the source node. If the data packet received by the destination node is a service packet, the destination node parses and processes the service packet. For example, the destination node decapsulates the service packet and reads the data carried in the service packet.
[0097] Similarly, after the transmission node located between the source node and the destination node receives the detection data packet (return detection data packet) carrying the first number transmitted back by the destination node, it performs a hash calculation based on the five-tuple + the first number in the detection data packet, a total of 6 input parameters, to obtain a hash value, and selects the output port based on the obtained hash value.
[0098] S804: When the source node receives a detection data packet sent back by the destination node, the source node sends a business data packet to be transmitted in the business data stream, wherein the business data packet to be transmitted is assigned a second number corresponding to the detection data packet, and the second number is used for transmission path selection of the business data packet.
[0099] Each time the source node receives a probe data packet (return probe data packet) returned by the destination node, the source node reads the first number carried by the probe data packet, and assigns the first number carried by the received probe data packet to the current business data packet to be transmitted in the business data stream as the second number of the business data packet to be transmitted, and sends the business data packet to be transmitted to the destination node.
[0100] For example, the source node receives a probe data packet sent back by the destination node, and the first number carried by the probe data packet is assigned to "5". The source node can assign the second number of the business data packet currently to be transmitted in the business data stream to "5" and send the business data packet to be transmitted to the destination node.
[0101] After the transmission node located between the source node and the destination node receives the service data packet (outbound service data packet) sent by the source node and carrying the second number, it performs a hash calculation based on the five-tuple + second number in the service data packet, a total of 6 input parameters, to obtain a hash value, and selects the output port based on the obtained hash value.
[0102] The probe data packets returned by the destination node continuously reach the source node, triggering the source node to send the business data packets to be transmitted in the business data flow to the destination node. The source node will continue to send business data packets to the destination node until the business data packets are sent.
[0103] In order to accurately rehearse the transmission of business data packets, in one possible implementation, a transmission node located between a source node and a destination node for forwarding business data packets and probe data packets can allocate different transmission bandwidths for the transmission of business data packets and the transmission of probe data packets. For example, the transmission node can allocate a first bandwidth and a second bandwidth for business data packets and probe data packets based on the ratio of the average size of business data packets to the average size of probe data packets. For example, if the ratio of the average size of probe data packets to the average size of business data packets is 1:19, the transmission node can use 5% of its total bandwidth for the transmission of probe data packets and 95% of its total bandwidth for the transmission of business data packets. The transmission node can also discard business data packets and / or probe data packets that exceed the transmission capacity, and the source node can also adjust the first sending rate of sending probe data packets based on the packet loss rate of the probe data packets. For example, when the packet loss rate of the probe data packets is greater than a set threshold (such as 20%), the source node can lower the first sending rate of sending probe data packets (such as lowering the first sending rate by 10%).
[0104] At the same time, in order to cope with the burst transmission of detection data packets, a small amount of cache can be reserved in the transmission node to cope with the burst transmission of detection data packets. For example, 8, 10, or other average-sized caches of detection data can be reserved in the transmission node to cope with the burst transmission of detection data packets.
[0105] like Figure 9 As shown, the total bandwidth of the transmission node is 10Gbps. The transmission node can be configured with a bandwidth of 9.5Gbps for transmitting service data packets and a bandwidth of 0.5Gbps for transmitting probe data packets. The source node sends probe data packets at a transmission rate of 1Gbps, which exceeds the second bandwidth (0.5Gbps) used by the transmission node for transmitting probe data packets. The transmission node discards probe data packets that exceed its transmission capacity. The transmission node has a packet loss rate of 50% for probe data packets. The probe data packets transmitted back via the destination node are only 50% of the probe data packets sent by the source node. Therefore, after discarding 50% of the probe data packets, the arrival rate of the return probe data packets (the probe data packets transmitted back by the destination node) is 1Gbps*50%=0.5Gbps. Since the source node sends a real business data packet every time it receives a return probe data packet, referring to the ratio of the business data packet and the probe data packet size, the sending rate of the business data packet is 0.5Gbps*19=9.5Gbps, which just matches the first bandwidth. Therefore, it is ensured that the transmission of the business data packet will neither cause congestion (cache backlog at the transmission node) nor cause insufficient throughput (the first bandwidth is not fully occupied).
[0106] In addition, in order to avoid the return probe data packet from being discarded (the probe data packet returned by the destination node), the return probe data packet carries information on the highest transmission priority, and the return probe data packet can be transmitted at the transmission node through the first bandwidth used to transmit the service data packet, where the highest transmission priority corresponds to the lowest packet loss priority.
[0107] In this method, the probe packet is used as a "stand-in" for the service packet, rehearsing the service packet transmission process in the current network environment. Through the transmission node's discarding of the probe packet and the destination node's return of the probe packet, the accurate load status of multiple transmission paths in the network is transmitted to the source node. The source node plans the transmission path of the service packet based on the order in which the probe packets arrive: the first service packet sent is sent along the transmission path of the first arriving probe packet (by assigning a quintuple and a number, the hash results of the service packet and the probe packet are consistent, that is, the transmission path is consistent).
[0108] In addition, the embodiment of the present application mainly utilizes the strong symmetry of the data center network. It is assumed that the return probe message transmitted with the highest priority will not have disorder in the symmetric data center network. Therefore, there is no need to carry additional sequence information in the probe data packet. The load status of the outbound transmission path of the probe data packet can be directly judged by the arrival order of the return probe data packet. Figure 10 As shown in the figure, the source node sent four probe packets along the probe packet channel: Stand-in 1, Stand-in 2, Stand-in 3, and Stand-in 4. Stand-in 4 was lost during transmission. The destination node received Stand-in 1 through Stand-in 3 and then transmitted them back to the source node. The source node received Stand-in 3 first, indicating that the transmission path for probe packet 3 was the lightest. Therefore, when transmitting the first service packet, it assigned the same number as Stand-in 3. Then, probe packet Stand-in 2 arrived, and the source node transmitted service packet 2, also assigned the same number as Stand-in 2. Finally, probe packet Stand-in 1 arrived, and the source node transmitted service packet 3, also assigned the same number as Stand-in 1. Table 1 shows a comparison of the numbering of relevant fields in service and probe packets. Where src_ip represents the source IP address, src_port represents the source port, dst_ip represents the destination IP address, dst_port represents the destination port, protocol represents the transport layer protocol, and Seq represents the number.
[0109]
[0110] Table 1
[0111] Ultimately, the embodiment of the present application ensures that the business data packet first sent by the source node is transmitted along the transmission path with the lightest current load, thereby ensuring that the business data packet arrives at the destination node in order, solving the disorder problem of packet-by-packet load sharing at the network layer, and eliminating the need for additional transport layer order preservation and restoration operations.
[0112] like Figure 11 As shown, the degree of disorder of business data transmission under different packet-by-packet load sharing strategies in random business data flow transmission and many-to-one data transmission (Incast) scenarios were tested respectively. In different scenarios, we gradually increased the number of concurrently transmitted business data flows (Flows) (gradually increasing from 16 flows to 2010 flows) to compare the overall disorder of the data center under different load conditions. Other load sharing strategies proposed by the academic community, such as DRILL, DRB, and Presto, were implemented based on the OMNET simulation platform in the simulation experiment and used as a comparison with the solution of this application. It can be seen that compared with other latest load sharing methods in the industry, the packet-by-packet load sharing of this application optimizes the proportion of disordered data packets to less than 0.4%. Even in the heavy load scenario of concurrent transmission of 2010 business data flows, the solution of this application still basically completely eliminates the problem of disordered business data packets. It should also be noted that in the heavy load scenario (2010 data streams transmitted concurrently) under the Incast scenario, the present invention's solution resulted in approximately 0.4% packet out-of-order. This may be due to the high concurrency of the probe packet transmission, which caused the return probe packet to be lost and out-of-order. This problem can be solved by introducing the method of probe packet arrival order as described in Example 2. Overall, the load sharing method of the present invention will hardly cause data out-of-order.
[0113] like Figure 12 As shown, further comparison Figure 11 The two scenarios show the overall completion time of data flows under different load balancing strategies. We continuously increased the network's background traffic and compared the service data transmission completion time corresponding to different load balancing strategies under different load conditions (gradually increasing from 30% to 90%). In this simulation experiment, classic load balancing schemes ECMP, CONGA, Prest, and DRILL were implemented on the OMENT simulation platform and used as comparison solutions for this application. Figure 12 (A) and Figure 12 (B) shows the changes in service data transmission completion time for different load balancing schemes in the random data stream transmission scenario and the Incast scenario. As can be seen, the packet-by-packet load balancing implemented in this application further balances the load across multiple transmission paths, resulting in an overall service data transmission completion time that is superior to other schemes.
[0114] [Example 2]
[0115] The solution of the first embodiment is mainly aimed at the topologically symmetrical data center network, and is designed based on the fact that the return detection data packets will not be out of order. Considering that in a general WAN scenario, the outbound and return transmission paths of the data transmission between the source node and the destination node may be highly asymmetric, such as Figure 13 As shown, the transmission path of the outbound probe data packet is different from the transmission path of the return probe data packet. The load conditions of the transmission path of the outbound probe data packet and the transmission path of the return probe data packet may be extremely different, resulting in the transmission of the return probe data packet transmitted by multiple paths also having disorder problems. At this time, it is difficult to correctly infer the order in which the outbound probe data packets arrive at the destination node based solely on the order in which the return probe data packets arrive at the source node.
[0116] like Figure 14 This describes a WAN scenario where the backhaul probe packets are out of order. Figure 14 As shown, the source node transmitted 6 probe data packets in sequence, and the 6 probe data packets were hashed to different transmission paths. There was no data disorder problem in the outbound transmission process, and the destination node received probe data packet 1, probe data packet 2, ..., probe data packet 6 in sequence. Every time the destination node receives a probe data packet, it immediately returns the probe data packet to the source node. However, there was a data disorder problem in the transmission of the return probe data packets: due to the different performance and load of the return path, probe data packet 2 arrived at the source node first, followed by probe data packet 1, probe data packet 4, ..., and finally probe data packet 5. In this scenario, if the technical solution of embodiment 1 is used, the second number of business data packet 1 will be assigned according to the first number of probe data packet 2, and transmitted according to the outbound path of probe data packet 2; and the second number of the second transmitted business data packet 2 will be assigned according to the first number of probe data packet 1, and transmitted according to the outbound path of probe data packet 1. As we know, during outbound transmission, probe packet 1 travels faster than probe packet 2. Therefore, service packet 2 arrives at the destination node before service packet 1, causing out-of-order transmission of service packets. Therefore, in WAN network scenarios, the technical solution of Example 1 needs to be improved to further address the out-of-order transmission of return probe packets.
[0117] Figure 15 A communication process diagram provided in an embodiment of the present application includes:
[0118] S1501: A source node assigns a first number to a probe data packet in a probe data stream according to a sending order, where the first number is used for transmission path selection of the probe data packet.
[0119] For the assignment of the first number in the detection data packet, reference may be made to the relevant description in the first embodiment, and no further details will be given.
[0120] S1502: The source node sends a detection data packet in the detection data flow to the destination node at a first sending rate.
[0121] In a possible embodiment, the source node can use a certain time length as a transmission period, and send detection data packets to the destination node at equal intervals (pacing) in each transmission period, where the first transmission rate of the source node to send the detection data packets to the destination node can be 0.5Gbps, etc.
[0122] For the implementation of the transmission node forwarding the detection data packet based on the first number of the detection data packet, reference may be made to the relevant description in the first embodiment, and no further details will be given.
[0123] S1503: When the destination node receives a detection data packet from the source node, the destination node updates the numbered reception sequence table, which is used to record the first numbers of the detection data packets received by the destination node in the current cycle in the order of reception.
[0124] For example, Figure 16 As shown, assuming that the probe data packets arrive in the order of probe data packet #1 to probe data packet #6, the actions of the destination node are as follows: when probe data packet #1 arrives, the destination node records the first number Seq1 in the number receiving sequence table; when probe data packet #2 arrives, the destination node records the first number Seq2 in the number receiving sequence table; and so on. When probe data packet #6 arrives, the destination node records the first number Seq6 in the number receiving sequence table.
[0125] S1504: The destination node returns the detection data packet to the source node, wherein the returned detection data packet carries the numbered receiving sequence table.
[0126] For example: After receiving an outbound probe data packet, the destination node immediately returns the probe data packet after completing the operation of updating the first number carried by the outbound probe data packet to the number receiving sequence table, and records the updated number receiving sequence table in the packet header of the probe data packet.
[0127] like Figure 16As shown, when the destination node returns probe data packet #1, Seq1 is carried in probe data packet #1; when returning probe data packet #2, Seq1 and Seq2 are carried in probe data packet #2; when returning probe data packet #3, Seq1, Seq2, and Seq3 are carried in probe data packet #3; and so on. When finally returning probe data packet #6, the first numbers Seq1 to Seq5 of the previously arrived probe data packets #1 to #5 and the first number Seq6 of probe data packet #6 are all recorded in the return probe data packet.
[0128] S1505: When the source node receives a probe data packet sent back by the destination node, the source node updates the probe data packet arrival sequence table according to the numbered reception sequence table carried in the probe data packet.
[0129] The detection data packet arrival sequence table records the first numbers of the detection data packets that have arrived at the destination node in the current cycle according to the order of arrival at the destination node.
[0130] For example, suppose the return probe packet appears as follows Figure 17 In the disordered situation shown, the source node will first receive the probe data packet #2, which carries the two first numbers Seq1 and Seq2 in sequence. The source node records the two first numbers in the probe data packet arrival sequence table in sequence; then the source node receives the probe data packet #1, and records the first number Seq1 in the probe data packet arrival sequence table (if the probe data packet arrival sequence table already has a record of the first number, skip this step); then the source node receives the probe data packet #4, and records the four first numbers Seq1 to Seq4 in sequence in the probe data packet arrival sequence table; and so on, finally the probe data packet #5 arrives, and at this time the source node's probe data packet arrival sequence table records a total of 6 first numbers Seq1 to Seq6 in sequence.
[0131] S1506: The source node sends a service data packet to be transmitted in the service data flow, where the service data packet to be transmitted carries a second number.
[0132] The second number is the first number that is determined by the source node according to the order of receiving the probe data packets in the current cycle and is consistent with the order in the probe data packet arrival sequence table.
[0133] The source node sends a real service data packet every time it receives a probe data packet sent back by the destination node. The service data packet and the probe data packet have the same five-tuple (source IP address, destination IP address, source port, destination port, and transport protocol). The source node assigns a specific value to the second number of the service data packet to plan the transmission path of the service data packet so that the service data packet arrives at the destination node in order. Specifically, Figure 17 In the scenario shown, when the source node receives the return probe data packet #2, it will send the business data packet #1. At this time, the source node obtains the two first numbers Seq1 and Seq2 by parsing the probe data packet, and thus knows that although the first probe data packet that arrives in the return transmission is the probe data packet #2, the first number of the probe data packet that arrives at the destination node first in the outbound transmission is actually Seq1. Therefore, when sending the business data packet #1, the second number of the business data packet will be assigned to Seq1; after that, the return probe data packet #1 arrives, and the source node sends the business data packet #2. By checking the probe data packet arrival sequence table, it is found that the first number of the probe data packet that arrives second in the outbound transmission is Seq2, and the second number of the business data packet #2 is assigned Seq2; Next, the source node receives the return probe data packet #4 and sends the service data packet #3. At this time, the probe data packet arrival sequence table records the four first numbers Seq1 to Seq4 in sequence (recorded in the return probe data packet #4). The source node knows that the first number of the third probe data packet arriving in the outbound journey is Seq3, so the second number of the service data packet #3 is assigned to Seq3; and so on. Finally, the source node receives the return probe data packet #5 and sends the service data packet #6. At this time, the source node probe data packet arrival sequence table records a total of 6 first numbers Seq1 to Seq6 in sequence, and assigns the first number Seq6 of the last probe data packet arriving in the outbound journey to the service data packet #6. Finally, the second numbers of the 6 service data packets are assigned to Seq1 to Seq6 in sequence, so that the 6 service data packets will arrive at the destination node in the transmission order of the outbound probe data packets.
[0134] In the embodiment of the present application, the processing of the detection data packet and the service data packet by the source node and the destination node except for assigning the second number, as well as the processing of the detection data packet and the service data packet by the transmission node located between the source node and the destination node, can refer to Example 1, and the repeated parts will not be repeated.
[0135] Specifically, the scheduling strategy designed by this application based on the end-to-end transmission path status, its core method flow is summarized as follows: Figure 18. When the source node has data to transmit, it first sends a probe data packet in the control channel (corresponding to the second bandwidth allocated for the transmission of the probe data packet) to detect the congestion status of multiple transmission paths. In order to ensure that different probe data packets in the same probe data stream are forwarded along multiple transmission paths, the source node assigns the value of the probe data packet number (Seq) in the same probe data stream in an incremental manner according to the order in which the probe data packets are sent (such as: the first probe data packet is assigned Seq=1, the second probe data packet is assigned Seq=2, the third probe data packet is assigned Seq=3...). In addition, the present application improves the traditional hash routing method, introduces the number (Seq) value as a new input parameter, and the transmission node calculates the hash result based on a total of 6 input parameters including the quintuple (source IP address, destination IP address, source port, destination port, transport layer protocol) and Seq, and selects the output port.
[0136] After receiving a probe packet, the destination node reads the Seq value of the probe packet and records the Seq values of the probe packets arriving in the order in which they arrived in the numbered reception sequence table. For each probe packet received, the destination node swaps the source / destination addresses of the packet and returns the probe packet to the source node with the highest priority. By querying the numbered reception sequence table, the destination node carries the Seq values of the probe packets arriving from the first to the nth time in the header of the returned probe packet, allowing the source node to resolve the out-of-order problem of the return probe packets.
[0137] After the source node receives the returned probe data packet, it reads all the Seq values carried in the return probe data packet and records them in sequence in the probe data packet arrival sequence table. Every time the source node receives a return probe data packet, it sends a business data packet in the data channel (corresponding to the first bandwidth allocated for business data packet transmission). When sending the nth business data packet, the source node must have received n probe data packets, and at least n Seq values have been recorded in the probe data packet arrival sequence table; therefore, the source node can accurately find the Seq value Seq n corresponding to the nth outbound probe data packet from the probe data packet arrival sequence table, and assign it to the nth business data packet. Since the Seq value is the same as the five-tuple, the nth business data packet will be transmitted to the destination node along the same transmission path as the nth outbound probe data packet. In summary, it is guaranteed that the nth business data packet will arrive at the destination node nth, that is, all business data packets arrive in order, and no additional order-preserving restoration operation is required at the transport layer.
[0138] Compared with the technical solution in the first embodiment, the technical solution of this embodiment focuses on the WAN network scenario where the round-trip paths and traffic distribution are severely asymmetric. To this end, we have improved the network topology architecture in the first embodiment and constructed an asymmetric network architecture similar to the WAN. Specifically, we use the OMNET++ simulation tool to Figure 1 In the data center network shown, 25% of the links were randomly selected and their link bandwidth was reduced from 10Gbps to 3Gbps, thereby constructing an asymmetric network architecture similar to a WAN. We then evaluated the network's service data transmission completion time (FCT) and the percentage of disordered packets (Percentage of Disordered Packets) under the influence of this embodiment in an Incast scenario. The recently proposed CONGA, Presto, DRILL, DRB, and traditional ECMP solutions were all implemented in the OMNET++ environment in the simulation experiment and used as comparison technologies for the technical solutions of this embodiment.
[0139] like Figure 19 As shown in Figure 1, it shows the network service data transmission completion time (A) and the proportion of service data packets out of order (B) under different load sharing schemes. Figure 19 As can be seen in the figure, after the introduction of the detection data packet arrival order information, the technical solution of this application almost perfectly solves the data disorder problem: even in a heavy load scenario with 2010 data streams transmitted concurrently, the technical solution of this application still successfully maintains zero disorder. Figure 19 The results show that under the action of the packet-by-packet load sharing scheme (DRILL, the scheme of this application), the overall completion time of the network's business data transmission is better than the coarse-grained load sharing scheme (CONGA, Presto, ECMP); in addition, since the technical solution of this application further solves the problem of data disorder compared to DRILL, the overall performance is better than DRILL.
[0140] Afterwards, we further constructed an unstable network environment to test the scheduling effect of the technical solution of this application in a highly dynamic network environment. Figure 1 In the DCN network shown, two transmission nodes are randomly selected and 50% packet loss is introduced to the data stream passing through these two transmission nodes to simulate a WAN network failure scenario. In this network failure scenario, we further compare the performance of the technical solution of this application with the latest load sharing solutions in the industry.
[0141] Figure 20 Figures A and B in Figure 1 compare the transmission success rate and transmission completion time of different load balancing methods in WAN network failure scenarios. Figure 20From (A), we can see that DRILL, Presto and the three solutions of this application can successfully sense network failures and ensure 100% transmission of all data flows under different network load levels. However, congestion-unaware strategies such as ECMP only perform hash routing on packets based on the five-tuple, which results in a certain proportion of data being hashed to the faulty path, causing this part of data to be unable to be successfully transmitted. Figure 20 In (B), we further found that although DRILL, Presto and the present application can all successfully perceive network failures, the transmission completion time of the technical solution of the present application is better than that of DRILL and Presto, indicating that the present application solution can perceive changes in the network environment faster than the industry's most advanced technology, and is therefore more suitable for WAN scenarios with highly dynamic network environments.
[0142] The above mainly introduces the solution provided by the present application from the perspective of the source node, the destination node and the transmission node. It can be understood that in order to realize the above functions, each network element includes a hardware structure and / or software module (or unit) corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in a hardware or computer software driven hardware manner depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0143] Figure 21 Schematic diagram of the structure of possible communication devices provided by the embodiments of the present application. These communication devices can be used to implement the functions of the source node, destination node or transmission node in the above method embodiments, and thus can also achieve the beneficial effects possessed by the above method embodiments. In the embodiments of the present application, the communication device can be Figure 8 or Figure 15 Any source node, any destination node, or any transmission node in the system, or a unit (or module) applied to a source node, a destination node, or a transmission node.
[0144] like Figure 21 The communication device 2100 may include: a processing unit 2102 and a communication unit 2103, and may also include a storage unit 2101. The communication device 2100 is used to implement the above Figure 8 or Figure 15 The functions of the source node, destination node or transmission node in the method embodiment shown in FIG.
[0145] In one possible design, processing unit 2102 is configured to implement corresponding processing functions. Communication unit 2103 is configured to support communication between communication device 2100 and other network entities. Storage unit 2101 is configured to store program code and / or data of communication device 2100. Optionally, communication unit 2103 may include a receiving unit and / or a sending unit, respectively configured to perform receiving and sending operations.
[0146] When the communication device 2100 is used to implement the function of the source node in the method embodiment: the processing unit 2102 is used to assign a first number to the probe data packets in the probe data stream in the order of transmission, and the first number is used for selecting a transmission path for the probe data packets; the communication unit 2103 is used to send the probe data packets in the probe data stream to the destination node at a first transmission rate; the communication unit 2103 is further used to send a business data packet to be transmitted in the business data stream each time a probe data packet returned by the destination node is received, wherein the business data packet to be transmitted is assigned a second number corresponding to the probe data packet, and the second number is used for selecting a transmission path for the business data packet;
[0147] When the first number and the second number are the same, the transmission paths corresponding to the detection data packet assigned with the first number and the service data packet assigned with the second number are the same.
[0148] In one possible design, when the communication unit 2103 sends the detection data packets in the detection data stream to the destination node at a first sending rate, it is specifically used to send the detection data packets in the detection data stream to the destination node at the first sending rate within one or more transmission cycles.
[0149] In one possible design, the probe data packet returned by the destination node carries a numbered reception sequence table, and the numbered reception sequence table is used by the destination node to record the first numbers of the probe data packets received in the current cycle in the reception order when the probe data packet is received; the processing unit 2102 is also used to update the probe data packet arrival sequence table according to the numbered reception sequence table carried in the probe data packet returned by the destination node each time the communication unit 2103 receives a probe data packet returned by the destination node, and the probe data packet arrival sequence table records the first numbers of the probe data packets that have arrived at the destination node in the current cycle in the order of arrival at the destination node.
[0150] In one possible design, the second number is the first number that matches the order determined by the processing unit 2102 in the probe data packet arrival sequence table based on the order of receiving the probe data packets returned by the destination node in the current cycle.
[0151] In one possible design, the processing unit 2102 is further used to adjust the first sending rate according to the packet loss rate of the detection data packet.
[0152] In one possible design, the probe data packet does not include a data field.
[0153] When the communication device 2100 is used to implement the function of the destination node in the method embodiment: the processing unit 2102 is configured to update the numbered reception sequence table each time the communication unit 2103 receives a probe data packet from the source node, the numbered reception sequence table being configured to record, in order of receipt, the first numbers of the probe data packets received in the current cycle;
[0154] The communication unit 2103 is configured to transmit the detection data packet back to the source node, wherein the transmitted detection data packet carries the numbered receiving sequence table.
[0155] In one possible design, the detection data packet transmitted back to the source node carries information of the highest transmission priority, where the highest transmission priority corresponds to the lowest packet loss priority.
[0156] In one possible design, the probe data packet does not include a data field.
[0157] When the communication device 2100 is used to implement the function of the transmission node in the method embodiment: the communication unit 2103 is used to receive a data packet, where the data packet carries a number, and the number is used to select a transmission path for the data packet;
[0158] The processing unit 2102 is used to calculate a hash value based on the source IP address, destination IP address, source port, destination port, transmission protocol and the number corresponding to the data packet; and select an output port corresponding to the hash value to forward the data packet according to the hash value.
[0159] In one possible design, the data packet is a probe data packet or a service data packet.
[0160] In one possible design, the processing unit 2102 is further used to allocate a first bandwidth for business data packet transmission and a second bandwidth for detection data packet transmission, where the first bandwidth is greater than the second bandwidth.
[0161] In one possible design, the ratio of the second bandwidth to the first bandwidth is the ratio of the average size of the probe data packets to the average size of the service data packets.
[0162] In one possible design, when the probe data packet received by the communication unit 2103 is an outbound probe data packet, the communication unit 2103 transmits the outbound probe data packet through the second bandwidth; when the probe data packet received by the communication unit 2103 is a return probe data packet, the communication unit 2103 transmits the return probe data packet through the first bandwidth; wherein, the outbound probe data packet is a probe data packet sent by the source node to the destination node, and the return probe data packet is a probe data packet returned by the destination node to the source node.
[0163] In one possible design, when the rate at which the communication unit 2103 receives the outbound detection data packets is greater than the second bandwidth, the communication unit 2103 discards the outbound detection data packets, such as discarding the outbound detection data packets that exceed the transmission capacity (second bandwidth).
[0164] In one possible design, the return probe data packet carries information of the highest transmission priority, where the highest transmission priority corresponds to the lowest packet loss priority.
[0165] In one possible design, the probe data packet does not include a data field.
[0166] Based on the above embodiments, the present application also provides a communication device, referring to Figure 22 As shown, the communication device 2200 includes: a communication interface 2201, a processor 2202 and a memory 2203, wherein:
[0167] The communication interface 2201, the processor 2202, and the memory 2203 are interconnected. Optionally, the communication interface 2201, the processor 2202, and the memory 2203 are interconnected via a bus 2204; the bus 2204 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, Figure 22 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0168] The communication device 2200 is implemented as follows Figure 8 or as Figure 15 The communication method shown applies to the source node when:
[0169] Communication interface 2201, used for receiving and sending data;
[0170] The processor 2202 is configured to call the program instructions stored in the memory to execute the following method:
[0171] Assigning first numbers to the probe data packets in the probe data stream in a sending order, wherein the first numbers are used for selecting a transmission path for the probe data packets;
[0172] Sending the detection data packets in the detection data stream to the destination node at a first sending rate through the communication interface 2201;
[0173] When each probe data packet returned by the destination node is received through the communication interface 2201, a service data packet to be transmitted in the service data stream is sent through the communication interface 2201, wherein the service data packet to be transmitted is assigned a second number corresponding to the probe data packet, and the second number is used for transmission path selection of the service data packet;
[0174] When the first number and the second number are the same, the transmission paths corresponding to the detection data packet assigned with the first number and the service data packet assigned with the second number are the same.
[0175] In one possible design, sending, through the communication interface 2201, the probe data packet in the probe data stream to the destination node at the first sending rate, includes:
[0176] The communication interface 2201 sends the probe data packets in the probe data flow to the destination node at the first sending rate within one or more transmission periods.
[0177] In one possible design, the probe data packet transmitted back by the destination node carries a numbered reception sequence table, and the numbered reception sequence table is used by the destination node to record, in order of receipt, the first numbers of the probe data packets received in the current cycle. The method further includes:
[0178] When each detection data packet transmitted back by the destination node is received through the communication interface 2201, the detection data packet arrival sequence table is updated according to the number receiving sequence table carried in the detection data packet transmitted back by the destination node. The detection data packet arrival sequence table records the first number of the detection data packet that has arrived at the destination node in the current cycle in the order of arrival at the destination node.
[0179] In one possible design, the second number is a first number that is consistent with the order determined in the probe data packet arrival sequence table based on the order of receiving the probe data packets returned by the destination node in the current cycle.
[0180] In one possible design, the method further includes:
[0181] The first sending rate is adjusted according to the packet loss rate of the detection data packet.
[0182] In one possible design, the probe data packet does not include a data field.
[0183] In another possible implementation, the communication device 2200 implements the following Figure 8 or as Figure 15 When the communication method shown is applicable to the destination node:
[0184] Communication interface 2201, used for receiving and sending data;
[0185] The processor 2202 is configured to call the program instructions stored in the memory to execute the following method:
[0186] When the communication interface 2201 receives a detection data packet from the source node, it updates the number reception sequence table, which is used to record the first number of the detection data packets received in the current cycle in the order of reception;
[0187] The detection data packet is transmitted back to the source node via the communication interface 2201 , wherein the transmitted detection data packet carries the numbered receiving sequence table.
[0188] In one possible design, the detection data packet transmitted back by the destination node to the source node carries information of the highest transmission priority, where the highest transmission priority corresponds to the lowest packet loss priority.
[0189] In one possible design, the probe data packet does not include a data field.
[0190] In another possible implementation, the communication device 2200 implements the following Figure 8 or as Figure 15 When the communication method shown applies to a transmitting node:
[0191] Communication interface 2201, used for receiving and sending data;
[0192] The processor 2202 is configured to call the program instructions stored in the memory to execute the following method:
[0193] receiving a data packet through the communication interface 2201, wherein the data packet carries a number, and the number is used for selecting a transmission path for the data packet;
[0194] Calculate a hash value based on the source IP address, destination IP address, source port, destination port, transport protocol, and the number corresponding to the data packet;
[0195] According to the hash value, an egress port corresponding to the hash value is selected to forward the data packet.
[0196] In one possible design, the data packet is a probe data packet or a service data packet.
[0197] In one possible design, the method further includes:
[0198] A first bandwidth is allocated for transmission of service data packets, and a second bandwidth is allocated for transmission of detection data packets, wherein the first bandwidth is greater than the second bandwidth.
[0199] In one possible design, the ratio of the second bandwidth to the first bandwidth is the ratio of the average size of the probe data packets to the average size of the service data packets.
[0200] In one possible design, the method further includes:
[0201] When the detection data packet received through the communication interface 2201 is an outbound detection data packet, the outbound detection data packet is transmitted through the second bandwidth; when the detection data packet received through the communication interface 2201 is a return detection data packet, the return detection data packet is transmitted through the first bandwidth. The outbound detection data packet is a detection data packet sent by the source node to the destination node, and the return detection data packet is a detection data packet returned by the destination node to the source node.
[0202] In one possible design, when the rate of receiving the outbound detection data packets through the communication interface 2201 is greater than the second bandwidth, the outbound detection data packets are discarded, such as discarding the outbound detection data packets that exceed the transmission capacity (second bandwidth).
[0203] In one possible design, the return probe data packet carries information of the highest transmission priority, where the highest transmission priority corresponds to the lowest packet loss priority.
[0204] In one possible design, the probe data packet does not include a data field.
[0205] As another form of this embodiment, a computer-readable storage medium is provided, on which instructions are stored. When the instructions are executed, the method applicable to the source node, destination node or transmission node in the above method embodiment can be executed.
[0206] As another form of this embodiment, a computer program product including instructions is provided, which, when executed, can perform the method in the above method embodiment applicable to a source node, a destination node, or a transmission node.
[0207] As another form of this embodiment, a chip is provided. When the chip is running, it can execute the method in the above method embodiment that is applicable to a source node, a destination node, or a transmission node.
[0208] In the embodiments of the present application, the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of the present application may be directly implemented as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.
[0209] In an embodiment of the present application, the memory may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), etc., or a volatile memory (volatile memory), such as a random-access memory (RAM). The memory is any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory in an embodiment of the present application may also be a circuit or any other device that can implement a storage function, for storing program instructions and / or data.
[0210] The technical solutions provided in the embodiments of the present application can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, they can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a terminal device, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital video disc (DVD)), or a semiconductor medium.
[0211] In the embodiments of the present application, under the premise that there is no logical contradiction, the embodiments may reference each other, for example, the methods and / or terms between method embodiments may reference each other, for example, the functions and / or terms between device embodiments may reference each other, for example, the functions and / or terms between device embodiments and method embodiments may reference each other.
[0212] Obviously, those skilled in the art may make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include these modifications and variations.
[0213] [Example 3]
[0214] The solutions in Examples 1 and 2 above primarily implement the design of a multi-path, packet-by-packet transmission solution above Layer 3 (the network layer) of the network protocol stack. Therefore, a sextuple consisting of "IP quintuple + packet sequence number" can be used as a number to identify different data packets. Implementing the technical solutions in Examples 1 and 2 at Layer 3 (the network layer) of the network protocol stack often involves modifying the operating system kernel, which is a relatively large workload. This example focuses on implementing self-order-preserving, multi-path, packet-by-packet transmission at Layer 2 (the MAC layer) of the network protocol stack, thereby avoiding complex operating system kernel modifications.
[0215] The MAC layer of the network protocol stack cannot directly identify the traditional IP five-tuple, so the sextuple in Example 1 and Example 2 cannot be used as the unique identifier of the data packet. According to the data frame format definition of the IEEE 802.11 MAC layer, when implementing this solution at the MAC layer, a unique number consisting of a triplet of "source MAC address + destination MAC address + frame sequence number" can be used to identify a specific data frame. After completing the data frame identification based on the triplet, the solution of Example 1 can still be reused to assign the service data packet number (triplet) based on the arrival order of the return detection data packet, thereby planning the transmission path of the service data.
[0216] Specifically, before the source node initiates MAC layer data frame transmission, it first uses the IP address of the destination node to initiate an ARP request; the gateway node returns the MAC address of the gateway network card according to the IP address of the destination node; after the source node obtains the MAC address of the gateway network card, it starts to send detection data packets to the destination node at the first sending rate.
[0217] After the transmission node located between the source node and the destination node receives the outbound detection data packet or service data packet sent by the source node, it performs a hash calculation based on the triplet (source MAC address, destination MAC address and frame sequence number) in the detection data packet to obtain a hash value, and selects the output port based on the obtained hash value.
[0218] After receiving each data packet, the destination node can first determine whether the packet is a probe packet or a service packet. If the received data packet is a probe packet, the destination node can transmit the probe packet back. For example, the destination node can swap the source MAC address and destination MAC address of the probe packet and transmit the probe packet back to the source node. If the data packet received by the destination node is a service packet, the destination node parses and processes the service packet. For example, the destination node decapsulates the service packet and reads the data carried in the service packet.
[0219] Each time a source node receives a probe packet (return probe packet) from a destination node, it reads the triplet of information carried in the probe packet (source MAC address, destination MAC address, and frame sequence number), assigns the triplet to the current service data packet in the service data stream as its identifier, and then sends the service data packet to the destination node. This enables self-ordered, per-packet multipath data transmission at the MAC layer.
[0220] Different from the first and second embodiments, when implementing the multi-path packet-by-packet transmission scheme at the MAC layer, instead of using a six-tuple (traditional IP five-tuple + packet sequence number) as the label of a specific data packet, a three-tuple (source MAC address + destination MAC address + frame sequence number) can be used as the unique identifier of the data frame. The subsequent data transmission process still uses the method of "detection and return of the detection data packet, and number assignment and path planning of the business data packet based on the three-tuple information of the returned detection packet" to achieve self-ordered multi-path transmission. Therefore, the numbering of the identification data is not necessarily limited to a six-tuple (traditional IP five-tuple + packet sequence number). Any attribute combination that can uniquely identify a specific data packet can be used as a number to assign between the detection data packet and the business data packet, and as a parameter for path planning.
Claims
1. A communication method, characterized in that: include: The source node assigns a first number to the probe data packets in the probe data stream according to a sending order, where the first number is used for selecting a transmission path for the probe data packets; The source node sends the detection data packets in the detection data stream to the destination node at a first sending rate; When the source node receives a probe data packet sent back by the destination node, the source node sends a service data packet to be transmitted in the service data stream, wherein the service data packet to be transmitted is assigned a second number corresponding to the probe data packet, and the second number is used for transmission path selection of the service data packet; Among them, the probe data packet returned by the destination node carries a numbered reception sequence table, and the numbered reception sequence table is used by the destination node to record the first number of the probe data packet received in the current cycle according to the numbered reception sequence when receiving the probe data packet, and the second number is determined according to the numbered reception sequence table; when the first number and the second number are the same, the transmission paths corresponding to the probe data packet assigned the first number and the service data packet assigned the second number are the same.
2. The method according to claim 1, wherein The source node sends the probe data packet in the probe data stream to the destination node at a first sending rate, comprising: The source node sends the probe data packets in the probe data flow to the destination node at the first sending rate within one or more transmission periods.
3. The method according to claim 2, wherein The method further comprises: Each time the source node receives a probe data packet sent back by the destination node, the source node updates the probe data packet arrival sequence table according to the number receiving sequence table carried in the probe data packet sent back by the destination node. The probe data packet arrival sequence table records the first number of the probe data packets that have arrived at the destination node in the current cycle in the order in which they arrive at the destination node.
4. The method according to claim 3, wherein The second number is a first number that is determined by the source node in the probe data packet arrival sequence table according to the order of receiving the probe data packets returned by the destination node in the current cycle and that matches the order.
5. The method according to claim 1, wherein The method further comprises: The source node adjusts the first sending rate according to the packet loss rate of the detection data packet.
6. The method according to any one of claims 1 to 5, wherein The detection data packet does not include a data field.
7. A communication method, characterized in that: include: When a destination node receives a probe data packet from a source node, the destination node updates a number receiving sequence table, wherein the probe data packet includes a first number, the first number being assigned by the source node to the probe data packets in the probe data stream according to a sending order, and the number receiving sequence table is used to record the first numbers of the probe data packets received in the current cycle according to a receiving order; The destination node returns the probe data packet to the source node, wherein the returned probe data packet carries the number receiving sequence table, and the returned probe data packet is used to send a business data packet to be transmitted in the business data stream each time the source node receives the returned probe data packet, wherein the business data packet to be transmitted is assigned a second number corresponding to the probe data packet, and the second number is used for transmission path selection of the business data packet, and the second number is determined according to the number receiving sequence table.
8. The method according to claim 7, wherein The detection data packet transmitted back by the destination node to the source node carries information of the highest transmission priority, wherein the highest transmission priority corresponds to the lowest packet loss priority.
9. The method according to claim 7 or 8, wherein The detection data packet does not include a data field.
10. A communication method, characterized in that: include: A transmission node receives a data packet, wherein the data packet includes a probe data packet carrying a first number and a service data packet carrying a second number; the first number is assigned by the source node to the data packet in the data stream in the order of sending, and the first number is used for transmission path selection of the probe data packet; the second number is determined according to a number reception sequence table, and the number reception sequence table is used for the destination node of the probe data packet to record the first numbers of the probe data packets received in the current cycle in the order of number reception when receiving the probe data packet, and the second number is used for transmission path selection of the data packet; the probe data packet carrying the first number is used to send a service data packet carrying the second number when the source node receives a returned probe data packet carrying the first number; The transmission node calculates a hash value based on the source IP address, destination IP address, source port, destination port, transmission protocol, and the first number or the second number corresponding to the data packet; The transmission node selects an egress port corresponding to the hash value to forward the data packet according to the hash value.
11. The method according to claim 10, wherein The method further comprises: The transmission node allocates a first bandwidth for transmission of service data packets and a second bandwidth for transmission of detection data packets, wherein the first bandwidth is greater than the second bandwidth.
12. The method according to claim 11, wherein The ratio of the second bandwidth to the first bandwidth is the ratio of the average size of the probe data packets to the average size of the service data packets.
13. The method according to claim 11, wherein The method further comprises: When the detection data packet received by the transmission node is an outbound detection data packet, the transmission node transmits the outbound detection data packet through the second bandwidth; When the detection data packet received by the transmission node is a backhaul detection data packet, the transmission node transmits the backhaul detection data packet through the first bandwidth; The outbound detection data packet is a detection data packet sent by a source node to a destination node, and the return detection data packet is a detection data packet transmitted by the destination node to the source node.
14. The method according to claim 13, wherein The method further comprises: When the rate at which the transmission node receives the outbound detection data packets is greater than the second bandwidth, the transmission node discards the outbound detection data packets.
15. The method according to claim 13, wherein The return probe data packet carries information of the highest transmission priority, wherein the highest transmission priority corresponds to the lowest packet loss priority.
16. The method according to any one of claims 10 to 15, wherein: The detection data packet does not include a data field.
17. A communication device, characterized in that: include: a processing unit, configured to assign first numbers to the probe data packets in the probe data stream in a sending order, wherein the first numbers are used for selecting a transmission path for the probe data packets; a communication unit, configured to send a detection data packet in the detection data stream to a destination node at a first sending rate; The communication unit is further configured to send a service data packet to be transmitted in the service data stream each time a probe data packet returned by the destination node is received, wherein the service data packet to be transmitted is assigned a second number corresponding to the probe data packet, and the second number is used for transmission path selection of the service data packet; Among them, the probe data packet returned by the destination node carries a numbered reception sequence table, and the numbered reception sequence table is used by the destination node to record the first number of the probe data packet received in the current cycle according to the numbered reception sequence when receiving the probe data packet, and the second number is determined according to the numbered reception sequence table; when the first number and the second number are the same, the transmission paths corresponding to the probe data packet assigned the first number and the service data packet assigned the second number are the same.
18. The communication device according to claim 17, wherein: When the communication unit sends the probe data packets in the probe data stream to the destination node at the first sending rate, the communication unit is specifically configured to send the probe data packets in the probe data stream to the destination node at the first sending rate within one or more transmission cycles.
19. The communication device according to claim 18, wherein The processing unit is also used to update the probe data packet arrival sequence table according to the number receiving sequence table carried in the probe data packet returned by the destination node each time the communication unit receives a probe data packet returned by the destination node. The probe data packet arrival sequence table records the first number of the probe data packets that have arrived at the destination node in the current cycle in the order of arrival at the destination node.
20. The communication device according to claim 19, wherein The second number is a first number that is determined by the processing unit according to the order of receiving the detection data packets returned by the destination node in the current cycle and is consistent with the order in the detection data packet arrival sequence table.
21. The communication device according to claim 17, wherein The processing unit is further configured to adjust the first sending rate according to a packet loss rate of the detection data packet.
22. The communication device according to any one of claims 17 to 21, characterized in that: The detection data packet does not include a data field.
23. A communication device, characterized in that: The method comprises a processor and a communication interface, wherein the communication interface is used to receive signals from other communication devices outside the communication device and transmit them to the processor or send signals from the processor to other communication devices outside the communication device, and the processor is used to implement the method according to any one of claims 1 to 6, or to implement the method according to any one of claims 7 to 9, or to implement the method according to any one of claims 10 to 16 through a logic circuit or execution code instructions.
24. A computer-readable storage medium, characterized in that The computer-readable storage medium includes a computer program, which, when read and executed by one or more processors, implements the method according to any one of claims 1 to 6, or implements the method according to any one of claims 7 to 9, or implements the method according to any one of claims 10 to 16.
25. A communication method, characterized in that: include: A transmission node receives a data packet, wherein the data packet includes a probe data packet carrying a first number and a service data packet carrying a second number; the first number is assigned by the source node to the data packet in the data stream in the order of sending, and the first number is used for transmission path selection of the probe data packet; the second number is determined according to a number reception sequence table, and the number reception sequence table is used for the destination node of the probe data packet to record the first numbers of the probe data packets received in the current cycle in the order of number reception when receiving the probe data packet, and the second number is used for transmission path selection of the data packet; the probe data packet carrying the first number is used to send a service data packet carrying the second number when the source node receives a returned probe data packet carrying the first number; The transmission node calculates a hash value based on the source media access layer MAC address, destination MAC address, source port, and frame sequence number corresponding to the data packet; The transmission node selects an egress port corresponding to the hash value to forward the data packet according to the hash value.
26. The method of claim 25, wherein: The method further comprises: The transmission node allocates a first bandwidth for transmission of service data packets and a second bandwidth for transmission of detection data packets, wherein the first bandwidth is greater than the second bandwidth.
27. The method according to claim 26, wherein The ratio of the second bandwidth to the first bandwidth is the ratio of the average size of the probe data packets to the average size of the service data packets.
28. The method of claim 26, wherein: The method further comprises: When the detection data packet received by the transmission node is an outbound detection data packet, the transmission node transmits the outbound detection data packet through the second bandwidth; When the detection data packet received by the transmission node is a backhaul detection data packet, the transmission node transmits the backhaul detection data packet through the first bandwidth; The outbound detection data packet is a detection data packet sent by a source node to a destination node, and the return detection data packet is a detection data packet transmitted by the destination node to the source node.
29. The method of claim 28, wherein The method further comprises: When the rate at which the transmission node receives the outbound detection data packets is greater than the second bandwidth, the transmission node discards the outbound detection data packets.
30. The method of claim 28, wherein The return probe data packet carries information of the highest transmission priority, wherein the highest transmission priority corresponds to the lowest packet loss priority.
31. The method according to any one of claims 25 to 30, wherein The detection data packet does not include a data field.
32. A communication device, characterized in that: It includes a processor and a communication interface, wherein the communication interface is used to receive signals from other communication devices outside the communication device and transmit them to the processor or send signals from the processor to other communication devices outside the communication device, and the processor is used to implement the method as described in any one of claims 25-31 through logic circuits or executing code instructions.
33. A computer-readable storage medium, characterized in that The computer-readable storage medium includes a computer program, which implements the method according to any one of claims 25 to 31 when read and executed by one or more processors.
Citation Information
Patent Citations
Transmission path selection method and device
CN103312607A