为什么整个127.*网段都被拿来当做环回地址了?

高朝波

“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”

如题,为什么整个127的网段都被拿来当做环回地址?

当IPv4刚刚盛行时,人们会可能认为可用地址被称为取之不尽、用之不竭的,当初很多大公司申请地址的时候大多都分配了A类的IP地址,加上当初申请loopback地址机构的强势性,因此申请下一段A类地址作为环回地址也没那么困难。

大家就要问了,现在可以使用无类(classless)路由了,可以将127.0.0.0/24作为loopback地址,那么剩余的地址是否可以节省出来供其它业务使用?

哟哟认为收回这段地址不是那么容易的,因为整个地址段作为硬编码已经被定义到主机的操作系统中去了,如果强行将其收回,只是用127.0.0.1/32作为本地环回地址的话,那么就需要对全球所有的主机进行操作系统的升级工作,否则无法路由至127.0.0.0/8这个网段,造成自己发自己收,无法离开主机的现象。

不过哟哟认为,IPv6必然是趋势,等v6普及的话IP地址的数量就很庞大了,另外本地环回地址只使用了一个环回地址。


哟哟吼说科技

具体的历史我也不甚了了,不过我们可以从技术特点上做一些分析。回环地址的特点是对其发送的数据不会实际发送到物理层,而是在更高级的协议中直接复制到本机。因此需要由操作系统的协议栈对每次发送数据的地址进行判断,以决定是否实际送到物理层。由于要对所有的数据包一一做判断,这个判断条件对效率影响很大,越简单越高效。用127整个网段做回环地址,意味着只需要对一个字节是不是127做判断,只要是127就不发给物理层。反之如果只把127.0.0.1做回环地址,意味着16位处理器至少要做两次判断,8位机要做4次判断。在当年性能较低的处理器上这是有较大区别的。随着处理器性能的提升,位数的增加,32或64位处理器已经可以一次判断整个ipv4的地址是否为特定值了,所以当年的设计就没有必要了。但是已经形成的技术标准是没那么容易改的。


分享到:


相關文章: