« PreviousContinue »
PACKETING TIMEOUT SPOOFING IN A
WIRELESS DATA COMMUNICATIONS
BACKGROUND OF THE INVENTION
The widespread availability of personal computers at low cost has lead to a situation where the general public increasingly demands access to the Internet and other computer networks. A similar demand exists for wireless communications in that the public increasingly demands that cellular telephones be available at low cost with ubiquitous coverage.
As a result of their familiarity with these two technologies, the general population now increasingly wishes to not only have access to computer networks, but also wishes to access such networks in wireless fashion as well. This is of particular concern for the users of portable computers, laptop computers, hand-held personal digital assistants (PDAs), and the like, who would prefer and, indeed, now expect to be able to access such networks with the same convenience they have grown accustom to when using their cellular telephones.
Unfortunately, there is still no widely available satisfactory solution for providing low cost, high speed access to the Internet and other networks using the existing wireless infrastructure which has been built at some expense to support cellular telephony. Indeed, at the present time, the users of wireless modems that operate with the existing cellular telephone network often experience a difficult time when trying to, for example, use the Internet to view web pages. The same frustration level is felt in any situation when attempting to perform other tasks that require the transfer of relatively large amounts of data between computers.
This is, at least, in part due to the architecture of cellular telephone networks, which were originally designed to support voice communications, as compared to the communication protocols in use for the Internet, which were originally optimized for wireline communication. In particular, the protocols used for connecting computers over wireline networks do not lend themselves well to efficient transmission over standard wireless connections.
For example, cellular networks were originally designed to deliver voice grade services, having an information bandwidth of approximately three kilohertz (kHz). While techniques exist for communicating data over such radio channels at rate of 9600 kilo bits per second (kbps), such low frequency channels do not lend themselves directly to transmitting data at rates of 28.8 kbps or even the 56.6 kbps that is now commonly available using inexpensive wireline modems. These rate are presently thought to be the minimum acceptable data rates for Internet access.
This situation is true for advanced digital wireless communication protocols as well, such as Code Division Multiple Access (CDMA). Even though such systems convert input voice information to digital signals, they were also designed to provide communication channels at voice grade bandwidth. As a result, they have been designed to use communication channels that may exhibit a bit error rate (BER) of as high as approximately one in one thousand bits in multipath fading environments. While such a bit error rate is perfectly acceptable for the transmission of voice signals, it becomes cumbersome for most data transmission environments.
Such a high bit error rate is certainly unacceptable for Internet type data transmissions. For example, the Trans
mission Control Protocol/Internet Protocol (TCP/IP) standard in use for Internet air transmission uses a frame size of 1480 bits. Thus, if a bit error is received in every frame, such as detected by a frame check sequence, it would appear as 5 though every single frame might have to be re-transmitted in certain applications.
SUMMARY OF THE INVENTION
One method of providing an error-free channel over a 10 wireless communication network entails an intermediary base unit resending an individual packet over the wireless connection until the packet is received correctly. If the wireless connection experiences interference or is operating under poor signal-to-noise ratio conditions, multiple resends 15 may be required to achieve an error free transmission. As a result, a non-deterministic delay is introduced into the system.
The TCP/IP standard however, does not account for such non-deterministic delays and therefore assumes an error has
20 occurred in the transmission. The TCP/IP standard includes various algorithms which are automatically invoked in such cases. One such algorithm, a performance enhancing algorithm described in Request For Comments (RFC) 2001, retransmits a packet if three acknowledgments are received
25 which identify the same packet as being a next expected packet.
By way of background, a TCP/IP network may operate under a sliding window protocol in an effort to provide reliable stream delivery while maximizing bandwidth. Under this protocol, both endpoints of a TCP/IP connection negotiate an acceptable window size. The window size designates a maximum number of bytes which may be transmitted by a sending unit before receiving an acknowledgment from the receiving unit. Generally, the window is referred to in terms of maximum number of unacknowledged packets. Once the sending unit receives an acknowledgment for the first packet in the window, it "slides" the window along and sends the next packet.
40 TCP/IP acknowledgments are cumulative. That is, they refer to a position in the stream of data up to which, the data has been received. Moreover, the acknowledgment specifies a sequence number of the next byte or octet that the receiver expects to receive. As a result, the sending unit is informed
45 of the longest contiguous prefix of the stream that has been received correctly. No information, however, is provided with regard to other packets which were transmitted successfully but, were received out of order.
That is, in a stream of data comprising packet numbers
50 1-15, where a window consists of ten packets, if packets 1-5 and 7-15 have been received successfully, each acknowledgment sent for a packet received after packets 1-5 have been received, specifies that packet 6, the next highest contiguous packet, is expected. Once three acknowledg
55 ments requesting packet 6 have been sent, the RFC 2001 performance enhancing algorithm is invoked and packets
6- 15 are resent by the sending unit even though packets
7- 15 have been successfully received by the receiving unit. In a wireless TCP/IP connection, a failure to receive a
60 packet may not be an indication of a problem in a system but rather, as described above, a delay caused by an effort to send an error free packet. As a result, additional bandwidth is used to needlessly resend packets which have either already been received but not acknowledged or are currently
65 being transmitted with some additional delay.
In accordance with one aspect of the invention, a method for avoiding a packet resend in a wireless data communications network is provided that includes monitoring acknowledgment message traffic between a sending unit and a receiving unit and preventing forwarding of an acknowledgment message to the sending unit when the acknowledgment message is a second duplicate acknowledgment mes- 5 sage. With such an arrangement, non-deterministic delays introduced into a wireless communications network do not needlessly cause packet resends.
In accordance with a further aspect of the invention, an apparatus is provided for avoiding a packet resend in a 1° wireless data communications network. The apparatus includes a first endpoint unit connected between a sending unit and a receiving unit. The first endpoint unit includes a monitor component to monitor acknowledgment message traffic between the sending unit and the receiving unit and a 15 filter unit to prevent forwarding of a duplicate acknowledgment message to the sending unit until a predefined condition is met. With such an arrangement, resends of packets previously received at a receiving unit may be avoided.
In accordance with a further aspect of the invention a 20 method is provided for providing packet receipt acknowledgment in a wireless data communications network. The method includes sending an acknowledgment message from a receiving unit to an endpoint unit to acknowledge receipt of a data packet, forwarding the acknowledgment message, 25 from the endpoint unit, to a sending unit if the acknowledgment message is not a duplicate acknowledgment message and preventing forwarding of the acknowledgment message to the sending unit if the acknowledgment message is a second duplicate acknowledgment message.
Also provided is a computer program product for avoiding a packet resend in a wireless data communications network.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
FIG. 1 is a block diagram of a communication system ^ suitable for performing packeting timeout spoofing in a wireless communications network.
FIG. 2 is a diagram indicating a receipt order of packets at a receiving unit.
FIG. 3 is a flow diagram depicting a procedure invoked 50 upon receipt by the subscriber access unit of FIG. 1 of a duplicate acknowledgment message.
FIG. 4 is a flow diagram depicting an alternate embodiment of a procedure invoked upon receipt by the subscriber access unit of FIG. 1 of a duplicate acknowledgment mes- 55 sage.
FIG. 5A is a message sequence chart illustrating a packet data and acknowledgment message exchange between a network server unit and a personal computer through the subscriber access unit and the base station processor of FIG. 60 1.
FIG. 5B is a continuation of the chart of FIG. 5A.
wireless communications network. The communication system 10 is shown to include a personal computer (PC) 12, a subscriber access unit (SAU) 14, a base station processor (BSP) 16 and a network server unit (NSU) 18. The SAU 14 connects to the BSP 16 through a wireless connection 22. The BSP 16 connects to the NSU 18 through a wireline connection 24. The PC 12, which may, alternatively, be a personal digital assistant (PDA) or the like (not shown), connects to the SAU 14 through a wireline connection 20.
As shown, the PC 12 may be provided access to the NSU 18, which may be any remote entity located on the Internet or other network, through a combination of the wireline 20,24 and wireless 22 bidirectional connections provided. Typically, the PC 12 provides an Internet Protocol (IP) packet to the SAU 14 over the wireline connection 20. The SAU 14 removes the wireline framing of the IP packet and transfers the data in the IP packet to the BSP 16, over the wireless connection 22 in accordance with a radio link protocol. The BSP 16 extracts the radio link frames and forwards them, in IP packet form, over the wireline connection 24 to the NSU 18. The SAU 14 and the BSP 16 may be viewed as endpoints on the wireless connection 20.
Once the connections are established, a user at the PC 12 and the NSU 16 may share data. In accordance with the TCP/IP protocol, a receiving unit sends an acknowledgment message to a sending unit upon receipt of a sent packet of data. In addition, where a sliding window protocol is followed, a limit is placed on a maximum number of outstanding packets allowed in the system. In accordance with the sliding window protocol, once the maximum number of outstanding, unacknowledged packets have been sent, the sending unit stops sending packets until an acknowledgment is received. The receiving unit may provide cumulative acknowledgment messages which indicate a number of consecutive packets which have been received.
Here, data packets, as well as acknowledgment messages, are forwarded by the endpoints of the wireless connection 22, the SAU 14 and the BSP 16, to the appropriate units in the manner described above. The acknowledgment message includes a sequence number for a next expected packet of data.
Under certain circumstances, delays may be introduced into the system resulting in the receiving unit not receiving a packet within an allotted period of time. Consequently, multiple acknowledgment messages may be sent, each indicating an expectation by the receiving unit of receiving the delayed packet next. It should be noted that, as described above, an acknowledgment message is cumulative, indicating the sequence number for the next expected packet of data. That is, an acknowledgment message, resulting from receipt of a packet, indicates the identity of a next expected packet, rather than indicating an identity of the packet received. To more fully illustrate the cumulative nature of acknowledgment messages, FIG. 2 is provided.
FIG. 2 is a diagram 25 indicating a receipt order of packets at a receiving unit. As shown, packets D 34, E 36 and F 38 were received by the receiving unit prior to receipt of packet C 40. Specifically, packets A 30 and B 32 were received, followed by packets D 34, E 36 and F 38. Following receipt of packet F 38, packets C 40, G 42 and H 44 were received in that order.
In response to the receipt of each of these packets, the receiving unit sends an acknowledgment message to the sending unit to indicate receipt of a packet. As described above, each acknowledgment message indicates to the sending unit, a sequence number of the next expected packet.