End node pacing for QOS and bandwidth management
First Claim
Patent Images
1. A method for pacing packets of data being transmitted through a network comprising:
- negotiating a bandwidth;
determining a transmission rate of packets corresponding to the negotiated bandwidth;
scheduling packet transmissions and adjusting a latency between packets to conform to the negotiated bandwidth;
interfacing a network interface card with a driver, the network to receive data from the network interface card;
communicating the driver with a network device interface standard protocol (NDIS), a protocol stack residing on a NDIS layer; and
generating a socket to transmit data to the NDIS layer, the socket allowing use of various applications, wherein a control application schedules the packet transmissions and adjust the latency between packets by releasing pointers to the packets to the driver in a manner that the transmission rates of the packets corresponds to the negotiated bandwidth.
4 Assignments
0 Petitions
Accused Products
Abstract
A system of pacing data between a network and an end node is described. The system determines a threshold bandwidth based on the receiving capabilities of a client device. A control circuit monitors the flow of data and adjusts latencies between packets of data to stay within the threshold bandwidth. By maintaining the flow of data within the threshold bandwidth, the need for flow control signals and large buffers is minimized.
230 Citations
20 Claims
-
1. A method for pacing packets of data being transmitted through a network comprising:
-
negotiating a bandwidth;
determining a transmission rate of packets corresponding to the negotiated bandwidth;
scheduling packet transmissions and adjusting a latency between packets to conform to the negotiated bandwidth;
interfacing a network interface card with a driver, the network to receive data from the network interface card;
communicating the driver with a network device interface standard protocol (NDIS), a protocol stack residing on a NDIS layer; and
generating a socket to transmit data to the NDIS layer, the socket allowing use of various applications, wherein a control application schedules the packet transmissions and adjust the latency between packets by releasing pointers to the packets to the driver in a manner that the transmission rates of the packets corresponds to the negotiated bandwidth. - View Dependent Claims (2, 3, 4, 5, 6)
monitoring recent transmissions to maintain an average data transfer rate within predetermined boundaries over a preset period of time.
-
-
4. The method of claim 1 wherein the negotiating is for inbound packet transmissions between a client and a server.
-
5. The method of claim 1 wherein the negotiating is for outbound packet transmissions between a client and a server.
-
6. The method of claim 1 wherein the socket is a Microsoft win-sock.
-
7. An apparatus to pace packets of data being transmitted through a network comprising:
-
a switch to control a flow of packet data through a switch;
a control application to adjust the latency of periods between packets to maintain an approximate rate of data flow through the switch, wherein said control application adjusts the latency period between packets by releasing pointers to the packets;
an interface card interfaced with a driver, the network to receive data from the network interface card;
a network device interface standard protocol (NDIS) to communicate with the driver, a protocol stack residing on a NDIS layer; and
a socket to transmit data to the NDIS layer, the socket allowing use of various applications. - View Dependent Claims (8, 9, 10, 11, 12)
a multiplexer to couple a plurality of clients to the switch, the control application negotiating a bandwidth with each client of the plurality of clients and adjusting the latency of periods between packets to maintain a data flow within the negotiated bandwidth.
-
-
10. The apparatus of claim 7 wherein the control circuit is directed by software in a logical network driver at a NDIS level.
-
11. The apparatus of claim 10 wherein the control circuit stores packets for transfer in a queue, the control application confirms that a negotiated bandwidth will not be exceeded before releasing the pointer to a driver.
-
12. The apparatus of claim 7 wherein the socket is a Microsoft win-sock.
-
13. A computer program to pace packetized data transmitted between a client and a server, the computer program comprising:
-
a first code section to negotiate a bandwidth in one direction of data flow between the server and the client;
a second code section to schedule packet transmissions and adjust a latency between packets to conform to the negotiated bandwidth, wherein said second code section schedules the packet transmission and adjusts the latency between packets by systematically releasing pointers to the packets;
a third code section to interface a network interface card with a driver;
a fourth code section to communicate the driver with a network device interface standard protocol (NDIS), a protocol stack residing on a NDIS layer; and
a fifth code section to generate a socket to transmit data to the NDIS layer, the socket allowing use of various applications. - View Dependent Claims (14, 15, 16, 17)
a sixth code section to monitor packet size, information generated by the third code section processed by the second code section to adjust the latency between packets.
-
-
15. The computer program of claim 13 further comprising:
a sixth code section to monitor recent transmissions and to maintain an average data transfer rate within predetermined boundaries over a preset period of time.
-
16. The computer program of claim 15 wherein the first code section negotiates a bandwidth in a second direction.
-
17. The computer program of claim 13 wherein the socket is a Microsoft win-sock.
-
18. A system for pacing packets of data being transmitted through a network comprising:
-
a means for negotiating a bandwidth;
a means for determining a transmission rate of packets corresponding to the negotiated bandwidth;
a means for scheduling packet transmissions and adjusting a latency between packets to conform to the negotiated bandwidth, wherein said means for scheduling packet transmissions of packets and adjusting the latency between packets comprises a means for systematically releasing pointers to said packets;
a means for interfacing a network interface card with a driver, the network to receive data from the network interface card;
a means for communicating the driver with a network device interface standard protocol (NDIS), a protocol stack residing on a NDIS layer; and
a means for generating a socket to transmit data to the NDIS layer, the socket allowing use of various applications. - View Dependent Claims (19, 20)
-
Specification