IP数据报

news/2024/10/12 21:09:37

IP数据报的格式

一个IP分组(或称IP数据报)由首部和数据部分组成。首部前一部分的长度固定,共20B,是所有IP分组必须具有的。在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。IP数据报的格式如图4.5所示。

img

  1. 版本。占4位。指IP的版本,IPv4数据报中该字段值是4。
  2. 首部长度。占4位。以4B为单位,最大可表示的首部长度为60B(15×4B)。最常用的首部长度是20B(5×4B),该字段值是4,此时不使用任何可选字段。

IP首部前两个字节往往以0x45开头,解题时可用于定位 IP数据报的开始位置。

  1. 总长度。占16位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为\(2^{16}\)-1=65535B。以太网帧的最大传送单元(MTU)为1500B,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的MTU值。

  2. 标识。占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是“序号”(因为IP是无连接服务)。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确地重装成原来的数据报。

  3. 标志(Flag)。占3位。标志字段的最低位为MF,MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片。

  4. 片偏移。占13位。它指出较长的数据报在分片后,某片在原数据报中的相对位置,片偏移以8B为偏移单位。除最后一个分片外,每个分片的长度一定是8B的整数倍。

  5. 生存时间(TTL)。占8位。数据报在网络中可通过的路由器数的最大值,标识数据报在网络中的寿命,以确保数据报不会永远在网络中循环。路由器在转发数据报前,先将TTL减1。若TTL被减为0,则该数据报必须丢弃。

  6. 协议。占8位。指出此数据报携带的数据使用何种协议,即数据报的数据部分应上交给哪个协议进行处理,如TCP、UDP等。其中值为6表示TCP,值为17表示 UDP。

  7. 首部检验和。占16位。它只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算首部检验和(有些字段,如生存时间、总长度、标志、片偏移、源/目的地址都可能发生变化)。不检验数据部分可减少计算的工作量。

  8. 源地址字段。占4B,标识发送方的IP地址。

  9. 目的地址字段。占4B,标识接收方的IP地址。

在IP 数据报首部中有三个关于长度的标记,即首部长度、总长度、片偏移,它们的基本单位分别为4B、1B、8B(需要记住)。题中常出现这几个长度之间的加减运算。

首部校验和的计算

在发送方,首先将IP数据报首部划分为许多16位字的序列,并把检验和字段置零。用反码算数运算把所有16位字相加后,将得到的和的反码写入检验和字段。接收方在接到数据报后,把首部的所有16位字在使用反码算数运算相加一次,将得到的和取反码,即得到接收方检验和的计算结果,若首部未发生任何变化,则此结果必为0,于是就保留这个数据报,否则就认为出差错,将这个数据报丢弃。

img

反码算数运算:与普通算数运算的唯一区别就是,当最高位产生进位时,要进行一个回卷操作,即将最高位进位加到最低位,直到不再产生新的最高位进位为止

下面我们来举一个实际例子,对1101,1011进行校验

(1011) + (1101) = (1000) 进1,将这个进位加到结果的末位,得到(1001),再取反码,于是校验和就是(0110)

下面进行校验

(1011) + (1101) + (0110) = (1110)进1,将这个进位加到结果的末位得到(1111),再取反码得到0,说明没有发生错误

IP数据报的分片

一个链路层数据帧能承载的最大数据量称为最大传送单元(MTU)。因为IP数据报被封装在链路层的帧中,因此链路层的MTU严格地限制了 IP数据报的长度,而且在IP 数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的 MTU。例如,以太网的 MTU为1500B,而许多广域网的MTU不超过576B。当IP数据报的总长度大于链路 MTU时,就需要将IP数据报中的数据分装在多个较小的IP数据报中,这些较小的数据报称为片。

IP分片涉及一定的计算。例如,一个长4000B的IP 数据报(首部 20B,数据部分3980B)到达一个路由器,需要转发到一条MTU为1500B的链路上。这意味着原始数据报中的3980B数据必须分配到3个独立的片中(每片也是一个IP数据报),每片的数据部分依次为1480B、1480B和1020B。假定原始数据报的标识号为777,则分成的3片如图4.6所示。可见,因为偏移值的单位是8B,所以除最后一个片外,其他所有片中的数据部分都为8B的倍数。

img

注意这里仅对载荷部分进行了分片,原来的首部直接扔掉了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/70815.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

辐射换热

热力学u能-电磁波能-热力学能 辐射角度不同强度不同 温度不同,波长不同波长*频率=3*10,8真空中光的传播速度 可见光波长0.38紫色--0.76红色热辐射又称为红外辐射吸收率+反射率+穿透率=1深处黑房间光进去基本出来少看着黑开尔文温度实际物体辐射力小于黑体凹x有,凸x1-1为0

连通性问题大杂烩

前言 连通性问题确实时一大比较难啃得蛋糕,每次都要先学习一遍,还不如一次学到通 无向图的连通性问题 求割点 连通图:连通图内的所有点都可以互相到达 割点:将割点删掉后整张图不连通 定理1: 一个点s是割点,当且仅当s作为该连通图的根时,会把连通图分为不相连的几部分 定…

15-网络安全主动防御技术与应用

15.1 入侵阻断技术与应用 入侵阻断是网络安全主动防御的技术方法,其基本原理是通过对目标对象的网络攻击行为进行阻断,从而达到保护目标对象的目的。 1)原理 防火墙、IDS是保障网络安全不可缺少的基础技术,但是防火墙和IDS 本身存在技术上的缺陷。防火墙是基于静态的粗粒度…

Oracle数据库的查询变慢了

Help!Oracle数据库的查询变慢了! “救命!”一声尖叫划破天空,原本安静的办公室里面突然出现躁动。“咋了?” ,老D问到。发出尖叫的是阿城,他颤抖说道,“原本运行1分钟的SQL,现在运行几个小时,系统是不是要崩了!”老D淡定地扶了下眼镜,瞥了一眼阿城,说到:“好吧,莫慌…

Maven的安装部署(不踩雷版)

在idea中配置maven需注意maven版本和idea版本相匹配。本人使用idea版本为2020.3,jdk1.8,maven3.6.3可以与之相匹配。 一、下载maven maven下载官网地址:https://maven.apache.org/download.cgi 本人使用的maven3.6.3网盘链接:https://pan.baidu.com/s/1TdY9dc-cjI1za_5LRA6…

Nacos服务注册与发现的原理

大致流程 每个服务都会有一个nacos client,它用来和nacos server打交道 用来具体的服务注册 查询等操作,服务提供者在启动的时候会向nacos server注册自己,服务消费者在启动的时候订阅nacos server上的服务提供者。 在大型微服务项目中,服务提供者的数量会非常多,为了管理…

电脑上的一些顺手工具和网站_network

电脑上的一些顺手工具和网站 平常各种地方搜罗到的一些顺手的工具,怕到时候重装系统或者换电脑啥的不方便找,所以记下来。不对软件进行评价和介绍 软件 下载地址直接点击即可下载,地址都为官方地址 卸载工具 名字:geek 官网地址:Geek Uninstaller - the best FREE uninsta…

ProxyPin 抓包,原来可以这么简单!

​ 你是否还在为网络请求的抓包发愁?其实,ProxyPin 可以让抓包操作变得异常简单!不需要复杂的设置,也不用繁琐的配置,轻松几步就能实现。让我们一起来看看吧!抓包操作常用于测试网络请求、分析接口响应,那么 ProxyPin 是如何让这一切变得更简单的呢?它有哪些特色功能,…