Patent Publication Number: US-7724652-B2

Title: Method of reducing network congestion

Description:
BACKGROUND OF THE INVENTION 
     1. Technical Field 
     The present invention relates in general to the field of computer networking, and more particularly to a method of reducing network congestion by using Internet Control Message Control (ICMP) Source Quench information to update routing protocols dynamically. 
     2. Description of the Related Art 
     Routing packets from a source computer to a destination computer forms the bedrock of the Internet. At the Internet Protocol (IP) layer, routing is the critical mechanism through which data is sent. At any point in the path, routers pick the next router or destination to which for the packet, based on an entry in the routers routing table. Routing is truly a distributed protocol 
     However, with the exploding growth of the Internet, the bandwidth available has not been able to keep up with rising number of users and it is quite possible to encounter congestion. When the resources of a router or destination computer are being stretched by buffer overflow, bandwidth limitations, and the like, to router or destination computer needs a mechanism to inform others about its condition. 
     The Internet Control Message Protocol (ICMP) is used to communicate control information for the Internet at the network layer. If a router or destination computer experiences congestion, it can send an ICMP Source Quench message to the source computer, asking the source computer to slow down. The source computer can use this information to reduce its data rate. However, when the congestion is at the router rather than the destination computer, the destination computer may be well able to handle the original data rate. 
     SUMMARY OF THE INVENTION 
     Embodiments of the present invention provide a method of reducing network congestion between a source computer and a destination computer. When a router receives a source quench message, the receiving router determines whether originator of the source quench message is the destination computer or an intermediate router. If the receiving router determines the originator to be the destination computer, the receiving router forwards the source quench message to the source computer. However, if the receiving router determines the originator to be an intermediate router, the receiving router determines if there is an alternative route from the receiving router to the destination computer. If the receiving router determines there is no alternative route from the receiving router to the destination computer, the receiving router forwards the source quench message to the source computer. However, if the receiving router determines there is an alternative route to the destination computer, the receiving router does not forward the source quench message to the source computer. Going forward, the receiving router routes packets to the destination computer by the alternative route. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where: 
         FIG. 1  is a block diagram of an embodiment of a network according to the present invention; and, 
         FIG. 2  is a flow chart of an embodiment of receiving router processing according to the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to drawings, and first to  FIG. 1 , a network is designated generally by the numeral  100 . Network  100  is preferably and Internet Protocol (IP) network. Network  100  includes a source computer  101  and a destination computer  103 . Computers  101  and  103  may be a suitable information handling systems such as personal computers, large servers, and the like. 
     Computers  101  and  103  communicate with each other by sending messages and packets or datagrams back and through a system of routers  105 . Each router  105  receives messages and packets and processes or forwards them according to routing tables. In the embodiment of  FIG. 1 , source computer  101  communicates directly with router  105   c . Router  105   c  forwards packets intended for destination computer  103  to router  105   a , possibly through one or more intermediate routers. Router  105   a  is a boundary router for a subnetwork. When router  105   a  receives a packet intended for destination computer  103 , its routing table tells it to forward the packet to intermediate router  105   b , which in turn forwards the packet to destination computer  103 . 
     Router  105   a  may also forward packets to routers  105   d  and  105   h . As shown in  FIG. 1 , routers  105   d - 105   g  form an alternate route from router  105   a  to destination computer  103 . However, according to the routing protocol implemented in network  100 , router  105   a  routes packets intended for destination computer  103  to router  105   b  rather than to router  105   d.    
     For any of the various reasons, destination computer  103  or router  105   b  may be unable to handle packets or datagrams received at a certain rate. For example, destination computer  103  may be overwhelmed by datagrams from many sources, such as popular website being swamped by HTTP requests. Source computer  101  and destination computer  103  may be exchanging information, but source computer  101  may be a much faster machine that can generate outgoing and process incoming dating grams much faster than destination computer  103  can. Router  105   b  may be receiving a large number of datagrams over a high-speed link that it needs to forward to destination computer  103  over a low-speed link. 
     When destination computer  103  or router  105   b  is unable to handle incoming datagrams from source computer  101 , destination computer  103  or router  105   b  sends an Internet Control Message Protocol (ICMP) Source Quench message to source computer  101 . According to the present invention, and as will be explained in detail hereinafter, when router  105   a  receives the source quench message it determines if the originator of the message is destination computer  103  or router  105   b . If the originator of the message is destination computer  103 , router  105   a  forwards the message to source computer  101 . However, if router  105   b  is the originator of the message, router  105   a  updates its routing table to forward datagrams intended for destination computer  103  to router  105   d  rather than router  105   b  and does not forward the source quench message to source computer  101 . 
       FIG. 2  is a flow chart of receiving router processing according to the present invention. The receiving router waits to receive messages send datagrams, as indicated at block  201 . The receiving router determines, at decision block  203 , if it receives a source quench message. If not, the receiving router performs other processing, as indicated generally at block  205 . If the receiving router receives a source quench message, the receiving router determines, at decision block  207 , if the originator of the source quench message is the destination computer. If so, the receiving router forwards the source quench message to the source computer, as indicated at block  209 . If the originator of the source quench message is not the destination computer, which indicates that the originator is a router, the receiving router determines, at decision block  211 , if there is an alternate route to the destination. If not, the receiving router forwards the source quench message to the source, as indicated at block  209 . If, as determined at decision block  211 , there is an alternate route to destination, the receiving router does not forward the source quench message to the source, as indicated at block  213 . As indicated at block  215 , the receiving router updates its routing table throughout datagrams to the destination computer by the alternate route. Going forward, the receiving router will route datagrams to the destination via the alternate route. 
     From the foregoing, it will be apparent to those skilled in the art that systems and methods according to the present invention are well adapted to overcome the shortcomings of the prior art. While the present invention has been described with reference to presently preferred embodiments, those skilled in the art, given the benefit of the foregoing description, will recognize alternative embodiments. Accordingly, the foregoing description is intended for purposes of illustration and not of limitation.