Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Как работает Nat?   Найти похожие ветки 

 
Fin ©   (2005-08-09 11:16) [0]

Столкнулся с таким вопросом. В принципе по вопросу более менее понятно, ретранслируются запросы, больше интересует такая ситуация допустим две машины в сети посылают запрос к одному и тому же ресурсу в  интернете через nat то как nat определит кому из них вернулся ответ?
З.Ы. Есть мысль что по конкретному порту, но не уверен впервые более глубже сталкнулся с nat.


 
Иксик ©   (2005-08-09 11:28) [1]


>  Как работает Nat?

Есть три варианта:
1. Статический: каждому внутреннему ip-адресу nat ставит в соответствие внешний и подставляет его в запрос при отправке за пределы сети, при получении ответа делает обратную подстановку. В этом случае экономии адресов не происходит, единственный смысл этого - безопасность.
2. Динамический: аналогично первому, только количество внешних и внутренних адресов неодинаково и внешние адреса выдаются из определенного пула. Таким образом можно использовать меньшее количество адресов, если все компьютеры одновременно не ринутся за пределы сети.
3. Port Address Translation: самый распространенный вариант. Используется один ip-address, только посылаются запросы с разных портов, напр. для первого компьютера с n-го порта, для второго - с n+1-ого и т.д. Так и отличает - по портам.


 
Иксик ©   (2005-08-09 11:28) [2]

Упрощенно, но верно :)


 
Fin ©   (2005-08-09 11:33) [3]

так понимаю  конкретно по моему вопросу 1 и 2 не подходят?


 
Иксик ©   (2005-08-09 11:49) [4]

Почему не подходят, вполне могут подойти - в первых двух случаях у nat-сервера или у рутера (смотря как nat реализуется) будет таблица соответствия внешних адресов внутренним и когда придут ответы на разные внешние адреса nat их сопоставит разным внутренним.
Другое дело что первые два случая очень редки, в основном когда говорят о nat, имеют ввиду pat - port address translation, т.е. 3-ий случай.


 
Alex Konshin ©   (2005-08-09 12:26) [5]

Если речь идет о TCP, то учти, что порт отправителя и порт получателя никак не связаны. Упрощенно, когда ты устанавливаешь TCP соединение на какой-то хост и, допустим, порт 80, то назначаются два порта: твой порт и порт на том конце, и оба они не будут равны 80. Поэтому различить разные соединения не составляет никакого труда.


 
Иксик ©   (2005-08-09 13:04) [6]


> Если речь идет о TCP, то учти, что порт отправителя и порт
> получателя никак не связаны.

Иначе pat был бы невозможен.


 
Holy ©   (2005-08-09 13:04) [7]


> Alex Konshin ©   (09.08.05 12:26) [5]
> Если речь идет о TCP, то учти, что порт отправителя и порт
> получателя никак не связаны. Упрощенно, когда ты устанавливаешь
> TCP соединение на какой-то хост и, допустим, порт 80, то
> назначаются два порта: твой порт и порт на том конце, и
> оба они не будут равны 80. Поэтому различить разные соединения
> не составляет никакого труда.


Поясните мысль. Просто или я что-то не знаю или вы что-то путаете. :(

Вообще при нате (pate) строится таблица в которой запросу из внутренней сети к внешней ставится в соответствие запрос от машины, реализующей нат, к внешнему ресурсу.
Когда приходит ответ снаружи, то по этой таблице определяется кому его отправить во внутренней сети.


 
Alex Konshin ©   (2005-08-09 13:09) [8]

Я не про NAT, а вообще про TCP соединение.
NAT же просто организует два соединения в обе стороны: к серверу и к клиенту. Я просто разъяснил, почему не бывает путаницы.


 
Иксик ©   (2005-08-09 13:24) [9]


> Alex Konshin ©   (09.08.05 13:09) [8]


> Я просто разъяснил, почему не бывает путаницы.

И правильно, про этот момент с разными портами не сразу понятно бывает.



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
3-1122437967
Qartzer
2005-07-27 08:19
2005.09.04
большая база


1-1123692689
rolex
2005-08-10 20:51
2005.09.04
Какая маскимальная длина у TidTCPServer в комманде WriteLn?


11-1106211124
sldragon
2005-01-20 11:52
2005.09.04
Height в CombBox


1-1123756035
Bios_
2005-08-11 14:27
2005.09.04
Запись процедуры или функции в файл.


14-1123700118
Andy BitOff
2005-08-10 22:55
2005.09.04
Как правильно перевести на ангельский?