1)数据报可以分为报头区和数据区,数据区的数据来自上一层。    说明:首部和报头和头等字眼是同一意思。
2)版本:指明IP协议是哪个版本, IPv4为0100。
3)报头长度:也叫首部长度,指明报头区的长度。最小值为20个字节,最大值为60字节。 说明:
a. 当没有选项和填充字段时,32位(每行的长度)*5(5行固有的)=160位=20字节,这个时候4个比特位的值为0101,为什么呢?因为这里规定以4 个字节为单位,如果把0101用换算成十进制,0101=5,5*4=20字节。如果4个比特位为1111,把1111换算成十进制则等于15,则它表示 15*4=60个字节。(简单记成换算成十进制后乘以4才等于它报头区的字节数) b.当 IP 分组的首部长度不是4字节的整数倍时, 必须利用最后的 填充字段加以填充。
4)服务类型(TOS字段):转发过程中对该数据报的处理方式。

5)总长度:等于报头区及数据区的长度相加。    说明:
a. 最大长度为65535个字节(当8个bit都等于1时),2^16-1=65535个字节。 b. IP数据报的最大长度的确是65535字节。但是实践 中最大长度很少用,因为大多物理网络都有长度限制,例如,数据链路层有自己的帧格式,其中包括了数据字段的最大长度,即最大数据传输单元MTU,当一个数 据报封装成链路层的帧时,此数据报的总长度一定不能超过下面的数据链路层的MTU值,以太网把载荷长度限制在1500字节。
6)标识:IP软件在存储器中维持一个计数器,每产生一个数据报, 
计 数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号, 因为 IP是无连接的服务,数据报不存在按序接收的问题。 当数据报由于长度超过网络 的 MTU 而必须分片时, 这个标识字段的值就被复制到所有的数据报的标识字段中。 相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来 的数据报。

7)标志: 占三位,但目前只有两位有意义。标志字段中间位记为DF(Don’t
fragment),当DF=1时表示不允许分片,当DF=0时表示允许。标志
中最低位(即最右)记为MF(more fragment),当MF=1时,表示后面“还有分片”,当MF=0时表示没有。
 说明:|R|DF|MF| ,R保留未用。
8)片偏移:指的是该片偏移原始数据报开始处的位置,偏移的字节数是该值乘
以8。 
说明:当数据报被分片后,每个片的总长度值要改为该片的长度值
9)生存周期:其目的是防止无法交付的数据报无限制地在因特网中兜围子, 因
而白白消耗网络资源。最初的设计是以秒作为 TTL的单位。  每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。 若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。 当 TTL值为 0时,就丢弃这个数据报。
10)协议:协议字段指出此数据报携带的数据是使用(上层的)何种协议,以便
使目的主机的IP层知道应将数据部分上交给哪个处理过程。
11)头部校验和:这个字段只检验数据报的首部部分(报头区), 但不包括数据
部分(数据区)。这是因为数据报每经过一个路由器,都要重新计算一下首部检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。
12)选项:占24位,IP数据报选项由选项码、长度和选项数据三部分组成。

a.源路由:IP数据报穿越互联网所经过的路径是由源主机指定的应用场合:测试
某特定网络的吞吐率、使数据报绕开出错网络等。
源路由选项分为:
严格源路由选项:规定IP数据报要经过路径上的每一个路由器。 松散源路由选项:只给出IP数据报必须经过的一些“要点”。
b.记录路由选项:记录IP数据报从源主机到目的主机所经过路径上各个路由器
的IP地址。
c.时间戳选项:记录IP数据报经过每一路由器时的当地时间 
附加说明: IP互联网利用ICMP传输控制报文和差错报文,ICMP报文封装在IP
数据报中。

转载于:https://blog.51cto.com/yaotongshaonian/1723441

IPV4报头格式详解相关推荐

  1. IPv4 和 IPv6 数据报格式详解

    IPv4 报文头格式及各字段功能 IPv4 报头格式 各字段功能: 1.版本号(Version):长度 4 bit .标识目前采用的 IP 协议的版本号.一般的值为 0100(IPv4),0110(I ...

  2. TCP数据包协议格式详解

    出一个专栏把通信协议搞一下吧,万物互联的根本呀. IP 版本4位:4(二进制0100)表示IPv4,6(二进制0110)表示IPv6 报头长度(单位4byte):因为选项长度不确定,取值范围是5-15 ...

  3. 4-4:TCP协议之TCP头部格式详解

    文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...

  4. HTTP响应协议格式详解

    文章目录 响应协议格式 1. 首行 状态码详解 2. 响应头header 响应协议格式 HTTP请求协议由首行.响应头(header).空行.正文(body)组成.通过空行来区别header和body ...

  5. UDP数据包协议格式详解

    源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号 报文长度(单位4byte):表示udp报头+udp数据总长度,有别于tcp,也没有选项 UDP报 ...

  6. Java字节码(.class文件)格式详解(一)

    原文链接:http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html 小介:去年在读<深入解析JVM>的时候写的,记得当时还 ...

  7. php serialize取值,PHP 序列化(serialize)格式详解

    PHP 序列化(serialize)格式详解(转) 1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PH ...

  8. php serialize mysql_php 序列化(serialize)格式详解

    1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对序列 ...

  9. 三维重建:PNG格式详解-与LibPNG使用

    PNG图像包含了骨骼信息,左边的图像比右边的大几十K,包含了骨骼信息:        PNG格式详解:https://blog.mythsman.com/post/5d2d62b4a2005d7404 ...

最新文章

  1. pandas使用iteritems函数迭代地查看dataframe中的每个数据列(iterate over each column of a dataframe)
  2. 机器学习系列之手把手教你实现一个决策树
  3. 5.Java中的常量以及常量的分类
  4. va_list/va_start/va_arg/va_end深入分析
  5. Ubuntu下面的Keras可视化+权重维度获取-Netron的安装使用
  6. java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架
  7. IOC操作Bean管理XML方式(P名称空间注入)
  8. 客户端渲染(CSR)
  9. Java中正则表达式提取字符串
  10. javascript 忽略 报错_.babelrc ignore忽略js无效
  11. swoole2.0与java_swoole2.0试用说明
  12. 利用composer搭建PHP框架(五.自动加载)
  13. 2022-2028年中国林业碳汇行业市场发展规模及投资机会分析报告
  14. 经典编程书籍大全-python
  15. k8s集群svc端口范围,nfs做StorageClass运行故障
  16. Codeforces Round 361 div2
  17. 明日之后找回原来的服务器,明日之后怎么找回原来的账号
  18. 如何解决删除文件时显示已经被另一程序占用打开的问题
  19. 刹车盘的噪音测试软件,制动噪声及振动介绍.pdf
  20. 插入脚注把脚注标注删掉_CSS中的经典版式效果:脚注

热门文章

  1. MyEclipse 2017软件安装教程
  2. 光在介质中传播速度—材料折射率变化—物理光学记录
  3. 交换机调试工具_工业以太网交换机安装流程图解
  4. uvm 形式验证_一种基于UVM的总线验证方法与流程
  5. java规则计算_java实现的霍纳规则的多项式计算
  6. php 补足字符串,php 数目字或者字符串补全
  7. mysql连接查询作业答案_MySQL连表查询练习题
  8. php 23种设计模型 - 装饰模式
  9. 非递归遍历N-ary树Java实现
  10. Codeforces Round #535 (Div. 3) [codeforces div3 难度测评]