IP首部报文字段

一、IP首部报文字段

字段如下图所示

二、每个字段的含义

  1. 版本

表示 IP 协议的版本。通信双方使用的 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4,即 IPv4

  1. 首部长度

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

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

  1. 区分服务

用来获得更好的服务,这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998 年 IETF 把这个字段改名为区分服务(Differentiated Services,DS)。只有在使用区分服务时,这个字段才起作用。

  1. 总长度

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

  1. 标识

IP 协议在存储器中维持一个计数器。每产生一个数据报,计数器就加 1,并将此值赋给标识字段。当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。具有相同的标识字段值的分片报文会被重组成原来的数据报。

  1. 标志

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

  1. 片偏移

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

  1. 生存时间

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

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

  1. 协议

表示该数据报文所携带的数据所使用的协议类型

  1. 首部检验和

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

  1. 源地址

表示数据报的源 IP 地址

  1. 目的地址

表示数据报的目的 IP 地址

  1. 可选字段

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

三、引用

IP数据报格式详解

相关推荐
weixin_514253189 小时前
507-aguvis tmux
网络
从零开始学习人工智能9 小时前
一文读懂Safous网关+POP架构:零信任ZTNA完整工作原理(请求+响应全流程)
服务器·网络·架构
不懂的浪漫10 小时前
Netty 不只是 TCP 框架:它解决的是高并发业务系统的组织问题
网络·网络协议·tcp/ip·架构·netty
艾莉丝努力练剑11 小时前
【Linux网络】Linux 网络编程入门:TCP Socket 编程(上)
linux·运维·服务器·网络·tcp/ip·计算机网络
@insist12311 小时前
信息安全工程师-漏洞管理核心认知体系必考点解析
网络·安全·软考·信息安全工程师·软件水平考试
高翔·权衡之境11 小时前
差错控制——噪声中如何保真?
网络·驱动开发·嵌入式硬件·物联网·软件工程·信息与通信
dog25011 小时前
圆锥曲线命题的定义和证明
网络·算法·php
求学中--11 小时前
数据持久化与网络请求全攻略:Preferences、关系数据库、HTTP实战
网络·网络协议·http
想成为优秀工程师的爸爸12 小时前
车载以太网之要火系列 - 第35篇:郭大侠学UDS(34/36/37服务)- 环环相扣展神奇,丝滑更新不迷离
网络协议·uds·车载以太网
yantaohk12 小时前
高层住宅只有一根光纤入户,能不能多装几条宽带跑PCDN?
网络