基于 TCP 的 IPv6 或 TCP6

基于 TCP 的 IPv6 或 TCP6

我的理解是

tcp6 用于 IPv6 上的连接,而 tcp 用于 IPv4 上的连接。

::ffff:127.0.0.1 表示映射到 IPv4 地址的 IPv6 地址。

但是当我使用 netstat 查找端口上的打开连接时,例如 netstat -anp | grep 31210

我得到的输出为

tcp 0 0 ::ffff:127.0.0.1:64876 ::ffff:127.0.0.1:31210 ESTABLISHED 23755/java

这意味着 IPv6 通信是使用 TCP 完成的。

这怎么可能?

答案1

TCP4 或 TCP6 协议不存在。它们可以用作分别表示 TCP with IPv4 和 TCP with IPv6 的简写,但这是对语言的滥用——所使用的协议始终是 TCP。

由于 ISO/OSI 模型中的层分离,无论 TCP 段(第 4 级)是伴随 IPv4 还是 IPv6 数据包(第 3 级),它始终是相同的。

TCP 段中唯一改变的是校验和场,根据计算RFC 793对于 IPv4 和RFC 2460对于 IPv6,因为两个版本的协议之间的 IP 地址大小不同。 (我不确定是否选项字段的使用方式也不同。)但是,它仍然是相同的 TCP。

是的,::ffff:127.0.0.1它表示映射到 IPv6 地址的 IPv4 地址(在本例中为环回)。

相关内容