4.4 IMS (IP Multicast Set of rules)

This set of rules implements the most basic behaviour of the protocol that can be used when IP multicast is available. This mode can be useful in local area networks where this transmission mode usually works properly.

  1. IP multicast address: The splitter uses an IP multicast address (and a port) where all peers of the team wait for receiving chunks. Notice that the peers only receive chunks (never send them to the multicast channel because the splitter does all the work).
  2. Peer arrival: An incoming peer must contact with the splitter in order to join the team. After that, the splitter sends to the peer the stream header over the TCP using a temporal unicast connection.
  3. Buffering in peers: Packets in transit can suffer different transmission delays due to the jitter Variations in the network latency. , even producing that they arrive out of order. For this reason, the splitter enumerates every chunk of stream with a 16-bit counter, producing a packet with the format:

    IMS_packet = [chunk_number, chunk]

    Peers store the received IMS_packets in a buffer whose size b can be different in each peer depending on the maximun tolerated delay.

  4. Relation between the buffer size B and chunk number upper bound M: Due to practical reasons, the upper bound for the chunk number should be a power of two. In order to minimize the probability of receiving two or more chunks with the same number (remember that chunks can be reordered in transit), M must be a multiple of B, i.e.:
    M = pB, (1)

    where p .