It makes a little more sense to run streaming audio over UDP rather than TCP because it has less housekeeping overhead (Laureate, 2010) and when that lack of functionality becomes a liability, such as in incidents packet loss or congestion, the difference will probably not be noticeable. UDP allows more raw data per stream since it doesn't use SYNs, ACKs or any other reliability information. There may be circumstances under which that overhead is negligible due to sufficient bandwidth or where it is valuable because a link is unreliable or congested, but in general UDP is somewhat superior for streaming.

RealNetworks (2010) and Microsoft (2010) players can both use either TCP or UDP transport. Real notes that UDP “offers better sound quality than TCP”. We can be fairly certain that this is a generalization and that there are circumstances under which TCP and UDP sound qualities are indistinguishable or even those under which TCP is superior, but given Real's long and extensive experience in the field we can also be certain that their summation is accurate. Microsoft is a little less forthcoming but as they offer both transports it is clear that TCP's superior reliability and congestion control do not automatically make it the better method for streaming.

UDP does provide error checking (Laureate 2010). It does so very simply and efficiently however, leaving actual error control up to the application. So corruption in a stream can be corrected or compensated for to some extent. This is probably adequate for most cases and the attendant efficiency will usually ensure that UDP is the better performer. I note with interest that RealSystem does prefer TCP for the actual server connection however. This seems a bit at odds with their own recommendations. But Microsoft explains “When using UDP streams, the client first makes a connection to the Windows Media server using TCP” then “the client and the server choose the UDP port that will be used by the server”. So when we see this sort of thing in a multimedia streaming client



it really makes perfect sense. TCP is the appropriate transport for setting up a connection, with its guarantees of delivery and congestion control and then UDP can be used for the actual streaming where occasional packet loss isn't critical. It can then make most efficient use of the available bandwidth.


Laureate Online Education (2010) Computer Communications and Networks Lecture Notes – Week 3. Transport Layer [Online]. Available from: https://elearning.uol.ohecampus.com/bbcswebdav/xid-262621_4 (Accessed: 24 October, 2010)


Microsoft (2010) Firewalls and ports used by Windows Media Services [Online]. Available from: http://support.microsoft.com/kb/189416 (Accessed: 23 October, 2010)


Real Networks (2010) RealNetworks RealSystems Firewall Support [Online]. Available from: http://service.real.com/firewall/configRP7.html#tcp (Accessed: 23 October, 2010)