If i host Mumble on the internet, but have clients on internal network - is there any way to use UDP at all or will it be forced to be TCP because its running on the internet ?
I would assume that since the server is on the internet, client would talk to it over TCP always and i cant get my head around how/where it can convert to UDP if the server is not on the internal network ?
UDP is used to transmit voice packets, if available. Otherwise it falls back to TCP, which is always used for control packets.
Right now the same port number (64738 by default) is used for both TCP and UDP.
Assuming you have a firewall that blocks incoming connections from the internet, you have to explicitly allow access to the port the server binds to.
TCP is mandatory, but it's strongly recommended to allow UDP as well, when possible.
@davidebeatrici but lets say i have a server hosted on the internet and not internally on the network - does this mean that everything then has to be TCP ? that i can only have UDP transport if the server is in house ?
As long as the server that is hosted on the internet is accessible through UDP, the client will use it.
@spexocta, unless a router / firewall filters the relevant UDP packets, UDP connections should work fine for the clients. Just click on the i icon (right beneath the earth icon) and look at the UDP stats.
Both TCP and UDP are absolutely common internet transmission protocols.
If your understanding is that TCP is for the open/external internet while UDP is only used within a closed off network that, in principle, that is wrong.
There are only limits imposed if the internal network administration limits it themselves. So if this is a (potential) issue for you you will have to find out from your network administration what is and is not restricted, and if possible and necessary how to ignore it for Mumble.
@Kissaki yes it might be where im having a hard time understanding it as i thought all that went over the internet had to be TCP and that Mumble server if it was not inhouse then the clients had to use TCP.
this might get off topic but technically how on earth is UDP packets sent over the internet ? isnt it super unrealiable vs sending it over an internal network ?
For details have a look at something like https://www.howtogeek.com/190014/htg-explains-what-is-the-difference-between-tcp-and-udp/ (or any of the many other online resources that deal with TCP vs UDP).
In short it all comes down to the following: TCP and UDP are sent over the internet in the exact same way. The interesting part happens at the sending and receiving end of things.
While UDP is a "best-effort" protocol (just as the internet protocol btw), meaning that it doesn't care about packets actually reaching their destination, the TCP protocol has some mechanics in place that make sure that each and every message sent over TCP will actually arrive (intact) at the receiving end.
As this checking requires quite a bit of overhead, TCP is quite a bit slower than UDP. Therefore UDP is usually used for real_time applications that can cope with a certain amount of packet loss (e.g. audio transmissions) whereas TCP is used everywhere where it is essential that the packets arrive as intended (and in the correct order).
Thanks alot guys for the additional information i will close the issue and think i got it answered and learned something new :)
Most helpful comment
Thanks alot guys for the additional information i will close the issue and think i got it answered and learned something new :)