A datagram with a destination network address is received at a router. The router identifies a next hop router en route to or associated with the destination network address. The router determines whether or not transmission of the datagram on a link to the next hop router would result in a bandwidth usage exceeding a bandwidth threshold associated with the next hop router. If not, the router updates the bandwidth usage associated with the next hop router to account for the datagram, and transmits the datagram to the next hop router. If so, the router selects among other possible next hop routers en route to or associated with the destination address, another next hop router for which transmission of the datagram on a link to the other next hop router would not result in a bandwidth usage exceeding a bandwidth threshold associated with the other next hop router. Then, the router updates the bandwidth usage associated with the other next hop router to account for the datagram, and transmits the datagram to the other next hop router. If, among the other possible next hop routers, there is no other next hop router for which the transmission of the datagram on the respective link would result in the bandwidth usage being less than the respective bandwidth threshold, then the router chooses among the other possible next hop routers, another next hop router. Then, the router updates the bandwidth threshold associated with the other, chosen next hop router with a larger, predefined bandwidth threshold.
|
1. A method for routing a datagram in an ip network, said method comprising the steps of:
a computer receiving a datagram with a destination network address;
a computer identifying a next hop router en route to or associated with said destination network address; and
a computer determining whether or not transmission of said datagram on a link to said next hop router would result in a bandwidth usage exceeding a bandwidth threshold associated with said next hop router, and
if not, updating the bandwidth usage associated with said next hop router, and transmitting said datagram to said next hop router,
if so, selecting among other possible next hop routers en route to or associated with said destination address, another next hop router for which transmission of said datagram on a link to said other next hop router would not result in a bandwidth usage exceeding a bandwidth threshold associated with said other next hop router, updating the bandwidth usage associated with said other next hop router, and transmitting said datagram to said other next hop router; and
a computer basing a routing decision on the bandwidth usage of the link to said next hop router,
wherein the bandwidth usage is a dynamic parameter which is updated in a forwarding information database (FIB) in real-time, and
wherein the step of determining, comprises the step of adding a bandwidth usage associated with said next hop router immediately before transmission of said datagram on said link to said next hop router to a bandwidth usage required for transmission of said datagram on said link to said next hop router, and comparing a result of said adding step to the bandwidth threshold associated with said next hop router.
10. A router for routing a datagram in an ip network, said router comprising:
a system receiving a datagram with a destination network address;
a system identifying a next hop router en route to or associated with said destination network address; and
a system determining whether or not transmission of said datagram on a link to said next hop router would result in a bandwidth usage exceeding a bandwidth threshold associated with said next hop router, and
if not, updating the bandwidth usage associated with said next hop router, and transmitting said datagram to said next hop router,
if so, selecting among other possible next hop routers en route to or associated with said destination address, another next hop router for which transmission of said datagram on a link to said other next hop router would not result in a bandwidth usage exceeding a bandwidth threshold associated with said other next hop router, updating the bandwidth usage associated with said other next hop router, and transmitting said datagram to said other next hop router,
wherein the router bases a routing decision on the bandwidth usage of the link to said next hop router and on a bandwidth usage as billed by an isp on the links to the next hop routers,
wherein the bandwidth usage is a dynamic parameter which is updated in a forwarding information database (FIB) in real-time, and
wherein the step of determining, comprises the step of adding a bandwidth usage associated with said next hop router immediately before transmission of said datagram on said link to said next hop router to a bandwidth usage required for transmission of said datagram on said link to said next hop router, and comparing a result of said adding step to the bandwidth threshold associated with said next hop router.
2. The method as set forth in
if, among said other possible next hop routers, there is no other next hop router for which the transmission of the datagram on the respective link would result in the bandwidth usage being less than the respective bandwidth threshold, choosing among said other possible next hop routers, another next hop router, updating the bandwidth threshold associated with said other, chosen next hop router with a larger, predefined bandwidth threshold; and
transmitting the datagram to said other, chosen next hop router.
3. The method as set forth in
4. The method as set forth in
5. The method as set forth in
6. The method as set forth in
7. The method as set forth in
8. The method as set forth in
9. The method as set forth in
11. A router as set forth in
chooses among said other possible next hop routers, another next hop router,
updates the bandwidth threshold associated with said other, chosen next hop router with a larger, predefined bandwidth threshold; and
transmits the datagram to said other, chosen next hop router.
12. The router as set forth in
13. The router as set forth in
14. The router as set forth in
|
The present invention relates generally to computer networks, and more particularly to a method and system, in an Internet Protocol (IP) network, for routing IP datagrams.
The Internet is a global network of computers and computers networks. The Internet connects computers that use a variety of different operating systems or languages, including UNIX, DOS, Windows, Macintosh, and others. To facilitate and allow the communication among these various systems and languages, the Internet uses a language referred to as TCP/IP (“Transmission Control Protocol/Internet Protocol”). TCP/IP protocol supports three basic applications on the Internet:
The TCP/IP protocol suite is named for two of the most important protocols:
With the increasing size and complexity of the Internet, tools have been developed to help find information on the network, often called navigators or navigation systems. Navigation systems that have been developed include standards such as Archie, Gopher and WAIS. The World Wide Web (“WWW” or “the Web”) is a recent superior navigation system. The Web is:
One of the basic functions of IP is its ability to form connections between different physical networks. This is due to the flexibility of IP to use almost any physical network below it, and to the IP routing algorithm. A system that does this is termed a “router”. A “Router” is a computer or other device that interconnects two networks and forwards messages from one network to the other. The Router thus includes a CPU and a computer readable storage device storing program instructions to be executed by the CPU (see
When data is sent to a remote destination, each IP datagram is first sent to a local router. An incoming datagram that specifies a destination IP address other than one of the local router IP addresses is treated as a normal outgoing datagram. This outgoing datagram is subject to the IP routing algorithm of the router, which selects the next hop for the datagram. The router forwards each datagram towards its final destination. A datagram travels from one router to another until it reaches a router connected to the destination. Each intermediate router along the end-to-end path selects the next hop used to reach the destination. The next hop represents the next router along the path to reach the destination. This next router can be located on any of the physical networks to which the intermediate router is attached. If it is a physical network other than the one on which the host originally received the datagram, then the result is that the intermediate router has forwarded the IP datagram from one physical network to another. An “IP routing table” in each router is used to forward datagrams between networks. A basic IP routing table comprises information about the locally attached networks and the IP addresses of other routers located on these networks, plus the networks to which they attach. A routing table can be extended with information on IP networks that are farther away, and can also comprise a default route, but it still remains a table with limited information. A routing table represents only a part of the whole IP network. A router having such a routing table is called “a router with partial routing information”. A robust routing protocol must provide the ability to dynamically build and manage information in the IP routing table. As the changes in the network topology may occur, the routing tables must be updated with minimal or without manual intervention.
IP addresses are used by the IP protocol to uniquely identify a host on the Internet. Strictly speaking, an IP address identifies an interface that is capable of sending and receiving IP datagrams. Each IP datagram (the basic data packets that are exchanged between hosts) comprises a source IP address and a destination IP address. IP addresses are represented by a thirty two bit unsigned binary value which is usually expressed in a dotted decimal format. For example, 9.167.5.8 is a valid Internet address. An IP address is divided between a network and a host part, the first bits of the IP address specify how the rest of the address is divided. The mapping between the IP address and an easier-to-read symbolic name, for example myhost.ibm.com, is done by the “Domain Name System” (DNS).
In the IP networking, one of the major issue to solve is to route the IP datagrams. For this reason, a routing table is built in each routing device. Routing tables are either statically configured by a network administrator or dynamically configured based on information exchanged between routers using routing protocols such as Routing Information Protocol -RIP-, Open Shortest Path First -OSPF-, Border Gateway Protocol -BGP-, . . . ). Dynamic routing algorithms allow routers to exchange route or link information, from which the best paths to reach destinations in an Inter network are calculated. Static routing is generally used to supplement dynamic routing. The goal of the routing function is to determine for each IP datagram, the next hop device in order to reach the final destination. The search for the next hop device is commonly based on the shortest path or shortest distance in order to minimize the transmission delay and resource consumption in the network.
The principle of Distance Vector Routing is very simple. Each router in an inter network maintains the distance from itself to every known destination in a Distance Vector Table. The Distance Vector Table comprises a plurality of destinations (vectors) associated with costs (distances) to reach them and defines the lowest distances to these destinations at the time of the transmission. The distances in the tables are computed from information provided by neighbour routers. Each router transmits its own Distance Vector Table across the shared network. The sequence of operations for doing this is as follows:
One of the characteristic of the distance vector routing is that the distance is a static value pre-configured on each router interface. The distance is mostly chosen per default as being the number of hops (which equals the number of intermediate routers). This means that if, for instance, three intermediate routers are in the path between a source network and a destination network, the distance from this source network to the destination network seen by the router attached to the source network, is three. Once a router has found out the shortest distance to a destination network, the router will always use this route to reach the destination network.
More explanations about the technical field presented in the above sections can be found in the following publications incorporated herewith by reference: “TCP/IP Tutorial and Technical Overview” by Martin W. Murhammer, Orcun Atakan, Stefan Bretz, Larry R. Pugh, Kazunari Suzuki, David H. Wood, International Technical Support Organization, October 1998, GG24-3376-05.
Most server hosting centers have multiple Internet connections (at least two for redundancy reasons) provided by different Internet Service Providers (ISPs). The Border Gateway Protocol (BGP) is widely used to route the IP traffic between the different Internet service providers (ISPs) and the server hosting center. BGP is also used to advertise all the Internet routes to the different server hosting centers. For instance, the IP datagrams can be routed toward their final destination by the routing device, at the front end of the server hosting center, according to the shortest path. However, the shortest path is not always the most appropriate criterion in term of business needs. A very important parameter to take into consideration in the Internet world is the financial cost of the bandwidth based on the bandwidth usage. The standard way for an Internet Service Provider (ISP) to charge its customers (the server hosting centers) is the so called 95%-tile method. At regular intervals (for instance every five minutes), the bandwidth currently used (both inbound and outbound traffic) by the customer (the server hosting center) is measured and the result is saved by the Internet Service Provider (ISP). At the end of a billing period (this period is generally equal to one month), the Internet Service Provider (ISP) sorts out all the measurements, removes five percent of the measurements, the measurements with the highest values, and takes the next measurement as the value of the bandwidth used through his network. This value will be the base for billing the server hosting center. This bandwidth value has an associated cost depending on the range of bandwidth used. For example, a usage between zero and ten Mbps is charged “X” while a usage between ten and twenty Mbps is charged “Y” (with X<Y) and so on.
According to prior art, the process for routing IP datagrams is based on the routing table or on a subset of the routing table commonly called Forwarding Information Base (FIB). While the routing table contains routing information that may never be used, the Forwarding Information Table (FIB) contains routing information for a destination network to which an IP datagram has already been routed. When an IP datagram is received, the router creates an entry in the Forwarding Information Base (FIB) including the following information:
As shown in
The pricing model exercised by the Internet Service Providers (ISPs) can consist of a fixed price corresponding to a committed rate, paid whether or not it is used. It can also be based on a bandwidth usage calculated from periodical sampling the traffic during the billing period. Or it can be a mix of the two, with a guaranteed part that is always paid and a variable part that is charged depending on the bandwidth usage.
From a mathematical point of view, a packet based traffic like IP is a succession of data bursts emitted at line speed. The traffic is mainly characterised by:
Routers and other network data devices do not provide n(t). It would be too costly in terms of memory and processing time. Instead, they provide sets of counters, for instance for counting the number of transmitted bits (or received bits). Consequently, traffic is observed by regularly sampling the values of these counters. As shown in
The next logical step after gathering bandwidth usage data is to compute a bandwidth value Bb for billing. The algorithm to compute the value Bb is generally chosen as:
In order to optimize the connection costs, the bandwidth usage should represent a very important aspect of the routing in a server hosting center and should be a key decision factor on top of the traditional routing algorithms based on the shortest path.
An object of the present invention is to optimize connection costs in an IP network.
The invention resides in a system, method and computer program product for routing a datagram in an IP network. A datagram with a destination network address is received at a router. The router identifies a next hop router en route to or associated with the destination network address. The router determines whether or not transmission of the datagram on a link to the next hop router would result in a bandwidth usage exceeding a bandwidth threshold associated with the next hop router. If not, the router updates the bandwidth usage associated with the next hop router to account for the datagram, and transmits the datagram to the next hop router. If so, the router selects among other possible next hop routers en route to or associated with the destination address, another next hop router for which transmission of the datagram on a link to the other next hop router would not result in a bandwidth usage exceeding a bandwidth threshold associated with the other next hop router. Then, the router updates the bandwidth usage associated with the other next hop router to account for the datagram, and transmits the datagram to the other next hop router.
According to one feature of the present invention, if, among the other possible next hop routers, there is no other next hop router for which the transmission of the datagram on the respective link would result in the bandwidth usage being less than the respective bandwidth threshold, then the router chooses among the other possible next hop routers, another next hop router. Then, the router updates the bandwidth threshold associated with the other, chosen next hop router with a larger, predefined bandwidth threshold.
The present invention routes IP traffic to several next hop routers according to current bandwidth usage on links connecting these next hop routers. The object of the present invention is to change the routing decision process executed in the routers so that the decision does not only depend on a distance or cost to a destination network but also depends on a bandwidth usage as billed by Internet Services Provides (ISPs) on the links to next hop routers.
As in the prior art, the Forwarding Information Base (FIB) comprises for each destination network:
The current bandwidth for billing 701 on the link li connecting the next hop router (NHi) is computed each time a new datagram must be transmitted. The current bandwidth for billing Bbc can be defined as:
The list of bandwidth thresholds 702 on the link li connecting the next hop router (NHi) is a configured set of values based on the pricing model of the Internet Service Provider. At the end of the billing period, once the bandwidth for billing Bib (which is an indication of the bandwidth usage) is calculated, a contractual price (or cost) is applied. A contractual price for a predefined bandwidth interval is a fixed price applied by the Internet Service Provider whatever the value of the bandwidth for billing is within this predefined bandwidth interval. As the pricing model of most Internet Service Providers is based on a plurality of contractual prices Cthj depending on the bandwidth usage, several different bandwidth thresholds are defined. For instance, for link li, a first contractual price “Cith1” can be applied for values of Bib between 0-10 Mbps, a second contractual price “Cith2” can be applied for a value of Bib between 10-20 Mbps, and a third contractual price “Cith3” can be applied for a value of Bib between 20-30 Mbps, etc . . . In this example, the following bandwidth threshold are defined : Bith1=10 Mbps, Bith2=20 Mbps, Bith3=30 Mbps, etc . . . Each time the bandwidth value for billing Bib will exceed a given bandwidth threshold, a different contractual price will be applied by the Internet Service Providers. For instance, if at the end of the billing period, Bithj−1<Bib≦Bithj, then the total price to pay will be equal to Cithj.
The current bandwidth threshold 703 on the link li connecting the next hop router is a variable which can only take discrete values comprised in the list of bandwidth thresholds. If the list of bandwidth thresholds comprises the values: {Bith1=10, Bith2=20, Bith3=30}, the current bandwidth threshold can only take the values 10, 20 and 30 Mbps.
The billing period 704 is a configured value (for example one month) based on the pricing model of the Internet Service Provider on the link to the next hop router.
The pricing model of most Internet Service Providers divides the bandwidth in several contiguous intervals and associates a contractual price with each of these bandwidth intervals. For instance, on link li, a cost Cith1 is associated with bandwidth interval 0-10 Mbps, a cost Cith2 with interval 10-20 Mbps, a cost Cith3 with interval 20-30 Mbps, etc . . . . In the present example, the list bandwidth thresholds values for link li to next hop router NHi, comprises the following values: Bith1=10 Mbps, Bith2=20 Mbps, Bith3=30 Mbps, etc . . .
According to the present invention, at the beginning of the billing period, the current bandwidth thresholds of the links connecting the various next hop routers are initialized with the first value Bith1 (10 Mbps) in the lists bandwidth thresholds. Up to the current bandwidth threshold B1th1 (from 0 to 10 Mbps), a first next hop router (NH1) is used to route the datagrams. Once the current bandwidth for billing B1bc has reached this current bandwidth threshold B1th1 (10 Mbps) with this first next hop router (NH1), a second next hop router (NH2) is used. However, the current bandwidth for billing B2bc of the link l2 connecting this second next hop router NH2 must also be taken into account. If the current bandwidth threshold B2th1 for this second next hop router NH2 is reached, the next hop router NH1 can be selected again until the second bandwidth threshold B1th2 of NH1 (20 Mbps in the example) is reached and so on.
The mechanism previously described is illustrated in
As described in
As shown in
This value is dynamically computed by the router each time a new datagram must be sent. The Minimum Time to Emit Next Datagram MTENDnew is defined as being equal to the previous Minimum Time to Emit Next Datagram MTENDprev (in seconds) plus the size of the datagram dn (in bits) to emit divided by the current bandwidth threshold Bthc of the link l to the next hop router (NH):
new Minimum Time to Emit Next Datagram=previous Minimum Time to Emit Next Datagram+Datagram-Size/Current Bandwidth Threshold.
MTENDn+1=MTENDn+dnn+1/Bthc(n+1);
MTENDn+1=MTEND0+dn1/Bthc1+ . . . +dnk/Bthck+ . . . dnn/Bthcn+dnn+1/Bthc(n+1);
with:
The link selection algorithm as described in
While the present invention has been particularly shown and described with reference to a preferred embodiment, it will be understood that various changes in form and detail may be made therein without departing from the spirit, and scope of the invention.
Lund, Arnaud, Dispensa, Jean Claude, Berthaud, Jean Marc
Patent | Priority | Assignee | Title |
10079722, | May 09 2014 | Lattice Semiconductor Corporation | Stream creation with limited topology information |
10338694, | Jan 22 2007 | Sony Corporation | Multiple focus control |
9590825, | May 09 2014 | Lattice Semiconductor Corporation | Stream creation with limited topology information |
9660836, | May 06 2014 | Lattice Semiconductor Corporation | Network topology discovery |
9686101, | May 09 2014 | Lattice Semiconductor Corporation | Stream creation with limited topology information |
Patent | Priority | Assignee | Title |
3783258, | |||
6084864, | Feb 18 1987 | Wengen Wireless LLC | Traffic routing for satellite communication system |
7027449, | Oct 10 2000 | Regents of the University of California, The | Method for maintaining reservation state in a network router and resulting scalable integrated architectures for computer networks |
7133365, | Nov 02 2001 | INTERNAP HOLDING LLC | System and method to provide routing control of information over networks |
20020095474, | |||
20030026268, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 15 2003 | BERTHAUD, JEAN MARC | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014632 | /0421 | |
Oct 15 2003 | DISPENSA, JEAN CLAUDE | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014632 | /0421 | |
Oct 20 2003 | LUND, ARNAUD | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014632 | /0421 | |
Oct 21 2003 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Dec 30 2013 | International Business Machines Corporation | TWITTER, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032075 | /0404 | |
Oct 27 2022 | TWITTER, INC | MORGAN STANLEY SENIOR FUNDING, INC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 061804 | /0001 |
Date | Maintenance Fee Events |
Mar 23 2010 | ASPN: Payor Number Assigned. |
Sep 20 2013 | REM: Maintenance Fee Reminder Mailed. |
Jan 31 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 31 2014 | M1554: Surcharge for Late Payment, Large Entity. |
Aug 09 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 09 2021 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 09 2013 | 4 years fee payment window open |
Aug 09 2013 | 6 months grace period start (w surcharge) |
Feb 09 2014 | patent expiry (for year 4) |
Feb 09 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 09 2017 | 8 years fee payment window open |
Aug 09 2017 | 6 months grace period start (w surcharge) |
Feb 09 2018 | patent expiry (for year 8) |
Feb 09 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 09 2021 | 12 years fee payment window open |
Aug 09 2021 | 6 months grace period start (w surcharge) |
Feb 09 2022 | patent expiry (for year 12) |
Feb 09 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |