IP Library Granted Patent US 8,102,852
Granted Patent B2
US 8,102,852 · App. 11/639,085 · Granted Jan 24, 2012

Method and system for time-stamping data packets from a network

Assignee: Oracle America, Inc.
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 8,102,852
App. No.
11/639,085
Granted
Jan 24, 2012
Kind
B2
Abstract

A method for timestamping data packets from a network involves receiving a first data packet from the network, obtaining, from a clock, a timestamp indicating an arrival time of the first data packet, where a network interface controller (NIC) includes the clock, providing the timestamp and the first data packet to a client operatively connected to the NIC, computing a network property using the timestamp, selecting a network protocol based on the network property, and transmitting a second data packet via the NIC using the network protocol.

Claims (34)

1. A method for timestamping data packets from a network comprising:

receiving, by a network interface card (NIC), an incoming data packet from the network using a first network protocol, wherein the NIC comprises a NIC clock and a NIC processor, and wherein the incoming data packet comprises a header;

obtaining, by the NIC processor from the NIC clock, a timestamp indicating an arrival time of the incoming data packet;

storing, by the NIC processor, the timestamp in the header of the incoming data packet to obtain an updated incoming data packet;

transferring the updated incoming data packet directly to a memory accessible by a client operatively connected to the NIC;

computing, by the client, a network property using the timestamp from the updated incoming data packet;

selecting, by the client, a second network protocol based on the network property, wherein the second network protocol is selected from a plurality of network protocols and wherein the plurality of network protocols comprises the first network protocol and the second network protocol; and

transmitting, by the client via the NIC, an outgoing data packet to the network using the second network protocol.

2. The method of claim 1 , wherein the network property comprises at least one selected from a group consisting of packet arrival rate, burst length, network bandwidth, round trip time, and data loss rate.

3. The method of claim 1 , wherein the second network protocol comprises a protocol selected from a group consisting of transmission control protocol (TCP) Tahoe, TCP Reno, TCP Vegas, TCP NewReno, TCP Hybla, TCP Westwood, TCP Selective Acknowledgement Options (SACK), Hamilton TCP (HTCP), High-Speed TCP (HSTCP), Binary Increase Congestion (BIC) TCP, Cubic BIC (CUBIC) TCP, Fast Active Queue Management Scalable TCP (FAST), Scalable TCP (STCP), Smart Acknowledgement (ACK) Dropper (SAD), and User Datagram Protocol (UDP).

4. The method of claim 1 , wherein the timestamp is a time interval.

5. The method of claim 4 , wherein the time interval comprises a number of nanoseconds since arrival of an earlier data packet.

6. The method of claim 4 , further comprising:

converting the timestamp to a standard time format.

7. The method of claim 1 , wherein the updated first data packet is provided to the client in a data structure.

8. The method of claim 1 , wherein the client is an operating system kernel.

9. The method of claim 1 , wherein the client is a NIC device driver.

10. A system comprising:

a network interface controller (NIC) comprising:

a network interface configured to receive a first data packet from a network using a first network protocol, wherein the first data packet comprises a header;

a NIC clock configured to generate a timestamp indicating an arrival time of the first data packet; and

a NIC processor configured to:

obtain the timestamp from the NIC clock;

store the timestamp in the header of the first data packet to obtain an updated first data packet;

transfer the updated first data packet directly to a memory accessible by a client;

at least one node, operatively connected to the NIC, comprising:

the memory; and

the client configured to receive the updated first data packet,

wherein the at least one node is configured to transmit a second data packet to the network, via the NIC, using a second network protocol selected based on a network property, wherein the second network protocol is selected from a plurality of network protocols and wherein the plurality of network protocols comprises the first network protocol and the second network protocol, and wherein the network property is computed using the timestamp.

11. The NIC of claim 10 , wherein the timestamp is a time interval.

12. The NIC of claim 11 , wherein the time interval comprises a number of nanoseconds since arrival of an earlier data packet.

13. The NIC of claim 10 , wherein the NIC processor is configured to provide the updated first data packet to the client in a data structure.

14. The NIC of claim 10 , wherein the client is an operating system kernel.

15. The NIC of claim 10 , wherein the client is a NIC device driver.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2006
From: MARCONDES, CESAR A. C.; PERSSON, ANDERS D.; JOHNSON, DARRIN P.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018715/0913 →
Continuity (1)
Related Publication 20080144624A1 · Jun 19, 2008