IP Library Granted Patent US 11,133,980
Granted Patent B2
US 11,133,980 · App. 16/817,174 · Granted Sep 28, 2021

Detecting sources of computer network failures

Inventors: Anatole Shaw (Great Neck, NY); Anthony Roberts (San Francisco, CA); Berk D. Demir (Menlo Park, CA); Christopher Chen (Portland, OR)
Assignee: Twitter, Inc.
H04L41/0695H04L43/026H04L43/0811H04L43/10H04L43/16H04L49/25H04L49/50H04L41/0677
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,133,980
App. No.
16/817,174
Granted
Sep 28, 2021
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for detecting sources of computer network failures. One of the methods includes identifying a network flow in a computer network between a source and a destination; performing a first probe to determine whether there is end-to-end connectivity between the source and the destination; in response to determining that there is no end-to-end connectivity between the host and the destination, performing one or more additional probes including a second probe to determine whether each hop in the path of the network flow between the source and the destination is operational including requesting that the source transmit a respective first trace diagnostic packet to each hop in the path of the network flow; and determining whether at least one link of the computer network that is part of the path of the network flow has failed based on the results.

Claims (46)

1. A method comprising:

identifying a network flow of packets in a computer network between a source and a destination, wherein the network flow corresponds to a particular path in the computer network between the source and the destination, the particular path being defined in part by the source and destination identifiers and comprising a plurality of network components including one or more network devices coupled by one or more links; and

in response to a determination that there is no end-to-end connectivity between the source and the destination along the particular path, determining whether a network component of the particular path in the network flow has failed comprising:

requesting that the source transmit a respective trace diagnostic packet to each network device along the same particular path of the network flow, wherein each trace diagnostic packet is configured to follow the particular path of the network flow and has a particular value in a time-to-live field such that the trace diagnostic packet will expire at a different network device in the particular path, which causes a corresponding network device to send a time exceeded message in response to that trace diagnostic packet, and a packet identifier inserted into a field located within a first plurality of bytes of the trace diagnostic packet, and wherein the time exceeded message includes a portion of the trace diagnostic packet that includes the packet identifier inserted into the first plurality of bytes of the trace diagnostic packet; and

determining whether at least one network component that is part of the particular path of the network flow has failed based on results of the trace diagnostic packets.

2. The method of claim 1 , wherein determining whether at least one network component has failed comprises:

determining whether the source has received a time exceeded message from a particular network device;

in response to determining that the source has received the time exceeded message from a particular network device, determining that the particular network device is operational from the source along the particular path; and

in response to determining that the source has not received the time exceeded message from a particular network device, determining that the particular network device has failed from the source along the particular path.

3. The method of claim 1 , wherein the packet identifier of the trace diagnostic packet is inserted within a sequence number field of a TCP packet.

4. The method of claim 1 , wherein the packet identifier of the trace diagnostic packet is inserted within a length field of a UDP packet.

5. The method of claim 1 , wherein the time exceeded message is an internet control message protocol message that contains a collection of bits of the trace diagnostic packet that triggered the time exceeded message.

6. The method of claim 1 , wherein the time-to-live field of the trace diagnostic packet includes an integer number that is decremented at each network device along the particular path of the network flow such that the time exceeded message is sent by the network device when the integer number is decremented to zero.

7. The method of claim 1 , wherein the determination that there is no end-to-end connectivity between the source and the destination comprises:

performing a first probe to determine whether there is end-to-end connectivity between the source and the destination including requesting that the source transmit an end-to-end diagnostic packet to the destination, wherein the end-to-end diagnostic packet includes information comprising a source identifier field and a destination identifier field that include identifiers for the source and destination, respectively, that match the packets in the network flow between the source and destination such that one or more network devices in the computer network forward the end-to-end diagnostic packet on the particular path of the network flow.

8. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

identifying a network flow of packets in a computer network between a source and a destination, wherein the network flow corresponds to a particular path in the computer network between the source and the destination, the particular path being defined in part by the source and destination identifiers and comprising a plurality of network components including one or more network devices coupled by one or more links; and

in response to a determination that there is no end-to-end connectivity between the source and the destination along the particular path, determining whether a network component of the particular path in the network flow has failed comprising:

requesting that the source transmit a respective trace diagnostic packet to each network device along the same particular path of the network flow, wherein each trace diagnostic packet is configured to follow the particular path of the network flow and has a particular value in a time-to-live field such that the trace diagnostic packet will expire at a different network device in the particular path, which causes a corresponding network device to send a time exceeded message in response to that trace diagnostic packet, and a packet identifier inserted into a field located within a first plurality of bytes of the trace diagnostic packet, and wherein the time exceeded message includes a portion of the trace diagnostic packet that includes the packet identifier inserted into the first plurality of bytes of the trace diagnostic packet; and

determining whether at least one network component that is part of the particular path of the network flow has failed based on results of the trace diagnostic packets.

9. The system of claim 8 , wherein determining whether at least one network component has failed comprises:

determining whether the source has received a time exceeded message from a particular network device;

in response to determining that the source has received the time exceeded message from a particular network device, determining that the particular network device is operational from the source along the particular path; and

in response to determining that the source has not received the time exceeded message from a particular network device, determining that the particular network device has failed from the source along the particular path.

10. The system of claim 8 , wherein the packet identifier of the trace diagnostic packet is inserted within a sequence number field of TCP packet.

11. The system of claim 10 , wherein the packet identifier of the trace diagnostic packet is inserted within a length field of a UDP packet.

12. The system of claim 8 , wherein the time exceeded message is an internet control message protocol message that contains a collection of bits of the trace diagnostic packet that triggered the time exceeded message.

13. The system of claim 8 , wherein the time-to-live field of the trace diagnostic packet includes an integer number that is decremented at each network device along the particular path of the network flow such that the time exceeded message is sent by the network device when the integer number is decremented to zero.

14. The system of claim 8 , wherein the determination that there is no end-to-end connectivity between the source and the destination comprises:

performing a first probe to determine whether there is end-to-end connectivity between the source and the destination including requesting that the source transmit an end-to-end diagnostic packet to the destination, wherein the end-to-end diagnostic packet includes information comprising a source identifier field and a destination identifier field that include identifiers for the source and destination, respectively, that match the packets in the network flow between the source and destination such that one or more network devices in the computer network forward the end-to-end diagnostic packet on the particular path of the network flow.

15. One or more non-transitory computer storage media encoded with computer program instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

identifying a network flow of packets in a computer network between a source and a destination, wherein the network flow corresponds to a particular path in the computer network between the source and the destination, the particular path being defined in part by the source and destination identifiers and comprising a plurality of network components including one or more network devices coupled by one or more links; and

in response to a determination that there is no end-to-end connectivity between the source and the destination along the particular path, determining whether a network component of the particular path in the network flow has failed comprising:

requesting that the source transmit a respective trace diagnostic packet to each network device along the same particular path of the network flow, wherein each trace diagnostic packet is configured to follow the particular path of the network flow and has a particular value in a time-to-live field such that the trace diagnostic packet will expire at a different network device in the particular path, which causes a corresponding network device to send a time exceeded message in response to that trace diagnostic packet, and a packet identifier inserted into a field located within a first plurality of bytes of the trace diagnostic packet, and wherein the time exceeded message includes a portion of the trace diagnostic packet that includes the packet identifier inserted into the first plurality of bytes of the trace diagnostic packet; and

determining whether at least one network component that is part of the particular path of the network flow has failed based on results of the trace diagnostic packets.

16. The non-transitory computer storage media of claim 15 , wherein determining whether at least one network component has failed comprises:

determining whether the source has received a time exceeded message from a particular network device;

in response to determining that the source has received the time exceeded message from a particular network device, determining that the particular network device is operational from the source along the particular path; and

in response to determining that the source has not received the time exceeded message from a particular network device, determining that the particular network device has failed from the source along the particular path.

17. The non-transitory computer storage media of claim 15 , wherein the packet identifier of the trace diagnostic packet is inserted within a sequence number field of a TCP packet.

18. The non-transitory computer storage media of claim 17 , wherein the packet identifier of the trace diagnostic packet is inserted within a length field of a UDP packet.

19. The non-transitory computer storage media of claim 15 , wherein the time exceeded message is an internet control message protocol message that contains a collection of bits of the trace diagnostic packet that triggered the time exceeded message.

20. The non-transitory computer storage media of claim 15 , wherein the time-to-live field of the trace diagnostic packet includes an integer number that is decremented at each network device along the particular path of the network flow such that the time exceeded message is sent by the network device when the integer number is decremented to zero.

21. The non-transitory computer storage media of claim 15 , wherein the determination that there is no end-to-end connectivity between the source and the destination comprises:

performing a first probe to determine whether there is end-to-end connectivity between the source and the destination including requesting that the source transmit an end-to-end diagnostic packet to the destination, wherein the end-to-end diagnostic packet includes information comprising a source identifier field and a destination identifier field that include identifiers for the source and destination, respectively, that match the packets in the network flow between the source and destination such that one or more network devices in the computer network forward the end-to-end diagnostic packet on the particular path of the network flow.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2021
From: SHAW, ANATOLE; ROBERTS, ANTHONY; DEMIR, BERK D.; CHEN, CHRISTOPHER
To: TWITTER, INC.
Reel/Frame 056435/0042 →
Continuity (2)
Continuation 15809836 · Nov 10, 2017
Related Publication 20200213186A1 · Jul 2, 2020