A method for generating acknowledgement messages in a data transmission system having a receiver for receiving datagrams and being capable of determining which of a series of datagrams have been incorrectly received, the method comprising generating a plurality of a data units, each data unit comprising: a status bit indicative of the status of the data unit; and a plurality of spacing bits together forming a binary representation of a number at least partially indicative of the spacing between one incorrectly received datagram and a succeeding incorrectly received datagram.
|
1. A method comprising:
receiving a series of datagrams;
determining which of said series of datagrams have been incorrectly received;
generating a plurality of data units, each data unit having a status bit indicative of the status of the data unit and a plurality of spacing bits, wherein the plurality of spacing bits from the plurality of data units together form a binary number, the binary number being the spacing between one incorrectly received datagram and a succeeding incorrectly received datagram; and
assembling said plurality of data units together into an acknowledgement message.
31. Apparatus comprising:
means for determining which of a series of datagrams received from a transmitter have been incorrectly received; and
means for generating acknowledgement messages, each acknowledgement message comprising a plurality of a data units, each data unit comprising:
a status bit indicative of the status of the data unit; and
a plurality of spacing bits, wherein the plurality of spacing bits from the plurality of data units together form a binary number, the binary number being the spacing between one incorrectly received datagram and a succeeding incorrectly received datagram.
16. An apparatus comprising:
a datagram checking unit configured to determine which of a plurality of datagrams received from a transmitter have been incorrectly received; and
an acknowledgement message generator configured to generate acknowledgement messages, each acknowledgement message comprising a plurality of data units, each data unit comprising:
a status bit indicative of the status of the data unit; and
a plurality of spacing bits, wherein the plurality of spacing bits from the plurality of data units together form a binary number, the binary number being the spacing between one incorrectly received datagram and a succeeding incorrectly received datagram.
2. A method as claimed in
3. A method as claimed in
4. A method as claimed in
5. A method as claimed in
6. A method as claimed in
9. A method as claimed in
10. A method as claimed
11. A method as claimed in
12. A method as claimed in
13. A method as claimed in
14. A method as claimed in
17. An apparatus as claimed in
18. An apparatus as claimed in
19. An apparatus as claimed in
21. An apparatus as claimed in
22. An apparatus as claimed in
23. An apparatus as claimed in
24. Apparatus as claimed in
25. Apparatus as claimed in
26. Apparatus as claimed in
27. Apparatus as claimed in
29. Apparatus as claimed in
30. Apparatus as claimed in
|
This invention relates to data acknowledgement, in particular to providing an indication of erroneously received data.
In many data transmission systems data is sent in the form of a plurality of datagrams (e.g. packets). The datagrams are typically in the form of binary information. A datagram may represent self-contained information or may represent part of a larger message that can be recovered at a receiver by combining a number of received datagrams together. The packets of a message may follow different routes over a data transmission network between the transmitter and the receiver but can still be re-combined when they have arrived correctly. In addition to message (payload) data, datagrams frequently contain control information (e.g. in the form of a header). The control information typically includes:
Since datagrams can be corrupted during transmission, especially over noisy data links such as those carried by radio connections, it is normal to implement an acknowledgement (ARQ) scheme so that the receiver can indicate to the transmitter which packets have been received erroneously. When datagrams have been received the receiver uses error check data in the datagrams' headers, or other means, to check whether each datagram has been received intact. Then, periodically or on request from the transmitter, the receiver transmits acknowledgement messages to the transmitter to indicate which datagrams have been received incorrectly.
Two basic types of acknowledgement message are common. In the bitmap acknowledgement system an acknowledgement message includes a set of bits each of which corresponds to a single datagram. One status of a bit (e.g. 1) indicates that the corresponding datagram has been correctly received. The other status of a bit (e.g. 0) indicates that the corresponding datagram has been incorrectly received. Thus, in this scheme one bit of acknowledgement message data is needed for each received datagram, whether correctly received or not. In the list acknowledgement scheme an acknowledgement message lists the identifier (e.g. serial number) of each incorrectly received datagram. In this scheme the number of bits needed for acknowledgement message data is the product of the number of incorrectly received datagrams and the number of bit-length of the datagram identifiers.
The efficiency of these schemes depends on the proportion of datagrams that are received incorrectly. If many datagrams are received incorrectly then the bitmap system is more efficient, since the list system would require relatively high bandwidth to retransmit a large number of datagram identifiers. If few datagrams are received incorrectly then the list system is more efficient, since the bitmap system would use a bit of acknowledgement data even for each of the correctly received datagrams.
To reduce the amount of bandwidth needed for acknowledgement another proposal has been for a hybrid system in which the receiving unit selects the bitmap system or the list system, whichever would be more efficient, and then indicates in the acknowledgement message which method is being used.
In next generation telecommunications systems high data rates are to be used, but the optimum size of a datagram giving both good payload versus header size ratio and good resolution for error correction may be fairly small. This is likely to result in a large number of datagrams having to be acknowledged with a single acknowledgement message. For this and other reasons it would be desirable to further reduce the bandwidth needed for acknowledgement messages.
According to one aspect of the present invention there is provided a method for generating acknowledgement messages in a data transmission system having a receiver for receiving datagrams and being capable of determining which of a series of datagrams have been incorrectly received, the method comprising generating a plurality of a data units, each data unit comprising: a status bit indicative of the status of the data unit; and a plurality of spacing bits together forming a binary representation of a number at least partially indicative of the spacing between one incorrectly received datagram and a succeeding incorrectly received datagram.
An acknowledgement message suitably comprises a plurality of the said data units, and may be generated by assembling a plurality of the said data units together, optionally, with flow control information such a routing or error check information.
According to a second aspect of the present invention there is provided a receiver for receiving a series of datagrams from a transmitter, comprising: a datagram checking unit for determining which of the datagrams have been incorrectly received; and an acknowledgement message generator for generating acknowledgement messages, each acknowledgement message comprising a plurality of a data units, each data unit comprising: a status bit indicative of the status of the data unit; and a plurality of spacing bits together forming a binary representation of a number at least partially indicative of the spacing between one incorrectly received datagram and a succeeding incorrectly received datagram.
Preferably one value of a status bit is indicative of its corresponding data unit not being the last data unit of a set of consecutive data units whose spacing bits together represent a number indicative of a spacing between one incorrectly received datagram and a succeeding incorrectly received datagram. Thus, a spacing may be indicated by:
Preferably a datagram that has its status bit set to the said other value and its spacing bits representing a predetermined number (suitably but not necessarily zero) is indicative of adjacent (suitably subsequent) data units representing a number indicative of several consecutive incorrectly received datagrams. Thus, a plurality of consecutive incorrectly received datagrams may be indicated by a datagram having its status bit set to the said other value and its spacing bits representing the predetermined number, followed by one or more data units representing the number of the consecutive incorrectly received datagrams. That number may be indicated by one or more datagrams in the manner specified above for indicating spacings.
The indicated spacings and/or numbers of consecutive incorrectly received datagrams may indicate in either case the actual spacings and/or numbers directly or indirectly by means of a number that is a function of the actual spacings and/or numbers, for example that is a predetermined number less than the actual spacings and/or numbers.
An acknowledgement message suitably includes data identifying the set of datagrams whose reception is described by the message, for example the identity of the first and/or last datagram described by the message and/or the number of datagrams whose reception is described by the message. The acknowledgement message may take the form of one or more datagrams or data packets.
Suitably each data unit consists of four or more bits, preferably an integer multiple of four or eight bits. Most preferably each data unit consists of four bits.
The method preferably comprises the step of generating an acknowledgement message comprising the plurality of data units and transmitting that message to a transmitter of the datagrams.
The receiver preferably comprises a memory connected to the datagram checking unit for storing information indicating which of the datagrams has been incorrectly received. The memory may also be connected to the acknowledgement generator.
Each datagram may comprise checksum or other error check information. The receiver, most preferably the said datagram checking unit, is suitably capable of calculating a checksum for a received datagram and comparing that checksum with the checksum information comprised in the datagram to determine whether the datagram is correctly received.
The acknowledgement generator may preferably be implemented in hardware.
The communication link from the transmitter to the receiver preferably comprises a radio link, which may run all or part of the way between the two. The receiver is suitably a radio receiver. The receiver is suitably a cellular radio terminal. The radio link is suitably a cellular telephone radio link. The radio link is suitably a wideband code division multiple access link.
The present invention will now be described by way of example with reference to the accompanying drawing, in which:
In the telecommunications system 4 the dedication of a channel between the transmitter and receiver and/or the information in the header that gives the receiver's identity is used to route the packet to the receiver.
At the receiver a received datagram is analysed by check unit 9. The check unit calculates a checksum for the datagram as received and compares the calculated checksum with the checksum as received in the datagram's header. If the two checksums match then the check unit accepts the datagram and passes it to datagram processor 10. If the datagram processor determines that the datagram is a control datagram it enables the required action to be taken dependant on the datagram's content. If the datagram's payload represents message data then if necessary the datagram processor reassembles the payload together with those of other datagrams to reconstruct the full message and then stores it in memory 11.
If the check unit determines that the calculated checksum does not match the received checksum then it signals acknowledgement unit 12 that the datagram has been incorrectly received—for example by passing the acknowledgement unit the serial number of the incorrectly received datagram. The acknowledgement unit is capable of transmitting acknowledgement messages 13, 14 to the transmitter over reverse channel 6 to indicate to the transmitter which datagrams have been received incorrectly. If the transmitter receives an indication that a datagram has been received incorrectly then it can re-transmit the datagram to the receiver.
The datagram processor can also signal to the acknowledgement unit that a datagram has been incorrectly received if after a certain time an expected datagram has not been received at the receiver at all. To do this the datagram processor may determine the serial number of the expected datagram and send that to the acknowledgement unit. Such non-reception of a datagram may occur if, for example, the datagram processor receives only 6 datagrams of a 10-datagram message.
Reasons for incorrect reception of datagrams include corruption during transmission, for example because of noisy links or other interference, or loss or excessive transmission delay due to faults or overload in the telecommunications system.
The acknowledgement unit has two modes of operation. In the unsolicited mode it transmits acknowledgement messages to the transmitter 1 periodically—for example after every 100 datagrams of a message from the transmitter have been received (or should have been received). In the solicited mode it transmits acknowledgement messages to the transmitter 1 on request, or when it determines that such a request is overdue (e.g. at the end of a received message).
The acknowledgement messages 13, 14 sent from the acknowledgement unit to the transmitter 1 are sent in the form of datagrams that include a payload 13a, 14a and a header 13b, 14b. The format of the headers of the acknowledgement datagrams 13, 14 can be the same as the format of the headers 7b, 8b, or may be different, but the two are preferably compatible.
The payload of each acknowledgement datagram comprises a series of 4-bit elements. Each 4-bit element is capable of indicating information on at least one incorrectly received datagram. Each 4-bit element includes two notional parts. In most situations the first three bits of the element are interpreted as an “offset part” which represents in binary form a number from zero to seven and the final bit of the datagram is interpreted as a “status part” which represents a logical state as 1 or 0.
As signals are received from the check unit or the datagram processor the acknowledgement unit stores in a local memory 15 the serial numbers of the incorrectly received datagrams. When the acknowledgement unit determines that an acknowledgement message is to be sent it analyses the stored list in order to generate the 4-bit elements to be sent to the transmitter via transmitting unit 16.
To carry the acknowledgement messages the 4-bit elements are used to represent a series of numbers. A number is represented by the following process:
For example, the following table shows some numbers and their equivalents in 4-bit elements formed by the above method:
Number
Equivalent in 4-bit elements
4
1001
7
1111
12
0010 1001
149
0100 0100 1011
To represent incorrect reception of a series of datagrams by means of the 4-bit elements the acknowledgement unit performs the following steps:
The series of 4-bit elements that has been generated in this way is formed into a bit stream and transmitted to the transmitter in one or more datagrams. At the receiver the 4-bit elements are decoded by a reverse process to determine which datagrams were not received correctly. Those datagrams are then re-transmitted to the receiver.
The number of the first incorrectly received datagram could be indicated as the number of that datagram (e.g. as 5 if the fifth datagram were the first incorrectly received datagram).
In the scheme described above the 4-bit element 0001 cannot be generated since the acknowledgement unit can have no cause to represent an offset of zero between one incorrectly received datagram and the next. The element 0001 can therefore be used to help represent a burst of datagrams. A burst of datagrams can be represented by elements indicating in the normal way the first incorrectly received datagram of the burst (by means of the offset to it), followed by the element 0001, followed by elements representing the number of subsequent consecutive incorrectly received datagrams in the manner described above.
When the length of each element is four bits preferably the latter method is only used to represent a burst of four or more incorrectly received datagrams since otherwise it does not provide increased efficiency. If it is known that this method will only be used for bursts of four or more datagrams then the number represented by the element(s) following the element 0001 can be one, two, three or four less than the length of the burst, to reduce the number of elements needed in some cases.
An alternative way to represent bursts is by a series of elements indicating in the normal way the first incorrectly received datagram of the burst, followed by the element 0001, followed by an element representing the number of subsequent consecutive incorrectly received datagrams in conventional binary notation using all four bits of that element. The maximum length of burst that can be represented by three elements in this way is 20 (assuming that the method is not used for bursts of fewer than four consecutive incorrectly received datagrams and that number represented by the latter datagram is four less than the total burst length). However, this limitation is unlikely to cause significant decreases in efficiency in systems in which long bursts of incorrectly received datagrams are relatively rare (e.g. in the proposed W-CDMA/UMTS system under fast power control).
For completeness, an acknowledgement message preferably also indicates the range of datagrams that it covers. This can allow the transmitter to recover from loss or corruption of an acknowledgement message. An acknowledgement message could indicate the number of received datagrams that it covers and/or the identity/serial numbers of the first and/or last datagrams covered. In a most preferred arrangement each acknowledgement datagram comprises the serial number of the first packet in error in the range of packets covered by the acknowledgement datagram followed by a series of 4-bit elements describing the subsequent erroneous packets in that range.
As an example of the method described above, if in 100 datagrams numbers 5 to 14, 31, 33 and 36 were received incorrectly the following table shows the numbers and the corresponding 4-bit elements that could be generated by the acknowledgement unit and transmitted to the transmitter.
Number
4-bit elements
Explanation
5
0000 0000 1011
Offset to first erroneous datagram,
assuming 12-bit sequence numbering
0001
Indicates start of burst
9
0010 0011
Length of burst (excluding first
datagram of burst)
17
0100 0011
Offset to next erroneous datagram
2
0101
Offset to next erroneous datagram
3
0111
Offset to next erroneous datagram
In general acknowledgement encoding according to the above method may comprise:
These may be in any suitable order. Other data may also be included in the message.
An additional reduction in bandwidth can be had in some circumstances by the acknowledgement unit initially determining the smallest spacing in the set of datagrams under consideration between incorrectly received datagrams. That spacing can be transmitted to the transmitter in the acknowledgement message and can be subtracted from all the transmitted offsets to reduce (in some cases) the number of bits needed to express them.
Instead of 4-bit elements, the elements could have other numbers of bits—either less or more preferably more than 4. In an n-bit element the status part could still comprise one bit and the offset part (n−1) bits. The optimum number of bits to give the greatest efficiency for a specific application could be determined by simulation. For efficient packing and alignment of the elements it is also preferred that the length of the element is an integer multiple of the system's byte length or divides the system's byte length integrally. For example, in systems that are based around 8-bit bytes the bit-length of the elements is preferably 4 or 8 bytes or an integer multiple of 8 bytes. This facilitates byte alignment of the elements for efficient encoding and transmission.
The acknowledgement method described above offers particular efficiency advantages in digital radio communication systems, e.g. digital cellular telephone systems, and especially the proposed third-generation W-CDMA (wideband code division multiple access) or 3GPP system, for the following reasons.
In a 3GPP/W-CDMA system the present method may advantageously be used for USTAT (unsolicited status) and/or STAT (solicited status) reports from a receiving unit in acknowledged data transfer mode, suitably in the form of status PDUs (protocol data units). Acknowledgement datagrams as described above may be used for AMD (acknowledged mode data) PDUs and/or UMD (unacknowledged mode data) PDUs. Such PDUs may convey sequentially numbered protocol units containing RLC (radio link control) SDU (service data unit) data. (See the 3GPP RLC draft specification TS 25.322 V1.0.0).
In simulations the acknowledgement method described above has been found to be more efficient than the bitmap, list or hybrid systems. The following table shows the number of bits required to transmit an acknowledgement message for the indicated incorrectly received datagrams from a set of 100 datagrams, together with proposed basic data structure for acknowledgement messages in the W-CDMA system.
Incorrectly
Bit requirements
received
List
Bitmap
Hybrid
Present
datagrams
scheme
scheme
scheme
method
None
24
100
14
12
51 to 64
168
100
36
32
3, 7, 11, 16, 33,
156
100
120
88
44, 55, 66, 78, 82,
91
5 to 14, 31, 33, 36
180
100
62
48
In another simulation datagram transmission over a W-CDMA data channel was simulated by estimating loss of random frames to a selected frame error rate and assuming all datagrams within the lost frames to be incorrectly received. The simulation was run for NRT data traffic with USTAT functionality, USTAT reports being generated every third frame and a session being 100 units. 18,000 datagrams were generated. FSN (first sequence number) and MSN (maximum sequence number) fields were considered mandatory. The results are shown in the following table.
Average bit
Maximum size of
requirement per
Acknowledgement
acknowledgement
acknowledgement
Scheme
datagram
datagram
Bitmap
144
42.97
List
288
92.3
Hybrid
140
46.23
Present method
60
20.03
The datagrams may be of fixed or variable lengths. All or part of the communication link between the transmitter and the receiver may be a radio link. The transmitter and/or the receiver may be a radio terminal.
The datagrams may be packets or protocol data units.
The data transmission system or part of it suitably is or is part of a mobile communication network, for example a mobile telephone network such a the proposed UMTS system or a derivative thereof.
The applicant draws attention to the fact that the present invention may include any feature or combination of features disclosed herein either implicitly or explicitly or any generalisation thereof, without limitation to the scope of any of the present claims. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention.
Patent | Priority | Assignee | Title |
8259729, | Oct 30 2002 | Citrix Systems, Inc | Wavefront detection and disambiguation of acknowledgements |
8411560, | Jul 29 2003 | Citrix Systems, Inc | TCP selection acknowledgements for communicating delivered and missing data packets |
8432800, | Jul 29 2003 | Citrix Systems, Inc | Systems and methods for stochastic-based quality of service |
8437284, | Jul 29 2003 | Citrix Systems, Inc | Systems and methods for additional retransmissions of dropped packets |
8462630, | Jul 29 2003 | Citrix Systems, Inc | Early generation of acknowledgements for flow control |
8553699, | Oct 30 2002 | Citrix Systems, Inc. | Wavefront detection and disambiguation of acknowledgements |
8824490, | Jul 29 2003 | Citrix Systems, Inc. | Automatic detection and window virtualization for flow control |
9008100, | Oct 30 2002 | Citrix Systems, Inc. | Wavefront detection and disambiguation of acknowledgments |
9071543, | Jul 29 2003 | Citrix Systems, Inc. | Systems and methods for additional retransmissions of dropped packets |
9496991, | Jul 29 2003 | Citrix Systems, Inc. | Systems and methods of using packet boundaries for reduction in timeout prevention |
Patent | Priority | Assignee | Title |
4841526, | May 25 1984 | NTX COMMUNICATIONS CORPORATION, A CORP OF CA | Data communications system |
4975952, | Sep 04 1985 | U. S. Philips Corporation | Method of data communication |
5245616, | Feb 24 1989 | FISHER-ROSEMOUNT SYSTEMS, INC , A DELAWARE CORPORATION | Technique for acknowledging packets |
5315617, | May 29 1992 | General Electric Company | QAM encoding for high-definition television system |
5444718, | Nov 30 1993 | AT&T IPM Corp | Retransmission protocol for wireless communications |
5448623, | Oct 10 1991 | THERMO FUNDING COMPANY LLC | Satellite telecommunications system using network coordinating gateways operative with a terrestrial communication system |
6367045, | Jul 01 1999 | Telefonaktiebolaget LM Ericsson | Bandwidth efficient acknowledgment/negative acknowledgment in a communication system using automatic repeat request (ARQ) |
6643813, | Feb 17 1999 | Telefonaktiebolaget LM Ericsson | Method and apparatus for reliable and efficient data communications |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 03 2000 | Nokia Corporation | (assignment on the face of the patent) | / | |||
Aug 05 2002 | MATE, AMITE | Nokia Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021769 | /0189 | |
Aug 30 2002 | RINNE, MIKKO | Nokia Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021769 | /0189 | |
May 31 2011 | Nokia Corporation | NOKIA 2011 PATENT TRUST | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027120 | /0608 | |
Sep 01 2011 | NOKIA 2011 PATENT TRUST | 2011 INTELLECTUAL PROPERTY ASSET TRUST | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 027121 | /0353 | |
Apr 10 2012 | 2011 INTELLECTUAL PROPERTY ASSET TRUST | SISVEL INTERNATIONAL S A | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028377 | /0643 |
Date | Maintenance Fee Events |
Jan 08 2010 | ASPN: Payor Number Assigned. |
Mar 27 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 23 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
May 31 2021 | REM: Maintenance Fee Reminder Mailed. |
Nov 15 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 13 2012 | 4 years fee payment window open |
Apr 13 2013 | 6 months grace period start (w surcharge) |
Oct 13 2013 | patent expiry (for year 4) |
Oct 13 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 13 2016 | 8 years fee payment window open |
Apr 13 2017 | 6 months grace period start (w surcharge) |
Oct 13 2017 | patent expiry (for year 8) |
Oct 13 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 13 2020 | 12 years fee payment window open |
Apr 13 2021 | 6 months grace period start (w surcharge) |
Oct 13 2021 | patent expiry (for year 12) |
Oct 13 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |