Viber использует TCP для VoIP?

4234
comfreak

В настоящее время я нахожусь в гостевом WiFi, где все порты, кроме тех, которые предназначены для серфинга в Интернете (80, 443, 8080) и почтовых сообщений (25, 110, 143, 465, 587, 993, 995), заблокированы (3128, похоже, тоже работает ).

Я пытался сделать вызов FaceTime на своем iPhone, но это не сработало, что заставило меня предположить, что UDP тоже заблокирован. Тем не менее, приложение Viber смогло успешно подключиться и начать видеозвонок с достойным качеством / задержкой.

Мой вопрос сейчас, Viber использует TCP для VoIP или как это возможно?

0
Более чем вероятно; Да; Скорее всего, FaceTime также использует его, но на заблокированном порту. Viber скорее всего просто использует 80/443. Skype также использует TCP, но его протокол подчеркивания не опубликован Ramhound 7 лет назад 0
Ваш тест "заблокированных портов" действительно включал UDP? Если вы тестировали только порты TCP, это ничего не говорит о доступности UDP, так как два протокола имеют свои собственные назначения портов и могут быть отфильтрованы независимо. (Некоторые брандмауэры предлагают макрос «TCP / UDP», но это все, что есть.) grawity 7 лет назад 1
@ grawity Это хороший момент. Я не нашел тестовый сервер для тестирования на UDP, поэтому мой тест был ограничен TCP (через portquiz.net) comfreak 7 лет назад 0
@Ramhound Посмотрите мой ответ для портов, которые фактически требуются Viber (больше, чем просто 80/443). DavidPostill 7 лет назад 0

1 ответ на вопрос

0
DavidPostill

Viber использует TCP для VoIP?

Viber использует UPD, а не TCP для трафика VoIP. TCP используется для обмена текстовыми сообщениями.

Viber использует RTPSRTP при шифровании). RTP в основном реализован на UDP, так как это протокол реального времени.

Поток RTP аудио- или аудио- / видеовызова преобразуется в SRTP и шифруется с помощью алгоритма Salsa20 с использованием ключа сеанса.

Обзор исходного кода Viber

Использование 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

Другими словами, если UDP заблокирован, вызов не должен быть возможным, и поэтому UDP должен работать в гостевой сети на портах, которые использует Viber? comfreak 7 лет назад 0
Я думаю, что это правильно. Смотрите обновленный ответ со списком необходимых портов (для этих портов требуются UDP и TCP). DavidPostill 7 лет назад 0
Но мой успешный вызов также означает, что Viber требует только 80 или 443 (или оба) для работы (по крайней мере для стороны TCP). Из того, что я прочитал на связанных веб-сайтах, кажется, что RTP * обычно * реализован на UDP, но это не исключает, что Viber не имеет службы резервного копирования на TCP. Я бы проверил порты UDP, но я не знаю ни одной цели для проверки с помощью nmap. comfreak 7 лет назад 0
Попробуйте [Тест скорости UDP] (http://testmy.net/hoststats/udp) - это должно сказать вам, если UDP заблокирован :) DavidPostill 7 лет назад 0
uPNP может быть открыт, что позволяет использовать некоторые порты UDP. LPChip 7 лет назад 1
@comfreak Ответ обновлен новой информацией. Похоже, что UDP используется для трафика VoIP и TCP для обмена текстовыми сообщениями. DavidPostill 7 лет назад 0
@comfreak Вам нужна дополнительная помощь? Если это было полезно для вас и ответило на ваш вопрос, пожалуйста, не забудьте подтвердить / принять его. DavidPostill 7 лет назад 0
У меня не работает тест скорости UDP, веб-сайт загружается не полностью. Но в то же время я попытался запустить перехват Wireshark и попытался подключиться к моей IPsec VPN (которая не работает), и я получил ICMP-ответ, говорящий мне: «Место назначения недоступно (связь с административной фильтрацией)». То же самое происходит более очевидно, когда я пытаюсь запустить traceroute, где шлюз на гостевом WiFi-маршрутизаторе сообщает мне ту же ошибку «! X». Поэтому я предполагаю, что прямой UDP не работает. Порт uPNP маршрутизатора, похоже, тоже фильтруется. comfreak 7 лет назад 0
@comfreak От какой ОС вы нашли трассировку? Windows не использует UDP для traceroute. Он использует ICMP (Linux использует UDP). DavidPostill 7 лет назад 0
@DavidPostill Я использовал macOS, который использует UDP. Если я тестирую с ICMP-пакетами, traceroute работает. comfreak 7 лет назад 0
@comfreak Тогда у меня нет идей. Я предлагаю вам спросить Viber для окончательного ответа. DavidPostill 7 лет назад 0