NAT 或代理如何对传入的 TCP SYN 数据包做出反应?

NAT 或代理如何对传入的 TCP SYN 数据包做出反应?

在某些消息传递系统中,两个消息传递客户端在聊天或语音通话中直接相互发送/接收数据包。我认为基本机制是(例如 TCP):这些客户端程序打开一个侦听 TCP 套接字并告诉消息传递/协调服务器它们的 IP/PORT 对。然后客户端程序从消息传递/协调服务器检索对方的 IP/PORT。然后其中一个(假设 A)使用检索到的 B 的 IP/PORT 对与另一个(假设 B)发起 TCP。

当被动客户端 B(等待 TCP SYN 数据包)不在 NAT 或代理后面时,这没问题。但如果 B 位于 NAT 或代理后面,则 IP/PORT 对实际上是 NAT 或代理的公共网络接口。

所以我的问题是,当 NAT 或代理收到 TCP SYN 时,它的反应是什么?它们如何将 TCP SYN 中继到其后面的相应主机/进程?

答案1

如果收到 TCP Syn,则 NAT 主机将检查转发规则(转换表)。如果有与传入数据包(目标源/地址)的详细信息相匹配的规则并将其映射到内部系统,则数据包将被重写并转发到相应的内部主机。如果转换表中没有该数据包的条目,则它将被丢弃,或者将发送 RST,具体取决于 NAT 配置为如何处理无效传入连接。

相关内容