我的特一营演员(我的特一营演员表小岛)
7922023-12-02
大家好,关于ipv4与ipv6的分组首部的区别很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于为什么IPV6不建议IP分片的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
本文目录
这也是受当时的技术限制造成的,因为网络传输限制,必须让所有的根服务器数据能包含在一个512字节的UDP包中,所以根服务器只能限制在13个,并且每个服务器要使用字母表中的单个字母命名,这也是根服务器从A到M命名的原因。
不过,这是IPv4时代的事儿了,现在在与现有IPv4根服务器体系架构充分兼容基础上,由下一代互联网国家工程中心牵头发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成了25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根域名服务器+25台IPv6根域名服务器的新格局。
咱们中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境!1、IP系统是指互联网协议(InternetProtocol,简称IP)的一种系统,它是实现互联网通信的基础设施。
2、IP系统通过对数据包进行分组和路由,使得不同网络之间可以相互通信。
3、IP系统通过分配唯一的IP地址给每个设备,实现了互联网上的设备之间的定位和通信。
这里对IPv4和IPv6头部的一些常用的重要字段进行整理总结,没做出解释的是一些不常用到的字段,有兴趣可以自行查阅。
MACheader
IPv4header
Data:::
1.IPv4header:
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Version
IHL
DifferentiatedServices
Totallength
Identification
Flags
Fragmentoffset
TTL
Protocol
Headerchecksum
SourceIPaddress
DestinationIPaddress
Optionsandpadding:::
·Version:IP版本号4;
·IHL:IP头部长度,以字节表示;
·TotalLength:整个IP报长度,包含IP头部和数据,以字节表示;结合IP头部长度便可确定IP报数据部分的开始和结束;
·TTL:IP数据包生存周期,通常每经过一次路由该值就会被减一;
·Protocol:表示传输层是哪种协议,该值有IANA统一规定
Source/DestinationIPaddress:消息的源/目的IP地址,这两地址不会随着消息的路由而发生变化。
和IPv4数据报分片相关的Field:
首先接受为何要分片,以太网规定网络间传输的MTU为1500个字节,超过1500个字节的IP报就需要被分片;此外不同的链路层(TokenRing,FDDI…)规定的MTU值是不同的,在一个IP报从源地址送到目的地的过程中可能需要经过各种不同的网络,所以即使在以太网里面不分片,在其他网络里面可能被分片。
·Identification:源主机每发出一个数据包就会为该数据包分配一个唯一的Identification值,通常是依次递增的方式分配;加入IP报在某个路由上需要分片,则Identification会被复制到每一个分片的IP头中。
·Flags:一共有三个bit,第一个bit目前不用,始终为0;第二个bit为0表示允许分片;为1表示不允许分片;第三个bit为0表示这是最后一个IP报分片,为1表示后面还有更多的IP报分片;
·FragementOffset:表示该分片距离原始IP数据包的偏移字节数;
·TotalLength:IP报被分片后,该值需要被更新为新分片的总长度;
MACheader
IPv6header
Data:::
2.IPv6header:
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Version
TrafficClass
FlowLabel
PayloadLength
NextHeader
HopLimit
Sourceaddress:::
Destinationaddress:::
Data:::
·Version:IP版本号6;
·PayloadLength:由于IPv6的基本头部的长度是固定的,所以只需要记录Payload的长度即可定位一个IP数据包的结束,这里的Payload包含IPv6的扩展头部。
·HopLimit:和IPv4中的TTL作用一致;
·Source/DestinationIPaddress:消息的源/目的IP地址,格式变为IPv6的IP地址格式;这两地址不会随着消息的路由而发生变化。
·NextHeader:相当于IPv4中的protocol域,标识上层协议(协议的标识值与IPv4兼容);此外的另一个作用是标识IPv6的扩展头部,目前IPv6定义了7中扩展头部,每一中扩展头部都有一个数值来标识,比如基本头部中的NextHeader中的值是44,表示基本头部后面紧跟一个分段扩展头部;
0
逐跳头
43
选路头(RH)
44
分段头(FH)
51
身份验证头(AH)
52
封装安全性净荷(ESP)
59
没有下一个头
60
目的地选项头
扩展头部的基本结构如下:
扩展头部的第一字节也是NextHeader,作用同基本头部中的NextHeader,IPv6除了基本头部之外可以带多个扩展头部,如果带有扩展头部则基本头部中的NextHeader指示第一个扩展头部类型,否则指示传输层的协议类型;如果带有多个扩展头部,则扩展头部中的NextHeader依次指示下一个扩展头部类型,最后一个扩展头部的NextHeader指示传输层的协议类型;如下图所示:
扩展头部的第二个字节是该扩展头部的长度,依此可找到该扩展头部的结束位置;某些类型的扩展头部(比如,分段扩展头部)长度是固定的,则该字节作为保留字节不用。
IPv6的分片:
IPv6对IPv4的分片进行了以下主要改进:
1)IPv6只允许源节点对数据包进行分片,不允许中间路由分片,这样一来一个数据包如果需要分片则只进行一次分片即可;源主机为了判断是否需要分片,需要获取路径MTU;
2)IPv4的头部有些字段只和分片有关系,也就是说,在无需分片的时候,这些字段是没有用的,IPv6对此进行了改进,只有在需要分片的时候,才加一个“分段扩展头部”,把和分片相关的信息放到这个扩展头部中,从而提高了传输效率。
分段扩展头部结构:
·分段偏移值:与IPv4的分段偏移值字段很相似。此字段共13位,以8字节为单位,表示此包(分段)中数据的第一个字节与原来整个包中可分段部分的数据的第一个字节之间的位置关系。换言之,若该值为175,表示分段中的数据从原包的第1400字节开始。
·M:此位表示是否还有后续字段。若值为1,表示后面还有后续字段;若值为0则表示这是最后一个分段。
·标识:该字段与IPv4的标识字段类似,但是为32位,而在IPv4中为16位。源节点为每个被分段的IPv6包都分配一个32位标识符,用来唯一标识最近(在包的生存期内)从源地址发送到目的地址的包。
注意:整个IPv6包中只有部分可以被分段,可分段的部分包括:净荷和只能在到达最终目的地时才处理的扩展头。对于IPv6头和在发往目的节点的途中必须由路由器处理的扩展头,如选路头或逐跳选项头,则不允许进行分段。
lca+是最近公共祖先(LowestCommonAncestor)问题的一个变种,其主要用途是可以帮助有效地检索和更新树形结构中的数据。lca+使用一种名为B+树的数据结构,先通过预处理得到某些值,然后在查询时可以使用这些值进行二分搜索,使得查询时间复杂度非常低,大大提高了数据处理的效率。
好了,文章到此结束,希望可以帮助到大家。