IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> IP 协议报文格式 【IPv4】 -> 正文阅读

[网络协议]IP 协议报文格式 【IPv4】

前言: IP 数据报文由首部(称为报头)和数据两部分组成;首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的;在首部的固定部分的后面是一些可选字段,其长度是可变的

每个 IP 数据报都以一个 IP 报头开始;源计算机构造这个 IP 报头,而目的计算机利用 IP 报头中封装的信息处理数据;IP 报头中包含大量的信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等;每个信息都被称为一个字段

如图所示:

在这里插入图片描述

版本号

占 4 位
指定 IP 协议的版本;通信双方使用的 IP 协议版本必须一致;目前使用最广泛的IP协议版本号为 4,即 IPv4

首部长度

占 4 位
可表示的最大十进制数值是 15,IP 首部长度的单位是 32 位字长 (1 个 32 位字长是 4 字节,也就是 length * 4 的字节数,4bit 表示最大的数字是15),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到最大长度 60 字节,当 IP 分组的首部长度不是 4 字节的整数倍时,必须利用最后的填充字段加以填充

数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时比较方便;首部长度限制为 60 字节的缺点是 长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销;最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项

区分服务 TOS

也被称为服务类型,占 8 位;
3位优先权字段 (已经弃用),4位TOS字段,和1位保留字段(必须置为0);4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本;这四者相互冲突,只能选择一个;对于 ssh / telnet 这样的应用程序,最小延时比较重要;对于 ftp 这样的程序,最大吞吐量比较重要

总长度

首部和数据之和,单位为字节;总长度字段为 16 位
因此数据报的最大长度为 216-1=65535 字节

标识 id

用来标识数据报,占 16 位;
IP 协议在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段;当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中;具有相同的标识字段值的分片报文会被重组成原来的数据报 (如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id 都是相同的)

标志 flag

占 3 位
第一位未使用,其值为 0;
第二位称为 DF(不分片),表示是否允许分片;取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片;
第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片

片偏移

占 13 位
当报文被分片后,该字段标记该分片在原报文中的相对位置;片偏移以 8 个字节为偏移单位;所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍

生存时间 TTL

表示数据报在网络中的寿命,占 8 位
该字段由发出数据报的源主机设置,其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源

路由器在转发数据报之前,先把 TTL 值减 1,若 TTL 值减少到 0,则丢弃这个数据报,不再转发;因此,TTL 指明数据报在网络中最多可经过多少个路由器;TTL 的最大数值为 255;若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送

协议

表示该数据报文所携带的数据所使用的协议类型,占 8 位
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分,不同的协议有专门不同的协议号

头部校验和

用于校验数据报的首部,占 16 位
数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值

源地址

表示数据报的源 IP 地址,占 32 位

目的地址

表示数据报的目的 IP 地址,占 32 位
该字段用于校验发送是否正确

可选字段

该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的;这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制

填充

由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍

数据部分

数据部分的长度不固定
表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:56:30  更:2022-03-16 22:56:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:37:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码