WO2004054183A1 - A system and method using a circular buffer for detecting packet loss in streaming applications - Google Patents
A system and method using a circular buffer for detecting packet loss in streaming applications Download PDFInfo
- Publication number
- WO2004054183A1 WO2004054183A1 PCT/IB2003/005879 IB0305879W WO2004054183A1 WO 2004054183 A1 WO2004054183 A1 WO 2004054183A1 IB 0305879 W IB0305879 W IB 0305879W WO 2004054183 A1 WO2004054183 A1 WO 2004054183A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- sequence number
- circular buffer
- entry
- received
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
- H04L49/9052—Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
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. 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".
- the corresponding window entry 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.
- 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.
- 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.
- FIG. la illustrates a preferred embodiment of the circular buffer structure of the present invention.
- FIG. lb illustrates the structure of each of the buffers in the circular buffer illustrated in FIG. la.
- FIG. 2a illustrates an algorithm of a preferred that implements the circular buffer structure illustrated in FIGs. la-b.
- FIG. 2b illustrates a flow chart of the algorithm illustrated in FIG. 2a.
- 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 Bi 10 in the chain comprises two fields, F; 13 and E 2 14. Fi 13 stores a pointer to the next buffer.
- E 2 14 stores a sequence number 5 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. 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.
- 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.
- FIG. 2a illustrates C programming language code for a preferred embodiment of an algorithm for accomplishing the method of the present invention.
- FIG. 2b is a flow chart of the algorithm illustrated in FIG. 2a.
- the pointer R 12 circulates through the chain of buffers B t 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.
- 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.
- steps a-c are repeated until the remaining number of buffers is zero.
- step 28 if the buffer at which R is pointing contains a non-received packet (P->F2 is not zero) then at step 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.
- step 31 the current maximum sequence number is set to that of the received packet.
- 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.
- 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 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.,
- 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 R encountering a delivered but out-of-order packet in a buffer as R circulates through the buffer chain 5 /
- the length of the buffer chain may be too long and may need to be shortened by deleting a buffer as illustrated in FIG. 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2003302800A AU2003302800A1 (en) | 2002-12-12 | 2003-12-10 | A system and method using a circular buffer for detecting packet loss in streaming applications |
JP2004558299A JP2006510255A (en) | 2002-12-12 | 2003-12-10 | System and method for detecting packet loss in a streaming application using a circular buffer |
EP03812659A EP1573985A1 (en) | 2002-12-12 | 2003-12-10 | A system and method using a circular buffer for detecting packet loss in streaming applications |
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 (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43289302P | 2002-12-12 | 2002-12-12 | |
US60/432,893 | 2002-12-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004054183A1 true WO2004054183A1 (en) | 2004-06-24 |
Family
ID=32508008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1573985A1 (en) |
JP (1) | JP2006510255A (en) |
CN (1) | CN1726677A (en) |
AU (1) | AU2003302800A1 (en) |
WO (1) | WO2004054183A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565071B2 (en) | 2007-12-29 | 2013-10-22 | Huawei Technologies Co., Ltd. | Protection method, system, and device in packet transport network |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100502327C (en) * | 2006-09-29 | 2009-06-17 | Ut斯达康通讯有限公司 | A method, device and system used to detect frame loss of lub FP frame based on IP transmission |
US10348634B2 (en) * | 2015-12-22 | 2019-07-09 | Intel Corporation | Technologies for tracking out-of-order network packets |
WO2021117171A1 (en) * | 2019-12-11 | 2021-06-17 | 日本電信電話株式会社 | Data sequence correction method, packet monitoring device, data sequence correction device, and data sequence correction program |
Citations (3)
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 |
US6141324A (en) * | 1998-09-01 | 2000-10-31 | Utah State University | System and method for low latency communication |
WO2002065704A1 (en) * | 2001-02-12 | 2002-08-22 | Eyretel Plc | Packet data recording method and system |
-
2003
- 2003-12-10 AU AU2003302800A patent/AU2003302800A1/en not_active Abandoned
- 2003-12-10 JP JP2004558299A patent/JP2006510255A/en not_active Withdrawn
- 2003-12-10 CN CN200380105839.1A patent/CN1726677A/en active Pending
- 2003-12-10 WO PCT/IB2003/005879 patent/WO2004054183A1/en not_active Application Discontinuation
- 2003-12-10 EP EP03812659A patent/EP1573985A1/en not_active Withdrawn
Patent Citations (3)
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 |
US6141324A (en) * | 1998-09-01 | 2000-10-31 | Utah State University | System and method for low latency communication |
WO2002065704A1 (en) * | 2001-02-12 | 2002-08-22 | Eyretel Plc | Packet data recording method and system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565071B2 (en) | 2007-12-29 | 2013-10-22 | Huawei Technologies Co., Ltd. | Protection method, system, and device in packet transport network |
Also Published As
Publication number | Publication date |
---|---|
JP2006510255A (en) | 2006-03-23 |
EP1573985A1 (en) | 2005-09-14 |
AU2003302800A1 (en) | 2004-06-30 |
CN1726677A (en) | 2006-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060069793A1 (en) | System and method using a circular buffer for detecting packet loss in streaming applications | |
US7293100B2 (en) | Methods and apparatus for partially reordering data packets | |
KR101236080B1 (en) | Efficient loss recovery architecture for loss-decoupled tcp | |
Blanton et al. | A conservative selective acknowledgment (SACK)-based loss recovery algorithm for TCP | |
Blanton et al. | A conservative loss recovery algorithm based on selective acknowledgment (SACK) for TCP | |
US8064459B2 (en) | Method and system for transparent TCP offload with transmit and receive coupling | |
US6438108B1 (en) | System for improved transmission of acknowledgements within a packet data network | |
EP1783946A2 (en) | Network flow/stream simulation method | |
US7676593B2 (en) | Method of bandwidth control by rewriting ACK number | |
US20050068896A1 (en) | TCP acceleration system | |
GB2425025A (en) | Intrusion detection state machine for finding attack signatures with reduced buffering requirements for handling out of sequence packets | |
JP2009055419A (en) | Communication device, communication system, and method and program for detecting missing packet | |
CN109787722B (en) | Data transmission method and device and server | |
CN111711566B (en) | Receiving end disorder rearrangement method under multipath routing scene | |
CN107592185B (en) | Forward retransmission method suitable for network coding transmission control protocol | |
CN107634823B (en) | Data transmission method of transmission control protocol based on network coding | |
JP2013243694A (en) | Method and device for submitting at least one tcp data segment stream to inline content analysis, computer readable medium holding one or a plurality of instruction sequences for carrying out the method, and computer program product | |
WO2004054183A1 (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 | |
EP3108631B1 (en) | Buffer bloat control | |
US6957374B1 (en) | Method of acknowledging receipt of data packets | |
JP5046197B2 (en) | Communication apparatus, communication system, packet loss detection method, and packet loss detection program | |
JP5382556B2 (en) | Communication apparatus, communication system, packet loss detection method, and packet loss detection program | |
CN114726790B (en) | Congestion control selection method and system based on transmission content size |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2003812659 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2006069793 Country of ref document: US Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10538100 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2004558299 Country of ref document: JP Ref document number: 20038A58391 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2003812659 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 10538100 Country of ref document: US |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2003812659 Country of ref document: EP |