IPv6技术(第4章)课件
- 格式:pdf
- 大小:520.59 KB
- 文档页数:54
IPv61.2 IPv6数据报格式2022.10学习目标•学完本节后,你将能够:▫掌握IPv6的基本报头格式▫掌握IPv6的扩展报头格式▫了解IPv6的扩展报头的规约IPv6报文格式•IPv6包由IPv6报头(40字节固定)、扩展报头和上层协议数据单元三部分组成。
•上层协议数据单元一般由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文IPv6基本报头•IPv6基本报头有8个字段,固定大小为40字节,每一个IPv6数据报都必须包含报头。
•基本报头提供报文转发的基本信息,会被转发路径上面的所有设备解析。
•IPv6基本报头格式如左图所示•Version:版本号,长度为4bit。
对于IPv6,该值为6。
•Traffic Class:流类别,长度为8bit。
等同于IPv4中的TOS字段,表示IPv6数据报的类或优先级,主要应用于QoS。
•Flow Label:流标签,长度为20bit。
IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
•Payload Length:有效载荷长度,长度为16bit。
有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。
该字段只能表示最大长度为65535字节的有效载荷。
如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。
•Next Header:下一个报头,长度为8bit。
该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。
•Hop Limit:跳数限制,长度为8bit。
该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。
每经过一个设备,该数值减去1,当该字段的值为0时,数据报将被丢弃。
目录1.4.1IPv6单播地址1.4.2IPv6组播地址1.4.3IPv6任播地址学习目标•学完本节后,你将能够:▫掌握IPv6单播地址▫掌握IPv6组播地址▫掌握IPv6任播地址1.4 IPv6地址分类1.4.1 IPv6单播地址IPv6的地址分类•IPv6地址分为单播地址(Unicast Address)、任播地址(Anycast Address)、组播地址(Multicast Address)三种类型•相比IPv4,IPv6取消了广播地址类型,以更丰富的组播地址代替,同时增加了任播地址类型。
•IPv6单播地址标识了一个接口,由于每个接口属于一个节点,因此每个节点的任何接口上的单播地址都可以标识这个节点。
发往单播地址的报文,由此地址标识的接口接收。
•单播地址分类✓未指定地址✓全球单播地址✓Link-Local Address(链路本地地址)✓Unique Local Address (本地站点地址,唯一本地地址ULA)✓Aggregatable Global Address(可聚合全球)✓环回地址•未指定地址IPv6中的未指定地址即0:0:0:0:0:0:0:0/128或者::/128。
该地址可以表示某个接口或者节点还没有IP地址,可以作为某些报文的源IP地址(例如在NS报文的重复地址检测中会出现)。
源IP地址是::的报文不会被路由设备转发。
•环回地址IPv6中的环回地址即0:0:0:0:0:0:0:1/128或者::1/128。
环回与IPv4中的127.0.0.1作用相同,主要用于设备给自己发送报文。
该地址通常用来作为一个虚接口的地址(如Loopback接口)。
实际发送的数据包中不能使用环回地址作为源IP地址或者目的IP地址。
•全球单播地址(2000::/3)全球单播地址是带有全球单播前缀的IPv6地址,其作用类似于IPv4中的公网地址。
这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。
第4章ICMPv6及相关协议机械工业出版社ISBN 7-111-23468-5学习内容及要求 本章学习内容及要求\要求了解ICMPv6协议的功用\理解ICMPv6与ICMPv4的比较内容\掌握ICMPv6协议格式内容\熟知ICMPv6错误报文格式和用途\熟知ICMPv6信息报文格式和用途\掌握ICMPv6处理规则\理解邻居发现协议的主要内容\掌握邻居发现协议的功能分析方法\熟知ICMP重定向报文内容和功用\掌握IPv6地址解析技术的方法\了解多播监听者发现协议MLD4.1 ICMPv6协议概述4.1.1 ICMPv6协议的功用\ICMPv6是IPv6的Internet控制报文协议ICMP(Internet Control Message Protocol),它属于IPv6协议的一个组成部分,和IPv6协议一起工作,IPv6网络中的每一个节点均要实现ICMPv6。
\在IPv6分组不能被正确处理的时候,ICMPv6向源节点报告IPv6分组在传输过程中的出错信息和通告信息,使网络中的节点可以知道网络中所传输的IPv6分组的情况,以及当前网络状态的重要信息。
现在ICMPv6的技术文档是RFC 2463需要说明的是\在IPv6网络中,用ICMPv6实现IPv4网络中的ICMP、ARP、IGMP 协议的功能。
ICMPv6是用运输层协议UDP传输的。
在发送ICMPv6报文时,是将ICMPv6报文作为IPv6分组的数据载荷。
IPv6与IPv4的网络层Comparison of network layers in version 4 and version 64.1.2 ICMPv6与ICMPv4的比较ICMPv6增加的功能包括:\Internet 组管理协议IGMP功能被加入到ICMPv6中。
\地址解析协议ARP和反向地址解析协议RARP 功能被加入到ICMPv6中。
\引入了邻居发现(ND)协议,它使用ICMPv6报文是为了确定同一个链路上的邻居的链路层地址、发现路由器、随时跟踪哪些邻居是可连接的,以及检测更改的链路层地址。
\ICMPv6还支持Mobile IPv6。
ICMPv6与ICMPv4报文类型的比较报文名称ICMPv4的类型ICMPv6的类型回声应答0129目的地不可达31协议包过大类型3代码4 2源抑制4无重定向5137回声请求8128超时113参数错误124时间戳13无时间戳回复14无路由器请求10133路由器公告9134邻居请求无135邻居公告无136家乡代理地址发现请求无144家乡代理地址发现应答无145移动前缀请求无146移动前缀公告无1474.2 ICMPv6协议格式4.2.1 ICMPv6报文的类型\ICMPv6报文有两种类型:\⑴ICMPv6错误报文,错误报文的Type(类型)字段中的最高位为0。
因此ICMP错误报文类型的编码值范围是0到127。
\⑵ICMPv6信息报文,信息报文的Type (类型)字段中的最高位为1。
因此ICMP 信息报文类型的编码值范围是l28到255。
比特代码类型报文主体0校验和图4.2 ICMPv6报文的一般格式81631ICMPv6报文的一般格式General format of ICMPv6 messagesICMPv6的两种报文分类Categories of ICMPv6 messages携带ICMPv6报文的IPv6分组的格式ICMPv6 报文IPv6 首部下一个首部=58ICMPv6 报文主体ICMPv6 首部图4.3 携带ICMPv6报文的IPv6分组的格式ICMPv6 两种类型的报文ICMPv6 错误报文包括:\报文类型1,目的地不可达(Destination Unreachable);\报文类型2,数据包过大(Packet Too Big);\报文类型3,超时(Time Exceeded);\报文类型4,参数问题(Parameter Problem)。
ICMPv6 信息报文包括:\报文类型128,回声请求(Echo Request);\报文类型129,回声应答(Echo Reply)。
需要注意的是:ICMPv6与ICMPv4相比,报文号、类型都发生了根本的改变。
ICMPv6与ICMPv4是两个不同的协议,两个版本的ICMP并不兼容。
4.2.2 ICMPv6错误报文ICMPv6错误报文有四种类型:\目的地不可达;数据包过大;超时;参数问题。
每种ICMPv6错误报文根据错误报告的种类或者它所携带的信息的不同,报文的首部会有不同。
比特代码(0—4)1未使用校验和图4.6 目的地不可达报文的格式81631长度不定,调用包的大小与不包含ICMPv6包的最小IPv6的MTU 相当lCMPv6错误报告报文的分类Error-reporting messageslCMPv6 错误报文类型和代码报文号报文类型字段代码字段1目的地不可到达0=没有到目的地路由l= 与目的地的通信被管理性禁止2= 超出源地址的范围( 草案)3= 地址不可达4= 端口不可达2数据包过大发送方将代码字段设为0,接收方忽略代码字段3超时0= 传输中的跳数超出限制l= 分段重组超时4参数问题0= 遇到错误的Header ( 首部) 字段l= 遇到不可识别的Next Header ( 下一首部)类型2= 遇到不可识别的IPv6选项Pointer(指针)字段用来指出检测到错误的调用数据包内的8位偏移量。
如果出错的字段超出了一个ICMPv6错误报文可以容纳的最大尺寸的话,指针会指向ICMPv6数据包结尾之外。
目的地不可达Destination-unreachable message format数据包过大Packet-too-big message format超时Time-exceeded message format参数问题Parameter-problem message format重定向Redirection message format4.2.3 ICMPv6信息报文RFC2463文档中定义了两类ICMPv6信息报文:\回声请求(Echo Request)和回声应答(Echo Reply)。
其他的ICMPv6信息报文用于\路径MTU发现(Path MTU Discovery)和邻居发现(Neighbor Discovery)。
最常见的TCP/IP 工具之一,例如数据包Internet探索者PING(Packet INternet Groper)\使用的就是回声请求和回声应答报文。
ICMPv6信息报文分类Query messages回声请求和回声应答Echo request and reply messagesICMPv6组成员关系报文Group-membership messagesICMPv6组成员关系报文Group-membership message formats(query)Group-membership message formats(report)Group-membership message formats(termination)Four situationsof group-membershipoperation4.2.4 ICMPv6处理规则如果一个节点收到一条未知类型的ICMPv6错误报文的话,该节点必须要把它传送给上层。
如果一个节点收到一条未知类型的ICMPv6信息,该节点必须无声无息地将其丢弃。
和在ICMPv4 中一样,最有可能导致ICMP错误报文来自ICMP报文体中\ICMP数据包不能超过IPv6的最小MTU。
不准发送ICMPv6报文的6种情况。
4.3邻居发现协议4.3.1邻居发现协议概述\邻居发现协议实现了在IPv4中应用的地址解析协议(ARP)和ICMP路由器发现和重定向,还加入了一些新的功能。
IPv6节点利用邻居发现协议可以实现的机制有:\⑴确定同一链路上节点的链路层地址。
\⑵查找可以转发它们的数据包的邻近路由器。
\⑶随时跟踪哪些邻居可达,哪些不可达,并且检测有改变的链路层地址。
对于IPv4协议集改进的12个内容。
邻居发现协议由5条ICMPv6报文组成。
4.3.2 邻居发现协议的功能路由器和前缀发现\路由器发现功能用来标识与给定链路相连的路由器,并获取与地址自动配置相关的前缀和配置参数。
地址解析\IPv6节点通过邻居请求和邻居通告报文将IPv6地址解析成链路层地址对多播地址不执行地址解析。
\节点通过多播邻居请求报文来激活地址解析过程,邻居请求报文用来请求目标路由器返回它的链路层地址。
4.3.3 路由器请求和路由器通告路由器以一定的时间间隔发出路由器通告(Router Advertisement)报文。
主机也可以通过发出路由器请求(Router Solicitation)报文来请求路由器通告\提示路由器不必按照固定的时间间隔,尽快发出一个路由器通告。
比特代码(设为0)133保留字(未使用,由发送方设置为0)校验和图4.15 路由器请求报文的格式81631选项(长度不定,若可知的话,是发送方的链路层地址)路由请求报文Router-solicitation messageRouter advertisement message 路由通告报文4.3.4 邻居请求和邻居通告 这两个报文完成两个功能:\在IPv4中由ARP 处理的链路层地址解析,以及邻居不可达性检测机制。
如果目的地址是一个多播地址,那么源地址正在解析一个链路层地址。
如果源地址正在检测一个邻居的可达性,那么目的地址就是一个单播地址。
比特代码(设为0)1350校验和图4.17 邻居请求报文的格式81631选项保留字(只用于不可达检测消息报文)目的地址邻居请求报文Neighbor-solicitation message邻居通告报文Neighbor-advertisement messageICMPv6组成员关系报文Group-membership messagesICMPv6组成员关系报文Group-membership message formats(query)Group-membership message formats(report)Group-membership message formats(termination)Four situationsof group-membershipoperation4.3.5 ICMP 重定向报文路由器发出ICMP 重定向(ICMP Redirect)报文是用来\告诉节点在去往给定目的地的路径上更优的下一跳节点地址。
重定向报文还可以告知节点,它所使用的目的地实际上是同一个链路上的一个邻居,而不是远程子网上的一个节点。