TCP 是否关心传入端口?

TCP 是否关心传入端口?

与请求的目标端口相比,TCP 是否会关心返回的 SYN/ACK 端口是否发生变化?

IE 如果我有一个端口转发将 80 变成 8080,并且客户端在 80 上发送 SYN 并从服务器获得 SYN/ACK:8080 会丢弃该数据包吗?

答案1

答案是肯定的。如果对端口 80 的 SYN 数据包的 SYN/ACK 回复来自端口 8080(而不是预期的端口 80),则 TCP 将丢弃回复数据包。原因是,如果 SYN/ACK 中的源端口与 SYN 的原始目标端口不匹配,那么就 TCP 而言,传入的 SYN/ACK 数据包与其发出的原始 SYN 数据包无关。

当客户端与服务器的连接被路由器从端口 80 进行 DNAT 转换为 8080 时,路由器将对该客户端的所有回复进行反向转换。也就是说,所有回复的源端口都将从 8080 转换为 80。因此,对于客户端来说,服务器似乎确实在监听端口 80。

答案2

该端口转发规则将自动将响应的源端口更改为端口 80。客户端永远不会知道端口 8080 的存在。

相关内容