IP报文格式及各字段意义

IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。在报头的固定部分的后面是可选部分——IP选项和填充域。

首部各字段的含义如下

1、版本

占4位,指IP协议的版本。

2、报头长度

占4位,该字段的单位是32位字(1个32位字长是4字节),因此当IP报头长度为1111时,报头长度就达到最大值60字节。当IP分组的首部长度不是4字节的整数倍是,就需要对填充域加以填充。最常用的报头长度为20位(报头长度值为0101),这时不使用任何选项。

3、区分服务(服务类型)

占8位,在一般情况下都不使用这个字段。

4、总长度

指报头和数据之和的长度,单位是字节。总长度字段为16位,故IP数据报的最大长度为65535。

每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当IP数据报封装成链路层的帧时,此数据报的总长度不能超过对应MTU的值。若数据报长度超过对于MTU的值,就将数据报进行分片处理,此时数据报首部中的“总长度“字段是指分片后的每一个分片的报头长度和数据长度之和。

5、标识

占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并赋给标识字段。当数据报进行分片处理后,每个分片的标识值都与原数据报的标识值相同,则在接收端具有相同标识值的分片就能最终正确的重装成为原来的数据报。

6、标志

占3位,但目前只有两位有意义。

  • 最低位记为MF。MF=1即表示后面”还有分片“的数据包。MF=0表示这已是若干数据包片中的最后一个。
  • 中间位记为DF,意思是”不能分片“。只有当DF=0时才允许分片。

7、片偏移

占13位。表示每个数据报的分片在原数据报中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8字节的整数倍。

8、生存时间

占8位。表示数据报在网络中的寿命。最初以秒为TTL值为单位,现在以跳数为单位,则目前的最大数据为255.

9、协议

占8位,指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给那个处理过程。

TCP对应协议字段值6;UDP对应协议字段值17

10、首部校验和

占16位,该字段只校验数据报的报头,但不包括数据部分。

11、源地址

占32位

12、目的地址

占32位

转自:http://blog.csdn.net/xieyutian1990/article/details/24179181

时间: 2024-10-11 21:57:31

IP报文格式及各字段意义的相关文章

TCP/IP报文格式

一.传输层协议   TCP特点: 面向连接 可靠 适用于可靠性要求高的应用 开销大 UDP特点: 无连接 不可靠 适用于更关注传输效率的应用 可靠性由应用层负责   TCP主要功能:可靠.准确的传输并控制源主机与目的主机之间的信息流: TCP主要职责:提供端到端的控制,通过滑动窗口机制提供流控制,通过序号和确认号机制来保证可靠性: 功能如下: 连接管理:定义了允许两个用户像直接连接一样开始交谈的规则(类似于电话通信之前须拨通对方的号码).通常把连接的定义和建立的过程称为握手. 流量控制:以网络能

IP报文格式详解

下图为常见的IP报文格式表: 上面是IP的报文格式,接下来我们先说明各个字段的意义.然后,用Etheral软件转包分析IP的报文格式. 1.版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信.一般此处的值为4,表示ipv4. 2.头长度:该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节.即二进制数0000-1111(十进制数0-15),其中一个最小长度为0字节,最大长度为60字节.一般来说此处的值为0101,表示头长度为20字节. 3

以太网帧、IP报文格式

这几天完成一个对比以太网帧的程序(c语言),老师给了以太网帧头部和IP报文头部的结构体,跟实际抓取到的数据包的格式是相同的. 以太网帧头部的数据结构: typedef struct { unsigned char dest_mac[6]; unsigned char src_mac[6]; unsigned short eth_type; } ethernet_header; eth_type字段用来指明上层协议类型,两字节.eth_type字段常见值及对应协议 0x0800 网际协议(IP)

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

TCP .UDP .IP. ICMP协议报文格式分析 Tcp报文格式: Wireshark抓包如图: 源端口/目的端口(16bit): 在TCP报文中包涵了源端口/目的端口,源端口标识了发送进程,目的端口标识了接收方进程.由上图可以看出在此报文中我们的源端口号是54160, 目的端口是cichlid(1377). 序列号(32bit): Sequence Number这个是发送序列号,用来标识从源端向目的端发送的数据字节流,它表示在这个报文端中的第一个数据字节的顺序号,序列号是32位的无符号类型

转_结合Wireshark捕获分组深入理解TCP/IP协议栈之TCP协议(TCP报文格式+三次握手实例)

转自: http://blog.chinaunix.net/uid-9112803-id-3212041.html 摘要: 本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述 TCP是面向连接的可靠传输协议,两个进程互发数据之前需要建立连接,这里的连接只不过是端系统中分配的一些缓存和状态变量,中间的分组交换机不维护任何连接状态信息.连接建立整个过程如下(即三次握手协议): 首先,客户机发送一个特

iptables ip报文 tcp报文 tcp三次握手四次端口 有限状态机 状态转移

linux 网络防火墙 netfilter :是内核的一个frame :框架 iptables :数据报文过滤:nat mangle等规则生成工具 网络知识: IP报文首部   tcp报文首部 hdr len   报头首部长度  给出的字节需要乘以横向 32/8 = 4字节 Type of Service(服务类型)    服务类型 Total Length(总长度)          报文总长度    包括表头与内容 (Data) 部分.最大可达 65535 bytes.   注: 报文总长度

以太网帧、TCP与UDP段以及IP数据报格式总结

传输层及其以下的机制由内核提供,是操作系统的一部分,应?层由?户进程提供应?层数据通过协议栈发到?络上时,每层协议都要加上?个数据?部(header),称为封装.不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在?络层叫做数据报(datagram),在链路层叫做帧(frame). 1.以太网帧格式 ?源地址和?的地址是指?卡的硬件地址(也叫MAC地址),长度是48位,是在?卡出?时固化的.Linux下可以?ifconfig命令看?下,"HWaddr 00:15:F2:14:9

DHCP报文格式

DHCP报文格式 报文格式 DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号. DHCP的报文格式如下图所示. 图1 DHCP报文格式 DHCP报文中各字段的含义: 字段 长度 含义 OP 1字节 表示报文的类型: 1:客户端请求报文 2:服务器响应报文 htype 1字节 表示硬件地址的类型.对于以太网,该类型的值为“1”. hlen 1字节 表示硬件地址的长度,单位是字节.对于以太网,该值为6. Hops 1字节 跳数.客户端设置为0,

HTTP报文格式

 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文 一个HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,下图给出了请求报文的一般格式. (1)请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.例如,GET /index.html HTTP/1.1. HTTP协议的请求方法有GET.POST.HEA