您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页IPv6技术详解:基本概念、应用现状、技术实践(上篇)(转)

IPv6技术详解:基本概念、应用现状、技术实践(上篇)(转)

来源:测品娱乐

最近在搞IPV6的项目,百度搜了下,这个还是写的很清楚,转载下,

原文是这里,

严禁转载,请告知

本文来自微信技术架构部的原创技术分享。

1、前言

学习交流:

(本文同步发布于:)

2、系列文章

文章太长,分为两篇来讲,本文是2篇文章中的第1篇:
 

  • 《》(本文)
  • 《IPv6技术详解:基本概念、应用现状、技术实践(下篇)》


本文是系列文章中的上篇,主要讲解IPV6的基本概念。

3、正文引言


2017年11月26日,和印发了《》,并发出通知,要求各地区各部门结合实际认真贯彻落实。这条新闻传达了一个很重要的信息:这个是推进中国IPv6发展的战略总动员令。

本文将会从以下几个方面进一步介绍IPv6,包括有:
 

  • 1)IPv6的基本概念;
  • 2)IPv6在Linux操作系统下的实现;
  • 3)IPv6的实验;
  • 4)IPv6的过渡技术介绍;
  • 5)IPv6在Linux平台下socket编程应该注意的问题;
  • 6)实现简易版TGW支持IPv6雏形demo。


值得说的是,目前我们接触得比较多的主流操作系统内核,已经很好地支持IPv6协议栈,例如:
 

  • Windows: windows 7、windows 8.x、windows 10,默认开启IPv6;
  • Linux: 内核2.6.x、内核3.x、内核4.x 已经支持IPv6(需要手动开启);
  • iOS:IOS9开始已经支持IPv6 Only,2016年苹果已经强制要求app必须支持IPv6。

4、初识IPv6


<ignore_js_op>

  • 1)数据链路层(L2)的type字段标识为 0x86dd,表示承载的上层协议是IPv6(IPv4对比:type字段为0x0800);
  • 2)IPv6的头部字段,和IPv4差别巨大(可以猜测到,IPv6和IPv4无法兼容)。


IPv6的报文头部格式如下:
<ignore_js_op>

  • 1)IPv6报文头部是定长(固定为40字节),IPv4报文头部是变长的。这个意味着,写代码处理IPv6数据报文的效率会提高很多:);
  • 2)IPv6中Hop Limit字段含义类似IPv4的TTL;
  • 3)IPv6中的Traffic Class字段含义类似IPv4中的TOS(Type Of Service);
  • 4)IPv6的报文头部取消了校验和字段:取消这个字段也是对IPv4协议的一个改进。当IPv4报文在网路间传输,每经过一个路由器转发就是修改TTL字段,就需要重新计算校验和,而由于数据链路层L2和传输层L4的校验已经足够强壮,因此IPv6取消这个字段会提高路由器的转发效率。值得一提的是,在IPv6协议下,传输层L4协议UDP、TCP是强制需要进行校验和的(IPv4是可选的);
  • 5)IPv6报文头部中的Next Header字段表示“承载上一层的协议类型”或者“扩展头部类型”。


这里的含义与IPv4有很大的差别,需要加以解释:
 

  • 当IPv6数据报文承载的是上层协议ICMPv6、TCP、UDP等的时候,Next Header的值分别为58、6、17,这个时候和IPv4报文头部中的Protocol字段很类似;
  • 当不是以上3种协议类型的时候,IPv6报文头部紧接的是扩展头部。扩展头部是IPv6引入的一个新的概念,每个IPv6的数据报文可以承载0个或多个扩展头部,扩展头部通过链表的形式组织起来。当IPv6数据报文承载着扩展头部的时候,Next Header的数值为扩展头部的类型值。


为什么要引入扩展头部这个概念,这里也是IPv6对IPv4改进的一个方面,用扩展头部取代了IPv4的可选项信息,精简了IPv6的头部,增强了IPv6的扩展性。有同学会不会有疑问,IPv6的分片数据报文怎么处理?其实就是使用了IPv6扩展头部。我们来抓一个UDP分片报文来看看。

<ignore_js_op>

5、IPv6的地址语法

6、IPv6地址的号段划分和前缀表示法

  • 2001:C3:0:2C6A::/表示一个子网;
  • 而2001:C3:0:2C6A:C9B4:FF12:48BC:1A22/表示该子网下的一个节点地址。

7、IPv6的地址类型

  • 1)单播,对应于IPv4的普通公网和私网地址;
  • 2)组播,对应于IPv4的组播(多播)地址;
  • 3)任播,IPv6新增的地址概念类型。

8、IPv6单播地址

8.1全球单播地址


<ignore_js_op>

8.2链路本地地址


<ignore_js_op>

8.3唯一本地地址

8.4站点本地地址

8.5特殊地址:回环地址


0:0:0:0:0:0:0:1或::1,等同于IPv4的127.0.0.1
 

8.6过渡地址:内嵌IPv4地址的IPv6地址

9、IPv4兼容地址

10、IPv6接口ID生成算法

  • 1)根据定义,接口ID可以从EUI-地址生成:详细算法可以查看regli同学的PPT第14页;
  • 2)为了可以具备某种程度的匿名信,接口ID可以使用一个随机分配的,windows操作系统默认就是使用这种生成算法,Linux下也是默认开启这个算法;
  • 3)使用状态化的自动配置技术分配,例如DHCPv6分配;
  • 4)手工配置。

 

11、IPv6地址配置

  • 1)只要开启了IPv6协议栈,接口自动分配链路本地地址;
  • 2)无状态自动配置地址(),后面会有实验演示;
  • 3)有状态自动配置地址,例如DHCPv6。
  • 4)手动配置。

 

12、IPv6的域名解析

附录:更多相关文章


[1] 更多网络编程基础资料:
《 - 》
《 - 》
《 - 》
《 - 》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
>> 

[2] QQ、微信团队分享的其它技术文章:
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》 
《》 
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》
《》 
《》
《》
《》 
《》 
《》 
《》 
《》 
《》
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》 
《》
《》
《》 
《》 
《》
《》 
《》
《》
《》
>> 

(本文同步发布于:)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务