use*_*146 17 ip networking routing nat
如果我有两台内部计算机通过NAT路由器连接到同一个外部IP地址,那么路由器如何才能将流量传输到正确的内部计算机?据我所知,NAT将传入的数据包转发到最近将传出数据包发送到[传入数据包]发送方IP地址的计算机.由于两台计算机都发送到同一个地址,路由器是否将数据包转发到两者?如果是这种情况,客户端软件是否有责任确定哪些数据包是相关的?
两台计算机是否都试图连接到同一个端口?
Ble*_*eek 32
打开套接字时,需要寻址目标系统的端口并在自己的系统上打开共轭侦听端口以接收任何响应.您必须将目标系统发送到您的侦听端口.
有多个系统使用相同的调制解调器
当您启动网络浏览器并访问www.google.com:80时,您的浏览器会从系统中获取/搜索一个免费的非系统共轭端口以供收听.让我们说,共轭端口是10000.侦听器端口用于从谷歌接收http流.
然后,你的孩子坐在你旁边也偶然浏览www.google.com:80和他/她的游戏站或xbox的google会话 - 偶然也会分配共轭端口10000.
你们两个都坐在电缆调制解调器后面,电缆调制解调器后面是你的无线路由器.而且你的两个系统都在无线路由器的后面 - 所有这些都依赖于网络拓扑结构.
防止路由器/调制解调器上的端口地址冲突
让我们说你的有线电视公司DHCP分配您的调制解调器ip4地址72.72.72.72.但是,您的无线路由器DHCP会将192.168.0.10分配给您的系统,并将192.168.0.11分配给您孩子的系统.
当携带侦听器端口信息的帧通过NAT路由器时,它将转换一个或两个侦听端口.让我们说你的页面的端口15000和你的孩子页面的端口16000.
然后,您的无线路由器将您的请求发送到谷歌服务器,来自72.72.72.72:15000和72.72.72.72:16000.
谷歌服务器然后单独响应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到达你孩子的系统.
运行web/game/ftp/etc服务器
但是,如果您的系统上运行了Web服务器或ftp服务器,该怎么办?如果您有两个系统且两个都有Web服务器并且两个Web服务器都在端口80上侦听怎么办?
让我们说第一个Web服务器系统的无线路由器注册/分配的本地IP地址是192.168.0.30,第二个Web服务器系统是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
Run Code Online (Sandbox Code Playgroud)
所以你必须给你的朋友打电话,你的网络/游戏服务器可分别通过72.72.72.72:8080和72.72.72.72:8088进行寻址,其中无线路由器将阻止其端口8080和8088自己的动态NAT使用.
当然,72.72.72.72与您的ISP DHCP决定更新调制解调器的ip4地址之前一样好,即72.72.90.200.之后你必须给你的朋友打电话/发电子邮件并说嘿,服务器的地址分别变为72.72.90.200:8080和72.72.90.200:8088.或者您可以订阅动态DNS(ddns)服务以使用命名域,其中ddns服务将需要您在系统上安装简单的心跳线实用程序以帮助它们监视地址变化.DDNS翻译是一个单独的问题/策略.
NAT调制解调器
较新的ISP合同为您提供具有NAT的调制解调器.如果是这样,您必须关闭调制解调器上的那个或无线路由器上的那个.你不应该同时使用两者 - 两次翻译的重点是什么,因为NAT只是为了防止地址冲突.当您从无线路由器关闭NAT时,它可以作为集线器交换机而不是路由器运行,因此您可以使用其LAN插槽而不是其WAN插槽将其连接到调制解调器.
| 归档时间: |
|
| 查看次数: |
8784 次 |
| 最近记录: |