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