Communication transmission method and device based on multipath delay optimization, and storage medium
The KLALB multi-path protocol stack collects link information, calculates multi-paths and generates routing tables, solving the problem of low transmission quality in long-distance networks, achieving efficient and reliable data transmission, and adapting to the existing network environment.
Patent Information
- Application Number
- CN202510510254.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-22
- Publication Date
- 2025-07-25
AI Technical Summary
The existing communication network has low transmission quality and poor results, especially in long-distance networks with poor performance and high packet loss rates. In addition, traditional multi-path transmission protocols such as MPTCP and MPQUIC have poor compatibility in the Internet, making it difficult to improve performance and reliability without changing the operating system core and application software.
The KLALB multi-path protocol stack is adopted to collect SRv6 network link information through the routing protocol, calculate multiple preset paths using the maximum flow algorithm, generate segment routing tables, and determine the target routing path based on SRv6 data packets for data transmission, supporting high compatibility of promise quality transmission in the existing network environment.
It improves network transmission quality, significantly improves data transmission efficiency and reliability, reduces development and maintenance difficulties, adapts to the modern Internet's demand for real-time and reliability, and has strong cross-platform scalability.
Smart Images

Figure CN120378354A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of communication transmission based on multi-path delay optimization, and particularly to a communication transmission method, device, and storage medium based on multi-path delay optimization. Background Art
[0002] Currently, communication network transmission mainly improves protocols based on TCP (Transmission Control Protocol), integrated in the operating system kernel, with high performance, capable of achieving multi-path transmission rate superposition and line scheduling, supporting multi-line disaster tolerance switching, and the communication format can be downward compatible with the traditional TCP protocol. The working principle is to split a single TCP data stream into multiple TCP data streams, and then sort and recombine them into a complete data stream at the receiving end according to the seq (Sequence Number) order of the data, enabling multiple network paths to work together. Although MPTCP (Multipath TCP) has high performance, its use requires the support of the operating system kernel protocol stack, and the development, upgrade, and maintenance are very difficult. In addition, middlewares in the Internet may discard MPTCP due to incompatibility because of a large amount of use of NAT (Network Address Translation) caused by IPv4 (Internet Protocol version 4) shortage and firewalls for security reasons, thus affecting the quality of network transmission. Summary of the Invention
[0003] The main purpose of this application is to provide a communication transmission method, device, and storage medium based on multi-path delay optimization, aiming to solve the technical problem of low and poor quality of current communication network transmission.
[0004] To achieve the above object, this application proposes a communication transmission method based on multi-path delay optimization. The communication transmission method based on multi-path delay optimization is applied to the sending end, and data is transmitted between the sending end and the receiving end through the KLALB multi-path protocol stack. The KLALB multi-path protocol stack is used to encapsulate SRv6 data packets into TCP connections or UDP datagrams for transmission. The method includes:
[0005] Collect link information in the SRv6 network where it is located through a routing protocol;
[0006] Calculate multiple preset paths according to the link information through the maximum flow algorithm;
[0007] Generate a segment routing table for each of the multiple preset paths;
[0008] Obtain the SRv6 packet to be forwarded;
[0009] Determine the target routing path from the segment routing table based on the SRv6 packet to be forwarded;
[0010] Perform data transmission on the SRv6 packet to be forwarded according to the target routing path.
[0011] In one embodiment, the step of calculating multiple preset paths by the maximum flow algorithm according to the link information includes:
[0012] Obtain the delay information, bandwidth information, network status, and link utilization rate of each link according to the link information;
[0013] Take each router as a graph node and each link as an edge, and use the delay information, bandwidth information, network status, and link utilization rate as edge weights;
[0014] Construct a network graph model according to the graph nodes, the edges, and the edge weights, where the edges in the network graph model are represented as edge weight = (bandwidth, delay, network status, link utilization rate);
[0015] Find the optimal path from the source node to the target node in the network graph model through the maximum flow algorithm, and the optimal path is obtained by the maximum data flow from the source node to the target node;
[0016] Obtain multiple preset paths according to the optimal path.
[0017] In one embodiment, the link information includes delay information, and the step of collecting link information in the SRv6 network through a routing protocol includes:
[0018] Send a delay measurement packet with a sending timestamp to the target node in the SRv6 network through a routing protocol;
[0019] Receive the response packet fed back by the target node based on the delay measurement packet, where the response packet carries a delay measurement sending timestamp, a delay measurement receiving timestamp, and a response sending timestamp;
[0020] Obtain the forward one-way network delay according to the delay measurement sending timestamp and the delay measurement receiving timestamp;
[0021] Obtain the reverse one-way network delay according to the sending timestamp and the response sending timestamp;
[0022] Obtain the delay information according to the forward one-way network delay and the reverse one-way network delay.
[0023] In one embodiment, the step of determining a target routing path from the segment routing table based on the SRv6 data packet to be forwarded includes:
[0024] Determine the destination address based on the SRv6 data packet to be forwarded;
[0025] Search the segment routing table for multiple routing tables that match the destination address to obtain a routing table sequence, where the routing paths in the routing table sequence are sorted in ascending order according to the forward one-way network delay;
[0026] Send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and determine the target routing path from the routing table sequence.
[0027] In one embodiment, the step of sending the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one and determining the target routing path from the routing table sequence includes:
[0028] Send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and obtain the congestion window and token bucket of the current routing path;
[0029] Judge whether the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window, and judge whether the SRv6 data packet to be forwarded exceeds the instantaneous bandwidth limited by the token bucket;
[0030] When the size of the SRv6 data packet to be forwarded does not exceed the upper limit of the congestion window and the SRv6 data packet to be forwarded does not exceed the instantaneous bandwidth limited by the token bucket, use the current routing path as the target routing path.
[0031] In one embodiment, the method further includes:
[0032] When the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window or the SRv6 data packet to be forwarded exceeds the instantaneous bandwidth limited by the token bucket, skip the current routing path, and use the next routing path in the routing table sequence as the current routing path until all routing paths are traversed;
[0033] When the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window, re-traverse the routing table sequence until all routing paths are traversed;
[0034] When all routing paths are traversed and the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window of all routing paths, mark or discard the SRv6 data packet to be forwarded.
[0035] In one embodiment, the method further includes:
[0036] Detect whether the link of the current routing path is online;
[0037] When the link is offline, detect whether the link of the next routing path in the routing table sequence is online;
[0038] When it is detected that the links of all routing paths in the routing table sequence are offline, discard the to-be-forwarded SRv6 data packet.
[0039] In one embodiment, after the step of performing data transmission on the to-be-forwarded SRv6 data packet according to the target routing path, the method further includes:
[0040] Detect the connection status of the target routing path;
[0041] When a fault occurs in the connection status, return to the step of determining the target routing path from the segment routing table based on the to-be-forwarded SRv6 data packet, and re-determine the target routing path;
[0042] Re-transmit the to-be-forwarded SRv6 data packet through the re-determined target routing path, and count the number of re-transmissions;
[0043] When the re-transmission is not successful and the number of re-transmissions is greater than a preset re-transmission number threshold, discard the to-be-forwarded SRv6 data packet.
[0044] In addition, to achieve the above object, the present application further provides a communication transmission device based on multi-path delay optimization, and the communication transmission device based on multi-path delay optimization includes:
[0045] A collection module, configured to collect link information in the SRv6 network where it is located through a routing protocol;
[0046] A calculation module, configured to calculate multiple preset paths through a maximum flow algorithm according to the link information;
[0047] A generation module, configured to generate a segment routing table for each of the multiple preset paths;
[0048] An acquisition module, configured to acquire a to-be-forwarded SRv6 data packet;
[0049] A determination module, configured to determine a target routing path from the segment routing table based on the to-be-forwarded SRv6 data packet;
[0050] A transmission module, configured to perform data transmission on the to-be-forwarded SRv6 data packet according to the target routing path.
[0051] In addition, to achieve the above object, the present application further provides a communication transmission device based on multi-path delay optimization, where the device includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, and the computer program is configured to implement the steps of the communication transmission method based on multi-path delay optimization as described above.
[0052] In addition, to achieve the above object, the present application further provides a storage medium, which is a computer-readable storage medium, and a computer program is stored on the storage medium, and when the computer program is executed by a processor, it implements the steps of the communication transmission method based on multi-path delay optimization as described above.
[0053] In addition, to achieve the above object, the present application further provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the steps of the communication transmission method based on multi-path delay optimization as described above.
[0054] One or more technical solutions proposed by the present application have the following beneficial effects:
[0055] 1) Collect link information in the SRv6 network where it is located through a routing protocol; calculate multiple preset paths through the maximum flow algorithm according to the link information; generate a segment routing table for each of the multiple preset paths; obtain the SRv6 data packet to be forwarded; determine the target routing path from the segment routing table based on the SRv6 data packet to be forwarded; and perform data transmission on the SRv6 data packet to be forwarded according to the target routing path. This solves the problems of poor performance and high packet loss rate of traditional end-to-end transmission protocols in long-distance networks, reintroduces a network with guaranteed quality, has high compatibility with existing actual networks, is cross-platform scalable, and improves the quality of network transmission;
[0056] 2) By combining multi-dimensional information such as bandwidth, delay, network status, and link utilization rate to construct edge weights, and using the maximum flow algorithm to find the optimal path between the source node and the target node, the efficiency of data transmission can be significantly improved. Compared with methods that only consider a single factor (such as the shortest path), the present invention can more accurately reflect the actual situation of the network, thereby selecting the path with the best performance. Description of the Drawings
[0057] The drawings here are incorporated into the specification and form a part of this specification, showing embodiments consistent with the present application, and are used together with the specification to explain the principles of the present application.
[0058] To more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the accompanying drawings required for the description of the embodiments or the prior art. Obviously, for those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0059] Figure 1 Schematic flowchart provided for the first embodiment of the communication transmission method based on multi-path delay optimization of the present application;
[0060] Figure 2 Schematic comparison diagram between the traditional network protocol stack structure and the KLALB multi-path protocol stack structure in the communication transmission method based on multi-path delay optimization of the present application;
[0061] Figure 3 Schematic diagram of retransmitting data packets in an embodiment of the communication transmission method based on multi-path delay optimization of the present application;
[0062] Figure 4 Schematic flowchart provided for the second embodiment of the communication transmission method based on multi-path delay optimization of the present application;
[0063] Figure 5 Schematic flowchart provided for the third embodiment of the communication transmission method based on multi-path delay optimization of the present application;
[0064] Figure 6 Schematic diagram of the working principle of the KLALB multi-path scheduling algorithm in an embodiment of the communication transmission method based on multi-path delay optimization of the present application;
[0065] Figure 7 Schematic flowchart of the brief process in an embodiment of the communication transmission method based on multi-path delay optimization of the present application;
[0066] Figure 8 Schematic diagram of the module structure of the communication transmission device based on multi-path delay optimization in the embodiment of the present application;
[0067] Figure 9 Schematic diagram of the device structure of the hardware operating environment involved in the communication transmission method based on multi-path delay optimization in the embodiment of the present application.
[0068] The realization of the purpose, functional features and advantages of the present application will be further described with reference to the embodiments and the accompanying drawings. Detailed implementation manners
[0069] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of the present application and are not used to limit the present application.
[0070] To better understand the technical solution of this application, the following will be described in detail in conjunction with the accompanying drawings of the specification and specific implementation manners.
[0071] The main solution of the embodiment of this application is that: The communication transmission method based on multi-path delay optimization is applied to the sending end. Data is transmitted between the sending end and the receiving end through the KLALB multi-path protocol stack. The KLALB multi-path protocol stack is used to encapsulate SRv6 data packets into TCP connections or UDP datagrams for transmission. The method includes: collecting link information in the SRv6 network where it is located through a routing protocol; calculating multiple preset paths through the maximum flow algorithm according to the link information; generating a segment routing table for each of the multiple preset paths; obtaining the SRv6 data packet to be forwarded; determining the target routing path from the segment routing table based on the SRv6 data packet to be forwarded; and performing data transmission on the SRv6 data packet to be forwarded according to the target routing path.
[0072] Since the existing technology uses the MPTCP protocol and the MPQUIC (Multipath QUIC, an extension of the QUIC protocol) protocol for communication transmission, MPTCP is an improved protocol based on TCP and is integrated into the operating system kernel. It has high performance, can achieve the superposition of multi-path transmission rates and line scheduling, supports multi-line disaster tolerance switching, and the communication format can be downward compatible with the traditional TCP protocol. Its working principle is to split a single TCP data stream into multiple TCP data streams, and then sort and reorganize them into a complete data stream according to the seq order of the data at the receiving end, enabling multiple network paths to work together. At the same time, similar to ordinary TCP, there are algorithms such as sliding windows, flow control, and congestion control for each path. If congestion or fault interruption is detected in a certain network path, the faulty line can be automatically removed and the data can be resent on other lines, achieving the reliability of transmission. At the same time, the distribution of data on multiple paths can be scheduled according to various algorithm strategies, and the path with the lowest delay or the largest bandwidth can be selected for sending to balance the load occupancy of the lines. The working principle of MPQUIC is similar to that of MPTCP, but MPQUIC is not based on TCP but on UDP. The protocol stack is developed and run at the application layer, which is more convenient for maintenance and improvement. The scheduling algorithm can be customized and adjusted according to the needs of specific services compared with MPTCP, and it is convenient for upgrading and maintenance. MPTCP has high performance, but its use requires the support of the operating system kernel protocol stack, and the development, upgrading, and maintenance are very difficult. In addition, in the middleware of the Internet, due to reasons such as the shortage of IPv4, NATs widely used and firewalls for security reasons may discard MPTCP packets due to incompatibility. MPQUIC has better compatibility, does not require modification of the operating system kernel protocol stack, and is basically compatible with the middleware of the Internet, but still requires the support of application software. The protocol stack is bound to the application layer software, and it is impossible to directly migrate services to support the multi-path transmission protocol without modifying the existing application programs.
[0073] For multi-path load balancing, there are various strategies, such as the round-robin strategy, which evenly sends data across different paths. The drawback is that when the available bandwidth of multiple lines is different, it can lead to serious load imbalance problems. Filling the sliding window from low RTT latency to high RTT latency is called the minRTT strategy. Due to the lag in the information measured by RTT latency, experiments have found that this scheduling strategy can cause serious routing oscillations in the load balancing of the protocol in high-latency networks, and it also cannot smoothly and evenly control the sending traffic. Additionally, for the round-trip latency of the minRTT strategy network, assuming the one-way latency from data transmission to arrival at the destination is RTT / 2, but due to the unequal load in the forward and reverse directions of the Internet, most data flows from data centers to home and individual users, and the bandwidth and signal quality of some channels such as GPON and cellular networks are inconsistent in the forward and reverse directions. The actual situation does not necessarily guarantee compliance with this assumption. The forward and reverse routing paths may not be exactly the same, and the one-way latencies in the forward and reverse directions cannot be guaranteed to be strictly equal. This phenomenon is more common and severe in long-distance international network communications, and the data packets in the forward and reverse directions may completely flow through different countries. Taking a foreign server as an example, the forward latency is 200ms, while the reverse latency is 250ms with high jitter; if data is transmitted preferentially according to the low packet loss rate, it will result in the underutilization of high-bandwidth, low-latency but high-packet-loss lines. For example, the functions of MPQUIC that are optimized for specific application requirements and user experience (QoE) are biased towards optimizing latency or rate, and need to be adjusted according to the specific business user experience. They need to be bound to the upper-layer application and released together, which is not conducive to the decoupling and modularization of the protocol stack and the specific business of the application software, and it is also difficult to upgrade the network protocol conveniently without modifying the existing software. Most network communication protocol stacks are written in C language, which has the advantage of extremely high performance, but the maintenance difficulties are reflected in the following aspects: C language requires a relatively high level of developers, and improper operation is likely to lead to serious system paralysis and other accidents; it is strongly bound to the platform, such as the endianness problem of data, the processor architecture problem, and the difficulty of cross-platform migration, and it is not easy to add new extension functions. Communication protocols such as MPTCP and QUIC only include the transport layer and are only installed on the computers of the two communication parties. The intermediate forwarding routers do not perform any processing except for table lookup and forwarding. When network overload occurs, they immediately discard data packets and cannot promise communication quality. The speed control completely depends on the congestion algorithms of the two communication parties to passively detect, and the sliding window will only be reduced when network overload has already occurred. This design scheme was the correct one in the early Internet with scarce resources, saving the computing power of computers, reducing the design and manufacturing costs of core routers, and enabling the rapid development of the Internet. However, in modern Internet, with people's higher pursuit of the real-time performance and reliability of the network, especially long-distance networks, reintroducing a network that promises quality may have new value to solve the problems of poor performance and high packet loss rate of traditional end-to-end transmission protocols in long-distance networks.
[0074] This application provides a solution that uses the KLALB network protocol stack. The KLALB protocol stack supports encapsulating SRv6 data packets into TCP connections or UDP datagrams for transmission, and can be connected through the public Internet to achieve compatibility and utilization of the existing actual network environment without modifying all devices on the Internet.
[0075] It should be noted that the execution subject of this embodiment can be a computing service device with data processing, network communication, and program running functions, such as a tablet computer, a personal computer, a mobile phone, etc., or an electronic device, a data sender, etc. that can implement the above functions. Hereinafter, the data sender is taken as an example to illustrate this embodiment and the following embodiments.
[0076] Based on this, the embodiments of this application provide a communication transmission method based on multi-path delay optimization. Refer to Figure 1 , Figure 1 which is a schematic flowchart of the first embodiment of the communication transmission method based on multi-path delay optimization of this application.
[0077] In this embodiment, the communication transmission method based on multi-path delay optimization includes steps S10 to S60:
[0078] The communication transmission method based on multi-path delay optimization is applied to the sender. Data is transmitted between the sender and the receiver through the KLALB multi-path protocol stack, and the KLALB multi-path protocol stack is used to encapsulate SRv6 data packets into TCP connections or UDP datagrams for transmission.
[0079] Step S10: Collect link information in the SRv6 network where it is located through a routing protocol.
[0080] It should be noted that in this solution, the KLALB network protocol stack is used for data communication transmission. The KLALB network protocol stack is written in Java, is independent of both the operating system kernel and specific application programs, and executes as a separate software in the computer, providing network communication protocol support for other application programs. It solves the problems of high development and maintenance difficulty of the kernel protocol stack and the difficulty of directly improving performance and reliability of the application layer protocol stack without modifying the existing application software code. Just by installing the KLALB protocol stack software alone, existing application programs can convert the protocol to the KLALB SRv6 protocol through the virtual network card driver, achieving a significant improvement in performance and reliability, and having low usage and maintenance difficulty.
[0081] To adapt to the existing actual Internet environment and enable the communication protocol to pass through old IPv4 routing devices, network middleware, gateways, etc. that do not support SRv6 data (data packets carry a list of IPv6 addresses, each address corresponding to a specific network operation), the KLALB protocol stack supports wrapping SRv6 data packets into TCP connections or UDP datagrams for transmission, and can be connected through the Internet public network to achieve compatibility and utilization of the existing actual network environment without modifying all devices on the Internet.
[0082] Moreover, the KLALB protocol stack can work end-to-end like a traditional protocol stack to achieve traditional two-end network acceleration, or can be extended to a non-end-to-end quality-of-service network to achieve multi-end collaborative acceleration of relay forwarding. As Figure 2 shown, Figure 2 is a comparison schematic diagram of the traditional network protocol stack structure and the KLALB multi-path protocol stack structure in this embodiment. The traditional network protocol stack structure includes an application program, an operating system protocol stack, and hardware. In this embodiment, the KLALB multi-path protocol stack is located between the application program and the operating system protocol stack. The application program accesses the network through the virtual network device driver or proxy of the KLALB multi-path protocol stack, and the KLALB protocol stack forwards the network data packets of the program externally.
[0083] It should be noted that before data transmission, the sending end can collect link information in the SRv6 network through a routing protocol to facilitate subsequent path planning. The link information may include delay information, bandwidth information, network status, link utilization rate, etc. The delay information is the one-way network delay of the link, including the forward network delay and the reverse network delay. The bandwidth information includes the used bandwidth and the total bandwidth. The network status includes the online status and the offline status. The online / offline status indicates whether the link is working properly (online) or has a fault (offline). The one-way delay is the delay of the data packet from the sending end to the other end of the link. The total bandwidth is the maximum transmission bandwidth of the link. The used bandwidth is the amount of bandwidth currently occupied by the link.
[0084] In a feasible implementation manner, if the link information includes delay information, collecting the delay information in the link information in the SRv6 network through a routing protocol includes steps A11 to A15:
[0085] Step A11: Send a delay measurement data packet to the target node in the SRv6 network through a routing protocol. The delay measurement data packet carries a sending timestamp;
[0086] In an actual network, it is inevitable that there are situations where the bandwidth and latency in the upload direction and the download direction are not equal. To improve the accuracy of multi-path network scheduling, this embodiment designs a one-way latency monitoring function. To ensure the accuracy of measuring the one-way latency, the two communication parties must first perform time synchronization to prepare for the subsequent one-way latency PING measurement. Therefore, the time synchronization can be performed on the sending end and the receiving end first, and after the time synchronization, delay measurement data packets are sent to the target node in the SRv6 network through the routing protocol. The target node is the receiving node and can be the receiving party. The delay measurement data packet is a PING data packet, and the information carried by the PING data packet includes the timestamp at the time of sending, that is, the sending timestamp.
[0087] Step A12: Receive the response data packet feedback by the target node based on the delay measurement data packet. The response data packet carries a delay measurement sending timestamp, a delay measurement receiving timestamp, and a response sending timestamp.
[0088] In a specific implementation, if the peer (target node) receives the delay measurement data packet (PING signal), it will send back a response signal, that is, feedback a response data packet to the sending end. The information carried by the response data packet includes a delay measurement sending timestamp (the timestamp at the time of PING sending), a delay measurement receiving timestamp (the timestamp at the time of PING receiving), and a response sending timestamp.
[0089] Step A13: Obtain the forward one-way network latency according to the delay measurement sending timestamp and the delay measurement receiving timestamp.
[0090] In a specific implementation, after the PING initiating device receives the response packet, it subtracts the timestamp of sending the PING from the timestamp of receiving the PING to obtain the one-way network latency in the upload direction, that is, the forward one-way network latency.
[0091] Step A14: Obtain the reverse one-way network latency according to the sending timestamp and the response sending timestamp.
[0092] At the same time, the PING initiating device subtracts the timestamp of sending the response from the timestamp of receiving the response to obtain the one-way network latency in the download direction, that is, the reverse one-way network latency.
[0093] Step A15: Obtain the delay information according to the forward one-way network latency and the reverse one-way network latency.
[0094] In a specific implementation, the forward one-way network latency and the reverse one-way network latency can be saved as delay information in the delay variable of the line path, so as to be used for the subsequent data packet path selection and scheduling.
[0095] Suppose there are two lines between two devices, such as A and B. Assume that the forward delay of line A is 20 ms and the reverse delay is 10 ms, the forward delay of line B is 10 ms, and the reverse delay is 20 ms. Most traditional network protocols generally cannot distinguish between forward and reverse transmissions and the forward and reverse delays. Whether only using A or only using B path, the final RTT (Round Trip Time) is about 10 ms + 20 ms = 30 ms. However, KLALB uses minOWD one-way delay scheduling, and both sides independently select the packet sending path, which can achieve using B as the forward transmission path and A as the reverse transmission path. The total RTT = 10 ms + 10 ms = 20 ms. Therefore, the minOWD scheduling strategy has a real-time advantage compared to the minRTT scheduling strategy.
[0096] Step S20: Calculate multiple preset paths through the maximum flow algorithm according to the link information.
[0097] It can be understood that after obtaining the link information, multiple preset paths can be calculated through the maximum flow algorithm with multiple steps of iteration. The multiple preset paths are routing paths with low delay and high bandwidth, so that the corresponding forwarding path can be determined when sending packets, realizing the optimization of the network forwarding path.
[0098] Step S30: Generate a segment routing table for each of the multiple preset paths.
[0099] It can be understood that after obtaining multiple preset paths, a segment routing table can be generated for each path, that is, the SRv6 routing table. The routing table is sorted in ascending order of the one-way delay from the local machine to the neighbor in the upload direction as the cost value.
[0100] Implemented in the network layer, designed based on the SRv6 protocol, it can support source routing forwarding with a specified path displayed, and customizes the TLV extension information part for it, enabling the network layer to carry the packet sequence number and ACK (acknowledgment) information, so that the network layer can achieve non-end-to-end committed quality of service transmission.
[0101] Step S40: Obtain the SRv6 packet to be forwarded.
[0102] It should be noted that the SRv6 packet to be forwarded is the data that needs to be transmitted to the peer. The size of the SRv6 packet to be forwarded is carried in the SRv6 packet to be forwarded.
[0103] Step S50: Determine the target routing path from the segment routing table based on the SRv6 packet to be forwarded.
[0104] In a specific implementation, a routing path for routing transmission can be selected from a segment routing table based on the SRv6 data packet to be forwarded, that is, the target routing path. Each routing path has an independent congestion window and a traffic shaping token bucket, and independently executes the BBR congestion algorithm to prevent network overload and paralysis and accurately monitor the available network bandwidth.
[0105] Therefore, the target routing path can be determined by calculating or traversing according to the congestion window and token bucket of each routing path.
[0106] Step S60: Transmit the data of the SRv6 data packet to be forwarded according to the target routing path.
[0107] It can be understood that after the target routing path is determined, the target routing path can be used to transmit the data of the SRv6 data packet to be forwarded.
[0108] When sending packets, the SRH extension header is used to explicitly specify the forwarding path to optimize the network forwarding path. Each device in the middle is a KLALB SRv6 router. After receiving the data packet, according to the SRH information in the data packet, if this data packet is a data packet that needs to ensure quality, an ACK is sent to the previous-hop router and the sequence number of the current data packet is filled in for the sliding window control and maximum bandwidth statistics in each routing path in the previous text. Next, it is forwarded according to the path specified by the SRH.
[0109] During the data transmission process, the transmission may be interrupted due to network reasons. Therefore, after step S60, it further includes:
[0110] Step S61: Detect the connection status of the target routing path;
[0111] It should be noted that the connection status of the target routing path can be detected in real time. The connection status can be normal or a fault occurs. A fault includes faults such as connection disconnection or connection timeout.
[0112] Step S62: When the connection status fails, return to the step of determining the target routing path from the segment routing table based on the SRv6 data packet to be forwarded, and re-determine the target routing path;
[0113] The transmission process of this solution is different from that of traditional TCP. The algorithm of triggering fast retransmission for three consecutive out-of-order packets is cancelled. Since TCP was initially designed for single-path networks, the fast retransmission algorithm assumes that most data arrives in order. If three out-of-order data packets are received consecutively, it is considered that the previous data packets are probably lost midway. The disadvantage is that this design is not suitable for multi-path network transmission and is also not conducive to using high-performance network devices with multi-core parallel processing. The reason is that if multi-path transmission and parallel processing network devices cause data packets to arrive out of the sending order, TCP will misjudge that a packet loss has occurred, perform a large number of packet loss retransmissions and trigger the congestion algorithm, resulting in a significant decrease in throughput and a serious waste of network bandwidth.
[0114] Therefore, when it is detected that the connection status of the target routing path fails, instead of immediately discarding this data packet, all the data packets to be sent and not yet acknowledged are re-executed the above step of determining the target routing path from the segment routing table based on the SRv6 data packet to be forwarded, re-match the routing table, and find other available and non-congested paths for transmission.
[0115] Step S63: Retransmit the SRv6 data packet to be forwarded through the re-determined target routing path, and count the number of retransmissions;
[0116] In a specific implementation, data retransmission can be performed through the re-determined target routing path. However, to avoid the deterioration of network failures caused by infinite retransmission, a counter can be set in each data packet, and the number of retransmissions is counted when retransmission is performed.
[0117] Step S64: When the retransmission is not successful and the number of retransmissions is greater than the preset retransmission times threshold, discard the SRv6 data packet to be forwarded.
[0118] In a specific implementation, the preset retransmission times threshold can be set to 2 times. If the retransmission is not successful and still not successful after more than 2 retransmissions, the corresponding data packet will be discarded, thereby reducing the packet loss rate. In an ultra-long-distance network, if passing through 40 relay devices such as routers, if these devices do not provide quality commitment and reliability guarantee, the packet loss rate on each link is 0.1%. After the data packet continuously passes through 41 links, according to probability calculation, the packet loss rate can reach 1-(1 - 0.1%)^41 = 4.019%. Such a high packet loss rate will cause the congestion algorithm to misjudge congestion, and the repeated retransmission of lost packets will cause communication jams, and even in some extreme cases, it will directly lead to the accidental interruption of the network service. If it is a network with committed reliability, the packet loss rate on each link is still 0.1%, and the data packet has two retransmission opportunities on each link. Then the packet loss rate on each link is only (0.1%)^3 = 0.0000001%. After continuously passing through 41 links, according to probability calculation, the packet loss rate is still only 1-(1 - 0.0000001%)^41 = 0.000004099999%! This greatly improves the reliability of the ultra-long-distance network and increases the effective throughput.
[0119] It can be understood that the retransmission time can also be set. For example, after reaching the retransmission time, the data packet is retransmitted through the target routing path. If only end-to-end reliable transmission is achieved, the entire round-trip process requires 200 ms of RTT time. Then, only when the ACK information from the other party is not received for at least 200 ms of RTT time can it be judged that the timeout occurs and retransmission is performed, which results in a slow error recovery speed for packet loss in the network. And hop-by-hop acknowledgment can quickly detect packet loss errors and correct errors within a time less than the RTT. Suppose the packet loss occurs between router 10 and router 11, and the RTT between them is 10 ms. Then, if router 10 cannot receive the acknowledgment information from 11, it only needs to retransmit this data packet to 11 after at least 10 ms, reducing the problem of slow error recovery speed of the traditional end-to-end transport layer protocol in the ultra-long-distance network.
[0120] As Figure 3 shown, Figure 3 It is a schematic diagram for retransmitting the data packet. Long-distance transmission will cause the packet loss rate in the network path to accumulate and increase. After packet loss, it takes at least one RTT time to detect the packet loss error relying on end-to-end reliability confirmation. In this embodiment, the network layer realizes reliability guarantee through hop-by-hop segmented acknowledgment. The packet loss rate is not easy to accumulate with the increase of distance and number of hops. After packet loss, it only takes a time slightly greater than the RTT of the link between two routers to quickly detect the packet loss and immediately retransmit, and the packet loss error correction ability is strong.
[0121] In specific implementation, the RR (Fast ReRoute) fast rerouting technology can also be used to improve the recovery speed during faults. Specifically, through pre-configured alternative paths, when a link or device failure occurs, the traffic can be quickly switched to the alternative path, and communication can usually be restored within dozens of milliseconds, ensuring the continuous transmission of data without interruption. After the data transmission ends, the performance of the selected path can also be analyzed and a network status report can be generated for optimizing path selection and traffic scheduling in future transmission processes.
[0122] This embodiment provides a communication transmission method based on multi-path delay optimization. Link information in the SRv6 network where it is located is collected through a routing protocol; multiple preset paths are calculated according to the link information through the maximum flow algorithm; a segment routing table is generated for each of the multiple preset paths; an SRv6 data packet to be forwarded is obtained; a target routing path is determined from the segment routing table based on the SRv6 data packet to be forwarded; and the SRv6 data packet to be forwarded is transmitted according to the target routing path. It solves the problems of poor performance and high packet loss rate of traditional end-to-end transmission protocols in long-distance networks, reintroduces a network with quality of commitment, has high compatibility with existing actual networks, is cross-platform scalable, and improves the quality of network transmission.
[0123] Based on the first embodiment of the present application, in the second embodiment of the present application, the same or similar content as that in the above-mentioned embodiment one can be referred to the above introduction and will not be elaborated hereinafter. On this basis, please refer to Figure 4 , step S20 includes steps S201 to S205:
[0124] Step S201: Obtain the delay information, bandwidth information, network status, and link utilization rate of each link according to the link information.
[0125] It should be noted that the link information includes the delay, bandwidth, network status, and link utilization rate of each link. Therefore, the delay information, bandwidth information, network status, and link utilization rate of each link can be obtained through the link information.
[0126] Step S202: Use each router as a graph node and each link as an edge, and use the delay information, bandwidth information, network status, and the link utilization rate as edge weights.
[0127] In specific implementation, the specific process of the maximum flow algorithm for calculating multiple low-delay and high-bandwidth paths in the network includes graph model construction, maximum flow calculation, and iterative optimization.
[0128] Therefore, the network can be modeled in the form of a graph. Specifically, each router can be used as a node in the graph, that is, a graph node, and each link can be used as an edge in the graph. The weight of the edge is set according to the bandwidth, delay, network status, and link utilization rate.
[0129] Step S203: Construct a network graph model based on the graph nodes, the edges, and the edge weights, where the edges in the network graph model are represented as edge weight = (bandwidth, latency, network status, link utilization rate).
[0130] It can be understood that the bandwidth represents the amount of data that can be transmitted by the link, and the link utilization rate represents the current load status of the link. A network graph model can be constructed through graph nodes, edges, and edge weights, where the edges in the graph can be represented as: edge weight = (bandwidth, latency, network status, link utilization rate).
[0131] Step S204: Find the optimal path from the source node to the target node in the network graph model through the maximum flow algorithm, and the optimal path is obtained through the maximum data flow from the source node to the target node.
[0132] In a specific implementation, the Ford-Fulkerson algorithm or the Edmonds-Karp algorithm can be used. These two algorithms are based on BFS or DFS to find augmenting paths and increase the flow. The goal of the maximum flow algorithm is to find one or more paths in the network such that the maximum flow can pass under the given bandwidth constraints. The path selection does not only depend on the shortest path (such as the Dijkstra algorithm), but also needs to consider the bandwidth and link status.
[0133] In a specific implementation, the flow can be initialized, that is, from the source node to the target node, the initial flow is 0, and the augmenting path from the source node to the target node is found through the Dijkstra algorithm. An augmenting path means that in this path, the remaining bandwidth of all edges is greater than 0, and this path can carry more data streams. Since the network status (bandwidth, latency, load, etc.) is dynamically changing, the load of the traffic in the network and the status of the links may change at any time. Therefore, it is necessary to iteratively calculate the maximum flow. In each calculation, the Dijkstra algorithm is used to find the optimal path from the source node to the target node. The path selection not only considers the latency, but also the bandwidth and link load, updates the flow, and adjusts the bandwidth and load information of the links.
[0134] The maximum data flow is calculated as follows:
[0135] f(e) = f(e) + Δf
[0136]
[0137] Among them, s is the source node, t is the target node, f(e) is the traffic passing through edge e, Δf is the traffic of the augmenting path, v is a non-target node or a non-source node, the traffic flowing into node v is equal to the traffic flowing out of node v, u and w are neighbor nodes of node v, f(u, v) represents the traffic from node u to node v, f(v, w) represents the traffic from node v to node w, N(v) represents the neighbor nodes of node v, and N(s) is the set of neighbor nodes of the source node s, F max is the maximum data traffic.
[0138] The maximum data traffic F max is the maximum data traffic from the source node s to the target node t. The traffic f(e) of the augmenting path is the traffic passing through edge e, and the update formula is f(e) = f(e) + Δf, where Δf is the traffic of the augmenting path. For any non-source and non-target node v, the traffic flowing into node v is equal to the traffic flowing out of node v, where N(v) represents the neighbor nodes of node v. When no augmenting path can be found, or the bandwidth of the path is insufficient, the calculation stops. Or the iteration stops when the upper limit of the maximum flow is reached. The iteration process needs to continuously adjust the path and traffic until the traffic cannot be further increased or the network reaches the maximum bandwidth limit.
[0139] Step S205: Obtain multiple preset paths according to the optimal path.
[0140] In a specific implementation, multiple preset paths can be obtained according to the optimal path, and the multiple preset paths are multiple paths with low latency and high bandwidth.
[0141] In this embodiment, the delay information, bandwidth information, network status, and link utilization rate of each link are obtained according to the link information; taking each router as a graph node and each link as an edge, the delay information, bandwidth information, network status, and the link utilization rate are used as edge weights; a network graph model is constructed according to the graph nodes, the edges, and the edge weights, where the edges in the network graph model are represented as edge weight = (bandwidth, delay, network status, link utilization rate); the optimal path from the source node to the target node is found in the network graph model through the maximum flow algorithm, and the optimal path is obtained through the maximum data traffic from the source node to the target node, and multiple preset paths are obtained according to the optimal path. By combining multi-dimensional information such as bandwidth, delay, network status, and link utilization rate to construct edge weights and using the maximum flow algorithm to find the optimal path between the source node and the target node, the data transmission efficiency can be significantly improved. Compared with the method that only considers a single factor (such as the shortest path), the present invention can more accurately reflect the actual situation of the network, so as to select the path with the best performance.
[0142] Based on the first embodiment of the present application, in the second embodiment of the present application, the same or similar content as that in the above-mentioned first embodiment can be referred to the above introduction and will not be repeated hereinafter. On this basis, please refer to Figure 5 , step S50 includes steps S501 to S503:
[0143] Step S501: Determine the destination address based on the SRv6 data packet to be forwarded.
[0144] It should be noted that when it is necessary to send the SRv6 data packet to be forwarded, after performing the SDN function of SRv6, it is first necessary to determine the destination address of the SRv6 data packet to be forwarded, that is, the address to be forwarded.
[0145] Step S502: Search the segment routing table for multiple routing tables that match the destination address to obtain a routing table sequence, and the routing paths in the routing table sequence are sorted in ascending order according to the forward one-way network delay.
[0146] In a specific implementation, all entries that match the destination address can be searched from the segment routing table to obtain multiple routing tables. A routing table sequence can be constructed through multiple routing tables, and the routing paths in the routing table sequence are sorted in ascending order according to the forward one-way network delay in turn.
[0147] Step S503: Send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and determine the target routing path from the routing table sequence.
[0148] After determining multiple routing paths, the SRv6 data packet to be forwarded can be sent to the corresponding routing paths in sequence, so that the target routing path can be determined according to the congestion window and token bucket of each routing path.
[0149] In a feasible implementation manner, step S503 may include steps B11 to B13:
[0150] Step B11: Send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and obtain the congestion window and token bucket of the current routing path.
[0151] It should be noted that the SRv6 data packet to be forwarded can be sent to each routing path in the routing table sequence one by one, and the current routing path corresponding to the currently forwarded SRv6 data packet can be determined. If the forwarding just starts, the current routing path is the first routing path in the routing table sequence, and the congestion window and token bucket of the current routing path are obtained. Specifically, the congestion window and token bucket of each routing path are set through the BBR congestion algorithm.
[0152] Step B12: Determine whether the size of the to-be-forwarded SRv6 packet exceeds the upper limit of the congestion window, and determine whether the to-be-forwarded SRv6 packet exceeds the instantaneous bandwidth limited by the token bucket.
[0153] In a specific implementation, the program determines whether the congestion window of the current routing path can accommodate the current to-be-forwarded packet according to the size of the current to-be-forwarded packet, and determines whether the current packet being sent exceeds the instantaneous available bandwidth of the network by the token bucket of the current routing path. Therefore, it can be determined whether the size of the to-be-forwarded SRv6 packet exceeds the upper limit of the congestion window of the current routing path, and determines whether the to-be-forwarded SRv6 packet exceeds the instantaneous available bandwidth limited by the token bucket.
[0154] In a feasible implementation, in addition to detecting the congestion window and token bucket of the current routing path, it is also necessary to detect whether the link corresponding to the routing path is online. Therefore, before step B12, it further includes: detecting whether the link of the current routing path is online; when the link is offline, detecting whether the link of the next routing path in the routing table sequence is online; when it is detected that the links of all routing paths in the routing table sequence are offline, discarding the to-be-forwarded SRv6 packet.
[0155] It should be noted that by detecting whether the link corresponding to the current routing path is online, if it is not online, then continue to check the next routing path; if it is online, then continue to detect whether the current routing path of the corresponding link is congested, that is, whether the congestion window reaches the upper limit. If it is detected that the links of all routing paths are offline, then discard the to-be-forwarded SRv6 packet. By specially processing special cases of the routing path, if all links are congested or offline, then discard the packet; if there are links that are online, not congested but in a busy state, then do not discard the packet, return to the sorting step to continue matching the next routing path until the link is idle and available for packet forwarding.
[0156] It can be understood that when the size of the to-be-forwarded SRv6 packet exceeds the upper limit of the congestion window or the to-be-forwarded SRv6 packet exceeds the instantaneous bandwidth limited by the token bucket, skip the current routing path, and use the next routing path in the routing table sequence as the current routing path until all routing paths are traversed; when the size of the to-be-forwarded SRv6 packet exceeds the upper limit of the congestion window, re-traverse the routing table sequence until all routing paths are traversed. When all routing paths are traversed and the size of the to-be-forwarded SRv6 packet exceeds the upper limit of the congestion window of all routing paths, mark or discard the to-be-forwarded SRv6 packet.
[0157] It should be noted that if the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window or the instantaneous bandwidth of the SRv6 data packet to be forwarded exceeds the token bucket limit, the loop continues to check the next routing path until all routing paths are traversed. If no path for sending the current data packet is found after this loop traversal is completed and the current routing paths all exceed the upper limit of the sliding window, then mark this SRv6 data packet to be forwarded as ECN or discard this SRv6 data packet to be forwarded.
[0158] If the SRv6 data packet to be forwarded only exceeds the instantaneous bandwidth of the token bucket limit, then continue to loop from the beginning to match the routing table one by one until all paths are congested or the data packet is successfully placed in the send window for sending.
[0159] Step B13: When the size of the SRv6 data packet to be forwarded does not exceed the upper limit of the congestion window and the instantaneous bandwidth of the SRv6 data packet to be forwarded does not exceed the token bucket limit, use the current routing path as the target routing path.
[0160] It should be noted that when the size of the SRv6 data packet to be forwarded does not exceed the upper limit of the congestion window and the instantaneous bandwidth of the SRv6 data packet to be forwarded does not exceed the token bucket limit, it means that the current routing path can accommodate this data packet and the data packet does not exceed the instantaneous available bandwidth of the network. Then use this routing path as the target routing path to perform the sending of the SRv6 data packet to be forwarded.
[0161] As Figure 6 shown, Figure 6 is a schematic diagram of the working principle of the KLALB multipath scheduling algorithm. By shaping the traffic of the path and selecting the corresponding path according to the sliding window of each routing path, loop from low latency to high latency in the line list to find the path that simultaneously satisfies that the sliding window is not full and the instantaneous network bandwidth occupancy does not exceed the traffic shaping program limit and forward it until the data packet is successfully forwarded or is marked as ECN or discarded because all the sliding windows of all lines are full.
[0162] This embodiment determines the destination address based on the SRv6 data packet to be forwarded; searches the segment routing table for multiple routing tables that match the destination address to obtain a routing table sequence, and the routing paths in the routing table sequence are sorted from smallest to largest according to the forward one-way network delay; sends the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and determines the target routing path from the routing table sequence. By evaluating and selecting the optimal path for data packet forwarding, unnecessary network resource waste is avoided. By selecting the routing path with the smallest forward one-way network delay as the target routing path, the transmission time of data packets in the network can be significantly reduced. This not only improves the data transmission speed but also reduces the service processing delay caused by network delay, and is particularly suitable for application scenarios with high real-time requirements, such as video conferencing and online games. At the same time, this intelligent routing selection mechanism helps to balance the network load, prevent the overall network performance from degrading due to overload of some links, and realizes the effective configuration and efficient utilization of network resources.
[0163] Exemplarily, to help understand the implementation process of the communication transmission method based on multi-path delay optimization obtained by combining this embodiment with the above-mentioned Embodiment 1, please refer to Figure 7 , Figure 7 A brief flow schematic diagram of a communication transmission method based on multi-path delay optimization is provided. Specifically: Obtain the SRv6 data packet to be forwarded, and determine whether the TTL value (number of routers passed) of this SRv6 data packet is greater than 0. If not, discard this data packet. If not, search for multiple routing tables that match the destination address of the SRv6 data packet, and sort the routing tables according to the one-way network delay in the sending direction from this device to the target device. Traverse the sorted routing tables, check whether the link corresponding to the nth routing table is online. If not, check the next routing table. If so, check whether the link is congested (the congestion window is full). If so, check the next routing table. If not, check whether the instantaneous transmission rate of the current link exceeds the maximum instantaneous rate allowed by the link, that is, whether the SRv6 data packet to be forwarded exceeds the instantaneous bandwidth limited by the token bucket. If not, use the current routing path as the target routing path for data packet forwarding. If so, check the next routing table. The traffic shaping algorithm implementation: For each data packet sent, calculate the time required for the link to process the data packet according to the size of the data packet and the maximum bandwidth of the link. Before the processing time ends, the link cannot immediately send the next data packet.
[0164] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the communication transmission method based on multi-path delay optimization of this application. Any simple transformation in more forms based on this technical concept is within the protection scope of this application.
[0165] The present application also provides a communication transmission device based on multi-path delay optimization. Please refer to Figure 8 The communication transmission device based on multi-path delay optimization includes:
[0166] A collection module 10, configured to collect link information in the SRv6 network where it is located through a routing protocol;
[0167] A calculation module 20, configured to calculate multiple preset paths according to the link information through the maximum flow algorithm;
[0168] A generation module 30, configured to generate a segment routing table for each of the multiple preset paths;
[0169] An acquisition module 40, configured to acquire an SRv6 data packet to be forwarded;
[0170] A determination module 50, configured to determine a target routing path from the segment routing table based on the SRv6 data packet to be forwarded;
[0171] A transmission module 60, configured to perform data transmission on the SRv6 data packet to be forwarded according to the target routing path.
[0172] The communication transmission device based on multi-path delay optimization provided by the present application adopts the communication transmission method based on multi-path delay optimization in the above embodiment, and can solve the technical problems of low transmission quality and poor effect in the current communication network. Compared with the prior art, the beneficial effects of the communication transmission device based on multi-path delay optimization provided by the present application are the same as those of the communication transmission method based on multi-path delay optimization provided by the above embodiment, and other technical features in the communication transmission device based on multi-path delay optimization are the same as the features disclosed in the method of the above embodiment, and will not be elaborated here.
[0173] In one embodiment, the calculation module 20 is further configured to obtain delay information, bandwidth information, network status, and link utilization rate of each link according to the link information;
[0174] Taking each router as a graph node and each link as an edge, using the delay information, bandwidth information, network status, and the link utilization rate as edge weights;
[0175] Constructing a network graph model according to the graph nodes, the edges, and the edge weights, where the edge in the network graph model is represented as edge weight = (bandwidth, delay, network status, link utilization rate);
[0176] Finding an optimal path from the source node to the target node in the network graph model through the maximum flow algorithm, and the optimal path is obtained through the maximum data flow from the source node to the target node;
[0177] Obtain multiple preset paths according to the optimal path.
[0178] In one embodiment, the link information includes delay information. The link information includes delay information and is further configured to send delay measurement data packets to a target node in the SRv6 network through a routing protocol. The delay measurement data packet carries a transmission timestamp.
[0179] Receive a response data packet fed back by the target node based on the delay measurement data packet. The response data packet carries a delay measurement transmission timestamp, a delay measurement reception timestamp, and a response transmission timestamp.
[0180] Obtain a forward one-way network delay according to the delay measurement transmission timestamp and the delay measurement reception timestamp.
[0181] Obtain a reverse one-way network delay according to the transmission timestamp and the response transmission timestamp.
[0182] Obtain delay information according to the forward one-way network delay and the reverse one-way network delay.
[0183] In one embodiment, the determining module 50 is further configured to determine a destination address based on the SRv6 data packet to be forwarded.
[0184] Search for multiple routing tables matching the destination address in the segment routing table to obtain a routing table sequence. The routing paths in the routing table sequence are sorted in ascending order according to the forward one-way network delay.
[0185] Send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and determine a target routing path from the routing table sequence.
[0186] In one embodiment, the determining module 50 is further configured to send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and obtain the congestion window and token bucket of the current routing path.
[0187] Judge whether the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window, and judge whether the SRv6 data packet to be forwarded exceeds the instantaneous bandwidth limited by the token bucket.
[0188] When the size of the SRv6 data packet to be forwarded does not exceed the upper limit of the congestion window and the SRv6 data packet to be forwarded does not exceed the instantaneous bandwidth limited by the token bucket, use the current routing path as the target routing path.
[0189] In one embodiment, the determining module 50 is further configured to skip the current routing path and use the next routing path in the routing table sequence as the current routing path until all routing paths are traversed when the size of the to-be-forwarded SRv6 data packet exceeds the upper limit of the congestion window or the to-be-forwarded SRv6 data packet exceeds the instantaneous bandwidth restricted by the token bucket;
[0190] When the size of the to-be-forwarded SRv6 data packet exceeds the upper limit of the congestion window, re-traverse the routing table sequence until all routing paths are traversed;
[0191] When all routing paths are traversed and the size of the to-be-forwarded SRv6 data packet exceeds the upper limits of the congestion windows of all routing paths, mark or discard the to-be-forwarded SRv6 data packet.
[0192] In one embodiment, the determining module 50 is further configured to detect whether the link of the current routing path is online;
[0193] When the link is offline, detect whether the link of the next routing path in the routing table sequence is online;
[0194] When it is detected that the links of all routing paths in the routing table sequence are offline, discard the to-be-forwarded SRv6 data packet.
[0195] In one embodiment, the transmission module 60 is further configured to detect the connection status of the target routing path;
[0196] When a fault occurs in the connection status, return to the step of determining the target routing path from the segment routing table based on the to-be-forwarded SRv6 data packet, and re-determine the target routing path;
[0197] Retransmit the to-be-forwarded SRv6 data packet through the re-determined target routing path, and count the number of retransmissions;
[0198] When the retransmission is not successful and the number of retransmissions is greater than a preset retransmission times threshold, discard the to-be-forwarded SRv6 data packet.
[0199] This application provides a communication transmission device based on multi-path delay optimization. The communication transmission device based on multi-path delay optimization includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein, the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the communication transmission method based on multi-path delay optimization in the first embodiment above.
[0200] Refer to the following Figure 9, which shows a schematic structural diagram of a communication transmission device suitable for implementing the multi-path delay optimization-based embodiment of the present application. The multi-path delay optimization-based communication transmission device in the embodiment of the present application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions, tablet computers), PMPs (Portable Media Players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 9 The shown multi-path delay optimization-based communication transmission device is merely an example and should not impose any limitations on the functions and usage scope of the embodiments of the present application.
[0201] As Figure 9 shown, the multi-path delay optimization-based communication transmission device may include a processing device 1001 (such as a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes according to the program stored in the ROM (Read Only Memory) 1002 or the program loaded from the storage device 1003 into the RAM (Random Access Memory) 1004. In the RAM 1004, various programs and data required for the operation of the multi-path delay optimization-based communication transmission device are also stored. The processing device 1001, the ROM 1002, and the RAM 1004 are connected to each other through a bus 1005. The input / output (I / O) interface 1006 is also connected to the bus. Generally, the following systems may be connected to the I / O interface 1006: an input device 1007 including, for example, a touch screen, a touch pad, a keyboard, a mouse, an image sensor, a microphone, an accelerometer, a gyroscope, etc.; an output device 1008 including, for example, an LCD (Liquid Crystal Display), a speaker, a vibrator, etc.; a storage device 1003 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1009. The communication device 1009 can allow the multi-path delay optimization-based communication transmission device to communicate with other devices wirelessly or wiredly to exchange data. Although the figure shows a multi-path delay optimization-based communication transmission device with various systems, it should be understood that it is not required to implement or have all the shown systems. More or fewer systems may be alternatively implemented or had.
[0202] In particular, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program codes for executing the methods shown in the flowcharts. In such an embodiment, the computer program can be downloaded and installed from a network through a communication device, or installed from a storage device 1003, or installed from a ROM 1002. When the computer program is executed by a processing device 1001, the above functions defined in the methods of the embodiments disclosed in the present application are executed.
[0203] The communication transmission device based on multi-path delay optimization provided by the present application adopts the communication transmission method based on multi-path delay optimization in the above embodiments, and can solve the technical problems of low transmission quality and poor effect in the current communication network. Compared with the prior art, the beneficial effects of the communication transmission device based on multi-path delay optimization provided by the present application are the same as those of the communication transmission method based on multi-path delay optimization provided in the above embodiments, and other technical features in the communication transmission device based on multi-path delay optimization are the same as those disclosed in the method of the previous embodiment, and will not be elaborated here.
[0204] It should be understood that each part disclosed in the present application can be implemented by hardware, software, firmware or a combination thereof. In the description of the above embodiments, specific features, structures, materials or characteristics can be combined in a suitable manner in any one or more embodiments or examples.
[0205] As mentioned above, the above is only the specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed in the present application, and all of them should be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
[0206] The present application provides a computer-readable storage medium having computer-readable program instructions (i.e., computer programs) stored thereon, and the computer-readable program instructions are used to execute the communication transmission method based on multi-path delay optimization in the above embodiments.
[0207] The computer-readable storage medium provided by this application can be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or components, or any combination of the above. More specific examples of computer-readable storage media can include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, RAM (Random Access Memory), ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory or flash memory), optical fibers, CD-ROM (Compact Disc - Read Only Memory), optical storage devices, magnetic storage devices, or any suitable combination of the above. In this embodiment, the computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, device, or component. The program code contained on the computer-readable storage medium can be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination of the above.
[0208] The above computer-readable storage medium can be included in a communication transmission device optimized based on multi-path delay; it can also exist independently without being assembled into a communication transmission device optimized based on multi-path delay.
[0209] The above computer-readable storage medium carries one or more programs. When the one or more programs are executed by a communication transmission device optimized based on multi-path delay, the communication transmission device optimized based on multi-path delay is caused to: collect link information in the SRv6 network where it is located through a routing protocol; calculate multiple preset paths through the maximum flow algorithm according to the link information; generate a segment routing table for each of the multiple preset paths; obtain an SRv6 data packet to be forwarded; determine a target routing path from the segment routing table based on the SRv6 data packet to be forwarded; and perform data transmission on the SRv6 data packet to be forwarded according to the target routing path.
[0210] Computer program code for performing the operations of this application can be written in one or more programming languages or combinations thereof. The above-mentioned programming languages include object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network, including a LAN (Local Area Network) or a WAN (Wide Area Network), or it can be connected to an external computer (for example, by using an Internet service provider to connect through the Internet).
[0211] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of the code, and this module, program segment, or part of the code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than that marked in the accompanying drawings. For example, two consecutively represented blocks may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and the combination of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system for performing the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.
[0212] The modules described in the embodiments of this application can be implemented in software or in hardware. Among them, the name of the module does not constitute a limitation to the unit itself in some cases.
[0213] The readable storage medium provided in this application is a computer-readable storage medium. The computer-readable storage medium stores computer-readable program instructions (i.e., computer programs) for performing the above-mentioned communication transmission method based on multi-path delay optimization, and can solve the technical problems of low transmission quality and poor effect in the current communication network. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided in this application are the same as those of the communication transmission method based on multi-path delay optimization provided in the above embodiments, and will not be elaborated here.
[0214] The present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the communication transmission method based on multi-path delay optimization as described above.
[0215] The computer program product provided by the present application can solve the technical problems of low transmission quality and poor effect in the current communication network. Compared with the prior art, the beneficial effects of the computer program product provided by the present application are the same as those of the communication transmission method based on multi-path delay optimization provided in the above embodiments, and will not be elaborated here.
[0216] The above are only partial embodiments of the present application, and thus do not limit the patent scope of the present application. Any equivalent structural transformation made under the technical concept of the present application by using the content of the specification and drawings of the present application, or direct / indirect application in other related technical fields, is included in the patent protection scope of the present application.
Claims
1. A communication transmission method based on multi-path delay optimization, characterized in that, The communication transmission method based on multi-path delay optimization is applied to the sender. Data is transmitted between the sender and the receiver through the KLALB multi-path protocol stack, and the KLALB multi-path protocol stack is used to encapsulate SRv6 data packets into TCP connections or UDP datagrams for transmission. The method includes: Collect link information in the SRv6 network through a routing protocol; Calculate multiple preset paths according to the link information through the maximum flow algorithm; Generate a segment routing table for each of the multiple preset paths; Obtain the SRv6 data packet to be forwarded; Determine the target routing path from the segment routing table based on the SRv6 data packet to be forwarded; Transmit the SRv6 data packet to be forwarded according to the target routing path.
2. The method according to claim 1, characterized in that, The step of calculating multiple preset paths according to the link information through the maximum flow algorithm includes: Obtain the delay information, bandwidth information, network status, and link utilization rate of each link according to the link information; Use each router as a graph node and each link as an edge, and use the delay information, bandwidth information, network status, and the link utilization rate as edge weights; Construct a network graph model according to the graph nodes, the edges, and the edge weights, where the edges in the network graph model are represented as edge weight = (bandwidth, delay, network status, link utilization rate); Find the optimal path from the source node to the target node in the network graph model through the maximum flow algorithm, and the optimal path is obtained by the maximum data flow from the source node to the target node; Obtain multiple preset paths according to the optimal path.
3. The method according to claim 1, wherein The link information includes delay information, and the step of collecting link information in the SRv6 network through a routing protocol includes: Send a delay measurement data packet to the target node in the SRv6 network through a routing protocol, and the delay measurement data packet carries a transmission timestamp; Receive the response data packet fed back by the target node based on the delay measurement data packet, and the response data packet carries a delay measurement transmission timestamp, a delay measurement reception timestamp, and a response transmission timestamp; Obtain the forward one-way network delay according to the delay measurement transmission timestamp and the delay measurement reception timestamp; Obtain the reverse one-way network delay according to the transmission timestamp and the response transmission timestamp; Obtain the delay information according to the forward one-way network delay and the reverse one-way network delay.
4. The method according to claim 1, wherein The step of determining the target routing path from the segment routing table based on the SRv6 data packet to be forwarded includes: Determine the destination address based on the SRv6 data packet to be forwarded; Search the segment routing table for multiple routing tables that match the destination address to obtain a routing table sequence, and the routing paths in the routing table sequence are sorted from small to large according to the forward one-way network delay; Send the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one, and determine the target routing path from the routing table sequence.
5. The method according to claim 4, wherein The step of sending the SRv6 data packet to be forwarded to each routing path in the routing table sequence one by one and determining the target routing path from the routing table sequence includes: Send each of the SRv6 data packets to be forwarded to each routing path in the routing table sequence, and obtain the congestion window and token bucket of the current routing path; Determine whether the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window, and determine whether the SRv6 data packet to be forwarded exceeds the instantaneous bandwidth limited by the token bucket; When the size of the SRv6 data packet to be forwarded does not exceed the upper limit of the congestion window and the SRv6 data packet to be forwarded does not exceed the instantaneous bandwidth limited by the token bucket, use the current routing path as the target routing path.
6. The method according to claim 5, wherein The method further includes: When the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window or the SRv6 data packet to be forwarded exceeds the instantaneous bandwidth limited by the token bucket, skip the current routing path, and use the next routing path in the routing table sequence as the current routing path until all routing paths are traversed; When the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion window, re-traverse the routing table sequence until all routing paths are traversed; When all routing paths are traversed and the size of the SRv6 data packet to be forwarded exceeds the upper limit of the congestion windows of all routing paths, mark or discard the SRv6 data packet to be forwarded.
7. The method according to claim 5, characterized in that The method further includes: Detect whether the link of the current routing path is online; When the link is offline, detect whether the link of the next routing path in the routing table sequence is online; When it is detected that the links of all routing paths in the routing table sequence are offline, discard the SRv6 data packet to be forwarded.
8. The method according to claim 1, wherein After the step of performing data transmission on the SRv6 data packet to be forwarded according to the target routing path, it further includes: Detect the connection status of the target routing path; When a failure occurs in the connection status, return to the step of determining the target routing path from the segment routing table based on the SRv6 data packet to be forwarded, and re-determine the target routing path; Retransmit the SRv6 data packet to be forwarded through the re-determined target routing path, and count the number of retransmissions; When the retransmission is not successful and the number of retransmissions is greater than the preset retransmission times threshold, discard the SRv6 data packet to be forwarded.
9. A communication transmission device based on multi-path delay optimization, characterized in that, The device includes: A collection module, configured to collect link information in the SRv6 network where it is located through a routing protocol; A calculation module, configured to calculate multiple preset paths through a maximum flow algorithm according to the link information; A generation module, configured to generate a segment routing table for each of the multiple preset paths; An acquisition module, configured to acquire an SRv6 data packet to be forwarded; A determination module, configured to determine a target routing path from the segment routing table based on the SRv6 data packet to be forwarded; A transmission module, configured to perform data transmission on the SRv6 data packet to be forwarded according to the target routing path.
10. A storage medium, characterized in that, The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the communication transmission method based on multi-path delay optimization according to any one of claims 1 to 8 are implemented.
Citation Information
Cited By
Multi-path routing method based on maximum flow of time expansion graph and electronic device
CN120602404A
IPv6-based multi-network integration intelligent addressing and routing optimization method
CN121000657A
