假设两台主机X
和Y
通过NAT连接到Internet,两个NAT都是锥形限制类型。
现在假设有一台服务器Z
存储了X
和的所有转换后的公网地址Y
。X
和都Y
可以从 中获取彼此的转换后的公网IP地址Z
。
现在X
想要与 对话Y
,但是X
无法Y
使用 的Y
公网 IP 向 发送消息,因为Y
的 NAT 受到锥形限制。
但如果X
和Y
同时互相发送消息,那么他们的消息就可以到达X
和Y
。
谁能告诉我为什么会发生这种情况?
答案1
这是因为锥形限制 NAT 仅允许在流量源自内部地址时进行回复。要求是内部地址发送原始 SYN,然后状态将在 NAT 表中存储一段时间,在此期间,外部客户端(在本例中位于另一个锥形限制 NAT 后面)可以通过向映射端口/地址发送数据包来回复它们。由于它们都在执行此操作,因此两者都将打开连接窗口。