US20060069793A1 - System and method using a circular buffer for detecting packet loss in streaming applications - Google Patents
System and method using a circular buffer for detecting packet loss in streaming applications Download PDFInfo
- Publication number
- US20060069793A1 US20060069793A1 US10/538,100 US53810005A US2006069793A1 US 20060069793 A1 US20060069793 A1 US 20060069793A1 US 53810005 A US53810005 A US 53810005A US 2006069793 A1 US2006069793 A1 US 2006069793A1
- Authority
- US
- United States
- Prior art keywords
- packet
- sequence number
- entry
- circular buffer
- received
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/48—Picture signal generators
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01J—MEASUREMENT OF INTENSITY, VELOCITY, SPECTRAL CONTENT, POLARISATION, PHASE OR PULSE CHARACTERISTICS OF INFRARED, VISIBLE OR ULTRAVIOLET LIGHT; COLORIMETRY; RADIATION PYROMETRY
- G01J3/00—Spectrometry; Spectrophotometry; Monochromators; Measuring colours
- G01J3/46—Measurement of colour; Colour measuring devices, e.g. colorimeters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01J—MEASUREMENT OF INTENSITY, VELOCITY, SPECTRAL CONTENT, POLARISATION, PHASE OR PULSE CHARACTERISTICS OF INFRARED, VISIBLE OR ULTRAVIOLET LIGHT; COLORIMETRY; RADIATION PYROMETRY
- G01J3/00—Spectrometry; Spectrophotometry; Monochromators; Measuring colours
- G01J3/46—Measurement of colour; Colour measuring devices, e.g. colorimeters
- G01J3/465—Measurement of colour; Colour measuring devices, e.g. colorimeters taking into account the colour perception of the eye; using tristimulus detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/10—Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01J—MEASUREMENT OF INTENSITY, VELOCITY, SPECTRAL CONTENT, POLARISATION, PHASE OR PULSE CHARACTERISTICS OF INFRARED, VISIBLE OR ULTRAVIOLET LIGHT; COLORIMETRY; RADIATION PYROMETRY
- G01J3/00—Spectrometry; Spectrophotometry; Monochromators; Measuring colours
- G01J3/46—Measurement of colour; Colour measuring devices, e.g. colorimeters
- G01J2003/467—Colour computing
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01J—MEASUREMENT OF INTENSITY, VELOCITY, SPECTRAL CONTENT, POLARISATION, PHASE OR PULSE CHARACTERISTICS OF INFRARED, VISIBLE OR ULTRAVIOLET LIGHT; COLORIMETRY; RADIATION PYROMETRY
- G01J3/00—Spectrometry; Spectrophotometry; Monochromators; Measuring colours
- G01J3/46—Measurement of colour; Colour measuring devices, e.g. colorimeters
- G01J3/50—Measurement of colour; Colour measuring devices, e.g. colorimeters using electric radiation detectors
- G01J3/501—Colorimeters using spectrally-selective light sources, e.g. LEDs
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01J—MEASUREMENT OF INTENSITY, VELOCITY, SPECTRAL CONTENT, POLARISATION, PHASE OR PULSE CHARACTERISTICS OF INFRARED, VISIBLE OR ULTRAVIOLET LIGHT; COLORIMETRY; RADIATION PYROMETRY
- G01J3/00—Spectrometry; Spectrophotometry; Monochromators; Measuring colours
- G01J3/46—Measurement of colour; Colour measuring devices, e.g. colorimeters
- G01J3/50—Measurement of colour; Colour measuring devices, e.g. colorimeters using electric radiation detectors
- G01J3/51—Measurement of colour; Colour measuring devices, e.g. colorimeters using electric radiation detectors using colour filters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Definitions
- This invention relates to the detection of packet loss in Internet streaming. More particularly, this invention relates to a system and method for using a circular buffer, implemented by a chain of buffers forming a circle, for packet loss detection in Internet streaming. Most particularly, this invention relates to a system and method for dynamically adapting packet loss detection latency, which is determined by the size of the chain, to network conditions and application requirements that achieves reasonable detection accuracy and is easy to implement.
- the receiver may ask the sender to retransmit this lost packet.
- the receiver In order to send a retransmission request promptly, the receiver must have means to timely detect packet losses.
- packet loss detection is done using either a timer or timing windows.
- a timer is used for loss detection.
- a timer with a timeout value is set by the sender for that packet. If the timer expires before the acknowledgement of the packet is received, the packet is declared as lost and resent by the sender.
- a timing window (or more precisely a table) has a fixed number of binary entries. Each entry indicates a packet's status (0: lost, 1: received). At a certain point of time, the first entry in this window is associated with a packet that is identified by a sequence number (such as the sequence number of a real-time transport protocol (RTP) packet). The subsequent window entries are associated with packets having higher sequence numbers in sequential order. Therefore, the space of packet sequence numbers can be viewed as being divided into blocks, each block being associated with a window at a certain point of time.
- RTP real-time transport protocol
- the timer method can be applied only to TCP-like protocols that can measure packet round-trip time in order to properly set the timeout value of the timer. In streaming applications, most of the time only unidirectional media streams are generated. The timer method is not applicable to these cases. Instead, timing window methods are used. However, there are limitations with the timing window methods:
- the system and method of the present invention comprises:
- Shortening the latency can increase the chance of recovering a lost packet. Having a uniform latency may imply an equal recovery chance for all losses. Therefore having an equal latency for all loss detection may be desirable for many streaming applications.
- the implementation overhead of the circular buffer of the present invention is low and can be less than the timing window method.
- FIG. 1 a illustrates a preferred embodiment of the circular buffer structure of the present invention.
- FIG. 1 b illustrates the structure of each of the buffers in the circular buffer illustrated in FIG. 1 a.
- FIG. 2 a illustrates an algorithm of a preferred that implements the circular buffer structure illustrated in FIGS. 1 a - b.
- FIG. 2 b illustrates a flow chart of the algorithm illustrated in FIG. 2 a.
- FIG. 3 illustrates a preferred embodiment of an algorithm for adapting the structure of the circular buffer chain based on network characteristics.
- m is the length of the circular chain that determines the loss detection latency, and it can be adapted to network conditions and application requirements.
- P 11 is a pointer that circulates through the chain, pointing to each buffer in turn.
- Each buffer B i 10 in the chain comprises two fields, F 1 13 and F 2 14 .
- F 1 13 stores a pointer to the next buffer.
- F 2 14 stores a sequence number s of a packet that may get lost.
- packets are supposed sent in the order of packet sequence number.
- an arriving packet In a no-loss and ideal world, an arriving packet always has a sequence number one higher than the previous. If a packet arrives out of order, or is lost, then a hole or gap is observed in the sequence numbers of the received packets.
- a hole (could be a hole that spans more than one consecutive number) is observed, potentially, this hole may indicate one or more lost packets.
- out-of-order packet delivery is common to Internet because each packet can take a different path through the network and an earlier numbered packet may take longer to arrive than a later numbered packet.
- An application cannot make a loss declaration immediately after observing a hole in the sequence of arriving packets. The application has to wait and see whether this hole is just an incident of out-of-order delivery.
- the circular buffer method provides a way to determine if a loss declaration can be made.
- FIG. 2 a illustrates C programming language code for a preferred embodiment of an algorithm for accomplishing the method of the present invention.
- FIG. 2 b is a flow chart of the algorithm illustrated in FIG. 2 a .
- the pointer P 12 circulates through the chain of buffers B i 11 , the circulation being driven by receipt of a packet at step 20 .
- the sequence number of the received packet is checked against that of the current maximum sequence number already received s at step 21 , and if it is less than the current maximum sequence number received it is an out of order packet.
- step 22 a hole in the sequence is checked for and when a hole in the sequence is observed the following steps are performed:
- step 28 if the buffer at which P is pointing contains a non-received packet (P ⁇ >F 2 is not zero) then at step 29 the packet with the sequence number P ⁇ >F 2 is declared lost and the sequence number stored in the buffer is set to zero
- step 30 P is updated to point to the next buffer in sequence.
- the current maximum sequence number is set to that of the received packet.
- the received packet number is compared with the numbers stored in the circular buffer, and the corresponding record in the buffer is cleaned, i.e., set to zero at step 32 .
- the detection latency is determined by the size of the buffer chain m, because the loss declaration is only made when the pointer re-visits a non-empty buffer, i.e., when F 2 is non-zero.
- the length may be too short and may need to be lengthened by inserting a new buffer and adjusting m correspondingly 36 .
- the larger value of m decreases the likelihood of the pointer P encountering a delivered but out-of-order packet in a buffer as P circulates through the buffer chain B i 11 .
- This present invention can be used in the implementation of multimedia players that play media from networked storage. Or it can be used by any type of multimedia receiver that wants to use retransmission as an error-recovery means, therefore need to perform packet loss detection. Finally, it can be used by transport control protocol implementations that the packet loss detection is done at the receiver side.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Color Image Communication Systems (AREA)
- Spectrometry And Color Measurement (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Polyurethanes Or Polyureas (AREA)
- Dental Preparations (AREA)
- Materials For Medical Uses (AREA)
- Facsimile Image Signal Circuits (AREA)
- Credit Cards Or The Like (AREA)
- Time Recorders, Dirve Recorders, Access Control (AREA)
- Inspection Of Paper Currency And Valuable Securities (AREA)
Abstract
A circular buffer, i.e., a chain of buffers forming a circle, is provided for managing packet loss detection in Internet streaming. The detection latency is determined by the size of the buffer chain, which can be dynamically adapted to network conditions and application requirements. The present invention can achieve reasonable detection accuracy.
Description
- This invention relates to the detection of packet loss in Internet streaming. More particularly, this invention relates to a system and method for using a circular buffer, implemented by a chain of buffers forming a circle, for packet loss detection in Internet streaming. Most particularly, this invention relates to a system and method for dynamically adapting packet loss detection latency, which is determined by the size of the chain, to network conditions and application requirements that achieves reasonable detection accuracy and is easy to implement.
- In Internet streaming applications, when an important packet gets lost, such as a packet belonging to an I-frame in video or the base-layer in scalable coding, the receiver may ask the sender to retransmit this lost packet. In order to send a retransmission request promptly, the receiver must have means to timely detect packet losses. Currently, packet loss detection is done using either a timer or timing windows.
- In the transmission control (TCP) protocol, a timer is used for loss detection. When a packet is sent, a timer with a timeout value is set by the sender for that packet. If the timer expires before the acknowledgement of the packet is received, the packet is declared as lost and resent by the sender.
- In most streaming applications, loss detection is done by using timing windows. A timing window (or more precisely a table) has a fixed number of binary entries. Each entry indicates a packet's status (0: lost, 1: received). At a certain point of time, the first entry in this window is associated with a packet that is identified by a sequence number (such as the sequence number of a real-time transport protocol (RTP) packet). The subsequent window entries are associated with packets having higher sequence numbers in sequential order. Therefore, the space of packet sequence numbers can be viewed as being divided into blocks, each block being associated with a window at a certain point of time.
- Presently, two such timing windows associated with two consecutive blocks of packets are used for packet loss detection. In the beginning, all entries are marked as “0”. When a packet is received, the corresponding window entry is marked as “1”. When a packet is received that has a sequence number that goes beyond the first window, the corresponding second window entry is marked. As soon as a packet is transmitted with a sequence number that goes beyond even the second window, the first window is closed, and its entries are checked. Packets associated with entries that remain marked as “0”, are declared as lost. A consecutive new window is opened right after the second window and the detection process resumes.
- The timer method can be applied only to TCP-like protocols that can measure packet round-trip time in order to properly set the timeout value of the timer. In streaming applications, most of the time only unidirectional media streams are generated. The timer method is not applicable to these cases. Instead, timing window methods are used. However, there are limitations with the timing window methods:
-
- The window size is fixed—there is no built-in mechanism for window size adaptation, which is desirable when network conditions and application requirements (e.g. delay) change.
- Non-uniform loss detection latency for different losses occurs—the lost detection latency lies in a range between T and ˜2T, where T is the average period of the timing window, such that when a loss is associated with the first entry of the window, the detection latency is 2T, while it is T if the loss is associated with the last entry of the window.
- Thus, there is a need for a loss detection method that allows adaptive loss detection latency, as well as a uniform loss detection latency. The system and method of the present invention comprises:
-
- a circular chain of buffers having a chain size that is adjustable according to network conditions and application requirements, thereby providing adaptive loss detection latency; and
- a circular chain of buffers having a fixed chain size, thereby providing uniform detection latency when the chain size is fixed.
- Shortening the latency can increase the chance of recovering a lost packet. Having a uniform latency may imply an equal recovery chance for all losses. Therefore having an equal latency for all loss detection may be desirable for many streaming applications.
- The implementation overhead of the circular buffer of the present invention is low and can be less than the timing window method.
-
FIG. 1 a illustrates a preferred embodiment of the circular buffer structure of the present invention. -
FIG. 1 b illustrates the structure of each of the buffers in the circular buffer illustrated inFIG. 1 a. -
FIG. 2 a illustrates an algorithm of a preferred that implements the circular buffer structure illustrated inFIGS. 1 a-b. -
FIG. 2 b illustrates a flow chart of the algorithm illustrated inFIG. 2 a. -
FIG. 3 illustrates a preferred embodiment of an algorithm for adapting the structure of the circular buffer chain based on network characteristics. - Referring now to FIB. 1 a,
buffers 1 through m form a circularly linked list ofm buffers B i 10 where i=1, . . . , m each of whosestructure 12 is shown inFIG. 1 b. As shown inFIG. 1 a, m is the length of the circular chain that determines the loss detection latency, and it can be adapted to network conditions and application requirements.P 11 is a pointer that circulates through the chain, pointing to each buffer in turn. Eachbuffer B i 10 in the chain comprises two fields,F 1 13 andF 2 14. F1 13 stores a pointer to the next buffer. F2 14 stores a sequence number s of a packet that may get lost. - In streaming applications, packets are supposed sent in the order of packet sequence number. In a no-loss and ideal world, an arriving packet always has a sequence number one higher than the previous. If a packet arrives out of order, or is lost, then a hole or gap is observed in the sequence numbers of the received packets.
- Whenever a hole (could be a hole that spans more than one consecutive number) is observed, potentially, this hole may indicate one or more lost packets. However, out-of-order packet delivery is common to Internet because each packet can take a different path through the network and an earlier numbered packet may take longer to arrive than a later numbered packet. An application cannot make a loss declaration immediately after observing a hole in the sequence of arriving packets. The application has to wait and see whether this hole is just an incident of out-of-order delivery. The circular buffer method provides a way to determine if a loss declaration can be made.
-
FIG. 2 a illustrates C programming language code for a preferred embodiment of an algorithm for accomplishing the method of the present invention.FIG. 2 b is a flow chart of the algorithm illustrated inFIG. 2 a. Thepointer P 12 circulates through the chain ofbuffers B i 11, the circulation being driven by receipt of a packet atstep 20. The sequence number of the received packet is checked against that of the current maximum sequence number already received s atstep 21, and if it is less than the current maximum sequence number received it is an out of order packet. - If it is not an out of order packet, at step 22 a hole in the sequence is checked for and when a hole in the sequence is observed the following steps are performed:
- a. If the buffer at which P is pointing contains a non-received packet (P−>F2 is not zero at step 24) then at
step 25 the packet with the sequence number P−>F2 is declared lost. - b. Then, regardless of whether or not P was pointing at a non-received packet, at
step 26 the current maximum sequence number is incremented by one and stored in the current buffer and P is updated to point to the next buffer in sequence, i.e., P=P−>F1. - c. The number of buffers that fall in the hole is decremented by 1 at
step 27 and steps a-c are repeated until the remaining number of buffers is zero. - Thus, all the sequence numbers that fall in the hole are stored in the circular buffer chain, with each number occupying one buffer.
- When a hole is not observed, the following steps are performed:
- d. At
step 28 if the buffer at which P is pointing contains a non-received packet (P−>F2 is not zero) then atstep 29 the packet with the sequence number P−>F2 is declared lost and the sequence number stored in the buffer is set to zero - e. Whether or not P−>F2 points at a non-received packet, at step 30 P is updated to point to the next buffer in sequence.
- When all the processing associated with an in order packet is completed:
- f. At
step 31 the current maximum sequence number is set to that of the received packet. - If a packet arrives out of order (having a sequence number that is earlier than the current received maximum sequence number s):
- g. the received packet number is compared with the numbers stored in the circular buffer, and the corresponding record in the buffer is cleaned, i.e., set to zero at
step 32. - Thus, the detection latency is determined by the size of the buffer chain m, because the loss declaration is only made when the pointer re-visits a non-empty buffer, i.e., when F2 is non-zero.
- As illustrated in
FIG. 3 , the chain size m, that determines the detection latency can be adapted. For example, in a preferred embodiment, initially m=4. If the observed false declaration rate is higher than a given threshold, i.e.,
false_rate>TOLERABLE_RATE - the length may be too short and may need to be lengthened by inserting a new buffer and adjusting m correspondingly 36. The greater the length of the network path, i.e., number of links traversed, the larger the m that is needed, because when a packet traverses a longer network path, there is a greater likelihood of out-of-order delivery occurring. The larger value of m decreases the likelihood of the pointer P encountering a delivered but out-of-order packet in a buffer as P circulates through the
buffer chain B i 11. - The success_rate is initially declared to be a pre-determined EXPECT_RATE and adjusted thereafter to be
and if the success_rate is too high, i.e., if
success_rate>EXPECT_RATE
the length of the buffer chain may be too long and may need to be shortened by deleting a buffer as illustrated inFIG. 3 . - This present invention can be used in the implementation of multimedia players that play media from networked storage. Or it can be used by any type of multimedia receiver that wants to use retransmission as an error-recovery means, therefore need to perform packet loss detection. Finally, it can be used by transport control protocol implementations that the packet loss detection is done at the receiver side.
- The methods and systems of the present invention, as described above and shown in the drawings, provide for a circular buffer that allows an adaptive latency detection time or a fixed latency detection time. It will be apparent to those skilled in the art that various modifications and variations can be made in the method and system of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention includes modifications and variations that are within the scope of the appended claims and their equivalents.
Claims (14)
1. A system for adaptive detection of streamed packet loss by a receiver of a plurality of streamed packets transmitted over a network from a given sender to the receiver, comprising:
a circular buffer (10) of size m>1 entries (13), each entry (13) having at most one sequence number (15) of a streamed packet that has not been received and is possibly lost;
a packet loss detection module (33) that uses the circular buffer (10) to detect and store therein a sequence number (15) of a non-received and possibly lost packet, to detect therein and remove therefrom a sequence number (15) of a lost packet and declare the packet lost, and to remove therefrom a sequence number (15) of a possibly lost packet that is received from the given sender;
an adaptation module (37) that adapts the system to a network condition, wherein a loss detection latency is determined by the size m of the circular buffer (10) and the loss declaration is possibly false.
2. The system of claim 1 , wherein m is initially set to 4.
3. The system of claim 1 , further comprising:
a variable s having an initial value of 1 and being adapted to store a highest sequence number of a streamed packet transmitted over the network from the given sender and received by the receiver;
a pointer P (12) having an initial position pointing at a pre-determined location in the circular chain and being adapted to circulate sequentially through the m entries of said circular buffer (10) beginning at an entry (13) in the circular buffer (10) that is next in sequence to the entry (13) corresponding to the variable s;
wherein,
for a streamed packet received from the given sender, the packet loss detection module (33) checks the sequence number of the received packet against the variable s and performs one of the following—
a. if a hole in the sequence of received packets is observed beginning at the location pointed at by the pointer P (12), each entry (13) of the circular buffer (10) that is in the hole is checked for a sequence number (15) of a possibly lost packet and the corresponding packet is declared lost, a total of declared losses declared_losses is increased by one, each sequence number in the hole is stored in ascending order in a sequential entry (13) beginning at the location pointed at by the pointer P (12), P (12) is updated to point to the entry (13) in the circular buffer (10) following hole, and s is set equal to the sequence number of the received pkt,
b. if a hole in the sequence of received packets in not observed the entry (13) pointed at by the pointer P (12) is checked for a sequence number (15) of a possibly lost packet and the corresponding packet is declared lost, a total of declared losses declared_losses is increased by one, the entry (13) is cleared, P (12) is updated to point to the next entry (14) in the circular buffer (10), and s is set equal to the sequence number of the received pkt,
c. if an out of order packet is observed, the entries of the circular buffer (10) are searched to find one that contains a sequence number (15) equal to the sequence number of the received packet and if found the entry (13) is cleared, if not found a false declaration rate false_declared_losses is increased by one.
4. The system of claim 3 , wherein:
the network condition is at least one of a success rate of transmission (success_rate) and the false declaration rate (false_rate) wherein the success_rate is initially set to a predetermined expected rate (EXPECT_RATE); and
the adaptation module (37) adjusts the size m of the circular buffer (10) according to the network condition as follows
a. m is increased if false_rate>TOLERABLE_RATE where TOLERABLE_RATE is a predetermined threshold and an entry (13) is added to the circular buffer (10), or
b. m is decreased if
and an entry (13) is removed from the circular buffer (10).
5. The system of claim 4 , wherein the circular buffer (10) is a circular buffer (10) chain Bi for i=1, . . . , m of a plurality of m>1 buffers such that each of said plurality of buffers is an entry (13) comprising a pointer to the next buffer (14) in the chain and a value for storing a sequence number (15) of a non-received buffer and the pointer P (12) point to a buffer in the chain.
6. A system for adaptive detection of streamed packet loss by a receiver of a plurality of streamed packets transmitted over a network from a given sender to the receiver, comprising:
a circular buffer (10) of size m>1 entries, each entry (13) having at most one sequence number (15) of a streamed packet that has not been received and is possibly lost;
a packet loss detection module (33) that uses the circular buffer (10) to detect and store therein a sequence number (15) of a non-received and possibly lost packet, to detect therein and remove therefrom a sequence number (15) of a lost packet and declare the packet lost, and to remove therefrom a sequence number (15) of a possibly lost packet that is received from the given sender;
means for adapting the system to a network condition (37), wherein a loss detection latency is determined by the size m of the circular buffer (10) and the loss declaration is possibly false.
7. The system of claim 6 , further comprising:
a variable s having an initial value of 1 and being adapted to store a highest sequence number of a streamed packet transmitted over the network from the given sender and received by the receiver;
a pointer P (12) having an initial position pointing at a pre-determined location in the circular chain and being adapted to circulate sequentially through the m entries of said circular buffer (10) beginning at an entry (13) in the circular buffer (10) that is next in sequence to the entry (13) corresponding to the variable s;
wherein,
for a streamed packet received from the given sender, the packet loss detection module (33) checks the sequence number of the received packet against the variable s and performs one of the following—
a. if a hole in the sequence of received packets is observed beginning at the location pointed at by the pointer P (12), each entry (13) of the circular buffer (10) that is in the hole is checked for a sequence number (15) of a possibly lost packet and the corresponding packet is declared lost, a total of declared losses declared_losses is increased by one, each sequence number in the hole is stored in ascending order in a sequential entry (13) beginning at the location pointed at by the pointer P (12), P (12) is updated to point to the entry (13) in the circular buffer (10) following hole, and s is set equal to the sequence number of the received pkt,
b. if a hole in the sequence of received packets in not observed the entry (13) pointed at by the pointer P (12) is checked for a sequence number (15) of a possibly lost packet and the corresponding packet is declared lost, a total of declared losses declared_losses is increased by one, the entry (13) is cleared, P (12) is updated to point to the next entry (14) in the circular buffer (10), and s is set equal to the sequence number of the received pkt,
c. if an out of order packet is observed, the entries (13) of the circular buffer (10) are searched to find one that contains a sequence number (15) equal to the sequence number of the received packet and if found the entry (13) is cleared, if not found a false declaration rate false_declared_losses is increased by one.
8. A method for adaptive detection of streamed packet loss by a receiver of a plurality of streamed packets transmitted over a network from a given sender to the receiver, comprising the steps of:
providing a circular buffer (10) of size m>1 entries, each entry (13) having at most one sequence number (15) of a streamed packet that has not been received and is possibly lost;
receiving from the given sender a streamed packet having a sequence number;
using the circular buffer (10) and the sequence number of the received packed to perform one of the steps of:
a. detecting and storing in the circular buffer (10) a sequence number (15) of a non-received and possibly lost packet,
b. detecting in the circular buffer (10) and removing therefrom a sequence number (15) of a lost packet and declaring the packet lost such that the loss declaration is possibly false, and
c. removing from the circular buffer (10) a sequence number (15) of a possibly lost packet that corresponds to the sequence number of the received packet;
adapting the method to a network condition such that a loss detection latency is determined by the size m of the circular buffer (10).
9. The method of claim 8 , further comprising the steps of:
providing a variable s having an initial value of 1;
setting the provided variable s=max(s, sequence number of the received streamed packet);
providing a pointer P (12) having an initial position pointing at a pre-determined location in the circular buffer (10) that is adapted to circulate sequentially through the m entries of the provided circular buffer (10) beginning at an entry (13) in the circular buffer (10) that is next in sequence to the entry (13) corresponding to the variable s;
for a streamed packet received from the given sender, checking the sequence number of the received packet against the variable s and performing one of the following steps—
a. if a hole in the sequence of received packets is observed beginning at the location pointed at by the pointer P (12),
a.1 checking each entry (13) of the circular buffer (10) that is in the hole for a sequence number (15) of a possibly lost packet and declaring the corresponding packet lost,
a.2 if a packet is declared lost, increasing a total of declared losses declared_losses by one,
a.3 storing each sequence number in the hole in ascending order in a sequential entry (13) beginning at the location pointed at by the pointer P (12),
a.4 updating the pointer P (12) to point to the entry (13) in the circular buffer (10) following hole, and
a.5 setting s equal to the sequence number of the received pkt;
b. if a hole in the sequence of received packets in not observed
b.1 checking the entry (13) pointed at by the pointer P (12) for a sequence number (15) of a possibly lost packet and declaring the corresponding packet lost,
b2. if a packet is declared lost, increasing a total declared losses declared_losses by one,
b.3 clearing the entry (13) pointed at by P (12),
b.4 updating P (12) to point to the next entry (14) in the circular buffer (10), and
b.5 setting s equal to the sequence number of the received pkt;
c. if an out of order packet is observed
c.1 searching the entries (13) of the circular buffer (10) to find one that contains a sequence number (15) equal to the sequence number of the received packet,
c.2 if found, clearing the entry (13),
c.3 if not found, increasing a false declaration rate falsely_declared_losses by one.
10. The method of claim 9 , wherein:
the network condition is at least one of a success rate of transmission (success_rate) and the false declaration rate (false_rate)) wherein the success_rate is initially set to a pre-determined expected rate (EXPECT_RATE); and
the adaptation step adjusts the size m of the circular buffer (10) according to the network condition by performing one of the following steps:
d. if false_rate>TOLERABLE_RATE where TOLERABLE_RATE is a predetermined
threshold performing the following steps
d.1 increasing m by 1, and
d.2 adding an entry (13) to the circular buffer (10), or
e. if success_rate>EXPECT_RATE
e.1 decreasing m by 1,
e.2 removing an entry (13) from the circular buffer (10),
11. The method of claim 9 , wherein m is initially set to 4.
12. A computer program product for use in conjunction with a processor to adapt detection of streamed packet loss by a receiver of a plurality of streamed packets transmitted over a network from a given sender to the receiver, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
a circular buffer (10) of size m>1 entries, each entry (13) having at most one sequence number (15) of a streamed packet that has not been received and is possibly lost;
a packet loss detection routine (33) including instructions for using the circular buffer (10) to detect and store therein a sequence number (15) of a non-received and possibly lost packet, detect therein and remove therefrom a sequence number (15) of a lost packet and declare the packet lost, and remove therefrom a sequence number (15) of a possibly lost packet that is received from the given sender;
an adaptation routine (37) including instructions that adapt the system to a network condition,
wherein a loss detection latency is determined by the size m of the circular buffer (10) and the loss declaration is possibly false.
13. The computer program product of claim 12 , further comprising:
a variable s having an initial value of 1 and being adapted to store a highest sequence number of a streamed packet transmitted over the network from the given sender and received by the receiver;
a pointer P (12) having an initial position pointing at a pre-determined location in the circular chain and being adapted to circulate sequentially through the m entries of said circular buffer (10) beginning at an entry (13) in the circular buffer (10) that is next in sequence to the entry (13) corresponding to the variable s;
wherein,
for a streamed packet received from the given sender, the instructions of the packet loss detection routine (33) check the sequence number of the received packet against the variable s and perform one of the following—
a. if a hole in the sequence of received packets is observed beginning at the location pointed at by the pointer P (12), each entry (13) of the circular buffer (10) that is in the hole is checked for a sequence number (15) of a possibly lost packet and the corresponding packet is declared lost, total of declared losses declared_losses is increased by one, each sequence number in the hole is stored in ascending order in a sequential entry (13) beginning at the location pointed at by the pointer P (12), P (12) is updated to point to the entry (13) in the circular buffer (10) following hole, and s is set equal to the sequence number of the received pkt,
b. if a hole in the sequence of received packets in not observed the entry (13) pointed at by the pointer P (12) is checked for a sequence number (15) of a possibly lost packet and the corresponding packet is declared lost, a total of declared losses declared_losses is increased by one, the entry (13) is cleared, P (12) is updated to point to the next entry (14) in the circular buffer (10), and s is set equal to the sequence number of the received pkt,
c. if an out of order packet is observed, the entries (13) of the circular buffer (10) are searched to find one that contains a sequence number (15) equal to the sequence number of the received packet and if found the entry (13) is cleared, if not found a false declaration rate falsely_declared_losses is increased by one and the total of declared losses declared_losses is decreased by one.
14. The computer program product of claim 13 , wherein:
the network condition is at least one of a success rate of transmission (success_rate) and a false declaration rate (false)rate) wherein the success_rate is initially set to a pre-determined expected rate (EXPECT_RATE); and
the adaptation routine (37) adjusts the size m of the circular buffer (10) according to the network condition as follows
a. m is increased if false_rate>TOLERABLE_RATE where TOLERABLE_RATE is a predetermined threshold and an entry (13) is added to the circular buffer (10), or
b. m is decreased if
entry (13) is removed from the circular buffer (10).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/538,100 US20060069793A1 (en) | 2002-12-12 | 2003-12-10 | System and method using a circular buffer for detecting packet loss in streaming applications |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43289202P | 2002-12-12 | 2002-12-12 | |
US10/538,100 US20060069793A1 (en) | 2002-12-12 | 2003-12-10 | System and method using a circular buffer for detecting packet loss in streaming applications |
PCT/IB2003/005879 WO2004054183A1 (en) | 2002-12-12 | 2003-12-10 | A system and method using a circular buffer for detecting packet loss in streaming applications |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060069793A1 true US20060069793A1 (en) | 2006-03-30 |
Family
ID=32508007
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/538,202 Expired - Fee Related US7593567B2 (en) | 2002-12-12 | 2003-12-04 | Transformation structures for approximating color matching functions |
US10/538,100 Abandoned US20060069793A1 (en) | 2002-12-12 | 2003-12-10 | System and method using a circular buffer for detecting packet loss in streaming applications |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/538,202 Expired - Fee Related US7593567B2 (en) | 2002-12-12 | 2003-12-04 | Transformation structures for approximating color matching functions |
Country Status (9)
Country | Link |
---|---|
US (2) | US7593567B2 (en) |
EP (1) | EP1573285A1 (en) |
JP (1) | JP2006510010A (en) |
KR (1) | KR20050088116A (en) |
CN (1) | CN1726384A (en) |
AT (1) | ATE464544T1 (en) |
AU (1) | AU2003283696A1 (en) |
DE (1) | DE60332155D1 (en) |
WO (1) | WO2004053438A1 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376768B1 (en) * | 2003-12-19 | 2008-05-20 | Sonic Solutions, Inc. | Dynamic memory allocation for multiple targets |
US20090048390A1 (en) * | 2001-10-04 | 2009-02-19 | Xiaorong Wang | Nano-Particle Preparation And Applications |
US20090185551A1 (en) * | 2008-01-22 | 2009-07-23 | Winter Robert L | Method and system for providing confirmed delivery of ethernet packets |
US20100161823A1 (en) * | 2008-12-19 | 2010-06-24 | Soon-Heung Jung | A streaming service system and method for universal video access based on scalable video coding |
US20100278040A1 (en) * | 2007-12-29 | 2010-11-04 | Jia He | Protection method, system, and device in packet transport network |
US8441953B1 (en) * | 2010-11-03 | 2013-05-14 | Juniper Networks, Inc. | Reordering with fast time out |
US9521083B2 (en) | 2014-01-27 | 2016-12-13 | Anue Systems, Inc. | Traffic differentiator systems for network devices and related methods |
US9832084B2 (en) | 2014-01-27 | 2017-11-28 | Keysight Technologies Singapore (Holdings) Pte Ltd | Traffic differentiator systems for network devices and related methods including automatic port order determination |
US11228515B2 (en) * | 2018-06-06 | 2022-01-18 | Huawei Technologies Co., Ltd. | Data packet detection method, device, and system |
US20230009530A1 (en) * | 2019-12-11 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | Data Sequence Amendment Method, Packet Monitoring Apparatus, Data Sequence Amendment Device, and Data Sequence Amendment Program |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100815609B1 (en) * | 2006-12-19 | 2008-03-21 | 한국표준과학연구원 | Orange function filter for color measurement device |
US8233275B2 (en) * | 2008-03-07 | 2012-07-31 | Hewlett-Packard Development Company, L.P. | Combination grill and computer add-in-card retention structure |
US8408744B2 (en) | 2008-03-31 | 2013-04-02 | Hewlett-Packard Development Company, L.P. | RGB LED control using vector calibration |
US8203756B2 (en) * | 2009-07-31 | 2012-06-19 | Eastman Kodak Company | Method for characterizing the color response of an imaging device |
EP2798831B1 (en) | 2011-12-28 | 2016-08-31 | Dolby Laboratories Licensing Corporation | Spectral image processing |
WO2014071302A1 (en) * | 2012-11-02 | 2014-05-08 | Variable, Inc. | Computer-implemented system and method for color sensing, storage and comparison |
JP6299180B2 (en) * | 2013-11-27 | 2018-03-28 | 株式会社リコー | Imaging apparatus, imaging system, and imaging method using the imaging apparatus |
JP2016099176A (en) * | 2014-11-20 | 2016-05-30 | コニカミノルタ株式会社 | Color inspection method and color inspection device |
CN105049841B (en) * | 2015-07-24 | 2017-11-28 | 中国科学院合肥物质科学研究院 | The method for improving color camera coloration ability using the pre- optical filter of single channel |
CN114928743A (en) * | 2016-03-31 | 2022-08-19 | 大日本印刷株式会社 | Transmission type color calibration chart and calibration slide glass |
CN110896303B (en) * | 2018-09-12 | 2024-04-05 | 浙江菜鸟供应链管理有限公司 | Filtering method and filtering device, and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5151899A (en) * | 1991-02-11 | 1992-09-29 | Digital Equipment Corporation | Tracking sequence numbers in packet data communication system |
US20030026277A1 (en) * | 2001-07-09 | 2003-02-06 | Overture Networks, Inc. | Use of a circular buffer to assure in-order delivery of packets |
US20030202528A1 (en) * | 2002-04-30 | 2003-10-30 | Eckberg Adrian Emmanuel | Techniques for jitter buffer delay management |
US6738821B1 (en) * | 1999-01-26 | 2004-05-18 | Adaptec, Inc. | Ethernet storage protocol networks |
US20060077953A1 (en) * | 1999-12-03 | 2006-04-13 | Kenney John B | Method and apparatus for replacing lost PSTN data in a packet network |
US7043022B1 (en) * | 1999-11-22 | 2006-05-09 | Motorola, Inc. | Packet order determining method and apparatus |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US555085A (en) * | 1896-02-25 | Broom-holder | ||
DE68909701T2 (en) * | 1988-07-12 | 1994-02-03 | Niigata Prefecture Niigata | Method for converting color data of a light source and color data of a non-luminous object. |
AU656057B2 (en) * | 1992-03-27 | 1995-01-19 | Milliken & Company | Method and apparatus for reproducing blended colorants on an electronic display |
US5677967A (en) * | 1993-03-10 | 1997-10-14 | R. R. Donnelley & Sons Company | Method of and apparatus for converting between a color appearance space and a colorant space |
DE4434168B4 (en) * | 1994-09-24 | 2004-12-30 | Byk-Gardner Gmbh | Device and method for measuring and evaluating spectral radiation and in particular for measuring and evaluating color properties |
US5609978A (en) * | 1995-06-06 | 1997-03-11 | Eastman Kodak Company | Method for producing an electronic image from a photographic element |
KR100598137B1 (en) * | 1998-09-16 | 2006-07-07 | 소니 가부시끼 가이샤 | Display apparatus |
EP1011262A1 (en) * | 1998-12-10 | 2000-06-21 | Interuniversitair Micro-Elektronica Centrum Vzw | Method and device for determining corrected colour aspects of a pixel in an imaging device |
US6411046B1 (en) * | 2000-12-27 | 2002-06-25 | Koninklijke Philips Electronics, N. V. | Effective modeling of CIE xy coordinates for a plurality of LEDs for white LED light control |
US6630801B2 (en) * | 2001-10-22 | 2003-10-07 | Lümileds USA | Method and apparatus for sensing the color point of an RGB LED white luminary using photodiodes |
WO2003041390A2 (en) * | 2001-11-06 | 2003-05-15 | Rochester Institute Of Technology | Method and system for optimizing a selection of spectral sensitivities |
US7053935B2 (en) * | 2002-02-21 | 2006-05-30 | Eastman Kodak Company | Apparatus and method for accurate electronic color capture and reproduction |
-
2003
- 2003-12-04 US US10/538,202 patent/US7593567B2/en not_active Expired - Fee Related
- 2003-12-04 KR KR1020057010660A patent/KR20050088116A/en not_active Application Discontinuation
- 2003-12-04 AU AU2003283696A patent/AU2003283696A1/en not_active Abandoned
- 2003-12-04 EP EP03775677A patent/EP1573285A1/en not_active Withdrawn
- 2003-12-04 DE DE60332155T patent/DE60332155D1/en not_active Expired - Lifetime
- 2003-12-04 WO PCT/IB2003/005651 patent/WO2004053438A1/en active Application Filing
- 2003-12-04 JP JP2004558248A patent/JP2006510010A/en active Pending
- 2003-12-04 CN CNA2003801058334A patent/CN1726384A/en active Pending
- 2003-12-04 AT AT03775677T patent/ATE464544T1/en active
- 2003-12-10 US US10/538,100 patent/US20060069793A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5151899A (en) * | 1991-02-11 | 1992-09-29 | Digital Equipment Corporation | Tracking sequence numbers in packet data communication system |
US6738821B1 (en) * | 1999-01-26 | 2004-05-18 | Adaptec, Inc. | Ethernet storage protocol networks |
US7043022B1 (en) * | 1999-11-22 | 2006-05-09 | Motorola, Inc. | Packet order determining method and apparatus |
US20060077953A1 (en) * | 1999-12-03 | 2006-04-13 | Kenney John B | Method and apparatus for replacing lost PSTN data in a packet network |
US20030026277A1 (en) * | 2001-07-09 | 2003-02-06 | Overture Networks, Inc. | Use of a circular buffer to assure in-order delivery of packets |
US20030202528A1 (en) * | 2002-04-30 | 2003-10-30 | Eckberg Adrian Emmanuel | Techniques for jitter buffer delay management |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090048390A1 (en) * | 2001-10-04 | 2009-02-19 | Xiaorong Wang | Nano-Particle Preparation And Applications |
US7376768B1 (en) * | 2003-12-19 | 2008-05-20 | Sonic Solutions, Inc. | Dynamic memory allocation for multiple targets |
US8565071B2 (en) * | 2007-12-29 | 2013-10-22 | Huawei Technologies Co., Ltd. | Protection method, system, and device in packet transport network |
US20100278040A1 (en) * | 2007-12-29 | 2010-11-04 | Jia He | Protection method, system, and device in packet transport network |
US20090185551A1 (en) * | 2008-01-22 | 2009-07-23 | Winter Robert L | Method and system for providing confirmed delivery of ethernet packets |
US8130761B2 (en) * | 2008-01-22 | 2012-03-06 | Dell Products L.P. | Method and system for providing confirmed delivery of ethernet packets |
US20100161823A1 (en) * | 2008-12-19 | 2010-06-24 | Soon-Heung Jung | A streaming service system and method for universal video access based on scalable video coding |
US8441953B1 (en) * | 2010-11-03 | 2013-05-14 | Juniper Networks, Inc. | Reordering with fast time out |
US9521083B2 (en) | 2014-01-27 | 2016-12-13 | Anue Systems, Inc. | Traffic differentiator systems for network devices and related methods |
US9832084B2 (en) | 2014-01-27 | 2017-11-28 | Keysight Technologies Singapore (Holdings) Pte Ltd | Traffic differentiator systems for network devices and related methods including automatic port order determination |
US10680917B2 (en) | 2014-01-27 | 2020-06-09 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Traffic differentiator systems and related methods including automatic packet stream order determination |
US11228515B2 (en) * | 2018-06-06 | 2022-01-18 | Huawei Technologies Co., Ltd. | Data packet detection method, device, and system |
US20230009530A1 (en) * | 2019-12-11 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | Data Sequence Amendment Method, Packet Monitoring Apparatus, Data Sequence Amendment Device, and Data Sequence Amendment Program |
US12040989B2 (en) * | 2019-12-11 | 2024-07-16 | Nippon Telegraph And Telephone Corporation | Data sequence amendment method, packet monitoring apparatus, data sequence amendment device, and data sequence amendment program |
Also Published As
Publication number | Publication date |
---|---|
DE60332155D1 (en) | 2010-05-27 |
EP1573285A1 (en) | 2005-09-14 |
WO2004053438A1 (en) | 2004-06-24 |
US20060045331A1 (en) | 2006-03-02 |
AU2003283696A1 (en) | 2004-06-30 |
JP2006510010A (en) | 2006-03-23 |
US7593567B2 (en) | 2009-09-22 |
ATE464544T1 (en) | 2010-04-15 |
CN1726384A (en) | 2006-01-25 |
KR20050088116A (en) | 2005-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060069793A1 (en) | System and method using a circular buffer for detecting packet loss in streaming applications | |
Blanton et al. | A conservative loss recovery algorithm based on selective acknowledgment (SACK) for TCP | |
Blanton et al. | A conservative selective acknowledgment (SACK)-based loss recovery algorithm for TCP | |
KR101236080B1 (en) | Efficient loss recovery architecture for loss-decoupled tcp | |
US7058723B2 (en) | Congestion control for internet protocol storage | |
US7580411B2 (en) | Network flow/stream simulation method | |
JP4587053B2 (en) | Communication apparatus, communication system, packet loss detection method, and packet loss detection program | |
US7203167B2 (en) | Data flow control method | |
KR100436435B1 (en) | Method and Apparatus for Transmitting Packet Using Indirect Ackowledgement over Wire/Wireless Integrated Network | |
EP1691526A1 (en) | Transmission control protocol (TCP) congestion control using multiple TCP acknowledgements (ACKs) | |
US6438108B1 (en) | System for improved transmission of acknowledgements within a packet data network | |
CN109787722B (en) | Data transmission method and device and server | |
US20070014246A1 (en) | Method and system for transparent TCP offload with per flow estimation of a far end transmit window | |
US20030108045A1 (en) | Methods and apparatus for partially reordering data packets | |
EP1950904A1 (en) | Communication terminal, congestion control method and congestion control program | |
CN114666831B (en) | A packet transmission method and system based on stream coding and bandwidth estimation drive | |
JP2007336551A (en) | Method and device for submitting at least one TCP data segment stream to inline content analysis, computer readable medium carrying one or more instruction sequences for performing the method, and computer program product | |
CA2596887A1 (en) | Handshakeless retransmission protocol | |
CN101667897A (en) | Method, device and system for implementing retransmission on physical layer | |
CN104980365A (en) | TCP transmission acceleration method based on continuous packet losing congestion judgment | |
EP1573985A1 (en) | A system and method using a circular buffer for detecting packet loss in streaming applications | |
US11283719B2 (en) | Content addressable memory (CAM) based hardware architecture for datacenter networking | |
Bhargava et al. | Analysis of Different Congestion Avoidance Algorithms | |
CN114521317B (en) | Apparatus and method for selective multi-packet transmission of preferred packets | |
JP5046197B2 (en) | Communication apparatus, communication system, packet loss detection method, and packet loss detection program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KONNINKLIJKE PHILIPS ELECTRONICS, N.V., NETHERLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LI, QIONG;VAN DER SCHAAR, MIHAELA;REEL/FRAME:017338/0143;SIGNING DATES FROM 20031122 TO 20031203 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |