Когда вы открываете сокет, вам нужно обратиться к порту системы назначения и открыть сопряженный порт прослушивания в вашей собственной системе, чтобы получить ответ. Вы должны отправить целевой системе свой порт прослушивания.
Наличие нескольких систем, использующих один и тот же модем
Когда вы запускаете веб-браузер и переходите на www.google.com:80, ваш браузер получает/ищет свободный несистемный сопряженный порт из системы для прослушивания. Допустим, сопряженный порт — 10000. Порт прослушивателя предназначен для получения потока http обратно от Google.
Тогда ваш ребенок, сидящий рядом с вами, случайно также просматривает www.google.com:80 и его / ее сеанс Google на игровой станции или xbox - что бы то ни было, также случайно назначается сопряженный порт 10000.
Вы оба сидите за кабельным модемом, а за кабельным модемом находится ваш беспроводной маршрутизатор. И обе ваши системы находятся за беспроводным маршрутизатором — все они расположены в этой последовательности с точки зрения топологии сети.
Чтобы предотвратить конфликт адресов портов на маршрутизаторе/модеме
Допустим, DHCP вашей кабельной компании назначает вашему модему IP4-адрес 72.72.72.72. Но DHCP вашего беспроводного маршрутизатора назначает 192.168.0.10 вашей системе и 192.168.0.11 системе вашего ребенка.
Когда фрейм, несущий информацию о ваших портах прослушивания, проходит через маршрутизатор NAT, он транслирует либо один, либо оба порта прослушивания. Допустим, порт 15000 для вашей страницы и порт 16000 для страницы вашего ребенка.
Затем ваш беспроводной маршрутизатор отправляет ваши запросы на сервер Google с адреса 72.72.72.72:15000 и 72.72.72.72:16000.
Затем сервер Google отвечает по отдельности на 72.72.72.72:15000 и 72.72.72.72:16000, и когда ваш беспроводной маршрутизатор получает ответ, он обращается к сохраненному сопоставлению и преобразует 72.72.72.72:15000 в 192.168.0.10:10000 в достичь вашей системы, но преобразует 72.72.72.72:16000 в 192.168.0.11:10000 для доступа к системе вашего ребенка.
Запуск веб-/игровых/ftp-серверов и т. д.
Но что, если в вашей системе работает веб-сервер или ftp-сервер. Что, если у вас есть две системы и обе имеют веб-сервер, и оба веб-сервера прослушивают порт 80?
Допустим, локальные IP-адреса, зарегистрированные/назначенные вашим беспроводным маршрутизатором вашей первой системы веб-сервера, — 192.168.0.30, а ваша вторая система веб-сервера — 192.168.0.40.
Беспроводной маршрутизатор будет иметь веб-страницу конфигурации, обычно по умолчанию 192.168.0.1:80, если вы не изменили ее. На странице будет вкладка, где вы можете определить/зарезервировать сопоставления портов приложений.
Вы можете зарегистрироваться на своем беспроводном маршрутизаторе, чтобы зарезервировать сопоставление
192.168.0.30:80 => outgoing port 8080
192.168.0.40:80 => outgoing port 8088
Чтобы вам приходилось звонить своим друзьям, ваши веб-серверы/игровые серверы адресуются через 72.72.72.72:8080 и 72.72.72.72:8088 соответственно, где беспроводной маршрутизатор не позволяет своим портам 8080 и 8088 использовать динамический NAT.
Конечно, 72.72.72.72 хорош только до того, как ваш интернет-провайдер DHCP решит обновить ip4-адрес вашего модема, скажем, 72.72.90.200. После этого вам нужно будет позвонить или написать своим друзьям и сказать: «Привет, адреса серверов изменились на 72.72.90.200:8080 и 72.72.90.200:8088 соответственно. Или вы можете подписаться на службу динамического DNS (ddns), чтобы использовать именованный домен, где службе ddns потребуется установить в вашей системе простую утилиту пульса, чтобы помочь им отслеживать изменение адреса. Трансляция DDNS — это отдельная проблема/стратегия.
модемы NAT
Более новые контракты с провайдерами предоставляют вам модем с NAT. Если это так, вам нужно отключить либо на модеме, либо на беспроводном маршрутизаторе. Вы не должны использовать оба - какой смысл в переводе дважды, потому что NAT просто предотвращает конфликт адресов. Когда вы отключаете NAT на своем беспроводном маршрутизаторе, он может работать как коммутатор-концентратор, а не как маршрутизатор, поэтому вы можете подключить его к модему, используя один из его разъемов LAN, а не через разъем WAN.
person
Blessed Geek
schedule
31.12.2009