寫這篇文章的原由,在閱讀Node.js源碼的關鍵環節,看到了這行代碼web
意思就是調用listen函數監聽端口的最終是調用了這個函數安全
藉此我找到了CVTE技術經理,張師傅,張師傅給個人回覆:網絡
因而我點開了翻譯,肯定了一下大概意思: 函數
意思是說,ipv4套接字沒法接受ipv6包加密
讓咱們一塊兒看看某度是怎麼說ipv4和ipv6的區別的:spa
1.地址空間不一樣,IPv4中規定IP地址長度爲32,而IPv6中IP地址的長度爲128翻譯
2.路由表大小不一樣,IPv6的路由表相比IPv4的更小。blog
3.IPv6的組播支持以及對流的支持要強於IPv4。接口
4.安全性不一樣,IPv6的安全性更高,在使用IPv6的網絡時,用戶可對網絡層的數據進行加密。ip
5.協議擴充不一樣,IPv6容許協議進行擴充而IPv4不容許。
打開wireshark抓包
咱們看ip頭部的信息,0100表明ipv4
0110表示IPv6
當IPv4接口接收到IPv6的數據包的時候會自動丟棄。在開啓IPv6協議的路由器上會自動識別IP數據包的版本,並做須要處理。對於通常的電腦網卡,只要開啓IPv6協議就能夠處理IPv6數據包。
這也印證了那句英語的後半句:
這樣你應該就搞明白了,爲何源碼中會是這樣寫了呢。
目前ipv4和ipv6實現雙協議棧通訊的三種方式:
ipv4與ipv6差別
雙IP層是保持IPv6與IPv4互操做性的最直接方式。適用於Internet有IPv4向IPv6過渡的前期。具備雙IP層的節點成爲IPv4/IPv6節點。它具備兩個IP協議的完整實現。
2. 隧道技術
隧道技術適用於Internet有IPv4向IPv6過渡的中期。其原理是兩個IPv6的網絡之間的中間網絡的多協議路由器接收到源主機的IP包時,將其放入中間網絡層數據包在和域中,當其到達中間網絡另外一端多協議路由器時再恢復源IP包並轉發到目的主機,這樣整個中間網絡就像一條隧道。
3. 報頭翻譯技術
當Internet中只有極少數IPv4節點時(過渡階段後期),報頭翻譯技術能夠保持IPv6與IPv4節點間的通信。向IPv4節點發送消息時,路徑上最後一個IPv6/IPv4路由器發現目的地址是IPv4映射地址則進行報頭翻譯,將IPv6報頭替換成IPv4報頭,並轉發到目的IPv4節點。
接下來,我將會寫webAssebmly在項目中的實踐、Node.js核心源碼解析,以爲寫得不錯,能夠點個在看,謝謝