临时端口如何通过 NAT 工作?

临时端口如何通过 NAT 工作?

我认为我这样说是正确的:

  1. 操作系统通常使用 IANA 临时端口范围 49152 至 65535。
  2. 应用程序生成一个随机临时端口来建立从客户端到服务器的连接。
  3. NAT 转换 IP 地址,通常是私有地址-公共地址。

那么,临时端口如何与 NAT 协同工作?

据我的理解(我确信我遗漏了一些东西),如果两个或多个客户端碰巧生成并使用相同的随机临时端口通过 NAT 进行连接,那么临时端口在网络或服务器上发生冲突的可能性(在较大的网络上可能性更高)是否应该存在?

答案1

不存在冲突,因为已连接的套接字由以下四个值定义:

  1. 源 IP
  2. 目标 IP
  3. 源端口
  4. 目的端口

两个不同的客户端意味着即使访问同一个服务器/服务,也至少有一个不同的值,即源IP。

为了将其与 NAT 关联起来,路由器/网关将为每个新连接创建一个新的映射。保存此映射是为了能够向用户返回进一步的响应并在连接有效时使用它。这在 Linux netfilter 中称为连接跟踪。

相关内容