Packet transmission method without sending serial numbers

To enable data transmission without transmitting packer's serial numbers, a transmit serial number is incremented by one at a transmit site each time a serial numberless data packet is sent to a receive site, and a copy of the transmitted packet is stored in a transmit memory corresponding to the transmit serial number. The process is repeated so that a predetermined number of outstanding packets are transmitted. At the receive site, a receive serial number is incremented by one upon receipt of each packet and the packet is stored in a receive memory corresponding to the receive serial number. The receive site determines whether there is an error in the outstanding packets in the receive memory. If an error is found, the receive site sends a request packet containing the serial number of the packet in error to the transmit site. In response, the transmit site sends a replacement copy for the corrupted packet to the receive site which, in response, replaces the packet in error with the received copy. If no packet in error is found in the receive memory, the receive site transmits an acknowledgment to the transmit site. On receiving it, the transmit site repeats the transmission of the next sequence of outstanding serial numberless packets.

BACKGROUND OF THE INVENTION 
1. Field of the Invention 
The present invention relates generally to data communications, and more 
specifically to a cellular mobile communication system where mobile data 
terminals send and receive packets to and from cell-site stations. 
2. Description of the Related Art 
Recent proliferation of personal devices for cellular mobile communication 
networks have created a need to communicate computer data over radio links 
in a packet-switched mode, rather than in a circuit-switched mode, for 
efficient utilization of network resources. In data communication systems, 
the international standard X.25 specifies that three-bit serial numbers be 
contained in each data packet to indicate the transmit and receive 
sequences together with a format identifier and a logical channel number 
and so fort. According to the X.25 standard, a predetermined number of 
data packets are transmitted in sequence from a transmit site to a receive 
site. These packets are called "outstanding" because the transmit site 
receives no acknowledgment during the transmission of these packets. If 
the receive site ails to receive any of the outstanding packets it returns 
no acknowledgment. Following the transmission of all outstanding packets, 
the transmit site begins a timing operation. If no acknowledgment is 
received within the period of the timing operation, the transmit site 
determines that an error has occurred in the transmitted packets, and 
retransmits their copies although not all of the previous packets have 
been corrupted. 
If the protocols of the current standard for packet switched network are 
employed, the throughput of a connection established in the cellular 
network will be significantly low due to the relatively low transmission 
speed of the radio link. Another factor that would affect the throughput 
is the amount of data contained in the packet header since powerful error 
control bits would be needed to ensure against the loss of any single bit. 
Furthermore, the conventional retransmission scheme would increase radio 
traffic and hence place further limitations on the throughput. It is thus 
important to reduce the amount of housekeeping data in the packet header. 
SUMMARY OF THE INVENTION 
It is therefore an object of the present invention to provide a data 
communication method that enables a high throughput over low-speed 
communications links by not transmitting serial numbers which are 
conventionally used to establish the identity of transmitted packets. 
According to a first aspect of the present invention, there is provided a 
method for transmitting data packets from a transmit site to a receive 
site without containing serial numbers of the data packets, comprising the 
steps of: 
a) transmitting a data packet from the transmit site to the receive site, 
incrementing a serial number by 1 at the transmit site and storing a copy 
of the transmitted data packet in a storage location of a transmit memory 
corresponding to the serial number; 
b) repeating the step (a) a predetermined number of times; 
c) receiving each data packet of the step (a) at the receive site, 
incrementing a serial number by 1 and storing the received data packet in 
a storage location of a receive memory corresponding to the serial number; 
and 
d) repeating the step (c) the same predetermined number of times as the 
step (b). 
Preferably, following the step (d), the present invention provides the 
steps of: 
e) determining whether there is a data packet in error in the receive 
memory; 
f) if a data packet in error is found by the step (e), transmitting a 
request packet containing the serial number of the packet in error from 
the receive site to the transmit site; 
g) receiving the request packet at the transmit site and transmitting to 
the receive site a copy of the data packet stored in the transmit memory 
in a location identified by the serial number contained in the request 
packet; 
h) receiving the copy of data packet at the receive site and replacing the 
packet in error stored in the receive memory with the received copy and 
repeating the step (e); 
i) if a data packet in error is not found by the step (e), transmitting an 
acknowledging packet from the receive site to the transmit site; and 
j) repeating the steps (a) to (i). 
According to a second aspect of the present invention, there is provided a 
method for transmitting data packets from a transmit site to a receive 
site without containing serial numbers of the data packets, comprising the 
steps of: 
a) setting a first transmit variable to 0 at the transmit site and setting 
a first receive variable to 0 at the receive site; 
b) setting a second transmit variable to 0 at the transmit site; 
c) transmitting a data packet from the transmit site to the receive site, 
incrementing the second variable by 1 and storing a copy of the 
transmitted data packet in a storage location of a transmit memory 
corresponding to a sum of the first and second transmit variables; 
d) repeating the step (c) a predetermined number of times and incrementing 
the first transmit variable by an amount corresponding to predetermined 
number; 
e) setting a second receive variable to 0 at the receive site; 
f)receiving each data packet of the step (c) at the receive site, 
incrementing the second receive variable by 1 and storing the received 
data packet in a storage location of a receive memory corresponding to a 
sum of the first and second receive variables; 
g) repeating the step (f) said predetermined number of times and 
incrementing the first receive variable by an amount corresponding to the 
same predetermined number as that of the step (d). 
Preferably, following the step (g), the present invention provides the 
steps of: 
j) determining whether there is a data packet in error in the receive 
memory; 
k) if a data packet in error is found by the step (j), transmitting a 
request packet containing a sum of the first and second receive variables 
from the receive site to the transmit site; 
l) receiving the request packet at the transmit sire and transmitting to 
the receive site a copy of the data packet stored in the transmit memory 
in a location identified by the sum contained in the request packet; 
m) receiving the copy of data packet at the receive site and replacing the 
packet in error stored in the receive memory with the received copy and 
repeating the step (j); 
n) if a data packet in error is not found by the step (j), transmitting an 
acknowledging packet from the receive site to the transmit site; and 
o) receiving the acknowledgment packet at the transmit site and repeating 
the steps (b) to (h).

DETAILED DESCRIPTION 
In FIG. 1, there is shown a cell-site station of a cellular mobile 
communication system according to the present invention. The cell-site 
base station includes a packet assembler 10 where user data are assembled 
into a packet and applied to a transmitter 11 where it is converted to a 
radio frequency signal for transmission on a forward channel from antenna 
12 to a mobile station. A copy of the transmitted packet is stored in a 
buffer memory 15 for retransmission in the event of an error. Signals on a 
reverse channel from the mobile station are received by antenna 12, 
converted to baseband by receiver 13 and supplied to a packet disassembler 
14 where each packet is disassembled. Controller 16 provides memory 
management on buffer memory 15 so that copies of user data transmitted are 
stored in sequence for purposes of retransmission and provides an error 
check on the mobile-transmitted user data. If a bit error exists, it 
directs the packet assembler 10 to send a return message indicating the 
serial number of a packet in error, otherwise it directs the packet 
assembler to acknowledge receipt of a sequence of packets by sending to 
the mobile station a "receive ready" packet. At appropriate timing, the 
mobile-transmitted user data in memory 15 are read out into utilization 
circuitry, not shown. Controller 16 includes error checking circuitry, not 
shown, to check for the presence of any packet in memory 15 which has been 
corrupted during transmission. 
As shown in FIG. 2, the cellsite-transmitted signal is received by antenna 
20 of a mobile station and converted to baseband by a receiver 21 and fed 
to a packet disassembler 22 where the packet is disassembled and its 
contents are analyzed. The user data contained in the disassembled packet 
is stored into a buffer memory 23 under control of a controller 24. A 
utilization circuit, not shown, is connected to the buffer memory 23 to 
read user data therefrom at appropriate timing. User data from mobile 
station is applied to a packet assembler 25 where it is assembled into a 
packet. The packet from the mobile station is converted to radio frequency 
by a transmitter 26 and transmitted from antenna 20 to the cell-site 
station. Controller 24 provides memory management on buffer memory 23 so 
that copies of mobile-transmitted user data are stored in sequence for 
purposes of retransmission and provides an error check on the 
cellsite-transmitted user data. If a bit error exists in a predetermined 
number of cellsite-transmitted packets, controller 24 directs the packet 
assembler 25 to send a return message (selective ready packet) indicating 
the serial number of a damaged packet, otherwise it directs the packet 
assembler 25 to acknowledge receipt of a sequence of packets. Controller 
24 includes error checking circuitry, not shown, to check for the presence 
of any packet in memory 23 which has been corrupted during transmission. 
As shown in FIG. 3, the packet transmitted over the forward and reverse 
channels of the cellular network contains a channel header, a logical 
channel number field, a user data field and a frame check sequence. User 
data is inserted in the user data field. No serial number is transmitted 
by packets. Packet assemblers at both cell-site and mobile stations 
provide assembling of a data packet according to the format of FIG. 3, and 
packet disassemblers of both stations provide disassembling of a received 
packet into constituent components for channel identification and error 
check. 
The operation of controller 16 at cell-site station during a transmit mode 
is illustrated in FIG. 4. When transmitting data traffic to a mobile 
station, a first variable n is set to 0 at block 30 and a second variable 
i is set to 0 at block 31. A sum of the variables n+i indicates the serial 
number of a data packet sent to the mobile station. Controller 16 commands 
the packet assembler 10 to assemble and transmit a data packet (block 32) 
and stores a copy of the transmitted packet into the buffer memory 15 
(block 33) in a storage location identified by the serial number n+i. 
Variable i is incremented by 1 at block 34 and is checked at block 35 to 
see if it is equal to k, (where k is the maximum number of outstanding 
packets waiting to be acknowledged). If i is not equal to k, flow returns 
to block 32 to transmit the next packet. These k outstanding packets are 
sequentially transmitted at periodic intervals to the mobile station and 
copies of the corresponding packets are stored in memory 15. 
Flow proceeds to block 36 to check for the presence of a selective reject 
packet SR(j) from the mobile station, requesting retransmission of packet 
(j) which has been corrupted or lost during transmission, where j 
identifies the serial number of the packet in error or lost. If the 
decision is affirmative at block 36, flow proceeds to block 37 to fetch 
the copy of the requested packet from the location of memory 15 identified 
by the serial number contained in the requesting packet, and transmit it 
to the mobile station. Following block 37 or negative decision of block 
36, decision block 38 is executed to check for the presence of a receive 
ready packet RR(k) from the mobile station, acknowledging receipt of a 
sequence of k packets and signaling that the mobile station is ready to 
accept the next sequence. If the acknowledging packet is received, flow 
proceeds from block 38 to block 39 to set the variable n equal to n+k and 
returns to block 31 to start sending the next sequence of k packets. 
The operation of the mobile controller 24 during a receive mode is 
illustrated in FIG. 5. During the receive mode, mobile controller 24 sets 
variables n and i to 0 at blocks 40 and 41, respectively. At block 42, 
controller 24 checks for the presence of a data packet from the transmit 
site. If there is none, flow proceeds to block 48 to determine if i=0. If 
i=0, blocks 42 and 48 are repeated to monitor the arrival of a first 
packet. If a first packet is received, flow proceeds from block 42 to 
block 43 to store the received packet in the buffer memory 23 and flow 
proceeds to block 44. If variable i is 0 at block 44, flow proceeds to 
block 45 to start a timer so that it starts producing a preset timing 
signal at predetermined intervals corresponding to the intervals at which 
data packets are received. Flow proceeds to block 46 to increment the 
variable i by 1. At block 47, the serial number represented by variable i 
is checked to see if it is equal to k. If not, flow returns to block 42 to 
repeat the above process until variable i is incremented to k. 
During an interval between arrivals of successive packets once a first data 
packet is received, the mobile station loops through blocks 42, 48 and 49 
to monitor the arrival of a packet until a timing signal is produced by 
the timer at block 49. If the mobile site fails to receive a packet at 
preset timing, the decision at block 49 is positive and flow proceeds to 
block 50 to store a dummy packet in a storage location of its memory 
corresponding to variable i+1 and variable i is then incremented by 1 at 
block 46. 
When i is incremented to k, flow proceeds from block 47 to block 51, where 
the mobile site searches through its memory for a data packet in error or 
a dummy packet. If the decision at block 51 is negative, flow proceeds to 
block 52 to determine whether the memory 23 is ready to receive the next 
sequence of k packets, and if so, it proceeds to block 53 to transmit a 
receive ready packet RR(k) to acknowledge the receipt of k packets. 
Receive site sets the variable n equal to n+k at block 54 and returns to 
block 41 to repeat the above process for the next sequence of k packets. 
If there is an erroneous or dummy packet (j) in memory 23, the decision at 
block 51 is affirmative and the mobile station proceeds to block 55 to 
transmit a selective reject packet SR(j) to the transmit site, requesting 
it to retransmit a copy of the data packet identified by the serial number 
j contained in the packet SR(j). If a copy of the data packet (j) is 
received (block 56), the mobile station proceeds to block 57 to replace 
the stored erroneous or dummy packet (j) with the received copy of the 
packet (j), and flow returns to block 51 to provide an error check on the 
retransmitted packet. 
Assume that k=5, and the cell-site station starts sending packets beginning 
with D(1). The mobile station increments the serial number represented by 
the sum of variables n+i in response to packets D(1) to D(5) as 
illustrated in FIG. 6. The serial numbers of both transmit and receive 
sites are incremented synchronously to #5. If data packet D(4) is 
completely corrupted and the mobile station fails to receive it, an error 
check at block 51 by controller 24 results in the transmission of a packet 
SR(4) requesting a retransmission. On receiving the packet SR(4), the 
cell-site station retransmits a copy of packet D(4) stored in memory 15. 
In response to receipt of the copy of packet D(4), the mobile station 
replaces the dummy packet in memory 23 with the retransmitted packet D(4) 
and sends an RR(5) packet if the memory 23 is ready to receive packets. 
The cell-site controller 15 responds to packet RR(5) by incrementing 
variable n by 5 at block 39 and returns to block 31 to restart sending the 
next sequence of data packets. 
When user data is transmitted on a reverse channel, the mobile station 
performs the process of FIG. 4 and the cell-site station performs the 
process of FIG. 5.