IPV4与IPV6的头顶部PK

2021-03-06 15:10

1个IP包分成头顶部(header)和数据信息(payload/data)两一部分。头顶部是以便完成IP通讯务必的额外信息内容,数据信息是IP通讯所要传输的信息内容。

黄色地区 (同名地区)

大家看到,3个黄色地区超越了IPv4和IPv6。Version(4位)用来说明IP协议书版本号,是IPv4還是IPv6(IPv4, Version=0100; IPv6, Version=0110)。Source Adrresss和Destination Address各自为传出地和目地地的IP详细地址。

蓝色地区 (姓名产生变化的地区)

Time to Live 生存時间(Hop Limit in IPv6)。Time to Live最开始是表明1个IP包的最大生存時间:假如IP包在传送全过程中超出Time to Live,那末IP包就作废。后来,IPv4的这个地区纪录1个整数金额(例如30),表明在IP包接力全过程中数最多历经30个路由器接力,假如超出30个路由器接力,那末这个IP包就作废。IP包每历经1个路由器器,路由器器就给Time to Live减1。当1个路由器器发现Time to Live为0时,就已不推送该IP包。IPv6中的Hop Limit地区纪录的也是最大道由接力数,与IPv4的作用同样。Time to Live/Hop Limit防止了IP包在互联网技术中无尽接力。

Type of Service 服务种类(Traffic Class in IPv6)。Type of Service最开始是用来给IP包分优先选择级,例如视频语音语音通话必须即时性,因此它的IP包应当比Web服务的IP包有更高的优先选择级。但是,这个最开始非常好的念头沒有被微软听取意见。在Windows下转化成的IP包全是同样的最高优先选择级,因此在那时候导致Linux和Windows混和互联网中,Linux的IP传送会慢于Windows (仅仅是由于Linux更为守规定!)。后来,Type of Service被具体分成两一部分:Differentiated Service Field (DS, 前6位)和Explicit Congestion Notification (ECN, 后2位),前者仍然用来区别服务种类,然后者用于说明IP包方式路由器的交通出行情况。IPv6的Traffic Class也被这般分为两一部分。根据IP包出示不一样服务的念头,并对于服务开展不一样的提升的念头早已造成很久了,但实际做法并沒有产生公认的协议书。例如ECN地区,它用来表明IP包历经相对路径的交通出行情况。假如接受者收到的ECN地区显示信息相对路径上的很拥堵,那末接受者应当作出调剂。但在具体上,很多接受者都会忽略ECN所包括的信息内容。交通出行情况的操纵常常由更高层的例如TCP协议书完成。

Protocol 协议书(Next Header in IPv6)。Protocol用来讲明IP包Payload一部分所遵照的协议书,也便是IP包之上的协议书是甚么。它表明了IP包封裝的是1个如何的高层协议书包(TCP? UDP?)。

鲜红色地区 (IPv6中删掉的地区)

大家看1下IPv4和IPv6的长度信息内容。IPv4头顶部的长度。在头顶部的最终,是options。每一个options有32位,是选填特性的地区。1个IPv4头顶部能够彻底沒有options地区。不考虑到options的话,全部IPv4头顶部有20 bytes(上面每个人行为4 bytes)。但因为有options的存在,全部头顶部的总长度是变化的。大家用IHL(Internet Header Length)来纪录头顶部的总长度,用Total Length纪录全部IP包的长度。IPv6沒有options,它的头顶部是固定不动的长度40 bytes,因此IPv6中其实不必须IHL地区。Payload Length用来表明IPv6的数据信息一部分的长度。全部IP包为40 bytes + Payload Length。

IPv4中也有1个Header Checksum地区。这个checksum用于校检IP包的头顶部信息内容。Checksum与以前在小喇叭中提到的CRC优化算法其实不同样。IPv6则沒有checksum地区。IPv6包的校检依靠高层的协议书来进行,这样的益处是免除了实行checksum校检所必须的時间,减小了互联网延迟时间 (latency)。

Identification, flags和fragment offset,这3个包全是为碎片化(fragmentation)服务的。碎片化是指1个路由器器将接受到的IP包分拆成好几个IP包传输,而接受这些“碎片”的路由器器或主机必须将“碎片”再次组成(reassembly)成1个IP包。不一样的局域网所适用的最大传送模块(MTU, Maximum Transportation Unit)不一样。假如1个IP包的尺寸超出了局域网适用的MTU,就必须在进到该局域网时碎片化传送(就仿佛层面面面饼太大了,务必掰碎才可以放进碗里)。碎片化会给路由器器和互联网带来很大的压力。最好是在IP包传出以前检测全部相对路径上的最少MTU,IP包的尺寸不超出该最少MTU,便可以免碎片化。IPv6在设计方案上防止碎片化。每个IPv6局域网的MTU都务必超过等于1280 bytes。IPv6的默认设置推送IP包尺寸为1280 bytes。

翠绿色地区 (IPv6新增地区)

Flow Label是IPv6中新增的地区。它被用来提示路由器器来反复应用以前的接力相对路径。这样IP包能够全自动维持考虑时的次序。这针对流新闻媒体之类的运用有协助。Flow label的进1步应用还在开发设计中。

“我竭尽全力”

IP协议书在造成时是1个疏松的互联网,这个互联网由各个大学的局域网互相联接成的,由1群撞头垢面的Geek维护保养。因此,IP协议书觉得自身所处的自然环境是不能靠(unreliable)的:诸如路由器器坏掉、试验室失火、某个PhD踢掉电缆之类的事儿随时会产生。

这样的危险自然环境下,IP协议书出示的传输只能是“我竭尽全力” (best effort)式的。所谓的“我竭尽全力”,其潜台词是,假如事儿错误不必怪我,我只是同意了竭尽全力,可没确保甚么。因此,假如IP包传送全过程中出現不正确(例如checksum对不上,例如交通出行太忙碌,例如超出Time to Live),依据IP协议书,你的IP包会立即被丢弃。Game Over, 不容易再有进1步的勤奋来调整不正确。Best effort让IP协议书维持很简易的形状。更多的品质操纵交到高层协议书解决,IP协议书只负责合理率的传送。

“高效率优先选择”也反映在IP包的次序(order)上。即便考虑地和目地地维持不会改变,IP协议书也不确保IP包抵达的前后次序。大家早已了解,IP接力是依据routing table决策接力线路的。假如在持续的IP包推送全过程中,routing table升级(例如有1条新建的捷径出現),那末后传出的IP包挑选走不1样的接力线路。假如新的相对路径传送速率更快,那末后传出的IP包有将会先到。这就仿佛是多车道的道路上,每辆车都在不断转换车道,最后全部的车道都塞满轿车。这样可让道路运用率做到最大。

IPv6中的Flow Label能够提议路由器器将1些IP包维持1样的接力相对路径。但这只是“提议”,路由器器将会会忽视该提议。

Header Checksum优化算法

Header Checksum地区有16位。它是这样得到的,从header获得除checksum以外的0/1编码序列,例如:

9194 8073 0000 4000 4011 C0A8 0001 C0A8 00C7 (106进制hex, 这是1个为演试运算全过程而设计方案的header)

依照106位(也便是4位hex)切分全部编码序列。将切分后的各个4位hex积累相加。假如有超出16位的进位出現,则将进位加到后16位結果的最终1位:

  1. Binary                Hex
  2.   10100      9194
  3. + 10011      8073
  4.   —————-
  5. 1 00011     11207
  6. +                1
  7.   —————-
  8.   00000      1208

上面的测算叫做one’s complement sum。求得全部106位数的和,

one’s complement sum(4500, 0073, 0000, 4000, 4011, C0A8, 0001, C0A8, 00C7) = 1433

随后,将1433的每位取反(0->1, 1->0), 就获得checksum:EBCC

这样,大家的header便是:

9194 8073 0000 4000 4011 EBCC C0A8 0001 C0A8 00C7

IP包的接受方在接受到IP包以后,能够求上面各个16位数的one’s complement sum,应当获得FFFF。假如并不是FFFF,那末header是有误的,全部IP包会被抛弃。

(再度提示,示例所用的IP header并不是真正的header,它只是起演试优化算法的功效)

总结

每一个互联网协议书的产生都有其历史时间缘故。例如IP协议书是以便将各个分散化的试验室互联网联接起来。因为那时候的互联网很小,因此IPv4(IPv4造成与70时代)的详细地址总量为40亿。虽然那时候被觉得是很大的数据,但数据浪潮很快带来了详细地址耗光危机。IPv6的关键目地是提升IPv4的详细地址容量,但另外依据IPv4的工作经验和新时期的技术性发展开展改善,例如防止碎片化,例如撤销checksum (因为高层协议书TCP的普遍应用)。互联网协议书技术性上其实不繁杂,更多的考虑是政策性的。

IP协议书是”Best Effort”式的,IP传送是不能靠的。但这样的设计方案造就了IP协议书的高效率。



扫描二维码分享到微信

在线咨询
联系电话

020-66889888