A method of sorting packets for transmission over a communication network. The packets are sorted into groups in accordance with predetermined criteria, wherein the number of groups is equal to at least three times the square root of a fraction whose numerator is the maximum transmission rate and whose denominator is the minimum transmission rate. Each group is assigned a first departure time in accordance with the predetermined criteria. Each packet of each group is assigned a second departure time. Wherein the number of the departure time is equal to the square root of a fraction whose numerator is the maximum rate and whose denominator is the minimum transmission rate. Each packet is transmitted over the communication network in accordance with the second departure time.
|
0. 2. A method comprising:
a network node assigning a departure parameter to a first packet, wherein the departure parameter includes a first value that corresponds to a first set of queues and a second value that corresponds to a second set of queues;
the network node selecting one of the first set of queues and the second set of queues to store the first packet responsive to the departure parameter;
the network node storing the first packet into a queue within the selected one of the first set of queues and the second set of queues; and
responsive to storing the first packet in one of the first set of queues, moving the first packet from the first set of queues to the second set of queues prior to transmitting the packet onto a communication network.
1. A method of sorting packets for transmission over a communication network including the steps of:
(a) sorting the packets into groups in accordance with predetermined criteria, wherein the number of groups is equal to at least three times the square root of a fraction whose numerator is the maximum transmission rate and whose denominator is the minimum transmission rate;
(b) assigning to each group a first departure time in accordance with said predetermined criteria;
(c) assigning to each packet of each group a second departure time, wherein the number of said departure time is equal to the square root of a fraction whose numerator is the maximum rate and whose denominator is the minimum transmission rate; and
(d) and transmitting each said packet over said communication network in accordance with said second departure time.
0. 29. A network node comprising a first set of queues and a second set of queues, wherein the network node is coupled to receive a first packet and is configured to assign a departure parameter to the first packet, wherein the departure parameter includes a first value relative to a first pointer to the first set of queues and a second value relative to the second set of queues, wherein the network node is configured to store the first packet into a queue within one of the first set of queues or the second set of queues, wherein the network node is configured to select the first set or the second set responsive to the departure parameter, and wherein, if the first packet is stored in one of the first set of queues, the network node is configured to move the first packet from the first set of queues to the second set of queues prior to transmitting the packet onto a communication network.
0. 18. A method comprising:
a network node assigning a departure parameter to a first packet, the departure parameter including a first value that is relative to a first pointer to a first set of queues and further including a second value that is relative to a second pointer to a second set of queues;
the network node comparing the first value to the first pointer;
the network node storing the first packet in one of the first set of queues responsive to a first result of the comparing; and
the network node storing the first packet in one of the second set of queues responsive to a second result of the comparing;
wherein packets stored in the first set of queues are subsequently moved to the second set of queues responsive to the first pointer, and wherein packets stored in the second set of queues are subsequently moved to a departure queue responsive to the second pointer.
0. 3. The method as recited in
0. 4. The method as recited in
0. 5. The method as recited in
0. 6. The method as recited in
0. 7. The method as recited in
0. 8. The method as recited in
0. 9. The method as recited in
0. 10. The method as recited in
0. 11. The method as recited in
0. 12. The method as recited in
0. 13. The method as recited in
0. 14. The method as recited in
0. 15. The method as recited in
0. 16. The method as recited in
0. 17. The method as recited in
0. 19. The method as recited in
0. 20. The method as recited in
0. 21. The method as recited in
0. 22. The method as recited in
0. 23. The method as recited in
0. 24. The method as recited in
0. 25. The method as recited in
0. 26. The method as recited in
0. 27. The method as recited in
0. 28. The method as recited in
0. 30. The network node as recited in
0. 31. The network node as recited in
0. 32. The network node as recited in
0. 33. The network node as recited in
0. 34. The network node as recited in
0. 35. The network node as recited in
0. 36. The network node as recited in
0. 37. The network node as recited in
0. 38. The network node as recited in
0. 39. The network node as recited in
0. 40. The network node as recited in
0. 41. The network node as recited in
0. 42. The network node as recited in
|
The present invention relates to the field of packet based communication systems and particularly switching technology.
Telephony, desktop video conferencing, video on demand, and other popular networking applications impose an increasing demand for bandwidth and simultaneous support of different types of service on the same communication network. To meet these demands, various high performance communication technologies are being deployed, including transmission over cable television lines using cable modems and DSL telephony services. One prominent data packet based technology is Asynchronous Transfer Mode (ATM).
ATM is designed to deal with the problem that some applications require very low latency, while other applications cannot tolerate loss of information but can support reasonable delays. Users also want a predictable and consistent level of quality when using a service. Quality of service (QoS) therefore becomes a key factor in the deployment of the next generation of networks. QoS differentiates services from one another by category. A service is represented to be a certain quality if it can consistently meet the same level of quality for a given set of measurable parameters. In traditional telephone systems, for example, QoS is measured in terms of delay to obtain dial tone, delay to set up the connection, trunk availability, quality of sound (e.g., noise, echo), and reliability of the connection. On the other hand, the Internet was designed as a “best effort” network, and did not originally intend to make any QoS commitments.
The various service categories supported by ATM are constant bit rate (CBR) service, variable bit rate (VBR) service, available bit rate (ABR) services guaranteed frame rate (GFR) service, and the residual category, unspecified bit rate (UBR) service.
In supporting these various service categories, network providers are therefore faced with a set of conflicting requirements. In response to market demand, network providers have to maximize network efficiency while meeting the specific QoS needs of the applications. The networks must also be capable of sharing bandwidth fairly among users and ensuring that any given user traffic cannot affect the QoS of other users. In addition, the networks have to support permanent connections as well as switched connections, which have very different holding time and utilization characteristics. Permanent connection are not set up and torn down frequently, but the link bandwidth may not be utilized at all times. In contrast, switched connections are set up and torn down frequently and the link bandwidth is generally highly utilized during the lifetime of the connection. Because of the diversity in the link speeds both in the accrues to the network and in the trunks, large speed mismatches need to be handled efficiently.
The inherent conflict created by the need to optimize bandwidth while ensuring different QoS can be resolved by using a combination of traffic control or traffic management techniques. A multiservice ATM network provides support for a wide variety of services with differing QoS requirements to be carried on the same switching nodes and links. Multiple services share the network resources (e.g., link bandwidth, buffer space, etc.) and may try to access a resource simultaneously. Resource contention arises because of this sharing, and buffering is required to temporarily store data packets. (In discussions of ATM technology a data packet is customarily referred to as a cell. According, this terminology will be adopted for purposes of this specification.)
The point at which this resource contention occurs is generally referred to as a “queuing” or “contention point”. Depending on the architecture, a switching node can be implemented with one or more queuing structures. A scheduling mechanism is implemented at each queuing structure to appropriately select the order in which cells should be served to meet the QoS objectives. A queuing structure and the corresponding scheduling algorithm attempt to achieve sometimes conflicting goals: (a) the flexibility to support a variety of service categories, and to easily evolve in support of new services; (b) the scalability to be simple enough to allow scaling up to large number of connections while allowing cost effective implementation; (c) the efficiency to maximize the network link utilization; (d) the guaranty of QoS to provide low jitter and end to end delay bounds for real time traffic; and (e) fairness to allow fast and fair redistribution of bandwidth that becomes dynamically available.
A variety of architectures are used to achieve the appropriate degree of traffic shaping. The architecture most pertinent to the present invention is known as direct exact sorting.
Referring to
In the direct exact sorting architecture of the prior art, all cells with the same departure time are appended to the same timing queue, so the departure time of a cell becomes the sequence number indicating the timing queue to which the cell will be appended. This timing queue technology reduces the implementation complexity of the exact sorting of the time stamps. In particular, it avoids comparison and insertion operations which are time consuming.
In order to physically implement the direct exact sorting architecture of the prior art, the number of the timing queues can not be infinite. As a result, it is necessary to reuse the timing queue sequence numbers corresponding to the time stamps. As shown in
The direct exact sorting architecture suffers from a severe deficiency in that connections vary over a wide range of rates. Consequently, the value M may be very large. In addition, the value of M will increase linearly with the range of rate increasing, which means that the complexity of the implementation of this architecture will increase linearly. So this architecture is not suitable for accommodating connection with a very wide range of rates.
One aspect of the invention is a method of sorting packets for transmission over a communication network including the steps of sorting the packets into groups in accordance with predetermined criteria, assigning to each group a first departure time in accordance with the predetermined criteria, assigning to each packet of each group a second departure time in accordance with the predetermined criteria and transmitting each packet over the communication network in accordance with the second departure time.
Another aspect of the invention is a method of sorting packets for transmission over a communication network including the steps of sorting the packets into groups in accordance with predetermined criteria, wherein the number of groups is equal to two times the square root of a fraction whose numerator is the maximum transmission rate and whose denominator is the minimum transmission rate, assigning to each group a first departure time in accordance with the predetermined criteria, assigning to each packet of each group a second departure time, wherein the number of said departure time is equal to the square root of a fraction whose numerator is the maximum transmission rate and whose denominator is the minimum transmission rate, and transmitting each packet over the communication network in accordance with said the departure time.
The present invention is made more readily understandable by reference to the accompanying drawings in which:
Referring now to
The algorithm illustrated in
The departure time consists of two values: DT_ct and DT_ft. Dt_ct refers to the departure time determined on a coarse scale and DT_ft refers to the departure time determined on a fine scale.
The HoL cell is appended to one of the coarse pitch timing queues 400 through 408 based on the value of that cell's DT_ct if DT_ct is equal to RT_ct or if DT_ct is equal to RT_ct plus 1. Otherwise, the HoL cell is appended to one of the fine pitch timing queues 410 through 415 based on the value of that HoL cell's DT_ft.
A course pitch real time pointer continuously runs. When the course pitch real time pointer points to a specific coarse pitch timing queue, then the HoL cell in that queue is appended to one of the fine pitch timing queues based on the cell's DT_ft. The number of fine pitch timing queues is two times the number of course pitch timing queues. As shown in the algorithm illustrated in FIG. 6. At step (600) the algorithm determines if DT_ct is equal to RT_ct or if DT_ct is equal to RT_ct plus 1. If these conditions are not satisfied then the cell is appended to CPTQ[DT_ct] at step (602). If these conditions, however, are satisfied then at step (604) the specific fine pitch timing queue of fine pitch queues 606 and 608 to which the HoL cell is appended is determined by (a) the value of DT_ft of the cell and (b) whether DT_ft is odd or even.
In a first preferred embodiment of the invention, the fine pitch real time pointer would be counting K times faster than the coarse pitch real time pointer. By maintaining that speed the the fine pitch real time pointer would never be waiting for cells to be transferred from the coarse pitch timing queues. In addition, while one half of the fine pitch timing queue is being served, the other half is appended with cells from the coarse pitch timing queue. These newly appended cells do not fall behind the fine pitch real time pointer.
The effective number of queues for sorting purposes are the number of coarse pitch timing queues, K, times one-half the number of fine pitch timing queues, which is also K. According the effective number of timing queues is K*K. In order for this first preferred embodiment to function correct:
K*K≧rate_max/rate_min. or
K2≧rate_max/rate_min or
The total amount of timing queues must therefore be at least 3 K or
This result compares favorably with the prior art where the number of timing queues is rate_max/rate_min.
Although the present invention has been described in terms of various embodiments, it is not intended that the invention be limited to these embodiments. Modification within the spirit of the invention will be apparent to those skilled in the art. For example in another embodiment, the VC Queues Stage 300 can be eliminated at the expense of increased timing queues. In this embodiment, an incoming cell is assigned a DT equal to DT_ct, DT_ft based on the GCRA algorithm and appended to the appropriate CPTQ or FPTQ. The DT calculation is only triggered by the arrival of a cell.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5231633, | Jul 11 1990 | Motorola, Inc | Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets |
5499238, | Nov 06 1993 | Electronics and Telecommunications Research Institute; Korea Telecommunication Authroity | Asynchronous transfer mode (ATM) multiplexing process device and method of the broadband integrated service digital network subscriber access apparatus |
6104700, | Aug 29 1997 | ARISTA NETWORKS, INC | Policy based quality of service |
6167030, | Mar 20 1997 | Nokia Telecommunications, Oy | Buffer-based traffic measurement system and method for nominal bit rate (NBR) service |
6421342, | Jul 02 1998 | PARITY NETWORKS LLC | Packet forwarding apparatus and method using pipelined node address processing |
6507592, | Jul 08 1999 | Cisco Cable Products and Solutions A/S (AV); COCOM A S | Apparatus and a method for two-way data communication |
6563837, | Feb 10 1998 | Extreme Networks, Inc | Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size |
6678277, | Nov 09 1999 | Hewlett Packard Enterprise Development LP | Efficient means to provide back pressure without head of line blocking in a virtual output queued forwarding system |
6687246, | Aug 31 1999 | Intel Corporation | Scalable switching fabric |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 11 2000 | UZUN, NECDET | New Jersey Institute of Technology | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024718 | /0075 | |
May 11 2006 | New Jersey Institute of Technology | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 23 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 18 2015 | REM: Maintenance Fee Reminder Mailed. |
May 11 2016 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 08 2014 | 4 years fee payment window open |
Aug 08 2014 | 6 months grace period start (w surcharge) |
Feb 08 2015 | patent expiry (for year 4) |
Feb 08 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 08 2018 | 8 years fee payment window open |
Aug 08 2018 | 6 months grace period start (w surcharge) |
Feb 08 2019 | patent expiry (for year 8) |
Feb 08 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 08 2022 | 12 years fee payment window open |
Aug 08 2022 | 6 months grace period start (w surcharge) |
Feb 08 2023 | patent expiry (for year 12) |
Feb 08 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |