Abstract:
Disclosed is an adaptive polling method of a router including establishing initial values required for carrying out a polling on ports respectively, polling the respective ports in accordance with the established initial values for an established polling interval time, and reestablishing values required for polling to be carried out properly by considering traffic states of the respective ports. The present invention establishes higher polling on ports having larger traffic volumes and lower polling on ports having smaller traffic volumes, so as to improve the performance of a router.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to a method of controlling a transmission of a router and, more particularly, to a method of controlling the transmission of the router using polling.  
           [0003]    2. Background of the Related Art  
           [0004]    Generally, a router is an apparatus connecting networks having different lower hierarchy structures. The router transmits packet data (hereinafter abbreviated packet) through an optimal path established in connection with a routing table, as well as connects the received packet to another network or a target node of its own network.  
           [0005]    There are two methods for controlling a transmission of a router, these are the interrupt-based method and the polling method. When a packet is received using the interrupt-based method, the corresponding port produces an interrupt signal so as to inform a controller of the packet&#39;s arrival. In the polling method, the controller polls the respective ports periodically or successively to make the corresponding port process the received packet.  
           [0006]    [0006]FIG. 1 illustrates a block diagram of the inner structure of a router used in connection with the polling method. Router  100  connects the corresponding destination or a by-way-of the destination so that packets received through the respective ports  20 ,  30 ,  40 , and  50  are transferred via the most suitable path. The traffic supported by each of the ports  20 ,  30 ,  40 , and  50  depends on a line speed and circuit capacity of the connected network.  
           [0007]    Controller  10  sends a poll to the respective ports  20 ,  30 ,  40 , and  50  periodically or successively. The port receiving the poll transmits a received packet to the controller  10 . Then, the controller routes the packet to its destination through an optimal path.  
           [0008]    Ports  20 ,  30 ,  40 , and  50  are unable to process the received packet until receiving the poll. When the poll is received from the controller  10 , the received packet is transmitted to the controller  10 . If an amount of the received packet overflows the capacity of the port, so as not to complete the transmission, the packet continues being received until the next poll is received.  
           [0009]    In such a polling method, the controller  10  polls all of the ports successively and fairly, but fails to consider the traffic supported by the respective ports or the transmission speed of the packet. Polling is carried out on ports having high and low traffic volumes without distinction, thereby reducing the system efficiency. Also, the polling method fails to respond to burst traffic properly, thereby reducing the performance of the router. Moreover, the packet may be destroyed if an overflow occurs, due to the abrupt increase of a traffic through a specific port.  
         SUMMARY OF THE INVENTION  
         [0010]    An object of the invention is to solve at least the above problems and/or disadvantages and to provide at least the advantages described hereinafter.  
           [0011]    An object of the present invention is to provide an adaptive polling method of a router in which the number of polls allocated to the router ports is based upon the relative traffic load supported by the respective ports.  
           [0012]    To achieve these objects and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, an adaptive polling method of a router includes establishing initial values required for carrying out a polling on ports respectively, polling the respective ports in accordance with the established initial values for an established polling interval time, and re-establishing values required for polling to be carried out properly by considering traffic states of the respective ports if the polling interval time is over.  
           [0013]    In another aspect of the present invention, an adaptive polling method of a router includes establishing initial values required for carrying out a polling on ports respectively, polling the respective ports in accordance with the established initial values for an established polling interval time, finding values of the polling counts of the respective ports and a polling interval time by considering traffic states of the respective ports if the established polling interval time is over, and feeding back to the step of polling the respective ports by allotting the found polling counts to the corresponding ports.  
           [0014]    The objects of the present invention may be achieved in whole or in part by an adaptive polling method, including determining a number of times to poll each of a number of ports during each of a plurality of polling intervals, based on a traffic status; polling each of the number of ports during the polling interval in accordance with the number of times to poll; and communicating data with the ports when polled.  
           [0015]    The objects of the present invention may be further achieved in whole or in part by an adaptive polling router, including a plurality of ports, each port interconnecting a separate network with the router and communicating data between the router and the respective network; and a controller that polls each of the plurality of data ports a number of times during a polling interval, wherein the plurality of ports communicate the data with the controller when polled, and the number of times that each port is polled during each of a plurality polling intervals is dynamically determined, based on a traffic status of the corresponding port.  
           [0016]    The objects of the present invention may be further achieved in whole or in part by an adaptive polling method that includes determining a number of times to poll each of a number of ports during each of a plurality of polling intervals, based on a traffic status; polling each of the ports during each of the polling intervals in accordance with the respective number of times to poll; and communicating data with the ports when polled. The ports supporting greater relative traffic loads are polled more frequently than the ports supporting lesser relative traffic loads. Alternatively, the ports supporting relatively higher priority traffic are polled more frequently than the ports supporting relatively lower priority traffic. Each polling interval is based on a sum of the number of times to poll each of the ports, during the respective polling interval, each of the ports is polled a minimum number of times during the polling intervals, and the minimum number of times each of the ports is polled is independent of a relative traffic load supported by the port and independent of a traffic priority supported by the port. The ports are data ports of a router that each connect a separate communication network to the router to support internetwork communication.  
           [0017]    Additional advantages, objects, and features of the invention will be set forth in part in the description which follows and in part will become apparent to those having ordinary skill in the art upon examination of the following or may be learned from practice of the invention. The objects and advantages of the invention may be realized and attained as particularly pointed out in the appended claims. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]    The invention will be described in detail with reference to the following drawings in which like reference numerals refer to like elements wherein:  
         [0019]    [0019]FIG. 1 illustrates a block diagram of an inner structure of a router used in connection with the polling method;  
         [0020]    [0020]FIG. 2 illustrates a flowchart of an adaptive polling method of a router according to a preferred embodiment of the present invention;  
         [0021]    [0021]FIG. 3 illustrates graphs that show a count of packets received by the corresponding ports of FIG. 1;  
         [0022]    [0022]FIG. 4A illustrates the number of packets stored in buffers of the respective ports of FIG. 1 at time t 1 ; and  
         [0023]    [0023]FIG. 4B illustrates the number of packets stored in buffers of the respective ports of FIG. 1 at time t 2 .  
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0024]    [0024]FIG. 2 illustrates a flowchart of an adaptive polling method of a router according to a preferred embodiment of the present invention. The method includes establishing a polling interval time and initial values of a polling count of each port (S 1 ), processing the packets accumulated in the port buffers by polling the respective ports (S 2 ), accumulating the packets received by the respective ports  20 ,  30 ,  40 , and  50  (S 3 ), checking whether the polling interval time is over (S 4 ), and carrying out steps S 2  and S 3  again, if the polling interval time is over (S 5 ). Steps S 2  and S 3  are repeated by re-establishing the polling count of each of the ports and the polling interval time and then allotting the reestablished polling count to the respective ports  20 ,  30 ,  40 , and  50 .  
         [0025]    Router  100  establishes a weight of each port, a basic value of each port, and an initial value of a count of packets received by each port. Additionally, the router finds a polling interval time and a polling count of each port using the established values (S 1 ). A statistical experimental value may be established as the initial value, but a user may enable the router to establish the initial value more randomly. In the related art, the polling interval time identifies the time between one polling time and the next polling time. In the present invention, the polling interval time is a time for which the established polling count is applied. Moreover, router  100  may dynamically vary the polling interval in step S 5  of each cycle, through the process illustrated in FIG. 2, or invariantly use the initial polling interval in each cycle. When the polling interval is varyingly reestablished in step S 5 , it is varied in accordance the change in traffic volume for the respective port. When invariantly using the initial polling interval as a fixed value, the total polling counts are normalized so as to be a constant value.  
         [0026]    Once the initial value is established, the controller  10  executes the number of polls identified by the polling counts for each of the respective ports, before the polling interval is over (S 2 ). The respective ports receive and accumulate the packets in buffers while the polling is carried out (S 3 ). After completing each polling interval, the controller  10  re-determines the polling counts of the respective ports, allots the corresponding polling counts to the respective ports, and re-establishes the polling interval. Then, steps S 2  and S 3  are carried out again.  
         [0027]    A formula for determining the poling counts of the respective ports using the basic values and weights may be expressed by the equation:  
         polling count of n th  port=weight of n th  port * count of packet(s) accumulated on n th  port+basic value of n th  port   (1) 
         [0028]    The weight and basic value are established differently in each of the ports, in accordance with the traffic. Initially, experimental statistical values are allotted to the weight and basic value. Alternatively, a user may establish arbitrary values for the weight and basic value. The controller  10  adjusts the polling interval time or the polling counts of the respective ports  20 ,  30 ,  40 , and  50  by changing the weights and basic values. The weights are determined by the importance of the respective ports and a maximum speed of the received packets. Additionally, the weights are assigned to give the ports having larger traffic volumes greater priority, so their accumulated packets may be processed more expeditiously. The basic values are established by considering the port having the least traffic and are used to ensure that each port has at least one poll within a maximum delay time. If the poll is not given to the specific port within the maximum delay time, the packets received by the port may be lost due to burst traffic.  
         [0029]    If a length of the polling interval becomes too long, overhead becomes smaller so as to be vulnerable to burst traffic. If the length of the polling interval becomes too short, there exist so many operations that the overhead becomes larger. The maximum delay time is the maximum polling interval that may be used without a loss of packets due to burst traffic.  
         [0030]    [0030]FIG. 3 illustrates graphs that show a count of packets received by the corresponding ports of FIG. 1. Packet counts t n  received by ports  20 ,  30 ,  40 , and  50  at time t 1  are  5 ,  4 ,  3 , and  1 , respectively. Packet counts t n  received by ports  20 ,  30 ,  40 , and  50  between times t 1  and t 2  are  6 ,  6 ,  3 , and  2 , respectively. And packet counts t n  received by ports  20 ,  30 ,  40 , and  50  between times t 2  and t 3  are  7 ,  5 ,  2 , and  2 , respectively.  
         [0031]    [0031]FIG. 4A illustrates the number of packets stored in buffers of the respective ports of FIG. 1 at time t 1  and FIG. 4B illustrates the number of packets stored in buffers of the respective ports at time t 2 . These figures show the number of packets stored in the respective ports during sequential time periods, the time points t n  identifying the sequential time periods, and the number of packets processed during the polling interval time.  
         [0032]    An exemplary use of the adaptive polling method is explained below. Controller  10  initially establishes the weights W n  of the ports as W 20 =1.7, W 30 =1.2, W 40 =1.0, and W 50 =0.0 and the basic values I n  as I 20 =0, I 30 =0, I 40 =1, and I 50 =2. These weights W n  and basic values I n  are merely exemplary and were selected to simplify the description of the preferred embodiment.  
         [0033]    A polling count P n  of each port is found by substituting the values for the weight W n , basic value I n , and count of the packets received at time t 1  for their respective variables in equation (1). Decimals values are rounded up to the nearest ones digit.  
         [0034]    P 20 =5*1.7+0=9  
         [0035]    P 30 =4*1.2+0=5  
         [0036]    P 40 =3*1.0+1=4  
         [0037]    P 50 =1*0+2=2  
         [0038]    A polling interval time T at time t 1  is found by adding all of the polling counts, as expressed by the equation:  
           T= 9+5+4+2=20  
         [0039]    The controller  10  allots the calculated polling counts P 20 , P 30 , P 40 , and P 50  to the respective ports. Namely,  9 ,  5 ,  4 , and  2  polls are given to ports  20 ,  30 ,  40 ,  50 , respectively. For each poll, the controller  10  gives the respective buffer an opportunity to transmit the packets stored in the buffer.  
         [0040]    After the 20 polls are finished (i.e., the polling interval time T is ended), the controller  10  calculates the polling counts P n , again, and re-establishes the revised polling interval T at time t 2 . A user may shorten or lengthen the polling interval time T by revising the weights W n  or basic values I n . The user may optimize the weights W n  and basic values I n  to prevent too many operations from occurring and to prevent the loss of packets due to traffic bursts.  
         [0041]    Another polling count P n  of each port is found at time t 2 , as follows.  
         [0042]    P 20 =6*1.7+0=11  
         [0043]    P 30 =6*1.2+0=8  
         [0044]    P 40 =3*1.0+1=4  
         [0045]    P 50 =2*0+2=2 The polling interval time T at time t 2  is 25.  
         [0046]    Controller  10  allots the calculated polling counts P 20 , P 30 , P 40 , and P 50  to the respective ports. Namely,  11 ,  8 ,  4 , and  2  polls are given to ports  20 ,  30 ,  40 ,  50 , respectively. For each poll, the controller  10  gives the respective buffer an opportunity to transmit the packets stored in the buffer.  
         [0047]    After the 25 polls are finished, the controller  10  calculates the polling counts P n  at time t 3  and re-establishes the polling interval time T. This process continues for every sequential interval of time T.  
         [0048]    As explained in the above description, each of the router ports may have periods of large and small traffic volume and high and low data transfer rates, which is a traffic characteristic in general data transmission. Considering such a traffic characteristic, the present invention establishes high weights on ports or time zones having large traffic volumes and low weights on ports or time zones having small traffic volumes so as to improve the performance of a router. Moreover, the polling method provided by the invention enables it to be applied to network systems having a plurality of ports.  
         [0049]    The foregoing embodiments and advantages are merely exemplary and are not to be construed as limiting the present invention. The present teaching can be readily applied to other types of apparatuses. The description of the present invention is intended to be illustrative, and not to limit the scope of the claims. Many alternatives, modifications, and variations will be apparent to those skilled in the art. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures.