Abstract:
A retry algorithm determines the maximum number of transmissions and retransmissions that may be attempted for the frame in the head of a transmit queue or transmit buffer that needs to be transmitted across a communications link. The algorithm attempts to achieve a constant delay for each packet in frame by taking into account the number of frames residing in the transmit queue, the number of transmit opportunities elapsed between the arrivals of two successive frames in the transmit queue s, as well as the buffering capabilities of both the transmitting and receiving sides. The transmission and retransmission control technique provides for a way of managing the TX and RX buffers with a size that is suitable for the application being used and the underlying transport network. The number of retries is adapted to incoming and outgoing data rate changes in order to provide a fixed delay wireless link transport and maximize effective channel utilization.

Description:
CROSS REFERENCE TO RELATED APPLICAITONS  
       [0001]     This application claims the benefit of U.S. provisional Application No. 60/543,338, filed on Feb. 9, 2004, by Ho, et al. and having docket No. TI-37837PS. 
     
    
     FIELD OF THE INVENTION  
       [0002]     These inventions relates in general to the field of communications and networking and more particularly to a method and apparatus for providing retry control, buffer sizing and buffer management techniques necessary for data transmission.  
       BACKGROUND  
       [0003]     Determining and managing the size of transmit (TX) and receive (RX) buffers and controlling retries of data frames are some of the more important issues faced when designing a transport mechanism for use with either wireline or wireless electronic devices over impaired channels. Some buffer sizing and management techniques currently in use were designed for wireline transport applications and are not suitable to a wireless transport setting, given the higher error rates and bursty transmission techniques/applications that are associated with wireless environments. Other buffer sizing and management techniques, such as those used for the Real-time Transport Protocol (RTP), have heavy buffer requirements typically in the order of 100&#39;s of Kilobytes of memory to support a typical video streaming application. The need for so much buffer memory adds to the overall cost of a design and the latency of the transport, and may not be appropriate for some cost sensitive designs or designs where space is at a premium.  
         [0004]     With regard to retry control mechanisms, in some systems, retries are usually performed with a fixed maximum number of transmission attempts, regardless of the buffer capacity available or the requirements of the application (e.g., MPEG 2 transport streams) being used. This leads to situations where system overhead and transport latency are unnecessarily increased and where retries are attempted even when the information that is being retransmitted may be too “old” to be useful while channel utilization is approaching channel capacity, or information may be lost because a buffer (e.g., transmit buffer) may not be large enough to hold the amount of incoming data that needs to be transmitted while the retries are being attempted.  
       SUMMARY OF INVENTION  
       [0005]     In accordance with a first aspect of the invention, a method for determining the retransmission attempts that will be made for an information frame that needs to be transmitted includes assembling a frame at a transmit buffer and determining the value of N from the equation N=min (N+B, I+1−Q) or N=N−1 for a retransmission attempt to determine a maximum number of transmission and retransmission attempts that may be made to transmit or retransmit the frame, the equation recalculates a new value of N, based on the previous value N.  
         [0006]     In a second aspect of the invention a communication device includes a transmit buffer and a means for recalculating the value of N based on the equation N=min (N+B, I+1−Q) or N=N−1, wherein the equation recalculates a new value of N, based on the previous value N. N, after the recalculation, specifies a maximum number of transmission and retransmission attempts that may be made for a frame in the head of a transmit queue.  
         [0007]     In a third aspect of the invention the communication devices include a Moving Pictures Experts Group 2 (MPEG2) codec for encoding/decoding the information that is transmitted or received.  
         [0008]     In still another aspect of the invention, a method for maintaining a substantially constant delay for each packet in a frame that is transmitted between a first and a second communication device includes recalculating a maximum number of transmission and retransmission attempts that can be made for every frame that is to be transmitted or retransmitted from the first to the second communication device and using the equation N=min (N+B, I+1−Q) or N=N−1 to determine the maximum number of transmission and retransmission attempts, wherein the equation recalculates a value of N, based on the previous value N.  
         [0009]     Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]     The features of the present invention, which are believed to be novel, are set forth with particularity in the appended claims. The invention may best be understood by reference to the following description, taken in conjunction with the accompanying drawings, in the several figures of which like reference numerals identify like elements, and in which:  
         [0011]      FIG. 1  shows a block diagram of a communication system in accordance with an embodiment of the invention  
         [0012]      FIG. 2  shows a block diagram of an electronic device in accordance with an embodiment of the invention.  
         [0013]      FIG. 3  shows a state diagram of a frame transmission routine in accordance with an embodiment of the invention.  
         [0014]      FIG. 4  shows a diagram highlighting the link delay components associated with an Ultra-Wide Band (UWB) system in accordance with an embodiment of the invention.  
         [0015]      FIG. 5  shows a diagram highlighting the link latency budget associated with an UWB system in accordance with an embodiment of the invention.  
         [0016]      FIG. 6  shows a diagram highlighting how the TX RAM size is calculated in accordance with an embodiment of the invention.  
         [0017]      FIG. 7  shows a diagram highlighting how the RX RAM size is calculated in accordance with an embodiment of the invention.  
         [0018]      FIG. 8  shows a diagram highlighting some retry consideration in an UWB system in accordance with an embodiment of the invention.  
         [0019]      FIG. 9  shows a diagram highlighting an example of the link latency for a range of 7.3 meter in accordance with an embodiment of the invention.  
         [0020]      FIG. 10  shows a diagram highlighting an example on how the TX RAM size is determined for a UWB system with a range of 7.3 meter in accordance with an embodiment of the invention.  
         [0021]      FIG. 11  shows a diagram highlighting an example on how the RX RAM size is determined for a UWB system with a range of 7.3 meter in accordance with an embodiment of the invention.  
         [0022]      FIG. 12  shows a diagram highlighting an example on some transmission constraints for a UWB system with a range of 7.3 meter in accordance with an embodiment of the invention. 
     
    
     DETAILED DESCRIPTION  
       [0023]     While the specification concludes with claims defining the features of the invention that are regarded as novel, it is believed that the invention will be better understood from a consideration of the following description in conjunction with the drawing figures.  
         [0024]     In order to compensate for the “bursty” nature of the data arrivals from an application such as a Moving Picture Experts Group 2 (MPEG-2) Transport Stream (MPEG2-TS) and of the data transmissions of the application over a wireless link, a retry algorithm is devised and implemented in accordance with an embodiment of the invention which controls the retries of data frames by adapting to that bursty nature and attempts to meet the target data loss and delay requirements of the application.  
         [0025]     In  FIG. 1 , there is shown a wireless communication system  100  that includes a set top box  102  and a television  104  that are communicating via a wireless link with each other. Set top box  102  can receive signals via a television cable network, television broadcast network, or a television satellite network. As an example, the set top box  102  may be transmitting a movie or other video information to the television set  104  using the MPEG-2 application and incorporates the retry algorithm of the present invention. In order for the set top box  102  to transmit information to the television set  104 , it may use, as illustrative example, an Ultra-Wide Band (UWB) transceiver or other wireless or wire line device. It should be noted that although this embodiment of the invention is being described in relation to a set top box  102  and television set  104 , the present invention is not so limited and can be implemented in any device that needs to communicate with another device either via a wireless link as in this illustrative embodiment, or using a wireline connection.  
         [0026]     In  FIG. 2 , there is shown a simplified block diagram of the set top box  102  highlighting the elements of this embodiment of the invention. The set top box  102  includes an UWB physical (PHY) layer  206  which may include such components as the radio frequency circuitry, input/output connections and other PHY layer circuitry (not shown). Coupled to the UWB PHY layer  206  is the UWB Medium Access Control (MAC) layer  204 . The MAC layer  204  includes a video interface port  214 , a Tx (transmit) buffer  216 , a Rx (receive) buffer  218  and a controller  212 . The Tx  216  and Rx  218  buffers may comprise memory storage areas such as Random Access Memory (RAM) or other types of memory, depending on the specific design requirements (e.g., some designs may use a first-in first-out (FIFO) architecture.) The functions of controller blocks  208  and  212  can be performed by a microprocessor, microcontroller or other combination of hardware and/or software that can execute the necessary algorithms to provide control for the set top box  102  as well as comprise the means for calculating the values of N from Equation 1 or 2 as described below.  
         [0027]     Coupled to the UWB MAC layer  204  is the application layer  202 . The application layer  202  in this embodiment includes a MPEG-2 Codec  210 , which performs all the necessary MPEG-2 data manipulation. The application layer may also include further controller  208  functions such as for controlling the operation of the MPEG-2 Codec  210 .  
         [0028]     It is worth noting that although the retry algorithm is being described here in relation to an MPEG-2 application, it can be used with other applications that require a retry mechanism in either wireless or wireline designs. One purpose of the retry algorithm is to determine a retry count for every frame that needs to be transmitted, based on the application being used which in this example is MPEG-2-TS and the transmission medium being used, which in this example is an Ultra Wideband (UWB) wireless link.  
         [0029]     The retry algorithm in accordance with an embodiment of the invention is based on the following equations which recalculates a value, N, prior to each new transmission attempt and after each transmission attempt. The equations use a min (minimum) function which selects the smaller of the two values (N+B) or (I+1−Q). The algorithm is based on the following equations: 
 
 N =min( N+B, I+ 1 −Q ) for each new transmission attempt  Equation 1
 
 N=N− 1 after each transmission attempt  Equation 2 
 
         [0030]     Wherein,  
         [0031]     The new value of N is the maximum number of transmission attempts that may be made for the head-of-queue frame (frame that is in line for transmission at the transmit (Tx) buffer.) Equations 1 and 2 recalculate a new value of N, based on the previous value N. Prior to each frame transmission attempt, the value of N is calculated using Equation 1 maintained by the Tx path and the equation recalculates a new value of N, based on the previous value N. After each transmission attempt (whether successful or not), the value of N is decremented by 1 as indicated by Equation 2. The decrementing can be done by the transmitter. If N&gt;0 after Equation 1 is executed, the Tx path will attempt to transmit the (new) frame; if N&gt;0 after Equation 2 is executed, the Tx path will attempt to retransmit the (old) frame which failed in the previous transmission or retransmission Otherwise, the frame will be discarded. For each new or old frame that is to be transmitted or retransmitted, the Tx Path will recalculate a new value N using Equation 1 or 2, respectively. Because it is possible that several “aged” frames (frames that have already exceeded their link delay limit, before being transmitted) may reside in the queue, the Tx path will verify N&gt;0 before each transmission or retransmission attempt, including the first one, of every frame.  
         [0032]     I is a constant value that is stored as a Tx path parameter in the device&#39;s memory. This value can be set before enabling a transmission such as a video stream transmission. I, is typically determined based on the buffering capabilities of both the transmitting node and the receiving node, if known. It is also based on the available bandwidth that was allocated for the transmission of the video stream. For example, if there is plenty of bandwidth allocated, then more retry attempts can be made in case the transmission is occurring in an error prone environment. The value for I can be set and stored when a device incorporating the invention is manufactured, with the value for I being preferably stored in non-volatile memory so that it is retained even if the device is powered down. I is the maximum number of transmit opportunities for a data frame. Examples on how I is determined will be provided further below.  
         [0033]     Q is the number of frames residing in the transmit queue for this stream. For each new frame that is received, such as at the video interface port  214 , this value will be incremented by 1. For each successful frame transmit or discard of this stream, this value of Q is decremented by 1.  
         [0034]     B is the number of transmit opportunities between successive data frames received in the transmit buffer. This number may be provided by the firmware for each frame in its Buffer Descriptor (BD.) The firmware may keep a local B counter that gets incremented for each successful or failed transmission attempt (these events may result in interrupts from the Tx path). When a new frame arrives at the video interface port  214 , the current value of B may be stored in the frame&#39;s BD and B will be reset to 0. When the transmit queue is empty (Q=0), both B and N are set to I. This may include the time when a stream is newly created. Since B does not need to be maintained when the queue is empty, it does not need to be notified (interrupted) for each transmission opportunity that arises when no data is available for transmission. Setting B and N to I when Q=0 ensures that N=I (after Equation 1 is executed) for the first frame arriving in the queue (Q=1). This simplifies the Tx path so it does not have to recognize the empty queue condition and can use the same equation for every frame, regardless of the queue status.  
         [0035]     The algorithm of Equations 1 and 2 is derived based on the following considerations: N should not be larger than I+1−Q in order that all the remaining Q−1 frames, especially the one at the end of the queue, be transmitted within (I+1−Q)+(Q−1)=I transmit opportunities since their arrival to meet the link delay limit. Moreover, after each transmit attempt, as for example after a transmit opportunity has elapsed, the number of transmissions allowed for the head-of-the queue frame is reduced by one. The more/less transmissions the current head-of-the-queue frame is attempted, the less/more transmissions the next frame in the transmit queue can have to meet the link delay limit of a particular design. That is, N must be decremented by one upon each transmission attempt and is carried over to the next frame in the queue. If a frame arrives B transmit opportunities after the previous frame, that frame can be given B more transmit opportunities for the same link delay limit, hence N+B in the above Equation 1.  
         [0036]     Some of the considerations used in implementing the retry algorithm include that the PHY layer  206  characteristics provide the MAC layer  204  with raw (after PHY layer Forward Error Correction (FEC) but before MAC retry) Frame Error Rate (FER.) The application requirements (such as one frame loss per hour) dictate the target Frame Loss Rate (FLR) that is the rate in which frames are discarded after a certain number of retries. Also, retries in terms of numbers are determined to bring the raw FER provided by the PHY to the target FLR required by the application.  
         [0037]     Other considerations include that Channel Time Allocations (CTAs) or transmission opportunities are arranged based on the PHY data rates, application data rates and retries. The link delay limit is calculated such that a frame can have the planned retries on the arranged CTA within this delay limit. The TX buffer is sized to provide enough buffering for newly arrived frames while earlier frames are undergoing retires. The RX buffer is sized to provide enough buffering for newly received frames, while earlier frames are waiting for their time to be released. The retries are controlled so that “old” frames that have been buffered at the TX side longer than the link delay limit are not transmitted or retransmitted. This ensures that precious medium bandwidth is not wasted on transmitting or retransmitting “old” frames and enforces a maximum acceptable delay necessary for applications such as streaming video.  
         [0038]     Referring now to  FIG. 3 , there is shown a state diagram for the retry and buffer management algorithm of an embodiment of the invention. In state  302 , the routine starts with variables B and N set equal to I and Q set equal to the number of data frames in the transmit queue. The routine then moves to idle state  304 . If there is no transmit operation (!TxOp) as shown by event line  326 , the routine stays in the idle state  304 . If there is a transmit operation and Q is not equal to zero (TXop &amp;&amp; Q !=0) as shown by event  334 , the routine moves to “determine N state”  316  where N is recalculated by taking the min function of (N+B, I+1−Q). If, however, there is a transmit operation but Q is equal to zero (TxOp &amp;&amp; Q=0) as shown by event  332 , the routine moves to empty queue state  312  where the queue is emptied and then back to idle state  304 .  
         [0039]     If in the “determine N state”  316 , if N is equal to zero as shown by event  336 , the routine moves to the discard Buffer Descriptor (BD) state  320 . If N is not equal to zero (N!=0), in state  316  the routine in event  338  moves to the transmit frame state  318 . Once the transmission has occurred (Tx Done) in event  352 , the routine moves to state  308  where N is reduced by 1. If the transmission was successful, the routine goes to state  306  from state  308  where it notifies the host. From state  306  the routine moves to state  346  where the next B is fetched. If the BD is a null in event  348  the routine goes to the empty queue state  312  where the queue is emptied, otherwise it moves to the idle state  304 .  
         [0040]     If the transmission failed, the routine moves to state  310  where it is determined whether to keep the BD for the most recent data frame. In state  310  if N is not equal to zero (N!=0), the BD is kept in state  314  and then the routine goes to idle state  340 . From the idle state  340  the routine moves to state  318  upon a transmit operation (TX OP) occurring in event  350 . If no transmit operation (!TX OP) occur  328 , the routine stays in the idle state  340 . If N is equal to zero as shown by event  344 , from state  310  the routine moves to state  320  where the BD is discarded.  
         [0041]     From state  320 , the routine goes to state  322 , where the host is notified and the routine moves to state  324  in order to fetch the next B. After fetching the next B, the routine moves to state  316  to determine the value of N for the new frame. If fetching the next B fails, i.e., if it is determined that the BD is a null as shown in event  330 , the routine goes to the empty queue state  312 , then to the idle state  304 .  
         [0042]     In  FIG. 4 , there is shown how the link latency (D)  402  for a wireless link in a wireless network such as a UWB system, using an MPEG2 application, is calculated in accordance with another embodiment of the invention. As shown, each data frame (e.g., 16) may include up to 12 MPEG2 packets. Each superframe in time line, for example, superframe  410 , includes 4 transmit opportunities (17-20) each good for transmitting a data frame and an immediate acknowledgment. In the example of  FIG. 4 , the CTA shown in time line  408  comports to the Institute of Electrical and Electronic Engineers (IEEE) 802.15.3 standard or other appropriate medium access control (MAC) specifications. The link latency  402  is shown as the sum of intervals D 1 , D 2  and D 3 . Interval D 1  is the maximum time between the arrival of the first MPEG2 packet of the latest data frame in the TX RAM  304  and the start of the next transmission opportunity for this MPEG2 stream. D 2  is equal to the time between the start of the earliest transmission opportunity for the MPEG2 stream, after the arrival of the first MPEG2 cell of the latest frame, and the end of the successful transmission of the frame. While D 3  is the time between the end of the successful transmission of the frame and its release out of the RX RAM  406 ′.  
         [0043]     Time line  408  shows the transmission of the different data frames and the Immediate Acknowledgments (1 mm-ACK) that are sent out as soon as a particular frame (e.g., 17) is received.  FIG. 4  also shows the TX RAM  404  and RX RAM  406  at different points in time, which are labeled  404 ′ and  406 ′ respectively.  
         [0044]     In  FIG. 5 , there is shown how the UWB link latency D is equal to or greater than (≧) the maximum time interval spanning one frame transmission and its target retries plus the number of frame transmissions the failed frame must wait before its turn for transmission since its arrival in the TX RAM. In the example shown in  FIG. 5 , I is equal to 9, since there are only 9 transmission opportunities (i.e., 9 data frames may be transmitted) during the UWB link latency time.  
         [0045]     In  FIG. 6 , there is shown how the TX RAM size is determined in accordance with an embodiment of the invention. Ideally, the TX RAM  602  should have TX RAM size be equal to or greater than (≧) 1 data frame+maximum number of data frames that may be transmitted during the UWB link latency time interval (D). In this example, that would be (1+9) data frames (frames 56-65) which could transmitted during the UWB link latency time interval (D), so the TX RAM  602  should be large enough in order to accommodate 10 or more data frames in order to avoid overflow conditions. Another consideration to look at when determining the TX RAM size is to have the TX RAM size be equal to or greater (≧) than the maximum number of data frames that may arrive in the TX RAM  602  during the UWB link latency time period (D.) This approach looks at the applications characteristics, in this particular illustrative example, the speed at which the MPEG2 application loads the TX RAM. The TX RAM should have at least the larger size obtained from the two approaches in order to be applicable to either scenario.  
         [0046]      FIG. 7  shows an illustration on how to calculate the RX RAM size in accordance with an embodiment of the invention. In this embodiment, the RX RAM size should be ≧maximum number of data frames that may be transmitted during a time interval of D, so that the RX RAM will not have an overflow while a data frame is still held in it waiting for its release time. The RX RAM size can also be determined by RX RAM size ≧maximum number of data frames that may arrive in the TX RAM during a time interval D. Again, the RX RAM should have at least the larger size inferred from both considerations.  
         [0047]     In  FIG. 8 , there is shown some illustrations of retries of frames  17  and  19  which may be due to noise, interference or other factors. Some considerations for the amount of retries that should be allowed include the fact that retries, even when within the target retry limit, may result in transmission of aged MPEG2 packets and cause an overflow of the TX RAM as shown by TX RAM  802 . The TX RAM overflow was caused by excessive retries within time period D occurred as shown. Another consideration for retries is that retries, without appropriate control, may lead to the transfer of MPEG2 packets after, but not before, their buffering time at the TX RAM exceeded the link latency period, when the CTA net throughput pertaining to the stream is close to the stream arrival data rate.  
         [0048]     In an MPEG2 streaming video example, where 1 MPEG2 packet or cell is 188 bytes+a 4 byte timestamp for a total of 192 bytes, 1 data frame=12 MPEG2 cells; 1 Channel Time Allocation (CTA)=4 data frames; 1 Superframe=3 CTAs; 1 video stream=1 CTA (per Superframe); and the Superframe duration (SF)=2,680 μs; CTA duration=940 μs; MCTA duration=70 μs; using a Guard Time (GT)=2 μs; and using an MPEG2 application where 1 cell=188B from MPEG2 TS+4B for UWB timestamp; the MPEG2 cell data rate=19.404 MB/s=45, 478,125 cells/hour=3,789,844 frames/hour; and the Physical Layer (PHY) rate=110 Mb/s:  
         [0049]     Using a wireless transmission range of 7.3 meter (m) the following was achieved, 
        FER (frame payload=1,024 bytes)=1%;     FER (frame payload=12 MPEG2 cells+8B IC+4B FCS)=2.26%;     FLR (retry limit per frame=3)=2.62E-7, i.e., 1 frame/hour; and     Net throughput per CTA=26.9 Mb/S, accounting for retires; and        
 
         [0054]     using a wireless transmission range of 9.0 m the following was achieved, 
        FER (frame payload=1,024 bytes)=10%;     FER (frame payload=12 MPEG2 cells+8B IC+4B FCS)=22.62%;     FLR (retry limit per frame=9)=3.50E-7 1.33 frames/hour; and     Net throughput per CTA=21.3 Mb/s—accounting for retries.        
 
         [0059]     In  FIG. 9 , there is shown the link latency for the UWB system having a range of 7.3 meters (m). In this example, D 1  is equal to the framing delay, which is equal to 1000 microseconds (μs). Up to F=12 MPEG2 cells across a time interval up to D=1,000 μs are assembled into a data frame in the TX RAM. Frame assembling stops whenever either limit, F=12 MPEG2 cells or D 1 =1,000 μs is reached. D 2  in this example is equal to 2,680 μs+182 μs or 2,862 μs which is the maximum time interval spanning one transmission and 3 retries. D 3  is equal to 40 μs which is the minimum time between the end of a received data frame and the release of the earlier MPEG2 cell in that data frame. The UWB link latency in this example is therefore equal to 1,000 μs+2,862 μs+40 μs=3,902 μs.  
         [0060]     Referring now to  FIG. 10 , there is shown an illustrative example on how to determine the TX RAM size for a range of 7.3 meters for the UWB system. The TX RAM size should be ≧1 data frame+maximum number of data frames that may be transmitted during a time interval of D which as discussed before in this example is equal to 3,902 μs. In this illustrative example, this is equal to (1+7) data frames=8×2,320 bytes=18,560 bytes, assuming 1 data frame=(16+12×192) bytes=2,320 bytes. A second criteria to look at for the TX RAM size is that the TX RAM size should be ≧maximum number of data frames that may arrive in the TX RAM during a time interval of D which is equal to 3,902 μs, which is equal to 19,404×3,902/8 bytes (unframed)=┌9,464/(192×12)┐×2,320 bytes=11,600 bytes. So taking the two criteria discussed, to be safe, the TX RAM should have a size of at least 11,600 bytes given the speed in which the MPEG2 application delivers frames into the TX RAM buffer.  
         [0061]     In  FIG. 11 , there is shown an illustrative example on how the RX RAM size is determined for a UWB range of 7.3 meters. In accordance with an embodiment of the invention, the RX RAM size should be ≧the maximum number of data frames that may be transmitted during a time interval of D=3,902 μs=4 data frames=4×2,320 bytes=9,280 bytes, assuming 1 data frame=(16+12×192) bytes=2,320 bytes. In the second consideration or application related consideration for the RX RAM size, the RX RAM size should be ≧the maximum number of data frames that may arrive in the TX RAM during a time interval of D=3,902 μs=19,404×3,902/8 bytes (unframed)=9,464 bytes (unframed)=[9,464/(192×12)]×2,320 bytes=11,600 bytes. Thus, in order to avoid buffer overflows, the RX RAM should be at least 11, 600 bytes given the speed in which the MPEG2 application loads the TX RAM.  
         [0062]     In  FIG. 12 , there is shown an illustrative example highlighting some of the transmission constraints for an UWB system with a range equal to 7.3 meters. In the illustrative example shown, a data frame must be transmitted within I=4 frame transmissions (frame numbers  16 - 19 ) since the arrival of its earliest MPEG2 cell in order to meet the UWB link latency of D=3,902 μs.  
         [0063]     In summary, using the retry algorithm of the present invention in an UWB system that transfers MPEG2 streaming video, where 1 data frame=12 192-byte MPEG2 cells (188 bytes for standard MPEG2 cell and 4 bytes for UWB timestamp)+16-byte MAC/PHY header=2,320 bytes; the MPEG2 cell data rate=19.404 Mb/s=45,478,125 cells/hour=3,789,844 frames/hour; the PHY rate=110 Mb/s; and the Data frame delay lime=1,000 μs; the following results were had using the retry algorithm of the invention:  
         [0000]     For a Wireless Range Between the Two Wireless Devices Equal to 7.3 Meters:  
         [0000]    
       
         
           
              Net throughput per CTA=26.9 Mb/s  
              Retry limit=3, target frame loss rate=1 frame/hour  
              UWB link latency=3,902 μs  
              TX RAM size=8 data frames=18,560 bytes=18.1 KB  
              RX RAM size=4 data frames=9,280 bytes=9.1 KB 
 
 For a Wireless Range Between the Two Wireless Device Equal to 9.0 Meters: 
 
              Net throughput per CTA=21.3 Mb/s  
              Retry limit=9, target frame loss rate=1.33 frames/hour  
              UWB link latency=8,268 μs  
              TX RAM size=14 data frames=32,480 bytes=31.7 KB  
              RX RAM size=12 data frames=27,840 bytes=27.2 KB  
           
         
       
     
         [0074]     Without retries, the frame loss rate is too large, while with too many retries, the link latency increases, the TX RAM overflows and the RX RAM under-runs. Different degrees of retries accommodate different ranges of frame error rates and achieve different ranges of frame loss rates. While different degrees of retries require different transmission link latencies and different TX and RX RAM sizes, the retry algorithm of the invention takes into account these different competing concerns and provides a straightforward solution on how many retries should be used given the different system conditions. The retry algorithm tries to achieve a constant delay for each packet in a frame like those used in an MPEG-2 application. The other advantage of the invention is that “old” packets can be dropped at the transmitter side, thereby clearing up the channel congestion caused by retries. The invention addresses the unique characteristics (e.g., high error rates and bursty transmissions) of wireless networks and the stringent timing and frame loss rate requirements and variable data rates encountered with Audio/Video applications such as MPEG-2.  
         [0075]     While the preferred embodiments of the invention have been illustrated and described, it will be clear that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the spirit and scope of the present invention as defined by the appended claims.