2012-01-30 35 views
0

我试图确定如何/如果多个机器后面的NAT建立独特的TCP/IP连接到相同的远程IP地址,如果所有机器正在使用相同的端口。在这种情况下,我的理解是,用于识别每个TCP连接的五元组,实际上将看起来是一样的单个远程机器上 - 因为它是由组成:多个开放的TCP/IP连接从NAT后面到相同的IP和端口

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

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

谢谢!

+0

您的列表有点不对:您有两次“远程端口”。其中之一应该是“本地港口”。 – Crontab 2012-01-30 17:55:25

+0

谢谢 - 更正。 – EnemyBagJones 2012-01-30 18:01:03

回答

1

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

+0

因此,当流量被路由到远程IP时,NAT改变始发端口 - 但由于远程端口仍然是相同的(80),所以到达端口限制服务没有问题。返回路径也可以,因为NAT会将该端口转换回原始端口(比如80),以获取NAT后面的流量。那是对的吗? – EnemyBagJones 2012-01-30 17:57:52

+0

@JPAnderson看起来正确:-) – cnicutar 2012-01-30 18:00:08

+0

谢谢cnicutar - 现在有道理。非常感激。 – EnemyBagJones 2012-01-30 19:05:33

0

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

相关问题