Viber использует TCP для VoIP?
В настоящее время я нахожусь в гостевом WiFi, где все порты, кроме тех, которые предназначены для серфинга в Интернете (80, 443, 8080) и почтовых сообщений (25, 110, 143, 465, 587, 993, 995), заблокированы (3128, похоже, тоже работает).
Я пытался разместить вызов FaceTime на своем iPhone, но это не сработало, что заставило меня предположить, что UDP тоже заблокирован. Тем не менее, приложение Viber смогло успешно подключиться и начать видеозвонок с достойным качеством / задержкой.
Мой вопрос сейчас, Viber использует TCP для VoIP или как это возможно?
1 ответ
Viber использует TCP для VoIP?
Viber использует UPD, а не TCP для трафика VoIP. TCP используется для обмена текстовыми сообщениями.
Viber использует RTP (и SRTP при шифровании). RTP в основном реализован на UDP, поскольку это протокол реального времени.
Поток RTP аудио- или аудио- / видеовызова преобразуется в SRTP и шифруется с помощью алгоритма Salsa20 с использованием ключа сеанса.
Использование TCP и UDP подтверждается в Viber Communication Security для расшифровки зашифрованного содержимого, которое использовалось tcpdump
чтобы генерировать .pcap
файлы для анализа трафика данных Viber:
Это казалось хорошей отправной точкой для получения некоторых результатов, поэтому мы отфильтровали данные, чтобы получить односторонний голосовой поток, используя следующую команду:
tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243
Здесь мы выбираем только пакеты UDP с портом назначения для сервиса Viber, поэтому он только инициирует голосовой трафик.
...
Помимо голосовых вызовов, которые Viber позволяет пользователю делать, он также позволяет им отправлять и получать текстовые сообщения. Эта функциональность использует некоторый специализированный протокол на основе tcp для подключения к серверу и обмена сообщениями. Декодирование этого потока не было приоритетом в этом проекте, и у нас не было времени исследовать этот вопрос.
Какие порты использует Viber?
Чтобы Viber Desktop мог работать на вашем компьютере, должны быть открыты следующие порты для всех адресов как для TCP, так и для UDP:
- 5242
- 4244
- 5243
- 9785
- 80
- 443
Исходные порты открытия для Viber Desktop