如果我的IP(在本地网络中)不是唯一的,外部设备如何寻址我?



我试图弄清楚网络是如何工作的,但遇到了使用NAT的情况。

我有一个路由器和一个由这个路由器管理的本地网络,这个路由器执行地址转换(即NAT(。

某个本地主机向路由器发送一个IP数据报,路由器将此数据报中的源IP地址(更改为路由器的外部IP(和源端口号(更改为??<1>(,并将其转发到外部。

如果/当目标主机发回IP数据报时,我们的路由器会使用源地址转换过程中存储的一些信息将目标源地址和目标端口号更改为正确的地址和端口号。

我有三个问题:

  1. 当某个本地主机发送IP数据报(查找<1>标记(时,路由器会为IP数据报的源端口号分配什么端口号?(我猜它使用了第一个可用的端口号,是真的吗?(

  2. 本地主机可以启动与远程主机的连接,但反之亦然呢?这可能吗?如果可能,怎么可能?(如果我们的主机的IP地址不是唯一的或没有注册,外部主机如何与我们交谈(。

  3. 如果答案是2。问题是:不可能,那么torrent是如何工作的?(据我所知,主机可以在不同的本地网络中相互交谈。(

对1有点清楚。问题:我指的不是NAT路由器有一组服务器作为本地网络的情况,我想,在这种情况下,很清楚要使用什么端口号——一个与特定服务器上启动的一些服务相关的端口号——在我看来,在这种情况下,每个本地网络的端口号可以是唯一的。

想象一下,您的本地网络中有几个主机,所有的IP都在192.168.0范围内。其中一个尝试访问1.1.1.2端口80的互联网服务器。发送请求将分配的主机将选择下一个可用端口,并发送一个由主机地址、主机端口、目的地地址、目的地端口4个值标识的请求。

  1. NAT路由器将检查接收到的请求并转发它。它只会在主机端口已在使用时更改主机端口,否则保持不变。它将请求的4个值添加到其内部状态表中。一旦得到答案,它就会在表中查找最终目的地并转发消息。如果某个东西进入而不在表中,它就会被丢弃,换句话说,内部主机必须启动连接或消息交换。

  2. 默认情况下,大多数家庭或SOHO路由器上只允许传出连接或台面。如果你想有传入连接,你必须配置它(端口转发(,这样外部主机就可以连接到你的(公共(IP地址或发送未经请求的消息,路由器知道将连接转发到哪里。

  3. 有一些技术可以允许NAt后面的主机在没有特殊配置的情况下直接连接,打孔是常用的,并且涉及第三台主机(两台主机都可以访问的服务器(。

最新更新