IP数据报报文格式

一 概述

IP数据报由两部分组成:首部+数据部分。首部的前一部分是固定长度,一共20字节大小,是所有IP数据报文必须具有的;固定部分后面是一些可选字段,其长度是可变的。

二 首部固定部分各字段意义

(1)版本:占4位,指IP协议的版本(IPv4或者IPv6)。通信双方的IP协议版本必须一直。

(2)首部长度:占4位,可表示的最大十进制数值为15。其中,首部长度字段所表示的数的单位为32位字(1个32位字长是4字节)。以为首部固定部分为20字节,所有首部长度字段最小值为5(即二进制表示的首部长度0101),最大值为15(二进制位1111),表示首部最大长度可达15个32位字长,即60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字节加以填充。为了尽量避免开销,最常用的首部长度是20字节。

(3)区分服务:占8位。在旧标准中叫做服务类型,但实际一直未使用。

(4)总长度:占16位,指首部和数据部分长度之和,单位为字节,最大长度为:2^16-1=65535字节,实际情况极少遇到,因为在数据链路层种数据帧又有个字段叫做MTU值,其规定了最大传输数据长度。

(5)标识:占16位,每产生一个数据报,计数器就加1,并将此值给标识字段。因为当数据报的长度超过网络的MTU值而必须分片时,这个标识字段的值就被复制道所有的数据报片的标识字段中,相同的标识字段的值使分片后的各数据报能正确的重装为原来的数据报。

(6)标志:占3位,但目前只有两位有意义.标志位最低位为MF,当MF=1表示后面还有分片数据报,MF=0表示这是若干分片数据报的最后一个报文。标志字段中间的一位位DF,意思是不能分片,当DF=0时才允许分片。

(7)片偏移:占13位。指较长的分组在分片后,某分片数据报在原分组种的相对位置。也就是说相对于用户数据字段的起点,该片从何处开始。以8字节位偏移单位,所以每个分片的长度一定是8字节的整数倍。

(8)生存时间:也叫做TTL,占8位,表明这是数据报在网络种的寿命。

(9)协议:占8位,协议字段指出此数据报携带的数据时使用何种协议。

(10)首部校验和:占16位,这个字段只校验数据报的首部,不包括数据部分。

(11)源地址:占32位。

(12)目的地址:占32位。

三 IP部分

首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,此字段的长度可变,从1字节道20字节不等。

四 实战分析

抓取本地任意数据报

整个IP头部如框选所示:45 00 01 80 C2 B6 40 00 37 06 31 1B 1B DE 03 E1 C0 A8 6E 3F,共20字节。

版本:4,表示使用的是IPv4版本

头部长度:5,表示头部长度共5个32位字长,即20字节

区分服务字段:全0,表示未使用

总长度:384,表示数据报总长度为384字节

标识:0xc2b6(十六进制)

分段标识:低位MF为0,中位DF为1,表示该数据报不分片,是最后一个数据报

分段偏移(片偏移):全0,表示该数据报的起点为0

存活时间:55

协议:6,表示使用的是TCP协议。

以下常见协议号:

ICMP------1 (Internet控制报文协议)

IGMP------2 (Internet组管理协议)

TCP ------6 (传输控制协议)

EGP ------8 (外部网关协议)

IGP ------9 (专用内部网关协议)

UDP ------17 (用户数据报协议)

IPv6 ------41 (互联网协议第6版)

GRE ------47 (通用路由封装协议)

ESP ------50 (封装安全载荷协议)

AH ------51 (身份验证标头)

ICMPv6 ------51 (IPv6网络的报文控制协议)

EIGRP ------88 (增强内部网关路由协议,思科独有)

OSPF ------89 (开放式最短路径优先协议)

VRRP ------112 (虚拟路由器冗余协议)

L2TP ------115 (第二层隧道协议)

检验和(首部校验和):0x311b

源地址和目的地址:

相关推荐
为你写首诗ge23 分钟前
【Unity网络编程知识】FTP学习
网络·unity
神经毒素2 小时前
WEB安全--文件上传漏洞--一句话木马的工作方式
网络·安全·web安全·文件上传漏洞
慵懒学者3 小时前
15 网络编程:三要素(IP地址、端口、协议)、UDP通信实现和TCP通信实现 (黑马Java视频笔记)
java·网络·笔记·tcp/ip·udp
itachi-uchiha4 小时前
关于UDP端口扫描概述
网络·网络协议·udp
liulilittle4 小时前
Linux 高级路由策略控制配置:两个不同路由子网间通信
linux·网络·智能路由器
RadNIkMan5 小时前
Python学习(二)操作列表
网络·python·学习
HX科技5 小时前
Debian系统_主板四个网口1个配置为WAN,3个配置为LAN
linux·运维·网络·debian
Json20113155 小时前
Swoole 的 Hyperf 框架和 Go 的 Gin 框架高并发原理以及技术实现对比分析
网络·php·gin·swoole
kfepiza6 小时前
Debian/Ubuntu的networking的`/etc/network/interfaces`配置文件,如何配置route路由
linux·网络·tcp/ip·ubuntu·debian·ip·tcp
go_to_hacker7 小时前
AI进行全自动渗透
网络·web安全·网络安全·渗透测试·代码审计