IPv4首部格式
IPv4首部格式
IPv4数据报的首部格式及其内容是实现IPv4协议各种功能的基础。
在TCPIP标准中,各种数据格式常常以32比特(即4字节)为单位来描述。

-
首部长度
- 长度为4个比特,该字段的取值
以4字节为单位,用来表示IPv4数据报的首部长度。 最小取值为二进制的0101,即十进制的5,再乘以4字节单位,表示IPv4数据报首部只有20字节固定部分。最大取值为二进制的1111,即十进制的15,再乘以4字节单位,表示IPv4数据报首部包含20字节固定部分和最大40字节可变部分。
- 长度为4个比特,该字段的取值
-
区分服务
-
长度为8个比特,用来获得更好的服务。
-
该字段在旧标准中叫作服务类型,但实际上一直没有被使用过。1998年,因特网工程任务组ETF把这个字段改名为区分服务。利用该字段的不同取值可提供不同等级的服务质量。
-
只有在使用区分服务时该字段才起作用,一般情况下都不使用该字段。
-
总长度
- 长度为16个比特,该字段的取值以字节为单位,用来表示IPv4数据报的长度(首部长度+数据载荷长度)。最大取值为二进制的16个比特1,即十进制的65535(很少传输这么长的IPv4数据报)。
引入概念—IPv4数据报分片

下面介绍的 标识字段,标志字段,片偏移字段,共同用于IPv4数据报分片
-
标识
- 长度为16个比特,属于同一个lPv4数据报的
各分片数据报应该具有相同的标识。 - IP软件会维持一个计数器,每产生一个IPv4数据报,计数器值就加1,并将此值赋给标识字段。
- 长度为16个比特,属于同一个lPv4数据报的
-
标志
- 最低位(More Fragment,MF)
- MF=1表示本分片后面还有分片
- MF=0表示本分片后面没有分片
- 中间位(Don’t Fragment,DF)
- DF=1表示不允许分片
- DF=0表示允许分片
- 最高位为保留位,必须设置为0
- 最低位(More Fragment,MF)
-
片偏移
- 长度为13个比特,该字段的取值以8字节为单位,用来指出分片IPv4数据报的数据载荷偏移其在原IPv4数据报的位置有多远。
-
生存时间(Time To Live,TTL)
- 长度为8个比特,最大取值为二进制的111111,即十进制的255。该字段的取值最初以秒为单位。因此,IPv4数据报的最大生存时间最初为255秒。路由器转发IPv4数据报时,将其首部中该字段的值减去该数据报在路由器上所耗费的时间,若结果不为0就转发,否则就丢弃。
-
协议
- 长度为8个比特,用来指明IPv4数据报的数据载荷是何种协议数据单元PDU.

- 长度为8个比特,用来指明IPv4数据报的数据载荷是何种协议数据单元PDU.
-
首部检验和
- 长度为16个比特,用于检测IPv4数据报在传输过程中其
首部是否出现了差错。 - IPv4数据报每经过一个路由器,其首部中的某些字段的值(例如生存时间TTL、标志以及片偏移等)都可能发生变化,因此
路由器都要重新计算一下首部检验和。
首部检验和的计算方法:
- 长度为16个比特,用于检测IPv4数据报在传输过程中其

首部检验和计算的重点在于二进制反码求和的运算:
两个数进行二进制反码求和的运算规则是从低位到高位逐列进行计算:- 0和0相加是0
- 0和1相加是1
- 1和1相加是0,但要产生一个进位1,加到下一列(再进行+1操作)
- 若最高位相加后产生进位,则最后得到的结果要加1
举例:




可变部分组成
-
可选字段
- 长度从1字节到40字节不等,用来支持排错、测量以及安全措施等功能。
- 虽然可选字段增加了IPv4数据报的功能,但这同时也使得IPv4数据报的首部长度成为可变的,这就增加了因特网中每一个路由器处理IPv4数据报的开销。
-
填充
- 用来确保lPv4数据报的首部长度是4字节的整数倍,使用全0进行填充。

- 用来确保lPv4数据报的首部长度是4字节的整数倍,使用全0进行填充。
真题演练
【2021年题36】若路由器向MTU=800B的链路转发一个总长度为1580B的IP数据报(首部长度为20B)时,进行
了分片,且每个分片尽可能大,则第2个分片的总长度字段和MF标志位的值分别是(B)。
A.796,0
B.796,1
C.800,0
D.800,1
注意 分片长度要满足能被8整除

相关文章:
IPv4首部格式
IPv4首部格式 IPv4数据报的首部格式及其内容是实现IPv4协议各种功能的基础。 在TCPIP标准中,各种数据格式常常以32比特(即4字节)为单位来描述。 IPv4首部格式图 ## IPv4数据报的组成 主要由固定部分(20字节)可变部分(最大40字节) - 固定部分是指每个IPv4数据报都必…...
点云从入门到精通技术详解100篇-基于 3D 激光雷达的车厢冻煤存量检测
目录 前言 研究意义 研究现状(Research status) 3D 激光雷达检测技术研究现状...
idea使用MyBatisX插件
1.MyBatisX功能 (1).实现mapper和xml的跳转 (2).自动生成java文件,比如mapper、service、dao、pojo 2.安装MyBatisX插件 install后然后重启idea即可 3.使用MyBatieX实现mapper和xml跳转 (1).点击mapper中的红色图标即可跳转到对应的xml方…...
Open3D(C++) 最小二乘拟合平面(间接平差法)
目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。 一、算法原理 1、原理概述 通过传统最小二乘法对点云数据进行平面拟合时,可将误差只归因于一个方向上,本文假设误差只存在于 Z Z...
Linux中搭建coturn服务器
1、下载coturn源码 git clone https://github.com/coturn/coturn.git2、进入到coturn路径下,执行一下命令。 ./configure出现以下错误: 问题1:ERROR: OpenSSL Crypto development libraries are not installed properly in required locati…...
【Proteus仿真】【Arduino单片机】SG90舵机控制
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用SG90舵机等。 主要功能: 系统运行后,舵机开始运行。 二、软件设计 /* 作者:嗨小易(QQ&#x…...
程序员有哪些规避风险的合法兼职渠道?
近期,承德程序员事件冲上热搜,这对许多程序员的心灵是多么大的伤害啊! 人人自危,大家开始顾虑自己接私活、找兼职的方式和前景了。毕竟,谁也不想”辛辛苦苦几十年,一把回到解放前“。那有什么办法既可以接私…...
OpenGL_Learn04
我这边并不是教程,只是学习记录,方便后面回顾,代码均是100%可以运行成功的。 1. 渐变三角形 #include <glad/glad.h> #include <GLFW/glfw3.h>#include <iostream> #include <cmath>void framebuffer_size_callba…...
【嵌入式】HC32F07X CAN通讯配置和使用配置不同缓冲器以连续发送
一 背景说明 使用小华(华大)的MCU HC32F07X实现 CAN 通讯配置和使用 二 原理分析 【1】CAN原理说明(参考文章《CAN通信详解》): CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现…...
Linux的常见指令(一)
目录 一、文件 二、常见指令 1、pwd 2、ls 1、ls -a 2、ls -l 3、ls -i 编辑 3、touch 4、mkdir 5、cd 6、rmdir 和 rm 7、man 8、cp 一、文件 目录和文件是在磁盘上建立的,空文件是在磁盘上占用空间的(文件包括文件内容和文件的各种属…...
Jenkins 参数动态获取目录里面的内容
Jenkins 参数动态获取目录里面的内容 假如我们想把一个目录下面的tar.gz文件作为jenkins参数,这个目录会实时更新,每次运行job的时候需要把目录里面的文件作为输入,这时候我们可以使用jenkins自带的Active Choices Parameter参数 在参数中写…...
centos 搭建内网ntp时间服务器
在 CentOS 搭建内网 NTP 时间服务器,你可以按照以下步骤操作: 安装 NTP 服务: 打开终端并以 root 用户身份登录。使用以下命令安装 NTP 服务: sudo yum install ntp配置 NTP 服务器: 打开 NTP 配置文件 /etc/ntp.conf&…...
FreeRTOS-消息队列的使用
1. 定义队列传输的内容和队列结构体对象 使用 xQueueHandle结构体创建对象 typedef struct {u8 TaskNum;u8 Cmd;u8 * buf;}QueueObject_t;xQueueHandle xQueue NULL; 2. 调用xQueueCreate API创建队列 xQueueCreate()函数:用于创建一个消息队列。 QueueHan…...
喜欢 Android 14 的 14 个理由
和去年 8 月中旬发布的 Android 13 正式版不同,今年的 Android 14 正式版延后到了 10 月 4 日——也就是 Pixel 8 系列发布的同一天。原因我们似乎也能从 Google 宣传新特性中略窥一二: 除了明确表示会率先向特定 Pixel 机型推送的 AI 壁纸生成…...
图解系列--路由器和它庞大的功能
03.01 何为路由器 路由器是指主要负责 OSI参考模型中网络层的处理工作,并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网,也可以称为广播域。此外,现在的路由器还会搭载其他各种各样的功能。 0…...
DBeaver 23.2.3发布,带来多项增强和修复
数据库管理工具DBeaver最新版本23.2.3已经发布。这个版本带来了一系列的增强和修复,提升了用户的使用体验和工作效率。 以下是DBeaver 23.2.3版本的一些亮点功能: 数据编辑器方面的改进: Excel (XLSX) 导出现在支持列自动拟合,…...
Proteus仿真--基于51单片机的按键选播电子音乐(仿真文件+程序)
本文主要介绍基于51单片机的按键选播电子音乐(完整仿真源文件及代码见文末链接) 本设计中包括一个按键和一个喇叭,点击按键可以切换选择播放不同的音乐 仿真图如下 其中点击按键K1进行音乐选播选择切换 仿真运行视频 Proteus仿真--基于5…...
node使用http模块
文章目录 前言一、创建http服务二、设置http的响应报文三、不同请求响应不同数据四、请求响应不同html文件1. 添加www文件夹2. js代码3. 效果 五、get和post请求的区别 前言 提示:这里可以添加本文要记录的大概内容: 一、创建http服务 // 1:…...
Golang Study 进阶
Golang 本文章中记录一些 Golang 中的语言特性,包括 init 函数,面向对象,defer 关键字,并发编程等。 init 函数与导包 init函数的执行流程是早于main函数的,如果想在main函数执行前做一些事情,可以在init函…...
Shopee买家通系统详细功能介绍
Shopee买家通系统是一款全自动化操作的软件,可以批量注册买家号、自动加购加心愿单、自动下单等。 批量注册买家号 准备好相应资料后,在运行注册时可以自动输入手机号、自动输入短信、自动输入设置的密码。 自动加购加心愿单 根据设置的关键词及产品编…...
2026好用的企业内网通讯软件:哪家更适合你?
2026年,企业数字化办公的浪潮已进入深水区。随着《数据安全法》等法规的深度落地,以及企业对核心数字资产掌控权的重视,一个显著的趋势正在发生:企业通讯市场正在经历一场深刻的“向内回归”——私有化部署正从传统行业的无奈之选…...
AI辅助开发Playwright脚本:处理文件上传与iframe交互难题
AI辅助开发Playwright脚本:处理文件上传与iframe交互难题 最近在做一个Web自动化测试项目时,遇到了两个特别头疼的问题:文件上传和iframe内的富文本编辑器交互。作为一个刚接触Playwright不久的开发者,这些复杂交互让我卡了好几天…...
别再死记硬背了!用74HC系列CMOS芯片,手把手带你理解逻辑门电平与噪声容限
74HC系列CMOS芯片实战:从数据手册到面包板的逻辑门电平全解析 当你在深夜调试一块74HC04反相器搭建的振荡电路时,示波器上本该清晰的方波却出现了毛刺和畸变——这种场景对电子爱好者来说再熟悉不过。本文将以74HC系列CMOS芯片为核心,通过五…...
如何永久备份微信聊天记录?WeChatMsg完整解决方案指南
如何永久备份微信聊天记录?WeChatMsg完整解决方案指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...
Ostrakon-VL扫描终端实战:识别冷柜温度计读数并判断是否符合标准
Ostrakon-VL扫描终端实战:识别冷柜温度计读数并判断是否符合标准 1. 项目背景与价值 在零售和餐饮行业中,冷链管理是确保食品安全的关键环节。传统的人工检查冷柜温度方式存在效率低、易出错等问题。Ostrakon-VL扫描终端通过创新的像素风格界面和强大的…...
告别手动爆肝:用AiScan-N自动化你的CTF Web漏洞测试(SQL注入/文件上传实战)
智能渗透测试革命:AiScan-N在CTF中的实战应用与效率跃升 当凌晨三点的CTF比赛进入白热化阶段,你的眼皮开始打架,而对手却像永动机般不断提交flag——这种场景下,传统手动渗透测试的局限性暴露无遗。我曾亲眼见证一位资深红队成员…...
NCM格式突破全攻略:从解密到跨平台播放的自由解锁方案
NCM格式突破全攻略:从解密到跨平台播放的自由解锁方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 音乐作为数字生活的重要组成部分,却常常受到格式限制的困扰。网易云音乐的NCM加密格式就是其中典型代表&…...
SuGaR与NeRF对比分析:为什么高斯泼溅是未来趋势
SuGaR与NeRF对比分析:为什么高斯泼溅是未来趋势 【免费下载链接】SuGaR [CVPR 2024] Official PyTorch implementation of SuGaR: Surface-Aligned Gaussian Splatting for Efficient 3D Mesh Reconstruction and High-Quality Mesh Rendering 项目地址: https://…...
实战应用:基于快马平台开发排序算法性能对比分析工具
今天想和大家分享一个特别实用的工具开发经历——用InsCode(快马)平台快速搭建了一个排序算法性能对比分析工具。这个项目不仅帮我巩固了算法知识,还意外发现了很多实际应用中的细节问题,特别适合用来理解不同排序算法的实战表现。 1. 为什么需要这个工…...
koanf命令行参数解析:高级POSIX兼容标志处理指南
koanf命令行参数解析:高级POSIX兼容标志处理指南 【免费下载链接】koanf Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. 项目地址:…...
