Abstract:
Data transmission over a network is disclosed. The data transmission includes aligning boundaries of application, transport, network, and data link layer packets. The transmission also includes receiving data transmission channel information, and determining a suitable number of data link layer packets per application/transport/network layer packet. The determination is based on the channel information. The suitable number of data link layer packets allows continuous alignment between the boundaries of the application, transport, network, and data link layer packets.

Description:
BACKGROUND  
       [0001]     This application is a continuation application and claims the priority date of co-pending U.S. patent application Ser. No. 09/858,532, filed May 15, 2001. 
     
    
       [0002]     The present invention relates to transmission of information packets, and more particularly, to aligning and determining data packets for transmission of data over a network channel.  
         [0003]     Data, e.g. an image, transmitted over a network may travel through several layers based on Transmission Control Protocol/Internet Protocol (TCP/IP) reference model. These layers may include application, transport, network, data link, and physical layers. Each layer may add a header to address data parameters.  
         [0004]      FIG. 1  illustrates an exemplary layering and encapsulation structure  100 . For example, an application layer image  102  may be digitized and compressed. The compressed image may then be segmented and encapsulated into several Real-time Transport Protocol (RTP) packets  104  residing at the transport layer.  
         [0005]     In some cases, the data may be segmented into independent decoding units (IDU) prior to compression to reduce error propagation during compression and transmission. Each RTP packet  104  may include a 12-byte header  106 . The RTP packet  104  may further be encapsulated into a Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) packet  108 . At the next lower layer, e.g. the network layer, each TCP/UDP packet  108  may be encapsulated into an Internet Protocolg (IP) packet or datagram  110 . Each IP datagram  110  may then be fragmented into one or more frames  112  at the data link layer, such as Layer  2 . However, difficulties associated with this structure  100  include the loss or corruption of a single frame at the data link layer propagating into successively higher layers to invalidate a large number of packets.  
       SUMMARY  
       [0006]     In one aspect, the present disclosure describes a computer readable medium containing executable instructions which, when executed in a processing system, causes the system to transmit data over a network. The article of manufacture includes aligning boundaries of application, transport, network, and data link layer packets. The article of manufacture also includes receiving data transmission channel information, and determining a suitable number of data link layer packets per application/transport/network layer packet. The determination is based on the channel information. The suitable number of data link layer packets allows continuous alignment between the boundaries of the application, transport, network, and data link layer packets.  
         [0007]     In another aspect, a computer readable medium containing executable instructions which, when executed in a processing system, causes the system to determine a suitable number of frames per datagram (k) is described. The article of manufacture includes receiving data transmission channel information. The channel information includes a frame error rate (P e,f ), a frame size (F), a datagram header size (H), and a maximum number of retransmissions allowed (L). The article of manufacture further includes computing the suitable number as  
           H     FP     e   ,   f           ,       
 
 when the frame error rate (P e,f ) is sufficiently small. When the frame error rate (P e,f ) is not sufficiently small, but an independent decoding unit (IDU) error rate (P e,d ) after L retransmissions is sufficiently small, the suitable number is computed by finding a solution to  
         H   -       ∑     i   =   2     L     ⁢           ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢           ⁢     k   i         -       LFP     e   ,   f     L     ⁢     k     L   +   1           =   0.       
 
 Otherwise when the IDU error rate (P e,d ) after L retransmissions is not sufficiently small, the suitable number of frames is computed by finding a solution to  
         H   -       ∑     i   =   2     L     ⁢           ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢           ⁢     k   i         -       (     LF   +       (     L   +   2     )     ⁢           ⁢     HP     e   ,   f           )     ⁢           ⁢     P     e   ,   f     L     ⁢     k     L   +   1         -       FP     e   ,   f         2   ⁢   L     +   1       ⁢     k       2   ⁢   L     +   2         +       ∑     i   =   0       L   -   1       ⁢           ⁢       (     i   -   L   -   1     )     ⁢     (       HP     e   ,   f       +   F     )     ⁢           ⁢     P     e   ,   f       i   +   L   +   1       ⁢     k     i   +   L   +   2             =   0.       
 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]      FIG. 1  illustrates a conventional layering and encapsulation structure.  
         [0009]      FIG. 2  illustrates a typical layout of a layering and encapsulation structure.  
         [0010]      FIG. 3  illustrates a layout of a layering and encapsulation structure according to one embodiment of the present invention.  
         [0011]      FIG. 4  shows a technique for determining a suitable number of frames (k*) to pack information from a single IDU/datagram.  
         [0012]      FIG. 5  is a block diagram of a packet transmission system according to an embodiment of the present invention.  
         [0013]      FIG. 6  is a block diagram of a calculator according to an embodiment.  
     
    
     DETAILED DESCRIPTION  
       [0014]     The present application is a continuation of U.S. application Ser. 09/858,532, filed May 15, 2001, which is held in common ownership by the assignee of the present application.  
         [0015]     In recognition of the above-described difficulties in using the prior method of data transmission over a network, the invention describes, in one aspect, a technique for aligning the boundaries of packets. The term “packet” may comprise the data unit defined at the application, transport, network, or data link layer. Thus, the packet may be an independent decoding unit (IDU), an IP/UDP/RTP datagram, or a frame. However to reduce the confusion, the following designations will be used throughout the present disclosure. Packets at the application layer are referred to as IDUs; packets at the transport and network layers are referred to as datagrams; and packets at the data link layer are referred to as frames.  
         [0016]     The alignment technique also involves determining a suitable number of data link layer frames per application/transport/network layer IDU/datagram. In one embodiment, this is equivalent to finding a suitable number of frames to pack information from a single IDU/datagram. Consequently for purposes of illustration and not for purposes of limitation, the exemplary embodiments of the invention are described in manner consistent with such use, though the invention is not so limited.  
         [0017]      FIG. 2  illustrates a typical layout of the layering and encapsulation structure  100  of  FIG. 1 . Since data transmission standards often do not specify the size of an independent decoding unit (IDU) or datagram, the boundaries of IDUs, datagrams, and frames, at different layers, may not align with each other as shown in  200 - 208 .  
         [0018]     For example, loss or corruption of frame  5  at Layer  2 , during data transmission over a network, may result in the corruption of two datagrams  2  and  3 . The corruption of the two datagrams may occur because the boundaries of frame  5  overlap, as shown in  200 ,  202 , the extent of both datagrams  2  and  3 . Thus, the corruption may occur even though the size of the frames may be significantly smaller than that of the datagrams. The corruption of the datagrams may result in dropping of the corrupted datagrams.  
         [0019]     The corrupted datagrams may then result in the corruption of independent decoding units (IDU) in the compressed data at the application layer. For example, the boundaries of corrupted datagram  2  overlap, as shown in  204 ,  206 , the extent of IDUs  1  and  2 . Only a part of IDU  1  may become corrupted. However, the corrupted part may prevent the entire IDU from being correctly decoded because the compressed data within an IDU are correlated. Moreover, the boundaries of corrupted datagram  3  overlap, as shown in  206 ,  208 , the extent of IDUs  3  and  4 . Thus, the corruption of a single frame (e.g. frame  5 ) may propagate through the layers to cause the corruption of 4 IDUs.  
         [0020]      FIG. 3  illustrates the layout of the layering and encapsulation structure according to one embodiment of the present invention. The frames, datagrams, and IDUs are properly aligned (see  300 ,  302 ) to substantially reduce the propagation of a corrupted frame into two or more IDUs. Thus, the boundary of an IP/UDP/RTP datagram is aligned along the boundary of a frame in Layer  2 .  
         [0021]     In the illustrated embodiment, the size of an IDU matches that of a datagram. However, the IDU size, with respect to the datagram size, may be adjusted according to the structure of the compression scheme. Furthermore, in the illustrated embodiment of  FIG. 3 , each datagram is divided into two frames (k=2). A variable k may be used to denote the number of frames comprising an IDU/datagram. The datagram size, with respect to the frame size, may be adjusted to vary the value of k.  
         [0022]     Further, because some IDU parameters are same as those in IP/UDP/RTP headers, those parameters may be discarded to prevent redundancy. For example, the 6-byte start-of-partition (SOP) marker defined in JPEG-2000 may be discarded.  
         [0023]     Since data transmission standards often fix the frame size in the data link layer (e.g. Layer  2 ), the value of k may be adjusted by controlling the size of the IP/UDP/RTP datagram. The value of k may be selected in a trade-off as follows. To reduce the impact of a corrupted frame, the value of k should be chosen as small as possible. Thus, small k means reducing the datagram size with respect to the frame size. However, a small k has the disadvantage of bearing the load of a large IP/UDP/RTP header overhead. For example, a typical IP/UDP/RTP datagram has a 40-byte header, which may be shared by k frames. If k is chosen to be a small value, the 40-byte header may be distributed among a small number of frames. However, if k is chosen to be a large value, such as  10 , the 40-byte header may be distributed among 10 frames. In this case, each frame would carry a header with only about 4 bytes.  
         [0024]     As mentioned above, since the IDU size matches the resultant value of k times the frame size, adjusting the IDU/datagram size may be equivalent to finding a suitable value for k. This suitable value of k (e.g. k*) may be defined as the number of frames per IDU that maximizes the actual uncorrupted throughput. The definition of the “actual uncorrupted throughput” may be defined as the rate of uncorrupted data, excluding headers.  
         [0025]     Suppose C represents the ideal throughput with no errors and no headers. Using P e,d  as the IDU error rate, F as the frame size, H as the IDU header size, L as the maximum number of retransmissions allowed, and k as the number of frames encapsulated in one IDU, the actual uncorrupted throughput may be expressed as:  
             T   =       (     1   -     P     e   ,   d       L   +   1         )     ⁢     kF       (     kF   +   H     )     ⁢           ⁢       ∑     i   =   0     L     ⁢           ⁢     P     e   ,   d     i           ⁢     C   .               (   1   )             
 
         [0026]     If P e,f  represents the frame error rate, then the relationship between P e,d  and P e,f  may be expressed as: 
 
 P   e,d =1−(1 −P ) k .   (2) 
 
 Further, if the value of P e,f  is small (e.g. P e,f &lt;0.2%), equation (2) may be simplified as 
 
P e,d =kP e,f .   (3) 
 
 Thus, equation (1) becomes  
             T   =       (     1   -       (     kP     e   ,   f       )       L   +   1         )     ⁢     kF       (     kF   +   H     )     ⁢           ⁢       ∑     i   =   0     L     ⁢           ⁢     (       k   i     ⁢     P     e   ,   f     i       )           ⁢     C   .               (   4   )             
 
         [0027]     If the value of k*P e,f  is small, equation (4) may be further simplified as:  
             T   =       kF       (     kF   +   H     )     ⁢     (       kP     e   ,   f       +   1     )         ⁢     C   .               (   5   )             
 
         [0028]     Therefore, the value of k* to maximize the actual uncorrupted throughput T may be expressed as:  
               k   *     =         H     FP     e   ,   f           .             (   6   )             
 
         [0029]     Otherwise if the value of k*P e,f  is not sufficiently small, equation (4) should be modified. If the IDU error rate (P e,d ) after L number of retransmissions is small (e.g. P e,d &lt;5%), then equation (1) may be simplified as:  
             T   =       kF       (     kF   +   H     )     ⁢           ⁢       ∑     i   =   0     L     ⁢           ⁢     (       k   i     ⁢     P     e   ,   f     i       )           ⁢     C   .               (   7   )             
 
 Therefore, the value of k* may be obtained by finding a solution to the polynomial equation derived from equation (7):  
               H   -       ∑     i   =   2     L     ⁢           ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢           ⁢     k   i         -       LFP     e   ,   f     L     ⁢     k     L   +   1           =   0.           (   8   )             
 
         [0030]     Otherwise if the IDU error rate after L number of retransmissions is not sufficiently low, the value of k* may be obtained by finding a solution to polynomial equation derived from equation (1):  
               H   -       ∑     i   =   2     L     ⁢           ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢           ⁢     k   i         -       (     LF   +       (     L   +   2     )     ⁢           ⁢     HP     e   ,   f           )     ⁢           ⁢     P     e   ,   f     L     ⁢     k     L   +   1         -       FP     e   ,   f         2   ⁢   L     +   1       ⁢     k       2   ⁢   L     +   2         +       ∑     i   =   0       L   -   1       ⁢           ⁢       (     i   -   L   -   1     )     ⁢     (       HP     e   ,   f       +   F     )     ⁢           ⁢     P     e   ,   f       i   +   L   +   1       ⁢     k     i   +   L   +   2             =   0.           (   9   )             
 
         [0031]     Accordingly, a technique for determining a suitable number of frames (k*) to pack information from a single IDU/datagram is illustrated in  FIG. 4 , in accordance with an embodiment of the present invention. The technique involves aligning the boundary of an IDU/datagram to the boundary of a frame, at  400 . The technique also includes receiving data transmission channel information at  402 . The received channel information includes frame error rate (P e,f ), frame size (F), IDU/datagram header size (H), and maximum number of retransmissions allowed (L).  
         [0032]     In a given data transmission system, the frame size (e.g. in bytes) and the maximum number of retransmissions are often fixed. Therefore, finding a suitable IDU/datagram size may be equivalent to finding a suitable value for k.  
         [0033]     If the value of P e,f  is determined to be small at  404 , the suitable value of k is computed as  
           k   *     =       H     FP     e   ,   f             ,       
 
 at  406 . 
 
 Otherwise if the IDU error rate (P e,d ) after L number of retransmissions is determined to be small at  408 , the suitable value of k is obtained by finding a solution to the polynomial equation  
           H   -       ∑     i   =   2     L     ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢     k   i         -       LFP     e   ,   f     L     ⁢     k     L   +   1           =   0     ,       
 
 at  410 . Otherwise if the IDU error rate (P e,d ) after L number of retransmissions is determined to be sufficiently large at  408 , the suitable value of k is obtained by finding a solution to the polynomial equation  
           H   -       ∑     i   =   2     L     ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢     k   i         -       (     LF   +       (     L   +   2     )     ⁢     HP     e   ,   f           )     ⁢     P     e   ,   f     L     ⁢     k     L   +   1         -       FP     e   ,   f         2   ⁢   L     +   2       ⁢     k       2   ⁢   L     +   2         +       ∑     i   =   0       L   -   1       ⁢       (     i   -   L   -   1     )     ⁢     (       HP     e   ,   f       +   F     )     ⁢     P     e   ,   f       i   +   L   +   1       ⁢     k     i   +   L   +   2             =   0     ,     
     ⁢           ⁢     at   ⁢           ⁢   412.         
 
         [0034]      FIG. 5  is a block diagram of a packet transmission system  500  according to an embodiment of the present invention. The transmission system  500  receives input data and packetizes the data for transmission. The system  500  appropriately prepares and builds the frames so that the frame boundaries are aligned with the boundaries of IDU/datagrams. The system  500  includes a data packet builder  502 , a calculator  504 , and a channel interface module  506 .  
         [0035]     The calculator  504  receives input parameters, such as frame error rate (P e,f ), frame size (F), IDU/datagram header size (H), and maximum number of retransmissions allowed (L). Using these parameters, the calculator  504  computes a suitable number of frames per IDU/datagram (k*). This number (k*) is then sent to the data packet builder  502 . The data packet builder  502  aligns and segments the input data packet into the suitable number of frames (k*) per input data packet (e.g. datagram). The frames are then output to the channel interface module  506  for delivery across a network through the data transmission channel.  
         [0036]     A block diagram of the calculator  504  is shown in  FIG. 6 . The calculator  504  includes at least one comparator  600 ,  602 , and a processor  604 . The first comparator  600  operates to compare the frame error rate (P e,f ) with a first threshold value to determine whether the error rate (P e,f ) is sufficiently small. If the error rate is sufficiently small, the first comparator  600  sends a signal to the processor  604  to select k* according to the equation  
         k   *     =         H     FP     e   ,   f           .         
 
 The processor  604  receives input parameters necessary to compute k*. If the error rate is greater than the first threshold, the first comparator  600  sends a signal to the second comparator  602  to compare the IDU error rate after L number of retransmissions with a second threshold value. This value is a threshold set to determine whether the IDU error rate after L retransmissions is sufficiently small. 
 
         [0037]     If the error rate after the L retransmissions is sufficiently small, the second comparator  602  sends a signal to the processor  604  to select k by finding a solution to the polynomial equation  
         H   -       ∑     i   =   2     L     ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢     k   i         -       LFP     e   ,   f     L     ⁢     k     L   +   1           =   0.       
 
 Otherwise if the error rate after the L retransmissions is greater than the second threshold, the value of k* is computed by finding a solution to the below polynomial equation  
         H   -       ∑     i   =   2     L     ⁢         P     e   ,   f       i   -   1       ⁡     (       HP     e   ,   f       +   F     )       ⁢     (     i   -   1     )     ⁢     k   i         -       (     LF   +       (     L   +   2     )     ⁢     HP     e   ,   f           )     ⁢     P     e   ,   f     L     ⁢     k     L   +   1         -       FP     e   ,   f         2   ⁢   L     +   1       ⁢     k       2   ⁢   L     +   2         +       ∑     i   =   0       L   -   1       ⁢       (     i   -   L   -   1     )     ⁢     (       HP     e   ,   f       +   F     )     ⁢     P     e   ,   f       i   +   L   +   1       ⁢     k     i   +   L   +   2             =   0.       
 
         [0038]     A packet alignment technique/system for data transmission has been described. In the illustrated embodiments, the technique/system is arranged to encapsulate one IDU into one IP/UDP/RTP datagram. Each datagram may be segmented and encapsulated into k frames at Layer  2 , where k is an integer. By selecting appropriate k for a given frame size, the IDU boundary may be aligned with the datagram boundary and the frame boundary. A suitable value for k should maximize the actual uncorrupted throughput.  
         [0039]     While specific embodiments of the invention have been illustrated and described, other embodiments and variations are possible. For example, the calculator  504  of  FIG. 6  may be implemented with only one comparator. The comparator may compare frame error rates, before and after retransmissions, with two threshold values. The comparisons may select which of the three equations to use in determining the value of k* in the processor  604 .  
         [0040]     All these are intended to be encompassed by the following claims.  
         [0000]     Appendix  
       EXAMPLE 1  
       [0000]    
       
         
           
              Problem: Assume that the header size (H) after header compression is 16 bits. Moreover, the mobile data channel has the following characteristics.  
              Ideal throughput (C)=8 kbps.  
              Frame error rate (P e,f )=10-3.  
              Frame size (F)=160 bits.  
              Solution: According to  
              Eq. (6)→the suitable k value (k*)=10.  
              Eq. (5)→the actual uncorrupted throughput (T)=7.84.  
           
         
       
     
       EXAMPLE 2  
       [0000]    
       
         
           
              Problem: Assume that the header size is 320 bits.  
           
         
       
     
         [0049]     Moreover, the channel characteristics are the same as Example 1 except that the frame error rate is 10 −2.  
        Solution: Because k*P e,f  in this example is not sufficiently small, eq. (8) or (9) may be used instead of (6). The k* may vary according to the value of the maximum number of retransmissions allowed (L).     * Case 1: No retransmission allowed (L=0)     Equation (9) becomes H−2HP e,f k−FP e,f k 2 =0     Therefore, k*=12. According to eq. (1), the actual uncorrupted throughput (T) is 6.03 kbps.     Case 2: Max number of retransmissions allowed=1 (L=1)     Equation (8) becomes H−FP e,f k 2 =0 .     Therefore, k*=14. According to eq. (1), the actual uncorrupted throughput (T) is 6.76 kbps.     Case 3: Max number of retransmissions allowed=2 (L=2)     Equation (8) becomes 2F e,f   2 k 3 +(HP e,f +F)P e,f k 2 −H=0.     Therefore, k*=13. According to eq. (7), the actual uncorrupted throughput (T) is 6.05 kbps.     Case 4: Max number of retransmissions allowed=3 (L =3)     Eq. 8 becomes 3FP e,f   3 k 4 +2(HP e,f +F)P e,f   2 k 3 +(HP e,f +F)P e,f k 2 −H=0        
 
         [0062]     Therefore, k*=12. According to eq. (7), the actual uncorrupted throughput (T) is 6.04 kbps.