Patent ID: 8102852

Claim:
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.