计算机网络协议,IPV4数据报分析
一、IP数据报结构分析
1.整体结构
一个IP数据报由首部和数据两部分组成。
首部的前一部分固定长20字节,这是所有IP数据报必须具有的;在首部的固定部分后面是一些可选字段,其长度是可变的。
IP数据报的整体格式如下:
其中首部又可拆分为以下格式:
2.逐项分析
==========================================================================
版本 ===> 4位;代表IP的版本,分为IPV4和IPV6
==========================================================================
首部长度 ===> 4位;单位为 4byte,即 32bit
若首部长度为 0101=5,则代表首部的固定长度为4 x 5 = 20(字节),即160(bit)
==========================================================================
区分服务 ===> 8位;旧版叫服务类型,一般不使用,只有在使用区分服务时才被使用
==========================================================================
总长度 ===> 16位;单位为 1byte,即 8bit
因此最大长度为 2^16 - 1 = 65535(byte)
==========================================================================
标识 ===> 16位;IP计数器。
每产生一个数据报就加1。但并不是序号。因为IP是无连接服务,只是在数据报超过MTU时必须分片。这样相同序号的分片就会重装成原来的数据
==========================================================================
标志 ===> 3位;
数据长度占3位,但目前仅2位有意义
MF = 1 代表后面还有分片
MF = 0 代表后面没有分片
DF = 1 代表不能分片
DF = 0 代表允许分片
==========================================================================
片偏移 ===> 13位;单位为 8 byte 即 64 bit
用来指出该分片在原数据报中的相对位置
==========================================================================
生存时间 ===> 8位;简称TTL。
最初TTL以秒为单位,即每经过一个路由器用了多少秒,TTL就减几,若不足1秒就减1;
后来TTL以跳数为单位。数据报每经过一个路由器TTL值就减1
==========================================================================
协议 ===> 8位;
用来指出该IP数据报携带何种协议数据报。目的IP主机通过该字段确定将该数据提交给哪个协议层处理
常见协议及其字段值如下:
数值 |
值描述 |
0 | 保留字段,用于IPv6(跳跃点到跳跃点选项) |
1 | Internet控制消息 (ICMP) |
2 | Internet组管理 (IGMP) |
3 | 网关到网关 (GGP) |
4 | 1P中的IP(封装) |
5 | 流 |
6 | 传输控制 (TCP) |
7 | CBT |
8 | 外部网关协议 (EGP) |
9 | 任何私有内部网关(Cisco在它的IGRP实现中使用) (IGP) |
10 | BBNRCC监视 |
11 | 网络语音协议 |
12 | PUP |
13 | ARGUS |
14 | EMCON |
15 | 网络诊断工具 |
16 | 混乱(Chaos) |
17 | 用户数据报文 (UDP) |
18 | 复用 |
19 | DCN测量子系统 |
20 | 主机监视 |
21 | 包无线测量 |
22 | XEROXNSIDP |
23 | Trunk-1 |
24 | Trunk-2 |
25 | leaf-1 |
26 | 1eaf-2 |
27 | 可靠的数据协议 |
28 | Internet可靠交易 |
29 | 1SO传输协议第四类 (TP4) |
30 | 大块数据传输协议 |
31 | MFE网络服务协议 |
32 | MERIT节点之间协议 |
33 | 序列交换协议 |
34 | 第三方连接协议 |
35 | 域之间策略路由协议 |
36 | XTP |
37 | 数据报文传递协议 |
38 | IDPR控制消息传输协议 |
39 | TP+ +传输协议 |
40 | IL传输协议 |
41 | 1Pv6 |
42 | 资源命令路由协议 |
43 | 1Pv6的路由报头 |
44 | 1Pv6的片报头 |
45 | 域之间路由协议 |
46 | 保留协议 |
47 | 通用路由封装 |
48 | 可移动主机路由协议 |
49 | BNA |
50 | 1Pv6封装安全有效负载 |
51 | 1Pv6验证报头 |
52 | 集成的网络层安全TUBA |
53 | 带加密的IP |
54 | NBMA地址解析协议 |
55 | IP可移动性 |
56 | 使用Kryptonet钥匙管理的传输层安全协议 |
57 | SKIP |
58 | 1Pv6的ICMP |
59 | 1Pv6的无下一个报头 |
60 | IPv6的信宿选项 |
61 | 任何主机内部协议 |
62 | CFTP |
63 | 任何本地网络 |
64 | SATNET和BackroomEXPAK |
65 | Kryptolan |
66 | MIT远程虚拟磁盘协议 |
67 | Internet Pluribus包核心 |
68 | 任何分布式文件系统 |
69 | SATNET监视 |
70 | VISA协议 |
71 | Internet包核心工具 |
72 | 计算机协议Network Executive |
73 | 计算机协议Heart Beat |
74 | Wang Span网络 |
75 | 包视频协议 |
76 | Backroom SATNET监视 |
77 | SUN ND PROTOCOL—临时 |
78 | WIDEBAND监视 |
79 | WIDEBAND EXPAK |
80 | ISO Internet协议 |
81 | VMTP |
82 | SECURE—VMTP(安全的VMTP) |
83 | VINES |
84 | TTP |
85 | NSFNET—IGP |
86 | 不同网关协议 |
87 | TCF |
88 | EIGRP |
89 | OSPF IGP |
90 | Sprite RPC协议 |
9] | Locus地址解析协议 |
92 | 多播传输协议 |
93 | AX.25帧 |
94 | IP内部的IP封装协议 |
95 | 可移动网络互连控制协议 |
96 | 旗语通讯安全协议 |
97 | IP中的以太封装 |
98 | 封装报头 |
99 | 任何私有加密方案 |
100 | GMTP |
101 | Ipsilon流量管理协议 |
102 | PNNI over IP |
103 | 协议独立多播 |
104 | ARIS |
105 | SCPS |
106 | QNX |
107 | 活动网络 |
108 | IP有效负载压缩协议 |
109 | Sitara网络协议 |
110 | Compaq对等协议 |
111 | IP中的IPX |
112 | 虚拟路由器冗余协议 |
113 | PGM可靠传输协议 |
114 | 任何0跳跃协议 |
115 | 第二层隧道协议 |
116 | D-II数据交换(DDX) |
117 | 交互式代理传输协议 |
118 | 日程计划传输协议 |
119 | SpectraLink无线协议 |
120 | UTI |
121 | 简单消息协议 |
122 | SM |
123 | 性能透明性协议 |
124 | ISIS over IPv4 |
125 | FIRE |
126 | Combat无线传输协议 |
127 | Combat无线用户数据报文 |
128 | SSCOPMCE |
129 | IPLT |
130 | 安全包防护 |
131 | IP中的私有IP封装 |
132 | 流控制传输协议 |
133~254 | 未分配 |
255 | 保留 |
==========================================================================
首部校验和 ===> 16位;
这个字段只检验数据报的首部,但不检验数据部分。数据报每经过一个路由器,路由器都要重新计算一下首部校验和
==========================================================================
源地址 ===> 数据报发送方
==========================================================================
目的地址 ===> 数据报接收方
==========================================================================
首部的可变部分 ===> 该字段长度可变(1字节到40字节)
可以用来排错、测量、以及安全等措施。中间不需要分隔符,最后用0填充字段,使其成为4字节的整数倍
==========================================================================