Antonio_99RUS
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору TCPIP Цитата: Кроме того, это не объясняет того, что говорят: скорость снизится. Если таблица замещается, то вся маршрутизация на локальный адрес летит. | Если вкратце (и упрощённо!), то NAT работает следующим образом: от клиента (с серым адресом) идёт коннект на некий хост и порт. Роутер запоминает два IP-адреса и два порта (источник и цель), подменяет исходящие значения своим IP и неким портом, запоминает это, отправляет пакет в мир. По приходу ответного пакета смотрит себе в таблицу, находит соотсветствующую запись, исправляет заголовок пакета так, чтобы он считался ответным именно на запрос клиента, и передаёт пакет клиенту на его серый адрес. Как мы видим, на каждый запрос роутер должен хранить как минимум два IP-адреса и три порта (плюс, наверное, timestamp и ещё что-нибудь). У модема обычно 16Мб памяти (новые д-линки имеют вообще 8), часть отъедается операционной системой под свои нужды. Остаётся не так уж и много памяти под таблицу. И вот, когда память кончилась, роутер должен одну из записей удалить, чтобы освободить место под новую. Как данный алгоритм реализован -- зависит от авторов прошивки. Он может удалить самую старую, может самую "неиспользуемую", может ещё по какому-то признаку. И может получиться так, что удалилась запись, ответный пакет на которую ещё не пришёл, но мы его ждём. Понятно, что этот пакет будет потерян, ибо роутер уже не знает, куда его передавать. Вот и получается снижение скорости из-за перепосылки пакетов (клиент вынужден отправлять повторные запросы из-за того, что не получает ответов). И что самое поганое, этот трафик (потерянные пакеты) учитывается провайдером (пакет-то доставлен). |