1. Field of the Invention
Embodiments of the invention relate to computer networks. Specifically, but not by way of limitation, embodiments of the invention relate to a system and method for combining multiple packetized network connections and treating the resulting aggregation of connections as a single virtual network link. The aggregation of network connections may employ a diverse set of routes to a common destination and may comprise network connections having a heterogeneous set of connection mechanisms, speeds, and properties. Optionally, embodiments of this invention may include a means of trunking that recognizes packets belonging to a specified flow and redistribute the packets among multiple paths to a common destination, where they are reassembled back into a single flow.
2. Description of the Related Art
The current state of the Internet has been likened to a superhighway with dirt on-ramps. At present, cost-efficient broadband connections, such as DSL and DOCSIS (Data Over Cable Service Interface Specification), generally limit upstream throughput to 384 Kbps, despite the fact that DSL and DOCSIS are capable of speeds rivaling or exceeding DS-1 service. To obtain throughputs of 1.5 Mbps or faster usually requires DS-1 or Frame-Relay service that costs many times more on a price per throughput basis. Thus, economic incentives exist for providing a mechanism that can combine multiple low cost connections to provide higher aggregate throughput. This combining or bonding of multiple physical links into a single logical link is called port trunking or link aggregation.
In addition to economic incentives, reliability concerns provide another reason for link aggregation. A single connection handling all network traffic has the potential for a single point of failure. Aggregating multiple links provides connection diversity and redundancy that can significantly improve system availability and reliability. IEEE 802.3ad [1] defines a standard for Ethernet link aggregation and is part of a high availability solution for Linux. In addition to being a part of common operating systems (OS), such as Linux, standard Ethernet switches and other networking equipment also implement IEEE 802.3ad. Personal computers (PC) with IEEE 802.3ad in the OS can take advantage of multiple Ethernet ports, through either the installation of multiple network adapters or by means of network adapter cards with multiple independent Ethernet ports to provide increased communications throughput and reliability.
Local exchange carriers (LECs) who provide Internet access may deploy network access using physical port trunking when a customer requests a throughput rate that exceeds the capacity of a single DS-1 link by bonding DS-1 channels to provide higher throughputs. As another example of trunking, ISDN can bond two 64 Kbps data channels to form a single 128 Kbps channel.
Although LECs offer physical trunking for ISDN, Frame-Relay, and Digital System (DS) circuits (eg., DS-1 and DS-3) to offer users a single aggregated network link that preserves packet ordering and offers a high quality of service, they do not offer such trunking service for DSL lines or cellular data connections. In general, cellular data links, DSL, and cable modem connections cannot bond with other data links, or even other similar links to form a single higher-throughput link. Thus despite the wide deployment of 2.488 Gbps OC-48 links and 9.953 Gbps OC-192 links within the Internet backbone, our original adage holds. We still must contend with “dirt off-ramps” for Internet connectivity.
The demands of streaming video further aggravate these throughput issues. Networked video streams generally require throughput capacity that exceeds the speed of a single DSL link, and often even that of a DS-1 link. Video and audio streams also have the requirement that their packets must be received at a destination node in their original order. Out of order media packets wreak havoc on video and audio playback unless packet reordering means are provided at the receiving node. Yet the use of dynamic load balancing within a network, as is generally supported within the Internet, may corrupt packet ordering or introduce significant packet jitter and thereby impair playback of a media stream.
In an attempt to address the throughput issue for media streams, systems that use ISDN interfaces, which generally include most video conferencing equipment, provide Quad Basic Rate Interfaces (Quad BRI) that uses physical trunking to bind 4 ISDN BRI lines into a single 512 Kbps logical link. However because such interfaces rely upon the binding capability of ISDN channels, they do not scale to other types of interfaces, such as multiple DSL links, multiple cell-phone connections, or a combination of several different types of connections that might provide link diversity and increased throughput. This sort of binding is also limited specifically to BRI and PRI connections supported by most video conferencing equipment.
In order to expand the ability to aggregate data links and provide enhanced throughput and reliability for mobile environments, researchers at the University of Chicago at Urbana-Champagne have developed a new protocol, MMTP: Multimedia Multiplexing Transport Protocol [2] to aggregate multiple cooperating mobile phones into a single virtual channel. While MMTP can provide a high throughput wireless connection from the aggregation of many low throughput cellular data channels, it requires modifications to the cellular system's base stations as well as the mobile phones and cellular data modem cards. Researchers at Hewlett-Packard Labs in Palo Alto have recently proposed a similar cellular data link aggregation system to send data files at higher speeds [3]. This proposed system also appears to rely upon a special protocol that must be recognized by the network equipment, in this case the cellular system's base station. However, the only available reference to this research does not provide enough detail to understand how this proposed system would work and does not teach any implementations for this proposed system.
While the foregoing demonstrates an increase in interest concerning new and more flexible forms of link aggregation, link aggregation systems also create new challenges. Variable link delays may result in out-of-sequence packet ordering. Network congestion from the merging of traffic from multiple links can result in queue overflow and a resulting packet loss. The reliance on many links to form an aggregate virtual link increases the chance of packet loss because of the increased probability of a single link failing. Live streaming media, such as video and audio, are particularly sensitive to such link impairments. Thus, without Quality of Service (QoS) mechanisms to recover lost packets, restore packet order, and the original stream timing, link aggregation can severely degrade the performance of live streaming systems.
Many legacy IP video conferencing systems and streaming media servers do not contain adequate QoS mechanisms, if any at all, for Internet or wireless IP network transport. Thus, systems incorporating link aggregation and their attendant network impairment issues particularly require the incorporation of QoS mechanisms. However to our knowledge, no current virtual link aggregation mechanisms incorporate any such QoS mechanisms.
Embodiments of the invention provide a system and enable a method for virtual link aggregation that combines network links of various types and speeds to increase throughput and reliability for packetized transport. In contrast with physical port trunking, the link aggregation of this invention does not require direct control over ports or network interfaces. Instead, embodiments of this invention rewrite packet addresses and thereby remotely control packet routing.
The virtual link aggregation of the present invention works through existing networking equipment, without requiring any new or special protocols, processing, or equipment within the network. Embodiments of this virtual link aggregation may work via combinations of low-level and high-level rerouting: low-level rerouting by rewriting hardware addresses, and high-level routing by rewriting logical addresses. However in both cases, this virtual link aggregation redirects packets through a multitude of routes to a common destination via sets of alternate gateways and links.
Various embodiments of the invention may use different algorithms to balance the loading on each link and determine an optimal route for each packet; with the result that link loading among the specified set of alternative routes is substantially in balance. In another improvement, embodiments of the invention may optionally include a means for packet flow or stream identification and thereby only provide link aggregation for a specified set of packet flows.
In an embodiment of the invention involving Internet Protocol routing over an Ethernet physical layer, a routing control unit rewrites the low-level Ethernet destination address corresponding to alternate ports of each of the links to aggregate onto successive packets according to a load balancing algorithm. Other embodiments of the invention may use other means of routing successive packets to each of a series of alternate routes, according to an algorithm that balances the loading on each link.
Embodiments of the invention implement a method for virtual link aggregation that provides high-throughput and reliable transport of data packets, including but not limited to, video streams and other time and order sensitive packet flows. The ability to aggregate multiple low speed and low reliability links becomes especially important in the transport of video, audio, and other time and order-sensitive packet streams that require high throughput. Video streams, in particular, often require more throughput than a single low-cost broadband link, such as DSL and cable-modem, can provide. Any mechanism that can couple multiple low-cost links has the potential to provide significant cost advantages in the provisioning of streaming video services.
Because embodiments of this invention rewrite packet destination addresses, they control the routing of each packet on a per-packet basis rather than by directly controlling network ports or link interfaces. By this indirect control of packet routing, embodiments of the invention provide a mechanism for virtual link aggregation that can work through existing networking equipment, without requiring any new or special protocols, downstream packet processing, or equipment within the network. In contrast, other link aggregation mechanisms, such as IEE 802.3ad and MMTP require new protocols or special network equipment to function.
Embodiments of this virtual link aggregation may work through combinations of low-level rerouting by rewriting hardware addresses, and high-level routing by rewriting logical addresses. However in both cases, this virtual link aggregation redirects packets, or in some embodiments flows of media streams, through a multitude of routes to a common destination via sets of alternate gateways and links. Various embodiments of the invention may use different algorithms to balance the loading on each link and determine an optimal route for each packet; with the result that link loading among routes within the set of alternative routes is substantially in balance among the packets of the specified flows or streams of related packets.
For embodiments that handle media streams, an optional Flow Identifier 100 within Link Aggregator 10 may identify and filter incoming packets that are part of a selected set of streams to only provide virtual link aggregation processing for these packets. In the case of packet flows, Flow Identifier 100 would bypass, from further processing by Packet Processor 101, any packets that are not part of a selected flow, and send these packets directly to Ethernet Interface 11. For all other packets, Load Balancing and Link Selection Unit 1011 would use information about the throughput capacity of each link along with packet size information and the history of previous routing decisions to select a link for routing each packet. Load Balancing and Link Selection Unit 1011 functions to choose the route for each packet that would best balance the throughput loading among all links comprising the virtual link aggregate. Link Aggregator 104 may be configured with information concerning all possible WAN links along with a list of which WAN links to include as part of the virtual link aggregate.
Packet Routing Unit 1012 takes routing information from Link Selector 1011 and rewrites the destination address for each packet as appropriate to route packets through the chosen links. In the example of
For the example of
More specifically, in this example Modem 3a has hardware address HWA; Modem 3b has address HWB; and Modem 3c has address HWC. Therefore, the Load Balancing and Link Selector of Link Aggregator of Network Node 1 changes the destination address of packets 1, 4, 7 to HWA; sets address HWB for packets 2 and 5; and HWC for packets 3 and 6. The modems forward the packets onto IP WAN Network 4 because their IP destination addresses require a route through the WAN. The load balancing algorithm may choose this distribution of packets as one attempt at equalizing the loading among the three upstream links. However, other load balancing algorithms might choose a different distribution of packet routing (for example if one modem is faster than the other modem(s) being used).
In routing for the downstream side, the Link Aggregator of Network Node I rewrites the IP destination addresses of packets 1, 3, 5, and 7 to point to IP address IPA of Receiving Network Node 5. However in this example, IPA is part of a subnet handled by DSL Modem 6a, so that by having destination address IPA, these packets will be routed through DSL Modem 6a. Similarly, the link aggregator gives packets 2, 4, and 6 IP address IPB so that these packets will travel through Modem 6b on route to their final destination of IP address IPB at Receiving Network Node 5.
In another embodiment, DSL Modems 6a and 6b may have port forwarding capabilities. In this case, addresses IPA and IPB point to Modems 6a and 6b, respectively, as their IP destination. However, the original source of these packets set the UDP or TCP ports to a well-known or pre-assigned port number. The port forwarding mechanism of Modems 6a and 6b, upon finding a match in their port forwarding tables, forwards these packets to Receiving Network Node 5.
Different links may have different propagation delays, resulting in a reordering of packets at Receiving Network Node 5. However some applications, such as media streaming, may be sensitive to any changes from the original packet sequence. In such applications where packet order is important, and where provisions have not been made at the application level to restore packet order, embodiments of the invention may include a buffering mechanism at Receiving Network Node 5 to restore the original packet order.
In addition to packet reordering concerns, different links may have different levels of packet loss or congestion-induced packet arrival jitter. Combining links with increased levels of such packet impairments along side more reliable links can lower the overall service quality of the aggregate link. Thus, in such cases where an application may be sensitive to these sorts of network impairments, and where such an application may not otherwise incorporate a means for compensating for these packet impairments, Receiving Network Node 5 may include more comprehensive quality of service (QoS) restoration mechanisms in addition to or in place of a packet buffer that restores packet order. The design and implementation of such QoS mechanisms has been the subject of much outside work, including U.S. Provisional Patent Application Ser. No. 60/521821, 60/521904, and 60/522063 and U.S. Utility patent application Ser. Nos. 11/177,507, 11/184,486 and 11/184,485 which are used in combination with embodiments of the invention and which are hereby incorporated herein by reference.
Conversely, some embodiments of this invention may also rely only upon application-level mechanisms for overcoming QoS network impairments, or alternatively, not require any such QoS mechanisms at all, and may therefore not include any such additional packet buffering, packet retiming, synchronization, or packet loss recovery mechanisms.
Through the use of pseudo-code,
In view of the wide variety of embodiments to which the principles of the invention can be applied, it should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of embodiments of the invention. For example, the packet ordering and grouping of the media packet stream flow of
The claims should not be read as limited to the described order or elements unless stated to that effect. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.
(1) G. O. Thompson et. al., “802.3ad™-2000 (Clause 43), Aggregation of Multiple Link Segments,” URL: http://standards.ieee.org/getieee802/download/802.3-2002.pdf, IEEE-Std 802.3™-2002, The Institute of Electrical and Electronics Engineers (IEEE), 8 Mar. 2002.
(2) L. Magalhaes and R. Kravets, “MMTP: multimedia multiplexing transport protocol,” URL:http://portal.acm.org/citation.cfm?id=844207&coll=ACM&dl=ACM&CFID=3 0091247&CFTOKEN=95402952, ACM SIGCOMM Computer Communication Review, Volume 31 Issue 2 Supplement, April 2001, page 220-243.
(2) A. Ananthaswamy, “Spontaneous Networks will Speed Net Access,” URL: http://www.newscientist.com, ACM Computer Communications Review, 2001.
This application takes priority from U.S. Provisional Patent Application Ser. No. 60/626,243, entitled “SYSTEM AND METHOD FOR THE VIRTUAL AGGREGATION OF NETWORK LINKS”, filed Nov. 8, 2004 which is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60626243 | Nov 2004 | US |