实验8 IP协议实验分析

目录

IP分片 

实验内容


注:原实验是在虚拟机中使用ping命令向主机发送IP数据包

IP分片 

转自博客:https://blog.csdn.net/u014594922/article/details/53514503

IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组

不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU(最大传输单元)。常见以太网的MTU为1500,若IP协议在传输数据包时,IP报文长度大于转发接口的MTU,则将数据报文分为若干分片进行传输,分片报文到达接收方时,由接收方完成重组

标志3bit,包括R位、DF位、MF位(各占1bit)

R位:保留位;

DF位:是否允许分片;为0表示分片,而为1表示不分片;

MF位:该分片后是否还有其它分片;为1表示其后还有分片,为0表示这是最后一片;

实验内容

wireshak开始捕获分组后,在cmd中输入ping www.bilibili.com -l 3000并执行

打开wireshak,在显示过滤器中输入icmp。得到8个分组(包括4个请求request和4个回复reply)

以第一个分组(106分组)为例,该IP分组有3个分片,分片为104分组,105分组,106分组(本身),但此时的过滤条件使其余分片被隐藏

将过滤条件更改为ip.addr==112.13.92.199,即可显示其它分片(一下以分组106及其分片为例)

选择分组104,其IP首部中标志的2个bit被置为0,即允许分片(1为不允许分片);标志中的第3个bit被置为1,即其后还有其它分组。而片偏移为0,即该分片为第一个分片

选择分组105,其IP首部中标志中的第3个bit同样被置为1,即其后还有其它分组;且片偏移为1480

选择分组106,其IP首部中标志的第3个bit被置为0,即其后没有分组,即该分片为最后一个分片;且片偏移为2960(1480(分组104)+1480(分组105))

3个分片共3008bytes=3000bytes(ping命名中的-l选项设置的size)+8bytes(ICMP首部)

片偏移的十六进制表示

以分组105(第2个分片)为例,其标识MF=1且偏移量为1480,在十六进制中表示为0x20b9

0x20b9转为为二进制为:

0010 0000 1011 1001,前3位即标识标识的3个bit(本例中,MF=1即第3个bit置为1),即001;后13位标识片偏移(本例中,片偏移1480=b9(185)*8(分片以8bytes为一个单位))

IP碎片攻击 

IP碎片攻击_百度百科 (baidu.com)

IP首部中使用2bytes(16bit)表示整个IP数据包的长度,因此IP数据包最长为65535(2^16)bit。尽管在一般情况下,接收方会丢弃那些总长度超过65535的数据包,但是如果攻击者构造许多很小的分片且这些分片在重组后的总长度超过65535,接收方在处理这些精细的分片时会出现问题,可能导致崩溃或拒绝服务

猜你喜欢

转载自blog.csdn.net/qq_53401568/article/details/128309258