UDP Hole Punching невозможен с мобильным провайдером

на самом деле я кодирую приложение для Android, которое получает изображения веб-камеры, подключенной к ПК. Чтобы получить больше кадров в секунду, я использую протокол udp вместо tcp. Идея в том, что комп отправляет картинки на ip и порт телефона. Но у провайдера телефона разные общедоступные порты. поэтому я не могу обратиться к телефону напрямую. Вот почему я попытался решить проблему с помощью пробивки отверстий udp, но это не сработало. Когда мой телефон отправляет один пакет на компьютер, компьютер получает общедоступный IP-адрес и порт телефона. это происходит каждую секунду, чтобы сохранить соединение открытым. Затем сервер отправляет кадры веб-камеры на этот ip и порт так быстро, как только может. но телефон получает всего 10 -15 снимков за 1 -2 секунды. после этого провайдер, кажется, фильтрует каждый последующий пакет или что-то в этом роде, потому что телефон больше не получает никаких пакетов.

Теперь мой вопрос: :что происходит (или что делает провайдер )и как я могу решить эту проблему?Протокол TCP работает, но слишком медленный для потоковой передачи из-за слишком больших накладных расходов и исправлений ошибок.

7
задан Dano 5 August 2012 в 20:18
поделиться