There are four components in our implementation: the server, the proxy/client, an underlying reliable multicast protocol, and an underlying HTTP over UDP control protocol. The basic functionality of each one of these components is explained in detail in this section.