Patent ID: 8750103

Claim:
An Application Layer Multicast (ALM) tree constructing apparatus which constructs an ALM tree for distributing a data stream from a root terminal, which is selected from among terminals, to all the other terminals, the terminals being mutually connected via a communication network, and the ALM tree constructing apparatus comprising: a metric measuring unit configured to measure an upload link bandwidth for each of the terminals; a terminal allocating unit configured to allocate, to each of the terminals, at least one of (i) an upper terminal acting as a distribution source of the data stream and (ii) one or more lower terminals acting as destinations of the data stream; a first communication path allocating unit configured to allocate at least a part of the upload link bandwidth which is (i) assigned to each of the terminals that has the lower terminal allocated, and (ii) measured by the metric measuring unit, so that the part of upload link bandwidth acts as a logical first communication path for distributing the data stream to the lower terminal; for each of terminals having a remaining bandwidth which is included in the upload link bandwidth and is unused as the logical first communication path, a second communication path allocating unit configured to allocate the remaining bandwidth to one of the terminals which is provided in a hierarchy level below the terminal having the remaining bandwidth, so that the remaining bandwidth acts as a logical second communication path for distributing reference data regarding the data stream; and a transmission path delay measuring unit configured to measure, for each of all the other terminals, a delay time observed on the logical first communication path until each other terminal receives the data stream distributed from the root terminal, wherein the second communication allocating unit is configured to allocate, as the logical second communication path, the remaining bandwidth to another one of the terminals having a longer delay time than the one terminal.