Method and apparatus for preserving packet squencing in a packet transmission system
First Claim
1. A method, for in a packet transmission system, for preserving the sequential relationship of a data stream of data packets generated by a plurality of source devices and communicated between a first terminal and a second terminal over channels which introduce ordering errors, comprising the steps of:
- at said first terminal;
identifying data packets from within the data stream as a function of source device identification information;
generating data packet sequence information for the identified data packets;
storing in first terminal memory, values corresponding to data packet sequence information, indexed as a function of source device identification; and
transmitting first terminal transmissions comprising data packets, source device identification information and packet sequence information to said second terminal having first terminal source device and data packet sequence information;
at said second terminal;
receiving said first terminal transmissions;
fetching from second terminal memory, first terminal data packet sequence information when addressed by first terminal source device identification information;
comparing fetched data packet sequence information with received data packet sequence information;
forwarding a received data packet for further processing when the sequence information sequence numbers match; and
storing at least some of the received data packets in second terminal memory in an order determined by the sequence information when the sequence information sequence numbers do not match.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for preserving the sequential relationship of a plurality of data packets 310 generated by separate source devices 14 and ordered as a data stream 300, despite transmission over radio channels which introduce ordering errors comprises method steps and apparatus structure for identifying at a first terminal, data packets from within the data stream as a function of source, generating data packet sequence information for identified data packets, storing values corresponding to data packet sequence numbers as a function of source and transmitting data packets, source device identity and packet sequence information to a second terminal having first terminal source device and data packet sequence information. Upon receipt of a first terminal transmission, the second terminal retrieves from second terminal memory, first terminal data packet sequence information and compares the stored data packet sequence information with received data packet sequence information. As a function of the comparison, received data packets are forwarded to an appropriate application for further processing when sequence information sequence numbers compare and stored in an order determined by the sequence information when the sequence numbers do not compare.
118 Citations
21 Claims
-
1. A method, for in a packet transmission system, for preserving the sequential relationship of a data stream of data packets generated by a plurality of source devices and communicated between a first terminal and a second terminal over channels which introduce ordering errors, comprising the steps of:
-
at said first terminal; identifying data packets from within the data stream as a function of source device identification information; generating data packet sequence information for the identified data packets; storing in first terminal memory, values corresponding to data packet sequence information, indexed as a function of source device identification; and transmitting first terminal transmissions comprising data packets, source device identification information and packet sequence information to said second terminal having first terminal source device and data packet sequence information; at said second terminal; receiving said first terminal transmissions; fetching from second terminal memory, first terminal data packet sequence information when addressed by first terminal source device identification information; comparing fetched data packet sequence information with received data packet sequence information; forwarding a received data packet for further processing when the sequence information sequence numbers match; and storing at least some of the received data packets in second terminal memory in an order determined by the sequence information when the sequence information sequence numbers do not match. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A communication system controller for use with a general purpose microprocessor, said controller comprising:
-
a computer program storage medium having a computer program stored thereon for execution by said microprocessor to preserve the sequential relationship of a data stream of data packets generated by a plurality of source devices and communicated between a first terminal and a second terminal, said program comprising; at said first terminal; means for identifying data packets from within the data stream as a function of source device identification information; means for generating data packet sequence information for identified data packets; a first random access memory, associated with the identifying means and the generating means; means for feeding to said first memory, source device identification information, as an address signal; means for storing in said first memory, values corresponding to data packet sequence information, indexed by source device identification information; and a transmitter, coupled to the first random access memory, for transmitting first terminal transmissions comprising data packets, source device identification information and data packet sequence information to said second terminal; at said second terminal; a receiver for receiving said first terminal transmissions; a second random access memory, coupled to the receiver, having first terminal source device and data packet sequence information; means, coupled to the second memory, for fetching first terminal data packet sequence information from the second memory when said second memory is addressed by received source device identification information; means for comparing the fetched data packet sequence information sequence number with received data packet sequence information sequence number; means, responsive to the comparison, for forwarding a received data packet for further processing when sequence information sequence numbers match;
storing the received data packet when the sequence information sequence numbers match within a range from V(r)+1 to V(r)+(2n-2 -1);
forwarding the received data packet for further processing when the sequence information sequence numbers match within a range from V(r)+(2n-2) to V(r)+(2n-1 -1); and
discarding the received data packet when the sequence information sequence numbers do not match by more than V(r)+(2n-1) where V(r) is a value representing an anticipated sequence number for the received data packet and n is a number of bits used to encode that sequence number value V(r). - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An RF communication system for preserving the sequential relationship of a data stream of data packets generated by a plurality of source devices and communicated between a first terminal and a second terminal, said communication system comprising:
-
said first terminal including; a microprocessor for identifying said plurality of source devices, identifying data packets from within the data stream as a function of source and generating data packet sequence numbers for identified data packets; random access memory, coupled to the microprocessor, for storing a table of values corresponding to data packet sequence numbers as a function of source device identification; a transmitter, controlled by the microprocessor and coupled to the random access memory, for transmitting data packets, source device identity and packet sequence numbers to said second terminal having first terminal source device and data packet sequence number information; said second terminal including; a receiver for receiving first terminal transmissions; random access memory, coupled to the receiver, for storing a table values corresponding to first terminal data packet sequence number information; and a microprocessor, coupled to the receiver and random access memory, for fetching first terminal data packet sequence number information from random access memory when random access memory is addressed by source device identification, comparing the fetched data packet sequence number with a received data packet sequence number, forwarding a received data packet to an application for further processing when sequence information sequence numbers match, storing the received data packet when the sequence information sequence numbers match within a range from V(r)+1 to V(r)+(2n-2 -1), forwarding a received data packet to an application for further processing when the sequence information sequence numbers match within a range from V(r)+(2n-2) to V(r)+(2n-1 -1); and
discarding the received data packet when the sequence information sequence numbers do not match by more than V(r)+(2n-1), where V(r) is a value representing an anticipated sequence number for the received data packet and n is a number of bits used to encode that sequence number value V(r).
-
Specification