IP Library Granted Patent US 11,902,124
Granted Patent B2
US 11,902,124 · App. 18/058,091 · Granted Feb 13, 2024

Round trip time (RTT) measurement based upon sequence number

Inventors: Mohammadreza Attar (Cambridge, MA); Navindra Yadav (Cupertino, CA); Abhishek Ranjan Singh (Pleasanton, CA); Vimalkumar Jeyakumar (Los Altos, CA); Shashidhar Gandham (Fremont, CA); Roberto Fernando Spadaro (Milpitas, CA)
Assignee: Cisco Technology, Inc.
H04L43/045G06F3/0482G06F3/04842G06F3/04847G06F9/45558G06F16/122G06F16/137G06F16/162G06F16/17G06F16/173G06F16/174G06F16/1744G06F16/1748G06F16/235G06F16/2322G06F16/2365G06F16/248G06F16/24578G06F16/285G06F16/288G06F16/29G06F16/9535G06F21/53G06F21/552G06F21/556G06F21/566G06N20/00G06N99/00G06T11/206H04J3/0661H04J3/14H04L1/242H04L7/10H04L9/0866H04L9/3239H04L9/3242H04L41/046H04L41/0668H04L41/0803H04L41/0806H04L41/0816H04L41/0893H04L41/12H04L41/16H04L41/22H04L43/02H04L43/026H04L43/04H04L43/062H04L43/08H04L43/0805H04L43/0811H04L43/0829H04L43/0841H04L43/0858H04L43/0864H04L43/0876H04L43/0882H04L43/0888H04L43/10H04L43/106H04L43/12H04L43/16H04L45/306H04L45/38H04L45/46H04L45/507H04L45/66H04L45/74H04L47/11H04L47/20H04L47/2441H04L47/2483H04L47/28H04L47/31H04L47/32H04L61/5007H04L63/0227H04L63/0263H04L63/06H04L63/0876H04L63/145H04L63/1408H04L63/1416H04L63/1425H04L63/1433H04L63/1441H04L63/1458H04L63/1466H04L63/16H04L63/20H04L67/01H04L67/1001H04L67/12H04L67/51H04L67/75H04L69/16H04L69/22H04W72/54H04W84/18G06F2009/4557G06F2009/45587G06F2009/45591G06F2009/45595G06F2221/033G06F2221/2101G06F2221/2105G06F2221/2111G06F2221/2115G06F2221/2145H04L67/535
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 11,902,124
App. No.
18/058,091
Filed
Nov 22, 2022
Granted
Feb 13, 2024
Kind
B2
Examiner
KIM, HARRY H
Art Unit
2411
USPC
370/253
Abstract

Systems, methods, and computer-readable media are provided for determining a packet's round trip time (RTT) in a network. A system can receive information of a packet sent by a component of the network and further determine an expected acknowledgement (ACK) sequence number associated with the packet based upon received information of the packet. The system can receive information of a subsequent packet received by the component and determine an ACK sequence number and a receiving time of the subsequent packet. In response to determining that the ACK sequence number of the subsequent TCP packet matches the expected ACK sequence number, the system can determine a round trip time (RTT) of the packet based upon the received information of the packet and the received information of the subsequent packet.

Claims (67)

1. A method comprising:

transmitting a packet from a device to a network, wherein a component in the network determines an expected acknowledgement (ACK) sequence number associated with the packet; and

receiving a different packet at the device over the network, wherein the component in the network:

determines an ACK sequence number of the different packet received by the device;

determines that the ACK sequence number of the different packet does not match the expected ACK sequence number; and

ignores the different packet when the ACK sequence number of the different packet does not match the expected ACK sequence number.

2. The method of claim 1 , wherein the component in the network further generates a warning when the ACK sequence number of the different packet does not match the expected ACK sequence number, the warning being separate from the packet and the different packet.

3. The method of claim 1 , further comprising:

transmitting an additional packet from the device to the network, wherein the component in the network further:

determines an additional expected ACK sequence number associated with the additional packet;

determines that an additional ACK sequence number of a different additional packet matches the additional expected ACK sequence number associated with the additional packet; and

determines a round trip time (RTT) of the additional packet based on first information of the additional packet and second information of the different packet.

4. The method of claim 3 , wherein the component in the network further:

receives third information corresponding to a transmission control protocol (TCP) handshake performed within a specific time period and associated with a TCP connection; and

based on the third information corresponding to the TCP handshake, determines a number of at least one of re-transmission packets and new packets transmitted during the specific time period.

5. The method of claim 1 , wherein the expected ACK sequence number is determined based on a third ACK sequence number of the packet and a size of the packet.

6. The method of claim 1 , wherein the component in the network further:

determines a sending time, a packet sequence number and a packet size of the packet based on packet information sensed by at least one sensor of a plurality of sensors in the network, the packet information corresponding to the packet.

7. The method of claim 6 , wherein the component in the network further:

determines a receive time of a subsequent packet received by the device; and

determines a round trip time (RTT) of the packet based on the sending time of the packet and the receive time of the subsequent packet.

8. The method of claim 1 , further comprising:

transmitting from the device to the network a following packet based on first packet information of the following packet, wherein the component in the network:

determines a respective ACK sequence number of the following packet based on the first packet information of the following packet; and

in response to a determination that the respective ACK sequence number of the following packet matches a second expected ACK sequence number, determines a round trip time (RTT) of the packet based on second packet information of the packet and the first packet information of the following packet.

9. The method of claim 1 , wherein the component in the network further:

determines a congestion level of the network based at least on a round trip time (RTT) of the packet.

10. The method of claim 1 , wherein the component in the network further:

determines a number of non-duplicative packets; and

determines a packet loss rate of the network during a time period based at least on the number of non-duplicative packets.

11. A system comprising:

one or more processors; and

a computer-readable storage medium storing instructions which, when executed by the one or more processors, cause the system to:

transmit a packet to a network, wherein a component in the network determines an expected acknowledgement (ACK) sequence number associated with the packet; and

receive a different packet over the network, wherein the component in the network:

determines an ACK sequence number of the different packet received by the system;

determines that the ACK sequence number of the different packet does not match the expected ACK sequence number; and

ignores the different packet when the ACK sequence number of the different packet does not match the expected ACK sequence number.

12. The system of claim 11 , wherein the component in the network further:

selects a range of packet sequence numbers;

determines a packet sequence number of the packet based on packet information of the packet; and

determines that the packet sequence number of the packet is within the range of packet sequence numbers.

13. The system of claim 11 , wherein the component in the network further:

generates a warning when the ACK sequence number of the different packet does not match the expected ACK sequence number, the warning being separate from the packet and the different packet.

14. The system of claim 11 , wherein the instructions, when executed by the one or more processors, cause the system to:

transmit an additional packet to the network, wherein the component in the network further:

determines an additional expected ACK sequence number associated with the additional packet;

determines that an additional ACK sequence number of a different additional packet matches the additional expected ACK sequence number associated with the additional packet; and

determines a round trip time (RTT) of the additional packet based on first information of the additional packet and second information of the different packet.

15. The system of claim 14 , wherein the component in the network further:

receives third information corresponding to a transmission control protocol (TCP) handshake performed within a specific time period and associated with a TCP connection; and

based on the third information corresponding to the TCP handshake, determines a number of at least one of re-transmission packets and new packets transmitted during the specific time period.

16. The system of claim 11 , wherein the expected ACK sequence number is determined based on an additional ACK sequence number of the packet and a size of the packet.

17. The system of claim 11 , wherein the component in the network further:

determines a sending time, a packet sequence number and a packet size of the packet based on packet information sensed by at least one sensor of a plurality of sensors in the network, the packet information corresponding to the packet;

determines a receive time of a further packet received by the component; and

determines a round trip time (RTT) of the packet based on the sending time of the packet and the receive time of the further packet.

18. The system of claim 11 , wherein the component in the network further:

determines a number of non-duplicative packets; and

determines a packet loss rate of the network during a time period based at least on the number of non-duplicative packets.

19. The system of claim 11 , wherein the expected ACK sequence number is determined independent of the different packet.

20. A non-transitory computer-readable medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to:

transmit a packet to a network, wherein a component in the network determines an expected acknowledgement (ACK) sequence number associated with the packet; and

receive a different packet over the network, wherein the component in the network:

determines an ACK sequence number of the different packet received by the device;

determines that the ACK sequence number of the different packet does not match the expected ACK sequence number; and

ignores the different packet when the ACK sequence number of the different packet does not match the expected ACK sequence number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2022
From: ATTAR, MOHAMMADREZA ALIZADEH; YADAV, NAVINDRA; SINGH, ABHISHEK RANJAN; JEYAKUMAR, VIMALKUMAR; GANDHAM, SHASHIDHAR; SPADARO, ROBERTO FERNANDO
To: CISCO TECHNOLOGY, INC.
Reel/Frame 061857/0157 →
Continuity (5)
Continuation 17238193 · Apr 22, 2021
Continuation 16173400 · Oct 29, 2018
Continuation 15170837 · Jun 1, 2016
Provisional Application 62171899 · Jun 5, 2015
Related Publication 20230079606A1 · Mar 16, 2023