【问题标题】:Multiple Open TCP/IP Connections from Behind NAT to Same IP and Port从 NAT 后面到相同 IP 和端口的多个打开的 TCP/IP 连接
【发布时间】:2012-01-30 17:47:05
【问题描述】:

如果所有机器都使用同一个端口,我正在尝试确定 NAT 后面的多台机器如何/是否有可能建立到同一个远程 IP 地址的唯一 TCP/IP 连接。在这种情况下,我的理解是,用于标识每个 TCP 连接的 5 元组实际上在单个远程计算机上看起来是相同的 - 因为它由以下部分组成:

  1. 协议
  2. 远程IP
  3. 远程端口
  4. 本地 IP
  5. 本地端口

那么在这种情况下,如果它们都使用端口 80,那么单个远程计算机如何区分来自 NAT 计算机 A 和 NAT 计算机 B 的连接?我假设这是可能的,因为 NAT 后面的计算机能够同时在相同端口上执行相同的操作而不会出现问题......我只是没有看到远程机器如何正确处理这个问题。

谢谢!

【问题讨论】:

  • 您的列表有点错误:您有两次“远程端口”。其中之一应该是“本地端口”。

标签: tcp connection port nat simultaneous


【解决方案1】:

如果机器使用不同的源端口 - 问题已解决。远程 TCP 使用它来识别它们。如果多台机器使用相同的源端口,NAT 会处理并更改它。

【讨论】:

  • 所以当流量被路由到远程 IP 时,NAT 会更改原始端口 - 但由于远程端口仍然相同 (80),因此到达受端口限制的服务没有问题。返回路径也可以,因为 NAT 将该端口转换回 NAT 后面的流量的原始端口(例如 80)。对吗?
  • 谢谢 cnicutar - 现在说得通了。非常感谢。
【解决方案2】:

您还应该记住,NAT 路由器可以调整 IP/端口对以避免冲突。这就是诸如端口转发之类的事情的完成方式。即使流来自同一个源端口,路由器也会将流识别为唯一的,因为源本地 IP 将不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2013-12-09
    • 2016-04-14
    相关资源
    最近更新 更多