Ip

IPv6 over TCP 或 TCP6

  • August 14, 2020

我的理解是

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 完成的。

這怎麼可能?

TCP4 或 TCP6 協議不存在。它們可以用作分別表示 TCP 與 IPv4 和 TCP 與 IPv6 的簡寫,但這是對語言的濫用——使用的協議始終是 TCP。

由於 ISO/OSI 模型中的層分離,無論是伴隨 IPv4 還是 IPv6 數據包(第 3 級),TCP 段(第 4 級)總是相同的。

TCP 段中唯一發生變化的是校驗和欄位,根據RFC 793用於 IPv4 和RFC 2460用於 IPv6 計算,因為 IP 地址的大小在協議的兩個版本之間不同。(我不確定選項欄位的使用是否也不同。)但是,它仍然是相同的 ol’ TCP。

是的,::ffff:127.0.0.1表示映射到 IPv6 地址的 IPv4 地址(在這種情況下為環回)。

引用自:https://unix.stackexchange.com/questions/329115