DESCRIPTION
METHOD AND DEVICE FOR TRANMITTING AND RECEIVING DATA USING PACKETS CARRYING PRIORITY INFORMATION
TECHNICAL FIELD The present invention relates to methods for transmitting and receiving data, and in particular to methods for transmitting and receiving data divided into packets each including a payload.
BACKGROUND ART
Conventionally, as a method for transmitting data, which takes into consideration the real-time properties of data to be transmitted, a transmission method called "RTP (Real-time Transport Protocol)" has been commonly used (refer to H.
Schulzrinne, S. Casner, R. Frederik, and V. Jacobson, "RTP: A transport Protocol for Real-Ti e Applications," RFC1889, 1996) .
FIG. 8 is a block diagram showing the configuration of a data transmission system using RTP as a transmission method. In FIG. 8, a header addition part 102 adds sequence numbers and timestamps to packets inputted from a sender application 101 (e.g. , video and audio encoders) . A packet transmission part 103 sends to the receiver the packets added with sequence numbers and timestamps . A packet reception part 106 receives the packets to be sent,
and provides the packets to a packet output part 107. The packet output part 107 accumulates the received packets in a buffer and inputs the packets to a receiver application 108 (e.g., video and audio decoders) by referring to the timestamps. In a general transmission line, some packets sent may possibly be lost in the process of transmission, due to mistransmissions or congestions. This is called "packet loss". In RTP, missing sequence numbers among the sequence numbers added by the sender are detected by a receiver report transmission part 105. This enables detection ofpacket loss, andthe receiver report transmission part 105 sums the highest sequence number of the packets received and the number of packets lost and then notifies a receiver report reception part 104 of the sum as a receiver report
(RR) . The receiver report reception part 104 outputs the receiver report to the sender application 101.
FIG. 9 is a sequence diagram for data transmission by RTP. The sender adds a sequence number (SN) to each packet and sends the packets sequentially. The receiver notifies, at a predetermined timing, the sender of receiver report (RR) packets which include a transmission state, such as detected packet loss.
FIG. 10 is a diagram showing the format of an RR packet used in reporting a transmission state. The RR packet includes transmission-line jitter (interarrival jitter) , and the timestamp of a last SR and a delay since the last SR, as entries for measuring round-trip delay, as well as a packet loss rate (fraction lost:
FL) and the cumulative number of packets lost. The sender can monitor all the above entries. Descriptions of the entries are provided in the aforementioned reference.
In a conventional transmission method using RTP, however, when the condition of the transmission line worsens and frequent packet loss is caused, it is not possible to identify which packet from among the lost packets is important. In particular, when the transmission capabilityfor a retransmission request is reduced, it is not possible to request retransmission of important packets on a priority basis.
Therefore, an object of the present invention is to provide methods for transmitting and receiving data divided into packets each including a payload, in which an importance level is assigned to each packet to allow requests for retransmission of important packets on a priority basis.
DISCLOSURE OF THE INVENTION
To achieve the above object, the present invention has the following aspects. A first aspect of the present invention is directed to a data transmission method for transmitting data which is divided into packets, comprising the steps of: setting an importance level of each packet; storing, as an importance-level field, the importance levels of a predetermined number of packets in a current packet to be sent; and sending the packet having stored therein
the importance-level field.
In this method, the importance levels of a predetermined number of packets are transmitted in a packet, and therefore the receiver which has received this packet is able to identify the importance levels of packets to be sent . Therefore, it is possible to provide a data transmission method for providing a reception device capable of requesting, in the case of packet loss, retransmission of packets with a high importance level on a priority basis, by referring to the importance levels, incases, for example, where the transmission capability for a retransmission request is low. Thus, a data transmission method can be provided, with which the receiver can effectively utilize the importance levels of packets.
Preferably, the step of storing the importance levels may include: determining bit positions in the importance-level field having stored therein the importance levels, such that the bit positions correspond to sequence numbers of the predetermined number of packets; and creating the importance-level field in which the importance level is indicated as either high or low by whether a bit is on or off.
With this, because the importance levels are determined bit-by-bit by using the sequence numbers, it is possible to provide a data transmission method which allows for the receiver to be notified of the importance levels of packets in an extremely simple manner.
For example, the sequence numbers of the predeterminednumber of packets may be assigned consecutively, exclusive of a sequence number of the current packet to be sent.
With this, because the importance level of a current packet to be sent is removed, only information essential for a retransmission request is sent to the receiver. In addition, because the importance levels of consecutive packets are sent to the receiver, even if packet loss occurs consecutively, the receiver is able to identify the importance levels of lost packets . Furthermore, the sequence numbers of the predetermined number of packets may be consecutive sequence numbers that precede the sequence number of the current packet to be sent.
With this, even if packet loss occurs consecutively, the receiver is able to, after the consecutive packet losses, identify the importance levels of the lost packets.
Alternatively, the sequence numbers of the predetermined number of packets may be consecutive sequence numbers that follow the sequence number of the current packet to be sent.
With this, because the importance levels of packets to be sent anytime soon are sent in advance, the receiver is able to identify in advance the importance levels of packets to be sent anytime soon. Accordingly, in the case of failing to receive packets with a high importance level, the receiver can make a retransmission request immediately. A second aspect of the present invention is directed to a
data receiving method for receiving data in packets, wherein, each packet has stored therein importance levels of a predetermined number of packets, as an importance-level field, the method comprising the steps of: detecting the importance-level field from a packet received; and identifying the importance levels of the predetermined number of packets, from the detected importance-level field.
With this method, because the receiver can receive a packet having stored therein the importance levels and identify each importance level, it is possible to provide a data receivingmethod which can perform, according to the importance levels, a retransmission request process on a priority basis, or which can be effectively utilized in applications.
Preferably, the importance levels of the predetermined number of packets may be indicated as either high or low in the importance-level field by whether a bit is on or off; and the step of identifying the importance levels may identify the importance levels by whether the bit is on or off.
With this, because the importance levels are identified only by bits, a data receiving method can be provided which allows for the identification of importance levels in an extremely simple manner.
For example, sequence numbers of the predetermined number of packets may be assigned consecutively, exclusive of a sequence number of a current packet to be sent.
With this, the receiver does not receive the importance level of a packet being currently received. Therefore, a data receiving method can be provided, which performs a retransmission request process without unnecessary processes. Furthermore, the sequence numbers of the predetermined number of packets may be consecutive sequence numbers that precede the sequence number of the current packet to be sent.
With this, even if packet loss occurs consecutively, the receiver is able to, after the consecutive packet losses, identify the importance levels of the lost packets.
Alternatively, the sequence numbers of the predetermined number of packets may be consecutive sequence numbers that follow the sequence number of the current packet to be sent.
With this, because the importance levels of packets to be sent anytime soon can be received in advance, in the case of failing to receive packets with a high importance level, the receiver can make a retransmission request immediately.
Moreover, the method of the second aspect may further comprise the step of requesting retransmission of packets with a high importance level on a priority basis.
With this, it is possible to request retransmission of packets with a high importance level on a priority basis.
A third aspect of the present invention is directed to a data transmission device for transmitting data which is divided into packets, comprising: importance-level setting means for
setting an importance level of each packet; importance-level field creation and storing means for storing, as an importance-level field, the importance levels of a predetermined number of packets set by the importance-level setting means, in a current packet to be sent; and packet transmission means for sending the packet having therein the importance-level field stored by the importance-level field creation and storing means.
Preferably, the importance-level field creation and storing means may determine bit positions in the importance-level field having stored therein the importance levels, such that the bit positions correspond to sequence numbers of the predetermined number of packets, and create the importance-level field in which the importance level is indicated as either high or low by whether a bit is on or off. Forexample, the sequence numbers ofthepredeterminednumber of packets may be assigned consecutively, exclusive of a sequence number of the current packet to be sent.
Furthermore, for example, the sequence numbers of the predeterminednumberofpacketsmaybe consecutive sequencenumbers that precede the sequence number of the current packet to be sent. The sequence numbers of the predetermined number of packets maybe consecutive sequence numbers that follow the sequence number of the current packet to be sent.
A fourth aspect of the present invention is directed to a data reception device for receiving data in packets, wherein, each
packet has stored therein importance levels of a predetermined number of packets, as an importance-level field, the device comprising: importance-level field detection means for detecting the importance-level field from a packet received; and importance-level identification means for identifying the importance levels of the predetermined number of packets, from the importance-level field detected by the importance-level field detection means.
Preferably, the importance levels of the predetermined number of packets may be indicated as either high or low in the importance-level field by whether a bit is on or off; and the importance-level identificationmeans may identify the importance levels by whether the bit is on or off.
For example, sequence numbers of the predetermined number of packets may be assigned consecutively, exclusive of a sequence number of a current packet to be sent.
Moreover, for example, the sequence numbers of the predeterminednumber ofpackets maybe consecutive sequence numbers that precede the sequence number of the current packet to be sent. The sequence numbers of the predetermined number of packets maybe consecutive sequence numbers that follow the sequence number of the current packet to be sent.
The device of the fourth aspect may further comprise retransmission request means for requesting retransmission of packets with a high importance level on a priority basis.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing the configuration of a data transmission device 400 according to Embodiment 1 of the present invention;
FIG. 2 is a diagram showing a first example of an importance-level field;
FIG. 3 is a diagram showing a second example of an importance-level field; FIG. 4 is a diagram showing a third example of an importance-level field;
FIG. 5 is a diagram showing an example of the header of a packet added with an importance-level field;
FIG. 6 is a diagram showing the configuration of a data reception device 500 according to Embodiment 2 of the present invention;
FIG. 7 is a flowchart showing the operation of a retransmission-request determination part 506;
FIG. 8 is a block diagram showing the configuration of a data transmission system using RTP as a transmission method; FIG. 9 is a sequence diagram for data transmission by RTP; and
FIG. 10 is a diagram showing the format of an RR packet used in reporting a transmission state.
BEST MODE FOR CARRYING OUT THE INVENTION With reference to the drawings, embodiments of the present invention are described below. (Embodiment 1) FIG. 1 is a block diagram showing the configuration of a data transmission device 400 according to Embodiment 1 of the present invention. In FIG. 1, the data transmission device 400 includes a header addition part 402, an importance-level storage part 403, an importance-level field creation part 404, an importance-level fieldadditionpart 405, andapacket transmission part 406.
The header addition part 402 adds sequence numbers and timestamps to payloads inputted from a sender application 401, and inputs the payloads to the importance-level storage part 403. The importance-level storage part 403 accumulates a plurality of packets, and stores the importance level of each packet and inputs the packets and their respective importance levels to the importance-level field creation part 404.
The importance-level field creation part 404 creates an importance-level field in which the importance levels are stored bit-by-bit, and inputs the importance-level field to the importance-level field addition part 405. The importance-level field is a bit field.
The importance-level field addition part 405 adds the importance-level field to the packets and provides the packets
to the packet transmission part 406. The packet transmission part 406 sends the packets to the receiver.
The operation of the data transmission device 400 configured in the above-described manner is described below. The payloads to be inputted to the data transmission device 400 are data into which encoded data of a moving image, audio, etc . , which is outputted fromthe sender application 401, is divided. For example, the payloads are outputted by moving-image encoding applications, such as MPEG4 and H.263. First, the header addition part 402 adds to a payload inputted a sequence number and a timestamp for outputting the inputted payload to a receiver application so that the inputted payload is properly recovered on the receiver. A packet added with a sequence number and a timestamp is inputted to the importance-level storage part 403.
Next, the importance-level storage part 403 determines, according to the information stored therein, an importance level corresponding to the sequence number provided by the header addition part 402, and provides to the importance-level field creation part 404 the importance level along with the sequence number. Note that the importance level may be inputted from the sender application 401 or may be stored in a manner such that some kindof determinationpart determines an importance level according to the information of a packet including a payload. For example, such a determinationpart may analyze an inputtedpacket and output,
if the packet contains data encoded by image encoding, a high importance level, but output a low importance level if the packet in not such a packet.
Subsequently, the importance-level field creation part 404 creates an importance-level fieldaccordingtothe sequence numbers and their corresponding importance levels, provided by the importance-level storage part 403. Here, three examples of a method of creating an importance-level field are described. In each example, it is assumed that the bit length N of an importance-level field and the expression of an importance level (e.g., 1 is set for a high importance level, and 0 is set for a low importance level) are predetermined between the sender and receiver. In addition, a method by which the importance-level field is created is also predetermined between the sender and receiver. In FIGS. 2 to 4, as will be described below, 1 is set for a high importance level and 0 is set for a low importance level.
FIG. 2 is a diagram showing a first example of an importance-level field. In this example, the importance levels of packets, which precede an object packet to which an importance-level field is to be added, are stored in the importance-level field. If the sequence number of the object packet is "s", the importance level of a packet with the sequence number "s-N" is set to the first bit counted from the left of the importance-level field. Then, the importance level of a packet with the sequence number "S-N+1" is set to the second bit counted
from the left. Similarly, the importance level of a packet with the sequence number "S-N+i-1" is set to the i' th bit (i < N) counted from the left. Finally, the importance level of a packet with the sequence number "S-l" is set to the N'th bit counted from the left (i.e., the rightmost bit).
FIG. 3 is a diagram showing a second example of an importance-level field. In this example, the importance levels of packets exclusive of an object packet to which an importance-level field is to be added, i.e., the importance levels of packets preceding and following the object packet, are stored in the importance-level field. It is assumed that storing of the importance levels of packets preceding M't packet and following N-M'th packet, from a current packet to be sent, is predetermined between the sender and receiver . Note that M<N. If the sequence number of the object packet is "s", with respect to bits up to the M'th bit from the left, the importance level of a packet with the sequence number "s-M+i-1" is set to the i'th bit (1 ≤= i ≤ M) counted fromthe left . With respect to bits following the M+l' th bit fromthe left, the importance level of a packet with the sequence number "s+k" is set to the M+k'th bit (1 ≤ k ≤ N-M) counted from the left.
FIG. 4 is a drawing showing a third example of an importance-level field. In this example, the importance levels of packets, which follow an object packet to which an importance-level field is to be added, are stored in the
importance-level field. If the sequence number of the object packet is "s", the importance level of a packet with the sequence number "s+i" is set to- the i'th bit from the left.
Here, it is assumed that the importance level is used for determination of retransmission request, and thus the importance level of a packet that has been able to be received is considered to be not necessary. Therefore, in all examples in FIGS. 2 to 4, the importance level of a current packet to be sent itself, i.e., an object packet to which an importance-level field is added, is not included in the importance-level field. Note, however, that in view of the case where the importance level is outputted to the receiver application as attached information, an importance-level field may be created so as to include the importance level of an object packet itself to which the importance-level field is added.
Next, the importance-level field creation part 4'04 inputs tothe importance-level fieldadditionpart 405 animportance-level field created and an object packet to which the importance-level field is added. The importance-level field addition part 405 adds to the packet the importance-level field from the importance-level field creation part 404. The importance-level field additionpart 405 creates a packet added with the importance-level field such that whether the data in the packet is a header part, a payload part, or an importance-level field part can be determined, and then provides the packet to the packet transmission part 406.
FIG. 5 is a diagram showing an example of the header of a packet added with an importance-level field. The packet that is sent from a data transmission device to a data reception device is herein called an RTP packet. In the example of an RTP packet, shown in FIG. 5, one line consists of 32 bits. Up to 64 bits, the configuration is the same as that specified in RFC1889.
In FIG. 5, an RTP packet contains a version number field
(V) , a field (P) for indicating whether a padding is present at the endof the packet, afield (X) for indicatingwhether an extension field is present, afield (CC) for indicating the number of streams, afield (M) for indicating a marker bit, afield (PT) for indicating the type of payload, a field (SN) for indicating a sequence number, a field (TS) for indicating a timestamp, a field (PM: Priority
Mask) for storing an importance-level field, and a field (PL) for storing a payload.
The first PT (in the first line) indicates that the importance level is present. The next PT (in the third line) indicates the type of payload (e.g., MPEG4 video or G.728 audio data) stored in the PL. The packet transmission part 406 transmits to the receiver a packet created by the importance-level field addition part 405. The packetized data is transmitted over the Internet by a UDP (User Datagram Protocol) module.
As described above, in Embodiment 1 of the present invention, an importance-level field is added to a transmission packet, and
therefore the reception device that has received this packet can determine the importance levels of lost packets. Accordingly, the receiver can utilize an importance-level field for the purpose of, for example, requesting retransmission of packets with a high importance level on a priority basis, and in particular, incases, for example, where the transmission capabilityfor a retransmission request is low, an importance-level field can be effectively utilized.
(Embodiment 2) FIG. 6 is a diagram showing the configuration of a data reception device 500 according to Embodiment 2 of the present invention. In FIG. 6, the data reception device 500 includes a payload output part 502, an importance-level determination part 503, an importance-level field detection part 504, a packet reception part 505, and a retransmission-request determination part 506.
The packet reception part 505 receives a packet from the sender, inputs the packet to the importance-level field detection part 504, and sends, by referring to the sequence number of the packet, information about packet loss to the retransmission-request determination part 506. The importance-level field detection part 504 detects an importance-level field from a packet to be inputted and inputs the importance-level field and the packet to the importance-level determination part 503. The importance-level determination part
503 buffers, according to the importance-level field and the sequence numbers of packets, the importance levels of packets with sequence numbers corresponding to the bits of the importance-level field. The payload output part 502 deletes the sequence number, timestamp, etc. from the packet and inputs a payload to a receiver application 501.
The retransmission-request determination part 506 determines, according to the information about packet loss provided by the packet reception part 505, packets that should be requested for retransmission, and requests the sender for retransmission of such packets. At this point, if the retransmission requests exceed allowable limits, the retransmission-request determination part 506 requests, by referring to the importance levels buffered in the importance-level determination part 503, retransmission of only packets with a high importance level on a priority basis.
The operation of a data reception device according to Embodiment 2 configured in the above-described manner is described below. First, the packet reception part 505 receives a packet that has been transmitted and inputs the packet to the importance-level field detection part 504. Further, the packet reception part 505 detectsmissing sequence numbers and sends information about packet loss to the retransmission-request determination part 506. Note that the packet reception part 505 may verify a sequence number,
detect packet loss, and then send a retransmission request to the sender.
Next, the importance-level field detection part 504 detects, according to a predetermined format, an importance-level field from the packet received and inputs the importance-level field and the packet to the importance-level determination part 503. Subsequently, the importance-level determination part 503 determines, by referring to the importance-level field to check the correspondence between the packets and the sequence numbers, the importance levels of packets with such sequence numbers, and then buffers the importance levels. Since which bit in the importance-level field corresponds to which sequence number can be found by a method of creating an importance-level field adopted by the importance-level field creation part 404 of the data transmission device 400, an importance-level field of what format to be used should be communicated in advance between the data transmission device 400 and the data reception device 500. That is, it is assumed that between the sender and receiver, the bit length N of the importance-level field, the expression of the importance-level field (e.g., 1 is set for a high importance level, and 0 is set for a low importance level) , and the format of the importance-level field are predetermined.
Then, the payload output part 502 holds the packet until the time specified by the timestamp is reached, and then inputs the packet to the receiver application 501 at the specified time.
FIG. 7 is a flowchart showing the operation of the retransmission-request determination part 506. With reference to FIG. 7, the operation of the retransmission-request determination part 506 is described below. First, the retransmission-request determination part 506 receives information about packet loss provided by the packet reception part 505, and identifies packets that have not been correctly received (i.e., packets that have been lost) (step S101) .
Next, the retransmission-request determination part 506 determines if all the identified lost packets can be retransmitted, i.e., if the retransmission requests are within allowable limits (step S102) . If the retransmission requests are within allowable limits, the retransmission-request determination part 506 sends to the sender retransmission requests of all the lost packets (step S103), and completes the process.
On the other hand, if the retransmission requests are not within allowable limits, the retransmission-request determination part 506 obtains, by referring to the importance levels buffered in the importance-level determination part 503, the importance levels of the lost packets (step S104) . Then, the retransmission-request determination part 506 requests, according to the importance levels obtained, retransmission of packets with a high importance level on a priority bases (step S105) , and completes the process. As described above, in Embodiment 2, by detecting an
importance-level field from a packet received, the receiver can determine the importance levels of the packets lost. Therefore, in cases where the transmission capability for a retransmission requests is low (i.e., in cases where a retransmission request cannot bemade) , it is possible to request retransmission ofpackets with a high importance level on a priority basis.
In Embodiment 2, the importance levels are used for a retransmission request of packets, but in another embodiment, the importance levels may be assigned to the receiver application such that the receiver application is able to omit, for example, a data recovery process according to the importance levels.
In the foregoing Embodiments 1 and 2, because the importance-level field is created so as to consist of N bits (for example, 25 bits) , even if some amount of packet loss occurs sequentially, the importance levels of the lost packets can be identified.
Moreover, as shown in FIGS. 3 and 4, in cases where the importance levels of packets, which follow a packet having stored therein an importance-level field, are stored in the importance-level field, because the data reception device can identify in advance the importance levels of packets which are expected to be sent anytime soon, in the case of failing to receive packets, the effect of making an immediate retransmission request is produced.
INDUSTRIAL APPLICABILITY
As described above, methods for transmitting and receiving data and devices for transmitting and receiving data, according tothepresent inventionallowretransmissionrequests of important packets on a priority basis, and thus are useful in the field of data transmission and reception devices, for example.