Protocol issues
Designing a network protocol to support streaming media raises many issues.
Datagram protocols, such as the User Datagram Protocol (UDP), send the media stream as a series of small packets. This is simple and efficient; however, packets are liable to be lost or corrupted in transit. Depending on the protocol and the extent of the loss, the client may be able to recover the data with error correction techniques, may interpolate over the missing data, or may suffer a dropout.
The Real-time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP) and the Real-time Transport Control Protocol (RTCP) were specifically designed to stream media over networks. The latter two are built on top of UDP.
Reliable protocols, such as the Transmission Control Protocol (TCP), guarantee correct delivery of each bit in the media stream. However, they accomplish this with a system of timeouts and retries, which makes them more complex to implement. It also means that when there is data loss on the network, the media stream stalls while the protocol handlers detect the loss and retransmit the missing data. Clients can minimize the effect of this by buffering data for display.
Another issue is that firewalls are more likely to block UDP-based protocols than TCP-based protocols.
Unicast protocols send a separate copy of the media stream from the server to each client. This is simple, but can lead to massive duplication of data on the network. Multicast protocols undertake to send only one copy of the media stream over any given network connection, i.e. along the path between any two network routers. This is a more efficient use of network capacity, but it is much more complex to implement.
Furthermore, the most prominent of multicast protocols, IP Multicast, must be implemented in the network routers, as well as the servers. As of 2005, most routers on the Internet however do not support IP Multicast, and many firewalls block it. IP Multicast is most practical for organizations that run their own networks, such as universities and corporations. Since they buy their own routers and run their own network links, they can decide if the cost and effort of supporting IP Multicast is justified by the resulting bandwidth savings.
Peer-to-peer (P2P) protocols arrange for media to be sent from clients that already have them to clients that do not. This prevents the server and its network connections from becoming a bottleneck. However, it raises technical, performance, quality, business, and legal issues.
Newer camcorders stream video to a computer over a FireWire connection. This uses a system of time-based reservations to ensure throughput, and can be received by multiple clients at once.
Widespread deployment of streaming media raises scaling and Quality of Service issues. Testing service deployments is a significant problem. Vendors offer equipment to test streaming services across a number of test domains including Scalability, Quality of Service, Quality of experience, and protocol conformance.