Abstract:
A system and method are provided for determining link characteristics in order to calculate the optimal data rate because of a link failure. The system includes a first unit ( 20, 22 ) at a first location coupled to one end of each of a plurality of low capacity data links ( 28 ) for assisting in determining the characteristics of each of the links ( 28 ), a second unit ( 22, 20 ) at the second location coupled to the other end of each of the links ( 28 ) for assisting in determining the characteristics of each of the links ( 28 ) based on the characteristics of the test signal received at the second unit ( 22, 20 ), and a processor coupled to the second unit ( 22, 20 ) for determining the optimal transmission rate based on the characteristics of the links ( 28 ) and the number of links ( 28 ) needed to provide the desired transmission rate.

Description:
BACKGROUND 
   This invention relates to telecommunication systems, and more specifically, to inverse multiplexing data streams over multiple links. 
   In telecommunication networks or systems, data or a data stream is transported from one location in the network to another location in the network at various data rates. Thus, the situation may arise, at some point in the network, where the transport data rate for an incoming data stream exceeds the capacity of a single link over which the data stream needs to be transported. Known solutions to this problem teach that the data stream can be distributed or split into separate streams and the separate streams sent over multiple links or lines of lower capacity; the aggregate capacity of the lower capacity links is sufficient to carry the data stream This approach to splitting data or transporting the data stream over several links is known as “inverse multiplexing”. 
   Even when a high capacity link is available in the network that can handle the entire incoming data stream, the data stream may not make full use of the capacity of the single link. Thus, current standards teach that it may be preferable to inverse multiplex the data stream onto a number of lower capacity links, and thereby fully utilize the capacity of the links in the network. 
   In a typical network, there are various bandwidths described in terms of data stream rates or bit rates. For example, a DS 1  or T 1  bit stream is transmitted at a line rate of 1.544 Mbps. The terms “DS 1 ” and “T 1 ” are used interchangeably herein. T 1  is a full-duplex system: transmitted signals are transported on one wire pair, and received signals are transported on a separate wire pair. In each direction, the 1.544 Mbps data streams are organized according to a predetermined protocol. An alternative data rate is E 1 . E 1  bit streams are transmitted at a line rate of 2.048 Mbps. 
   In order to transport data from one location to another, the data is packaged according to a predetermined protocol. One protocol is Asynchronous Transfer Mode (ATM). In accordance with ATM standards, the data is packaged in cells that are called ATM cells. Each ATM cell is 53 bytes in length, wherein each byte is an octet that is made up of eight bits. Each ATM cell includes a payload or information that is 48 octets in length and a header that is 5 octets in length. The header includes information about the payload type (PT) as well as other information. There are various forms of payload, including idle payload. Idle ATM cells may be present in an ATM data stream and may be inserted or deleted by the equipment processing the ATM data stream. ATM equipment that communicates at rates exceeding the capacity of a T 1  line can communicated over multiple T 1  lines, which have an aggregate capacity comparable to the rate of the ATM equipment, using an inverse multiplexing scheme. 
   In the inverse multiplexing scheme, the ATM data stream is divided over several low capacity lines, such as the T 1  lines. For example, ATM Forum specification “Inverse Multiplexing for ATM (IMA) Specification Version 1.0”, AF-PHY-0086.000 (July 1997) defines one approach to inverse multiplexing ATM cell streams on multiple T 1  lines, which is incorporated herein by reference. 
   Depending on the transmission rate or bandwidth demand of the ATM data stream, the ATM data stream will have to be divided over several lower capacity lines. For example, if the data stream is received at a rate that is four times an optimal data rate of the lower capacity lines, then the incoming ATM data stream will have to be inverse multiplexed onto or carried by at least four lines. 
   Known methods of inverse multiplexing teach that all of the low capacity links, among which the ATM data stream is inverse multiplexed, have to be trained at an optimal rate and synchronized so that each line is transmitting from the transmitter end to the receiver end at the same rate. Once the optimal rate is determined and selected, which is based on the number of links needed and the rate or bandwidth of each link, then all of the links operate at that optimal rate until one of the links fails and the optimal rate has to be recalculated. 
   The disadvantage of current solutions, and thus, the problem with the known methods for determining the optimal rate is that the links are considered and trained as needed. This leads to unnecessary time delays for restoring traffic flow when a link failure occurs because the characteristics of other links have to be determined and a new optimal rate established. Thus, at a data rate of 8 Mbps for an ATM cell stream, every minute that there is a delay in restoring traffic flow 480 Mb of traffic stack up or are lost. 
   Therefore, what is needed is a system and method for determining as many links characteristics as possible in order to calculate a new optimal rate, and hence, eliminate the down time caused by a failure in a link. 
   SUMMARY 
   A system and method are provided for determining link characteristics in order to calculate the optimal data rate. The system includes a first unit at a first location coupled to one end of each of a plurality of low capacity data links for assisting in determining the characteristics of each of the links using a test signal transmitted over each of the links, a second unit at the second location coupled to the other end of each of the links for assisting in determining the characteristics of each of the links based on the characteristics of the test signal received at the second unit, and a processor coupled to the second unit for determining the optimal transmission rate based on the characteristics of the links and the number of links needed to provide the desired transmission rate. 
   The method includes determining the characteristics and a maximum rate for each of the links to create a list of available links and associated transmission rates; selecting the link with the lowest rate and setting all available links to transmit at the same rate to determine a total available rate; comparing the total available rate based on the lowest rate and the number of available links to the desired rate; selecting the next lowest rate from the available rates and setting all other links to transmit at the next lowest rate to determine another total available rate; continuing the selecting and comparing until all available rates have been considered to create a list of maximum rates that correspond to the rate for one of the available links, and thus, selecting one total available rate from the total available rates that is at least equal to or greater than the desired rate to produce the optimal rate. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram of two inverse multiplexers (IMUXs) coupled by multiple bi-directional physical communication links for passing ATM cell streams over the links. 
       FIG. 2  is a flow chart for determining the optimal rate and the number of links involved in transporting data between the IMUXs of FIG.  1 . 
   

   DETAILED DESCRIPTION 
   Referring now to  FIG. 1 , a system  10  includes at least two inverse multiplexers (IMUXs)  20  and  22  coupled by a pre-activation communication channel  23  and multiple physical communication links  28   a-n . The system  10  is also shown with a processor  25  coupled to the IMUX  20 , however, the processor  25  could be coupled to the IMUX  22  or the processor  25  could be an internal part of either the IMUX  20  or  22 . 
   For illustration purposes, the IMUXs  20  and  22  are shown coupled by the physical communication links  28   a-n  that re T 1  or DS 1  links, which carry bi-directional format data streams. Each link  28  carries data streams in either direction at a specified rate, which depends on the links characteristics. In the illustrative example, each of the links  28   a-n  carries one DSI data stream  30   a-n  in one direction and another DSI data tream  32   a-n  in the other direction. In discussing the capacity of each ink to carry information, the term&#39;s data rate, bit rate, and bandwidth are used interchangeably to indicate capacity to carry information. In other embodiments, data streams of different rates and formats, such s a DSL on E 1 , may be utilized. The channel  23  is used for communication between the IMUX  20  and the IMUX  22  information related to the optimal rate prior to training of the links  28 . 
   Each of the links  28   a-n  can be a part of or pass through a public switched telephone network (PSTN). Furthermore, the links  28   a-n  may be physically separate, for instance, using separate conductors in separate cables, or using different paths through the PSTN. Also, links  28   a-n  may be physically combined for all or part of the path between IMUX  20  and  22 . For example, the data streams may be multiplexed onto a higher capacity physical communication link, such as a DS 3  link. Additionally, links  28   a-n  may exhibit different properties, including different transmission delays and different error rates. 
   The logical structure for the IMUX  20  and  22  can be implemented using a programmable processor, dedicated hardware, or both. A controller may, in some embodiments, be implemented as software processes executing on a programmable processor, under the control of software stored on a medium, such as a semiconductor read-only-memory (ROM). The controller may also include timing or clocking circuitry to determine the timing of data transfers between modules or units. If the IMUX  20  and/or  22  includes a programmable processor, then software can be distributed to the IMUX  20  and/or  22  on a physical removable medium or over a data network. 
   The IMUX  20  includes a transmitter  24  and a receiver  26 . For illustrative purposes, an ATM cell stream is discussed, but any form or format of data stream can be handled. The transmitter  24  accepts an inbound ATM cell stream  44  over a physical ATM communication link  40 . The transmitter  24  of the IMUX  20  inverse multiplexes and sends the ATM cell stream  44  in the form of the DS 1  data streams  32   a-n  over the links  28   a-n , respectively, to the IMUX  22 . 
   The IMUX  22  includes a transmitter  34  and the receiver  36 . The receiver  36  receives the DS 1  data streams  32   a-n  from the transmitter  24  of the IMUX  20  and multiplexes the DS 1  data streams  32   a-n . The IMUX  22  can also receive incoming ATM cell streams and inverse multiplex the incoming ATM cell stream over the links  28   a-n . More specifically, the transmitter  34  of the IMUX  22  accepts an inbound ATM cell stream  54  over a physical ATM communication link  50 . The transmitter  34  inverse multiplexes the ATM cell stream  54  in the form of DS 1  data streams  30   a-n  over a selected number of the links  28   a-n , respectively, that are then received by the receiver  26  of the IMUX  20 ; the receiver  26  multiplexes the DS 1  data streams  30   a-n  to form an outbound ATM cell stream  42  transmitted over the ATM communication link  40 . 
   The IMUXs  20  and  22  can be configured to use any number of the links  28   a-n . Each of the DS 1  data streams  30   a-n  on the links  28   a-n , respectively, each terminate at the receiver  26  of the IMUX  20  where ATM cell stream is reconstructed to produce an ATM cell stream  42  and sent over the ATM communication link  40 . Likewise, the DS 1  data streams  32   a-n  on the links  28   a-n , respectively, each terminate at the receiver  36  of the IMUX  22 , where an ATM cell stream  52  is reconstructed and sent over the ATM communication link  50 . 
   In order for the ATM cell stream to be reconstructed, the ATM cells that are received at the receivers  26  and  36  from the links  28   a-n  must be multiplexed by the receivers  26  and  36  in the same order that the ATM cells were received at the transmitters  20  and  22  from the ATM communication links  40  and  50 , respectively. Accordingly, a number of links from the links  28   a-n  must be selected, synchronized, and trained to operate at an optimal rate. Typically, the number of links that are selected from the links  28   a-n  depends on the data rate that the customer requests, the physical characteristics of each of the links  28   a-n , and the number of available links. Based on these factors and other criteria, the optimal rate for each group of selected links  28  is selected. 
   The process of determining and selecting the optimal transmission rate is carded out by the processor  25 . Various factors are considered, including the characteristics of each link  28 , in order to determine the optimal rate. The characteristics considered include attenuation, error-rate, and noise. For example, if four links between the IMUX  20  and  22  are selected, such as links  28   a-d , to carry the inverse multiplexed ATM cell stream, then four links are trained at the selected optimal rate. 
   Referring now to  FIG. 2 , the process of determining the optimal rate begins at step  100 . At step  102 , the characteristics of each link  28   a-n  is determined and initial synchronization is performed. A predefined signal is transmitted from one IMUX, typically the master IMUX, to the other IMUX on each of the links  28 . Based on the received signal characteristics, the characteristics of each link  28  can be determined using such factors as attenuation. At step  104 , using the characteristics of each link  28 , a maximum-bit-rate or bandwidth is determined for each link  28   
   At step  106 , the total bandwidth for all the links  28   a-n  are determined by adding or summing the maximum-bit-rate for each of the links  28 . Additionally, the total available bandwidth is determined by setting each link  28  to operate at the lowest maximum-bit-rate selected from all of the available links and then calculating the total capacity, which is based on the selected lowest maximum-bit-rate times the number of available links  28 . At step  108 , a minimum-bit-rate variable is defined and set to zero. At step  110 , it is determined if all links have been compared and analyzed in order to determine the optimal data rate. Typically, there will be several links to compare, unless all of links  28  coupling the IMUX  20  and the IMUX  22  are not successfully activated, and hence, unavailable. 
   If there are available links  28  that can be compared and analyzed, then at step  112 , the maximum-bit-rates for all of the successfully activated links  28  are compared to find the link  28  with the lowest maximum-bit-rate or bandwidth. At step  114 , the link  28  with the lowest value of maximum-bit-rate is found and the minimum-bit-rate is set to equal the maximum-bit-rate of that link  28 . At step  116 , using the now defined minimum-bit-rate, the systems determined how many of the available links  28  are needed to provide at least the desired bandwidth with each link  28  trained at the minimum-bit-rate. At step  118 , the total-optimal-bandwidth is determined, which is the sum of all of the links  28  needed to operate at the defined minimum-bit-rate. 
   At step  120 , it is determined if the total-optimal-bandwidth is greater than the available total bandwidth that was previously determined. If so, then at step  122 , the total available bandwidth is set equal to the total-optimal-bandwidth. At step  124 , the link  28  that was determined to have the lowest maximum-bit-rate is ignored so that the link with the next lowest maximum-bit-rate can be found and the process returns to step  110 . If at step  120  it is determined that the total-optimal-bandwidth is not greater than the previous value of available total bandwidth, then no change is made and the process returns to step  124 . 
   If at step  110  it is determined that there are no other links to consider, meaning that all of the links  28  have been considered or there are no available links  28 , then at step  130 , the optimal rate is determined by taking the total available bandwidth and dividing it by the number of links  28  that are to participate at the optimal data rate. 
   In some instances, the number of links  28  selected to participate in transporting the data stream between the IMUX may be greater than needed. Thus, there may be at east one link available to be trained at the optimal data rate and set to idle status as describe in detail in available U. S. application Ser. No. 09/751,808 titled “PORT SWAPPING FOR INVERSE MULTIPLEXED DIGITAL SUBSCRIBER LINES” filed on Dec. 29, 2000 and incorporated herein by reference. 
   It is to be understood that the foregoing description is intended to illustrate and not limit the scope of the invention, which is defined by the scope of the appended claims. Other aspects, advantages, and modifications are within the scope of the following claims. Although described in the context of particular embodiments, it will be apparent to those skilled in the art that a number of modifications to these teachings may occur. Thus, while the invention has been particularly shown and described with respect to one or more preferred embodiments thereof, it will be understood by those skilled in the art that certain modifications or changes in form and shape may be made therein without departing from the scope and spirit of the invention as set forth above and claimed hereafter.