Abstract:
A method for reconfiguring receiving window size of a receiving end of a communication system in a transmitting end of the communication system includes receiving a status report unit from the receiving end and updating an acknowledge state variable and a maximum send state variable according to the status report unit. Positively acknowledged packets with sequence numbers greater than the acknowledge state variable are retained in a buffer of the transmitting end. Positively acknowledged packets with sequence numbers greater than the acknowledge state variable are marked by the transmitter end as positively acknowledged packets. The maximum send state variable is updated according to a command for reconfiguring receiving window size of the communication system. Positively acknowledged packets with sequence numbers greater than or equal to the maximum send state variable are marked as not yet acknowledged packets.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims the benefit of U.S. Provisional Application No. 60/594,697, filed Apr. 29, 2005, and included herein by reference. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention is a method and a device of a procedure for reconfiguring receiving window size of a receiver in a transmitter of a communications system. When the receiver discards packets that are outside the receiving window and have been positively acknowledged, the present invention prevents the transmitter from discarding the packets and hence prevents initiating a reset procedure. Therefore the communications system maintains a robust and efficient transmission.  
         [0004]     2. Description of the Prior Art  
         [0005]     With the coming of the information age, requirements of mobile voice, data communications, and various mobile services increase each day. Communications systems of prior art are facing bottlenecks of channel usage overflow and inefficient transmission speeds. Therefore, the third generation mobile communications system was developed to have better usage of the frequency spectrum and higher-speed transmission service. Compared to the existing second generation mobile communications technology, the most significant difference with the third generation mobile communication is that the third generation mobile communication uses a Wideband Code Division Multiple Access (WCDMA) protocol for wireless access. The WCDMA protocol provides a more efficient channel usage, outstanding coverage, and high quality, high-speed multimedia data transmission. The WCDMA protocol can satisfy different service requirements of QoS, provide flexible duplex transmission services, and also provide better communication quality.  
         [0006]     In a 3 rd  generation mobile communications system, a sequence number (SN) is added to a header of a Protocol Data Unit (PDU) to have synchronization and transmission robustness between a receiver and a transmitter. The receiver is able to compare an SN of a PDU received with an expected SN to determine whether the PDU received is correct. For a more efficient transmission of PDUs and to avoid noise interfering with SNs, the transmitter and the receiver have a transmitting window and a receiving window respectively. Taking the receiving window as an example, an SN of a PDU received by the receiver must lie inside the receiving window, if not, the PDUs received is not processed. Therefore, transmission errors due to noise interferences are avoided.  
         [0007]     In the prior art, the receiving window size can be reduced by the system in order to save buffer usage. However, in some cases reconfiguring a receiving window size may initiate an unnecessary reset procedure.  
         [0008]     To further explain the case described above, a specification developed by 3GPP (the 3 rd  Generation Partnership Project), 3GPP TS 25.322 V6.3.0, defines the following state variables (for Acknowledged Mode):  
         [0009]     1. Variable VR(R): represents an SN following that of a last in-sequence PDU received. The initial value is 0.  
         [0010]     2. Variable VR(H): represents an SN following a highest SN of any received PDU.  
         [0011]     3. Variable VR(MR): represents an SN following a PDU of a highest SN that shall be accepted by the receiver, meaning VR(MR) is the sum of VR(R) and the receiving window size.  
         [0012]     4. Variable VT(S): represents an SN of a next PDU to be transmitted for a first time. It shall be updated after the aforementioned PDU is transmitted. The initial value is 0.  
         [0013]     5. Variable VT(A): represents an SN following an SN of a last in-sequence acknowledged PDU. It shall be updated based on a receipt of a status report unit including a positively acknowledged message.  
         [0014]     6. Variable VT(MS): represents an SN of a first PDU that is outside the transmitting window and shall not be transmitted by the transmitter.  
         [0015]     For improved data robustness, as the transmitter receives a status report unit from the receiver, the variables VT(A) and VT(MS) are updated and whether a PDU is negative acknowledged is determined according to the status report. If so, a retransmission procedure is initiated to retransmit the PDU. The PDU that had been negatively acknowledged will only be retransmitted once.  
         [0016]     In Acknowledged Mode (AM), when the receiver receives a command for reconfiguring the receiving window size, the receiver updates the variable VR(MR), and determines whether there is a PDU whose SN lies in the range of larger than or equal to the variable VR(MR) and smaller than the variable VR(H). If so, the PDU is discarded and treated as never received. Thus, if the system reduces the receiving window size so that some PDUs stored in a buffer of the receiver may be outside the new receiving window, the prior art discards the PDUs outside the new receiving window and treats them as not received.  
         [0017]     PDUs temporarily stored in the buffer of the receiver are PDUs that have been successfully received and not yet delivered to an upper layer. A status report unit transmitted by the receiver informs the transmitter of positive acknowledgements of PDUs that have been received successfully, and the transmitter discards PDUs that have been positively acknowledged by the receiver. Consequently, when the system reconfigures the receiving window size, PDUs lying outside a new receiving window will be discarded by the receiver, and the transmitter having been informed that the discarded PDUs are positively acknowledged through a status report will also discard the PDUs from its buffer. Since the receiver treats the PDUs discarded as not received, the receiver will request retransmission of the PDUs after the receiving window advances. However, because the transmitter has discarded the PDUs from the buffer, retransmission requests from the receiver cannot be fulfilled. This causes the system to initiate a reset procedure and hence reduces transmission efficiency.  
         [0018]     For example, suppose the receiving window size is 16 and PDUs with SN=0 to SN=10 (inclusive) are successfully received except SN=0. By the definition of the variables specified above, it is known that VR(R)=0, VR(H)=11, and VR(MR)=16. A status report from the receiver informs the transmitter that PDUs with SN=1 to SN=10 are positively acknowledged and a PDU with SN=0 is negatively acknowledged. Upon receipt of the status report, the transmitter updates variables to have VT(A)=0, VT(S)=11, and VT(MS)=16. The transmitter also marks the PDUs with SN=1 to SN=10 as positively acknowledged. Thereafter, if the transmitter transmits a command to change the receiving window size to 8 to the receiver, the receiver changes the receiving window size to 8 according to the command, so that the receiving window spans from SN=0 to SN=7 with VR(R)=0, VR(H)=11, and VR(MR)=8.  
         [0019]     In accordance to the specification, the prior art can discard PDUs with SN=8 to SN  
         [0020]     =10. As the receiver receives a retransmitted PDU with SN=0, corresponding variables are updated to have VR(R)=8, VR(H)=8, and VR(MR)=16 and reports positive acknowledgement of the PDU with SN=0. After the transmitter receives a status report unit with positive acknowledgment of the PDU, variables are updated to have VT(A)=11, VT(S)=11, VT(MS)=1 g. Thereafter, the transmitter transmits a PDU with SN=11 and updates the variable VT(S) to 12. Since the receiver discarded the PDUs with SN=8 to SN=10 and treated them as not received, the receiver transmits a status report unit to inform the transmitter that the PDUs with SN=8 to SN=10 are negatively acknowledged upon a receipt of the PDU with SN=11. However, when the transmitter receives the status report unit, the transmitter detects that the status report unit contains erroneous SNs since SN=8 to SN=10 is outside the receiving window. Therefore, the system is required to initiate a reset procedure to recover the described mistake, lowering transmission efficiency and wasting system resources.  
         [0021]     With the prior art processing reconfiguration of the receiving window, an unnecessary reset procedure may be initiated and hence affecting transmission performances.  
       SUMMARY OF THE INVENTION  
       [0022]     A method of processing reconfiguration of a receiving window size of a receiver in a transmitter of a communications system includes receiving a status report unit from the receiver and updating a first parameter indicating a sequence number following a sequence number of a last in-sequence acknowledged packet and a second parameter indicating a sequence number following a sequence number of a last packet within a transmitting window according to the status report unit. The transmitter retains packets that have been positively acknowledged according to the status report unit and have sequence numbers larger than the first parameter in a buffer of the transmitter. The transmitter marks the packets that have been positively acknowledged according to the status report unit and have sequence numbers larger than the first parameter as positively acknowledged packets. The second parameter is updated according to a command for reconfiguring the receiving window size of the communications system. Packets with sequence numbers larger than or equal to the updated second parameter are marked as not yet acknowledged packets.  
         [0023]     These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0024]      FIG. 1  is a flow chart of a procedure of an embodiment of the present invention.  
         [0025]      FIG. 2  is a block diagram of a communications transmission device used in a communications system.  
         [0026]      FIG. 3  is a diagram of the program code in  FIG. 2 . 
     
    
     DETAILED DESCRIPTION  
       [0027]     Please refer to  FIG. 2 .  FIG. 2  is a block diagram of a communications transmission device  200  used in a communications system. The communications system can be a 3 rd  generation mobile communications system. For simplicity,  FIG. 2  only shows an input device  202 , an output device  204 , a control circuit  206 , a central processor  208 , a storage device  210 , a program code  212 , and a transceiver  214  of the wireless communications transmission device  200 . In the wireless communications transmission device  200 , the control circuit  206  executes the program code  212  stored in the storage device  210  with the central processor  208 , and then controls operations of the wireless communication transmission device  200 . The wireless communications transmission device  200  can receive signals input by users through the input device  202 , or output signals through the output device  204 . The transceiver  214  is used for receiving or transmitting radio signals. In a structure of a communications protocol, the transceiver  214  is known as a part of Layer one, whereas the control circuit  206  is an application of Layer two and Layer three.  
         [0028]     Please refer to  FIG. 3 .  FIG. 3  is a schematic diagram of the program code  212  in  FIG. 2 . The program code  212  comprises an application program layer  300 , a Layer three interface  302 , a Layer two interface  306 , and a Layer one interface  318 . When transmitting signals, the Layer two interface  306  stores a plurality of Service Data Units (SDUs)  308 , which are submitted from the Layer three interface  302 , in a buffer  312 . Then, the Layer two interface  306  generates a plurality of Protocol Data Units (PDUs)  314  according to the SDUs  308  stored in the buffer  312 , and outputs the PDUs  314  generated to a destination through the Layer one interface  318 .  
         [0029]     For improved robustness of data transmission, when in AM, the program code  212  receives a status report unit  310  or a piggybacked status report unit  310  of a receiver from the Layer one interface  308 , in order to detect a receiving status of the receiver. Under this situation, the present invention provides new logic to process reconfiguration of the receiving window size in the program code  212 , in order to avoid unnecessary initiation of a reset procedure.  
         [0030]     Please refer to  FIG. 1 .  FIG. 1  is a flow chart of a procedure  10  of an embodiment of the present invention. The procedure  10  is used to process, in a transmitter of a communications system, reconfiguration of a receiving window size of a receiver in the communications system. In an example in a 3 rd  generation mobile communications system, the procedure  10  comprises the following steps:  
         [0031]     Step  100 : start.  
         [0032]     Step  102 : receive a status report from the receiver.  
         [0033]     Step  104 : update VT(A), VT(MS).  
         [0034]     Step  106 : detect whether the receiver has a PDU with negative acknowledgement. If so, go to step  108 ; if not, go to step  110 .  
         [0035]     Step  108 : initiate a retransmission procedure.  
         [0036]     Step  110 : detect whether the receiver has a PDU with positive acknowledgement. If so, go to step  112 ; if not, go to step  122 .  
         [0037]     Step  112 : retain and not discard positively acknowledged PDUs with SNs larger than VT(A).  
         [0038]     Step  114 : mark the positively acknowledged PDUs with SNs larger than VT(A) as positively acknowledged.  
         [0039]     Step  116 : detect whether reconfiguration of the receiving window size had been triggered. If so, go to step  118 ; if not, go to step  122 .  
         [0040]     Step  118 : update VT(MS).  
         [0041]     Step  120 : mark PDUs with SNs larger than or equal to VT(MS) as not yet acknowledged.  
         [0042]     Step  122 : end.  
         [0043]     According to the procedure  10 , after the transmitter receives a status report unit from the receiver, first update an SN following an SN of a last in-sequence acknowledged PDU and an SN of a first PDU that is outside a transmitting window, meaning the variables VT(A) and VT(MS). Then detect whether the receiver has a negatively acknowledged PDU according to the status report unit. If so, a retransmission procedure is initiated to retransmit PDUs that are negatively acknowledged. Next, detect whether the receiver has a positively acknowledged PDU. If so, retain and not discard positively acknowledged PDUs with SNs larger than VT(A) in a buffer of the transmitter, and mark the PDUs as positively acknowledged. If reconfiguration of the receiving window size of the receiver has been triggered, then update VT(MS) first accordingly, and mark PDUs with SNs larger than or equal to VT(MS) as not yet acknowledged so that the PDUs with SNs larger than or equal to VT(MS) are not discarded. After the reconfiguration of the receiving window size has been triggered, the PDUs with SNs larger than or equal to VT(MS) are marked as not yet acknowledged. Therefore, the transmitter will not discard the PDUs with SNs larger than or equal to VT(MS), and hence the transmitter can cope with a possible request of retransmitting the PDUs and avoid initiating unnecessary reset procedures.  
         [0044]     For example, suppose the receiving window size is 16 and PDUs with SN=0 to SN=10 (inclusive) are successfully received except SN=0. By the definition of the variables specified above, it is known that VR(R)=0, VR(H)=11, and VR(MR)=16. A status report from the receiver informs the transmitter that PDUs with SN=1 to SN=10 are positively acknowledged and a PDU with SN=0 is negatively acknowledged. Upon receipt of the status report, the transmitter updates variables to have VT(A)=0, VT(S)=11, and VT(MS)=16. According to the procedure  10 , the transmitter retransmits the PDU with SN=0. Furthermore, the transmitter does not discard PDUs with SNs larger than VT(A), and the PDUs with SNs=1 to SN=10 are marked as positively acknowledged. Now, suppose the transmitter transmits a command for reconfiguring the receiving window size to 8 to the receiver. According to the command, the receiver reconfigures the receiving window size to 8, which means the receiving window spans from SN=0 to SN=7, and VR(R)=0, VR(H)=11, VR(MR)=8. Therefore, the receiver can discard PDUs with SN=8 to SN=10.  
         [0045]     According to the procedure  10  of the present invention, the transmitter first updates variable VT(MS)=8, and marks PDUs with SNs larger than or equal to VT(MS) as not yet acknowledged. Thus, transmission status of PDUs with SN=8 to SN=10 is changed from positively acknowledged to not yet acknowledged. When the PDU with SN=0 has been successfully retransmitted and positively acknowledged by the receiver, the transmitter updates corresponding variables to have VT(A)=8, VT(S)=11, VT(MS)=16. In other words, after the receiver reconfigures the receiving window size and the PDUs with SN=8 to SN=10 are discarded, the transmitter marks the PDUs with SN=8 to SN=10 as not yet acknowledged and retains them in a buffer so that when receiving a request for retransmitting the PDUs with SN=8 to SN=10, a reset procedure is not initiated since the PDUs with SN=8 to SN=10 are still inside a transmitting window. Therefore, retransmission of PDUs with SN=8 to SN=10 is successfully executed.  
         [0046]     Thus, after reducing the receiving window size in the receiver, PDUs outside the receiving window are discarded by the receiver. The transmitter marks the PDUs outside the transmitting window as not yet acknowledged and does not discard them from the buffer. When the receiver requests retransmission of the PDUs later with a status report unit, the transmitter does not determine that the status report unit comprises erroneous SNs so that the system does not initiate an unnecessary reset procedure. Consequently, the system can maintain a normal transmission. Hence, transmission efficiency of the present invention is better than that of the prior art.  
         [0047]     To summarize, the present invention provides a method of processing, in a transmitter of a communications system, reconfiguration of a receiving window size of a receiver in the communications system. When the receiver discards positively acknowledged PDUs that are outside the reconfigured receiving window, the transmitter does not discard the PDUs outside the transmitting window. Unnecessary reset procedures are avoided so that the system can maintain a normal transmission and increase transmission efficiency. Therefore, the prior art problem of initiating an unnecessary reset procedure is solved. The communications system described above can be the 3 rd  generation mobile communications system operating in Acknowledged Mode (AM).  
         [0048]     Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.