您好,欢迎访问三七文档
第二章IPv6协议的结构内容•IPv6普通报头结构•IPv6报头中的字段•扩展报头IPv6普通报头结构•IPv6报头固定为40个字节,源和目的地址各占16个字节(128位),剩余8个字节用于普通报头。•IPv4中,包头最短长度为20字节,根据添加的选项,以4个字节长度递增,最长60字节。IPv4协议结构版本号报头长度服务类型数据报长度DFMF段偏移037151931标识生存时间TTL协议报头校验和源IP地址目的IP地址选项和填充(最大为40字节)数据区报头变化•IPv6中,去掉了IPv4报头中的五个字段:•HeaderLength(报头长度):指定IPv4的报头长度;•Identification(标识)•Flags(标志)•FragmentOffset(段偏移量)•HeaderChecksum(报头校验和)IPv6首部0311312IPv6报头中的字段•Version(版本号,4位):协议的版本,–IPv6中,该数为6–注意:版本号5,已被分配给一个实验性的流协议(ST2,RFC1819)•TrafficClass(Priority,1字节):流量优先级类型,代替了IPv4种的服务类型•FlowLabel(流标签,20位):标记属于同一数据流的数据包,便于路由器更有效地处理IPv6报头中的字段(续)•PayloadLength(有效负载长度,2字节)IP报头后携带的数据长度。–IPv4种的Length字段包含IPv4报头的长度,IPv6中的Pay-Len字段只包含数据长度;–扩展报头被认为是有效载荷数据中的一部分。–数据包的有效载荷最大为64K;–最大传输单元(MaximumTransmissionUnit,MTU),主机通过路径MTU发现,来了解路径MTU的大小。–IPv6路由器不对传输路径中的数据分段。NextHeader(下一报头,1字节)与IPv4中的ProtocolType相同,说明下一个扩展报头的类型IPv6报头中的字段(续)•HopLimit(跳数限制,1字节)与IPv4中TTL类似–IPv4中该数值为数据包存活时间(秒),–IPv6中该数值为数据包最大转发次数。•SourceAddress(源地址,16字节)数据包发送者的IP地址•DestinationAddress(目的地址,16字节)数据包目的接收者的IP地址。–IPv4中为数据包最终接收地址,–IPv6中如果提供了Routing报头,该字段未必是最终地址。ComparingtheIPv4andIPv6HeadersIPv4HeaderFieldChangeinIPv6VersionNewvalueof6InternetHeaderLengthRemovedTypeofServiceTrafficClassfieldTotalLengthPayloadLengthfieldIdentificationRemovedtoFragmentheaderFragmentationFlagsRemovedtoFragmentheaderFragmentOffsetRemovedtoFragmentheaderTimetoLiveHopLimitfieldProtocolNextHeaderfieldHeaderChecksumRemovedSourceAddressSame,new128-bitlengthDestinationAddressSame,new128-bitlengthOptionsRemoved(extensionheaders)要转发一个普通的IPv4数据包,路由器通常会在关键路由器中执行以下指令•检验报头的校验和字段:先执行自己的校验和计算,然后再将计算的结果与存储在IPv4报头中的结果比较。•检验版本字段的值。经过这个步骤,那些包含无效版本号的包就不会在IPv4网络中传播,它们只会被目标节点丢弃。•递减TTL字段的值。如果它的新值小于1,则发送一个ICMPv4超时-超过了生存时间报文给数据包节点,并丢弃这个数据包。如果新值不小于1,则将新值放置在TTL字段中。•检验IPv4的报头选项是否存在。如果存在,就进行相应的处理。•使用目标地址字段的值和本地路由表的内容,来确定转发的接口,以及下一跳的IPv4地址。如果没有找到合适的路由,就发送一个ICMPv4目标不可到达-主机不可到达报文给数据包源节点。•如果转发接口的IPv4最大传输单元(MTU)小于总长度字段的值,并且不要拆分标志的值为0,则进行IPv4拆分操作。如果转发接口的MTU小于总长度的值,并且不要分片标志的值为1,则发送一个ICMPv4目标不可到达-需要拆分和DF置位报文给数据包的源点,并丢弃数据包。•重新计算新的报头校验和,并将新值放置在报头校验和字段中。•用适当的转发接口转发这个数据包。要转发一个普通的IPv6数据包,路由器通常会在关键路由器指令序列中执行以下指令•检验版本字段的值。经过这个步骤,那些包含无效版本号的包就不会在IPv4网络中传播,它们只会被目标节点丢弃。•递减跳限制字段的值。如果它的新值小于1,发送一个ICMPv4超时-超过了生存时间报文给数据包的源,并丢弃这个数据包。如果新值小于1,则将新值放在跳限制字段中。•检查下一个报头字段的值是否为0,如果为0,则处理逐跳选项报头。•使用目标地址字段中的值和本地路由表中的内容,来确定转发接口和下一跳的IPv6地址。如果没有找到合适的路由,就发送一个ICMPv6目标不可到达-没有到达目标的路由报文给数据包的源,并丢弃这个数据包。•如果转发接口的链路MTU小于40+有效载荷长度字段的值,则发送ICMPv6数据包过长报文给数据包的源,并丢弃这个数据包。•用适当的转发接口转发这个数据包。3IPv6扩展报头•IPv4报头长度20-60字节,包含选项:安全选项、源路由、时间戳等,IPv4转发包含选项的数据包药传递给主处理程序,会降低性能。•IPv6报头简单,处理过程快。把选项变为一些扩展报头功能,六个扩展报头:–Hop-by-HopOptions报头–Routing报头–Fragment报头–DestinationOptions报头–Authentication报头–EncryptedSecurityPayload报头扩展报头的使用•IPv6报头和上层协议报头之间可以有一个或多个扩展报头,也可没有。•每个扩展报头有前面报头的NextHeader标识。•扩展报头只被IPv6报头的目的地址字段指定的节点处理。•如果有Hop-by-HopOptions报头,必须紧接在IPv6报头之后,其信息被经过的每个节点处理。•扩展报头的字节长为8的整数倍。•扩展报头在数据包报头中有严格的排列顺序。IPv6扩展报头的类型•逐跳选项报头。此扩展头必须紧随在IPv6头之后。它包含包所经路径上的每个节点都必须检查的选项数据。•目的地选项报头。此扩展头代替了IPv4选项字段。目前,唯一定义的目的地选项是在需要时把选项填充为64位的整数倍。此扩展头可以用来携带由目的地节点检查的信息。•选路报头。选路报头又称路由报头,此扩展头指明包在到达目的地途中将经过哪些节点。它包含包沿途经过的各节点的地址列表。IPv6头的最初目的地址是路由头的一系列地址中的第一个地址,而不是包的最终目的地址。此地址对应的节点接收到该包之后,对IPv6头和选路头进行处理,并把包发送到选路头列表中的第二个地址。如此类推,直到包到达其最终目的地。•分段报头。此扩展头包含一个分段偏移值、一个“更多段”标志和一个标识符字段。用于源节点对长度超出源端和目的端路径MTU的包进行分段。•身份验证报头(AH)。此扩展头提供了一种机制,对IPv6头、扩展头和净荷的某些部分进行加密的校验和的计算。•封装安全性净荷(ESP)报头。这是最后一个扩展头,不进行加密。它指明剩余的净荷已经加密,并为已获得授权的目的节点提供足够的解密信息。Hop-by-HopOptions报头•紧跟在IPv6报头后,并有NextHeader值0表示。•如果没有Hop-by-HopOptions报头,表示没有路由器处理的信息,可以直接把数据包路由到最终目的地。•如有Hop-by-HopOptions报头,路由器只需检查报头,无须深入察看数据包。逐跳选项扩展报头逐跳选项报头的扩展报头值为0。该字段主要用于为在传送路径上的每次跳转指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。逐跳选项报头以IPv6报头中的下一个报值=0来标识。选项下一报头值扩展报头长度l下一个报头值(NextHeader)。其含义与前述一致。l报头扩展长度(HdrExtLen)。是指逐跳选项扩展报头的长度,该长度不包括第一个8字节。l选项(Options)。是若干系列字段的组合,该字段用以描述数据包转发的一个方面的特性,还可以作为填充之用。一个逐跳选项扩展报头可以包含0个或1个以上的选项字段。选项还可用于目标选项扩展报头。选项类型选项数据长度选项数据选项字段结构:选项类型:表示这个选项的类型。用以确定相关节点对该选项的处理方法。RFC2640规定,在选项类型字段中,最高两位当处理选项的节点不能识别选项的类型时,应该如何处理这个选项。选项字段的最高两位值含义如下:00:跳过这个选项;01:丢弃数据包,不通知发送方;10:丢弃数据包,无论数据包的目标地址是否为一个组播地址,都向发送方发出一个ICMPv6参数问题的报文;11:丢弃数据包,如果数据包的目标地址不是一个组播地址,就向发送方发出一个ICMPv6参数问题的报文。选项数据:选项字段的最高第3位表示在通向目标的路径中,选项数据是否可以改变。0:选项数据不能改变;1:选项数据可以改变。Hop-by-HopOptionsPad1选项,选项类型为0,它的作用是插入一个填充字节,以使逐跳选项报头或目标选项报头落在字节的边界上,并符合选项的对齐要求。pad1选项没有对齐要求。它没有长度和值字段,选项类型的值为0也意味着如果选项不能被处理它的节点所识别,则选项被跳过,并且选项在传输中不允许改变。Hop-by-HopOptions•Padn选项的作用是插入两个或多个填充字节,以使逐跳选项报头或目标选项报头落在8字节的边界上,并符合选项的对齐要求。Hop-by-HopOptions•超大有效载荷选项–超大有效载荷选项用于表示有效载荷长度大于65535字节,超大有效载荷选项有4n+2的对齐要求。–选项类型为194,选项长度为4–长度超过65535字节的效载荷的IPv6数据包称为超大包一个巨包的转发过程•为传送长于65535字节的“巨包“,需要以下两个措施–IPv6PayloadLenth=0,使用NextHeader为0的Hop-by-hopheader中的Jumbo选项中的JumboPayloadLength来指示报文长度–需要对上层协议作相应修正HostHostRouterRouterIPv6HeaderNH=0PL=0NH=17PL=1MB+8BLen=01MBDataHop-by-hopHeaderUDPHeaderOptionProcessing!OptionProcessing!OptionProcessing!OptionProcessing!Hop-by-HopOptions•路由器警告选项–用于表示数据包的内容需要额外的处理–路由器警告选项有2n+0的对齐要求。–选项类型字段的值为5,选项长度为的值为2,路由器警告值字段值为0。–多用于多播侦听发现和资源存储协议(RSVP)选路扩展报头选路扩展报头的扩展报头值为43。选路扩展报头又称路由选择报头或源路径选项报头。通过运用选路报头,可以实现经过指定的中间节点到达目的地。路由特定类型数据type-sqecifitdata下一个报头NextHeader扩展报头长度HdrExtLen段剩余SegmentsLeft路由类型RoutingTypel下一报头。下一报头和扩展报头长度与逐跳选项报头中的含义一致;l扩展报头长度。指明扩展报头的长度。l路由类型。路由类型是指特
本文标题:IPv6协议的结构
链接地址:https://www.777doc.com/doc-3264762 .html