TelegramMessenger / tgcalls

GNU Lesser General Public License v3.0
170 stars 106 forks source link

Are you using Google Congestion Control? #16

Open laurenzfg opened 2 years ago

laurenzfg commented 2 years ago

Hello! I am investigating the congestion control / bitrate selection used for Telegram video calls as part of my academic studies. In the repository DrKLO/Telegram I find references to Google Congestion Control, SCReAM and a custom libtgvoip implementation. It is not clear to me which implementation is in use during a call between Android users. Your support pointed me this is the most current repository. Reading MediaManager.cpp and finding references to transport-cc I suspect you configure GCC with a maximum BW of 2MBit.

But I ran more then 10.000 calls in my study testbed comparing Signal, Jitsi and Telegram. The two other apps definitely implement GCC and behave in lockstep. Your app behaves differently. Moreover, Telegram uses just 700kbit tops, albeit I read a maximum of 2Mbit from the code.

I have performed these measurements with Telegram 8.4.3.2531.

Can you tell me which Congestion Control Telegram is using?

bwprofiles.pdf lencdf.pdf iptcdf.pdf callsimplex_cubic_fifo.pdf

laurenzfg commented 2 years ago

I can give you more plots / explain the plots if you want. For now, they should just illustrate that I behave another behavior then with Jitsi / Signal when measuring Telegram calls.