目录
一.概述
1.1IP协议
1.1.1IP协议简介
IP 协议是 TCP/IP 协议簇中的核心协议,也是 TCP/IP 协议的载体,IP 协议规定了数据传输时的基本单元和格式。如下图所示,之所以先介绍IP协议,因为IP协议中包含ICMP协议。即ICMP协议位于IP层的数据段。所有的 TCP、UDP 及 ICMP 数据都以 IP 数据报格式传输。
1.1.2IP协议首部报文格式
IP首部一共20Byte,1个Byte=8bit,故一行4Byte(32bit),共有5行。
版本:
4
位
IP
版本号(
Version
),这个值设置为二进制的
0100
时表示
IPv4
,设置为
0110
时表示
IPv6
, 目前使用比较多的 IP
协议版本号是
4
。
首部长度:
4
位首部长度(
IHL
,
Internet Header Length
),表示
IP
首部一共有多少个
32
位(
4
个字节)。 在没有可选字段时,IP
首部长度为
20
个字节,因此首部长度的值为
5
。
服务类型:
8
位服务类型(
TOS
,
Type of service
),该字段被划分成两个子字段:
3
位优先级字段(现在已经基本忽略掉了)和 4
位
TOS
字段,最后一位固定为
0
。服务类型为
0
时表示一般服务。
总长度:
16
位
IP
数据报总长度(
Total Length
),包括
IP
首部和
IP
数据部分,以字节为单位。我们利用 IP
首部长度和
IP
数据报总长度,就可以知道
IP
数据报中数据内容的起始位置和长度。由于该字段长16bit,所以
IP
数据报最长可达
65535
字节。尽管理论上可以传输长达
65535
字节的
IP
数据报,但实际上还要考虑网络的最大承载能力等因素。
标识字段:
16
位标识(
Identification
)字段,用来标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1
。
标志字段:
3
位标志(
Flags
)字段,第
1
位为保留位;第
2
位表示禁止分片(
1
表示不分片
0
:允许分片);第 3
位标识更多分片(除了数据报的最后一个分片外,其它分片都为
1
)。
片偏移:
13
位片偏移(
Fragment Offset
),在接收方进行数据报重组时用来标识分片的顺序。
生存时间:
8
位生存时间字段,
TTL
(
Time To Live
)域防止丢失的数据包在无休止的传播,一般被设置为 64