1. Field of the Invention
The present invention relates to apparatuses and methods for data transmission on a packet basis and, more specifically, to a data transmission apparatus and method wherein every packet is assigned with a priority, and only any packet high in priority is to be retransmitted.
2. Description of the Background Art
Data such as video and audio is generally transmitted in real-time under a Realtime Transport Protocol (RTP). The details of the RTP are found in “RTP: A Transport Protocol for Real-Time Applications”, H. Schulzrinne, S. Casner, R. Frederik, and V. Jacobson, RFC1889, 1996.
FIG. 9 is a block diagram showing the configuration of a data transmission apparatus having the RTP applied. In FIG. 9, a data transmitter 50 and a data receiver 60 work together to transmit data from a transmission-side application 1 to a reception-side application 2. Herein, the transmission-side application 1 is exemplified by a video encoder and audio encoder, while the reception-side application 2 by a corresponding video decoder and audio decoder.
A header adding part 51 provides a packet outputted from the transmission-side application 1 with a header including a sequence number and a timestamp, for example. A packet transmitter 52 transmits a data packet 101 with such header added. A packet receiver 62 receives and outputs the data packet 101 to a packet output part 61, wherein the data packet is stored. The packet output part 61 outputs the stored data packet to the reception-side application 2 based on the timestamp.
During data transmission over a general transmission path, packet loss is likely to occur due to transmission error and congestion. Under the RTP, the packet receiver 62 refers to the sequence numbers assigned to each of the received data packets 101 to detect if any packet loss has been occurred. How the packet receiver 62 is receiving the data packets (hereinafter, packet reception state) is informed to a reception state transmitter 63. The reception state transmitter 63 then generates a receiver report packet (RR packet) 110, indicating the largest sequence number found among those so far received, and the total number of packets lost so far. Thus generated RR packet 110 is transmitted to a reception state receiver 53, and the reception state found in the RR packet 110 is then notified to both the transmission-side application 1 and the packet transmitter 52.
FIG. 10 is a sequence diagram for data transmission under the RTP. The data transmitter 50 assigns a sequence number (SN) to every packet (denoted by an arrow), and transmits the packets sequentially. The data receiver 60 informs the data transmitter 50 of the packet reception state by transmitting an RR packet with a predetermined timing.
Also known is data transmission under an enhanced RTP (priority-assigned RTP) wherein every packet is assigned with a priority, and only any packet high in priority is to be retransmitted. FIG. 11 is a block diagram showing the configuration of a data transmission apparatus having such priority-assigned RTP applied. A priority assigning part 72 sequentially assigns each header-added packet with a priority of high or low, and a second sequence number. Here, the second sequence number is incremented by 1 whenever the subsequent packet is of high priority, but remains the same if the packet low in priority follows. A packet transmitter 73 transmits a data packet 100 with such priority assigned.
A priority judging part 82 refers to the second sequence numbers to detect whether any packet of high priority has been lost. The detection result is informed to a transmission request transmitter 85. In response, the retransmission request transmitter 85 transmits to a transmission request receiver 75 a negative acknowledge packet (NACK packet) 120 designating which packet needs to be retransmitted. The retransmission request receiver 75 then passes the information to a retransmitting packet supply part 76, wherein the packets of high priority are stored for retransmission. Based on the information, the retransmitting packet supply part 76 responsively outputs any designated packet to the priority assigning part 72. As such, under the priority-assigned RTP, only any packet of high priority is to be processed for retransmission.
FIG. 12 is a sequence diagram for data transmission under the priority-assigned RTP. In FIG. 12, reference characters SN and SSN denote, respectively, the sequence number and the second sequence number. Moreover, “P=1” denotes a packet of high priority, while “P=0” a packet low in priority. In FIG. 12, for example, when packets of SN=3 and SN=4 are both lost, the latter packet is to be retransmitted as is high in priority, but not the former packet of low priority.
Here, in the above, priority assignment is performed with no consideration of the packet reception state, and a ratio between high and low priorities to be assigned is constant. Therefore, no matter if the transmission path is bad in condition and packet loss often occurs, packet retransmission continues, resulting in increase of data for transmission. On the other hand, even if the transmission capacity is ample with the transmission path being good in condition and thus rare packet loss, the packets of high priority are generated yet based on the constant ratio, and packet retransmission is performed only when any packet of high priority is lost. As such, due to the neglect of the packet reception state at the time of priority assignment, data transmission cannot be efficiently carried out with whatever available transmission capacity.