Networking 局域网中的机器如何与外部机器通信?

Networking 局域网中的机器如何与外部机器通信?,networking,lan,Networking,Lan,假设LAN中的主机a具有如下地址192.168.0.123。它通过默认网关连接到互联网192.168.0.1 当A向外部机器B发送数据时,网关如何处理IP数据包 当B的响应到达网关时,网关如何将A定位为预期的接收器 加1 似乎A和B之间的通信只能由A启动。因为外部机器不知道局域网中隐藏的A 假设另一台机器C位于另一个局域网中A和C希望彼此通信。我想唯一的办法就是让像B这样的公共机器充当中间人。也许这就是为什么像OICQ这样的所有聊天程序都必须先登录到服务器,比如B。所有聊天信息都由该中央服

假设LAN中的主机a具有如下地址
192.168.0.123
。它通过默认网关连接到互联网
192.168.0.1

  • 当A向外部机器B发送数据时,网关如何处理IP数据包

  • 当B的响应到达网关时,网关如何将A定位为预期的接收器

加1 似乎
A
B
之间的通信只能由
A
启动。因为外部机器不知道局域网中隐藏的
A

假设另一台机器
C
位于另一个局域网中
A
C
希望彼此通信。我想唯一的办法就是让像
B
这样的公共机器充当中间人。也许这就是为什么像OICQ这样的所有聊天程序都必须先登录到服务器,比如
B
。所有聊天信息都由该中央服务器转发。我认为除非
A-B
B-C
连接是持久的,
转发
只能实现为
通过
A
C
拉动
,而不是
通过
B
推动
,因为只有
A
C
可以启动对
B
的请求


这称为NAT:网络地址转换。路由器去掉传出数据包的源地址,用自己的公共IP地址替换,然后转发数据包。在返回的过程中,路由器接收到数据包,并用内部IP地址替换目标地址。

嗯,这是一个简短的回答,通过一种称为网络地址转换的方式

一个略显冗长的回答-

下面是@A-Route lookup获得下一个跃点(本例中为默认gw)的过程。ARP解析,以找出默认网关的MAC地址),然后在数据包进入荒野之前,将网络地址转换为@gateway

路由查找-

每个配置良好的机器都应该有一个本地路由表——通常包含两条路由。一个是默认路由,另一个称为子网路由。可能不止这两条路线,但这两条路线肯定会有所帮助。“子网路由”有助于到达子网上的节点。“默认路线”有助于联系其他任何人。例如,在您的情况下,将有两条路由(0.0.0.0/32 gw=192.168.0.1)“子网路由不需要有网关-事实上不会有gw”)。在这种情况下,由于B的地址不在子网默认路由上,因此将使用与其对应的gw

ARP分辨率

广播ARP请求消息由发送请求网关的MAC地址-它希望在转发数据包之前使用该地址。因为网关知道自己的IP和MAC,所以它会用自己的MAC地址进行回复

本地-

因此,当节点a上的浏览器(比如)想要连接到Internet节点B(web服务器)上的机器时。它将发送一个包含以下信息的TCP数据包-DIP=B的IP/SIP=a的IP/DP=80/SP=10000(由a随机选择)/Proto=TCP

现在,当这个数据包到达节点B时,节点B可以按原样转发这个数据包——如果它只是作为网关工作的话——而不需要NAT功能。从技术上讲,数据包可以发送到B,但B的回复无法返回到“A”cos 192.168.X.X是专用IP地址——这些包路由器不应该转发它们。所以从A出去的数据包应该有一个主机B可以访问的IP地址。网关通常有一个“全局”IP地址。此地址用于所有出站数据包。所以返回路径上的数据包可以到达网关,然后到达“A”。因此,IP地址部分得到了处理。端口部分也需要处理。从技术上讲,B可以简单地在传出的IP数据包中重复使用源端口,但设想另一个节点(比如C)使用同一个端口连接到同一个服务器,所以网关在返回路径上将不知道向谁发送数据包。所以网关通常使用不同的输出端口,并在内部IP端口和外部IP端口之间保持映射(从技术上讲,这意味着网关只能可靠地转发64K连接的数据包)。通常这不是问题,但对于具有持久TCP连接的LAN上的大量节点而言,这可能是一个问题。因此通常使用多个IP地址-有效地增加支持的连接数


希望时间不要太长

谢谢。似乎我失去了一部分记忆。我用一个特定的场景更新了我的问题。如果你能看一看,我将不胜感激。你是对正在使用的私人地址感兴趣,还是对第二层和第三层交付之间的差异感兴趣?@DavidHoelzer谢谢你的回复。我只是想清楚地了解隐藏在局域网中的机器是如何与外部机器进行双向通信的。该外部机器可以是公共的,也可以位于另一个LAN中。谢谢。因此,总结NAT部分,网关将A的传出IP数据报中的
(A的IP,A的端口)
替换为
(GW的IP,GW的端口)
,以建立到Internet的有效连接点。GW将该映射保留到A的代表沟通。我用特定场景更新了我的问题。如果你能看一看,我将不胜感激。