Abstract:
A system and method for equalizing delay in a dynamic packet switching network using transmit and receive buffers. The network includes a plurality of user access stations each equipped with a transmit buffer and a receive buffer, and a plurality of switches and communication links interconnecting the user access stations. A control station having communication links to the switches and user access stations operates to set up and change transmission paths between the user access stations, and to control the buffers in the user access stations to equalize packet transmission delay through the network and to eliminate packet rate doubling upon changing transmission paths. The system also includes a buffer shifting feature whereby a controlled buffering in a transmitting user access station is gradually shifted to a buffer in a receiving user access station during a period of time following a change from a longer transmission path to a shorter transmission path.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to routing and transferring data and, in particular, to a system and method for equalizing delay in a dynamic packet switching network that routes and transfers data in addressed packets. 
     2. Description of the Related Art 
     Telecommunication networks exist that interconnect large numbers of user stations using telecommunication facilities. These networks utilize transmission systems, switching systems, and station equipment to transmit voice, video, and data between two points. The physical circuits between two points in the network are referred to as links, and the points of junction of the links are referred to as nodes. The user stations in data transmission networks may be telephones, terminals, printers, facsimile units, computers, and the like. 
     Packet switching networks were designed to provide a more efficient method of transferring data over networks. However, packet switching networks can also be used to transmit digitized voice. A network that uses packet switching as a means of transmitting data is commonly referred to as a packet switching data network (PSDN). 
     A packet is a discrete unit of a data message that is routed individually over a PSDN. Each packet contains control information that enables the message to be reassembled in proper sequence before it reaches its final destination. Packet switching is efficient because packets occupy the channel or path through the network only for the brief time they are in transit, in contrast to a circuit-switched message, which requires the use of the transmission line for the duration of the message. On completion of the data transmission, the channel or path is made available for transfer of other packets. The transmission lines through the PSDN are supplemented with computerized switches that control traffic routing and flow. A standard feature of packet switching is automatic error detection and correction of transmitted packets. 
     A conventional communications network using data packet switching is shown diagrammatically in FIG. 1. Users and other networks access this network through user access stations (&#34;UAS&#34;), shown, for example, in FIG. 1 as UAS 1 , UAS 2 , and UAS 3 . Other networks N 1 , N 2  are considered to be like other users. User access stations send user data to the network and receive user data from the network through one or more switches S j . Paths are established through the network of switches S j  in order to set up virtual communication channels between users on different user access stations. The transmissions delay for a data packet to go from one UAS to another UAS depends on the particular path chosen. 
     A typical transmission delay time through the network will be referred to as T. For example, T could be 20 milliseconds. The longest path chosen for a virtual connection through the network in a typical case has a transmission delay of 10 T. For example, for T=20 milliseconds, 10 T=200 milliseconds. 
     Data packet size need not be constant. Data packet size can be fixed, as it is in ATM networks. However, it must be no longer than a maximum length. The maximum packet length is such that the latency time to transmit the packet over any of the links k i  or l y  is smaller than T/10. The links k i  are those connecting the user access stations to the switches, and the links l y  are those connecting switches to other switches. 
     Some packet switching data networks are dynamic in a number of ways, for example, a network of packet switches on satellites in non-earth synchronous orbits. The communication links k i  between the user access stations UAS and the switches S j  are not permanent. Links k i  are alive for a typical period of time of about 15,000T (for example, 5 minutes for T=20 milliseconds). When old links k i  are removed, new ones are established, but the new links k i  are almost always established on a new switch S j . For example, when link k 2  (FIG. 1) is removed a new link between UAS 1  and S 2  may be established. There is always at least one link between a UAS and a network switch S j . 
     The links l y  between switches S j  are not permanent; they have typical lifetimes of about 30,000 T (for example, 10 minutes for T=20 milliseconds). However, the pattern of links must satisfy certain conditions. There are always enough links to allow any UAS to communicate to any other UAS. Some of the links k i  or l y  may be permanent or much longer lived than stated above. 
     In a typical system, there are control stations CS having communication links to the network switches S j . Their function is to control the network and to set up and tear down virtual connections. Any user access station UAS can always communicate with at least one control station CS. The location of the control stations CS are not germane to the present invention. It will be assumed that the network interconnection pattern (links k i  and l y ) is predictable and can be computed by the control stations CS for any future time. In practice, all that is needed is the ability to compute the pattern into the future for the duration of the longest virtual connection established at the present time. Malfunctions can affect the predictability, but there exist ways of handling malfunctions. 
     A virtual connection between two network users that lasts longer than the link lifetimes must take different paths through the network during the connection lifetime. It will be assumed that the dynamic interconnection pattern (links k i  and l y ) is such that a series of paths can be chosen for the duration of the virtual connection, and each path can be used for at least a time period 1,200 T (for example, 4 minutes for T=20 milliseconds). This is, of course, as in any other kind of network, assuming bandwidth availability. If there is not enough bandwidth available, the connection cannot be set up. Resources are reserved for the expected duration of the call. As shown in FIG. 2a, for each of a series of consecutive time intervals t 1 , t 2 , t 3 , . . . , t n  there are corresponding paths P 1 , P 2 , P 3 , . . . P n , such that path P i  is used during time interval t i  for the virtual connection. 
     Referring to FIG. 2b, a first path P 1 , goes through switches S 1 , S 3 , S 4 , S 5 , S 9 , S 10 , S 11 , and S 13 , while a second path P 2  goes through switches S 2 , S 6 , S 7 , S 11 , and S 13 . For the same virtual connection between UAS 1  and UAS 2 , path P 1  is used during time interval t 1 , and path P 2  is used during time interval t 2 , and so forth. 
     Problems are caused by the changes in paths through the network used by one virtual connection. As shown in FIG. 3, a virtual connection is set up between user U 1  on UAS 1  and user U 2  on UAS 2 . During the first time interval t 1 , path P A  is used. During the second time interval t 2 , path P B  is used. Path P A  has a transmission delay time from UAS 1  to UAS 2  equal to t a , while path P B  has a transmission delay time from UAS 1  to UAS 2  equal to t b . It should be noted that the transmission delay times t a  and t b  are not intervals during which paths P A  and P B  are used, that is given by the intervals t 1  and t 2 . 
     It will first be assumed that t a  &lt;t b  (for example, t a  =20 milliseconds and t b  =100 milliseconds), and that there is no buffering at UAS 2 . After the end of time interval t 1 , the virtual connection uses path P B  instead of path P A . The first data packet traveling along path P B  will arrive at UAS 2  a period of time t b  -t a  later than it would have if it had gone on path P A . This will leave a silent gap of duration t b  -t a  in the data stream (for example, t b  -t a  =80 milliseconds) which is too large to be acceptable for many communication services. This problem is simple to correct, however changing from a longer path P B  to a shorter path P A  causes more difficult problems, as explained below. 
     It will now be assumed that during the first time interval t 1 , path P B  is used, and during the second time interval t 2 , path P A  is used (see FIGS. 4a and 4b). Again, t a  is the transmission delay along path P A , and t b  is the transmission delay along path P B , and t a  &lt;t b . There is no buffering at UAS 2  or at UAS 1 . 
     Now assume that paths P A  and P B  have a common switch S C , as shown in FIG. 4a. At the end of the time interval t 1 , the connection will be changed from path P B  to path P A . When a data packet first arrives at switch S C  along path P A  there are earlier data packets from the connection still traveling along path P B  (there is also an interpacket spacing time, but this is negligible for the problem described). There will be a period of time equal to t b  -t a  during which switch S C  receives packets from the connection at twice the normal rate. If the link from switch S C  to UAS 2  is fully (or close to fully) utilized, switch S C  must buffer cells from this connection for a period much longer than t b  -t a . If left uncorrected, this will cause delay and possibly increase cell loss probabilities for other virtual connections (cell=data packet). 
     If paths P A  and P B  do not have a common switch, as shown in FIG. 4b, UAS 2  must maintain two links for a time interval t b  -t a , during which time it gets cells at twice the normal rate for the connection. This will also result in an increased delay and increased cell loss probabilities for other virtual connections. 
     SUMMARY OF THE INVENTION 
     It is thus an object of the present invention to provide an improved system and method for routing and transferring data in addressed data packets, which overcomes the above-described problems in dynamic packet switching networks. 
     It is a further object of the present invention to provide a system and method for equalizing delay in a dynamic packet switching data network and eliminating packet rate doubling upon changing transmission paths. 
     Additional objects, advantages and novel features of the invention will be set forth in the description that follows, and will become apparent to those skilled in the art upon reading this description or practicing the invention. The objects and advantages of the invention may be realized and attained by the appended claims. 
     To achieve the foregoing and other objects and in accordance with the purpose of the present invention, as embodied and broadly described herein, the apparatus of this invention comprises a system for equalizing delay in a dynamic packet switching network, comprising a buffer means for buffering a packet transmission through the network for equalizing packet transmission delay and for eliminating packet rate doubling upon changing transmission paths through the network. 
     It is preferred that the buffer means comprises a first buffer means for buffering a packet transmission at a receiving user access station for equalizing packet delay through the network upon changing from one transmission path to another transmission path. The buffer means also preferably comprises a second buffer means for buffering a packet transmission at a transmitting user access station for eliminating packet rate doubling when a change is made from a longer transmission path to a shorter transmission path through the network. A means for controlling the second buffer means provides a first amount of buffering at the transmitting user access station immediately upon changing from a longer transmission path to a shorter transmission path through the network, and means for gradually shifting the first amount of buffering from the second buffer means to the first buffer means during a period of time following the change from a longer transmission path to a shorter transmission path. 
     In a further aspect of the present invention, in accordance with its objects and purposes, the apparatus hereof comprises a dynamic packet switching network, comprising first and second user access stations each having at least one buffer to delay packet transmission, and a network of switches and communication links interconnecting the first and second user access stations. A control station having communication links to the switches and user access stations provides means for setting up and changing transmission paths between the first and second user access stations, and means for controlling the buffers in the first and second user access stations for equalizing packet transmission delay through the network for different transmission paths. 
     It is also preferred that the control station have means for controlling the buffers in the first and second user access stations for eliminating packet rate doubling when a change is made from a longer transmission path to a shorter transmission path through the network. The means for controlling the buffers in the first and second user access stations comprises means for causing the buffer in the second user access station to delay packets received from the first user access station for a sufficient time to cause a total transmission delay time for each transmission path equal to a transmission delay time of a longest one of the transmission paths. 
     It is also preferred that the means for controlling the buffers in the first and second user access stations comprises means for causing the buffer in the first user access station to delay packets transmitted from the first user access station to the second user access station for eliminating packet rate doubling when a change is made from a longer transmission path to a shorter transmission path. The means for controlling the buffers also preferably comprises means for gradually shifting the buffering provided by the buffer in the first user access station to the buffer in the second user access station during a period of time following a change from the longer transmission path to the shorter transmission path. 
     In a further aspect of the present invention, in accordance with its objects and purposes, the method hereof comprises a method for equalizing delay in a dynamic packet network, comprising the steps of providing first and second user access stations each having at least one buffer to delay packet transmission, and a network of switches and communication links interconnecting the first and second user access stations, setting up and changing transmission paths between the first and second user access stations across the network of switches and communication links, and controlling the buffers in the first and second user access stations to equalize packet transmission delay through the network for all of the transmission paths. 
     It is also preferred that the method comprise the step of controlling the buffers in the first and second user access stations to eliminate packet rate doubling when a change is made from a longer transmission path to a shorter transmission path through the network. The method also includes the step of gradually shifting a buffering from the buffer in the first user access station to the buffer in the second user access station after changing from a first longer path through the network to a second shorter path through the network. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will become more clearly appreciated as the disclosure of the present invention is made with reference to the accompanying drawings, wherein: 
     FIG. 1 is a schematic diagram providing a general overview of a conventional dynamic packet switching data network. 
     FIG. 2a illustrates an allocation of resources for a series of consecutive time intervals for a conventional dynamic packet switching data network. 
     FIG. 2b is a schematic diagram depicting the paths used during two intervals (for example) in a conventional virtual connection. 
     FIG. 3 is a schematic diagram showing a virtual connection that uses different paths between two users of a conventional dynamic packet switching data network. 
     FIG. 4a is a schematic diagram showing two paths with a common switch used in a virtual connection between two users of a conventional dynamic packet switching data network. 
     FIG. 4b is a schematic diagram showing two paths with separate links into a receiving user access station of a conventional dynamic packet switching data network. 
     FIG. 5a is a schematic diagram of a preferred embodiment of the present invention in which a buffer system is used at each user access station to equalize delay in the network. 
     FIG. 5b is a schematic diagram of the present invention showing two paths with separate links into a receiving user access station. 
     FIG. 5c is a schematic diagram of the present invention showing the delay equalizing system of the present invention used to equalize delay across three transmission paths. 
     FIGS. 6a and 6b are flow charts of the process steps used by the present invention to equalize delay in a dynamic packet switching data network. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Reference will now be made in detail to a preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings. 
     Referring to FIGS. 5a, 5b, 6a, and 6b, a system and method for equalizing data packet delay through a dynamic packet switching data network will be described. The system according to the present invention will also eliminate data packet rate doubling at a common switch along two paths used by one connection or data packet rate doubling at the receiving UAS. 
     As shown in FIGS. 5a and 5b, two buffers are used at each user access station UAS. A receive buffer RB n  operates to delay packets so that delay is equalized to that of the longest paths used by the virtual connection. A transmit buffer TB n  operates to eliminate data packet rate doubling when a change is made from one path to another shorter path. Buffer control RBC n  and TBC n  provide control their associated buffers RB n  and TB n . A control station CS having communication links to the network switches S j  and the user access stations UAS functions to control the buffers and the virtual connections of the network. The communication feeds to and from the buffers TB n  and RB n  are combined at cross connect elements CC n  in each of the user access stations. The details of the buffers and their operation in the packet network are described below. 
     The change of a virtual connection from a path P A  to a longer path P B  will be described first. The paths can have a common switch S C  before the receiving user access station UAS 2  (FIG. 5a), or the paths can enter the receiving user access station UAS 2  through two links without a common switch (FIG. 5b). The connection starts, for example, using path P A . Packets traveling along path P A  undergo a transmission delay time t a  from UAS 1  to UAS 2 . When the virtual connection is moved from path P A  to path P B , the packets traveling along path P B  undergo a transmission delay time t b  from UAS 1  to UAS 2 . 
     In order to equalize the transmission delay times for paths P A  and P B , packets traveling along path P A  are delayed for a time t b  -t a  in buffer RB 2 . On the other hand, packets traveling along path P B  are not delayed at RB 2 . After moving the virtual connection from path P A  to path P B , the first packet for the connection traveling along path P B  arrives at RB 2  after the last packet traveling along path P A  leaves the buffer RB 2 . There is no gap in the data packet stream, and transmission delay time is the same from U 1  to U 2  when paths P A  or P B  are used. 
     The change of a virtual connection from path P B  to a shorter path P A  will be described next. During the time the connection is using path P B , the transmission delay is t b , and the packets are not delayed at either TB 1  or at RB 2 . When the change is made to the shorter path P A , the present invention avoids packet rate doubling by delaying packets for transmission along path P A  for a time t b  -t a  in buffer TB 1 . In this way, the first packet traveling along path P A  will arrive at S C  (FIG. 5a) or at UAS 2  (FIG. 5b) after the last packet traveling along path P B  arrived at S C  or at UAS 2 . This eliminates data packet rate doubling and equalizes the transmission delay times for paths P A  and P B . 
     Referring to FIG. 5c, the present invention will next be described for the case where a change to a new path P C  longer than P A  is made. Assume the connection uses paths P B , P A , and P C  (in that order) with transmission delays t b , t a , and t c , respectively. Also assume, as above, that t a  &lt;t b  and that t a  &lt;t c  &lt;t b . Path P B  is the path with longest delay of the three paths. When the change is made from path P B  to the shorter path P A  the procedure described above is used. As described, the packets are buffered and delayed for a time t b  -t a  in the transmit buffer TB 1 , but not in the receive buffer RB 2 . If the system simply waits until the change is made from path P A  to path P C , there will be a gap of time t c  -t a  in the packet stream, and the total delay will be (t b  -t a )+t c , which is larger than t b  because t c  -t a  is positive. 
     The problem just described is avoided by shifting the buffering of packets for the virtual connection from TB 1  to RB 1  during the time that the path P A  is being used. In one example of the present invention, it will be assumed that each path can be used for a time period of at least 12,000 T (e.g., 4 minutes for T=20 milliseconds), where T is the typical transmission delay through the network. It will also be assumed that there is a maximum transmission delay of 10 T (e.g., 200 milliseconds for T=20 milliseconds) for transmission across the longest path P B . 
     The buffering delays applied in order to equalize the total delay are equal to the transmission time differences along two paths. Buffering delays are therefore also bounded by a maximum time equal to 10 T. The average number of packets transmitted for the connection in a time 12,000 T (path P A  minimum active time) is 1,200 times larger than the average number of packets transmitted in a time 10 T (maximum buffering delay). So the number of packets buffered at TB 1  is 1/1,200 times the number of packets the virtual connection delivers during the time period 12,000 T, which is a lower bound to the period of time any one path is used, in particular, path P A . 
     Buffering can be shifted from buffer TB 1  to RB 2  by sending packets from TB 1  to RB 2  at a rate one per thousand larger than the average for the connection. This procedure will take time 1,000(t c  -t a ) which is smaller than 10,000 T and also smaller than the time path P A  is used. During this time packets are delayed at RB 2  for a time sufficient to make the total delay equal to t b . At the start of the procedure packets are delayed by t b  -t a  at TB 1  and by zero at RB 2 . At the end of the procedure packets are delayed by zero at TB 1  and by t b  -t a  at RB 2 . 
     During the time period 1,000(t b  -t a ) the delay in buffer TB 1  changes linearly from t b  -t a  to zero, and in buffer RB 2  the delay changes linearly from zero to t b  -t a . At the end of this buffering shift, there is no delay at buffer TB 1 , and a delay of t b  -t a  at RB 2  thus occurs near the end of the use of the path P A . When the change is made to the path P C , the transmission delay is t c , which is longer than t a . There will now be no gap in the packet stream out of UAS 2  to user U 2 . The first packet traveling along path P C  will arrive at the buffer RB 2  a time t c  -t a  later than if it had gone along P A . During this time the connection to U 2  is fed from the buffer RB 2 . The delay at buffer RB 2  will be t b  -t c  for packets traveling along path P C . The total transmission delay including buffering is equal to t b , as mentioned above. 
     In order to accomplish the above delay equalizing procedure it is necessary to reserve 1/1,000 (0.1%) of the bandwidth in the network for buffer shifting. 
     Buffers TB 2  and RB 1  are used in an analogous way to equalize delay and eliminate gaps in the packet stream for the connection in the opposite direction. The requirement that a path must be used for at least a time 12,000 T need not apply to the last path used by the connection. 
     Referring to FIGS. 6a and 6b, the method for equalizing delay in a dynamic packet network according to the present invention will be further described as a series of process steps. 
     In FIG. 6a, the process steps for an initial start of the delay equalizing process are shown. The process starts by determining the path P max  that will be used having the maximum time delay t max  (e.g., P B  and t b  in the example above). If the duration of the data transmission is indeterminate, the system will use the upper bound for t max . A first path P s  having a transmission delay t s  is then set by the control system. If t s  &lt;t max , the system will delay packets by t max  -t s  in RB 2  with no delay at TB 1 . If t s  =t max , the system will not delay the packets at either TB 1  or at RB 2 . 
     In FIG. 6b, the process steps for equalizing delay in the network upon switching paths are shown. When the time comes for a path change to be made, the buffering, if any, is at RB 2 . The current path is P C  with transmission delay t c , and the new path is P N  with transmission delay t c . If t n  =t c , no buffering or delay changes are made by the control system. However, if t n  &gt;t c , a buffering delay of length t max  -t n  will be applied at RB 2  to packets traveling along path P N . The buffering delay was t max  -t c  before the change and will be t max  -t n  after the change. If t n  &lt;t c , the control system will apply a buffering delay of length t c  -t n  in the buffer TB 1 . The system will then gradually shift the buffering from TB 1  to RB 2  using the procedure described above during the time path P N  is used. At the end of the buffer shifting procedure all buffering delay will be at RB 2  and will be equal to t max  -t n . The total transmission delay is always t max . 
     The loop terminates during the use of the last path. If the process is in the middle of a buffer shifting procedure, there is no difficulty. The remaining packets in the network are delivered to U 2  with a constant delay equal to t max . 
     The minimum length of time that any path (except the last) can be used can be reduced as desired. For example, if the minimum time a path must be usable is 1,200 T (instead of 12,000 T) then the buffering must be shifted from TB 1  to RB 2 , when necessary, 10 times as fast. This implies sending one more packet per one hundred packets during the buffering shift process. This requires 1% of available bandwidth to be reserved for this purpose. This can be carried further if more bandwidth is made available for shifting. 
     It will be appreciated that the present invention is not limited to the exact construction or process steps that have been described above and illustrated in the accompanying drawings, and that various modifications and changes can be made without departing from the scope thereof. It is intended that the scope of the invention only be limited by the appended claims.