Two speakers discuss what to do when WebRTC must run over TCP (e.g., when UDP is unavailable). They explain that TCP is lossless but causes poor real-time performance, so WebRTC should reduce or disable redundant retransmission mechanisms, lower/cap bitrate when using TURN over TCP, or in some deployments simply refuse TCP calls (common in gaming/call-center setups). The distinction between end-to-end TCP and TURN-over-UDP at the server is highlighted as important for different mitigation strategies.
Chapters
What to do when WebRTC runs over TCP. Let's remember we don't want our calls to run on tcp, but sometimes we can't help it. That's the only way for us to actually make that call.
Yes. I mean, WebRC only does TCP when it has to. So you're typically in a situation where WebGC over UDP doesn't work. The question then is really, okay, can we tune it to be a work not quite as terrible as it does over tcp? So remember, TCP is lossless, which means that we come to the question, what happens if you get packet loss? You can't have that on the TCP lack of the call. The question is really, then, okay, but do you use TCP all the way to the other endpoint to a media server, or are you running over turn tcp? And the answer is different in those cases.
Okay, but the intent is to. Let's try to remove or reduce or disable some of the retransmission mechanisms and for the recognition mechanisms inside WebRTC. Because TCP does that for us. Not well, but it does that and we don't want to interfere with that.
Yes, yes. But if we're talking about turn, you always need to make sure that when it goes to UDP at the end of turn server stuff still works.
Yep.
It's complicated. And one of the things that you can do easily is to say, oh, we're using a turn TCP server, let's reduce the bitrate, let's caps the bitrates at a different value than we do for udp.
Yep. There is another thing that you can do and that's not use tcp, which means I'm not going to do these calls if there is tcp. And that's what a lot of call centers are doing today, your gaming platforms, because they don't want you to go through that route and they assume or prefer you go and troubleshoot and figure out how to use UDP instead in your network.
Yes, yes. All the game streaming services are like, oh, if you use tcp, your performance is going to suck so much. Just we don't support it because that way they have less support inquiries.