元宇宙与IPv6
到2021年2月26日为止,APNIC地址池中只剩下折合0.23个A的IPv4地址,大概两年后就将干净净一点不剩。而且IPv6目前发展的很好。
元宇宙与IPv6
IPv6进度条
IPv6在各种技术栈中得到了广泛的支持,但覆盖面还有待提高。比如在基础软硬件平台的操作系统中,只有75%左右的节点默认安装IPv6协议栈,65%左右支持DHCPv6,50%左右支持NDRNDSS;在网络设备方面,虽然绝大多数设备都支持IPv6协议,但在无线WIFI,尤其是家庭无线WIFI等实际场景中,默认使用IPV6地址的无线路由器不到20%;在应用方面,IPv6的支持会更好,比如Bing、雅虎、淘宝等很多网站或者APP都宣布永久支持IPv6,但是由于IPv6终端用户数量不足,目前的互联网还是IPv4的世界。
然而,最近元宇宙的突然崛起突然改变了局面。脸书改名Meta,以坚定转型决心。元宇宙当然不能建立在一个只有50亿个地址池的IPv4空间。
资源池大
IPv6全球路由地址有230亿(261),声称可以为地球上的每一粒沙子分配一个IP,60亿人口和500亿物联网终端,在IPv6协议看来根本不是问题,因为IP资源池的大小限制了网络规模的扩展,这与元宇宙的宏大愿景相对应。
此外,IPV6还可以带来更好的互联网体验。如果读者经常使用手机银行和其他金融应用程序,他们可能会发现这样一种现象,即当WIFI与数据连接切换时,手机银行的登录状态往往会发生变化,但移动IPV6协议改变了这种情况。当IPV6移动终端改变地理位置时,即使分配的IPV6地址发生变化,原始连接也不会发生变化。
IPv6报头还新定义了流标签字段,路由器可以根据源地址+流标签的唯一标识端到端IP业务流。实现有序转发,可以大大提升Qoe要求高的短视频等赛道的用户体验。
虽然报文长,但是效率高
IPV6头目的IP等字段比IPV6长,但固定长度。网络设备的计算能力载体本质上是CPU处理器,这使得它无法逃脱CPU系统架构的限制。在现代指令流水线系统中,固定长度字段比变长字段更有效率优势。
我们知道CPU的每一个动作都需要由晶体冲击触发。如果我们想执行一个指令,我们需要提取指令、翻译代码、操作数量、执行和操作结果,每个步骤都需要晶体冲击才能推进。因此,在流水线技术出现之前,执行一个指令至少需要5到6个晶体冲击周期。
山东济南汉码未来了解到,因为这些模块实际上是独立于芯片的,所以只要同时执行多个指令的不同步骤,如指令1、指令2翻译、指令3操作数等,就可以大大提高CPU的执行效率:
然而,命令装配线也带来了分支预测的问题。一旦命令不是后续执行的if分支,但处理器错误地将其放在装配上,就会导致处理器空转,并带来强烈的惩罚效果。
因此,这也使得在现代CPU架构下,不涉及if-else分支定长报文的分析能够获得更高的效率,因为非定长报文必须做出if判断来决定报文的分析方法,一旦分支预测失败,就会受到流水线执行效率下降的惩罚。例如,指令5是不应执行的分支代码。如果在T7即指令3取出结果时发现预测错误,很可能会拖累指令6。然后,T8指令8在下一刻刚刚开始翻译代码,这将大大降低整个装配线的效率,基于ARMRISC架构的处理器最大的优点是可以将指令解码器发挥到极致,从而平衡功耗与性能的关系。
因此,我们不能认为IPV6的IP地址长度更长,转发效率会更低。相反,IPV6的转发效率远高于V4路由器!
路由聚合策略
在Facebook要求Allin元宇宙更名Meta之前不久,他们刚刚遇到了广域路由协议BGP引起的全球停机问题。在路由设计方面,IPv6也比IPv4领先得多。IPv6在设计之初就认为IP系统是聚合的(Aggregation),可以自顶向下分布,路由器可以收集路由条目和瘦身路由表。路由算法本质上是找到从地点A到地点B最短距离的旅行规划问题。经典算法dikjstra早就解决了这个问题。为了说明这个IPv6路由聚合的好处,我们先介绍一下dikjstra旅行算法。
旅游规划的主题可以归结为以下说法。用户有一张自驾旅游路线图,显示城市和公路的数量、高速公路的长度和过路费。现在通过算法,找到出发地和目的地之间的最短路径。若有几条路径最短,则需要输出最便宜的路径。
事实上,在网络路由规划中,城市代表网络上的节点,调整公路代表网络上的通道。公路长度一般代表网络通道的传输性能,过路成本数据可能代表实际工程中的线路质量等参数。
示例代码中的变量说明:N.M.S.D分别代表城市数量。调整公路数量。旅行者的起始城市编号。旅行者目的地的城市编号,其中N(2≤N≤500)是城市数量。三维数组g存储高速公路信息,记录起始城市、终点城市、高速公路长度和收费金额,如g[i][j][1]代表编号为i的城市与编号为j的城市之间的距离。Dist数据记录旅行者起始市S到编号为i的城市之间的距离值,cost数据记录旅行者起始市S到编号为i的城市之间的费用,以及算法是否通过Known数组记录确认城市,
例如,经典路由协议OSPF(OpenShortestpathFirst)中SPF最短路径优先级实际上非常清楚地表达了dijkstra算法的本质,事实上,该算法是不断找到最接近起点S的未确认城市A,并尝试通过A中转优化到S的距离
dijkstra算法首先要做的就是在所有未知节点中找到最接近起点S的城市A,因为现在城市A离S最近,所以通过城市A中转,S到其他目的地城市D的距离可能会缩短。例如,上图中S到A的距离为2,截至目前,S到其他城市的距离最短,因此通过A跳转可以获得比S直接到D更短的路径。在上图中,使用A行迭代后,S到D的距离可以从直接访问的距离6优化为A中转的距离5。完成一轮优化后,A节点将被记录为known状态,然后在非known状态的节点中找到最接近起点的节点进行下一轮迭代。直到所有城市都处于known状态。