每个 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. UVaLive 6859 Points (几何,凸包)

    题意:给定 n 个点,让你用最长的周长把它们严格包围起来,边长只能用小格子边长或者是小格子对角线. 析:先把每个点的上下左右都放到一个集合中,然后求出一个凸包,然后先边长转成题目的方式,也好转两个点的 ...

  2. Qt + CURL + mimetic 发送邮件(带附件)

    使用了大名鼎鼎的CURL 开源库,以及mimetic开源库. CURL支持N多协议.功能超强,但是不能直接发邮件附件,需要自己拼mime.太麻烦,于是乎~~ mimetic主要用于构造邮件mimeti ...

  3. ios 调试

    http://www.cnblogs.com/weilaikeji/p/3306597.html http://www.cnblogs.com/Twisted-Fate/p/4760156.html ...

  4. Wifi热点工具-青青草原WiFi

    有时只有有线网络,但手机需要上网,这时需要将笔记本作为无线热点. 青青草原WiFi,这个工具用起来挺方便,http://www.22zy.net/.

  5. The plot Function in matlab

    from http://pundit.pratt.duke.edu/wiki/MATLAB:Plotting The plot Function The plot function is used t ...

  6. VB.NET中使用Linq TO SQL添加数据后获得自增长列ID

    VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...

  7. ADO.NET 快速入门(八):处理 Errors

    除了 Try/Catch 和 Exceptions 以外,新的 ADO.NET 数据框架也允许在 DataSet 的每行数据添加错误信息.如果 Updates 或者其他操作失败,SqlDataAdap ...

  8. PostgreSQL的 initdb 源代码分析之一

    开始第一段: int main(int argc, char *argv[]) { /* * options with no short version return a low integer, t ...

  9. 理解 __declspec(dllexport)和__declspec(dllimport)

    1.解决的问题: 考虑下面的需求,使用一个方法,一个是提供者,一个是使用者,二者之间的接口是头文件.头文件中声明了方法,在提供者那里方法应该被声明为__declspec(dllexport),在使用者 ...

  10. 解决PowerDesigner 反向工程没有注释(备注)

    本文转载自:http://www.cnblogs.com/zhangxb/archive/2012/04/20/2458898.html 1. 列注释 原来代码: {OWNER, TABLE, S, ...