System and methods for accelerating data delivery
First Claim
1. A method for reducing processor cycles required to send data over a communication link in packets having a packet size, the method comprising:
- sending a write call comprising a destination and a quantity of data greater than said packet size to a driver through a socket;
performing a zero-copy write of said quantity of data to said driver; and
generating a plurality of packets less than or equal to said packet size.
4 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide for sending data over a generic network interface in such a way that the resources used by the host CPU for packetization is minimized, allowing more packets to be sent across the network than is currently possible using existing technologies. Data is sent in a timely manner, minimizing jitter associated with real-time data delivery, especially for multimedia applications. CPU resource utilization is achieved by using a number of different techniques, such as zero-copy data movement where the data from a storage system is made available directly to the network driver without creating intermediate copies that consume CPU resources to do the copying.
104 Citations
48 Claims
-
1. A method for reducing processor cycles required to send data over a communication link in packets having a packet size, the method comprising:
-
sending a write call comprising a destination and a quantity of data greater than said packet size to a driver through a socket;
performing a zero-copy write of said quantity of data to said driver; and
generating a plurality of packets less than or equal to said packet size. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product for sending data over a communications link in packets having a packet size, the computer program product comprising:
a computer-readable medium comprising a program module, the program module including instructions for;
receiving a write call comprising a destination and a quantity of data greater than said packet size through a socket;
performing a zero-copy write of said quantity of data; and
generating a plurality of packets less than or equal to said packet size. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
35. A method for reducing buffering requirements on a network switch;
- the method comprising;
receiving a write call from an application through a socket, the write call comprising a plurality of destinations, including a first destination and a second destination, and a first quantity of data destined for the first destination, and a second quantity of data destined for the second destination;
packetizing said first quantity of data into a plurality of packets less than or equal to a packet size, each packet destined for the first destination;
generating at least one packet comprising at least a portion of the second quantity of data destined for the second destination;
transmitting a first packet destined for the first destination to the network switch; and
transmitting the at least one packet destined for the second destination to the network switch, before transmitting a second packet destined for the first destination. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42)
- the method comprising;
-
43. A computer program product for balancing load on a network switch;
- the computer program product comprising;
a computer-readable medium comprising a program module, the program module including instructions for;
receiving a write call from an application through a socket, the write call comprising a plurality of destinations, including a first destination and a second destination, and a first quantity of data destined for the first destination, and a second quantity of data destined for the second destination;
packetizing said first quantity of data into a plurality of packets less than or equal to a packet size, each packet destined for the first destination;
generating at least one packet comprising at least a portion of the second quantity of data destined for the second destination;
transmitting a first packet destined for the first destination to the network switch; and
transmitting the at least one packet destined for the second destination to the network switch, before transmitting a second packet destined for the first destination.
- the computer program product comprising;
-
44. A system for sending data across a network, the system comprising:
-
a computer running an application configured to send a write call to a driver through a socket, the write call comprising a destination and a quantity of data greater than a packet size, the application further configured to perform a zero-copy write of said quantity of data to said driver;
the driver configured to packetize said data into a plurality of packets less than or equal to said packet size; and
a downstream device adapted to receive at least one of said packets. - View Dependent Claims (45, 46, 47, 48)
-
Specification