每个 IP 数据报都以一个 IP 报头开始。源计算机的 TCP/IP 软件构造这个 IP 报头,目的计算机的 TCP/IP 软件利用 IP 报头中封装的信息处理数据。IP 报头包含大量信息,包括源 IP 地址、目的 IP 地址、数据报长度、IP版本号和对路由器的特殊指令等。

Version

这个 4 位的字段表示所使用的 IP 版本。IPv4 相应的二进制是 0100。

IHL(Internet Header Length)

这个 4 位字段表示 IP 报头以 32 位字为单位的长度。IP 报头的最小长度是 5 个 32 比特字,相应的二进制表示 0101。

Type of Service

源 IP 能够指定特殊的路由信息。有些路由器会忽略这个地段的信息,但随着服务质量(QoS)技术的出现,这个字段得到了更多的重视。这个 8 位字段的主要用途是对等待通过路由器的数据报区分优先级,而目前大多数 IP 实现是把这个字段全填为 0。

Total Length

这个 16 位的字段表示 IP 数据报的长度,单位是字节,这个长度包含了 IP 报头和数据载荷。

Identification

这个 16 位的字段是一个依序变大的数值,分配给源 IP 发出的消息。当传递到 IP 层的消息太大而不能放到一个数据报里时,IP 会把消息拆分到多个数据报,并对这些数据报排序分配相同的标识号。接收端利用这些数值重组为原始消息。

Flags

这个字段表示分段可能性。第 1 位未使用,其值应该为 0。第 2 位称为 DF(Don’t Fragment),表示是否允许分段,0 表示允许,1 表示不允许。第 3 位是 MF(More Fragments),表示是否还有分段正在传输,设置为 0 时表示没有更多分段需要发送,或是数据报根本没有分段。

Fragment Offset

这个 13 位的字段是一个数值,被赋予每个连续的分段。目的设备的 IP 利用这个值以正确的次序重组分段。

Time To Live (TTL)

这个字段表示数据报在被抛弃之前能保留的时间(以秒为单位)或路由器跳数。每个路由器都会检查这个字段,并且至少把它减去 1,或数据报在路由器中延迟的秒数。当这个字段的值为 0 时,数据报会被抛弃。

Protocol

这个 8 位的字段表示接收数据载荷的协议,比如协议标识为 6(二进制位为 00000110)的数据报会被传递到 TCP 模块。下面是一些常见的协议标识值。

 协议名称   协议标识 
ICMP 1
TCP 6
UDP 17

Header Checksum

这个字段包含 16 位的校验和,只用于检验报头本身的有效性。数据报经过的每个路由器都会对这个值重新进行计算,因为 TTL 字段的值是在不断变化的。

Source IP Address

这个 32 位的字段包含了数据报的源 IP 地址。

Destination IP Address

这个 32 位的字段包含了数据报的目的 IP 地址。目的 IP 根据这个值检验发送的正确性。

IP Options

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

Padding

IP 选项字段的长度不是固定的。填充字段可以提供一些额外的 0,从而保证整个报头的长度是 32 位的整倍数(报头长度必须是 32 位字的整数倍,因为 IHLL 字段以 32 位字为单位表示报头的长度)。

IP Data Payload

这个字段用于保存传递给 TCP 或 UDP(在传输层中)、ICMP 或 IGMP 的数据。数据块的长度不定,可以包含数千字节。

Networking - IPv4 报文格式的更多相关文章

  1. MAC帧格式、IPV4数据报格式、TCP报文格式、UDP数据报格式

    1.MAC帧格式 类型:2字节,指出数据域中携带的数据应交给哪些协议实体处理 校验码:校验数据段(采用32位CRC冗余校验方式进行校验) 2.IPV4数据报 版本:IP协议版本,这里为4 首部长度:占 ...

  2. DNS报文格式

    原文链接地址:http://blog.chinaunix.net/uid-24875436-id-3088461.html DNS报文格式(借个图贴过来):     说明一下:并不是所有DNS报文都有 ...

  3. 【转】TCP/IP报文格式

    1.IP报文格式 IP协议是TCP/IP协议族中最为核心的协议.它提供不可靠.无连接的服务,也即依赖其他层的协议进行差错控制.在局域网环境,IP协议往往被封装在以太网帧(见本章1.3节)中传送.而所有 ...

  4. tcp、udp、ip、icmp报文格式分析

    TCP .UDP .IP. ICMP协议报文格式分析 Tcp报文格式: Wireshark抓包如图: 源端口/目的端口(16bit): 在TCP报文中包涵了源端口/目的端口,源端口标识了发送进程,目的 ...

  5. 第11章 拾遗4:IPv6(1)_报文格式和地址类型

    1. IPv4和IPv6协议栈的比较 (1)IPv6取代IPv4,支持IPv6的动态路由协议都属于IPv6协议(如RIPng.OSPFv3). (2)Internet控制消息协议IPv6版(ICMPv ...

  6. 【转】IP报文格式详解

    下图为常见的IP报文格式表: 上面是IP的报文格式,接下来我们先说明各个字段的意义.然后,用Etheral软件转包分析IP的报文格式. 1.版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个 ...

  7. TCP协议探究(一):报文格式与连接建立终止

    一 TCP:传输控制协议报文格式 1 TCP服务 提供面向连接.可靠的字节流服务 面向连接意味着两方通信,不支持多播和广播 可靠性的支持: 应用数据被分割成TCP认为最适合发送的数据块.由TCP传递给 ...

  8. IPv4数据报格式及其语义

    一.IP数据报的格式如下图所示 版本 首部长度 服务类型 数据报长度 16比特标识 标志 13比特片偏移 寿命 上层协议 首部检验和 32比特源IP地址 32比特目的IP地址 选项(如果有的话) 数据 ...

  9. DNS报文格式(RFC1035)

    一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions)      2.1 格式          后面分析报文的时候详细解释.   ...

随机推荐

  1. 【Java】IO流简单分辨

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的IO流体系十分庞大,并且体系层次稍复杂,很容易记混或记错.在此,我把平时经常用 ...

  2. [PoC]某B2B网站的一个反射型XSS漏洞

    Author: Charlie 个人微博:http://YinYongYou.com 转载请注明出处. 工作过程纯粹手贱,测试了一下.然后发现了这么一个东西.有心利用能造成大范围影响.如可以自由修改用 ...

  3. SQl函数的写法

    USE [ChangHong_612]GO/****** Object: UserDefinedFunction [dbo].[FN_GetProdQty] Script Date: 10/08/20 ...

  4. 十,选择cfee编辑器并学会调试程序。以及结束语。

    为什么推荐用cfree呢?因为我认为这个编辑器界面友好,用起来方便. 你也许会问,调试程序是什么? 那么下面思考几个问题:对于前面讲的分支结构和循环结构有点不懂怎么办?如果写的程序语法没有错误但是运算 ...

  5. C字符串压缩算法

    #include <iostream> #include <stdlib.h> //#include <algorithm> using namespace std ...

  6. UML图示

    来源: http://www.uml.org.cn/oobject/200901041.asp 近些天学习设计.由于没有具体项目,原有项目也没有什么设计的概念,只是看相关的书籍,所以着实有些抓狂.然最 ...

  7. 安装Loopback网卡/回环网卡

    $CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf('\' ...

  8. python flask 部署

    flask在开发的时候,经常启动本身进行调试(本身可以设置监听的端口,例如 在app.run(port=8088),当然默认不设置端口为5000). 但生产环境经常使用uswgi充当flask的宿主, ...

  9. phpStudy 2014的Apache虚拟主机配置

    安装phpStudy直接百度下载,傻瓜式安装很简单,一直点击下一步即可,中途根据个人爱好设置WWW目录,我的设置在D盘根目录里. 打开虚拟主机配置,打开D:\phpStudy\Apache\conf下 ...

  10. Windows 7旗舰版搭建andriod 4.0开发环境记录

    搭建Android环境步骤(仅供参考): 官方搭建步骤: http://developer.android.com/index.html 搭建环境之前需要下载下面几个文件包: 一.安装Java运行环境 ...