Dear Professor Phil:
What are the key differences between TCP and UDP video? My IT folks seem to frown on UDP applications?
Abigail, Newark, DE
- The difference between TCP and UDP video is based on the characteristics of the two protocols. TCP (transmission control protocol) is designed to handle the essential tasks for packet based transmission without involving the application. This has advantages and disadvantages. While TCP automatically handles flow control, acknowledgement of delivery, and retransmission of missed or lost data, it is difficult for an application to manage these jobs. For example, if a client player is requiring too much processor time to play out a video, the player might not be able to change the characteristics of the stream it is receiving, once play out has started. On the other hand, if packets fail to arrive, TCP will insure retransmission without the involvement of the server software or the client player software.
UDP (user datagram protocol) makes no provision for flow control, acknowledgement of delivery, or retransmission. These tasks are left for the application software to handle. Developers choose UDP when they want to design these responsibilities into the application. For example, if a server is feeding a video at 200 packets/second and detects network congestion, it can reduce the transmission rate to 100 packets/second, while lowering the resolution or picture frame rate. When the congestion clears, it can increase the rate. Both of these can be done without the involvement of the underlying UDP protocol.
IT managers and engineers tend to dislike UDP because many early security vulnerabilities were based on UDP based malware. However, today network defenses are sophisticated enough to handle these attacks and the fear may be unfounded. You will probably notice a tendency for developers from traditionally data orient companies such as Microsoft and Adobe to use TCP video. Whereas, developers from companies that historically used non-packet analog or digital voice or video, such as Comcast and Verizon, seem to prefer UDP based video.