CN111193577A - Network system communication method and communication device using transmission timeout - Google Patents
Network system communication method and communication device using transmission timeout Download PDFInfo
- Publication number
- CN111193577A CN111193577A CN201911132556.5A CN201911132556A CN111193577A CN 111193577 A CN111193577 A CN 111193577A CN 201911132556 A CN201911132556 A CN 201911132556A CN 111193577 A CN111193577 A CN 111193577A
- Authority
- CN
- China
- Prior art keywords
- transmission timeout
- current value
- timeout
- transmission
- receiving device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004891 communication Methods 0.000 title claims abstract description 46
- 230000003247 decreasing effect Effects 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000007423 decrease Effects 0.000 claims description 2
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 9
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 9
- 230000006855 networking Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
- H04L1/1851—Time-out mechanisms using multiple timers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
- H04L1/1883—Time-out mechanisms using multiple timers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/323—Discarding or blocking control packets, e.g. ACK packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
- H04L43/0835—One way packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
The invention provides a network system communication method and a communication device using transmission timeout, wherein the communication method comprises the following steps: providing an initial value for a transmission timeout and setting a current value for the transmission timeout to the initial value, transmitting one or more packets associated with a given queue from a transmitting device to a receiving device via a communication medium, setting a packet transmission timeout timer associated with the given queue to the current value for the transmission timeout; and upon expiration of a packet transmission timeout timer associated with the given queue, performing the following: A. determining whether the receiving device has successfully received the one or more packets; and performing one or both of the following steps B and C: B. decreasing a current value for the transmission timeout if the receiving device has successfully received the one or more packets; if the receiving device does not successfully receive any packets, the current value for the transmission timeout is increased.
Description
CROSS-REFERENCE TO RELATED APPLICATIONSBy using
This application relates to U.S. patent application No.16/191,536, filed 2018, 11, 15, which is hereby incorporated by reference in its entirety.
Technical Field
The present invention relates to a networked system, and particularly, but not exclusively, to a transmission timeout problem in a networked system, and more particularly, to a network system communication method and communication apparatus using a transmission timeout.
Background
Networking systems that use a timeout to notify a sender that a transmission may not be received so that the sender can retransmit (apparently) the transmission that was not received are known in the art. The TCP protocol in TCP/IP is an example of a system that uses timeouts. TCP is described in RFC 1122, while a mechanism for calculating the value of a retransmission timer considered appropriate for use in TCP is described in RFC 6298. Conceptually, determining the value for the retransmission timer TCP aims to maximize bandwidth and minimize delay as much as possible. As described in RFC 6298, TCP retransmission timers are based on Round Trip Time (RTT).
Disclosure of Invention
The present invention seeks in certain embodiments thereof to provide an improved networked system, and in particular, but not exclusively, to an improved networked system using transmission timeouts.
In general, in some networked systems, maximizing bandwidth (given the available transmission medium) while minimizing latency may be a desirable result.
RoCE (RDMA over converged Ethernet) is one particular non-limiting example of a networked system where maximizing bandwidth while minimizing latency may be a desirable result. In an exemplary embodiment, the present invention can be applied to, for example: RoCE, which provides Remote Direct Memory Access (RDMA) over Ethernet; or InfinibandTMRDMA。
In general, when a packet is transmitted by a transmitting device in a RoCE networking system, a timer and out-of-order NACK packets are used to detect possible lost packets, as described more fully below. Retransmissions in a given packet stream are typically handled using a "return N" packets approach. By way of non-limiting example, if a NACK packet is received from the receiving device, indicating that packet M was not received and that the last packet transmitted by the transmitting device was packet M + N, then retransmission is typically made starting from packet M and moving forward; this is "return N packets".
The timeout mechanism in RoCE, which can also be used in addition to the NACK grouping mechanism described above, involves the use of a timer for a given flow; if the timer expires and an ACK packet has not been received from the receiving device, the transmitting device "assumes" (on this basis) that it is not receiving at the receiving device. RoCE specifies a possible timeout value of 4 mus 2MWherein M is an integer variable between 0 and 31; the value of M is typically defined in software. In practice, this timeout is typically about 1 second, although the actual value for the timeout may vary greatly, typically depending on the application.
The named inventors of the present application believe that underlying transport technologies include lossless ethernet (e.g., as described in www.ieee802.org/1/pages/dcbridges. html) or InfinibandTMIn the context of (by definition lossless), it may be appropriate to use a timeout of about 1 second, where packet loss may be at 10-15Occurs (every 10)151 packet out of one) because packet loss is very rare. Such a timeout is also useful for finding a complete loss of connection. However, in the context of packet losses occurring more frequently, such a long timeout may be inappropriate and non-optimal, at least because many additional packets may be sent before the timeout occurs.
As explained above, maximizing bandwidth (given the available transmission medium) while minimizing delay may be a desirable result. To achieve such a goal, it may be appropriate to find a good, near-optimal or optimal value for the timeout. Known methods used in TCP, such as the method described in RFC 6298, may not be suitable for use in RoCE, since RTT is typically not a known value in RoCE. This is because there is typically no ACK for RDMA read responses. In contrast to TCP, the IB/RoCE specification also does not require RTT. Therefore, in RoCE, RTT is not typically used to optimize the value of the timeout timer.
It should be appreciated that another difference between a lossy network and a lossless network is generally the impact of congestion. In lossy networks, unconstrained (uncontrolled) congestion, typically due to a large number of bursts, may result in packet loss, while in lossless networks, unconstrained congestion causes congestion to spread back to the source of the stream. While lossy networks experience higher packet loss rates, lossless networks can create huge traffic congestion, resulting in very long timeouts-on the order of a few seconds.
There is therefore provided, in accordance with an exemplary embodiment of the present invention, a method, including: providing a hardware-implemented networking system having a sending device, a receiving device, and a communication medium, providing an initial value for a transmission timeout and setting a current value for the transmission timeout to the initial value, sending one or more packets associated with a given queue from the sending device to the receiving device via the communication medium, setting a packet transmission timeout timer associated with the given queue to the current value for the transmission timeout; and upon expiration of a packet transmission timeout timer associated with the given queue, performing the following: A. determining whether the receiving device has successfully received one or more packets; and performing one or both of the following steps B and C: B. decreasing the current value for the transmission timeout if the receiving device has successfully received one or more packets; if the receiving device did not successfully receive any packets, then increasing the current value for the transmission timeout.
Further in accordance with an exemplary embodiment of the present invention, the method includes performing step B and step C.
Still further in accordance with an exemplary embodiment of the present invention, step a further comprises retransmitting at least one previously transmitted packet from the transmitting device to the receiving device via the communication medium.
Further in accordance with an exemplary embodiment of the present invention, the method further comprises maintaining a status indication indicating a status of the current value for the transmission timeout, the status indication including an indication of whether the current value for the transmission timeout has increased or decreased; and wherein said increasing said current value for the transmission timeout comprises conditionally increasing said current value for the transmission timeout based, at least in part, on said status indication, and wherein said decreasing said current value for the transmission timeout comprises conditionally decreasing said current value for the transmission timeout based, at least in part, on said status indication.
Further, according to an exemplary embodiment of the present invention, the method further comprises: maintaining a number of times that the packet transmission timer counter has expired, and wherein step a further comprises: conditionally re-transmitting, via the communication medium, at least one previously transmitted packet from the transmitting device to the receiving device based at least in part on the value of the packet transmission timer counter.
Further in accordance with an exemplary embodiment of the present invention, the method further comprises the step of iteratively performing said transmitting, setting and upon expiration.
Still further in accordance with the exemplary embodiments of this invention, said increasing said current value for the transmission timeout comprises increasing said current value for the transmission timeout by a factor of 2.
Further in accordance with an exemplary embodiment of the present invention, the reducing the current value for the transmission timeout comprises reducing the current value for the transmission timeout by a factor of 2.
Further in accordance with an exemplary embodiment of the present invention, the method further comprises providing a minimum value and a maximum value for a transmission timeout, and wherein the current value for the transmission timeout has a range from the minimum value for the transmission timeout to the maximum value for the transmission timeout.
There is also provided, in accordance with another exemplary embodiment of the present invention, apparatus, comprising a hardware-implemented networked system having a sending device, a receiving device, and a communication medium, wherein the sending device includes a transmission timeout calculation unit configured to determine and modify a transmission timeout value, the transmission timeout calculation unit further configured to determine an initial value for a transmission timeout and set a current value for the transmission timeout to the initial value, the sending device is configured to send one or more packets to the receiving device via the communication medium, each of the one or more packets is associated with a given queue to set a packet transmission timeout timer associated with the given queue to the current value for the transmission timeout, and when the packet transmission timeout timer associated with the given queue expires, the following operations are performed: A. determining whether the receiving device has successfully received one or more packets based at least in part on a value of the given packet identifier; and performing one or both of the following steps B and C: B. the transmission timeout calculating unit decreases the current value for transmission timeout if the receiving device has successfully received one or more packets; if the receiving device does not successfully receive any packet, the transmission timeout calculating unit increases the current value for the transmission timeout.
Further in accordance with an exemplary embodiment of the present invention, the transmitting device is configured to perform both step B and step C.
Still further in accordance with an exemplary embodiment of the present invention, the transmitting device is further configured to perform the following steps as part of performing a: retransmitting at least one previously transmitted packet from the transmitting device to the receiving device via the communication medium.
Further, according to an exemplary embodiment of the invention, the transmission timeout calculating unit is further configured to maintain a status indication indicating a status of the current value for the transmission timeout, the status indication comprising an indication whether the current value for the transmission timeout has increased or decreased; and the sending device is further configured to conditionally increase the current value for transmission timeout based on the status indication; and the sending device is further configured to conditionally reduce the current value for the transmission timeout based on the status indication.
Further, according to an exemplary embodiment of the present invention, the transmitting device is further configured to: maintaining a number of times that a packet transmission timer counter has expired, the transmitting device further configured to perform the following as part of performing A: conditionally re-transmitting, via the communication medium, at least one previously transmitted packet from the transmitting device to the receiving device based at least in part on the value of the packet transmission timer counter.
Further, according to an exemplary embodiment of the invention, the apparatus is configured to iteratively: transmitting one or more packets; setting the packet transmission timeout timer; and performing step a and one or both of steps B and C upon said expiration.
Still further in accordance with an exemplary embodiment of the present invention, the current value for the transmission timeout is increased by a factor of 2 when the current value for the transmission timeout is increased.
Further, according to an exemplary embodiment of the present invention, when the current value for the transmission timeout is decreased, the current value for the transmission timeout is decreased by 2 times.
Further in accordance with an exemplary embodiment of the present invention, the current value for the transmission timeout has a range from a minimum value for the transmission timeout to a maximum value for the transmission timeout.
Drawings
The present invention will be more fully understood and appreciated from the following detailed description taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a simplified pictorial illustration depicting Round Trip Time (RTT) in a networked system;
FIG. 2 is a simplified pictorial illustration depicting timeouts in a networked system;
FIG. 3 is a simplified pictorial illustration depicting out-of-order NACKs in a networked system;
FIG. 4 is a simplified block diagram illustration of an exemplary networked system constructed and operative in accordance with an exemplary embodiment of the present invention;
FIG. 5 is a simplified flowchart illustration depicting an exemplary method of operation of the system of FIG. 4;
FIG. 6 is a simplified flowchart illustration depicting another exemplary method of operation of the system of FIG. 4; and
FIG. 7 is another simplified flowchart illustration depicting an exemplary method of operation of the system of FIG. 4.
Detailed Description
Referring now to fig. 1, fig. 1 is a simplified pictorial illustration depicting Round Trip Time (RTT) in a networked system. A networked system, generally indicated at 100, is shown in fig. 1. By way of example, the sending of a request ("request 1") from a sending device to a receiving device (neither shown in fig. 1), and the sending back of an acknowledgement ("ACK 1") are depicted in fig. 1. At the sending device, the time between sending request 1 and receiving ACK 1 determines the round trip time ("round trip time") RTT. As explained above, although in some systems (such as, for example, TCP) the RTT is a known value, in other systems (such as, for example, RoCE) the RTT is not a known value, as explained above.
Referring now to fig. 2, fig. 2 is a simplified pictorial illustration depicting a timeout in a networked system. A networked system, generally indicated at 200, is shown in fig. 2. By way of example, a request ("request 1") is depicted in fig. 2 being sent from a sending device to a receiving device (neither shown in fig. 2). The transmitting device does not receive an acknowledgement ("ACK 1") from the receiving device. For example, the reason for not receiving the acknowledgement may be due to not receiving the request (and thus the request may have been lost), due to some failure of the receiving device, due to a failure of the communication between the sending device and the receiving device, and so on. To prevent a situation in which communication is "dropped," the sending device sets a timeout ("Time-Out"), also known as a timer; when the timer expires but the appropriate ACK is not received, the request with which the timer is associated will be resent ("resend request 1").
Although a relatively simple case is depicted in fig. 2, in which a timer is associated with a single request, those skilled in the art will appreciate that more than one request may be sent in association with a single timer; if an ACK is received for any of those more than one requests, all such requests are typically resent after expiration of the timer. In some embodiments of the invention, a timer is associated with a queue rather than a single request, as described herein.
Referring now to fig. 3, fig. 3 is a simplified pictorial illustration depicting out-of-order NACKs in a networked system. A networked system, generally indicated at 300, is shown in fig. 3. By way of example, a first request ("request 1") and a second request ("request 2") are depicted in fig. 3 being transmitted from a transmitting device to a receiving device (neither shown in fig. 3). By way of non-limiting example, fig. 3 depicts a situation in which the receiving device does not receive the first request. At some point, the receiving device sends an indication ("out-of-order NACK") back to the sending device that the first request was not acknowledged; in the particular example of fig. 3, a NACK is associated with the first request. Those skilled in the art will appreciate that because the second request was received by the receiving device, but the first request was not received by the receiving device, the receiving device may determine that no request was received because each request includes a request number or sequence number (as is commonly known in the art). In this case, the first request may be retransmitted from the transmitting device to the receiving device, or all requests starting from the first request may be retransmitted from the transmitting device to the receiving device, typically after receiving the NACK.
Referring now to fig. 4, fig. 4 is a simplified block diagram illustration of an exemplary networked system, constructed and operative in accordance with an exemplary embodiment of the present invention.
The system of fig. 4 includes a transmitting device 410 and a receiving device 420. The transmitting device includes a transmission timeout calculating unit 430. The sending device 410 and the receiving device 420 are in operable communication via a communication medium 440.
The sending device 410 may comprise any suitable device configured to send (and typically also receive) a message (the message typically comprising a packet such as the plurality of packets 450) over the communication medium 440.
In the particular example of fig. 4, a packet is transmitted from a transmitting device 410 to a receiving device 420. Receiving device 420 may include any suitable device configured to receive (and typically also transmit) messages over communication medium 440.
In the particular example shown in fig. 4, the plurality of packets 450 includes n packets, shown by way of example in fig. 4 as including packets numbered from 1 to n (including 1 and n).
Referring now additionally to fig. 5, fig. 5 is a simplified flowchart illustration depicting an exemplary method of operation of the system of fig. 4. In the specific example of fig. 5, a system (such as, by way of non-limiting example, the system of fig. 4) begins (step 510) with some initial value for a timeout timer.
Based on the above discussion of RoCE, those skilled in the art will appreciate that in the particular non-limiting example in which the network medium 440 facilitates RoCE communications, the initial value for the timeout timer has 4 μ s 2MWherein M is an integer variable ranging from 0 to 31. By way of one particular non-limiting example, M may have an initial value of about 18, such that the initial value for the timeout timer will be about 1 second; however, significantly larger or smaller values for M may also be used, and may generally be based on implementation-specific considerations in any given implementationM is selected by filtering.
Upon transition from step 510 of fig. 5, a timeout occurs. In step 520, a test is performed (typically by the transmission timeout calculating unit 430 described above; steps 530 and 540 are also typically performed by the transmission timeout calculating unit 430 described above) to determine if progress has been made in transmitting the plurality of packets 450. In other words, there has been progress if the ACK and NACK messages received at the sending device 410 from the receiving device 420 indicate that some packets (in some implementations multiple consecutive packets, such as, by way of non-limiting example, packet 2 through packet 4 (including packet 2 through packet 4) have been successfully received at the receiving device 420, otherwise there has been no progress.
By way of non-limiting example, in some embodiments, when a successful ACK or read response is received, the bit associated with the packet queue being sent is set to 1; by way of non-limiting example, this bit may be set by hardware. In such an embodiment, the bit is reset to 0 when transmission is started or restarted (e.g., after a timeout); by way of non-limiting example, this bit may be reset by firmware. Those skilled in the art will appreciate that in subsequent timeouts, checking the bit will indicate whether any successful transmissions have occurred since the last timeout.
If there has been progress at step 520, the method of FIG. 5 continues at step 530. At step 530, appropriate retransmission of the unacknowledged packet occurs and the timeout timer is decremented. In the particular case of RoCE as described above, M may be reduced by 1; it is also possible to reduce M by a larger integer. The method of fig. 5 then continues by returning to step 510, where the current state is considered the new initial state.
If there is no progress at step 520, the method of FIG. 5 continues at step 540. At step 540, appropriate retransmission of the unacknowledged packet occurs and the timeout timer is incremented ("incremented"). In the particular case of RoCE as described above, M may be increased by 1; it is also possible that M is increased by a larger integer. The method of fig. 5 then continues by returning to step 510, where the current state is considered the new initial state.
In view of the above discussion, it should be appreciated that the method of FIG. 5 may provide an improvement to the operation of the system of FIG. 4, wherein timeout values may be reached that may be good, near-optimal, or optimal; this is because the timeout is shortened when progress is made in sending packets, and the timeout is lengthened when there is no progress. Those skilled in the art will appreciate that such good, near-optimal or optimal values (unlike TCP) are achieved without RTT being available. This improvement/optimization of the timeout values generally results in bandwidth maximization and latency minimization, thereby providing improved operation of the system of fig. 4.
Referring now additionally to fig. 6, fig. 6 depicts a simplified flowchart illustration of another exemplary method of operation of the system of fig. 4.
In contrast to the above-described method depicted in fig. 5, in the method of fig. 6, the system of fig. 4 may be in one of two states: a first state ("state 0") in which the timeout timer is constantly falling, and a second state ("state 1") in which the timeout timer is constantly rising. Although in the method illustrated in fig. 6 and described below, the system starts from state 0, those skilled in the art will recognize that the system may alternatively start from state 1 with appropriate modifications. Generally, the steps of fig. 6 occur in the transmission timeout calculating unit 430 described above.
At step 610, the system is in state 0 and the timer is decremented. When a timeout occurs, the method of fig. 6 moves to step 620 where a test is made to determine if there has been progress in transmitting the plurality of packets 450. The operation of step 620 may be similar to the operation of step 520 described above.
If there is progress in each step 620, the method of FIG. 6 continues at step 630. The operation of step 630 may be similar to the operation of step 530 described above. The method of fig. 6 then continues to step 610.
If each step 620 has not progressed, the method of FIG. 6 continues at step 640. At step 640, appropriate retransmission of the unacknowledged packet occurs. The value of the timeout timer has not changed in step 640 and the method of fig. 6 then continues in state 1 "timer up" in step 650.
When a timeout occurs from step 650, the method of fig. 6 transitions to step 660 where a test is made in step 660 to determine if there has been progress in transmitting the plurality of packets 450. The operation of step 660 may be similar to the operation of steps 520 and 620 as described above.
If there is progress in each step 660, the method of FIG. 6 continues with step 670. The operation of step 670 may be similar to the operation of step 640 described above. After step 670, the method of FIG. 6 then continues with step 601.
If each step 660 has not progressed, the method of FIG. 6 continues with step 680. The operation of step 680 may be similar to the operation of step 540 described above. After step 680, the method of FIG. 6 then continues with step 650.
In view of the above discussion, it should be appreciated that the method of FIG. 6 may provide an improvement to the operation of the system of FIG. 4, wherein timeout values may be reached that may be good, near optimal, or optimal; this is because the timeout is shortened when progress is made in transmitting the packet, and is lengthened when there is no progress. Those skilled in the art will appreciate that such good, near-optimal or optimal values (unlike TCP) are achieved without RTT being available. This improvement/optimization of the timeout values generally results in bandwidth maximization and latency minimization, thereby providing improved operation of the system of fig. 4.
The method of fig. 6 may achieve good, near-optimal, or optimal timeout values with less jitter than the method of fig. 5, because in some cases the method of fig. 5 may introduce jitter that (by way of non-limiting example) causes the timeout to be shortened, lengthened, and then shortened again.
Referring now to fig. 7, fig. 7 is another simplified flowchart illustration depicting an exemplary method of operation of the system of fig. 4.
In view of the above discussion, the method of fig. 7 will be largely self-evident, and may include the following steps (except as more particularly specified below) that are typically performed by the transmitting device 410:
in step 710, a hardware-implemented networked system having a sending device, a receiving device, and a communication medium is provided.
In step 720, an initial value for the transmission timeout is provided and the current value for the transmission timeout is set to the initial value.
In step 730, one or more packets associated with a given queue are transmitted from a transmitting device to a receiving device via a communication medium.
In step 740, a packet transmission timer associated with a given queue in which a packet is sent is set; the transfer timer has a value for the current value of the transfer timeout. When the transmission timer associated with a given queue expires:
A. determining whether the receiving device has successfully received the one or more packets; the method of making this determination is described above. Then, one or both of B and C are performed (typically by the transmission timeout calculating unit 430 described above):
B. if the receiving device successfully receives one or more packets, the current value of the transmit timeout is decreased.
C. If the receiving device did not successfully receive any packets, the current value of the transmission timeout is increased.
It will be appreciated that, in general, unsuccessfully received packets are typically retransmitted during step 740 or after step 740.
It should also be appreciated that in the methods of fig. 5-7, the network connection may be permanently unavailable or unavailable for a long time after a certain number of changes have been made to the value used for the timeout transmission. In this case, a system administrator or user may be notified. For example, for a certain value N associated with the system, such a notification may occur if total _ time _ without _ forward _ progress > N × M.
It is to be understood that the software components of the present invention may be implemented in the form of ROM (read only memory), if desired. Software components may typically be implemented in hardware using conventional techniques, if desired. It should also be understood that software components may be instantiated, for example, as a computer program product or on a tangible medium. In some cases, the software components may be instantiated as signals interpretable by an appropriate computer, although such instantiation may be excluded in some embodiments of the present invention.
It is appreciated that various features of the invention which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the invention is defined by the appended claims and equivalents thereof.
Claims (15)
1. A network system communication method using transmission timeouts, the method comprising:
providing a hardware-implemented networked system having a transmitting device, a receiving device, and a communication medium;
providing an initial value for a transmission timeout and setting a current value for the transmission timeout to the initial value;
transmitting, from the transmitting device to the receiving device via the communication medium, one or more packets associated with a given queue;
setting a packet transmission timeout timer associated with the given queue to the current value for the transmission timeout; and
upon expiration of a packet transmission timeout timer associated with the given queue, performing the following:
A. determining whether the receiving device has successfully received one or more packets; and
performing one or both of the following steps B and C:
B. decreasing the current value for the transmission timeout if the receiving device has successfully received one or more packets; and
C. increasing the current value for the transmission timeout if the receiving device did not successfully receive any packets.
2. The method of claim 1, wherein step a further comprises:
retransmitting at least one previously transmitted packet from the transmitting device to the receiving device via the communication medium.
3. The method of claim 1, further comprising:
maintaining a status indication indicating a status of the current value for the transmission timeout, the status indication including an indication of whether the current value for the transmission timeout has increased or decreased;
and wherein said increasing said current value for the transmission timeout comprises conditionally increasing said current value for the transmission timeout based, at least in part, on said status indication,
and wherein said reducing said current value for the transmission timeout comprises conditionally reducing said current value for the transmission timeout based, at least in part, on said status indication.
4. The method of claim 1, further comprising:
maintaining a number of times the packet transmission timer counter has expired,
and wherein step a further comprises:
conditionally re-transmitting, via the communication medium, at least one previously transmitted packet from the transmitting device to the receiving device based at least in part on the value of the packet transmission timer counter.
5. The method of claim 1, wherein at least one of:
said increasing the current value for the transmission timeout comprises increasing the current value for the transmission timeout by a factor of 2; and
the reducing the current value for the transmission timeout comprises reducing the current value for the transmission timeout by a factor of 2.
6. The method of claim 1, further comprising:
providing a minimum value and a maximum value for a transmission timeout, and wherein the current value for the transmission timeout has a range from the minimum value for the transmission timeout to the maximum value for the transmission timeout.
7. A network system communication device using transmission timeouts, the device comprising:
a hardware-implemented networked system having a sending device, a receiving device, and a communication medium, wherein the sending device includes a transmission timeout computing unit configured to determine and modify a transmission timeout value, the transmission timeout computing unit further configured to determine an initial value for a transmission timeout and set a current value for the transmission timeout to the initial value,
the transmitting device is configured to transmit one or more packets to the receiving device via the communication medium, each of the one or more packets associated with a given queue to set a packet transmission timeout timer associated with the given queue to the current value for the transmission timeout, and when the packet transmission timeout timer associated with the given queue expires, perform the following:
A. determining whether the receiving device has successfully received one or more packets based at least in part on a value of the given packet identifier; and
performing one or both of the following steps B and C:
B. the transmission timeout calculating unit decreases the current value for transmission timeout if the receiving device has successfully received one or more packets; and
C. the transmission timeout calculating unit increases the current value for the transmission timeout if the receiving device does not successfully receive any packet.
8. The apparatus of claim 7, wherein the sending device is configured to perform both step B and step C.
9. The apparatus of claim 7, wherein the sending device is further configured to perform the following steps as part of performing A:
retransmitting at least one previously transmitted packet from the transmitting device to the receiving device via the communication medium.
10. The apparatus of claim 7, wherein the transmission timeout calculation unit is further configured to maintain a status indication indicating a status of the current value for transmission timeout, the status indication including an indication of whether the current value for transmission timeout has increased or decreased;
and the sending device is further configured to conditionally increase the current value for transmission timeout based on the status indication;
and the sending device is further configured to conditionally reduce the current value for the transmission timeout based on the status indication.
11. The apparatus of claim 7, wherein the transmitting device is further configured to: maintaining a number of times the packet transmission timer counter has expired,
and the sending device is further configured to perform the following as part of performing a:
conditionally re-transmitting, via the communication medium, at least one previously transmitted packet from the transmitting device to the receiving device based at least in part on the value of the packet transmission timer counter.
12. The apparatus of claim 7, wherein the device is configured to iteratively: transmitting one or more packets; setting the packet transmission timeout timer; and performing step a and one or both of steps B and C upon said expiration.
13. The apparatus of claim 7, wherein the current value for the transmission timeout is increased by a factor of 2 when the current value for the transmission timeout is increased.
14. The apparatus of claim 7, wherein the current value for the transmission timeout is reduced by a factor of 2 when the current value for the transmission timeout is reduced.
15. The apparatus of claim 7, wherein the current value for the transmission timeout has a range from a minimum value for the transmission timeout to a maximum value for the transmission timeout.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/191,536 US10841231B2 (en) | 2018-11-15 | 2018-11-15 | Transmission timeout system |
US16/191,536 | 2018-11-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193577A true CN111193577A (en) | 2020-05-22 |
CN111193577B CN111193577B (en) | 2024-06-25 |
Family
ID=68581326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911132556.5A Active CN111193577B (en) | 2018-11-15 | 2019-11-14 | Network system communication method and communication device using transmission timeout |
Country Status (3)
Country | Link |
---|---|
US (1) | US10841231B2 (en) |
EP (1) | EP3654563A1 (en) |
CN (1) | CN111193577B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10785306B1 (en) | 2019-07-11 | 2020-09-22 | Alibaba Group Holding Limited | Data transmission and network interface controller |
CN113438130B (en) * | 2021-06-23 | 2022-11-11 | 中国工商银行股份有限公司 | Overtime monitoring method and device based on micro-service |
US11765237B1 (en) | 2022-04-20 | 2023-09-19 | Mellanox Technologies, Ltd. | Session-based remote direct memory access |
CN115834002B (en) * | 2022-11-16 | 2023-10-31 | 江苏为是科技有限公司 | High-speed transmission system and method |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08288956A (en) * | 1995-04-17 | 1996-11-01 | Nec Corp | Monitor and terminal equipment |
US20020150048A1 (en) * | 2001-04-12 | 2002-10-17 | Sungwon Ha | Data transport acceleration and management within a network communication system |
KR20040100331A (en) * | 2003-05-22 | 2004-12-02 | 엘지전자 주식회사 | Method for transmitting a delayed ack |
CN1561615A (en) * | 2001-09-28 | 2005-01-05 | 埃沃柳姆公司 | Method of improving the performance of a transmission protocol using a retransmission timer |
US20050165948A1 (en) * | 2004-01-08 | 2005-07-28 | Hicham Hatime | Systems and methods for improving network performance |
EP1639760A1 (en) * | 2003-07-01 | 2006-03-29 | Telefonaktiebolaget LM Ericsson (publ) | Method for setting the retransmission timeout period in a packet switched communication network |
US20080095193A1 (en) * | 2006-10-19 | 2008-04-24 | Christopher William Gaedke | Method and Apparatus for Dynamically Adjusting the Number of Packets in a Packet Train to Avoid Timeouts |
CN101677264A (en) * | 2008-09-17 | 2010-03-24 | 艾威梯科技(北京)有限公司 | Method of transmitting acknowledge character (ACK) |
CN101860423A (en) * | 2010-06-07 | 2010-10-13 | 华为技术有限公司 | Method and device for retransmission of protocol packet transmission |
KR101051712B1 (en) * | 2011-02-11 | 2011-07-26 | 삼성탈레스 주식회사 | Method for data transmission |
US20110228714A1 (en) * | 2010-03-02 | 2011-09-22 | Balash Akbari | Method and system for retransmission in asm |
US20130019025A1 (en) * | 2011-07-15 | 2013-01-17 | Damaka, Inc. | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability |
WO2014066359A1 (en) * | 2012-10-22 | 2014-05-01 | Texas State University-San Marcos | Optimization of retransmission timeout boundary |
CN104170517A (en) * | 2012-03-19 | 2014-11-26 | 苹果公司 | Apparatus and methods for mitigating TCP protocol-induced back-offs in communication network |
JP2015198423A (en) * | 2014-04-03 | 2015-11-09 | 三菱電機株式会社 | Communication terminal and packet communication method |
KR20150134000A (en) * | 2014-05-21 | 2015-12-01 | 삼성에스디에스 주식회사 | Apparatus and method for peer-to-peer based data trasnfer |
JP2016225879A (en) * | 2015-06-01 | 2016-12-28 | 沖電気工業株式会社 | Communication device, communication method, communication program and communication system |
WO2017148084A1 (en) * | 2016-03-04 | 2017-09-08 | 中兴通讯股份有限公司 | Control method and apparatus for data transmission rate |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347377B2 (en) * | 1998-11-04 | 2002-02-12 | Phoenix Technologies Ltd. | Method and apparatus for providing intelligent power management |
JP4594110B2 (en) * | 2004-01-23 | 2010-12-08 | 株式会社エヌ・ティ・ティ・ドコモ | Transmitting apparatus and program |
US8458280B2 (en) | 2005-04-08 | 2013-06-04 | Intel-Ne, Inc. | Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations |
US9176911B2 (en) | 2012-12-11 | 2015-11-03 | Intel Corporation | Explicit flow control for implicit memory registration |
WO2017106450A1 (en) * | 2015-12-15 | 2017-06-22 | Convida Wireless, Llc | Methods and nodes for enabling context-awareness in coap |
-
2018
- 2018-11-15 US US16/191,536 patent/US10841231B2/en active Active
-
2019
- 2019-11-12 EP EP19208717.9A patent/EP3654563A1/en active Pending
- 2019-11-14 CN CN201911132556.5A patent/CN111193577B/en active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08288956A (en) * | 1995-04-17 | 1996-11-01 | Nec Corp | Monitor and terminal equipment |
US20020150048A1 (en) * | 2001-04-12 | 2002-10-17 | Sungwon Ha | Data transport acceleration and management within a network communication system |
CN1561615A (en) * | 2001-09-28 | 2005-01-05 | 埃沃柳姆公司 | Method of improving the performance of a transmission protocol using a retransmission timer |
KR20040100331A (en) * | 2003-05-22 | 2004-12-02 | 엘지전자 주식회사 | Method for transmitting a delayed ack |
EP1639760A1 (en) * | 2003-07-01 | 2006-03-29 | Telefonaktiebolaget LM Ericsson (publ) | Method for setting the retransmission timeout period in a packet switched communication network |
CN1788464A (en) * | 2003-07-01 | 2006-06-14 | 艾利森电话股份有限公司 | Method for setting the retransmission timeout period in a packet switched communication network |
US20050165948A1 (en) * | 2004-01-08 | 2005-07-28 | Hicham Hatime | Systems and methods for improving network performance |
US20080095193A1 (en) * | 2006-10-19 | 2008-04-24 | Christopher William Gaedke | Method and Apparatus for Dynamically Adjusting the Number of Packets in a Packet Train to Avoid Timeouts |
CN101677264A (en) * | 2008-09-17 | 2010-03-24 | 艾威梯科技(北京)有限公司 | Method of transmitting acknowledge character (ACK) |
US20110228714A1 (en) * | 2010-03-02 | 2011-09-22 | Balash Akbari | Method and system for retransmission in asm |
CN101860423A (en) * | 2010-06-07 | 2010-10-13 | 华为技术有限公司 | Method and device for retransmission of protocol packet transmission |
KR101051712B1 (en) * | 2011-02-11 | 2011-07-26 | 삼성탈레스 주식회사 | Method for data transmission |
US20130019025A1 (en) * | 2011-07-15 | 2013-01-17 | Damaka, Inc. | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability |
CN104170517A (en) * | 2012-03-19 | 2014-11-26 | 苹果公司 | Apparatus and methods for mitigating TCP protocol-induced back-offs in communication network |
WO2014066359A1 (en) * | 2012-10-22 | 2014-05-01 | Texas State University-San Marcos | Optimization of retransmission timeout boundary |
JP2015198423A (en) * | 2014-04-03 | 2015-11-09 | 三菱電機株式会社 | Communication terminal and packet communication method |
KR20150134000A (en) * | 2014-05-21 | 2015-12-01 | 삼성에스디에스 주식회사 | Apparatus and method for peer-to-peer based data trasnfer |
JP2016225879A (en) * | 2015-06-01 | 2016-12-28 | 沖電気工業株式会社 | Communication device, communication method, communication program and communication system |
WO2017148084A1 (en) * | 2016-03-04 | 2017-09-08 | 中兴通讯股份有限公司 | Control method and apparatus for data transmission rate |
Non-Patent Citations (3)
Title |
---|
EDUARDO GONZALEZ; STAN MCCLELLAN; WUXU PENG: "RTOmin as a balancing parameter between fast retransmissions and timeouts within stream control transmission protocol (SCTP)", THE 2014 2ND INTERNATIONAL CONFERENCE ON SYSTEMS AND INFORMATICS (ICSAI 2014), 15 January 2015 (2015-01-15) * |
游海峰;何泾沙;张伟;: "基于TCP重传计时器的算法分析", 电脑知识与技术(学术交流), no. 01, 28 January 2007 (2007-01-28) * |
霍道安: "集群存储网络吞吐量塌陷行为研究", 中国优秀硕士论文电子期刊网, 15 July 2013 (2013-07-15) * |
Also Published As
Publication number | Publication date |
---|---|
US20200162394A1 (en) | 2020-05-21 |
CN111193577B (en) | 2024-06-25 |
US10841231B2 (en) | 2020-11-17 |
EP3654563A1 (en) | 2020-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112165355B (en) | Satellite network-oriented UDP-based reliable data transmission method | |
CN111193577B (en) | Network system communication method and communication device using transmission timeout | |
US7607062B2 (en) | System for fast recovery from losses for reliable data communication protocols | |
US7672241B2 (en) | Link-aware transmission control protocol | |
US9185045B1 (en) | Transport protocol for interactive real-time media | |
US7870259B2 (en) | Method and transmitter for an efficient packet data transfer in a transmission protocol with repeat requests | |
EP1771742B1 (en) | High performance tcp for systems with infrequent ack | |
JP4354406B2 (en) | Data unit transmitter and control method of the transmitter | |
US20160323062A1 (en) | Packet recovery in interactive real-time media protocol | |
ZA200104367B (en) | Automatic repeat request protocol. | |
CN102404187A (en) | Congestion control method and system as well as network equipment | |
EP1787419A1 (en) | Signalling a state of a transmission link via a transport control protocol | |
AU751285B2 (en) | Method and system for data communication | |
EP1798913A2 (en) | Transport control method in wireless communication system | |
WO2014194797A2 (en) | Transmission control protocol(tcp)connection control parameter in-band signaling | |
CN109560897B (en) | TCP retransmission method and device | |
CN112383622A (en) | Reliable transport protocol and hardware architecture for data center networking | |
WO2015074279A1 (en) | Network encoding and transmission method based on udp protocol | |
JP4485684B2 (en) | Method and apparatus for transmitting data packet in communication system | |
EP3939191B1 (en) | Device and method for delivering acknowledgment in network transport protocols | |
WO2015036894A1 (en) | Efficient transfer of tcp traffic over wlan | |
KR100913897B1 (en) | Method for controlling congestion of TCP for reducing the number of retransmission timeout | |
EP1191764A1 (en) | A method of controlling the time-out in a wireless data TCP transmission | |
CN106100797B (en) | A kind of method for transmitting deep space file based on the asynchronous acceleration re-transmission policy of LTP | |
EP3389206B1 (en) | Multipath error correction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |