写这篇文章的原由,在阅读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核心源码解析,以为写得不错,能够点个在看,谢谢