WO0103400A2

Real-time traffic shaper with keep-alive property for best-effort traffic

Abstract

An advanced traffic shaper is provided for shaping real-time traffic in an IP-based network while simultaneously providing keep-alive bandwidth for best-effort traffic. The traffic shaper comprises a packet classifier coupled to receive an incoming packet from the network and to classify the incoming packet as one of a real-time packet and a best-effort packet; a packet discarding block coupled to perform traffic shaping of the incoming packet from the packet classifier and discard the incoming packet in accordance with traffic shaping parameters; connection queues coupled to temporary store real-time packets and best-effort packets from the packet discarding block, respectively; and a packet scheduling block coupled to send the real-time and best-effort packets from the connection queues to an outgoing device in accordance with the traffic shaping parameters.

WO0103400A2, drawing sheet 1
Sheet 1 of 13

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

1 claim: 0 independent, 1 dependent

  1. 1
    CLAIMS What is claimed is:1. A traffic shaper for shaping traffic in a packet network, comprising: a packet classifier coupled to receive an incoming packet from said packet network and to classify the incoming packet as one of a real-time packet and a best-effort packet;a packet discarding block coupled to perform traffic shaping of the incoming packet from the packet classifier and discard the incoming packet in accordance with traffic shaping parameters;connection queues coupled to temporary store real-time packets and best-effort packets from the packet discarding block, respectively;and a packet scheduling block coupled to send the real-time and best-effort packets from the connection queues to an outgoing device in accordance with said traffic shaping parameters. 2. The traffic shaper as claimed in claim 1 , wherein said connection queues includes a real-time queue for storing the real-time packets and a best-effort queue for storing the best- effort packets. 3. The traffic shaper as claimed in claim 2, wherein said packet discarding block includes packet counters used to balance real-time packet discards in situations where there is concurrency when both the real-time and best-effort queues are active. 4. The traffic shaper as claimed in claim 3, wherein said packet discarding block is executed to discard an incoming packet by: determining whether the real-time and best-effort queues are empty;when the real-time and best-effort queues are empty, resetting the counters and a scheduled transmission time of the next incoming packet;determining whether a real-time latency is greater than a maximum latency value of the real-time queue;when the real-time latency is greater than the maximum latency value of the real-time queue, discarding the real-time packet input from the packet classifier;determining whether a total latency is greater than a maximum latency value of both the real-time and best-effort queues;when the total latency is greater than the maximum latency value of both the real-time and best-effort queues, adding a best-effort packet to a tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue;determining whether a length of the real-time queue is greater than a maximum queue length of the real-time queue;when the length of the real-time queue is greater than a maximum queue length of the real-time queue, discarding the real-time packet input from the packet classifier;determining whether a length of the best-effort queue is greater than a maximum queue length of the best-effort queue;when the length of the best-effort queue is greater than a maximum queue length of the best-effort queue, adding a best-effort packet input from the packet classifier to the tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue;determining whether there is concurrency and time to discard a real-time packet to make room for best-effort packets;when there is concurrency and time to discard the real-time packet, discarding the real-time packet to implement the keep-alive bandwidth for best-effort packets;and placing the real-time packet that was not discarded in the real-time queue. 5. The traffic shaper as claimed in claim 3, wherein said packet scheduling block is periodically executed to schedule output of an incoming packet by: determining whether both the real-time and best-effort queues are empty;determining whether there is concurrency and time to transmit the best-effort packet from the best-effort queue;when there is concurrency and time to transmit the best-effort packet, checking whether total bandwidth constraint allows transmission of the best-effort packet from the best-effort queue head;when transmission is allowed, updating a time of next transmission and transmitting the best-effort packet to the outgoing device;determining whether the real-time queue is not empty and time for transmission of the real-time packet is permitted;when the real-time queue is not empty and time for transmission of the real-time packet is permitted, updating the transmission time and transmitting the real-time packet to the outgoing device from the real-time queue head;determining whether the best-effort queue is not empty and time for transmission of the best-effort packet is permitted;and when the best-effort queue is not empty and time for transmission of the best-effort packet is permitted, updating the transmission time and transmitting the best-effort packet to the outgoing device from the best-effort queue head. 6. The traffic shaper as claimed in claim 1 , wherein said connection queues correspond to packet buffers constructed from first-in-first-out (FIFO) memory for storing real- time packets and best-effort packets, respectively. 7. A packet network, comprising: a source terminal comprising a host and a network interface controller;a destination terminal comprising a host and a network interface controller;a bandwidth-limited link providing connection between the source terminal and the destination terminal;and at least one network interface controller of the source terminal or the destination terminal comprises a traffic shaper installed therein for shaping traffic in the packet network, said traffic shaper comprising: a packet classifier coupled to receive an incoming packet and to classify the incoming packet as one of a real-time packet and a best-effort packet;a packet discarding block coupled to perform traffic shaping of the incoming packet from the packet classifier and discard the incoming packet in accordance with traffic shaping parameters;connection queues coupled to temporary store real-time packets and best-effort packets from the packet discarding block, respectively;and a packet scheduling block coupled to send the real-time and best-effort packets from the connection queues to an outgoing device in accordance with said traffic shaping parameters. 8. The data network as claimed in claim 7, wherein said connection queues includes a real-time queue for storing the real-time packets and a best-effort queue for storing the best-effort packets. 9. The data network as claimed in claim 7, wherein said bandwidth-limited link corresponds to one of a digital services digital network (ISDN) link and a modem link with low- bandwidth for providing connection between the source terminal and the destination terminal. 25 placing the real-time packet that was not discarded in the real-time queue. 13. The data network as claimed in claim 8, wherein said packet scheduling block is periodically executed to schedule output of an incoming packet by: determining whether both the real-time and best-effort queues are empty;determining whether there is concurrency and time to transmit the best-effort packet from the best-effort queue;when there is concurrency and time to transmit the best-effort packet, checking whether total bandwidth constraint allows transmission of the best-effort packet from the best-effort queue head;when transmission is allowed, updating a time of next transmission and transmitting the best-effort packet to the outgoing device;determining whether the real-time queue is not empty and time for transmission of the real-time packet is permitted;when the real-time queue is not empty and time for transmission of the real-time packet is permitted, updating the transmission time and transmitting the real-time packet to the outgoing device from the real-time queue head;determining whether the best-effort queue is not empty and time for transmission of the best-effort packet is permitted;and when the best-effort queue is not empty and time for transmission of the best-effort packet is permitted, updating the transmission time and transmitting the best-effort packet to the outgoing device from the best-effort queue head. 14. The data network as claimed in claim 7, wherein said source terminal is connected to one of an integrated services digital network (ISDN). 15. The data network as claimed in claim 7, further comprising an Internet Service Provider (ISP) and an Internet disposed between the bandwidth-limited link and the destination terminal. 16. The data network as claimed in claim 7, wherein said traffic shaper is an algorithm configured for traffic shaping and avoiding correlated loss for real-time streams while providing keep-alive bandwidth for best-effort traffic. 17. A computer usable medium having computer readable program code means embodied therein a traffic shaper algorithm for use in a source terminal for shaping traffic in a packet network, comprising: a packet classifier module configured to receive an incoming packet and to classify the incoming packet as one of a real-time packet and a best-effort packet;26 a packet discarding module configured to perform traffic shaping of the incoming packet from the packet classifier and discard the incoming packet in accordance with traffic shaping parameters;a connection queue module configured to temporary store real-time packets and best-effort packets from the packet discarding block, respectively;and a packet scheduling module configured to send the real-time and best-effort packets from the connection queues to an outgoing device in accordance with said traffic shaping parameters. 18. The computer usable medium as claimed in claim 17, wherein said connection queue module contain a real-time queue for storing the real-time packets and a best-effort queue for storing the best-effort packets. 19. The computer usable medium as claimed in claim 17, wherein said packet discarding module is configured to discard an incoming packet by: determining whether the real-time and best-effort queues are empty;when the real-time and best-effort queues are empty, resetting the counters and a scheduled transmission time of the next incoming packet;determining whether a real-time latency is greater than a maximum latency value of the real-time queue;when the real-time latency is greater than the maximum latency value of the real-time queue, discarding the real-time packet input from the packet classifier;determining whether a total latency is greater than a maximum latency value of both the real-time and best-effort queues;when the total latency is greater than the maximum latency value of both the real-time and best-effort queues, adding a best-effort packet to a tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue;determining whether a length of the real-time queue is greater than a maximum queue length of the real-time queue;when the length of the real-time queue is greater than a maximum queue length of the real-time queue, discarding the real-time packet input from the packet classifier;determining whether a length of the best-effort queue is greater than a maximum queue length of the best-effort queue;24 10. The data network as claimed in claim 7, wherein said connection queues correspond to packet buffers constructed from first-in-first-out (FIFO) memory for storing real- time packets and best-effort packets, respectively. 11. The data network as claimed in claim 8, wherein said packet discarding block includes packet counters used to balance real-time packet discards in situations where there is concurrency when both the real-time and best-effort queues are active. 12. The data network as claimed in claim 8, wherein said packet discarding block is executed to discard an incoming packet by: determining whether the real-time and best-effort queues are empty;when the real-time and best-effort queues are empty, resetting the counters and a scheduled transmission time of the next incoming packet;determining whether a real-time latency is greater than a maximum latency value of the real-time queue;when the real-time latency is greater than the maximum latency value of the real-time queue, discarding the real-time packet input from the packet classifier;determining whether a total latency is greater than a maximum latency value of both the real-time and best-effort queues;when the total latency is greater than the maximum latency value of both the real-time and best-effort queues, adding a best-effort packet to a tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue;determining whether a length of the real-time queue is greater than a maximum queue length of the real-time queue;when the length of the real-time queue is greater than a maximum queue length of the real-time queue, discarding the real-time packet input from the packet classifier;determining whether a length of the best-effort queue is greater than a maximum queue length of the best-effort queue;when the length of the best-effort queue is greater than a maximum queue length of the best-effort queue, adding a best-effort packet input from the packet classifier to the tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue;determining whether there is concurrency and time to discard a real-time packet to make room for best-effort packets;when there is concurrency and time to discard the real-time packet, discarding the real-time packet to implement the keep-alive bandwidth for best-effort packets;and when the length of the best-effort queue is greater than a maximum queue length of the best-effort queue, adding a best-effort packet input from the packet classifier to the tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue;determining whether there is concurrency and time to discard a real-time packet to make room for best-effort packets;when there is concurrency and time to discard the real-time packet, discarding the real-time packet to implement the keep-alive bandwidth for best-effort packets;and placing the real-time packet that was not discarded in the real-time queue. 20. The computer usable medium as claimed in claim 17, wherein said packet scheduling block is configured to periodically schedule output of an incoming packet by: determining whether both the real-time and best-effort queues are empty;determining whether there is concurrency and time to transmit the best-effort packet from the best-effort queue;when there is concurrency and time to transmit the best-effort packet, checking whether total bandwidth constraint allows transmission of the best-effort packet from the best-effort queue head;when transmission is allowed, updating a time of next transmission and transmitting the best-effort packet to the outgoing device;determining whether the real-time queue is not empty and time for transmission of the real-time packet is permitted;when the real-time queue is not empty and time for transmission of the real-time packet is permitted, updating the transmission time and transmitting the real- time packet to the outgoing device from the real-time queue head;determining whether the best-effort queue is not empty and time for transmission of the best-effort packet is permitted;and when the best-effort queue is not empty and time for transmission of the best-effort packet is permitted, updating the transmission time and transmitting the best- effort packet to the outgoing device from the best-effort queue head.