RTP, медиапакеты за брандмауэром и за Nat усложняют его исправление, теперь я пытаюсь пробить дыру в UDP, чтобы добраться до нее - PullRequest
0 голосов
/ 18 апреля 2011

Я пытаюсь создать одноранговое аудио / видео приложение, но за NAT и за брандмауэром происходит сбой моего приложения, я выяснил, что Skype делает это, а другое приложение также использует другой подход, затем я решил использовать этот подходчто позволит моему приложению работать за офисом / домом NAT.

UDP Перфорация отверстий:

Пока пробовал hping2 и netcat.Сервер, pc1 за nat / firewall и pc2 за nat / firewall

local/1$ nc -u 14141 -l  # ME, step 1
remoteServer$ echo "hello" | nc -p 53 -u xx.23.xx.xx 14141  # My server, to say hello 
nc: Write error: No route to host    
local/2$ hping2 -c 1 -2 -s 14141 -p 53 xx.21.xx.xx # Me from second terminal making a hole
remoteServer$ echo "hello" | nc -p 53 -u xx.23.xx.xx 14141 # My server again say hell
local/1 $ nc -u 14141 -l # ME, step 1 was running and it received "hello" now
 hello

Но локальный / 1 как получить привет, без hping2 или что такое hping2?Кто-нибудь может подсказать?Или как я могу просто сделать так, чтобы A (локальный) B (сервер) C (мой друг) общался с одноранговым узлом 2, используя этот метод?

Полезные ссылки: http://www.masquerade.cz/en/nat-tunel-metodou-udp-hole-punching-v-jazyce-java/

Последующие действия: UPnP - лучшее решение?Но он ищет следующий переход, поэтому в этом случае он потерпит неудачу для этой дорожной карты (если я не ошибаюсь):

Me (за NAT) -> MyOffice (с маршрутизатором, 50 ноутбуков) -> ISP1 -> ISP2 -> FriendOffice (маршрутизатор, 90 ноутбуков) -> Друг (за NAT)

1 Ответ

1 голос
/ 18 апреля 2011

Что делают многие p2p-приложения, так это подключаются к ближайшему маршрутизатору и просят их открыть порт для себя.Читайте о протоколах UPnP и NAT-PMP.

...