计算机网络【IP数据包首部的各个字段详解】 |
您所在的位置:网站首页 › ip数据报总长度的基本单位 › 计算机网络【IP数据包首部的各个字段详解】 |
文章目录
一 网络层简述二 网络层首部--版本,首部长度,区分服务,总长度三 网络层首部--标识,标志,片偏移四 网络层首部--生存时间,协议,首部检验和五 可选字段,填充字段,源IP,目标IP,六 总结
一 网络层简述
版本: 就是指出IP数据包是什么版本;常见的版本就是0100 IPV4和 0110 IPV6; 首部长度: 整个IP数据包的首部长度,不包括数据部分; 但是首部长度只用4个bit存储,表示最大值也是1111,即15; 而我们实际上首部长度还需要乘于4才可以得到实际答案; 假如首部长度为0101,也就是5,那么实际的首部长度为5×4=20; 假如首部长度为1111,也就是15,那么实际的首部长度为15×4=60; 常见的首部长度一般都是20字节,因为IP数据包至少需要20字节 区分服务: 整个字段主要是用来提高网络服务质量的,至于细节我们不用深究!举个例子描述以下它是如何提高网络服务质量的,比如说我们有一个客户端要给服务器发数据包,这中间过程需要经过路由器,而路由器接收到这个IP数据包时候,会检查它的首部字段的区分服务是否有设置什么值,这些值是可以提高网络服务的,比如可能会优先传送该IP数据包,大概就是这样!!! 总长度: 总长度表示IP数据包整个大小; 总长度占两个字节,也就是说有16个bit可以表示总长度,也就是说总长度的范围是0-65535数据范围; 但是我们知道网络层的数据包需要传输给数据链路层的帧数据部分,而数据链路层帧的数据部分长度不可以超过1500;也就是IP假如是65535那么大的话,是无法传输给数据链路层的帧部分的,那么我们就需要对IP数据包进行分片,拆分成小于1500的数据包再传输给数据链路层;至于如何分片,分片后如何找到那些片段是同一个数据包,传输过去后,如何正确的拼回原来的数据包都是未解决的问题。接下来都会讲到这几个问题。 三 网络层首部–标识,标志,片偏移
片偏移: 有一个问题:为什么字节偏移需要用片偏移字段×8才可以得到实际的值呢? 其实很好想,因为片偏移只有13个bit去存放片偏移的信息,很明显13个bit存放的信息是有限的,所以我们了表示更多的信息,就需要×8才可以; 实际上:我们仅仅通过标识和片偏移是无法确定IP数据包是什么时候拼接结束的问题,我们拿到片偏移,只能确定拼接的顺序,而结束的标志却没有! 所以为了解决这个问题,我们的IP数据包首部字段中还是有一个比较重要字段:标志位 标志位: 标志位:占3个bit; 第一个bit我们通常作为保留位:直白一点就是基本不用这个位的信息,通常我们抓包见到都是0; 第二个bit表示不要分片的意思:也就是说,当我们看到第二个bit位置是1时候, 表示这个数据包不需要分片;为0时候就表示需要分片;通常该数据包过大时候需要分片那么该数据包的第二个bit就是为1; 第三个bit表示更多分片:直白点就是该位置为1时候,表示不是最后一片,为0时候就是最后一片数据包; 所以:我们在拼接数据包时候,我们是可以根据标志位的第三个bit位为0,就知道这个IP数据包时最后一片数据包了,当把这个数据包拼接过后,那么就表示大的IP数据包就完成了拼接; 四 网络层首部–生存时间,协议,首部检验和我们先来看看协议字段 协议: 首部检验和: 其实这个字段没什么好说的就是检验你的包是否正确; 生存时间: 可选字段一般都是在一个IP数据包头部的20个字节无法表达完整信息时候,才会使用它; 填充字段一般也是为了筹够20个字节的IP数据包的首部才会使用; 其实这个两个字段都不是很常见,也就是说,我们通常看到的IP数据包的首部这两个字段是五具体信息的! 源IP地址和目标IP地址,我们都很清楚,发数据包过去肯定需要这两个字段的信息。 六 总结其实要学明白IP数据包的首部各个字段,最主要的是结合理论信息,通过手动抓包分析去理解各个字段!反正这写字段理解了就很容易记住! 而我并没有放抓包的信息的图,因为我觉得这个放上去可能信息有点乱,但是你们不会学习时候,必须自己抓包分析,这样才会理解深刻! 最后附上我自己花的IP数据包首部字段的图给你们!!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |