路由器如何知道将数据包发送到哪个设备?

15 networking routing web nat ip

我的问题不涉及它如何通过互联网移动,而是它如何通过路由器移动到某个设备。连接到家庭网络中路由器的所有设备都具有相同的外部 IP。假设设备 A 正在加载页面,并且数据包从外部源发送到路由器,因为数据包知道设备 A 的外部 IP 并且它们能够到达路由器。但是现在,它如何到达设备 A?路由器如何知道将其发送到设备 A 而不是设备 B?

我认为这涉及 NAT,但我只是在寻找 NAT 为实现这一目标所做的工作的合乎逻辑的解释。

Mic*_*ray 12

当您启动与外部站点的连接时,路由器每次都使用不同的源端口号……然后它使用该源端口号(这是数据返回的地方)作为查找机器上的关键请求来自您的内部网络。这称为端口地址转换(与网络地址转换相反,即当您的路由器有多个网络地址可用时)。

  • 对于 UDP 连接,您通常必须在路由器上预先定义一个可用于路由到特定设备的端口。这是路由器的“端口转发”功能,可用于传入 UDP 数据包(响应传出消息或新传入数据包)以及传入 TCP 数据包(例如由远程客户端发起的数据包)您自己的电脑。) (3认同)
  • 这可以解释像 TCP 连接这样的事情,但有些应用程序是无连接的。UDP数据包呢?如果您在 1 个设备上托管服务器,即使它使用 TCP 进行连接,如果路由器不知道服务器在哪个设备上,它也无法初始化连接。 (2认同)

归档时间:

查看次数:

17956 次

最近记录:

12 年,12 月 前