概述
目录
IPV6地址的表示形式
IPV6地址类型
单播地址
本地链路地址
未指定地址
环回地址
兼容地址(内嵌IPv4地址的IPv6地址)
组播地址
指定地址
重点要知道的IPV6和IPV4的报文格式的区别
每个字段的含义
IPv6包头去掉的部分
如何通过下一个首部来构造报文
分片的实例和路由选择的实例
分片:
路由选择:
IPV6过渡技术:
双协议栈(Dual Stack)
隧道技术(Tunnel):封装
网络地址转换协议 NAT-PT(Network Address Translation Translation)
ISATAP基本的概念(如何使用)
重点总结:
IPV6地址的表示形式
- 首选格式:IPV6地址表示为冒号分十六进制格式:example:21DA(十六位):00D3:0000:0000:02AA:00FF:FE22:9C5A
- 压缩表示:中间连续的0写为 :: (只能出现一次);十六位前面0可用 : 省略:example:21DA:D3::2AA:FF:FE22:9C5A
- 内嵌IPV4地址的IPV6地址表示,例如:::FFFF:192.168.1.4
- IPV6地址=前缀+接口标识 前缀长度用/XX表示 e.g:2001:410:0:1::45ff/60
- 前缀:网络ID
- 接口标识:主记ID,一般64位
IPV6地址类型
IPV6可以分为
- 单播地址 one 2 one
- 组播(多播)地址 one 2 many :你在大街上大喊一声“美女”, 会有一群女性回头看你。
- 任播地址 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的报文格式的区别
- ipv4报文最长65535bytes / ipv拓展首部加上数据(统称有效负荷)最长65535bytes
- IPV6少了头长度,因为没有选项字段(有扩展包头)所以IPV6头部长度固定 ,IPV4不定长
- 没有了标志(DF分片标志)、标识和片偏移,分片由源节点实现。
- 没有了上层协议标志、标识和头部校验和(提高路由的选择效率,路径上的所有路由器在转发处理期间不必重新计算校验和。第2层和第4层中的校验和都已足够强壮,从而不必考虑对第三层校验和的需求。对IPv6而言, UDP的校验和是必需的)
- IPv4包头有14个字段(带选项和填充字段),基本的 IPv4包头有12个字段,IPv6包头只有8个字段
- IPv6包头字段64bit对齐,能够直接对内存存取
每个字段的含义
- 版本号(4位):version=6。
- 业务类型(8位):这是为了区分不同的 IPv6 数据报的 类别或优先级。
- 流标签(20位):支持资源预留。流是互联网上从特定 源到特定目的的一系列分组(如实时音频视频),路径 上的路由器都保证指明的服务质量。源通过label标示出 相应的一系列分组。
- 净荷长(16位):除去首部外的总长度。指明 IPv6 数 据报除首部以外的字节数(所有扩展首部都算在有效载 荷之内),其最大值是 64 KB。
- 下一个首部(8 位):它相当于 IPv4 的协议字段或可选字段
- 跳数限制 (8 位) :路由器在转发数据报时将跳数限制的值 减1。当值减为0时,就要将此数据报丢弃。
- 源地址(128位):标识发送分组的节点的IPv6地址。
- 目的地址(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过渡技术:
目前,成熟的技术主要有以下三种:
- 双协议栈(Dual Stack)
- 隧道技术(Tunnel)
- 网络地址转换协议 NAT-PT(Network Address Translation Translation)
下面介绍每一个过渡方式它的优缺点以及基本的原理
双协议栈(Dual Stack)
设备同时支持IPV4与IPV6协议
- 优点:互通性好,实现简单,允许应用逐渐从IPv4过渡到IPv6
- 缺点:对每个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的映射。
实例:
解释:
- IPV6(IP为1::1)主机 想查询IPV4(为1.1.1.3)主机,则向IPV4的DNS服务器发送报文,目的地址加上前缀
- NAT-PT将地址转换:源地址 IPV6被映射为IPV4,目的地址IPV4提取。
- IPV4网络传输,DNS接收后回复,又经过NAT-PT网关映射
- 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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复