短暂端口如何通过NAT工作?

我认为我说的是正确的:

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

那么,临时端口如何与NAT一起工作?

据我的理解(我敢肯定,我错过了一些东西),不应该有一种可能性(在较大的networking上更高),例如,如果两个临时端口可能在networking或服务器上发生冲突或者更多的客户端碰巧生成并使用相同的随机临时端口通过NAT连接?

没有冲突,因为连接的套接字由以下四个值定义:

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

两个不同的客户端意味着即使在访问相同的服务器/服务时,至less有一个不同的值是源IP。

为了将这与NAT相关联,路由器/网关将为每个新连接创build一个新的映射。 这个映射被保存,以便能够返回更多的响应给用户,并在连接有效时使用它。 这就是所谓的Linux netfilter方面的连接跟踪。