IPv6 --- 基础

人都不愿意做改变,尤其是没有必要的改变。这句话套在IPv6上非常合适。尽管提出之初就是为了取代IPv4,但是在已经提出的二十年后的今天,IPv6的使用率还远不及IPv4。从下图[1]看,世界上IPv6普及率最好的国家是:美国,印度和比利时。全世界的IPv6普及率只有23.34%。对于我国来说,著名事件就是去年工信部联合各大企业发文要支持IPv6[2]。

IPv4地址的耗尽

--

IPv6的出发点就是因为IPv4地址不够用了。而互联网IPv4耗尽的传闻,就像石油100年后要用完一样,是一个事实,但是这个事实又不断的因为新的技术的出现得到缓解。先来看看IPv4地址的使用情况吧。

IPv4地址由IANA(互联网地址编号机构)管理,并分配给5大地区管理机构。在2011年的时候,IANA就宣布IPv4中央地址池已经耗尽。而5大地区:

  • APNIC(亚太互联网信息中心)在2011年4月就用尽了所有IPv4地址
  • RIPE(欧洲IP网络)在2012年9月用尽
  • LACNIC(拉美及加勒比互联网信息中心)在2014年6月用尽
  • ARIN(美国互联网号码注册管理机构)在2015年9月用尽
  • AFRINIC(非洲网络信息中心)将于2020年2月用尽

这里的用尽并不是真的用光了,而是地区管理机构可用的IP地址已经下降到了一定的阈值。例如APNIC,名义上2011年就耗尽了IPv4地址,但是现在还能从最后一个 /8 网段(103开头)和一些回收的IPv4地址池分配地址。

总的来说,IPv4地址基本处于用尽的地步,现在想要申请IPv4地址,可以:

(1)向所在的地区管理机构申请剩余的IPv4地址

(2)向ISP(互联网服务提供商)租用的IPv4地址

(3)在IPv4的开放市场(如果有的话)购买地址

而IPv6协议下,因为IPv6地址是128位的,并且IANA为每个地区管理机构分配了一个 /12 的IPv6地址,这样的地址空间在可预期的将来是使用不完的。

IPv6与IPv4的区别和关联

--

从名字上看,IPv6就是IPv4的升级版,无非就是版本4升级到版本6。所以看到IPv6,很多人的直观反应是如何从IPv4升级到IPv6。但是实际上,IPv6是一种与IPv4基本完全独立的网络层协议。整个工作机制有相似的地方,但是支撑网络层的协议都重新定义了。实现IPv6并不是简单的升级,而是重新实现一套网络层协议。

整体来看,IPv6报文与IPv4报文差别就两个地方,一个是数据链路层(以太网协议)中协议类型,IPv4是0x0800,IPv6是0x86DD;另一个是IPv6 Header是40字节,IPv4只有20字节。

具体到网络层头部内容可以看出,IPv6根本没有考虑要兼容IPv4,这或许是IPv6推进缓慢的原因之一。除了version,source address,destination address以外,其他的一些field,就算功能一样,例如TTL和Hop Limit,但是名字和位置也变了。具体的差别有:

  • Version一个是4,一个是6,这个没得说
  • IHL(Internet Header Length)在IPv6中去除了,因为IPv6 Header不支持Option,所以长度是固定的40字节,因此也没必要表明Header的长度。实际上IPv4 option也很少使用。
  • Type of Service,在IPv6中改名成为了Traffic Class。不过功能保留了,还是用来标识流量做QoS用。
  • Total Length,在IPv6中改名成为了Payload Length。并且,IPv4的Total Length是要包含IPv4 Header的,而IPv6 Payload Length直接是IP payload的长度。这样在IPv6包有效性校验的时候,不必考虑Total Length必须要大于IHL,能够提升一丢丢的性能。
  • Flow Label,IPv6中新增的字段,用来标识一个TCP连接或者一个会话。通过Flow Label可以不看其他的Header,就标识出流量,对于QoS的实现有帮助。
  • Identification, Flags, and Fragment Offset,这些字段在IPv6中去除了。这些是用来实现IP报文分片的,也就是说IPv6不支持分片。
  • TTL在IPv6中改名为Hop Limit。功能是一样的,改名之后更贴近实际的作用。
  • Protocol Field在IPv6中改名为Next Header。
  • Checksum在IPv6中移除了。因为更高层的协议自己有错误检测,而更底层的卖QQ平台协议通常有CRC校验也能发现错误,所以IPv6放弃了自己的Checksum,这也是能提升一丢丢性能的改动。
  • Source Address,Destination Address,从IPv4的32bit,改成了IPv6的128bit。

IPv6还有一个潜在的区别,所有的主机和转发设备必须最少支持MTU 1280,而IPv4下,这个值是68。

IPv6 地址表示方式

--

初看IPv6地址可能会觉得比较复杂,但是本质上,IPv6地址是由bit组成,它的表示方法是为了让人更好的记住和书写这些地址。从最标准的角度来看,一个IPv6地址是这样:

0010 0000 0000 0001 0000 1101 1011 1000 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0101 0010 
0000 0000 0000 0000 0000 0000 0000 0001 

为了简化,第一步是用16进制表示地址,因此上面的地址可以表示为8段16进制数:

2001:0db8:0000:0000:0000:0052:0000:0001 

这已经是一个完全合法的IPv6地址了。但是在实际应用中,要记住这么一串地址基本不可能,尤其某些场合还不能复制黏贴。不得不说,IPv6地址太长也是阻碍IPv6发展的另一大因素。

为了进一步简化,每一段地址起始的0可以不用写出来(写出来也合法)。任一段,如果少于4个字符,则认为前面用0补齐至4个字符。如果一段全是0,可以用单个0来表示。因此上面的地址可以表示为:

2001:db8:0:0:0:52:0:1 

为了进一步简化,任何全0组成的1个或者多个连续地址段,可以用双冒号 “::” 表示。但是在IPv6地址中,不能出现两个双冒号。双冒号应当用于尽可能缩短地址。因此上面的地址可以简化成:

2001:db8::52:0:1 

这就是一个常见IPv6地址的形态,虽然还是很长,但是相比较之前的形态已经简化了很多。

最后

--

在IPv6协议(RFC2460/8200)提出的20年后来看, IPv6的发展仍然不温不火,Google统计了其站点访问中,IPv6的占比[3],近几年稍好一些,以5%的增速在挤压IPv4。

从长远来看,IPv6占主导是必然的,这就跟现在的能源领域,石油要耗尽,发展新能源是一样的。在现在的网络设备和操作系统中,基本都已经支持了IPv6。究竟是什么原因使得IPv6没有占主导?

  1. 部署带来的额外费用。这里包括设备升级,老旧设备替换,甚至还有运维开发人员的培训。
  2. NAT拯救了IPv4。尽管IPv4地址已经接近用尽,但是通过NAT可以让企业的无数设备只使用少量的IPv4地址,同时NAT还能带来一定的安全性。NAT对于IPv4的续命,也阻碍了IPv6的发展。
  3. 不兼容性。前面说过,IPv6是一个与IPv4不兼容的协议,所以对于企业来说部署IPv6是一次大的升级,这背后带来的潜在风险也不容忽视。
  4. 群体效应。起因还是不兼容性。现在互联网绝大多数还是只支持IPv4,因此企业就算现在要支持IPv6,也必须先支持IPv6和IPv4的双栈,因为IPv4与IPv6天然不相通。除非某一天,企业的所有互联网联系人都支持了IPv6,企业才能切换到IPv6 only的模式。 所以IPv6的早期发展必然是缓慢的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值