1

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

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

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

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

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

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

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

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

1 ответ1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .