Bit Torrent and multicast routing
Bit Torrent is a protocol for downloading (typically large) files from the Web. For a given file that is being downloaded by several users, its principle is that of avoiding useless capacity occupation for each download by storing the file at intermediate nodes.
This principle clearly works with a particular type of traffic request: the same large file being requested by several nodes of the network . Under such assumption, the traffic model is different from the usual set of point-to-point demands we have seen in class for wired networks. This is more of a multicast demand, defined by a source s, and a set of destination nodes,
.
For a detailed description, check the Wikipedia entry. Each of the destination nodes requests the same file at different times, and receives chunks of that file in seemingly random order. A polite destination node keeps that chunk and sends it to other destination upon request. We’ll have to simplify that a bit in order to make it fit in the Optimization/simulation context.
The problem, in our simplified version, is that of finding, for several source nodes and their corresponding sets of destination nodes, the subgraph structure that allows to send the full file to the source to each destination node while minimizing the total capacity occupation.
The input is:
- A graph
;
- A set of pairs
for
, where
and
;
- A given file size
and request time
for each demand
;
- A constant download speed of
for each file and a capacity of
for each arc
;
The problem is that of finding the optimal multicast flow from each source, which have to begin at the given start time, to all its destination in order to minimize the maximum edge capacity occupation (i.e. congestion).
Data: consider the instance modeling the Atlanta backbone network. Capacities are the first number in the LINKS section, and should be ignored. For simplicity, only consider one demand for each node : the first demand whose source is
in the DEMANDS section. All file sizes, i.e., demands,
are expressed in Mb (and not Mb/s) and are again in the DEMANDS section. For each demand, the source is the node
, while the set
is the set of three nodes
,
, and
.
All time frames are expressed in minutes and, as there is one demand
for every source node
, let
minutes. Finally, let
Mb/s.