IP Library Granted Patent US 7,907,613
Granted Patent B1
US 7,907,613 · App. 10/142,192 · Granted Mar 15, 2011

Method and apparatus for measuring RTT in a cumulative acknowledgment transmission protocol

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,907,613
App. No.
10/142,192
Granted
Mar 15, 2011
Kind
B1
Abstract

Round-trip time estimates may be calculated from an acknowledgement of an original packet transmission or from an acknowledgment of a retransmission without ambiguity by using different segment sizes for the same packet during transmission and retransmission. By using different segment sizes, the retransmitted segment will be acknowledged with a different acknowledgement number. In one embodiment, a TCP sender uses segment sizes that are slightly smaller than the maximum segment size for the initial transmission (e.g. MSS-4 bytes), and uses maximally sized segments during retransmission. When one of the two transmissions is explicitly acknowledged, the TCP sender can then use the different byte sequence acknowledgement numbers to discern which transmission is being acknowledged and correctly measure the round-trip time. This also allows the TCP sender to initiate the NewReno fast recovery algorithm only upon receipt of a retransmission acknowledgment. This is especially useful, for example, during periods of rapidly increasing delays caused by deteriorating network conditions or increased congestion.

Claims (41)

1. A method of transmitting a byte-stream of data over a network using an acknowledgment process to verify transmission of bytes of data in the byte-stream over the network, the method comprising the steps of:

transmitting, by a transmitting device on the network, a first packet having a first number of bytes of data in the byte-stream so that the first packet has a first packet size, the transmitting device utilizing the acknowledgment process to verify transmission of the first number of bytes of data in the byte-stream over the network by requiring acknowledgment of receipt of the first packet by a receiving device on the network;

failing to receive acknowledgment of receipt of the first packet from the receiving device prior to expiration of a retransmit timer;

retransmitting, by the transmitting device on the network, at least some of the bytes of data in the byte-stream from the first packet, but not exactly the same number of bytes in the byte-stream from the first packet, as a second packet, the second packet having a second packet size different from the first packet size;

receiving a first acknowledgment of receipt from the receiving device, the first acknowledgement of receipt including a first byte sequence number indicating to the transmitting network device that the receiving device has received the first number of bytes of data included in the first packet;

receiving a second acknowledgment of receipt from the receiving device, the second acknowledgment of receipt including a second byte sequence number indicating to the transmitting network device that the receiving device has received the second number of bytes of data included in the second packet;

wherein the first byte sequence number is different from the second byte sequence number to enable the transmitting device to discern whether the receiving device is acknowledging receipt of the first packet or the second packet.

2. The method of claim 1 , further comprising a step of calculating a first round-trip time based on the first acknowledgment of receipt.

3. The method of claim 2 , further comprising a step of calculating a second round-trip time based on the second acknowledgment of receipt.

4. The method of claim 1 , further comprising the steps of:

transmitting a third number of bytes of data in the byte-stream as a third packet after the step of transmitting the first packet and before the step of retransmitting the first packet as a second packet, the third packet having a third byte sequence number calculated based on the first byte sequence number and the third number of bytes; and

retransmitting the third number of bytes of data in the byte stream as a fourth packet upon receipt of an acknowledgment of the second packet, the fourth packet having a fourth byte sequence number calculated based on the second byte sequence number and the third number of bytes.

5. The method of claim 1 , wherein the first packet size is smaller than the second packet size.

6. The method of claim 1 , wherein the first packet size is equal to a maximum allowable packet size minus a small quantity, and wherein the second packet size is equal to a maximum allowable packet size.

7. A network device, comprising:

control logic configured to:

cause the network device to transmit a first packet having a first number of bytes of data in the byte-stream so that the first packet has a first packet size, the network device utilizing an acknowledgment process to verify transmission of the first number of bytes of data in the byte-stream over the network by requiring acknowledgment of receipt of the first packet by a receiving device on the network;

determine that retransmission of the first packet is required because of a failure to receive acknowledgment of receipt of the first packet;

cause the network device to retransmit at least some of the bytes of data in the byte-stream from the first packet, but not exactly the same number of bytes in the byte-stream from the first packet, as a second packet, the second packet having a second packet size different from the first packet size;

receive a first acknowledgment of receipt from the receiving device, the first acknowledgement of receipt including a first byte sequence number indicating to the transmitting network device that the receiving device has received the first number of bytes of data included in the first packet; and

receive a second acknowledgment of receipt from the receiving device, the second acknowledgment of receipt including a second byte sequence number indicating to the transmitting network device that the receiving device has received the second number of bytes of data included in the second packet;

wherein the first byte sequence number is different from the second byte sequence number to enable the transmitting device to discern whether the receiving device is acknowledging receipt of the first packet or the second packet.

8. The network device of claim 7 , wherein the control logic is further configured to:

if a first packet acknowledgement of the first packet is received, cause the network device to compute a first round-trip time based on the first packet acknowledgement of the first packet; and

if a second packet acknowledgment of the second packet is received, cause the network device to compute a second round-trip time based on the second packet acknowledgement of the second packet.

9. The network device of claim 8 , wherein the control logic is further configured to update at least one network transmission parameter based at least in part on at least one of the first round-trip time and the second round-trip time.

10. The network device of claim 7 , wherein the control logic is a finite state machine.

11. The network device of claim 7 , wherein the control logic implements software.

12. A tangible computer readable medium containing instructions for controlling at least one processor to perform a method of transmitting data over a network, the method comprising the steps of:

transmitting, by a transmitting device on the network, a first packet having a first number of bytes of data in the byte-stream so that the first packet has a first packet size, the transmitting device utilizing an acknowledgment process to verify transmission of the first number of bytes of data in the byte-stream over the network by requiring acknowledgment of receipt of the first packet by a receiving device on the network;

discerning that retransmission of the first packet is required;

retransmitting, by the transmitting device on the network, at least some of the bytes of data in the byte-stream from the first packet, but not exactly the same number of bytes in the byte-stream from the first packet, as a second packet, the second packet having a second packet size different from the first packet size;

receiving a first acknowledgment of receipt from the receiving device, the first acknowledgement of receipt including a first byte sequence number indicating to the transmitting network device that the receiving device has received the first number of bytes of data included in the first packet;

receiving a second acknowledgment of receipt from the receiving device, the second acknowledgment of receipt including a second byte sequence number indicating to the transmitting network device that the receiving device has received the second number of bytes of data included in the second packet;

wherein the first byte sequence number is different from the second byte sequence number to enable the transmitting device to discern whether the receiving device is acknowledging receipt of the first packet or the second packet.

13. The tangible computer readable medium of claim 12 , wherein the step of discerning that retransmission is required comprises waiting for a first acknowledgment of the first packet and determining that retransmission is required upon expiration of a predetermined period of time.

14. The tangible computer readable medium of claim 12 , wherein the step of discerning that retransmission is required comprises determining that the first packet is likely to have not been received or that the first packet is likely to have been damaged.

15. The tangible computer readable medium of claim 12 , further comprising at least one of the step of calculating a first round-trip time based on an acknowledgment of the first packet, and calculating a second round-trip time based on an acknowledgment of the second packet.

16. The tangible computer readable medium of claim 15 , further comprising the steps of:

transmitting a third packet after the step of transmitting the first packet and before the step of retransmitting the first packet as a second packet; and

retransmitting the third packet upon receipt of an acknowledgment of the second packet.

Assignments (17)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →