第11讲实验报告(IP协议分析)

1.IPv4 

(1)IPv4报文格式分析

第11讲实验报告(IP协议分析)_第1张图片

版本(号):规定IP协议版本(IPv4或IPv6)

首部长度:大多数IP数据包不含选项字段,因此首部长多为20字节

服务类型(TOS):定义上层协议对处理当前数据报所期望的服务质量(如分配优先级、延迟、吞吐量以及可靠性等)。前3位是优先位,后面4位是服务类型,最后1位没有定义

总长度:首部加上数据所占的字节数

标识、标志、片偏移:用于IP分片

生存时间(TTL):数据包每经一台路由器处理,TTL减1,当其为0时将被丢弃

协议:指示该IP数据报的数据部分应交给哪个特定的传输层协议,例如:值为6表示交给TCP,值为17表示交给UDP

首部校验和:帮助路由器检测收到的IP数据报中的比特错误

源和目的IP地址:通常源主机通过DNS查找来决定目的地址

(2)IPv4数据报分片  

一个链路层帧能承载的最大数据量叫做最大传送单元(MTU),它限制了IP数据报的的长度,以太网的 MTU 是 1500。如果 IP 层有数据包要传,而且数据包的长度超过了 MTU,那么 IP 层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于 MTU,最后目的主机将分片进行重组

IP 报文的首部包含了分片和重组所需的信息:

Identification:也即(1)中提到的标识字段,每个数据报的标识字段是唯一的,当某个大数据报被分片时,每个分片具有与之相同的标识字段,以标识它们是同一个大数据报分片得到的

3位的标志字段包括:

R:保留未用

DF(Don't Fragment):“不分片”位,如果将这一比特置 1 ,IP 层将不对数据报进行分片

MF(More Fragment): “更多的片”,除了最后一片置0,其他每个组成数据报的片都要把该比特置1

Fragment Offset:也即(1)中提到的片偏移字段,指示该片的首字节在原始数据包中的字节位置,实际位置 = 该值 * 8

注意:当数据报被分片后,每个片的总长度值要改为该片的长度值

(3)抓包实例分析 

第11讲实验报告(IP协议分析)_第2张图片

可以看到各个字段的值:

版本号(Version):4

首部长度(Header Length):20 bytes

数据报长度(Total Length):568 bytes

标识(Identification):0x0959(2393)

R位(Reserved bit):Not set

DF位(Don't Fragment):1,表示该数据报不会再分片

MF位(More Fragment):0,表示该数据报是某个大数据报的最后一个分片

片偏移(Fragment offset): 370

生存时间(Time to live):242

协议(Protocol):ICMP

首部校验和(Header Checksum):0x224c

源IP地址:128.59.23.100

目的IP地址: 192.168.1.102

在IP数据报后面还给出了具体分片情况,和数据报给出的信息相吻合(如第三个分片长548字节,数据报长度长568字节,刚好是加上头部20字节的长度) 

综上可知:我们抓到的这个包是某个原始数据包的最后一个分片,该原始数据报被分成3个片 

2.IPv6

IPv6报头格式

第11讲实验报告(IP协议分析)_第3张图片

版本(号)

流量类别:相当于 IPv4 协议中的 TOS 字段

流标签:没有流标签时,路由器会根据五元组选择路由,而五元组中涉及到传输层的端口号,所以路由器必须要看到传输层的报头,加了流标签字段,路由器便可以根据源IP+流标签来确定一条流,只需看到网络层报头即可

有效载荷长度: 报文数据部分的长度,注意不包含报头(IPv6协议取消了选项字段,因此报头长固定为20bytes)

下一报头:相当于 IPv4 协议中的 Protocol 字段

跳数限制:相当于 IPv4 协议中的 TTL 字段

源和目的IP地址:注意到 IPv6 中这两个字段是128位

你可能感兴趣的:(计算机网络,服务器,运维)