NAT
Last updated
Last updated
Сервер слушает один порт входящий. Ограничения по соединениям, которые сервер может установить, упирается в память для файловых дескрипторов и таблицы состояний TCP-соединениий.
Клиент каждое соединение keep-alive устанавливает за счет нового порта. Следовательно, количество соединений для клиента ограничены количеством портов.
Преодолеть эти ограничения можно с помощью NAT:
За счет заведения кучи IP адресов и маппинг их в локальные адреса (тогда суммарно получается соединений — 65535 портов * кол-во адресов на NAT).
За счет технологии PAT — Port Address Translation — на NAT создают таблицу соответствия внешнего IP/Port NAT'a и внутренних адресов и портов. В этом случае каждый клиент внутри сети может выходить через один хост/порт с другим клиентом. И это все умножается на количество таких интерфейсов на NAT
В целом для NAT ограничение только в размерах таблицы внутренней
Для железок энтерпрайзных держать 0.25 — 0.5 млн соединений уже очень тяжело без просадки скорости.
Тут спасает защита от DDoS