Communications terminal, communications method, and program and integrated circuit for controlling a reproduction delay time in distributing a stream

A communication terminal (100) is one of communication terminals each having one parent terminal and zero or more child terminals. The communication terminals form an Application Layer Multicast (ALM) tree to sequentially distribute retransmission data of stream data from the parent terminal to the child terminal. The communications terminal (100) includes: a reproduction delay time determining unit (1010) determining a reproduction delay time based on a longest round-trip delay time among round-trip delay times of sections between a root terminal and the communications terminal (100), each of the round-trip delay times being required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree; and a reproduction control unit (1020) reproducing the stream data received from the root terminal, with the stream data delayed by the reproduction delay time determined by the reproduction delay time determining unit (1010).

TECHNICAL FIELD

The present disclosure relates to a communications terminal and a communications method for controlling a reproduction delay time in distributing a stream via an Application Layer Multicast (ALM) tree.

BACKGROUND OF INVENTION

Background Art

In image data (packet) transmission and reception between a transmitting terminal11and a receiving terminal12on the Internet, an image data loss (packet loss) could occur as shown inFIG. 12. Such an image data loss inevitably causes the receiving terminal12to reproduce jittering images and audios. In order to prevent the jittery images and audios from occurring, the lost packet needs to be retransmitted to the transmitting terminal11.

Thus, as shown inFIG. 13, the receiving terminal12requests the transmitting terminal11to retransmit a lost image packet (p2). In response to the request from the receiving terminal12, the transmitting terminal11usually retransmits the corresponding packet (p2), as shown inFIG. 14.

To reproduce the retransmitted image packet (p2) on the receiving terminal12, it is necessary to set a reproduction start time of the image packet (p2) on the receiving terminal12, taking into consideration of a time period required for the retransmission. Specifically, as shown inFIG. 15, the start of the reproduction needs to be delayed for 1RTT from the original estimated arrival time of the image packet (p2). Here, the Round Trip Time (RTT) is a time period required for a packet to reciprocate between the receiving terminal12and the transmitting terminal11.

The time period between the original estimated arrival time and the reproduction start time is usually referred to as a reproduction delay time. In a one-on-one communication shown inFIGS. 11 to 15, the reproduction delay time is usually set according to an RTT between the transmitting and the receiving terminals. For example, the reproduction delay time is set to be either (i) a multiple of the RTT or (ii) equal to or greater than the RTT.

Stream distribution via an ALM tree is one of the common techniques to simultaneously distribute image data to multiple terminals. Described below is an outline of the ALM tree, with reference toFIGS. 16 and 17. As shown inFIG. 16, terminals11to17are connected to a star network10, such as the Internet and a Local Area Network (LAN).

Here consider, for example, the case where the terminal11tries to distribute stream data directly to all the other terminals12to17: This would cause the stream data amount to exceed the upper limit of the bandwidth of a line connected to the terminal11, resulting in delay in the stream data distribution.

Thus, as shown inFIG. 17, a logically hierarchical structure is constructed to have the terminal11; namely the distribution source of the stream data, allocated as the topmost node (root terminal). In other words, the terminal11distributes the stream data only to the terminals12and13. Each of the terminals12and13reproduces the stream data received from the terminal11as well as distributes the stream data to the terminals14and15, and16and17which are lower in the level. The above construction makes possible dispersing the traffic, which contributes to delay-free stream distribution.

The reproduction delay time should also be taken into consideration when images are distributed via the ALM tree as described above. Similar to the one-on-one communication, the reproduction delay time may be set according to the RTT of the retransmission data between the transmission source terminal and the receiving terminal. Described below is how to retransmit image data when the image data is lost between terminals21and23in an ALM tree including 15 terminals; namely terminals20to34shown inFIGS. 18 to 20.

The first technique involves retransmission of the lost data from the root terminal (distribution source) of the ALM tree. Specifically, as shown inFIG. 18, the terminal23requests (shown in a chain line) the terminal20; namely the root terminal, to retransmit the lost data. In response to the retransmission request sent from the terminal23, the terminal20transmits retransmission data (shown in a broken line) to the terminal23.

The second technique involves retransmission of the lost data from the parent terminal of a terminal; that is the parent terminal of a terminal on the tree. Specifically, as shown inFIG. 19, the terminal23requests (shown in a chain line) the terminal21; namely the parent terminal, to retransmit the lost data. In response to the retransmission request sent from the terminals23, the terminal21transmits retransmission data (shown in a broken line) to the terminal23.

The third technique involves retransmission of the lost data from the third terminal other than the above terminals; that is, another terminal than the root terminal or the parent terminal. Specifically, as shown inFIG. 20, the terminal23requests (shown in a chain line) the terminal22to retransmit the lost data. Here, the terminal23has no relation of connection with the terminal22on the ALM tree. In response to the retransmission request sent from the terminals23, the terminal22transmits retransmission data (shown in a broken line) to the terminal23.

When the first retransmission technique is employed, the RTT for setting the reference reproduction delay time is the RTT between the terminal23and the terminal20; namely, the root terminal. When the second retransmission technique is employed, the RTT for setting the reference reproduction delay time is the RTT between the terminal23and the terminal21that is the parent terminal. When the third retransmission technique is employed, the RTT for setting the reference reproduction delay time is the RTT between the terminal23and the terminal22that is the third terminal.

In contrast, in Non Patent Literature, each terminal has a fixed reproduction delay time, ignoring the RTT of retransmission data between a receiving terminal and a transmission source terminal. However, this technique causes deterioration in communications quality. Since this technique ignores the actual delay between the terminals, the following problems develops: The reproduction delay time is set either too short that the lost image data is reproduced with its jitter unremoved or too long that the reproduction start time delays excessively.

CITATION LIST

Non Patent Literature

SUMMARY OF INVENTION

As described above, in using the ALM tree, the RTT between the terminal and the retransmission data transmission source may be taken into consideration to set reproduction delay time, such that, in most cases, transmission quality improves. In the case where delays are different with each other between the terminals when this technique is applied to one of the second and the third techniques, however, the differences could develop a problem in that the resulting transmission quality would be lower than expected. With reference toFIGS. 21 to 23, the above problem is detailed below, comparing the cases where the delay between each terminal is (i) equal (FIG. 21) and (ii) not equal.

FIGS. 21 and 22shows how data travels through the route on the ALM tree shown inFIG. 19as time advances in the order of the terminals the terminals20,21,23, and27. Specifically,FIG. 21in shows an environment in which the network delays between the terminals are equal with each other (hereinafter referred to as an environment having equal delay), andFIG. 22shows an environment in which the network delays between the terminals are not equal with each other (hereinafter referred to as an environment having unequal delay). Here, the network delay is, for example, a time required for transmitting one packet from a parent terminal to a child terminal on the ALM tree. A typical network delay, is one half of an RTT. Hereinafter, an RTT is twice as long as a network delay.

Furthermore, a packet “p” is lost between the terminals20and21in any given cases. As shown inFIG. 23, moreover, the network delay is 100 ms between each terminal under the environment having equal delay. Meanwhile, under the environment having unequal delay, the network delay between the terminals20and21is 200 ms, and the network delay between each of the terminal other than the terminals20and21is 100 ms. In any case, the reproduction delay time between each of the terminals21to34is set to be equal to the RTT between each of the terminals21to34and a corresponding parent terminal (a source terminal of the retransmission data). In other words, the reproduction delay time is set twice as long as the network delay. In any case, the above second retransmission technique is employed to retransmit the lost data.

In the case where the packet “p” is lost between the terminals20and21, the lost packet “p” will not arrive at either the terminal21or neither of the downstream terminals23nor27. Thus, in the second retransmission technique, each of the terminals21,23, and27transmits a retransmission request of the packet “p” to a corresponding one of the parent terminals when the estimated arrival time of the packet “p” elapses. In response, the parent terminals retransmit the packet “p” to the corresponding terminals. The temporal flow of the operations is described first in the environment having equal delay (FIG. 21) and then the environment having unequal delay (FIG. 22).

In the environment having equal delay inFIG. 21, the terminals20,21, and23receive a retransmission request from the terminals21,23, and27, respectively. Then, the terminals20,21, and23retransmit the packet “p” to the corresponding terminals21,23, and27. In other words, 200 ms (=1RTT) after the transmission of the retransmission request (in other words after the elapse of the estimated arrival time of the packet “p”), the terminals21,23, and27receives the retransmitted packet “p”. Moreover, as shown inFIG. 23, the reproduction delay time of the terminals21,23, and27is 200 ms. Thus, the packet “p” is reproduced with the image uninterrupted on each of the terminals21,23, and27(the retransmission of the packet “p” is in time for the reproduction on each of the terminals21,23, and27).

Meanwhile, in the environment having unequal delay shown inFIG. 22, the network delay between the terminals20and21is 200 ms. Thus, the retransmission packet from the terminal20arrives at the terminal21400 ms after the original estimated arrival time of the packet “p”. In other words, it takes 400 ms for the terminal21to retransmit the packet “p” to the terminal23(the retransmission request of the terminal23waits for 200 ms at the terminal21). Thus, it is 400 ms after the original estimated arrival time that the retransmitted packet “p” arrives at the terminal23. As shown inFIG. 23, the reproduction delay time of the terminal23is 200 ms. When the packet “p” arrives at the terminal23, the reproduction start time has already passed (same as the terminal27).

In the case where the network delays between the terminals are different with each other when the second retransmission technique is applied, the differences could develop a problem in that the resulting transmission quality would be lower than expected. Described here is only the case where the second retransmission technique is applied; meanwhile, the same problem develops when the third retransmission technique is applied.

It is noted that when the first retransmission technique is applied, the above problem will not occur since the first retransmission technique involves directly receiving the retransmission data from the root terminal, and is not influenced by the differences of delays between other terminals. The first retransmission technique, however, is not practical since the first transmission technique causes an increase in the number of the retransmission requests to be transmitted to the root terminal in proportion to the number of reception nodes, which inevitably deteriorates the processing capacity of the root terminal and develops strain on the bandwidth.

The present disclosure is conceived in view of the above problems and has an object to provide a communications terminal and a communications method which are capable of reproducing stream data in high quality, even though the stream data is lost on the transmission path.

A communications terminal according to an aspect of the present invention is one of communications terminals which receive stream data distributed from a root terminal and reproduce the stream data. Each of the communications terminals has one parent terminal and zero or more child terminals, such that the communication terminals form an ALM tree to sequentially transmit retransmission data of the stream data from the parent terminal to the child terminal. The communications terminal includes: a reproduction delay time determining unit which determines a reproduction delay time based on a longest round-trip delay time among round-trip delay times of sections between the root terminal and the communications terminal, each of the round-trip delay times being required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree; and a reproduction control unit which reproduces the stream data received from the root terminal, with the stream data delayed by the reproduction delay time determined by the reproduction delay time determining unit.

The above structure allows the retransmission data to be obtained by a reproduction time, even though the stream data is lost in the section, among the sections between the root terminal and the terminal, whose round-trip delay time is the longest; that is the section where it takes most time for retransmission processing. As a result, the communications terminal successfully reproduces the stream data with high quality.

In the above structure, it is noted that the retransmission data is transmitted through the ALM tree. Concurrently, a technique for transmitting the stream data shall not be limited in particular. For example, the stream data may be transmitted through: the same ALM tree as the retransmission data is transmitted, or an ALM tree which is different from the ALM tree through which the retransmission data is transmitted. Instead of the ALM tree, the stream data may also be directly transmitted from the root terminal to each of the communications terminals. Moreover, “the parent terminal” in Description is a transmission source terminal which directly transmits the data to the terminal on the ALM tree. On the ALM tree, “the child terminal” is a transmission target terminal to which the terminal directly transmits the data.

As an example, the reproduction delay time determining unit may determine, as the reproduction delay time, an integral multiple of the longest round-trip delay time.

As another example, when a round-trip delay time between the communications terminal and the parent terminal is defined as rtt(self), the reproduction delay time of the communications terminal is defined as x(self), the reproduction delay time of the parent terminal is defined as x(parent), and a positive integer is defined as αself, the reproduction delay time determining unit may determine (i) the reproduction delay time x(self) by means of Expression 1 if rtt(self)≧x(parent) is satisfied and (ii) the reproduction delay time by means of Expression 2 if rtt(self)<x(parent) is satisfied:
[Math. 1]
X(self)=αself×rtt(self)  Expression 1
[Math.2]
X(self)=(αself−1)×rtt(self)+x(parent)  Expression 2

Even though the retransmission data is lost, the use of each of the above techniques for determining the reproduction delay time makes it possible to obtain retransmission data by a reproduction time. As a result, the communications terminal successfully reproduces the stream data with higher quality.

Moreover, the communications terminal may include a retransmission requesting unit which, when part of the stream data received from the root terminal is lost, requests the parent terminal to transmit retransmission data corresponding to the loss. The retransmission request unit may repeatedly request the parent terminal to transmit the retransmission data at an interval which is (i) equal to or longer than the round-trip delay time between the communications terminal and the parent terminal and (ii) equal to or shorter than the longest round-trip delay time. This structure further allows the communications apparatus to enhance the ability of obtaining the retransmission data by a reproduction time.

Furthermore, the communications terminal may include: a round-trip delay time measuring unit which measures the round-trip delay time between the communications terminal and the parent terminal; and a round-trip delay time managing unit which (i) receives, from the parent terminal, a round-trip delay time notification including one or more of the round-trip delay times between the root terminal and the parent terminal on the ALM tree and (ii) transmits, to the child terminal, the received round-trip delay time notification together with the round-trip delay time measured by the round-trip delay time measuring unit. This structure allows important information (the round-trip delay time) to be distributed to each of the communications terminals, minimizing the traffic of the communications network.

In addition, the round-trip delay time managing unit may receive the round-trip delay time notification at predetermined time intervals. The round-trip delay time measuring unit may measure the round-trip delay time between the communications terminal and the parent terminal at each reception of the round-trip delay time notification. At each reception of the round-trip delay time notification, the reproduction delay time determining unit may determine the reproduction delay time based on the one or more round-trip delay times included in the round-trip delay time notification and the round-trip delay time measured by the round-trip delay time measuring unit. The communications terminals updates the reproduction delay time at predetermined time intervals, contributing to reproduction of the stream data with higher quality.

A communications terminal according to another aspect of the present invention is one of communications terminals which receive stream data distributed from a root terminal and reproduce the stream data. Each of the communications terminals has one parent terminal and zero or more child terminals, such that the communication terminals form an ALM tree to sequentially transmit retransmission data of the stream data from the parent terminal to the child terminal. The communications terminal includes: a reproduction delay time determining unit which determines a reproduction delay time based on a round-trip delay time of which section, among sections between the root terminal and the communications terminal, has a greatest loss rate of the stream data, each of round-trip delay times being required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree; and a reproduction control unit which reproduces the stream data, with the stream data delayed, upon reception of the stream data, by the reproduction delay time determined by the reproduction delay time determining unit.

As structured above, the communications terminal successfully reproduce the stream data with higher quality, by determining the reproduction delay time according to the loss rate of the stream data in each of the sections based on the round-trip delay time whose section has the greatest loss rate.

Furthermore, the communications terminal may include: a loss rate measuring unit which measures the loss rate between the communications terminal and the parent terminal; and a loss rate managing unit which (i) receives, from the parent terminal, a loss rate notification including one or more loss rates between the root terminal and the parent terminal on the ALM tree and (ii) transmits, to the child terminal, the loss rate notification together with the loss late measured by the loss rate measuring unit.

The loss rate managing unit may receive the loss rate notification at predetermined time intervals. The loss rate measuring unit may measure the loss rate between the communications terminal and the parent terminal at each reception of the loss rate notification. At each reception of the loss rate notification, the reproduction delay time determining unit may determine the reproduction delay time based on the one or more loss rates included in the loss rate notification and the loss rate measured by the loss rate measuring unit.

A communications method according to another aspect of the present invention is executed by a communications terminal included in communications terminals which receive stream data distributed from a root terminal and reproduce the stream data. Each of the communications terminals has one parent terminal and zero or more child terminals, such that the communication terminals form an ALM tree to sequentially transmit retransmission data of the stream data from the parent terminal to the child terminal. The communications method includes: determining a reproduction delay time based on a longest round-trip delay time among round-trip delay times of sections between the root terminal and the communications terminal, each of the round-trip delay times being required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree; and reproducing the stream data received from the root terminal, with the stream data delayed by the reproduction delay time determined in said determining.

A program according to another aspect of the present invention is stored on a non-transitory computer-readable recording medium and executed by a communications terminal included in communications terminals which receive stream data distributed from a root terminal and reproduce the stream data. Each of the communications terminals has one parent terminal and zero or more child terminals, such that the communication terminals form an ALM tree to sequentially transmit retransmission data of the stream data from the parent terminal to the child terminal. The program causes the communications terminal to execute: determining a reproduction delay time based on a longest round-trip delay time among round-trip delay times of sections between the root terminal and the communications terminal, each of the round-trip delay times being required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree; and reproducing the stream data received from the root terminal, with the stream data delayed by the reproduction delay time determined in said determining.

An integrated circuit according to another aspect of the present invention is in a communications terminal included in communications terminals which receive stream data distributed from a root terminal and reproduce the stream data. Each of the communications terminals has one parent terminal and zero or more child terminals, such that the communication terminals form an ALM tree to sequentially transmit retransmission data of the stream data from the parent terminal to the child terminal. The integrated circuit includes: a reproduction delay time determining unit which determines a reproduction delay time based on a longest round-trip delay time among round-trip delay times of sections between the root terminal and the communications terminal, each of the round-trip delay times being required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree; and a reproduction control unit which reproduces the stream data received from the root terminal, with the stream data delayed by the reproduction delay time determined by the reproduction delay time determining unit.

The present invention successfully improves the quality of stream data including images and audios to be reproduced on each of reception terminals.

DETAILED DESCRIPTION OF INVENTION

Detailed hereinafter are embodiments of the present invention, with reference to the drawings.

Described hereinafter are a structure and an operation of a communications terminal100according to Embodiment 1 of the present invention, with reference toFIGS. 1 and 2. It is noted thatFIG. 1is a functional block diagram of the communications terminal100.FIG. 2is a flowchart showing the operation of the communications terminal100.

As shown inFIG. 1, the communications terminal100according to Embodiment 1 includes a reproduction delay time determining unit1010and a reproduction control unit1020. The communications terminal100is one of communications terminals (not shown inFIG. 1) each of which receives stream data distributed from a root terminal and reproduces the stream data. The communications terminals form an ALM tree. On the ALM tree, each of the communications terminals has one parent terminal and zero or more child terminals, so that the retransmission data of the stream data is sequentially transmitted from the parent terminal to the child terminal.

The reproduction delay time determining unit1010determines a reproduction delay time based on the longest round-trip delay time among round-trip delay times of the sections between the root terminal and the communications terminal100(S11). Here, each of the round-trip delay times is required for transmission and reception of data through one of the sections between two neighboring terminals of the communications terminals on the ALM tree. Typically, the round-trip delay time is equivalent to the RTT.

The reproduction control unit1020reproduces the stream data received from the root terminal, with the stream data delayed by the reproduction delay time determined by the reproduction delay time determining unit1010(S12). Specifically, the reproduction control unit1020once stores, in a buffer (not shown), the stream data received from the root terminal, reads the stream data from the buffer after the elapse of the reproduction delay time since the reception, and reproduces the stream data.

Detailed next is the structure of the communications terminal100according to Embodiment 1, with reference toFIG. 3.FIG. 3is a detailed functional block diagram of the communications terminal100. The communications terminal100shown inFIG. 3includes a retransmission request transmitting unit101, a retransmission data transmitting unit201, an ALM control unit301, a reproduction delay time determining unit401, an RTT managing unit402, and an RTT measuring unit501. It is noted that the reproduction delay time determining unit1010and the reproduction control unit1020inFIG. 1are respectively equivalent to the reproduction delay time determining unit401and the ALM control unit301inFIG. 3.

The ALM control unit (a reproduction control unit)301receives the stream data from a parent terminal on the ALM tree, and stores the received stream data in the buffer (not shown) as well as transmits the stream data to a child terminal. After the elapse of the reproduction delay time, the ALM control unit301also reproduces the stream data stored in the buffer.

The RTT measuring unit (a round-trip delay time measuring unit)501measures an RTT between the terminal and the parent terminal. The techniques to measure the RTT shall not be limited in particular. One of such techniques may be a typical RTT measuring technique employed in the Real-time Transport Control Protocol (RTCP).

The RTT managing unit (a round-trip delay time managing unit)402receives the RTT notification message (a round-trip delay time notification) from the parent terminal, and transmits, to the child terminal, the RU notification message together with the RTT (the round-trip delay time) between the terminal and the parent terminal. It is noted that the RTT notification message received from the parent terminal includes an RTT of each of the sections from the root terminal to the parent terminal on the ALM tree.

The reproduction delay time determining unit401determines the reproduction delay time based on (i) the RTT included in the RTT notification message received from the parent terminal by the RTT managing unit402and (ii) the RTT measured by the RTT measuring unit501, and notifies the ALM control unit301of the determined reproduction delay time. Specific determination techniques shall be described later.

In the case where part of the stream data received from the root terminal is lost, the retransmission request transmitting unit (a retransmission requesting unit)101requests the parent terminal to retransmit the retransmission data corresponding to the loss. The retransmission request transmitting unit101repeatedly transmits the retransmission request until receiving the retransmission data. Here, an interval between retransmissions may preferably be (i) equal to or longer than the round-trip delay time between the communications terminal100and the parent terminal thereof, and (ii) equal to or shorter than the longest round-trip delay time among round-trip delay times of the sections lying from the root terminal to the terminal.

Upon receiving the retransmission request from the child terminal, the retransmission data transmitting unit201obtains the data indicated in the retransmission request sent from the buffer of the ALM control unit301, and transmits the obtained data to the child terminal which is the transmission source of the retransmission request. In the case where there is no data to be retransmitted in the buffer of the ALM control unit301, the retransmission data transmitting unit201stands by until receiving the data. Once receiving the retransmission data, the retransmission data transmitting unit201transmits the data as soon as possible.

Described next are specific techniques1to3showing how the communications terminal100determines the reproduction delay time, with reference toFIGS. 4 to 8. In order to simplify the description,FIGS. 4 to 8show the second retransmission technique for transmitting and receiving the retransmission data. In other words, the stream data and the retransmission data are distributed via the same ALM tree.

It is noted that, in the technique1, the longest RTT is the reproduction delay time among the RTTs between the terminals through which the retransmission data to the terminal travels. The technique2involves further multiplying the longest RTT in the technique1by an integer to obtain the reproduction delay time. The technique3involves setting the value, obtained based on the Expressions 1 and 2 below, as the reproduction delay time of the terminal. It is noted that “the terminals through which the retransmission data to the terminal travels” are all the terminals upstream (a path from the terminal to the root terminal) from the terminal.

FIG. 4exemplifies the retransmission by the parent terminal (the second retransmission technique), assuming that the data is lost between the terminals20and21. Here, the data loss affects the terminal21and the downstream terminals; namely, the terminals23,24, and27to30. Thus, the retransmission requests are transmitted as follows: from the terminal21to the terminal20, from the terminals23and24to the terminal21, from the terminals27and28to the terminal23, and from the terminals29and30to the terminal24(See the left tree inFIG. 4). Furthermore, the terminals20,21,23, and24receiving the retransmission requests transmit the retransmission data to the corresponding terminals which has requested the retransmission requests (See the right tree inFIG. 4).

Here, as the right tree inFIG. 4clearly shows, the retransmission data to each of the terminals travels through each of the upstream terminals. In other words, in the case where a loss occurs in any given section on the tree (that is a communication path between neighboring two terminals), the retransmission data is expected to travel all the downstream terminals from the loss occurring section. The loss occurring section can be the top-most section including the root terminal. In such a case, the retransmission data travels through all the terminals forming the ALM tree.

First, in technique1, the longest RTT among the RTTs in the upstream sections from each of the terminals is set as the reproduction delay time of each of the terminal. As shown inFIG. 5, specifically, the RTT between the terminals20and21is 200 ms. Thus, the reproduction delay time of the terminal21is 200 ms. The RTT between the terminals21and23is 100 ms. Thus, the reproduction delay time of the terminal23is 200 ms (the RTT between the terminals20and21). Furthermore, the RTT between the terminals23and27is 100 ms. Thus, the reproduction delay time of the terminal27is 200 ms (the RTT between the terminals20and21). The same technique is employed to set the reproduction delay times for the other terminals22,24to26, and28to34.

FIG. 6shows a temporal shift of the retransmission process executed among the terminals20,21,23, and27when the packet “p” is lost between the terminals20and21.

According toFIG. 6, the packet “p” transmitted from the terminal20is expected to arrive at (i) the terminal21at the time t1, 100 ms after the transmission from the terminal20(ii) the terminal23at the time t2, 50 ms after the transmission from the terminal21and (iii) the terminal27at the time t3, 50 ms after the transmission from the terminal23. The loss of the packet “p” in the section between the terminals20and21, however, prevents the terminals21,23, and27from receiving the packet “p” at the expected times.

Thus, the terminal21transmits the retransmission request to the terminal20at the time t1. The retransmission request arrives at the terminal20at t3, 100 ms after the transmission from the terminal21. Similarly, the terminal23transmits the retransmission request to the terminal21at the time t2. The terminal27transmits the retransmission request to the terminal23at the time t3. Then, the retransmission request transmitted from the terminal23arrives at the terminal21in 50 ms at the time t3. The retransmission request transmitted from the terminal27arrives at the terminal23in 50 ms at the time t4.

Next, the terminal20, which received the retransmission request from the terminal21at the time t3, immediately transmits a retransmission packet “p′” to the terminal21. The retransmission packet “p′” arrives at the terminal21at the time t5, 100 ms after the transmission from the terminal20.

The terminal21, which received the retransmission request from the terminal23at the time t3, does not have the packet “p” itself, and stands by as it is. Upon receiving the retransmission packet “p” from the terminal20at the time t5, the terminal21transmits the retransmission packet “p” to the terminal23in response to the retransmission request. The retransmission packet “p” arrives at the terminal23at t6, 50 ms after the transmission from the terminal21.

The terminal23, which received the retransmission request from the terminal27at the time t4, does not have the packet “p” itself, and stands by as it is. Upon receiving the retransmission packet “p” from the terminal21at the time t6, the terminal23transmits the retransmission packet “p” to the terminal27in response to the is retransmission request. The retransmission packet “p” arrives at the terminal27at the time t7, 50 ms after the transmission from the terminal23.

Since the reproduction delay time of each of the terminals21,23, and27is set to the RTT (=200 ms) between the terminals20and21; that is, the longest RTT on the path through which the retransmission data travels, the retransmission data which arrives at the terminals21,23, and27is ready in time for the reproduction asFIG. 6shows. It is noted that this is the case where the data is lost between the terminals20and21; that is, the longest RTT section. In the case where the data is lost in another section (for example, the section between the terminals21and23), the time to be required is shorter for the arrival of the retransmission data. In this case, as well, the retransmission data never fails to arrive at the terminals23and27for their reproduction.

The techniques2and3are devised so that each of the terminals further makes sure to receive the retransmission data. Specifically, the techniques2and3provide extra time to each of the terminals so that the lost retransmission data can be retransmitted again when the retransmission data itself is lost during the retransmission. For example, suppose no retransmission data arrives even though the reproduction delay time calculated by the technique1has elapsed since the transmission of the retransmission request. Here, the retransmission data is regarded lost on the way, and the retransmission request can be transmitted again. The techniques2and3involve setting the reproduction delay time of each of the terminals, so that a retransmission packet received as a response to the second retransmission request arrives at each of the to terminals in time for the reproduction. Hereinafter, the details of the above techniques are described in order.

In the technique2, the reproduction delay time of the terminal is set to the integral multiple of the longest RTT of the upstream RTT. As shown inFIG. 5, for example, the reproduction delay time of each of the terminals21to34is set twice as long as the longest RTT (in other words, the reproduction delay time in the technique1) of all of the upstream RTTs. Here, in the case where each of the terminals21to34continues to transmit the retransmission request at the interval of the longest RTT in the technique1, one loss of the retransmission data can be overcome.

FIG. 6shows a temporal shift of the process executed when the retransmission packet “p′” is lost. It is noted that detailed description shall be omitted for the same processing as that in the technique1inFIG. 6. Instead, the characteristic processing in the technique2shall be mainly described.

In addition to the example inFIG. 6,FIG. 7exemplifies the case where, between the times t5and t6, the retransmission packet “p′” is lost between the terminals21and23. The terminals23and27continue to transmit the retransmission requests at the interval of 200 ms; that is, the longest upstream RTT. In other words, the terminal23transmits the second retransmission request to the terminal21at as the time t6, 200 ms after the time t2which is the original estimated arrival time of the packet “p”. Similarly, the terminal27transmits the second retransmission request to the terminal23at the time t6, 200 ms after the time t3which is the original estimated arrival time of the packet “p”.

The terminal21receives the second retransmission request from the terminal23at the time t7, and transmits the retransmission packet “p” again to the terminal23. Then, the retransmission packet “p” transmitted from the terminal21arrives at the terminal23300 ms after the original estimated arrival time t2. Similarly, the terminal23receives the second retransmission request from the terminal27at the time t8, and transmits the retransmission packet “p” again to the terminal27. Then, the retransmission packet “p” transmitted from the terminal23arrives at the terminal27300 ms after the original estimated arrival time t3.

Hence, the retransmission packet “p” arrives at the terminals23and27within 400 ms which is the reproduction delay time of the terminals23and27. In other words, the retransmission packet “p” arrives at the terminals23and27in time for their reproduction.

The example inFIG. 7shows that the retransmission packet “p” is lost on a link other than the longest RTT link (the section having the longest RTT), so that the retransmission packet “p” arrives before the reproduction delay time. In the case where the loss occurs on the longest RTT link, the retransmission packet “p” arrives 400 ms later. This is equal to the reproduction delay time, and is in time for the reproduction.

In the above example, the reproduction delay time (=the longest RTT) calculated in the technique1is multiplied by two. An increase in the reproduction delay time in three times, four times, . . . x times allows the terminals to operate in an unstable communication environment, such as causing more losses of the retransmission packet “p”. Specifically, the terminals can overcome designated times (multiple number−1) of retransmission data losses.

It is noted that as the reproduction delay time becomes longer, the capacity of the buffer for temporarily storing the stream data needs to be larger. Thus, the value of x to be multiplied by the longest RTT may be determined, taking into consideration real-time processing of the stream data and stability of the communications network.

It is noted that the interval at which the retransmission request is kept transmitted is not always the longest RTT. Instead, the intervals may be any given upstream RTT. For example, the retransmission request may be kept transmitted at the interval of the RTT between the parent terminal and a terminal (the RTT between the terminals21and23when the terminal is23, and the RTT between the terminals23and27when the terminal is27).

The technique2employs an integral multiple of the longest RTT as the reproduction delay time so as to cope with the loss of the retransmission data on the longest RTT link. In contrast, the technique3is capable of individually setting the number of retransmissions αnto each of the terminals n. Specifically, Expressions 1 and 2 are employed to determine a reproduction delay time x(n) of each of the terminals n.
[Math.3]
X(n)=αn×rtt(n)  Expression 1
[Math.4]
X(n)=(αn−1)×rtt(n)+x(parent)  Expression 2

It is noted that, in Expression 1, the reproduction delay time at the terminal n is defined as x(n), the reproduction delay time of the parent terminal of the terminal n is defined as x(parent), the RTT between the terminal n and the parent terminal is defined as rtt(n), and a positive integer to be set for each terminal n is defined as αn. Expression 1 is employed if the condition1: rtt (n)≧x(parent) is satisfied. Expression 2 is employed if the condition2: rtt(n)<x(parent) is satisfied.

Specifically, the terminal22satisfies the condition1since RTT(22)=100 ms, and x(parent)=x(20)=0 ms. Thus, RTT(22)=100 ms and α22=2 are substituted to obtain the reproduction delay time x(22) of the terminal22=200 ms. It is noted that the parent terminal of the terminal22is the terminal20; namely the root terminal, and the data loss does not have to be considered. Thus, the reproduction delay time x(20) is 0 ms.

The terminal25satisfies the condition1since RTT(25)=300 ms, and x(parent)=x(22)=200 ms. Thus, RTT (25)=300 ms and α25=1 are substituted in the Expression 1 to obtain the reproduction delay time x(25) of the terminal25is 300 ms.

The terminal31satisfies the condition2since the RTT(31)=100 ms, and x(parent)=x(25)=300 ms. Thus, RTT (31)=100 ms, x(parent)=300 ms, and α31=2 are substituted in the Expression 2 to obtain the reproduction delay time x of the terminal31=400 ms.

It is noted that the positive integer αnin Expressions 1 and 2 shows that αntimes of retransmission are desired between the terminal n and the parent terminal. The value αncan be set for each terminal n. As a result, the number of retransmission trials varies for each terminal. The columns of the technique3inFIG. 3show (i) the number of retransmission trials αn(=the number of retransmission trial from the parent terminal) for each terminal and (ii) the reproduction delay time of each terminal derived from the Expressions 1 and 2 when αnis substituted.

FIG. 8shows a temporal shift of the processes on the terminals20,22,25, and31when the technique3is employed. It is noted that each of the terminals22,25, and31is expected to continue to transmit the retransmission request at the interval of the longest RTT on the route of the retransmission data. In other words, the terminal22continues to transmit the retransmission request at the 100-ms interval, and the terminals25and31continue to transmit the retransmission request at the 300-ms interval.

As shown inFIG. 8, first, the terminal22transmits the retransmission request to the terminal20at (i) the arrival estimated time t11of the packet “p” and (ii) the time t13, 100 ms after the time t11. Then, in response to the second retransmission request, the terminal22receives the retransmission packet “p” from the terminal20at the time t15, 200 ms after the original arrival estimated time t11. Here, the terminal22has the reproduction delay time x(22) of 200 ms and the number of retransmission trials α22is 2. Thus, in the case where the terminal22receives the retransmission packet “p′” at the time t15in response to the second retransmission request, the terminal22can reproduce the retransmission packet “p′” in time.

The terminal25transmits the retransmission request to the terminal22at the arrival estimated time t14of the packet “p”. Then, in response to the first retransmission request, the terminal25receives the retransmission packet “p” from the terminal22at the time t20, 300 ms after the original arrival estimated time t14. Here, the terminal25has the reproduction delay time x(25) of 300 ms and the number of retransmission trials α25is 1. Thus, in the case where the terminal25receives the retransmission packet “p′” at the time t20in response to the first retransmission request, the terminal25can reproduce the retransmission packet “p” in time.

The terminal31transmits the retransmission request to the terminal25at (i) the arrival estimated time t15of the packet “p” and (ii) the time t21, 300 ms after the time t15. Then, in response to the second retransmission request, the terminal31receives the retransmission packet “p” from the terminal25at the time t23, 400 ms after the original arrival estimated time t15. Here, the terminal31has the reproduction delay time x(31) of 400 ms, and the number of retransmission trials α31is 2. Thus, in the case where the terminal31receives the retransmission packet “p” at the time t23in response to the second retransmission request, the terminal31can reproduce the retransmission packet “p” in time.

Hence, even though the retransmission trials are executed for as many as αndesignated to each terminal; that is, even though the packet “p” and the packet “p” are lost as many times as the packet “p” and the packet “p′” are recovered by the number of retransmission trials, the retransmission packet “p” arrives at each of the terminals in time for the reproduction time of each terminal.

It is noted that the interval at which the retransmission request continues to be transmitted is not always the longest RTT. Instead, the interval may be any given upstream RTT. For example, the retransmission request may continue to be transmitted at the interval of the RTT between the parent terminal and a child terminal (the RTT between the terminals20and22when the child terminal is22, the RTT between the terminals22and25when the child terminal is25, and the RTT between the terminals25and31when the child terminal is31).

In the techniques1to3, each of the terminals obtains a corresponding RTT on the route of the retransmission data, and independently calculates the reproduction delay time of the terminal. Instead, a specific terminal, such as the root terminal, may intensively calculate the RTTs and distribute the RTTs to corresponding terminals.

Described next is how to collect RTTs required for calculation of the above reproduction delay times, with reference toFIGS. 9 and 10. Here, the second retransmission technique is assumed in order to simplify the description. The required RTT for each of the terminals is only an RTT between upstream terminals from the terminal on the ALM tree.

As shown in the tree on the far left inFIG. 9, the terminal20; namely the root terminal, transmits RTT notification messages “m1” and “m2” to the terminals21and22, respectively. Here, the terminal20has no parent terminal, and actually transmits the RTT notification messages “m1” and “m2” with no RTT information included.

Next, as shown in the middle tree inFIG. 9andFIG. 10, the terminal21which has received the RTT notification message “m1” transmits to the terminals23and24new RTT notification messages “m3” and “m4” both including the RTT between the terminal21itself and the parent terminal (the terminal20). Here, the RTT between the terminal21itself and the parent terminal is measured by the RTT measuring unit501inFIG. 1. Similarly, the terminal22which has received the RTT notification message “m2” transmits to the terminals25and26new RTT notification messages “m5” and “m6” both including the RTT between the terminal22itself and the parent terminal (the terminal20).

The terminals23to26, which receive the RTT notification messages, operate in the same manner as the terminals21and22. As shown in the tree on the far right, the terminals27to34receive RTT notification messages “m7” to “m14”.FIG. 10shows the details (included RTTs) of each RTT notification message. Each terminal can calculate the reproduction delay time based on the details of the RTT notification message received from the parent terminal and the RTT between the terminal itself and the parent terminal. The RTT is calculated by each terminal itself. Here, a specific technique for measuring the RTT between the terminal and the parent terminal includes a typical RTT measuring technique employed in the RTCP, for example.

It is noted that the RTT notification message may additionally have extra information. For example, the RTT notification message may additionally include the reproduction delay time (required in the technique3) determined at each terminal, and may be transmitted to a child terminal.

Here, the required RTT is obtained with a top-down approach (the process runs upstream to downstream) shown inFIG. 8. Instead, another approach may be employed, such that each terminal measures an RTT between the terminal itself and another terminal (hereinafter referred to as neighboring terminal) connected to the terminal, and the information of the RTT may be distributed among all the terminals.

Moreover, the following approach may be employed: Each terminal may (i) measure either the RTT between the terminal itself and the parent terminal or the RTT between the terminal itself and a neighboring terminal and (ii) notify the root terminal of the measured RTT individually or with the bottom-up approach (the process runs downstream to upstream), and the root terminal may notify each terminal of the required RTT individually or through the multicast on the tree. Furthermore, another collection technique other than the above may be employed.

It is noted that the above reproduction delay time determination process is executed only once when the streams data starts to be distributed. During the stream data distribution, the reproduction delay time may be fixed. The reproduction delay time determination process may also be repeated at predetermined time intervals, and the reproduction delay time may be updated during the stream data distribution.

Specifically, the RTT managing unit402receives the RTT notification message at predetermined time intervals. With respect to each reception of the RTT notification message by the RTT managing unit402, the RTT measuring unit501measures the RTT between the terminal and the parent terminal. Then, at each reception of the RTT notification message, the reproduction delay time determining unit401may execute the reproduction delay time determination process, based on an RTT included in the RTT notification message and on an RU newly measured by the RTT measuring unit501.

It is noted that when the reproduction delay time becomes shorter during the distribution of the stream data, however, the stream data which has already been held in the buffer needs to be fast-forwarded or skipped. When the reproduction delay time becomes longer during the distribution of the stream data, the reproduction of the stream data which has already been held in the buffer needs to be paused or the stream data needs to be slowly reproduced.

Such a change in the reproduction delay time during the distribution of the stream data can momentarily cause jitters on the reproduced images and audios. Constantly updating the reproduction delay time to the optimum one, however, will reduce the jitters on the images or on the audios on the whole. Thus, the reproduction delay time may preferably be updated at predetermined time intervals.

It is noted that the update intervals of the reproduction delay time may be changed, depending on the environment of a communications network. For example, brief update intervals may be provided when the communication environment is unstable, and long update intervals may be provided when the communication environment is stable.

Moreover, the update of the reproduction delay time may be restricted, depending on the characteristics of stream data. Following schemes may be applied, for example: When the stream data needs to be processed in real time (a TV conference, for example), the update is allowed only when the reproduction delay time becomes shorter, and when the stream data may not be interrupted (music, for example), the update is allowed only when the reproduction delay time becomes longer.

Described next is a structure and an operation of a communications terminal according to Embodiment 2. It is noted that the details shared between Embodiments 1 and 2 shall be omitted, and the differences may be mainly described. The communications terminal according to Embodiment 2 has the communications terminal100inFIG. 1include a loss rate managing unit and a loss rate measuring unit. Furthermore, the reproduction delay time determining unit401in Embodiment 2 employs a technique of determining the reproduction delay time differs specifically different from that employed in Embodiment 1.

The loss rate measuring unit measures a loss rate of the stream data between a terminal and the parent terminal. Specifically, the loss rate measuring unit may calculate the Packet Error Rate (PER) of the received stream data with reference to the sequence number of the TCP header.

The loss rate managing unit receives, from the parent terminal, a loss rate notification including the loss rate of each section between the root terminal and the parent terminal on the ALM tree, adds the loss rate notification with the loss rate measured by the loss rate measuring unit, and transmits the loss late notification to a child terminal.

It is noted that the loss rate notification may be transmitted and received as the RTT notification message; that is, the loss rate notification may be transmitted and received as a separate message from the RTT notification message. Here, a specific process is the same as that of the RTT notification message by the RTT managing unit402. The RTT notification message may also include information of the loss rate.

In addition to an RTT, the reproduction delay time determining unit according to Embodiment 2 determines a reproduction delay time based on (i) a loss rate included in the loss rate notification received by the loss rate managing unit and (ii) a loss rate measured by the loss rate measuring unit. Specifically, the reproduction delay time determining unit determines the reproduction delay time based on the RTT whose section, among the sections from the root terminal to the terminal, has the greatest loss rate of the data stream.

As described above, the reproduction delay time determining unit determines the reproduction delay time, taking into consideration the loss rate of each section, as well as the information of the RTTs on the route of the retransmission data. This operation contributes to further improvement in the quality of the stream data to be reproduced by the ALM control unit301.

The present invention may be provided in a form of a program executed by a computer implementing communications methods in Embodiments 1 and 2, as well as the communications terminals and the communications methods in Embodiments 1 and 2.

FIGS. 11A to 11Cshow how a computer system executes the communications methods according to Embodiments 1 and 2 using a flexible disk floppy disk (FD) which stores the methods.

FIG. 11Ashows a physical format of a magnetic disk used as a storage medium body.FIG. 11Bshows a magnetic disk MD, and an elevated view and a cross-sectional view of a casing F holding the magnetic disk MD.FIG. 11Cshows how a program is stored on a flexible disk and is reproduced.

The flexible disk FD includes the magnetic disk MD; namely a storage medium body, and the casing F holding the magnetic disk MD. The surface of the magnetic disk MD has tracks Tr concentrically formed from the outer periphery to the inner periphery. Each of the tracks Tr are circumferentially divided into 16 sectors Se. Hence, the flexible disk FD with the above program stores, in an area assigned on the magnetic disk MD, the communications method in a form of the above program.

When the above program is to be stored in the flexible disk FD, the communications method in a form of the above program is provided from a computer system Cs and written on the flexible disk FD via a flexible disk drive FDD. When the communications method is to be constructed in the computer system Cs using the program in the flexible disk FD, the flexible disk drive FDD reads the program from the flexible disk FD, and transfers the read program to the computer system Cs.

It is noted that, in the above description, the flexible disk FD is used as a storage medium; concurrently, an optical disk may also be used. In addition, a flexible disk and an optical disk shall not be limited as a storage medium; instead, any given program-storable medium, such as an integrated circuit (IC) card and a read-only memory (ROM) cartridge, may be used.

Furthermore, the present invention may have some or all of the constituent features of the communications apparatus integrated into one single system large scale integration (LSI). A system LSI is an ultra-multifunctional LSI having constituent units integrated on one single chip.

The present invention is useful for video distribution and a distance lecture system through an ALM tree.

REFERENCE SIGNS LIST

101Retransmission request retransmitting unit

201Retransmission data transmitting unit

301ALM control unit

401and1010Reproduction delay time determining unit

402RTT managing unit

501RTT measuring unit

1020Reproduction control unit