METHOD AND APPARATUS FOR RETRANSMISSION DECISION MAKING
A method and apparatus are described including parsing an abstraction-layer header and assigning a priority to a packet to be transmitted. A network monitor of a transmitter is connected between a network interface and a retransmission decision maker for deciding which packets to retransmit, for example, based on the assigned priority and collected network statistics or conditions, for example, packet loss rate. A network monitor may also be provided at a receiver for collecting current network statistics such as cumulative number of packets lost and for providing such statistics to a transmitter. The method further includes buffering the data to be transmitted along with the assigned priority, transmitting data retrieved from a buffer via a datagram protocol, receiving a request for retransmission of data, determining if the requested data is in the buffer and retransmitting the requested data via a protocol that provides end-to-end acknowledgement of data and error recovery.
Latest THOMSON LICENSING Patents:
- Method for recognizing at least one naturally emitted sound produced by a real-life sound source in an environment comprising at least one artificial sound source, corresponding apparatus, computer program product and computer-readable carrier medium
- Apparatus and method for diversity antenna selection
- Apparatus for heat management in an electronic device
- Method of monitoring usage of at least one application executed within an operating system, corresponding apparatus, computer program product and computer-readable carrier medium
- Adhesive-free bonding of dielectric materials, using nanojet microstructures
This application is related to the following co-pending, commonly owned, U.S. patent applications: (1) Ser. No. ______ entitled AN EFFICIENT APPLICATION-LAYER AUTOMATIC REPEAT REQUEST (ARQ) RETRANSMISSION SCHEME FOR RELIABLE REAL-TIME STREAMING IN WIRELESS NETWORKS filed on Oct. 7, 2009 as an international patent application (Filing No. PCT/US09/005,499, Thomson Docket No. PU090136) and (2) Ser. No. ______ entitled A METHOD AND APPARATUS FOR PARSING A NETWORK ABSTRACTON-LAYER FOR RELIABLE DATA COMMUNICATION filed on ______ as an international patent application (Filing No. ______, Thomson Docket No. PU090157).
The present application relates to digital data networks in general and in particular, to a network monitor and data retransmission decision maker for reliable digital data transmission.
In multicast or broadcast applications, data are typically transmitted from a server to multiple receivers over wired and/or wireless networks. A multicast system as used herein is a system in which a server transmits the same data to multiple receivers simultaneously, where the receivers form a subset of all the receivers up to and including all of the receivers. A broadcast system is a system in which a server transmits the same data to all of the receivers simultaneously. That is, a multicast system by definition can include a broadcast system.
Data is usually formatted into packets and/or frames for transmission. That is, packets and/or frames are data formatting schemes. As used herein data can be formatted into any convenient format for transmission including packets and/or frames. “Packet” will, thus, be used herein to define any data formatting scheme known to one of ordinary skill in the art.
Video transmission or distribution in wireless networks is used by way of example herein of one application of a digital data network. Video transmission in a wireless data network normally involves packet loss caused by channel error conditions such as interference, channel fading, collision, etc. When such channel error conditions occur, the wireless link layer of the protocol stack may try to retransmit packets for a fixed number of times within a fixed time period. If these retransmissions are not successful, the packets are dropped by the wireless link layer. Internet Protocol (IP) network based video transmission typically delivers video packets to the destination (receiver; sometimes referred to as a client herein) using Real-time Transport Protocol (RTP) protocol that, in turn, uses either a reliable Transmission Control Protocol (TCP) transport protocol or a less reliable User Datagram Protocol (UDP) transport protocol. When the less reliable UDP protocol is used, for example, the protocol does not provide a means to detect out-of-order packets or recover lost packets and leaves the responsibility to an application to recover packet delivery errors. In contrast, when TCP protocol is used, end-to-end acknowledgements are provided so that the protocol tries to send and/or recover media (audio, video, multimedia, . . . ) packets (data) strictly in the order in which the packets are to be handled by the application. When packet errors are detected, TCP provides a sliding window mechanism for data flow control and reduces the packet transmission rate. TCP keeps retransmitting the lost packets until they are recovered.
Video transmission is an example of an application which occurs in real time and has a user viewing experience associated with the receipt and rendering of the data. A latency or time constraint within which the packets have to be delivered or recovered should not impact the end user's viewing experience. Therefore, packet errors ought to be recovered within a limited time, otherwise the data may not be viewable. TCP does not presently provide for control of packet recovery based on a time constraint. Consequently, using TCP as the transport protocol for wireless networks, could lead to a poor user viewing experience. Furthermore, TCP requires positive acknowledgement for all the transmitted data packets. The TCP uplink acknowledgements (from data receiver to data transmitter (sender) compete for the wireless bandwidth with downlink data traffic (from transmitter (sender) to receiver). If collisions occur among downlink and uplink transmissions, the collisions could lead to further throughput reduction.
PCT Application US/09/005,499, filed Oct. 7, 2009, discloses an efficient application-layer automatic repeat request retransmission method where data to be transmitted is buffered or cached at a module for implementing a reliable media protocol to recover lost data packets and aid, for example, in real-time streaming (such as video) data applications. Referring briefly to FIG. 1 (derived from FIG. 5 of PCT Application US/09/005,499 mentioned above), a real-time protocol packetization module 120 is provided at a real-time server 100, for example, for receiving a video digital data input 105. Real-time protocol (RTP) packetization module 120 providing a streaming application is connected via, for example, a socket-like application programming interface (API) or interfaces 115 to the reliable media protocol module 130. The reliable media protocol module 130 accepts configuration data parameters 125 such as cache or buffer size, maximum time to wait for packet recovery and the like. These parameters are determined, for example, by the digital application, for example, telephony, audio, video or multimedia among other known applications. The local buffer or cache memory 135 temporarily stores initially transmitted packets until it may be determined whether they need be retransmitted or discarded. Server 100 transmits digital data by way of one of UDP/IP transmitter interface 140 or TCP/IP transmitter/receiver interface 145 and a digital data network interface, for example, an Ethernet/802.11 interface 150. Initial real-time transmission may occur via initial transmit 160 to network 110 with real-time packets temporarily stored in cache/buffer 135, for example, awaiting receipt of Retransmit ACK/NACK control 155 or a predetermined time-out.
It would be advantageous to have an efficient method and apparatus to add further reliability to such a reliable media protocol based real-time data transmission system such as the one disclosed in the foregoing PCT Application US/09/005,499. The present invention addresses these and/or other issues.
In accordance with an aspect of the present invention, a method is disclosed. According to an exemplary embodiment, the method comprises monitoring a digital data network to collect network transport statistics, and deciding whether to retransmit a digital data packet to a receiver based on the collected network transport statistics.
In accordance with another aspect of the present invention, an apparatus is disclosed. According to an exemplary embodiment, an apparatus, such as a digital data transmitter, comprises a digital data network monitor for collecting network transport statistics, and a retransmission decision maker for deciding whether to retransmit a digital data packet based on an assigned digital data packet priority and the collected network transport statistics.
In accordance with another aspect of the present invention, an apparatus is disclosed. According to an exemplary embodiment, an apparatus, such as a digital data transmitter, comprises means, such as a network monitor, for collecting network transport statistics, and means, such as a retransmit decision maker, for deciding whether to retransmit a digital data packet based on an assigned digital data packet priority and collected network transport statistics.
In accordance with another aspect of the present invention, an apparatus is disclosed. According to an exemplary embodiment, an apparatus, such as a digital data receiver, comprises a network monitor for collecting network statistics from the perspective of a receiver apparatus, and a network interface for outputting a control channel message including said collected network statistics.
In accordance with another aspect of the present invention, an apparatus is disclosed. According to an exemplary embodiment, an apparatus, such as a digital data receiver, comprises means, such as a network monitor, for collecting network statistics from the perspective of a receiver apparatus, and means, such as a network interface, for outputting a control channel message including said collected network statistics
The above-mentioned and other features and advantages of this invention, and the manner of attaining them, will become more apparent and the invention will be better understood by reference to the following description of embodiments of the invention taken in conjunction with the accompanying drawings, wherein:
The present invention is directed to a method and apparatus at a transmitter or sender for parsing an abstraction-layer header as an input to the real-time (for example, real-time protocol or RTP) packetization for a module for an improved reliable media protocol module per FIG's 2A and 2B and to a network monitor and retransmission decision maker of the transmitter/server 200 (
According to one embodiment, an abstraction-layer header parser comprises parsing a scalable video encoder abstraction-layer header to obtain data from one of a plurality of fields. According to aspects of this embodiment, the abstraction-layer header parser may operate, for example, on output digital video data of an MPEG 4 file reader or accept digital data from a network as received at a de-packetizer. For example, the abstraction-layer header parser may parse a DID field which represents an inter-layer coding dependency level of layer representation. A QID field represents a quality level of medium grain scalability (MGS) layer representation. A TID field represents a temporal level of layer representation. One result of parsing an abstraction-layer header, comprising such fields, is to identify the layer that the following payload data is associated with. One result of parsing an abstraction-layer header, comprising such fields, is to identify the layer that the following payload data is associated with. Responsive to the identification of the payload data type, one may assign a different priority for each identified layer. For example, a base layer may receive a high priority for retransmission from buffer or cache memory since base layer is absolutely necessary for a complete decoding at a receiver. Responsive to the identification of the payload data type, the parser may assign a different priority for each identified layer for the following data. For example, a base layer may receive a high priority for retransmission from buffer or cache memory since base layer data is absolutely necessary for a complete decoding at a receiver. An enhancement layer may be assigned a medium priority since enhancement layer data is necessary for decoding of a higher layer. On the other hand, a high enhancement layer of payload data may be assigned a low priority. Once assigned a priority, for example, low, medium and high, the priority information may be represented in a “payload type” (PT) or similar field of a real-time protocol (RTP) header, if retransmission is called for at the transport layer, or in a type of service (TOS) field of an IP header. A type of service field may be also known in the art, by way of example, as a differential services (DS) field. The first two bits are known as explicit congestion notification (ECN) bits, and the next six bits of a DS field byte are known as differential services code point (DSCP) bits. Type of service will be generally used herein to refer to these and other formats for providing type of service data. A real-time packet retransmission decision made by a reliable media protocol module may be thus layer-aware when modified to incorporate an abstraction-layer header parser and method according to one embodiment.
In a further embodiment, a network monitor is provided for monitoring data network quality via a data network interface and, for example, collecting current network data statistics for input to a retransmit decision maker, for example, packet loss rate, available bandwidth, and round-trip delay. The retransmit decision maker, in turn, may provide an input to the reliable media protocol (RMP) module so that a decision on retransmission may be based on current network conditions according to the data network statistical data collected at the network monitor and selectively decide to retransmit a packet based on its priority and the monitored network conditions.
Accordingly, a digital transmission method comprises parsing an abstraction-layer header of a digital data packet to obtain layer representation data, and assigning a priority to the digital data packet for the representation layer responsive to the parsing. Obtaining layer representation data may comprise one or all of determining inter-layer coding dependency level, determining a quality level of grain scalability and determining temporal level of the layer representation. Moreover, the method may further comprise one of representing the priority level in a payload type field of a real-time transport packet header or in a type of service field of an internet protocol packet header. As described above, an input to the abstraction-layer header parser may be received from a de-packetizer for receiving network data or received from a local server memory such as one associated with an MPEG file reader.
Moreover, in a further embodiment, a digital data transmitter may comprise an abstraction-layer header parser to obtain layer representation data from a digital data packet and assign a priority to the layer representation data, a digital data monitor for collecting network transport statistics, and a retransmission decision maker for deciding whether to retransmit a digital data packet based on the assigned digital data packet priority and the collected network transport statistics. As explained above, such an abstraction-layer header parser in a further embodiment may be a network abstraction-layer header parser for digital video data packet applications.
More specifically, referring to
Referring to
Initially, RMP module 230 transmits the regular unicast and multicast data or packets using UDP 240 via network interface 250 to transmit packets using initial transmit channel 260 to network 110. Data is initially stored in local cache 235 with a priority assigned by NAL header parser 210 via RTP packetization 220. Apart from this, an additional reliable TCP-based control channel 245 is established between the source (transmitter, sender) 200 of
The receiver/client 201. (
The receiver/client 201 of
Referring again, to
Referring again the
Data packets arriving after the expiration of the recovery window are discarded per
At a receiver/client 201 according to
Before discussing
In each of
Now, with reference to
Referring briefly to
To provide a simplified example, if SVC-encoded video data has a base layer of a resolution of 416 by 240 and a bit rate of 600 kbps and one enhancement layer of a higher resolution of 832 by 480 and a consequent bit rate of 1.2 megabits per second for video streaming, then, the parser 410 can identify the base layer NAL units based on its DID field and assign the base layer a higher priority. On the other hand, the enhancement layer may be assigned a lower priority (to provide the higher resolution). The base layer is assigned the higher priority than the enhancement layer in this example. The output priority level may be indicated in a payload type (PT) field of an RTP header shown in
If the packet is received and network conditions appear to be good, the packet is received 460 and the receiver determines at 465 whether an expected packet is lost (Yes) or not (No). If lost (Yes), then at 485, a retransmit request is sent, and a recovery timer of a receiver is set via the control channel 255 of
If a retransmit request is sent via 485, a network monitor function 405 is actuated and the received retransmit request is then processed. As will be described further herein, an end-to-end packet loss rate at a given time may be determined at a network monitor 271 as a current network 110 condition from the receiver side. The current network condition, for example, an end-to-end packet loss rate, is provided with the retransmit request as an output of 405 to retransmission decision maker 415.
An exemplary application of a network monitor 405 may be where the sender/server is on a wired network 110, for example, a set-top box (cable or satellite) or home gateway and the receiver is a mobile device or personal computer that is associated with a wireless access point AP. An intermediate node/wireless access point (AP/router) may report the network and wireless channel conditions to the sender. A real-time packet retransmission decision made by a reliable media protocol (RMP) module 230 according to the principles of the present invention may be thus layer-aware when modified to incorporate an abstraction-layer header parser and method according to one embodiment.
Retransmission decision maker 415 questions whether, for example, the current end-to-end transmit packet loss rate is high, meaning whether it is above a threshold level set in memory of the RMP module 230. If the answer is YES, then, at 445, lower priority packets are dropped, and only higher priority packets are recovered from cache/buffer 430 and retransmitted. Other measures of transport conditions besides packet loss rate may be available bandwidth (for example, the lowest available bandwidth in an end-to-end path) and round-trip delay (a longer round-trip delay may require the time-out of a packet held in cache/buffer 235 for retransmission). Each of these, including available bandwidth, may be compared with an associated threshold level set in memory for deciding on packet retransmission. One or more may be employed in making the retransmission decision as well as packet priority set by parsing 410. If the answer is returned NO, at 435, all requested packets are retransmitted from cache/buffer 430 via “send the packet” 450 and network 110.
Upon receipt, the retransmitted packet is received at 460 and recognized as a retransmitted packet at 470. Given a real-time viewing experience, the time of receipt is examined at 475. The question is asked: Retransmit late? If the retransmitted packet is received too late, that is, the program viewing experience has already moved on to a next frame, then, the retransmit packet is discarded at 480. On the other hand, if the retransmit packet is not late, (i.e., the answer is NO), the retransmit packet is placed in order in a receiving buffer for display at 490.
The RMP method of the present invention may be implemented in a flexible software library, hardware, firmware, any computer or processor, an application specific integrated circuit (ASIC), a reduced instruction set computer (RISC), a field programmable gate array (FPGA) or an combination thereof. The RMP method of the present invention uses socket-like user-space APIs and underlying transport means for easy integration with streaming server and player applications. The RMP method of the present invention is transparent to the streaming applications that it supports. The UDP data channel and the TCP control channel are internally maintained. The RMP method of the present invention is extensible to support other error recovery schemes such as FEC and hybrid ARQ.
The network monitor function 405 of the present invention will now be described further with reference to
The exemplary format of the message for sending statistics collected by a network monitor 271 of a receiver/client 201 of
In the RMP scheme of the present invention described above, no alterations are made to the packets sent on the data channel 255. Thus, backward compatibility is maintained. Also the RMP scheme of the present invention makes efficient use of the bandwidth since only the lost media packets are requested and retransmitted on the control channel with low overhead. The lost packet requests serve as NACKs (Negative Acknowledgements) and also provide feedback to the sender. It can provide high reliability under widely different channel conditions because a lost packet can be retransmitted multiple times within the recovery time window. Also the RMP scheme of the present invention enforces the application's latency constraint by having a maximum wait time (i.e., a recovery window) for retransmissions and thus operates on the best effort delivery model within the given time constraint.
Note that the above embodiment is explained using video transmission. The present invention can also be applied to transmission of audio, for example, telephony, and other real-time multimedia streaming applications.
Though the above scheme of the present invention has been described with respect to wireless networks, the scheme could be used in any kind of network that involves packet losses.
It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware—such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform, such as an additional data storage device and a printing device.
It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.
Claims
1. A method comprising:
- monitoring a digital data network to collect network transport statistics; and
- deciding whether to retransmit a digital data packet to a receiver based on said network transport statistics.
2. The method according to claim 1 wherein
- collecting network statistics comprises collecting statistics from a receiver to generate a lost packet rate at the transmitter.
3. The method according to claim 2 wherein
- said packet retransmit decision is based on comparing said generated lost packet rate with a predetermined threshold.
4. The method according to claim 1 wherein
- collecting network statistics comprises monitoring network level transmission statistics and estimating available bandwidth.
5. The method according to claim 3 wherein
- said packet retransmit decision is based on comparing said estimated available bandwidth with a predetermined threshold.
6. The method according to claim 1 wherein
- said monitoring comprises
- monitoring receiver missing packet data and recording data of one of packet loss rate and available bandwidth from a receiver and
- assigning a missing packet threshold responsive to said monitoring.
7. The method according to claim 1 wherein
- said monitoring comprises calculating a sequence gap via a continuity counter field of a transport stream header.
8. The method according to claim 1 wherein
- said monitoring comprises calculating packet loss rate information from a fraction lost field of a receiver report packet.
9. The method according to claim 1 wherein
- said monitoring comprises calculating a packet loss rate from a base sequence number of a starting packet and an offset for an ending packet.
10. An apparatus comprising:
- a digital data network monitor for collecting network transport statistics; and
- a retransmission decision maker for deciding whether to retransmit a digital data packet based on an assigned digital data packet priority and said collected network transport statistics.
11. The apparatus according to claim 10 further comprising
- an abstraction-layer header parser coupled to a real-time transport protocol packetizer for assigning a priority level to a packet for retransmission.
12. The apparatus according to claim 10,
- said digital data monitor and said retransmission decision maker being responsive to a network interface and for providing input to a reliable media protocol module.
13. The apparatus according to claim 10 further comprising
- a buffer memory for temporary storage of digital data for transmission.
14. The apparatus according to claim 10 wherein
- said network monitor monitors receiver missing packet data and records data of one of packet loss rate and available bandwidth from a receiver and assigns a missing packet threshold responsive to said monitoring.
15. The apparatus according to claim 10 wherein
- said packet retransmit decision is based on comparing said estimated available bandwidth with a predetermined threshold.
16. The apparatus according to claim 10 wherein
- said network monitor calculates a sequence gap via a continuity counter field of a transport stream header.
17. The apparatus according to claim 14 wherein
- said network monitor calculates packet loss rate information from a fraction lost field of a receiver report packet.
18. The apparatus according to claim 14 wherein
- said network monitor calculates a packet loss rate from a base sequence number of a starting packet and an offset for an ending packet.
19. The apparatus according to claim 11 further comprising
- a buffer memory for temporary storage of digital data for retransmission according to said assigned priority level.
20. Apparatus comprising:
- means for collecting network transport statistics; and
- means for deciding whether to retransmit a digital data packet based on an assigned digital data packet priority and said collected network transport statistics.
21. The apparatus according to claim 20 further comprising
- means for packetizing data into packets; and
- means coupled to said data packetizing means for assigning a priority level to a packet for retransmission.
22. An apparatus comprising:
- a network monitor for collecting network statistics from the perspective of a receiver apparatus; and
- a network interface for outputting a control channel message including said collected network statistics.
23. An apparatus comprising:
- means for collecting network statistics from the perspective of a receiver apparatus; and
- means for outputting a control channel message including said collected network statistics.
Type: Application
Filed: Jan 28, 2010
Publication Date: Nov 29, 2012
Applicant: THOMSON LICENSING (Issy Les Moulineaux)
Inventors: Xiuping Lu (Hillsborough, NJ), Ishan Uday Mandrekar (Monmouth Junction, NJ), Ramkumar Perumanam (Edison, NJ), Hang Liu (Yardley, PA)
Application Number: 13/575,646
International Classification: H04L 12/26 (20060101);