×

Network device that determines application-level network latency by monitoring option values in a transport layer message

  • US 7,873,025 B2
  • Filed: 02/23/2006
  • Issued: 01/18/2011
  • Est. Priority Date: 02/23/2006
  • Status: Active Grant
First Claim
Patent Images

1. A data processing apparatus, comprising:

  • a network interface that is configured to be coupled between a first network node and a second network node, and in parallel with a data network for receiving one or more packet flows that are communicated between the first network node and the second network node;

    a processor coupled to the network interface;

    a clock coupled to the processor;

    latency analysis logic coupled to the processor and comprising one or more stored sequences of instructions which, when executed by the processor, cause the processor to perform;

    receiving a first data segment that has been generated by a first application hosted on an application layer protocol and communicated from a transport layer protocol of the first node, and forwarding the first data segment to the second node;

    storing a first time value of the clock in association with a first timestamp value obtained from the first data segment;

    wherein the first time value corresponds to a time when the first data segment was received by the network interface;

    receiving a second data segment that has been generated by a second application hosted on the application layer protocol of the second node and communicated from the transport layer protocol of the second node in response to receiving the first data segment by the second application hosted on the application layer protocol of the second node, and forwarding the second data segment to the first node;

    retrieving the first time value based on the first timestamp value;

    determining a second time value of the clock;

    wherein the second time value corresponds to a time when the second data segment was received by the network interface;

    determining a first latency value by computing a difference of the second time value and the first time value;

    receiving a third data segment that has been generated by the second application hosted on the application layer protocol of the second node and communicated from the transport layer protocol of the second node, and forwarding the third data segment to the first node;

    storing a third time value of the clock in association with a third timestamp value obtained from the third data segment;

    wherein the third time value corresponds to a time when the third data segment was received by the network interface;

    receiving a fourth data segment that has been generated by the first application hosted on the application layer protocol of the first node and communicated from the transport layer protocol of the first node in response to receiving the third data segment by the first application hosted on the application layer protocol of the first node;

    retrieving the third time value based on the third timestamp value;

    determining a fourth time value of the clock;

    wherein the fourth time value corresponds to a time when the fourth data segment was received by the network interface;

    determining a second latency value by computing a difference of the fourth time value and the third time value;

    determining an end-to-end latency value as;

    (first latency value+second latency value/2).

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×