我是靠谱客的博主 英俊小笼包,最近开发中收集的这篇文章主要介绍TCP/IP(3)——IPV6,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

 

 

 

IPV6地址的表示形式

IPV6地址类型

单播地址

本地链路地址

未指定地址

环回地址

兼容地址(内嵌IPv4地址的IPv6地址)

组播地址

指定地址

重点要知道的IPV6和IPV4的报文格式的区别

每个字段的含义

IPv6包头去掉的部分

如何通过下一个首部来构造报文

分片的实例和路由选择的实例

分片:

路由选择:

IPV6过渡技术:

双协议栈(Dual Stack)

隧道技术(Tunnel):封装

网络地址转换协议 NAT-PT(Network Address Translation Translation)

ISATAP基本的概念(如何使用)

重点总结:


 

 

IPV6地址的表示形式

  1. 首选格式:IPV6地址表示为冒号分十六进制格式:example:21DA(十六位):00D3:0000:0000:02AA:00FF:FE22:9C5A
  2. 压缩表示:中间连续的0写为  ::  (只能出现一次);十六位前面0可用 : 省略:example:21DA:D3::2AA:FF:FE22:9C5A
  3. 内嵌IPV4地址的IPV6地址表示,例如:::FFFF:192.168.1.4
  • IPV6地址=前缀+接口标识      前缀长度用/XX表示                  e.g:2001:410:0:1::45ff/60
  • 前缀:网络ID
  • 接口标识:主记ID,一般64位

IPV6地址类型

IPV6可以分为

  1. 单播地址   one 2 one 
  2. 组播(多播)地址   one 2 many  :你在大街上大喊一声“美女”, 会有一群女性回头看你。
  3. 任播地址  one 2 one-of-many(网络接口):作为老板,你在公司大喊一声“开发组的过来一个人”, 总会有一个人灰溜溜去响应, 挨批还是发钱啊?

 少了广播,用任播替代,减少了无用主机收到数据的消耗。

  • 没有定义广播地址,县里开大会,只同时通知了A村、B村、C村参加就是组播;同时通知了所有的村子参加就是广播了!

单播地址

本地链路地址

单播本地链路地址:只能在连接在同一本地链路的节点之间使用; 

IPv6本地链路地址前缀FE80::/10

当在一个节点上启用IPv6时,节点的每个接口自动配置一个本地链路地址;

  • 本地链路地址自动生成方法: 自动将48bit的以太网MAC地址扩展成64bit,再挂在一个 64bit的前缀后面,组成一个IPV6地址

未指定地址

  • 全0,表示为 ::/128;
  • 仅用于接口没有分配地址(IP)时作为源地址;
  • 在重复地址检测中出现;
  • 含有未指定地址的包不会被转发

环回地址

  • 表示为 ::1/128;
  • 表示自己,如同IPv4中的127.0.0.1

兼容地址(内嵌IPv4地址的IPv6地址)

  • IPv4兼容IPv6地址:用于IPv4兼容IPv6自动隧道
  • IPv4映射IPv6地址:用于IPv6表示IPv4地址

组播地址

指定地址

  • FF02::1     在本地链路范围内的所有节点 (PC)
  • FF02::2     在本地链路范围内的所有路由

重点要知道的IPV6和IPV4的报文格式的区别

  1. ipv4报文最长65535bytes   /  ipv拓展首部加上数据(统称有效负荷)最长65535bytes
  2. IPV6少了头长度,因为没有选项字段(有扩展包头)所以IPV6头部长度固定IPV4不定长
  3. 没有了标志(DF分片标志)、标识和片偏移,分片由源节点实现。
  4. 没有了上层协议标志、标识和头部校验和(提高路由的选择效率,路径上的所有路由器在转发处理期间不必重新计算校验和。第2层和第4层中的校验和都已足够强壮,从而不必考虑对第三层校验和的需求。对IPv6而言, UDP的校验和是必需的
  5.  IPv4包头有14个字段(带选项和填充字段),基本的 IPv4包头有12个字段,IPv6包头只有8个字段 
  6. IPv6包头字段64bit对齐,能够直接对内存存取

每个字段的含义

  1. 版本号(4位):version=6。
  2. 业务类型(8位):这是为了区分不同的 IPv6 数据报的 类别或优先级。
  3. 流标签(20位):支持资源预留。流是互联网上从特定 源到特定目的的一系列分组(如实时音频视频),路径 上的路由器都保证指明的服务质量。源通过label标示出 相应的一系列分组。
  4. 净荷长(16位):除去首部外的总长度。指明 IPv6 数 据报除首部以外的字节数(所有扩展首部都算在有效载 荷之内),其最大值是 64 KB。
  5. 下一个首部(8 位):它相当于 IPv4 的协议字段或可选字段
  6. 跳数限制 (8 位) :路由器在转发数据报时将跳数限制的值 减1。当值减为0时,就要将此数据报丢弃。
  7. 源地址(128位):标识发送分组的节点的IPv6地址。
  8. 目的地址(128位):标识接收分组的节点的IPv6地址

IPv6包头去掉的部分

  • 包头长度:IPv6包头为固定长度的40个字节基本包头和扩展包头
  • 标示、标志和偏移字段:网络中的中间路由器不再处理分段,只在产生数据包的源节点处理分段
  • 包头校验和:由链路层和传输层都有校验和,对IPv6而言, UDP的校验和是必需的
  • 选项和填充:选项由扩展包头处理,填充字段也去

IPV6拓展首部的优点:将原来IPV4中的选项部分都放在拓展首部,中间路由器不处理拓展首部(逐跳选项扩展首部除外),大大提高路由器效率


如何通过下一个首部来构造报文

  • 解释:IPV6通过基本首部的下一个首部字段指向扩展首部
  • 有效负载是除了基本首部外扩展首部加上TCP/UDP首部和数据部分。

在 RFC 2460 中定义了六种扩展首部:  逐跳选项  路由选择  分片  鉴别  封装安全有效载荷  目的站选项

 

分片的实例和路由选择的实例

分片:

IPV6把分片限制为由源站来完成。源站可以采用最小MTU(1280bytes)或者在发送数据之前完成路径最大传送单元发现(Path MTU Discobvery)来确定路径的最小MTU。

若源站分片,则加上分片扩展首部,格式如下:

 

 

源数据中,分为不可分片部分和可分片部分。

  • 不可分片部分为IPV6首部,以及中间节点需要处理的扩展首部(源路由选择 首部 前面的扩展首部)

例如:Hop-by-hop 逐跳首部、源路由选择扩展首部

  • 可分片部分为原分组目的节点处理的扩展首部与上层协议数据包

分片实例:

路由选择:

作用:指明在到达目的节点之前必须经过的路由节点。

路由选择扩展首部如下:

剩余路由段从0开始,最大为23;n最大值为23。

 源节点发送分组时,将首部的目的地址字段,设置为地址向量表中的第一个地址。

 该分组一直被转发,直到到达第一个节点,即目的 地址指定的节点。只有该路由器才检查源路由选择 扩展首部,沿途的该路由器之前的路由器都忽略源 路由选择扩展首部。

路由选择例子:

解释:目的地址都是下一跳路由,中间节点通过剩余路由段数知道下一跳路由节点IP。

传输过程中,IPv6首部中的目的地址和地址向量表中的地址进行交换


IPV4和IPV6处理路由选择时的区别:

  • IPV4每一个路由器都检查选项中的路由选择。
  • IPV6只有在IP地址和目的地址字段中的地址一致的时候,才查看处理。

IPV6过渡技术:

目前,成熟的技术主要有以下三种:

  1. 双协议栈(Dual Stack)
  2. 隧道技术(Tunnel)
  3. 网络地址转换协议 NAT-PT(Network Address Translation Translation)

下面介绍每一个过渡方式它的优缺点以及基本的原理

双协议栈(Dual Stack)

设备同时支持IPV4与IPV6协议

  1.  优点:互通性好,实现简单,允许应用逐渐从IPv4过渡到IPv6
  2.  缺点:对每个IPv4节点都要升级,成本较大,没有解决IPv4地址紧缺问题

隧道技术(Tunnel):封装

IPv6隧道将IPv6报文封装在IPv4报文中,穿越IPv4网络进行通信,它要求隧道两端的网络设备能够支持双栈协议

隧道技术可分别以第2层或第3层隧道协议为基础:

PPTP(点对点隧道协议)、L2TP(第二层隧道协议)和L2F(第2层转发协议)都属于第2层隧道协议,是将用户数据封装在点对点协议(PPP)帧中通过互联网发送。

IPIP(IP over IP)以及IPSec隧道模式属于第3层隧道协议,是将IP包封装在附加的IP包头中,通过IP网络传送。

网络地址转换协议 NAT-PT(Network Address Translation Translation)

可以类比IPV4中的NAT,详情:NAT百度百科

不过,NAT是端口多路复用(映射),而NAT-PT是通过NAT-PT网关实现IPV6到IPV4的映射

实例:

解释:

  1. IPV6(IP为1::1)主机 想查询IPV4(为1.1.1.3)主机,则向IPV4的DNS服务器发送报文,目的地址加上前缀
  2. NAT-PT将地址转换:源地址 IPV6被映射为IPV4,目的地址IPV4提取。
  3. IPV4网络传输,DNS接收后回复,又经过NAT-PT网关映射
  4. IPV6收到DNS服务器的消息

ISATAP基本的概念(如何使用)

ISATAP是一种非常容易部署的基于隧道的IPV6过度机制,只需要支持V4/V6双栈的PC(左)ISATATP路由器(右)即可实现对IPV6资源的访问。

 

图解:

 IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)

分配给ISATAP主机和路由器各自一个接口标识

  • 主机是0200:5EFE+原IPV4                      图中是0200:5EFE:1.1.1.1 即0200:5EFE:0101:0101
  • 路由器是0000:5EFE+原IPV4                  图中是0000:5EFE:2.2.2.2 即0000:5EFE:0202:0202

则原理就是在IPV4中创建一个ISATAP隧道,主机发送请求后,路由将自己的IPV6(全球单播地址)的/64前缀发给主机,使用前缀+”特殊的接口标识“来构造IPV6地址。之后就可以将IPV6资源访问报文放在IPV4的包中,转发给ISATAP路由器之后再由ISATAP路由器解封转,转发给IPV6目的主机。


重点总结:

① IPv6地址长度128位,支持自动无状态配置,无广播地 址,以组播地址替代;

② IPv6数据报采用固定长度、固定格式,长度为40字节; 通过扩展头来扩充数据报内容。去掉了头长度、标志、 偏移、校验和等非必须字段;

③ IPv6过渡技术主要包括双栈技术、隧道技术和地址转换 技术,需了解地址转换技术NAT-PT、ISATAP的基本原 理和过程

最后

以上就是英俊小笼包为你收集整理的TCP/IP(3)——IPV6的全部内容,希望文章能够帮你解决TCP/IP(3)——IPV6所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部