Tracking sequence numbers in packet data communication system
First Claim
1. A method of tracking sequence numbers for message packets in a packet data transmission system, comprising the steps of:
- a) assigning sequence numbers in order to a series of packets transmitted from a source to a destination;
b) at said destination, defining an acceptable range of said sequence numbers, said range beginning at a base sequence number and extending for a window which is a small fraction of the available sequence numbers;
c) comparing the sequence number of each message packet received at said station with said acceptable range;
d) discarding all message packets having sequence numbers not within said range;
e) maintaining at said destination a first bit map, and indexing into said first bit map to a sequence number index position representing the sequence number of a packet received at said destination; and
f) for said packet received at said destination, checking its sequence number index position in said first bit map, and discarding said packet if said sequence number index position contains an indication that a packet of the sequence number of this index position has already been received, or, if said index position does not contain said indication, then storing an indication at said index position that a packet has been received.
6 Assignments
0 Petitions
Accused Products
Abstract
A packet data communication network employs sequence numbers in message packets to identify the packets transmitted for a message, so that the order of packets can be checked, and so that the occurrence of lost or duplicated packets can be detected. A method of keeping track of these sequence numbers is provided. Any number below or above a bounded sequence number acceptance window is ignored (not accepted). Bit maps are established for the range of numbers within the bounded window, each bit representing a sequence number and the bit maps indexed by sequence number. One bit map is a received packet map, used to keep track of which sequence numbers have been received and thus to filter duplicate sequence numbers. An end-of-message bit map is used to record the positions of packets having end-of-message flags, and this is used with the received packet map to determine whether all packets of a message have been received, so that an end-of-message trigger can be generated. The sequence number and an end-of-message flag from an incoming packet are used to update these bit maps as each packet is received, then the updated bit maps used to determine the needed action. Two methods are described for tracking these sequence numbers. Both methods have good average-case performance. The first method uses an iterative loop and is more suited for software implementation. The second method uses table lookup to replace the iterative loop and is more suited for hardware implementation. This method has very good worst-case performance.
-
Citations
34 Claims
-
1. A method of tracking sequence numbers for message packets in a packet data transmission system, comprising the steps of:
-
a) assigning sequence numbers in order to a series of packets transmitted from a source to a destination; b) at said destination, defining an acceptable range of said sequence numbers, said range beginning at a base sequence number and extending for a window which is a small fraction of the available sequence numbers; c) comparing the sequence number of each message packet received at said station with said acceptable range; d) discarding all message packets having sequence numbers not within said range; e) maintaining at said destination a first bit map, and indexing into said first bit map to a sequence number index position representing the sequence number of a packet received at said destination; and f) for said packet received at said destination, checking its sequence number index position in said first bit map, and discarding said packet if said sequence number index position contains an indication that a packet of the sequence number of this index position has already been received, or, if said index position does not contain said indication, then storing an indication at said index position that a packet has been received. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of tracking sequence numbers in a packet data receiver for use in a transmission system employing sequence numbers for message packets, comprising the steps of:
-
a) receiving message packets having sequence numbers; b) comparing each received sequence number with an acceptable range of said sequence numbers in a window extending from a beginning sequence number for a small fraction of the available sequence numbers; c) discarding a received message packet having a sequence number not within said window; d) maintaining a first bit map indexed by sequence number in which a bit is placed in a selected condition for each packet received; and e) checking the first bit map upon receiving each packet and discarding any packet having a sequence number indexing into said first bit map to a bit already in said selected condition in said bit map. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A packet data receiver apparatus for use in a transmission system employing sequence numbers for message packets, comprising:
-
a) means for receiving message packets having sequence numbers; b) means for comparing each sequence number with a window defining an acceptable range of said sequence numbers, said window beginning at a base sequence number and extending for a small fraction of the available sequence numbers, and for discarding a received message packet having a sequence number not within said range; c) means for maintaining a first bit map indexed by sequence number in which a bit is placed in a given condition for each packet received; and d) means for checking the first bit map upon receiving each packet and discarding any packet having a sequence number indexing into said first bit map to a bit already in said given condition. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A packet data transmission system employing packet sequence numbers assigned in order, comprising, at a receiving station:
-
a) means for defining an acceptable range of said sequence numbers, said acceptable range beginning at a base sequence number and extending for a window which is a small fraction of the available sequence numbers; b) means for comparing the sequence number of each message packet received with said acceptable range, and for discarding all message packets having sequence numbers not within said range; c) means for maintaining a first bit map, each bit of said bit map being in a set or not-set condition, and for indexing into said first bit map to a bit position representing the sequence number of a received packet; d) means for checking said bit position in said first bit map for said received packet, and discarding said received packet if the bit at said bit position is already in said set condition, or changing the bit at said bit position to a set condition if in said not-set condition. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification