TCP Communication Device, Method, and Program
The TCP communication device dynamically adjusts retransmission thresholds based on packet order analysis to address unnecessary retransmissions in high-capacity, multi-path scenarios, enhancing communication reliability.
Patent Information
- Application Number
- JP2022155902
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-09-29
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2042-09-29
AI Technical Summary
Existing TCP retransmission mechanisms in high-capacity communication scenarios, such as those expected in the 6G era, face challenges with fixed retransmission thresholds, leading to unnecessary retransmissions due to out-of-order packet generation, especially in multi-path communication configurations like 'cellular + cellular', which can cause delays and application stoppages.
A TCP communication device that dynamically adjusts the retransmission threshold based on the statistical analysis of packet arrival order changes, using units like out-of-order distance calculation and retransmission threshold calculation to determine appropriate retransmission triggers.
Minimizes unnecessary retransmissions by adapting the retransmission threshold to the communication situation, thereby reducing delays and improving communication reliability.
Smart Images

Figure 0007701335000001 
Figure 0007701335000002 
Figure 0007701335000003
Abstract
Description
Technical Field
[0001] The present invention relates to a TCP communication device, method, and program.
Background Art
[0002] Non-Patent Document 1 defines fast retransmission of TCP (Transmission Control Protocol). TCP usually performs retransmission without waiting for a timeout when it receives three duplicate ACKs (acknowledgments).
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the prior art, for example, as in the above three times, since the retransmission threshold is fixedly set, appropriate processing has not been performed for the following situations.
[0005] In the 6G era, an increase in the capacity of single-user communication (in the 100 Gbps class) is expected. With such an increase in communication capacity, the use of multi-path communication for bandwidth reservation is expected. However, the more the communication is made multi-path, the higher the risk of out-of-order packet generation.
[0006] However, in TCP, usually, as described above, when three duplicate ACKs are received, it is considered that a loss has occurred and retransmission is performed, and depending on the type of congestion control algorithm, the congestion window size is decreased. That is, just because three packets overtake a certain packet, it is regarded as a loss. As the number of communication channels is increased to four, five, ... in order to achieve the speed requirements of high-capacity communication, such retransmission processing may easily occur.
[0007] On the other hand, if the retransmission determination threshold (that is, the threshold for determining how many duplicate ACKs are used to execute retransmission) is set to too large a value, the retransmission when a real loss occurs will be delayed, and risks such as the communication of the application stopping for a long time will occur.
[0008] Furthermore, especially in the case of a multi-path with a configuration such as "cellular + cellular", it is expected that the asymmetry will be smaller compared to the case of a configuration such as "cellular + WiFi (registered trademark)" (the delay for each path will have less difference), and the risk of out-of-order will be even higher, so countermeasures are essential.
[0009] In view of the problems of the above prior art, an object of the present invention is to provide a TCP communication device, method, and program capable of setting an appropriate retransmission threshold according to the communication situation.
Means for Solving the Problems
[0010] To achieve the above object, the present invention provides a TCP communication device that sequentially receives packets transmitted from a transmission side as a reception side, and includes: a first process for calculating, from each of a predetermined number of packets received most recently, the degree of change in the packet arrival order; and a second process for determining the retransmission threshold for determining whether the transmission side performs packet retransmission when the number of times the transmission side receives duplicate ACKs from the reception side reaches the retransmission threshold based on the statistical value of the degree of change in the predetermined number of packets. The present invention is also characterized by a method and a program corresponding to the device.
Effects of the Invention
[0011] According to the present invention, an appropriate retransmission threshold can be set according to the communication situation.
Brief Description of the Drawings
[0012]
Figure 1
Figure 2
Figure 3
Figure 4
Mode for Carrying Out the Invention
[0013] FIG. 1 is a functional block diagram of a TCP communication device according to an embodiment. The TCP communication device 10 includes a TCP function unit 1, an out-of-order distance calculation unit 2, an out-of-order distance management unit 3, a retransmission threshold calculation unit 4, a retransmission packet determination unit 5, a retransmission threshold rewriting unit 6, a retransmission flag setting unit 7, and a communication processing unit 8. The TCP communication device 10 may be a mobile terminal such as a smartphone and perform network communication via a wireless access network.
[0014] The TCP function unit 1 undertakes functions such as connection management, congestion control, retransmission control, and ACK transmission as normal functions in TCP. The out-of-order distance calculation unit 2, the out-of-order distance management unit 3, the retransmission threshold calculation unit 4, the retransmission packet determination unit 5, the retransmission threshold rewriting unit 6, and the retransmission flag setting unit 7 each provide additional functions to the TCP function unit 1 in this embodiment, as will be described in detail later.
[0015] The communication processing unit 8 is responsible for processing other than that of the transport layer by the TCP function unit 1 among the processes necessary for the TCP communication device 10 to perform communication in the TCP / IP layer model, and is responsible for the processing of the lower network interface layer and the Internet layer, and the processing of the upper application layer. The communication processing unit 8 can be realized using any existing method for each of these layers.
[0016] FIG. 2 is a configuration diagram of a communication system according to an embodiment. The communication system 20 includes a transmission-side node 10S and a reception-side node 10R. Both the transmission-side node 10S and the reception-side node 10R have the configuration of the TCP communication device 10 in FIG. 1 as a functional block configuration. However, in the following description, as shown in FIG. 2, the side that performs data transmission by some application such as mail is referred to as the transmission-side node 10S (abbreviated as "transmission side"), and the side that receives the data is referred to as the reception-side node 10R (abbreviated as "reception side") for explanation.
[0017] According to the communication system 20 of the present embodiment, the determination methods of "ACK due to out-of-order" and "ACK due to loss" are improved, and unnecessary retransmissions can be prevented. For this reason, the transmission side and the reception side each have the following functions.
[0018] The reception side has the following functions 1R to 4R as also shown in FIG. 1. <1R> The reception side has an out-of-order distance calculation unit 2 and aggregates the out-of-order distance [unit: packet]. Here, the out-of-order distance is a value representing how many packets are delayed, which is derived from the maximum value of the sequence numbers of the arrived packets and the sequence numbers of the arrived packets.
[0019] <2R> The reception side has an out-of-order distance management unit 3 and manages the out-of-order distances of the most recent n packets. That is, while the above out-of-order distance calculation unit 2 sequentially calculates the out-of-order distance for the arrived packets, the out-of-order distance management unit 3 stores the calculated out-of-order distances for the most recent n arrived packets. n is set in advance as a predetermined number.
[0020] <3R> The receiving side has a retransmission threshold calculation unit 4, and based on the statistical value of the out-of-order distance for n packets managed by the above out-of-order distance management unit 3, periodically derives a retransmission threshold (that is, the value indicating how many duplicate ACKs should trigger retransmission), and notifies the transmitting side.
[0021] Note that the retransmission threshold determination method will be described later, and it can be determined by various methods. For example, percentile-guaranteed determination methods, methods based on the average value, methods based on the median value, etc. can be used. <4R> The receiving side has a retransmitted packet determination unit 5, which has the function of checking the "retransmission flag" included in the option field of the TCP header to determine whether the received packet is a retransmitted packet.
[0022] As shown in FIG. 1, the transmitting side has the following functions 1S and 2S. <1S> The transmitting side has a retransmission threshold rewriting unit 6, which rewrites the currently set retransmission threshold based on the retransmission threshold received from the receiving side. When receiving duplicate ACKs equal to the number of retransmission thresholds, perform retransmission processing.
[0023] <2S> The transmitting side has a retransmission flag setting unit 7. When transmitting a retransmitted packet, set the "retransmission flag" to 1 in the option field of the TCP header so that the receiving side can determine whether the received packet is a retransmitted packet.
[0024] The reason for setting the retransmission flag is as follows. When aggregating the out-of-order distance, if retransmitted packets are included in the aggregation, the degree of out-of-order will not be correctly calculated. Therefore, an "optional field for retransmission flag" is included in the TCP header so that the receiving node can determine whether it is a retransmitted packet or a packet with its order swapped.
[0025] FIG. 3 is a flowchart of the operation of the TCP communication system 20 according to an embodiment.
[0026] In step S1, the transmitting side starts transmitting data to the receiving side as a process of some application such as an email. Through the processing of the TCP function unit 1, a connection is established with the receiving side, the transmitted data is divided into packets, and after adding the source port, destination port, sequence number, acknowledgment number, etc. as the TCP header, each packet is sequentially transmitted to the receiving side. Also in step S1, the receiving side starts receiving the transmitted packet through the processing of the TCP function unit 1 when the transmitting side establishes a connection.
[0027] In step S2, the receiving side determines whether there is a new reception of the packet whose transmission was started in step S1. If it has received the packet, it proceeds to step S3; if not, it repeats returning to step S2 and waits until there is a reception.
[0028] In step S3, the receiving side determines whether it is necessary to send a duplicate ACK for the packet received in step S2. If necessary, it proceeds from step S3 to step S4, sends a duplicate ACK from the receiving side to the transmitting side, and then proceeds to step S5. If not necessary, it proceeds from step S3 to step S5.
[0029] In step S5, the receiving side updates the retransmission threshold (updates it to the latest retransmission threshold calculated by the retransmission threshold calculation unit 4) by each of its parts 2 to 5 and transmits it to the transmitting side, and then returns to step S2. Note that the transmission timing of step S5 can be set in advance as an appropriate timing. In this way, it may be transmitted as needed every time a packet is received, or it may be transmitted once for a plurality of packets (for example, 100 packets), or it may be transmitted when there is an update of the value.
[0030] Hereinafter, the details of the processing by each of the parts 2 to 5 of the receiving side in step S5 will be described.
[0031] The determination of the retransmission threshold by the retransmission threshold calculation unit 4 may be determined by the following method using various statistical values of the n out-of-order distances d stored in the out-of-order distance management unit 3. ● A method of determining based on the criterion of "preventing unnecessary retransmission by X percentile" ● A method of determining based on the average value of the out-of-order distance and the deviation from the average value ● A method of determining based on the median of the out-of-order distance and the deviation from the median
[0032] Here, in order to prevent the retransmission threshold from being set to 0, 1, etc. when packets happen to arrive in order continuously, a lower limit value may be set for the threshold. Similarly, in order to prevent the time until retransmission from increasing extremely, an upper limit value may be set for the retransmission threshold.
[0033] The out-of-order distance d can be calculated as follows d = (seq_num_max - seq_num) / segment_size Here, seq_num_max is the maximum of the sequence numbers of n most recently arrived packets, seq_num is the sequence number of the most recently arrived packet, and segment_size is the segment size (data length of the packet).
[0034] In other words, if the data packets sent by the sending side are assigned IDs = 1, 2, 3,... in the sending order, the out-of-order distance d can be calculated as the value obtained by subtracting the value of the ID of the most recently arrived packet (denoted as now) from the maximum value (denoted as max) among the IDs of n most recently arrived packets, and it corresponds to a value that quantifies the difference in the arrival order of the most recent packet (the degree of swapping of the arrival order). d = max - now
[0035] <Explanation example> For the sake of explanation, let n = 9, and assume that the IDs from 1 to 9 are assigned to 9 packets according to the sending order on the sending side. When the packets arrive in the order of 1, 4, 2, 6, 9, 8, 7, 3, 5, the out-of-order distance d calculated sequentially is as shown in Figure 4.
[0036] In the case of the example of the table in FIG. 4, the out-of-order distance d is as follows · When ID = 4 arrives: d = 4 - 4 = 0 · When ID = 2 arrives: d = 4 - 2 = 2 · When ID = 6 arrives: d = 6 - 6 = 0 · When ID = 5 arrives: d = 9 - 5 = 4
[0037] In the case of the example of the table in FIG. 4, when ID = 5 arrives, the retransmission threshold t can be calculated as the following values based on various statistical values for n = 9 · If preventing unnecessary retransmissions at the 90th percentile, the retransmission threshold t = 5 (in the above table, if duplicate ACKs up to 4 times are allowed, unnecessary retransmissions can be prevented at the 90th percentile) · If adopting the average value (rounded up), t = 2 (assuming the threshold lower limit = t_min, if t_min ≥ 2, there is no change to the threshold) · If adopting the median, t = 1 (assuming the threshold lower limit = t_min, if t_min ≥ 0, there is no change to the threshold)
[0038] As described above, according to the embodiment of the present invention, by realizing an appropriate setting of the retransmission threshold according to the communication situation, the number of unnecessary retransmission processes can be minimized. Hereinafter, various supplementary examples, alternative examples, additional examples, etc. will be described
[0039] <Regarding providing the hardware configuration and this embodiment as a program> Each function of the TCP communication device 10 is realized by the TCP communication device 10 including computer hardware such as a CPU and a memory, and the CPU executing a computer program stored in the memory. For transmission and reception, a communication interface may be used. Note that the TCP communication device 10 may be configured using a general-purpose computer device, or may be configured as a dedicated hardware device
[0040] According to the TCP communication device 10 of the present embodiment, it is possible to contribute to the infrastructure development of information and communication technologies. Thereby, it becomes possible to contribute to Goal 9 of the Sustainable Development Goals (SDGs) led by the United Nations, "Build resilient infrastructure, promote sustainable industrialization, and foster innovation."
[0041] In steps S2 to S5 of FIG. 3, the operation on the receiving side was mainly described. However, according to the information returned from the receiving side, the transmitting side also performs the processing of the retransmission threshold rewriting unit 6 and the retransmission flag setting unit 7 as described above. Also, when calculating statistics such as n = 9 as shown in FIG. 4, as described above, the retransmission packet determination unit 5 excludes retransmission packets and calculates statistics such as n = 9.
Explanation of Signs
[0042] 10... TCP communication device, 1... TCP function unit, 2... out-of-order distance calculation unit, 3... out-of-order distance management unit, 4... retransmission threshold calculation unit, 5... retransmission packet determination unit, 6... retransmission threshold rewriting unit, 7... retransmission flag management unit
Claims
1. In a TCP communication device that sequentially receives packets transmitted from a transmission side as a reception side, a first process of calculating the degree of packet arrival order swapping from each of a predetermined number of packets received most recently; a second process of determining the retransmission threshold for determining, based on the statistical value of the degree of swapping in the predetermined number of packets, whether the transmission side should retransmit a packet when the number of duplicate ACKs received by the transmission side from the reception side reaches the retransmission threshold. A TCP communication device characterized by executing the above.
2. The TCP communication device according to claim 1, further executing a third process of transmitting the retransmission threshold to the transmission side.
3. The TCP communication device according to claim 1, wherein in the first process, an average value, a median value, or a percentile value is used as the statistical value.
4. The TCP communication device according to claim 1, wherein in the first process, the degree of swapping is calculated as a value obtained by subtracting the transmission order of the most recently received packet from the latest transmission order among the predetermined number of packets.
5. The TCP communication device according to claim 1, wherein in the first process and the second process, the predetermined number of packets is determined by excluding retransmitted packets.
6. The TCP communication device according to claim 1, wherein in the second process, the retransmission threshold is determined within a range of a predetermined upper limit and a lower limit.
7. In a TCP communication method of sequentially receiving packets transmitted from a transmission side as a reception side, a first procedure of calculating the degree of packet arrival order swapping from each of a predetermined number of packets received most recently; a second procedure of determining the retransmission threshold for determining, based on the statistical value of the degree of swapping in the predetermined number of packets, whether the transmission side should retransmit a packet when the number of duplicate ACKs received by the transmission side from the reception side reaches the retransmission threshold. A TCP communication method characterized by comprising the above.
8. In a program for causing a computer to function as a TCP communication device that sequentially receives packets transmitted from a transmission side as a reception side, a first process of calculating the degree of packet arrival order swapping from each of a predetermined number of packets received most recently; A second process for determining the retransmission threshold for the transmitting side to determine whether to retransmit a packet when the number of times the transmitting side has received a duplicate ACK from the receiving side reaches a retransmission threshold based on a statistical value of the degree of replacement in the predetermined number of packets, and causing a computer to execute the second process.
Citation Information
Patent Citations
Network quality estimation method and network quality estimation device
JP2019050455A
Data Unit Receiver and Sender Control Method
US20070243828A1
Method and apparatus for handling reordered data packets
US20080222479A1
Data flow control with duplicate acknowledgment
WO2006066606A1