Reputation: 33
From what I've searched online DASH seems to use TCP and WebRTC seems to use UDP
Other than UDP being quicker than TCP I can't really think of a good reason why does WebRTC chooses to use UDP over TCP. From what I understand DASH uses TCP because reliability (aka pkt sequences) outweighs speed when it comes to video streaming.
Could anyone tell me a few reasons why they use different transport protocols?
Upvotes: 0
Views: 2047
Reputation: 123541
Other than UDP being quicker than TCP ...
It's not. Packets don't magically travel faster if send with UDP nor does it inherently make better use of the bandwidth. In contrary - TCP tries to optimize for low overhead while UDP does not.
I can't really think of a good reason why does WebRTC chooses to use UDP over TCP.
WebRTC is for real time communication, i.e. audio, video data where it is essential that these data arrive with low latency. This is for example relevant for bidirectional voice and audio calls, where too much delay significantly impacts the quality of the call. Since retransmission of lost packets would cause too much delay, it is explicitly acceptable that packets are lost and the audio and video codecs are designed to deal with such packet loss, which adds some overhead.
DASH (Dynamic Adaptive Streaming over HTTP) instead has not that heavy real time requirements, since the use case is not bidirectional communication. This allows DASH to rely on the more robust TCP protocol which cares itself about retranmission of lost packets. Since DASH can assume that no data gets lost it also can use more efficient codecs and thus make more efficient use of bandwidth.
Upvotes: 2