System, method, and computer program product for controlling output port utilization

Information

  • Patent Grant
  • 8547843
  • Patent Number
    8,547,843
  • Date Filed
    Friday, January 20, 2006
    18 years ago
  • Date Issued
    Tuesday, October 1, 2013
    10 years ago
Abstract
A system, method and computer program product are provided. In use, a plurality of flows associated with packets destined for an output port is identified. A utilization associated with the output port is further measured. Thus, rates of a plurality of the flows destined for the output port may be individually controlled at an input port thereof, based on the utilization to ensure that the utilization remains less than 99.9% and avoid buffering more than 400 packets with a correspondingly low delay.
Description
RELATED APPLICATION(S)

The present application is related to a co-pending application filed coincidently herewith with common inventors under the title “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR IP FLOW ROUTING” Ser. No. 11/335,969, which is incorporated herein by reference in its entirety for all purposes.


BACKGROUND AND FIELD OF THE INVENTION

The present invention relates to routers, and more particularly, to routing flows of packets.


SUMMARY

A system, method and computer program product are provided. In use, a plurality of flows associated with packets destined for an output port are identified. A utilization associated with the output port is further measured. Thus, rates of a plurality of the flows destined for the output port may be individually controlled at an input port thereof, based on the utilization to ensure that the utilization remains less than 99.9% and avoid buffering more than 400 packets with a correspondingly low delay.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a network architecture, in accordance with one embodiment.



FIG. 2 shows a method for controlling the delay and utilization at an output port, in accordance with one embodiment.



FIG. 3 shows a router system for controlling the delay and utilization at an output port, in accordance with one embodiment.





DETAILED DESCRIPTION


FIG. 1 illustrates a network architecture 100, in accordance with one embodiment. As shown, a plurality of networks 102 is provided. In the context of the present network architecture 100, the networks 102 may each take any form including, but not limited to a local area network (LAN), wireless network, wide area network (WAN) such as the Internet, etc.


Coupled to the networks 102 are server computers 104 which are capable of communicating over the networks 102. Also coupled to the networks 102 and the server computers 104 is a plurality of client computers 106. Such client computers 106 may each include a desktop computer, lap-top computer, hand-held computer, mobile phone, hand-held computer, personal video recorder (PVR), a digital media [e.g. compact disc (CD), digital video disc (DVD), MP3, etc.] player, printer, and/or any other type of logic.


In order to facilitate communication among the networks 102, at least one router 108 is coupled between the networks 102. In the context of the present description, such router 108 may include any hardware and/or software capable of facilitating the communication of packets from one point in the network architecture 100 to another. More information regarding various features for enhancing such functionality will be set forth hereinafter in greater detail.



FIG. 2 shows a method 200 for controlling the delay and utilization at an output port, in accordance with one embodiment. As an option, the present method 200 may be implemented in the context of the architecture and environment of FIG. 1. Of course, however, the method 200 may be carried out in any desired environment.


As shown, a plurality of flows associated with packets destined for an output port are identified. Note operation 202. In the context of the present description, such packet may refer to any unit of information capable of being communicated in a computer network (e.g. see, for example, the networks 102 of FIG. 1, etc.). For example, in one illustrative embodiment, the packet may include an Internet Protocol (IP) packet.


Further in the context of the present description, the term flow refers to a collection of packets that relate to a common data transfer. In various optional embodiments, however, the flow may include a bit-stream of some arbitrary length and constitute a single data transfer. In such embodiments, each flow may be broken into packets for the purpose of facilitating delay reduction and error recovery.


Still yet, the output port may refer to any logic output associated with a router (e.g. see, for example, the router 108 of FIG. 1, etc.) and/or component thereof.


As shown in operation 204, a utilization associated with the output port is further measured. In the context of the present description, such utilization may refer to any unit of measurements that reflects an amount of usage of the capacity of the output port that is being utilized. Of course, such measurement may be performed in any desired manner that identifies such utilization.


In various embodiments, the utilization may be measured periodically. For example, the utilization may be measured periodically every millisecond. Of course, it should be noted that the measurement may occur in accordance with any desired timing.


Thus, in operation 206, rates of a plurality of the flows destined for the output port may be individually controlled at an input port thereof, based on the utilization to ensure that the utilization remains less than (and/or possibly equal to) 99.9% and avoid buffering more than 400 packets. In the context of the present description, such rates may each refer to any unit of data, packets, etc. utilizing the output port that is a function of time. Similar to the aforementioned output port, the input port may refer to any logical input associated with a router (e.g. see, for example, the router 108 of FIG. 1, etc.) and/or component thereof.


In one embodiment, the rates may be individually by controlled by rejecting or discarding the new and/or existing flows and/or components thereof. Of course, however, the rates may be controlled in any way that impacts utilization of the output port.


In various embodiments, some or all of the flows destined for the output port may be individually controlled. Further, such control may be independent in nature, such that the rates of the plurality of flows are individually controlled in a different manner. See Table 1 which illustrates an exemplary set of individually controlled flow rates. Further, it should be noted that the rates may be more stringently controlled, so as to ensure that the utilization remains less than 95%, 90%, 80%, or less.












TABLE 1









Output port 1
Flow rate 1



Output port 2
Flow rate 2



Output port 3
Flow rate 3



Output port 4
Flow rate 4










Of course, such table is illustrative in nature and should not be construed as limiting any manner.


Thus, in some embodiments, buffering at the output port may be reduced and/or eliminated, thereby providing a lower delay associated with packet transmission, where such lower delay “corresponds” to (e.g. results from, is a function of, and/or is associated with, etc.) such buffer reduction. For example, as mentioned previously, such buffering may amount to less than 400 packets. In still other embodiments, such buffering may require less than 1 MB of storage capacity and, in some embodiments require 250 KB or less. Even still, the buffering may be further reduced to less than 100 packets in another embodiment, less than 50 packets in another embodiment, less than 20 packets in another embodiment, less than 10 packets in another embodiment, etc.


This may be possibly beneficial particularly when transmitting streaming media (e.g. audio streaming media, video streaming media, etc.). More information regarding such optional feature will be set forth in greater detail during reference to FIG. 3.


In one exemplary embodiment, the rates may be individually controlled utilizing an input flow manager. Further, the measuring may carried out utilizing an output flow manager. Still yet, the utilization may be reported by the output flow manager to a network processing unit (NPU). In such embodiment, such NPU may include one or more processors capable of routing packets. Thus, the input flow manager may be adapted to control the rates based on input from the NPU.


In the context of the present description, the term routing refers to any communication of packets from one point in a network architecture to another, that involves the identification of a destination address by at least being capable of identifying a “longest prefix” match. In various exemplary embodiments that are not to be construed as limiting with respect to the above definition of routing, the aforementioned “longest prefix” match may require only one memory cycle, but may, in other embodiments, require 3-5 memory cycles. Further, the match may, but need not necessarily, be a complete match. Instead, it may involve just enough bytes of the address to determine a desired output port. For example, European communications may be sent to one port so there is no need to keep track of all the Europe addresses, but rather just a first part correlating to Europe, etc.


In other exemplary embodiments that are, again, not to be construed as limiting with respect to the above definition of routing, a second router function may involve determining if traffic to or from certain addresses are to be blocked and/or discarded in relation to a denial of service (DOS) function. Optionally, more than mere addresses may be used to make such decision and an associative memory may be used to accomplish the same. Of course, various other functions may be included, such as a function for prioritizing traffic so that certain types of packets receive a lower delay during the course of traffic shaping, etc.


More illustrative information will now be set forth regarding various optional architectures and features with which the foregoing technique may or may not be implemented, per the desires of the user. It should be strongly noted that the following information is set forth for illustrative purposes and should not be construed as limiting in any manner. Any of the following features may be optionally incorporated with or without the exclusion of other features described.



FIG. 3 shows a router system 300 for controlling a utilization at an output port, in accordance with one embodiment. As an option, the present system 300 may be implemented in the context of the architecture and environment of FIGS. 1-2. Of course, however, the system 300 may be carried out in any desired environment. Further, the foregoing definitions may equally apply in the present description.


As shown, the router system 300 includes an input trunk 301 and an output trunk 303. The input trunk 301 is coupled to an input transceiver 302 for receiving packets via the input trunk 301 and feeding the same to an input framer 304 for performing packet framing. In one embodiment, such packet framing may refer to the method by which packets are sent over a serial line. For example, framing options for T1 serial lines may include D4 and ESF. Further, framing options for E1 serial lines may include CRC4, no-CRC4, multiframe-CRC4, and multiframe-no-CRC4.


Further included is an input flow manager 306 coupled between the input framer 304 and a switching fabric architecture 312. In the present embodiment, the switching fabric architecture 312 may include hardware (e.g. switching integrated circuit, etc.) and/or software that switches incoming packets (e.g. moves incoming packets out via an appropriate output port, etc.) in a manner that will soon become apparent. For controlling such switching fabric architecture 312, a central processing unit 311 may be in communication therewith. Further, the input flow manager 306 may further be coupled to input flow memory 308.


Still yet, an NPU 310 may be in communication with the input flow manager 306 and/or switching fabric architecture 312 for routing incoming packets. Further included is an output flow manager 316 coupled between the switching fabric architecture 312 and an output framer 318. Similar to the input flow manager 306, the output flow manager 316 includes output flow memory 316 for performing similar functions.


Finally, the output framer 318 is coupled to an output transceiver 320 which communicates via the output trunk 303. While the various components are shown to be included in a single package associated with the router system 300, it should be noted that such components may be distributed in any desired manner.


As an option, the input flow manager 306 may function to efficiently control IP flow routing. Specifically, the input flow manager 306 may determine whether a flow associated with a received packet is new. To accomplish this, the input flow manager 306 extracts a header of the packet. In one embodiment, such header may include various fields including, but not limited to a destination address, source address, protocol, destination port, source port, and/or any other desired information.


Next, one or more of the fields are combined in the form of a hash. As an option, such hash may take the form of a 32-bit flow identifier. The input flow manager 306 then uses the hash (e.g. a lower 21 bits of the 32-bit flow identifier, etc.), and does a memory look up in a hash table stored in the input flow memory 308. Specifically, in one exemplary embodiment, a binary tree is followed using a remaining 11 bits of the 32-bit flow identifier until a pointer to a flow record is located in the input flow memory 308 that makes an exact match with the destination address, source address, protocol, destination port, and source port, etc. Such record (if it exists) constitutes a flow record for the identified flow.


If it is determined that the flow associated with the packet is new, at least a portion of the packet may be routed utilizing the NPU 310. If, on the other hand, it is determined that the flow associated with the packet is not new, at least a portion of the packet may be routed or switched utilizing the switching fabric architecture 312, which may cost at least 10 times less than the first module. More information regarding such functionality may be found in a co-pending application filed coincidently herewith with common inventors under the title “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR IP FLOW ROUTING”, which is incorporated herein by reference in its entirety for all purposes.


Further during operation, the output flow manager 316 is equipped with output flow management functionality. Specifically, the output flow manager 316 may operate in conjunction with the remaining components shown in FIG. 3 to carry out the functionality associated with the method 300 of FIG. 3.


In one exemplary implementation of the method 300 of FIG. 3, a queuing buffer size and packet delay associated with an output port may be controlled. In particular, the output frame manager 316 measures an output utilization on each of a plurality of output ports. Such output port-specific utilization may then be reported by the output frame manager 316 to the NPU 310 periodically (e.g. every millisecond, etc.).


When a new flow is identified in the manner described above, it is assigned to a particular output port. At this time, by virtue of the foregoing measurement, the utilization of such output port is known. With this knowledge, a rate may be determined for the flow that will not overload the output port beyond 99.9%.


It should be noted that there are two basic types of flows, namely those that a network controls the rate (e.g. TCP, typical file transfers, etc.), and those where a sender controls the rate (e.g. UDP, typical voice and video streaming media, etc.). For those flows that the network controls, a rate may be set that will not overload the output port.


On the other hand, for flows that the user controls the rate, lost packets may be harmful. Thus, it may be beneficial to reject new flows, if they would overload the output port. This may be done when a first packet of a flow is identified. If it is discarded, no flow record need necessarily be made, and no further packets need necessarily be accepted for that flow until there is sufficient capacity.


Thus, the input frame manager 308 may be informed by the NPU 310 of the rate and/or whether to accept the new flow. The input frame manager 308 may then manage the rates by rejecting and/or discarding new flows to ensure that a sum of the rates associated with each output port is kept under a predetermined utilization (e.g. 95%, etc.). Given this technique, a queue at the output trunk 303 may be designed to be small (e.g. 100 packets or less, etc.) and an associated delay low (e.g. 100 microseconds or less, 100 packets of 1200 bytes at 10 Gbps, etc.).


Thus, a significant improvement in both buffer expense and packet delay may optionally be achieved with the present approach. These results are facilitated by separating the foregoing functionality associated with the input frame manager 308 with respect to the NPU 310, so that flows to the NPU 310 may be governed in the foregoing manner.


While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. For example, any of the network elements may employ any of the desired functionality set forth hereinabove. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims
  • 1. A method, comprising: identifying a plurality of flows associated with internet protocol packets destined for an output port, each of the flows including a collection of packets with a common destination address, source address, protocol, destination port, and source port;measuring a utilization associated with the output port utilizing an output flow manager;forwarding, from the output flow manager, the measured utilization to a network processing unit (NPU) including at least one processor for use in routing the packets to the common destination address;receiving the measured utilization from the NPU at an input flow manager; andindividually controlling rates of each of the flows destined for the output port, at an input port thereof and utilizing the input flow manager, based on the utilization to ensure that the utilization remains less than 99.9%, ensure packet loss is not harmful, and avoid buffering more than 400 packets with a correspondingly low delay;wherein individually controlling the rates includes controlling a rate of each individual flow by only dropping a single packet from the individual flow such that the rate of the individual flow is forced to slow down by a Transmission Control Protocol (TCP) process utilized at a sending computer including the output port;wherein a decision process used to determine if the individual flow is be slowed down by dropping the single packet predicts a composite output rate for each output port in advance of any output port overload such that the TCP process has sufficient time to reduce the rate to hold the utilization below 99.9%;wherein the identifying, the measuring and the controlling are performed by hardware or software facilitating the communication of packets from one point in a network to another point in the network.
  • 2. The method of claim 1, wherein the rates of the plurality of flows destined for the output port are each individually controlled in a different manner, at the input port thereof.
  • 3. The method of claim 1, wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to ensure that the utilization remains less than 95%.
  • 4. The method of claim 1, wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to avoid use of more than 1 MB of buffer capacity.
  • 5. The method of claim 1, wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to avoid use of more than 100 KB of buffer capacity.
  • 6. The method of claim 1, wherein the packets together comprise streaming media.
  • 7. The method of claim 6, wherein the streaming media includes audio streaming media.
  • 8. The method of claim 6, wherein the streaming media includes video streaming media.
  • 9. The method of claim 1, wherein the utilization is measured periodically.
  • 10. The method of claim 9, wherein the utilization is measured periodically every 50 milliseconds.
  • 11. The method of claim 1, wherein the controlling includes rejecting a new flow.
  • 12. The method of claim 1, wherein the controlling includes discarding a new flow.
  • 13. The method of claim 1, wherein the identifying, the measuring and the controlling are performed by a router.
  • 14. The method of claim 1, wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to ensure that the utilization remains less than 90%.
  • 15. The method of claim 1, wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to ensure that the utilization remains less than 80%.
  • 16. A computer program product embodied on a non-transitory computer readable medium, comprising: computer code for identifying a plurality of flows associated with internet protocol packets destined for an output port, each of the flows including a collection of packets with a common destination address, source address, protocol, destination port, and source port;computer code for measuring a utilization associated with the output port utilizing an output flow manager;computer code for forwarding, from the output flow manager, the measured utilization to a network processing unit (NPU) including at least one processor for use in routing the packets to the common destination address;computer code for receiving the measured utilization from the NPU at an input flow manager; andcomputer code for individually controlling rates of each of the flows destined for the output port, at an input port thereof and utilizing the input flow manager, based on the utilization to ensure that the utilization remains less than or equal to 99.9%, ensure packet loss is not harmful, and avoid buffering more than 400 packets with a correspondingly low delay;wherein the computer program product is operable such that individually controlling the rates includes controlling a rate of each individual flow by only dropping a single packet from the individual flow such that the rate of the individual flow is forced to slow down by a Transmission Control Protocol (TCP) process utilized at a sending computer including the output port;wherein the computer program product is operable such that a decision process used to determine if the individual flow is be slowed down by dropping the single packet predicts a composite output rate for each output port in advance of any output port overload such that the TCP process has sufficient time to reduce the rate to hold the utilization below 99.9%;wherein the identifying, the measuring and the controlling are performed by hardware or software facilitating the communication of packets from one point in a network to another point in the network.
  • 17. A system, comprising: an input flow manager for identifying a plurality of flows associated with internet protocol packets destined for an output port, each of the flows including a collection of packets with a common destination address, source address, protocol, destination port, and source port; andan output flow manager for measuring a utilization associated with the output port, forwarding the measured utilization to a network processing unit (NPU) including at least one processor for use in routing the packets to the common destination address;wherein the input flow manager receives the measured utilization from the NPU;wherein the input flow manager individually controls rates of each of the flows destined for the output port, at an input port thereof, based on the utilization to ensure that the utilization remains less than 99.9%, ensure packet loss is not harmful, and avoid buffering more than 400 packets with a correspondingly low delay;wherein the input flow manager is operable such that individually controlling the rates includes controlling a rate of each individual flow by only dropping a single packet from the individual flow such that the rate of the individual flow is forced to slow down by a Transmission Control Protocol (TCP) process utilized at a sending computer including the output port;wherein the input flow manager is operable such that a decision process used to determine if the individual flow is be slowed down by dropping the single packet predicts a composite output rate for each output port in advance of any output port overload such that the TCP process has sufficient time to reduce the rate to hold the utilization below 99.9%;wherein the identifying, the measuring and the controlling are performed by hardware or software facilitating the communication of packets from one point in a network to another point in the network.
US Referenced Citations (138)
Number Name Date Kind
5235595 O'Dowd Aug 1993 A
5267232 Katsube et al. Nov 1993 A
5379297 Glover Jan 1995 A
5436886 McGill Jul 1995 A
5444702 Burnett Aug 1995 A
5467343 Lee Nov 1995 A
5559611 Bloomfield Sep 1996 A
5633861 Hanson et al. May 1997 A
5892924 Lyon et al. Apr 1999 A
5909440 Ferguson Jun 1999 A
5917821 Gobuyan Jun 1999 A
5933425 Iwata Aug 1999 A
5953318 Nattkemper Sep 1999 A
5991302 Berl Nov 1999 A
5995503 Crawley Nov 1999 A
6006264 Colby Dec 1999 A
6018530 Chakravorty Jan 2000 A
6072797 Fletcher Jun 2000 A
6078590 Farinacci Jun 2000 A
6081522 Hendel Jun 2000 A
6081524 Chase Jun 2000 A
6084879 Berl Jul 2000 A
6091725 Cheriton Jul 2000 A
6111877 Wilford Aug 2000 A
6122272 Tomaszewski Sep 2000 A
6147996 Laor Nov 2000 A
6157641 Wilford Dec 2000 A
6182139 Brendel Jan 2001 B1
6182147 Farinacci Jan 2001 B1
6185188 Hasegawa Feb 2001 B1
6192051 Lipman Feb 2001 B1
6195697 Bowman-Amuah Feb 2001 B1
6195703 Blumenau Feb 2001 B1
6212182 McKeown Apr 2001 B1
6212183 Wilford Apr 2001 B1
6219699 McCloghrie Apr 2001 B1
6226750 Trieger May 2001 B1
6243667 Kerr et al. Jun 2001 B1
6260120 Blumenau et al. Jul 2001 B1
6269099 Borella et al. Jul 2001 B1
6279035 Brown et al. Aug 2001 B1
6308219 Hughes Oct 2001 B1
6310860 Sheu et al. Oct 2001 B1
RE37435 Yoshimura et al. Nov 2001 E
6330599 Harvey Dec 2001 B1
6331978 Ravikanth Dec 2001 B1
6335927 Elliott Jan 2002 B1
6336129 Ise Jan 2002 B1
6343072 Bechtolsheim Jan 2002 B1
6346874 Maeshima Feb 2002 B1
6353856 Kanemaki Mar 2002 B1
6356530 Tomaszewski Mar 2002 B1
6370121 Hausman Apr 2002 B1
6377577 Bechtolsheim Apr 2002 B1
6381244 Nishimura Apr 2002 B1
6385642 Chlan May 2002 B1
6389475 Speakman May 2002 B1
6389506 Ross May 2002 B1
6412006 Naudus Jun 2002 B2
6421711 Blumenau Jul 2002 B1
6424649 Laor Jul 2002 B1
6424934 Welfeld Jul 2002 B2
6434120 Natarajan Aug 2002 B1
6438595 Blumenau Aug 2002 B1
6446126 Huang Sep 2002 B1
6456594 Kaplan Sep 2002 B1
6473404 Kaplan Oct 2002 B1
6480888 Pedersen Nov 2002 B1
6496932 Trieger Dec 2002 B1
6499061 Benayoun et al. Dec 2002 B1
6504817 Oldfield et al. Jan 2003 B2
6512766 Wilford Jan 2003 B2
6515963 Bechtolsheim et al. Feb 2003 B1
6515999 Nagami et al. Feb 2003 B1
6563794 Takashima et al. May 2003 B1
6567405 Borella et al. May 2003 B1
6574195 Roberts Jun 2003 B2
6574667 Blumenau Jun 2003 B1
6603772 Moussavi Aug 2003 B1
6611522 Zheng Aug 2003 B1
6611528 Farinacci Aug 2003 B1
6614795 Jimmei Sep 2003 B1
6615358 Dowd Sep 2003 B1
6629125 Elzur Sep 2003 B2
6643285 Vincent Nov 2003 B1
6647208 Kirby Nov 2003 B1
6668297 Karr Dec 2003 B1
6690654 Elliott Feb 2004 B2
6697354 Borella Feb 2004 B1
6707796 Li Mar 2004 B1
6708219 Borella Mar 2004 B1
6718387 Gupta et al. Apr 2004 B1
6721273 Lyon Apr 2004 B1
6731625 Eastep et al. May 2004 B1
6731642 Borella et al. May 2004 B1
6732187 Lougheed et al. May 2004 B1
6738387 Lin et al. May 2004 B1
6754181 Elliott et al. Jun 2004 B1
6757249 Kejriwal et al. Jun 2004 B1
6757791 O'Grady et al. Jun 2004 B1
6760331 Moussavi et al. Jul 2004 B1
6763040 Hite et al. Jul 2004 B1
6765921 Stacey et al. Jul 2004 B1
6768743 Borella et al. Jul 2004 B1
6771642 Seaver et al. Aug 2004 B1
6781982 Borella et al. Aug 2004 B1
6791979 Berl et al. Sep 2004 B1
6798776 Cheriton et al. Sep 2004 B1
6798788 Viswanath et al. Sep 2004 B1
6799255 Blumenau et al. Sep 2004 B1
6829437 Kirby Dec 2004 B2
6831923 Laor et al. Dec 2004 B1
6853638 Cohen Feb 2005 B2
6862284 Spiegel et al. Mar 2005 B1
6889181 Kerr May 2005 B2
6914883 Dharanikota Jul 2005 B2
6920112 McCloghrie Jul 2005 B1
6922410 O'Connell Jul 2005 B1
6922564 Witana Jul 2005 B2
6948074 Borella Sep 2005 B1
6952415 Stern Oct 2005 B2
6954431 Roberts Oct 2005 B2
6965572 Boodaghians Nov 2005 B1
6977932 Hauck Dec 2005 B1
7440403 Rosenfled Oct 2008 B2
20010030649 Mamiya et al. Oct 2001 A1
20020075883 Dell et al. Jun 2002 A1
20020141379 Davari et al. Oct 2002 A1
20030058793 Rochon et al. Mar 2003 A1
20030112758 Pang et al. Jun 2003 A1
20030223442 Huang et al. Dec 2003 A1
20040085958 Oman May 2004 A1
20040160954 Shimizu et al. Aug 2004 A1
20050063307 Samuels et al. Mar 2005 A1
20050201284 Cheriton Sep 2005 A1
20050238022 Panigrahy Oct 2005 A1
20060020691 Patterson et al. Jan 2006 A1
20060165166 Chou et al. Jul 2006 A1
Non-Patent Literature Citations (6)
Entry
Search Report and Written Opinion from PCT Application No. PCT/US2007/01516 mailed on Oct. 16, 2007.
International Preliminary Examination Report from PCT Application No. PCT/US2007/01516 mailed on Jul. 31, 2008.
U.S. Appl. No. 11/335,969, filed Jan. 20, 2006.
Office Action Summary from U.S. Appl. No. 11/335,969 which was mailed on Dec. 12, 2008.
Final Office Action Summary from U.S. Appl. No. 11/335,969 mailed on Jun. 11, 2009.
“Bring on the router, I mean switches . . . ”, by Network World, Jan. 4, 1999, http://www.networkworld.com/news/power99/bringonrouters.html, pp. 1-2.
Related Publications (1)
Number Date Country
20070171826 A1 Jul 2007 US