IPv6技术教学讲解课件_第1页
IPv6技术教学讲解课件_第2页
IPv6技术教学讲解课件_第3页
IPv6技术教学讲解课件_第4页
IPv6技术教学讲解课件_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章ICMPv6及相关协议机械工业出版社ISBN7-111-23468-5第4章ICMPv6及相关协议机械工业出版社1学习内容及要求本章学习内容及要求要求了解ICMPv6协议的功用理解ICMPv6与ICMPv4的比较内容掌握ICMPv6协议格式内容熟知ICMPv6错误报文格式和用途熟知ICMPv6信息报文格式和用途掌握ICMPv6处理规则理解邻居发现协议的主要内容掌握邻居发现协议的功能分析方法熟知ICMP重定向报文内容和功用掌握IPv6地址解析技术的方法了解多播监听者发现协议MLD学习内容及要求本章学习内容及要求24.1ICMPv6协议概述4.1.1ICMPv6协议的功用ICMPv6是IPv6的Internet控制报文协议ICMP(InternetControlMessageProtocol),它属于IPv6协议的一个组成部分,和IPv6协议一起工作,IPv6网络中的每一个节点均要实现ICMPv6。在IPv6分组不能被正确处理的时候,ICMPv6向源节点报告IPv6分组在传输过程中的出错信息和通告信息,使网络中的节点可以知道网络中所传输的IPv6分组的情况,以及当前网络状态的重要信息。现在ICMPv6的技术文档是RFC2463需要说明的是在IPv6网络中,用ICMPv6实现IPv4网络中的ICMP、ARP、IGMP协议的功能。ICMPv6是用运输层协议UDP传输的。在发送ICMPv6报文时,是将ICMPv6报文作为IPv6分组的数据载荷。4.1ICMPv6协议概述4.1.1ICMPv6协议的3Comparisonofnetworklayersin

version4andversion6IPv6与IPv4的网络层Comparisonofnetworklayersi44.1.2ICMPv6与ICMPv4的比较ICMPv6增加的功能包括:Internet组管理协议IGMP功能被加入到ICMPv6中。地址解析协议ARP和反向地址解析协议RARP功能被加入到ICMPv6中。引入了邻居发现(ND)协议,它使用ICMPv6报文是为了确定同一个链路上的邻居的链路层地址、发现路由器、随时跟踪哪些邻居是可连接的,以及检测更改的链路层地址。ICMPv6还支持MobileIPv6。4.1.2ICMPv6与ICMPv4的比较ICMPv6增5ICMPv6与ICMPv4报文类型的比较报文名称ICMPv4的类型ICMPv6的类型回声应答0129目的地不可达31协议包过大类型3代码42源抑制4无重定向5137回声请求8128超时113参数错误124时间戳13无时间戳回复14无路由器请求10133路由器公告9134邻居请求无135邻居公告无136家乡代理地址发现请求无144家乡代理地址发现应答无145移动前缀请求无146移动前缀公告无147ICMPv6与ICMPv4报文类型的比较报文名称ICMP64.2ICMPv6协议格式4.2.1ICMPv6报文的类型ICMPv6报文有两种类型:⑴ICMPv6错误报文,错误报文的Type(类型)字段中的最高位为0。因此ICMP错误报文类型的编码值范围是0到127。⑵ICMPv6信息报文,信息报文的Type(类型)字段中的最高位为1。因此ICMP信息报文类型的编码值范围是l28到255。比特代码类型报文主体0校验和图4.2ICMPv6报文的一般格式816314.2ICMPv6协议格式4.2.1ICMPv6报文的7GeneralformatofICMPv6messagesICMPv6报文的一般格式GeneralformatofICMPv6messa8CategoriesofICMPv6messagesICMPv6的两种报文分类CategoriesofICMPv6messagesI9携带ICMPv6报文的IPv6分组的格式ICMPv6报文IPv6首部下一个首部=58ICMPv6报文主体ICMPv6首部图4.3携带ICMPv6报文的IPv6分组的格式携带ICMPv6报文的IPv6分组的格式ICMPv6报文10ICMPv6两种类型的报文ICMPv6错误报文包括:报文类型1,目的地不可达(DestinationUnreachable);报文类型2,数据包过大(PacketTooBig);报文类型3,超时(TimeExceeded);报文类型4,参数问题(ParameterProblem)。ICMPv6信息报文包括:报文类型128,回声请求(EchoRequest);报文类型129,回声应答(EchoReply)。需要注意的是:ICMPv6与ICMPv4相比,报文号、类型都发生了根本的改变。ICMPv6与ICMPv4是两个不同的协议,两个版本的ICMP并不兼容。ICMPv6两种类型的报文ICMPv6错误报文包114.2.2ICMPv6错误报文ICMPv6错误报文有四种类型:目的地不可达;数据包过大;超时;参数问题。每种ICMPv6错误报文根据错误报告的种类或者它所携带的信息的不同,报文的首部会有不同。比特代码(0—4)1未使用0校验和图4.6目的地不可达报文的格式81631长度不定,调用包的大小与不包含ICMPv6包的最小IPv6的MTU相当4.2.2ICMPv6错误报文ICMPv6错误报文有四种12Error-reportingmessageslCMPv6错误报告报文的分类Error-reportingmessageslCMPv613lCMPv6错误报文类型和代码报文号报文类型字段代码字段1目的地不可到达0=没有到目的地路由l=与目的地的通信被管理性禁止2=超出源地址的范围(草案)3=地址不可达4=端口不可达2数据包过大发送方将代码字段设为0,

接收方忽略代码字段3超时0=传输中的跳数超出限制l=分段重组超时4参数问题0=遇到错误的Header(首部)字段l=遇到不可识别的NextHeader(下一首部)类型2=遇到不可识别的IPv6选项Pointer(指针)字段用来指出检测到错误的调用数据包内的8位偏移量。如果出错的字段超出了一个ICMPv6错误报文可以容纳的最大尺寸的话,指针会指向ICMPv6数据包结尾之外。lCMPv6错误报文类型和代码报文号报文类型字段代码字段14Destination-unreachablemessageformat目的地不可达Destination-unreachablemessag15Packet-too-bigmessageformat数据包过大Packet-too-bigmessageformat数16Time-exceededmessageformat超时Time-exceededmessageformat超时17Parameter-problemmessageformat参数问题Parameter-problemmessageform18Redirectionmessageformat重定向Redirectionmessageformat重定向194.2.3ICMPv6信息报文RFC2463文档中定义了两类ICMPv6信息报文:回声请求(EchoRequest)和回声应答(EchoReply)。其他的ICMPv6信息报文用于路径MTU发现(PathMTUDiscovery)和邻居发现(NeighborDiscovery)。最常见的TCP/IP工具之一,例如数据包Internet探索者PING(PacketINternetGroper)使用的就是回声请求和回声应答报文。4.2.3ICMPv6信息报文RFC2463文档中定义了20QuerymessagesICMPv6信息报文分类QuerymessagesICMPv6信息报文分类21Echorequestandreplymessages回声请求和回声应答Echorequestandreplymessage22Group-membershipmessagesICMPv6组成员关系报文Group-membershipmessagesICMPv23Group-membershipmessageformats

(query)ICMPv6组成员关系报文Group-membershipmessageforma24Group-membershipmessageformats

(report)Group-membershipmessageforma25Group-membershipmessageformats

(termination)Group-membershipmessageforma26Foursituationsofgroup-membershipoperationFoursituations274.2.4ICMPv6处理规则如果一个节点收到一条未知类型的ICMPv6错误报文的话,该节点必须要把它传送给上层。如果一个节点收到一条未知类型的ICMPv6信息,该节点必须无声无息地将其丢弃。和在ICMPv4中一样,最有可能导致ICMP错误报文来自ICMP报文体中ICMP数据包不能超过IPv6的最小MTU。不准发送ICMPv6报文的6种情况。4.2.4ICMPv6处理规则如果一个节点收到一条未知类284.3邻居发现协议4.3.1邻居发现协议概述邻居发现协议实现了在IPv4中应用的地址解析协议(ARP)和ICMP路由器发现和重定向,还加入了一些新的功能。IPv6节点利用邻居发现协议可以实现的机制有:⑴确定同一链路上节点的链路层地址。⑵查找可以转发它们的数据包的邻近路由器。⑶随时跟踪哪些邻居可达,哪些不可达,并且检测有改变的链路层地址。对于IPv4协议集改进的12个内容。邻居发现协议由5条ICMPv6报文组成。4.3邻居发现协议4.3.1邻居发现协议概述294.3.2邻居发现协议的功能路由器和前缀发现路由器发现功能用来标识与给定链路相连的路由器,并获取与地址自动配置相关的前缀和配置参数。地址解析IPv6节点通过邻居请求和邻居通告报文将IPv6地址解析成链路层地址对多播地址不执行地址解析。节点通过多播邻居请求报文来激活地址解析过程,邻居请求报文用来请求目标路由器返回它的链路层地址。4.3.2邻居发现协议的功能路由器和前缀发现304.3.3路由器请求和路由器通告路由器以一定的时间间隔发出路由器通告(RouterAdvertisement)报文。主机也可以通过发出路由器请求(RouterSolicitation)报文来请求路由器通告提示路由器不必按照固定的时间间隔,尽快发出一个路由器通告。比特代码(设为0)133保留字(未使用,由发送方设置为0)0校验和图4.15路由器请求报文的格式81631选项(长度不定,若可知的话,是发送方的链路层地址)4.3.3路由器请求和路由器通告路由器以一定的时间间隔发31Router-solicitationmessage路由请求报文Router-solicitationmessage路由请32Routeradvertisementmessage路由通告报文Routeradvertisementmessage路由334.3.4邻居请求和邻居通告这两个报文完成两个功能:在IPv4中由ARP处理的链路层地址解析,以及邻居不可达性检测机制。如果目的地址是一个多播地址,那么源地址正在解析一个链路层地址。如果源地址正在检测一个邻居的可达性,那么目的地址就是一个单播地址。比特代码(设为0)1350校验和图4.17邻居请求报文的格式81631选项保留字(只用于不可达检测消息报文)目的地址4.3.4邻居请求和邻居通告这两个报文完成两个功能:比特34Neighbor-solicitationmessage邻居请求报文Neighbor-solicitationmessage邻35Neighbor-advertisementmessage邻居通告报文Neighbor-advertisementmessage36Group-membershipmessagesICMPv6组成员关系报文Group-membershipmessagesICMPv37Group-membershipmessageformats

(query)ICMPv6组成员关系报文Group-membershipmessageforma38Group-membershipmessageformats

(report)Group-membershipmessageforma39Group-membershipmessageformats

(termination)Group-membershipmessageforma40Foursituationsofgroup-membershipoperationFoursituations414.3.5ICMP重定向报文路由器发出ICMP重定向(ICMPRedirect)报文是用来告诉节点在去往给定目的地的路径上更优的下一跳节点地址。重定向报文还可以告知节点,它所使用的目的地实际上是同一个链路上的一个邻居,而不是远程子网上的一个节点。比特代码(设为0)1370校验和图4.19重定向报文的格式81631选项保留字(由发送者初始化为0)目标地址(16字节)目的地址(16字节)4.3.5ICMP重定向报文路由器发出ICMP重定向(I424.3.6邻居发现选项邻居发现报文可能包含一个或多个选项,有些选项可能在同一报文中出现多次也就是说邻居发现报文包含着长度不定的Options(选项)字段。比特长度类型0选项(长度不定)图4.20邻居发现选项的格式816314.3.6邻居发现选项邻居发现报文可能包含一个或多个选项434.3.7邻居缓存和目的地缓存IPv6节点需要维护各种信息表格。在这些表格中,邻居缓存和目的地缓存是特别重要的。邻居缓存目的地缓存RFC2461文档对邻居缓存和目的地缓存给出描述和定义一条邻居缓存记录可以处于5种状态之一4.3.7邻居缓存和目的地缓存IPv6节点需要维护各种信444.4IPv6地址解析技术4.4.1主机的数据结构IPv6协议的一个设计要求是:即使在一个有限的网络内,主机也必须正确工作。因此主机必须能实现自动配置,必须能学习到交换数据的有关目的地的最基本信息。储存这些信息的存储器叫做缓存,其数据结构是一系列记录的排列,称作表项。每个表项储存的信息有一定的有效期,需要周期性地清除缓存中超时的表项。上述数据结构可以用不同的方法实现。其中一种实现方法是对所有数据结构使用单个最长匹配路由表。4.4IPv6地址解析技术4.4.1主机的数据结构454.4.2主机数据包的发送算法IPv6单播地址下一跳确定的操作方法是:发送者使用前缀列表中的前缀进行最长前缀匹配,确定数据包(分组)的目的地是在连接的还是非连接的。如果下一跳是在连接(online)的,下一跳地址就和目的地地址相同,否则发送者从默认路由器列表中选择下一跳。路由器的工作步骤是:⑴创建一个新表项,并设置其状态为不完全。⑵开始进行地址解析。⑶对传送的包进行排队。4.4.2主机数据包的发送算法IPv6单播地址下一跳确定464.4.3邻居发现协议与ARP协议的比较在IPv6中没有继续使用ARP的主要原因是:ARP依赖于IPv6和使用多播的ICMPv6报文,没有必要为使用ARP的每个不同类型网络都重新构造ARP,任一支持IPv6和多播的节点也应该支持邻居发现。对多播的支持很重要,在链路层更是如此。多播在支持多路同时访问的以太网之类的网络上很容易实现。在文档RFC1970中给出IPv6的邻居发现协议的技术规范,描述了邻居发现协议机制及其实现方法。邻居发现协议通过定义特殊的ICMP报文类型来执行。邻居发现协议比IPv4协议的ARP协议和RARP协议有了很大改进。4.4.3邻居发现协议与ARP协议的比较在IPv6中没有474.4.4地址可达性检测主机与邻居节点之间所有路径都应进行邻居不可达性检测,包括:主机到主机主机到路由器以及路由器到主机之间的通信,也可用于路由器之间以检测邻居或邻居前向路径发生的故障。邻居不可达性检测与向邻居发送数据包同时进行。在邻居可达性确认期间,路由器继续向缓存链路层地址的邻居发送数据包;如果没有数据包发向邻居,则不发送检测。4.4.4地址可达性检测主机与邻居节点之间所有路径都应进484.4.5重定向技术重定向功能是将主机重定向到一个更好(更佳)的第一跳路由器,或者向主机通告发送给目的节点的分组不需要路由器转发,因为目的节点就是邻居节点。当选择的路由器作为分组传送的下一跳并不是最佳选择时,路由器需产生重定向报文。路由器必须能够确定与它相邻的路由器的本地链路(1ink-local)地址,以保证收到重定向报文中的目标地址。对静态路由情况,下一跳路由器的地址应用本地链路地址表示,对于动态路由,需要相邻路由器之间交换它们的本地链路地址。4.4.5重定向技术重定向功能是将主机重定向到一个更好(49重定向前后分组转发路径的变化主机1数据流向图4.22重定向前后分组转发路径的变化主机2路由器1路由器2主机1主机2路由器1路由器2路由器路由器主机1主机1主机2主机2重定向前后分组转发路径的变化主机1数据流向图4.22重定504.5多播监听者发现协议MLD4.5.1多播监听者发现协议概述多播监听者是希望收到多播数据报的节点。IPv6路由器通过多播监听者发现MLD协议,发现在与它直接连接的链路和出现的多播监听者,同时发现这些多播监听者感兴趣的多播地址。MLD用3个ICMPv6报文取代了IPv4网络所用的IGMP协议。可以通过报文中多播地址字段的内容区分不同的MLD报文。RFC3810给出MLD协议的第2版MLDv2,MLDv2与MLDv1兼容增加了对源过滤器的支持,可以区分多播数据报发出的源地址。多播路由器通过多播路由协议收集多播监听者的信息,并把监听状态通告与它相邻的多播路由器。4.5多播监听者发现协议MLD4.5.1多播监听者发现514.5.2多播监听者发现报文格式MLDv2的报文类型是ICMPv6报文类型的子集与ICMPv6一样,也是通过IPv6分组中下一个首部字段值为58来标识。MLDv2的报文类型有两种:多播监听者查询多播监听者报告。4.5.2多播监听者发现报文格式MLDv2的报文类型是I52多播监听者查询报文多播监听者查询报文的类型为130,由处于查询状态的多播路由器发出用于查询邻居接口的多播监听状态。比特代码(0)S0图4.24多播监听者查询报文的格式81631校验和类型最大响应代码保留字多播地址源地址数QQICQRV保留源地址[i]源地址[n]……多播监听者查询报文多播监听者查询报文的类型为130,由处于53多播监听者报告报文多播监听者报告报文由IPv6节点发送给邻居路由器用于报告节点接口当前的多播监听状态或多播监听状态的变化。比特保留字(0)0图4.25多播监听者报告报文的格式81631校验和类型多播地址记录数保留字多播地址记录[i]……多播地址记录[n]多播监听者报告报文多播监听者报告报文由IPv6节点发送给邻541.ICMP协议有什么作用?2.ICMPv6协议兼容ICMPv4协议吗?3.分析比较ICMPv6协议和ICMPv4协议的异同点。4.ICMPv6与ICMPv4相比,分别增加、减少了哪些报文类型?5.ICMPv6报文分为哪两种类型?它们有何区别?6.试分析IPv6中如何利用数据包过大错误报文,来实现PMTU发现的?7.IPv6中的跟踪路由(Traceroute)功能是如何实现的?8.回声应答报文与回声请求报文中的数据部分有何联系?1.ICMP协议有什么作用?551.IPv6节点利用邻居发现协议可以实现哪些机制?2.节点有哪两种方式获取路由器通告报文?3.路由器请求报文中的目的地址通常是什么?4.如何判断一条路由器通告报文是周期性发出的,还是作为请求报文的应答而发出的?5.路由器通告报文中的可达时间字段的含义是什么?6.路由器通告报文中的选项字段的内容是什么?7.邻居请求报文和邻居通告报文如何实现IPv4中的ARP功能的?8.邻居请求报文和邻居通告报文如何实现邻居不可达检测功能的?9.如何区分ICMP重定向报文中的目标地址和目的地址?10.ICMP重定向报文有什么作用?11.邻居缓存有什么作用?12.目的地缓存有什么作用?1.IPv6节点利用邻居发现协议可以实现哪些机制?561.多播监听者发现协议的功能是什么?2.多播监听者协议版本2与版本1有何区别?3.多播监听者查询协议由谁发出?由谁接收?实现了什么功能?4.多播监听者报告报文由谁发出?由谁接收?实现了什么功能?5.某个节点要参加某个多播组,这时它应如何处理?6.路由器收到某个多播数据包,该数据包的目的地址是一个新的多播地址(该路由器第一次接触该地址),这时路由器如何处理?1.多播监听者发现协议的功能是什么?57IPv6实验时间:12月17日上午8:20开始,地点:3-421,(网络安全实验室)IPv6实验时间:58第4章ICMPv6及相关协议机械工业出版社ISBN7-111-23468-5第4章ICMPv6及相关协议机械工业出版社59学习内容及要求本章学习内容及要求要求了解ICMPv6协议的功用理解ICMPv6与ICMPv4的比较内容掌握ICMPv6协议格式内容熟知ICMPv6错误报文格式和用途熟知ICMPv6信息报文格式和用途掌握ICMPv6处理规则理解邻居发现协议的主要内容掌握邻居发现协议的功能分析方法熟知ICMP重定向报文内容和功用掌握IPv6地址解析技术的方法了解多播监听者发现协议MLD学习内容及要求本章学习内容及要求604.1ICMPv6协议概述4.1.1ICMPv6协议的功用ICMPv6是IPv6的Internet控制报文协议ICMP(InternetControlMessageProtocol),它属于IPv6协议的一个组成部分,和IPv6协议一起工作,IPv6网络中的每一个节点均要实现ICMPv6。在IPv6分组不能被正确处理的时候,ICMPv6向源节点报告IPv6分组在传输过程中的出错信息和通告信息,使网络中的节点可以知道网络中所传输的IPv6分组的情况,以及当前网络状态的重要信息。现在ICMPv6的技术文档是RFC2463需要说明的是在IPv6网络中,用ICMPv6实现IPv4网络中的ICMP、ARP、IGMP协议的功能。ICMPv6是用运输层协议UDP传输的。在发送ICMPv6报文时,是将ICMPv6报文作为IPv6分组的数据载荷。4.1ICMPv6协议概述4.1.1ICMPv6协议的61Comparisonofnetworklayersin

version4andversion6IPv6与IPv4的网络层Comparisonofnetworklayersi624.1.2ICMPv6与ICMPv4的比较ICMPv6增加的功能包括:Internet组管理协议IGMP功能被加入到ICMPv6中。地址解析协议ARP和反向地址解析协议RARP功能被加入到ICMPv6中。引入了邻居发现(ND)协议,它使用ICMPv6报文是为了确定同一个链路上的邻居的链路层地址、发现路由器、随时跟踪哪些邻居是可连接的,以及检测更改的链路层地址。ICMPv6还支持MobileIPv6。4.1.2ICMPv6与ICMPv4的比较ICMPv6增63ICMPv6与ICMPv4报文类型的比较报文名称ICMPv4的类型ICMPv6的类型回声应答0129目的地不可达31协议包过大类型3代码42源抑制4无重定向5137回声请求8128超时113参数错误124时间戳13无时间戳回复14无路由器请求10133路由器公告9134邻居请求无135邻居公告无136家乡代理地址发现请求无144家乡代理地址发现应答无145移动前缀请求无146移动前缀公告无147ICMPv6与ICMPv4报文类型的比较报文名称ICMP644.2ICMPv6协议格式4.2.1ICMPv6报文的类型ICMPv6报文有两种类型:⑴ICMPv6错误报文,错误报文的Type(类型)字段中的最高位为0。因此ICMP错误报文类型的编码值范围是0到127。⑵ICMPv6信息报文,信息报文的Type(类型)字段中的最高位为1。因此ICMP信息报文类型的编码值范围是l28到255。比特代码类型报文主体0校验和图4.2ICMPv6报文的一般格式816314.2ICMPv6协议格式4.2.1ICMPv6报文的65GeneralformatofICMPv6messagesICMPv6报文的一般格式GeneralformatofICMPv6messa66CategoriesofICMPv6messagesICMPv6的两种报文分类CategoriesofICMPv6messagesI67携带ICMPv6报文的IPv6分组的格式ICMPv6报文IPv6首部下一个首部=58ICMPv6报文主体ICMPv6首部图4.3携带ICMPv6报文的IPv6分组的格式携带ICMPv6报文的IPv6分组的格式ICMPv6报文68ICMPv6两种类型的报文ICMPv6错误报文包括:报文类型1,目的地不可达(DestinationUnreachable);报文类型2,数据包过大(PacketTooBig);报文类型3,超时(TimeExceeded);报文类型4,参数问题(ParameterProblem)。ICMPv6信息报文包括:报文类型128,回声请求(EchoRequest);报文类型129,回声应答(EchoReply)。需要注意的是:ICMPv6与ICMPv4相比,报文号、类型都发生了根本的改变。ICMPv6与ICMPv4是两个不同的协议,两个版本的ICMP并不兼容。ICMPv6两种类型的报文ICMPv6错误报文包694.2.2ICMPv6错误报文ICMPv6错误报文有四种类型:目的地不可达;数据包过大;超时;参数问题。每种ICMPv6错误报文根据错误报告的种类或者它所携带的信息的不同,报文的首部会有不同。比特代码(0—4)1未使用0校验和图4.6目的地不可达报文的格式81631长度不定,调用包的大小与不包含ICMPv6包的最小IPv6的MTU相当4.2.2ICMPv6错误报文ICMPv6错误报文有四种70Error-reportingmessageslCMPv6错误报告报文的分类Error-reportingmessageslCMPv671lCMPv6错误报文类型和代码报文号报文类型字段代码字段1目的地不可到达0=没有到目的地路由l=与目的地的通信被管理性禁止2=超出源地址的范围(草案)3=地址不可达4=端口不可达2数据包过大发送方将代码字段设为0,

接收方忽略代码字段3超时0=传输中的跳数超出限制l=分段重组超时4参数问题0=遇到错误的Header(首部)字段l=遇到不可识别的NextHeader(下一首部)类型2=遇到不可识别的IPv6选项Pointer(指针)字段用来指出检测到错误的调用数据包内的8位偏移量。如果出错的字段超出了一个ICMPv6错误报文可以容纳的最大尺寸的话,指针会指向ICMPv6数据包结尾之外。lCMPv6错误报文类型和代码报文号报文类型字段代码字段72Destination-unreachablemessageformat目的地不可达Destination-unreachablemessag73Packet-too-bigmessageformat数据包过大Packet-too-bigmessageformat数74Time-exceededmessageformat超时Time-exceededmessageformat超时75Parameter-problemmessageformat参数问题Parameter-problemmessageform76Redirectionmessageformat重定向Redirectionmessageformat重定向774.2.3ICMPv6信息报文RFC2463文档中定义了两类ICMPv6信息报文:回声请求(EchoRequest)和回声应答(EchoReply)。其他的ICMPv6信息报文用于路径MTU发现(PathMTUDiscovery)和邻居发现(NeighborDiscovery)。最常见的TCP/IP工具之一,例如数据包Internet探索者PING(PacketINternetGroper)使用的就是回声请求和回声应答报文。4.2.3ICMPv6信息报文RFC2463文档中定义了78QuerymessagesICMPv6信息报文分类QuerymessagesICMPv6信息报文分类79Echorequestandreplymessages回声请求和回声应答Echorequestandreplymessage80Group-membershipmessagesICMPv6组成员关系报文Group-membershipmessagesICMPv81Group-membershipmessageformats

(query)ICMPv6组成员关系报文Group-membershipmessageforma82Group-membershipmessageformats

(report)Group-membershipmessageforma83Group-membershipmessageformats

(termination)Group-membershipmessageforma84Foursituationsofgroup-membershipoperationFoursituations854.2.4ICMPv6处理规则如果一个节点收到一条未知类型的ICMPv6错误报文的话,该节点必须要把它传送给上层。如果一个节点收到一条未知类型的ICMPv6信息,该节点必须无声无息地将其丢弃。和在ICMPv4中一样,最有可能导致ICMP错误报文来自ICMP报文体中ICMP数据包不能超过IPv6的最小MTU。不准发送ICMPv6报文的6种情况。4.2.4ICMPv6处理规则如果一个节点收到一条未知类864.3邻居发现协议4.3.1邻居发现协议概述邻居发现协议实现了在IPv4中应用的地址解析协议(ARP)和ICMP路由器发现和重定向,还加入了一些新的功能。IPv6节点利用邻居发现协议可以实现的机制有:⑴确定同一链路上节点的链路层地址。⑵查找可以转发它们的数据包的邻近路由器。⑶随时跟踪哪些邻居可达,哪些不可达,并且检测有改变的链路层地址。对于IPv4协议集改进的12个内容。邻居发现协议由5条ICMPv6报文组成。4.3邻居发现协议4.3.1邻居发现协议概述874.3.2邻居发现协议的功能路由器和前缀发现路由器发现功能用来标识与给定链路相连的路由器,并获取与地址自动配置相关的前缀和配置参数。地址解析IPv6节点通过邻居请求和邻居通告报文将IPv6地址解析成链路层地址对多播地址不执行地址解析。节点通过多播邻居请求报文来激活地址解析过程,邻居请求报文用来请求目标路由器返回它的链路层地址。4.3.2邻居发现协议的功能路由器和前缀发现884.3.3路由器请求和路由器通告路由器以一定的时间间隔发出路由器通告(RouterAdvertisement)报文。主机也可以通过发出路由器请求(RouterSolicitation)报文来请求路由器通告提示路由器不必按照固定的时间间隔,尽快发出一个路由器通告。比特代码(设为0)133保留字(未使用,由发送方设置为0)0校验和图4.15路由器请求报文的格式81631选项(长度不定,若可知的话,是发送方的链路层地址)4.3.3路由器请求和路由器通告路由器以一定的时间间隔发89Router-solicitationmessage路由请求报文Router-solicitationmessage路由请90Routeradvertisementmessage路由通告报文Routeradvertisementmessage路由914.3.4邻居请求和邻居通告这两个报文完成两个功能:在IPv4中由ARP处理的链路层地址解析,以及邻居不可达性检测机制。如果目的地址是一个多播地址,那么源地址正在解析一个链路层地址。如果源地址正在检测一个邻居的可达性,那么目的地址就是一个单播地址。比特代码(设为0)1350校验和图4.17邻居请求报文的格式81631选项保留字(只用于不可达检测消息报文)目的地址4.3.4邻居请求和邻居通告这两个报文完成两个功能:比特92Neighbor-solicitationmessage邻居请求报文Neighbor-solicitationmessage邻93Neighbor-advertisementmessage邻居通告报文Neighbor-advertisementmessage94Group-membershipmessagesICMPv6组成员关系报文Group-membershipmessagesICMPv95Group-membershipmessageformats

(query)ICMPv6组成员关系报文Group-membershipmessageforma96Group-membershipmessageformats

(report)Group-membershipmessageforma97Group-membershipmessageformats

(termination)Group-membershipmessageforma98Foursituationsofgroup-membershipoperationFoursituations994.3.5ICMP重定向报文路由器发出ICMP重定向(ICMPRedirect)报文是用来告诉节点在去往给定目的地的路径上更优的下一跳节点地址。重定向报文还可以告知节点,它所使用的目的地实际上是同一个链路上的一个邻居,而不是远程子网上的一个节点。比特代码(设为0)1370校验和图4.19重定向报文的格式81631选项保留字(由发送者初始化为0)目标地址(16字节)目的地址(16字节)4.3.5ICMP重定向报文路由器发出ICMP重定向(I1004.3.6邻居发现选项邻居发现报文可能包含一个或多个选项,有些选项可能在同一报文中出现多次也就是说邻居发现报文包含着长度不定的Options(选项)字段。比特长度类型0选项(长度不定)图4.20邻居发现选项的格式816314.3.6邻居发现选项邻居发现报文可能包含一个或多个选项1014.3.7邻居缓存和目的地缓存IPv6节点需要维护各种信息表格。在这些表格中,邻居缓存和目的地缓存是特别重要的。邻居缓存目的地缓存RFC2461文档对邻居缓存和目的地缓存给出描述和定义一条邻居缓存记录可以处于5种状态之一4.3.7邻居缓存和目的地缓存IPv6节点需要维护各种信1024.4IPv6地址解析技术4.4.1主机的数据结构IPv6协议的一个设计要求是:即使在一个有限的网络内,主机也必须正确工作。因此主机必须能实现自动配置,必须能学习到交换数据的有关目的地的最基本信息。储存这些信息的存储器叫做缓存,其数据结构是一系列记录的排列,称作表项。每个表项储存的信息有一定的有效期,需要周期性地清除缓存中超时的表项。上述数据结构可以用不同的方法实现。其中一种实现方法是对所有数据结构使用单个最长匹配路由表。4.4IPv6地址解析技术4.4.1主机的数据结构1034.4.2主机数据包的发送算法IPv6单播地址下一跳确定的操作方法是:发送者使用前缀列表中的前缀进行最长前缀匹配,确定数据包(分组)的目的地是在连接的还是非连接的。如果下一跳是在连接(online)的,下一跳地址就和目的地地址相同,否则发送者从默认路由器列表中选择下一跳。路由器的工作步骤是:⑴创建一个新表项,并设置其状态为不完全。⑵开始进行地址解析。⑶对传送的包进行排队。4.4.2主机数据包的发送算法IPv6单播地址下一跳确定1044.4.3邻居发现协议与ARP协议的比较在IPv6中没有继续使用ARP的主要原因是:ARP依赖于IPv6和使用多播的ICMPv6报文,没有必要为使用ARP的每个不同类型网络都重新构造ARP,任一支持IPv6和多播的节点也应该支持邻居发现。对多播的支持很重要,在链路层更是如此。多播在支持多路同时访问的以太网之类的网络上很容易实现。在文档RFC1970中给出IPv6的邻居发现协议的技术规范,描述了邻居发现协议机制及其实现方法。邻居发现协议通过定义特殊的ICMP报文类型来执行。邻居发现协议比IPv4协议的ARP协议和RARP协议有了很大改进。4.4.3邻居发现协议与ARP协议的比较在IPv6中没有1054.4.4地址可达性检测主机与邻居节点之间所有路径都应进行邻居不可达性检测,包括:主机到主机主机到路由器以及路由器到主机之间的通信,也可用于路由器之间以检测邻居或邻居前向路径发生的故障。邻居不可达性检测与向邻居发送数据包同时进行。在邻居可达性确认期间,路由器继续向缓存链路层地址的邻居发送数据包;如果没有数据包发向邻居,则不发送检测。4.4.4地址可达性检测主机与邻居节点之间所有路径都应进1064.4.5重定向技术重定向功能是将主机重定向到一个更好(更佳)的第一跳路由器,或者向主机通告发送给目的节点的分组不需要路由器转发,因为目的节点就是邻居节点。当选择的路由器作为分组传送的下一跳并不是最佳选择时,路由器需产生重定向报文。路由器必须能够确定与它相邻的路由器的本地链路(1ink-local)地址,以保证收到重定向报文中的目标地址。对静态路由情况,下一跳路由器的地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论