End node pacing for QOS and bandwidth management
AssigneeNortel Networks Limited
InventorPhil Edholm
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
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.
Dependencies are inferred from the claim text.