二十九、IP数据报

简介: 二十九、IP数据报

1、IP数据报格式


IP数据报格式分为首部数据部分,其中首部又可以细分为固定部分可变部分;数据部分若是过大,则会对数据进行分片。45a65712493b439aaef75284b424375e.png



1.1 IP数据报首部信息

011f278180ef4f908b297e57014a54d0.png


版本: 中记录了当前数据报使用的是IPV4协议还是IPV6协议;


首部长度: 的单位是4B,最小为5,最大为15,因为首部长度的空间大小只有4位;最小为5是因为,首部固定长度部分最少为20B;


区分服务: 指示期望获得哪种类型的服务,如强调数据报的优先级;


总长度: 首部长度+数据长度,单位是1B,总长度的空间大小为16位,最大可以表示的数字为65535,再乘以单位1B,说明总长度最大为65535B;


生存时间(TTL): IP分组的保质期。经过一个路由器-1,变成0则将数据报丢弃;


协议: 指的是数据部分使用的协议,各种协议对应的字段如下所示:


94963c7d20f244bfa55b3ae1325c5fbb.png


首部检验和: 只检验首部,不检验数据部分;


源地址和目的地址: IPV4协议下的地址长度为32位;


可选字段: 0-40B,用来支持排错、测量以及安全等措施;


填充: 全为0,把首部补成4B的整数倍;



2、IP数据报的分片


最大传送单元MTU


表示链路层数据帧可以封装的数据上限,以太网的MTU是1500字节,超过1500字节就要对数据进行分片处理。

1916053e13814fb6b63b0ee7d4dcdc61.png


标识:


同一数据报的分片使用同一个标识;

标志:


有3位,但是只有两位有意义,中间位为DF(Don’t Fragment),DF=1,禁止分片;DF=0,允许分片。最低位MF,(More Fragment):MF=1,后面还有分片;MF=0代表最后一片/没有分片。

片偏移:


指出较长分组分片后,某片在原分组中的相对位置,以8B位为单位。通过片偏移的调整规则可以发现,数据报中若进行分片之后,除了最后一个分片,每一个分片一定是8B的整数倍。

IP数据报分片例题:

31cd93b68230408896b69efa7ef41c2b.png



一种八片的首饰:


   总长度的单位是1B,片偏移的单位是8B,首部长度的单位是4B。








相关文章
|
10月前
|
存储 Kubernetes 负载均衡
【k8s 系列】k8s 学习二十六,有状态的应用如何部署 1?
前面我们分享很多关于 K8S 的内容,有没有发现 pod 都是无状态,RS / RC 管理的 pod 也是无状态的,我们可以任意删除一个 pod,副本管理器又会马上给我们创建一个 pod 那么如果咱们的这个 pod 是有挂载持久卷的,那么我们用老方法可还行?
155 0
|
网络协议 网络安全 C++
【网络篇】第十六篇——再谈端口号
【网络篇】第十六篇——再谈端口号
【网络篇】第十六篇——再谈端口号
|
网络协议 安全 网络架构
|
SQL 安全 Oracle
一篇搞定常见端口服务及利用简析(下)
一篇搞定常见端口服务及利用简析
341 0
|
域名解析 安全 网络协议
一篇搞定常见端口服务及利用简析(上)
一篇搞定常见端口服务及利用简析
366 0
|
应用服务中间件 nginx
如何在服务器上添加虚拟IP?看完原来如此简单!!
最近,有位小伙伴为了实现Nginx的高可用,在自己的服务器上搭建了一套Nginx集群,Nginx节点的服务器总共有3台。那么问题来了:如何对外只使用一个IP地址,通过某种策略来访问三个服务器节点上的Nginx?答案就是:可以使用虚拟IP来实现!那么,如何在服务器上添加虚拟IP?今天,我们就一起实操在服务器上添加虚拟IP。
1489 0
如何在服务器上添加虚拟IP?看完原来如此简单!!