Avoiding delayed data
First Claim
1. A data processing system for selectively transmitting data onto a network, the data processing system comprising:
- an application running on a processor, the application configured to form data for transmission and cause a timestamp to be generated and associated with the data for transmission, said timestamp being dependent on one of;
a time at which said data is formed by the application; and
a time at which said application requests transmission;
a network protocol stack running on a processor, the network protocol stack configured to form the data for transmission into one or more network messages for transmission over a network connection, the one or more network messages being associated with the timestamp; and
a network interface device providing an interface between the network protocol stack and the network and comprising a delay determination unit, the delay determination unit configured to, immediately prior to the one or more network messages being transmitted onto the network by means of the network interface device, check the timestamp to determine the time elapsed from the time represented by the timestamp and, if the time elapsed is greater than a maximum period, cause the one or more network messages to be discarded.
6 Assignments
0 Petitions
Accused Products
Abstract
Roughly described, a network interface device receiving data packets from a computing device for transmission onto a network, the data packets having a certain characteristic, transmits the packet only if the sending queue has authority to send packets having that characteristic. The data packet characteristics can include transport protocol number, source and destination port numbers, source and destination IP addresses, for example. Authorizations can be programmed into the NIC by a kernel routine upon establishment of the transmit queue, based on the privilege level of the process for which the queue is being established. In this way, a user process can use an untrusted user-level protocol stack to initiate data transmission onto the network, while the NIC protects the remainder of the system or network from certain kinds of compromise.
187 Citations
20 Claims
-
1. A data processing system for selectively transmitting data onto a network, the data processing system comprising:
-
an application running on a processor, the application configured to form data for transmission and cause a timestamp to be generated and associated with the data for transmission, said timestamp being dependent on one of; a time at which said data is formed by the application; and a time at which said application requests transmission; a network protocol stack running on a processor, the network protocol stack configured to form the data for transmission into one or more network messages for transmission over a network connection, the one or more network messages being associated with the timestamp; and a network interface device providing an interface between the network protocol stack and the network and comprising a delay determination unit, the delay determination unit configured to, immediately prior to the one or more network messages being transmitted onto the network by means of the network interface device, check the timestamp to determine the time elapsed from the time represented by the timestamp and, if the time elapsed is greater than a maximum period, cause the one or more network messages to be discarded. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for selectively transmitting data onto a network from a data processing system supporting at least one application and a network interface device, the at least one application being operable to transmit data over a network by means of the network interface device, the method comprising:
-
forming data for transmission at an application; generating a timestamp and associating the timestamp with the data for transmission, said timestamp being dependent on one of; a time at which said data is formed by the application; and a time at which said application requests transmission; subsequently, forming the data for transmission into one or more network messages for transmission over the network, the one or more network messages being associated with the timestamp; and immediately prior to the one or more network messages being transmitted onto the network, checking the timestamp at the network interface device to determine the time elapsed from the time represented by the timestamp and, if the time elapsed is greater than a maximum period, causing the one or more network messages to be discarded, said network interface device providing a interface to the network.
-
-
20. A data processing system for selectively transmitting data onto a network, the data processing system comprising:
-
an application configured to form data for transmission and cause a timestamp to be generated and associated with the data for transmission; a network protocol stack configured to form the data for transmission into one or more network messages for transmission over a network connection, the one or more network messages being associated with the timestamp; a network interface device comprising a delay determination unit, the delay determination unit configured to, immediately prior to the one or more network messages being transmitted onto the network by means of the network interface device, check the timestamp to determine the time elapsed from the time represented by the timestamp and, if the time elapsed is greater than a maximum period, cause the one or more network messages to be discarded; and a control interface by means of which the application can specify the maximum period to the delay determination unit for the network connection or in respect only of the data for transmission; wherein the delay determination unit is configured to, if the time elapsed does not exceed the maximum period, allow the one or more network messages to be transmitted onto the network by means of the network interface device, and the network protocol stack is configured to, on an acknowledgement message being received from a remote endpoint of the network connection indicating that the remote endpoint has received one or more of the network messages, generating an acknowledgment timestamp so as to record when the acknowledgement message is received at the data processing system; and the control interface is further configured to, in response to a request from the application, cause the network protocol stack to provide a representation of the acknowledgment timestamp to the application.
-
Specification