IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头IP报文用户数据组成,IP报文头的长度一般在2060个字节之间,而一个IP分组的最大长度则不能超过65535个字节。
下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。

版本:占4位(bit),指IP协议的版本号。目前的主要版本为IPV4,即第4版本号,也有一些教育网和科研机构在使用IPV6。在进行通信时,通信双方的IP协议版本号必须一致,否则无法直接通信。
首部长度:占4位(bit),指IP报文头的长度。最大的长度(即4个bit都为1时)为15个长度单位,每个长度单位为4字节(TCP/IP标准,DoubleWord),所以IP协议报文头的最大长度为60个字节,最短为上图所示的20个字节。
服务类型:占8位(bit),用来获得更好的服务。其中的前3位表示报文的优先级,后面的几位分别表示要求更低时延、更高的吞吐量、更高的可靠性、更低的路由代价等。对应位为1即有相应要求,为0则不要求。
总长度:16位(bit),指报文的总长度。注意这里的单位为字节,而不是4字节,所以一个IP报文的的最大长度为65535个字节。
标识(identification):该字段标记当前分片为第几个分片,在数据报重组时很有用。
标志(flag):该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片),后面是否还有分片(是否是最后一个分片)。
片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置。
生存时间:TTL(Time to Live)。该字段表明当前报文还能生存多久。每经过1ms或者一个网关,TTL的值自动减1,当生存时间为0时,报文将被认为目的主机不可到达而丢弃。使用过Ping命令的用户应该有印象,在windows中输入ping命令,在返回的结果中即有TTL的数值。
协议:该字段指出在上层(网络7层结构或TCP/IP的传输层)使用的协议,可能的协议有UDP、TCP、ICMP、IGMP、IGP等。
首部校验和:用于检验IP报文头部在传播的过程中是否出错,主要校验报文头中是否有某一个或几个bit被污染或修改了。
源IP地址:32位(bit),4个字节,每一个字节为0~255之间的整数,及我们日常见到的IP地址格式。
目的IP地址:32位(bit),4个字节,每一个字节为0~255之间的整数,及我们日常见到的IP地址格式。

转自:https://www.cnblogs.com/xsiedu/articles/1741584.html

IP报文头详解以及定义相关推荐

  1. IP头、TCP头、UDP头详解以及定义

    一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/ typedef struct _MAC_FRAME_HEADER {  char m_cDstMacAddress[6];    // ...

  2. icmp报文格式_TCP/IP(二):IP报文格式详解

    1. IP 报文格式 0bit是指位于最左边的最高位,31bit是指位于最右边的最低位,4个字节的32bit按照 bigendian(大端格式:低字节位于高地址)字节序传输:首先是0~7bit,其次 ...

  3. TCP/IP五层模型详解

    TCP/IP五层模型详解 应用层 HTTP:简单的明文传输的请求--响应协议 HTTP数据结构: 首行 头部 空行 正文 浏览器的控制 HTTPS 定义 CA认证 SSL加密流程: 混合对称加密过程: ...

  4. 前端基础-TCP/IP 不完全详解

    TCP/IP 不完全详解 TCP/IP是通信协议的统称.首先,我们先认识一下OSI参考模型 OSI 参考模型 OSI 参考模型中各个分层的作用如下: 概括的说: 应用层:为应用程序提供服务并规定应用程 ...

  5. linux中etc下的hosts(本地IP解析)文件详解

    linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...

  6. [转]纯真IP数据库格式详解

    纯真IP数据库格式详解 摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其 ...

  7. IP协议及IP数据包详解

    本文转自至:https://blog.csdn.net/super_yc/article/details/72290931 回忆一下网络层的主要功能:通过TCP或者UDP协议绘制网络地图,数据包选取合 ...

  8. 64位JVM的Java对象头详解

    关注"Java艺术"一起来充电吧! 我们编写一个Java类,编译后会生成.class文件,当类加载器将class文件加载到jvm时,会生成一个Klass类型的对象(c++),称为类 ...

  9. HTTP请求头和响应头详解【转】

    最近老猿在开始学习爬虫相关的知识,由于老猿以前只做非web的后台应用,发现相关知识太过匮乏,导致学习很困难,为此不得不从一些基础知识恶补开始,对于这些知识,老猿会将网上找到的比较认可的内容直接转发. ...

  10. HTTP请求响应系列02_响应报文的详解

    响应报文 1.响应报文的详解 上篇文字讲的"请求报文",本篇主要解释响应报文包括的内容. 响应报文的内容也包括三部分,分别是: 响应行, 响应头, 响应体.这三部分放的都是信息.是 ...

最新文章

  1. 转专业入门NLP,这样学就对了
  2. VTK:网格之ColoredElevationMap
  3. P2324 骑士精神
  4. Android 设计模式 - 装饰者模式
  5. [ CSOL ] - zihao + 自适应 + 文字滚动 + 媒体查询 + fullpage + 手风琴 + 延时动画
  6. jQuery siblings()用法与实例。
  7. Android 蓝牙/wifi云打印机 ESC/POS热敏打印机打印(ESC/POS指令篇)
  8. 蛙蛙推荐:蛙蛙教你发明一种新语言之二--代码生成
  9. DHCP Relay的介绍
  10. 【论文精读】OmniFusion全景相机的深度估计
  11. 数据库 连接(自然连接,内连接,外连接)
  12. Java基础之双色球彩票玩法
  13. Navicat Premium 12安装包和破解补丁(亲测有效)
  14. angular 父子组件通信
  15. jenkins 中无Dingding plugin钉钉插件,及其钉钉发送消息
  16. 【system】cmd命令大全
  17. python数星星_最好的朋友:C++11 移动语义和 Pimpl 手法
  18. 2014迅雷校园招聘笔试题
  19. 前缀表达式计算、中缀表达式计算、后缀表达式计算
  20. 插入U盘老是弹出U盘扫描和提示修复提示怎么解 决

热门文章

  1. QThread 的使用
  2. Lattice Diamond 3.12下载与安装(免费获取license.dat)
  3. 网页爬取常用正则表达式的介绍
  4. JavaScript 基础概念
  5. 自动控制——2、为什么用微分方程来表示线性定常系统
  6. office未响应(2010、2013……)崩溃
  7. centos7阿里yum源报问题
  8. linux 安装 maven
  9. 一个简单的网页设计HTML5作业
  10. 强烈推荐APP破解常用工具集合!最强总结