Я ищу предложения или решение для однорангового обхода NAT в .Net.Скажем, у меня есть приложение чата, и два клиента должны подключиться, но оба находятся за NAT:
Для домашних сценариев uPNP, вероятно, в порядке, так как задействован только кабельный модем или потребительский маршрутизатор.Но как насчет корпоративных сред, где uPNP невозможен?
Я знаком с перфорацией UDP, которая подходит для рукопожатия, но я бы не стал полагаться на нее для передачи реальных данных приложения.
Я также изучал IPv6 и Teredo, но я не уверен, что каждый клиент будет иметь доступность IPv6, и это немного сбивает с толку всех требований Teredo (серверы, реле и т. Д.)
Сейчас 2011 год, и клиенты IM / Chat существуют уже десять лет, а потом и некоторые, поэтому я должен поверить, что эта проблема решалась много раз.Кто-нибудь может порекомендовать лучшие практики в этой области?Заранее спасибо!