# US 8,572,245 B1 · Using the TCP window size for identifying packets and debugging

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,572,245 B1
- Document ID: US8572245B1
- Status: Granted
- Kind: B1
- Application number: 13/408,834
- Filed: 2012-02-29
- Granted: 2013-10-29
- Earliest claimed: 2007-02-09
- Assignees: Juniper Networks, Inc.
- Applicants: Yogendra Singh; Sreekanth Rupavatharam
- Inventors: Yogendra Singh; Sreekanth Rupavatharam
- Web page: https://patentgrep.com/patent/US8572245B1

## CPC

- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 69/22: Parsing or analysis of headers
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A device may distribute client packets to multiple servers, transmit health check packets with a specific window size to the multiple servers, capture the client packets and the health check packets, and extract the health check packets from the captured packets. In addition, the device may capture packets, detect a connection problem, transmit a reset packet with a specific window size, and extract the reset packet from the captured packets.

## Claims

### Claim 1

A method comprising:
transmitting, by a device to a network device, a packet,
a window size field of the packet including a particular value;
storing, by the device, information relating to a plurality of packets that are:
transmitted by the device, or
received by the device,
the stored information including information, relating to the packet, that includes the particular value;
filtering, by the device and based on the particular value, the stored information to remove, from the stored information, information associated with each of the plurality of packets that does not include the particular value; and
determining, by the device and based on the particular value included in the filtered information, whether the network device is experiencing a failure.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining that the network device is experiencing the failure when a response to the packet is not received, from the network device, within a particular amount of time.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
storing, prior to transmitting the packet, information identifying the network device; and
updating the information identifying the network device to indicate that the network device is experiencing the failure when the response to the packet is not received within the particular amount of time.

### Claim 4 (depends on 1)

The method of claim 1, where the network device corresponds to a first network device and the particular value corresponds to a first particular value,
the method further comprising:
determining that a second network device is experiencing a failure; and
transmitting another packet to the second network device based on determining that the second network device is experiencing the failure,
a window size field of the other packet including a second particular value.

### Claim 5 (depends on 4)

The method of claim 4, where the stored information includes information relating to the other packet, the information relating to the other packet including the second particular value,
the method further comprising:
determining, based on the second particular value included in the stored information, a type of the failure associated with the second network device.

### Claim 6 (depends on 5)

The method of claim 5, where determining the type of the failure associated with the second network device includes:
comparing the second particular value to a plurality of error codes associated with a plurality of types of failures.

### Claim 7 (depends on 4)

The method of claim 4, where transmitting the other packet includes:
transmitting the other packet to reset a connection associated with the second network device.

### Claim 8

A device comprising:
a processor to:
transmit a packet to a network device,
a particular field of the packet including a particular value;
store information relating to a plurality of packets that are:
transmitted by the device, or
received by the device,
the stored information including information, relating to the packet, that includes the particular value;
filter, based on the particular value, the stored information to remove, from the stored information, information associated with each of the plurality of packets that does not include the particular value; and
determine, based on the particular value included in the filtered information, whether the network device is operational.

### Claim 9 (depends on 8)

The device of claim 8, where the particular field includes a window size field or an options field.

### Claim 10 (depends on 8)

The device of claim 8, where the processor is further to:
determine that the network device is not operational when a response to the packet is not received, from the network device, within a particular amount of time.

### Claim 11 (depends on 8)

The device of claim 8, where the network device corresponds to a first network device and the particular value corresponds to a first particular value, and
where the processor is further to:
determine that a second network device is experiencing a failure, and
transmit another packet to the second network device,
a field of the other packet including a second particular value.

### Claim 12 (depends on 11)

The device of claim 11, where the other packet is transmitted to reset a connection associated with the second network device.

### Claim 13 (depends on 11)

The device of claim 11, where the second particular value is based on a type of the failure associated with the second network device.

### Claim 14 (depends on 11)

The device of claim 11, where the stored information includes information relating to the other packet, the information relating to the other packet including the second particular value, and
where the processor is further to:
compare the second particular value, included in the stored information, to information identifying a plurality of types of failures, and
determine a type of the failure associated with the second network device based on comparing the second particular value to the information identifying the plurality of types of failures.

### Claim 15

A non-transitory computer readable medium storing instructions, the instructions comprising:
a plurality of instructions which, when executed by a processor, cause the processor to:
transmit a packet to a network device,
a particular field of the packet including a particular value;
store information relating to a plurality of packets that are:
transmitted by the device, or
received by the device,
the stored information including information, relating to the packet, that includes the particular value;
filter, based on the particular value, the stored information to remove, from the stored information, information associated with each of the plurality of packets that does not include the particular value; and
identify, based on the particular value included in the filtered information, a failure associated the network device.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, the instructions further comprising:
one or more instructions to determine that the network device is experiencing the failure when a response to the packet is not received, from the network device, within a particular amount of time.

### Claim 17 (depends on 16)

The non-transitory computer readable medium of claim 16, the instructions further comprising:
one or more instructions to store, prior to transmitting the packet, information identifying each of a plurality of network devices that include the network device; and
one or more instructions to update the information identifying the network device to indicate that the network device is experiencing the failure when the response to the packet is not received within the particular amount of time.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, the instructions further comprising:
one or more instructions to determine that the network device is experiencing the failure,
the packet being transmitted based on determining that the network device is experiencing the failure.

### Claim 19 (depends on 18)

The non-transitory computer readable medium of claim 18, the instructions further comprising:
one or more instructions to compare the particular value, included in the filtered information, to information identifying a plurality of types of failures; and
one or more instructions to determine a type of the failure associated with the second network device based on comparing the particular value to the information identifying the plurality of types of failures.

### Claim 20 (depends on 18)

The non-transitory computer readable medium of claim 18, where the particular field includes a window size field or an options field, and
where the particular value is based on a type of the failure associated with the network device.
