Сбой маршрутизатора NAT и P2P

Сбой маршрутизатора NAT и P2P

Итак..у меня был спор с моим учителем по сетям. Он сказал, что некоторые люди жалуются на сбои маршрутизатора из-за большого количества записей в таблицах NAT на маршрутизаторе.

Я не понял и спросил: «Если приложение использует тот же порт, почему маршрутизатор зависает? У него должна быть только одна запись (pc-ip,pcport;public-ip,public-port)». А он сказал: «Неважно, что он использует тот же порт».

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

Итак, вопросы:

  1. Как создаются записи nat? На основе пакетов или соединений? Я имею в виду: предположим, я отправляю пакет udp.. маршрутизатор создает запись?

  2. Когда я запускаю TCP-соединение, создает ли маршрутизатор постоянную запись NAT до тех пор, пока соединение не будет закрыто?

  3. Прав ли был мой учитель? Таблица NAT может перегрузиться, если предположить, что приложение на том же порту отправляет пакеты?

Заранее спасибо.

решение1

  1. На каждое соединение (или на каждый поток UDP)
  2. Да
  3. Да. Например, ваш веб-браузер на одном внутреннем ПК может иметь несколько одновременных TCP-подключений, открытых одновременно с каждым из нескольких различных внешних веб-серверов. Для каждого соединения исходный порт будет отличаться (выбираться случайным образом), но порт назначения и IP-адрес назначения могут быть идентичны для нескольких соединений. Маршрутизатор, разработанный для обслуживания потребностей двух или трех компьютеров дома, может не справиться с количеством одновременных подключений, необходимых (например) в школе с сотнями очень загруженных компьютеров. Маршрутизаторы должны быть рассчитаны на ожидаемую нагрузку.

Если вы посмотрите например исходного кода C для TCP-клиентаописано вКак, вы увидите, что API «сокетов» не предоставляет никаких средств для указания клиентом, инициирующим соединение, исходного порта.

Связанный контент