详解IPv6与IPv4之间的差别!
副标题[/!--empirenews.page--]
技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战
IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议,号称可以为全世界的每一粒沙子编上一个网址。 1. IPV6的基本概念 周所周知,IPv6采用128位的地址长度拥有更大的地址空间。首先我们先来认识一下IPv6到底长成什么样子。 IPv6数据报文和IPv4有很大的差别:
我们来看下ipv6的报文头部格式: Ipv6报文头部 ipv6的头部更加的简单,少了很多的字段,对比ipv4,有这几个地方需要注意:
这里的含义与IPv4有很大的差别,需要加以解释:
为什么要引入扩展头部这个概念,这里也是IPv6对IPv4改进的一个方面,用扩展头部取代了IPv4的可选项信息,精简了IPv6的头部,增强了IPv6的扩展性。有同学会不会有疑问,IPv6的分片数据报文怎么处理?其实就是使用了IPv6扩展头部。 当发送一个分片IPv6数据报文的时候,IPv6使用的是扩展头部的形式组织各个分片的信息,IPv6报文头部Next Header字段值为44表示存在扩展头部,扩展头部是IPv6分片数据信息。 对比IPv4,分片信息是记录在IPv4报文头部的分片字段中。 IPv6的扩展头部类型有很多种,除了上述的分片头部,还有路由头部、逐跳可选头部等,具体的可以参考RFC2460。 本章主要介绍了IPv6的一些很直观的认识,下面逐渐介绍IPv6上的基本知识和概念。 2. ipv6的地址语法 一个IPv6的地址使用冒号十六进制表示方法:128位的地址每16位分成一段,每个16位的段用十六进制表示并用冒号分隔开,例如: 一个普通公网IPv6地址:
IPv6地址支持压缩前导零的表示方法,例如上面的地址可以压缩表示为:
为了进一步精简IPv6地址,当冒号十六进制格式中出现连续几段数值0的位段时,这些段可以压缩为双冒号的表示,例如上面的地址还可以进一步精简表示为:
又例如IPv6的地址FF80:0:0:0:FF:3BA:891:67C2可以进一步精简表示为:
这里值得注意的是:双冒号只能出现一次。 3. IPv6地址的号段划分和前缀表示法 IPv6拥有128位巨大的地址空间,对于那么大的空间,也不是随意的划分,而是使用按照bit位进行号段划分(与鹅厂内部一些的64位uin改造放号的zone划分算法)。 IPv6的地址结构如下图: 例如RFC4291中定义了n=48, m=16,也就是子网和接口ID与各占64位。 IPv6支持子网前缀标识方法,类似于IPv4的无分类域间路由CIDR机制(注意:IPv6没有子网掩码mask的概念)。 使用“IPv6地址/前缀长度”表示方法,例如:
可以看到,一个IPv6的地址有子网前缀+接口ID构成,子网前缀由地址分配和管理机构定义和分配,而接口ID可以由各操作系统实现生成,生成算法后面的章节会介绍。 4. IPv6的地址类型 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |