Ip
IPv6 over TCP 或 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 完成的。
這怎麼可能?
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 地址(在這種情況下為環回)。