ICMP分片

合集下载

ICMP详解

ICMP详解

ICMP简介ICMP 网际控制报文协议---internet control message protocolicmp一般被认为是ip的一个组成部分。

icmp向源节点报告关于向目的地址传输IP数据包的错误和信息。

icmp报文通常被ip层或更高层的协议(TCP/UDP)使用。

===================================报文格式:类型字段有15个不同的值,以描述特定类型的icmp报文。

某些icmp报文还用代码字段的值来进一步描述不同的条件。

校验和覆盖整个icmp报文。

icmp的校验和是必须的。

差错报文有时候需要经过特殊处理。

在对ICMP差错报文进行响应时,永远不会生成另一份差错报文。

当发送一份I C M P差错报文时,报文始终包含I P的首部和产生I C M P差错报文的I P数据报的前8个字节。

这样,接收I C M P差错报文的模块就会把它与某个特定的协议(根据I P数据报首部中的协议字段来判断)和用户进程(根据包含在I P数据报前8个字节中的T C P或U D P报文首部中的T C P或U D P端口号来判断)联系起来。

下面各种情况都不会导致产生I C M P差错报文:1) ICMP差错报文(但是,I C M P查询报文可能会产生I C M P差错报文)。

2) 目的地址是广播地址或多播地址的I P数据报。

3) 作为链路层广播的数据报。

4) 不是I P分片的第一片5) 源地址不是单个主机的数据报。

这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。

这些规则是为了防止过去允许I C M P差错报文对广播分组响应所带来的广播风暴。

============================I C M P地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。

ICMP 地址掩码请求报文。

I C M P报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。

这样,发送端就可以把应答与请求进行匹配。

实验四-ICMP数据报和IP数据报分片分析实验报告

实验四-ICMP数据报和IP数据报分片分析实验报告

实验四ICMP 协议和IP 数据报分片分析【实验目的】1. 理解 ICMP 协议报文类型和格式;2. 理解 ping 命令的工作原理;3. 理解 traceroute 的工作原理;4. 理解 IP 协议报文类型和格式。

【实验环境】与因特网连接的电脑,操作系统为Windows,安装有Wireshark、IE 等软件。

【实验内容】1. 使用 wireshark 抓包软件分析ICMP 协议报文的类型;2. 分析 ping 命令的工作原理;3. 分析 tracert 命令的工作原理;4. 使用 wireshark 抓包软件分析IP 协议报文以及报文分片。

【实验步骤】1. 分析ICMP 协议步骤1:在 PC1 运行 Wireshark,开始截获报文,为了只截获和实验内容有关的报文,将Wireshark 的 Captrue Filter 设置为“No Broadcast and no Multicast”;步骤2:在 PC1 以 baidu 为目标主机,在命令行窗口执行 Ping 命令,要求ping 通8 次;【答】:Ping 命令为:____ ping –n 8 baidu ____将命令行窗口进行截图:【答】:步骤3:停止截获报文,分析截获的结果,答复以下问题:〔1〕将抓包结果进行截图〔要求只显示 ping 的数据包〕:〔2〕截获的 ICMP 报文有几种类型?分别是:【答】:两种:8(Echo〔ping〕 request) 、 0(Echo (ping) reply )〔3〕分析截获的 ICMP 报文,按下表要求,将各字段信息填入表中,要求填写前4 个报文的信息。

〔4〕查看ping 请求信息,ICMP 的type是 ___Echo〔ping〕 request___。

和code是 __8__。

并截图。

〔5〕查看相应得ICMP 响应信息,ICMP 的type 是___Echo〔ping〕 reply___和code 是 __0__。

ICMP协议分析

ICMP协议分析

IP 协议分析一、实验目的学会使用协议分析软件分析IP 数据包 了解IP 协议的首部 学会使用Ping 命令 验证IP 分片过程 掌握ICMP 协议的首部二、实验原理1.IP 协议1)IP 协议是因特网上最重要的网络层协议。

2)IP 协议是无连接、不可靠的协议。

3)IP 协议分ipv4和ipv6两个版本,目前大多设备都支持ipv4,但ipv4占主流。

4)ipv4包含20个字节的固定首部和可变长的可选首部。

2.IPv4首部格式 1)2)可首比3)4)5)6)7)8)3、IP分片三、实验步骤1.打开虚拟机,打开wireshark2.虚拟机与主机确定能互ping3.Ping通后虚拟机向主机发包3200字节的包分析第一帧版本号:ipv4首部长度:20字节总共长度:1500字节MF为1:表示后面还有分片片偏移:0(第一个分片从0开始)保活时间:128(未经过路由器)协议类型:ICMP校验和:0xb041(十六进制b041) 源地址:172.16.6.3目标地址:172.16.6.1数据:1500-20=1480字节第二帧:版本号:ipv4首部长度:20字节总共长度:1500字节MF为1:表示后面还有分片片偏移:1480(第二个分片接第一个分片尾部)保活时间:128(未经过路由器)协议类型:ICMP校验和:0xaf88(十六进制af88)源地址:172.16.6.3目标地址:172.16.6.1数据:1500-20=1480字节第三帧版本号:ipv4首部长度:20字节总共长度:268字节MF为0:表示后面没有分片了片偏移:2960(第三个分片接第二个分片尾部)保活时间:128(未经过路由器)协议类型:ICMP校验和:0xd39f(十六进制d39f)源地址:172.16.6.3目标地址:172.16.6.1Icmp首部8个字节数据:268-20-8=240字节因为是最后一帧,附带ip包分片信息分为三个包,第一个和第二个都是1480,第三个是248字节(包含8个字节的icmp首部);分片结束。

icmp协议的作用

icmp协议的作用

icmp协议的作用ICMP(Internet Control Message Protocol)是一个为了在IP (Internet Protocol)网络上传输控制消息而设计的协议。

它是TCP/IP协议栈中的一个重要组成部分,用来支持网络中的各种控制、错误、查询和回应消息。

ICMP的作用主要有以下几个方面:1. 错误报告与诊断:ICMP可以通过发送错误报文来指示网络设备关于数据包传输中的错误。

例如,当某个路由器发现一个无法到达目标主机的数据包时,它会返回一个ICMP的错误报文给源主机。

这样,源主机就可以根据错误报文来判断是否重新发送数据包,或者采取其他操作。

此外,ICMP还可以通过发送Echo请求消息来测试目标主机是否可达,以及获取目标主机的延迟和丢包率等信息。

2. 重定向:当一个路由器接收到一个数据包,并发现数据包传输的下一跳应该通过另一个路由器时,它可以通过发送一个ICMP重定向消息来通知源主机更改路由。

这样可以降低网络的负载和提高传输效率。

3. 路由选择协议:ICMP可以与路由选择协议(如RIP、OSPF 和BGP)配合使用,以传递路由选择信息。

例如,当某个路由器发现一个新的路径,它可以通过发送一个ICMP重组RIP 和OSPF报文来通知其他路由器更新其路由表。

4. 是否可达检测:ICMP可以通过发送Echo请求消息来测试一个主机或路由器是否可达。

当一个主机或路由器接收到Echo请求消息时,会自动返回一个Echo回应消息,以表明其正常工作。

利用这个机制,管理员可以检测网络中设备的可用性。

5. 其他特定功能:ICMP还有其他一些用途,如MTU发现、时间戳和流量控制等。

MTU发现可以通过发送不同大小的数据包来确定最佳的最大传输单元,以避免IP分片。

时间戳可以用来测量往返延迟。

流量控制可以通过发送Congestion Control报文来告知源主机减少发送数据的速率,以避免网络拥塞。

总的来说,ICMP是TCP/IP协议栈中一个关键的协议,它通过发送控制消息来支持网络的错误报告、诊断和配置。

ICMP协议

ICMP协议

ICMP协议协议名称:Internet控制消息协议(ICMP)1. 引言Internet控制消息协议(ICMP)是一种网络协议,用于在IP网络中传递控制消息和错误报告。

ICMP协议提供了一种机制,使得网络设备可以相互通信并共享网络状态信息。

本协议旨在规范ICMP协议的标准格式和使用规则,以确保网络通信的可靠性和稳定性。

2. 协议版本ICMP协议的当前版本为IPv4和IPv6。

3. 协议功能3.1. 错误报告ICMP协议可用于向源主机或者路由器发送错误报告,以通知其发生的错误情况。

常见的错误报告类型包括目标不可达、超时和重定向。

3.2. 网络探测ICMP协议可用于执行网络探测操作,如Ping(Echo请求和回应消息)和Traceroute(时间超过消息)。

3.3. 路由器发现ICMP协议可用于路由器发现,以确定网络中可用的路由器。

3.4. 数据报文分片ICMP协议可用于数据报文分片重组的过程中,以通知发送主机数据报文分片的状态和结果。

4. 协议格式ICMP协议的消息格式如下:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 类型(Type) | 代码(Code) | 校验和(Checksum) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 数据(Data)(可选) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+4.1. 类型(Type)类型字段用于指示ICMP消息的类型。

常见的类型包括:- 0:回应应答(Echo Reply)- 3:目标不可达(Destination Unreachable)- 8:回应请求(Echo Request)- 11:超时(Time Exceeded)- 其他类型详见相关标准文档。

ICMP协议全方位解析

ICMP协议全方位解析

代码6. 目的网站不可知,路由器根本没有关于目的网络的信息。
代码7. 目的主机不可知,路由器根本不知道网络主机的存在。
代码8. 源主机是孤立的。
代码9. 与目的网络的通信从管理上是禁止的。
代码10. 与目的主机的通信从管理上是禁止的。
代码11. 对指明的服务类型,网络不可达。如果源站被请求一个可用的 服务类型,路由器可以为数据报找到另一条路由。

作用
1)IP协议没有差错报告或者差错纠正机制。 当遇到网络通不通、主机是否可达、路由是否可用等情况时,IP协议没
有内建的机制可以通知发出该数据报的主机的例子 2)IP协议还缺少主机和管理查询所需要的机制。 主机有时候需要判断某个路由器或者对方主机是否活跃。有时网络管理
员也需要来自其他主机或者路由器的信息。 综上: ICMP的设计就是为了弥补IP协议的两个缺陷的:即:1)IP洗衣没有差
代码3. 端口不可达,数据要交付的那个应用程序(进程)此时未运行。
代码4. 需要进行分片,但该数据报的DF(不分片)字段已经被设置。 (数据报的发送站已经指明该数据报不能分片,但是不进行分片又不可 能进行路由选择)
代码5. 源站路由选择不能完成。换言之,在这个源站路由选择选项中 定义的一个或多个路由器无法通过。
源点抑制
目的:IP协议是无连接协议。在产生数据报的源主机和转发数据报的路 由器以及处理数据报的目的主机之间没有任何通信联系。因而缺乏流量 控制和拥塞控制。
工作流程:
1)当路由器收到太多的数据报以致内存不够时,在丢弃所收数据报的 同时,向创建数据报的源主机发送源抑制报文,其报文格式如下图所示。 2)源主机收到源抑制报文后,需要降低发送数据报的速率。
而在多对一的通信中,许多个源站产生的数据报都必须由路由器或目的 主机来处理。在这种情况下,有的会以低速率发送,而有的则以高速率 发送,这就导致了源站抑制报文在发送后,路由器或主机并不知道哪一 个源站应对拥塞负责。它可能丢弃从不非常低速率的源站法来的数据报, 而没有丢弃真正产生拥塞的源站所发来的数据报。

?ICMP协议全解析

?ICMP协议全解析

ICMP协议全解析1、ICMP简介ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议。

ICMP的协议号为1。

ICMP报文就像是IP报文的小弟,总顶着IP报文的名头出来混。

因为ICMP报文是在IP报文内部的,如图:ICMP属于TCP/IP协议族,工作在网络层(第三层),用于在IP 主机、路由器之间传递控制消息。

控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

2、ICMP典型运用—pingICMP的一个典型应用是Ping。

Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。

用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。

Ping常用的配置参数说明如下:1. -a source-ip-address指定发送ICMP ECHO-REQUEST报文的源IP地址。

如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。

2. -c count指定发送ICMP ECHO-REQUEST报文次数。

缺省情况下发送5个ICMP ECHO-REQUEST报文。

3. -h ttl-value指定TTL的值。

缺省值是255。

4. -t timeout指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。

Ping命令的输出信息中包括目的地址、ICMP报文长度、序号、TTL值、以及往返时间。

序号是包含在Echo回复消息(Type=0)中的可变参数字段,TTL和往返时间包含在消息的IP头中。

3、ICMP典型运用—TracertICMP的另一个典型应用是Tracert。

Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。

ICMP协议和IP数据报分片分析实验报告

ICMP协议和IP数据报分片分析实验报告

计算机网络实验报告实验名称:ICMP 协议和IP 数据报分片分析姓名:张祎立学号:2011302330050 专业:信息管理与信息系统班级:信管二班指导教师:实验成绩:批阅教师签字:一、实验目的1. 理解 ICMP 协议报文类型和格式;2. 理解 ping 命令的工作原理;3. 理解 traceroute 的工作原理;4. 理解 IP 协议报文类型和格式。

二、实验内容与实验步骤1. 使用 wireshark 抓包软件分析ICMP 协议报文的类型;2. 分析 ping 命令的工作原理;3. 分析 tracert 命令的工作原理;4. 使用 wireshark 抓包软件分析IP 协议报文以及报文分片。

三、实验环境与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE 等软件。

四、实验过程与分析1. 分析 ICMP 协议步骤1:在 PC1 运行 Wireshark,开始截获报文,为了只截获和实验内容有关的报文,将Wireshark 的Captrue Filter 设置为“No Broadcast and no Multicast”;步骤2:在 PC1 以 为目标主机,在命令行窗口执行 Ping 命令,要求ping通8 次;Ping 命令为:ping –n 8将命令行窗口进行截图:步骤3:停止截获报文,分析截获的结果,回答下列问题:1)将抓包结果进行截图(要求只显示ping 的数据包):输入过滤规则ip.addr==119.75.217.562)截获的ICMP 报文有几种类型?两种。

分别是:0(回应应答)和8(回应请求)3) 分析截获的ICMP 报文,按下表要求,将各字段信息填入表中,要求填写前4 个报文的信息。

报文号源IP 目的IP 报文格式类型代码标识序列号 125 192.168.217.56 119.75.217.56 8 0 0x0200 3840|15 126 119.75.217.56 192.168.217.56 0 0 0x0200 3840|15 127 192.168.217.56 119.75.217.56 8 0 0x0200 4096|16 128 119.75.217.56 192.168.217.56 0 0 0x0200 4096|16 4)查看ping 请求信息,ICMP 的type 8是和code 是0并截图:5) 查看相应得ICMP 响应信息,ICMP 的type 0是和code 是0并截图:6) 若要只显示ICMP的echo响应数据包,显示过滤器的规则为icmp.type == 8并根据过滤规则进行抓包截图:7) 若要只显示ICMP的echo请求数据包,显示过滤器的规则为icmp.type == 0并根据过滤规则进行抓包截图:2. 分析traceroute 的工作原理步骤1:在 PC1 上运行 Wireshark 开始截获报文;步骤2:在PC1上执行Tracert命令,如:tracert ;将命令窗口进行截图;步骤3:在wireshark里设置显示过滤器为icmp;步骤4:停止截获报文,分析截获的报文,回答下列问题:1)截获了报文中哪几种 ICMP 报文?其类型码和代码各为多少?三种报文:①Time-to-live exceeded,类型11,代码0;②Request,类型8,代码0;③Reply,类型0,代码0。

ICMP协议

ICMP协议

ICMP协议浅析ICMP(Internet报文控制协议)是在IP层由于IP的不可靠而引入的一个协议。

其中主要包括查询报文和应答报文两大类。

ICMP经常被认为是IP层的一个组成部分。

它传递差错报文以及其他需要注意的信息。

ICMP报文通常被I P层或更高层协议(TCP或UDP)使用。

一些ICMP报文把差错报文返回给用户进程。

ICMP报文是在I P数据报内部被传输的,所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。

类型字段可以有1 5个不同的值,以描述特定类型的ICMP报文。

某些ICMP报文还使用代码字段的值来进一步描述不同的条件。

检验和字段覆盖整个ICMP报文。

需要注意的是ICMP的检验和是必需的。

ICMP报文中包括IP数据报、IP首部(不同类型和代码有不同的内容)、8位类型8位代码16位检验和)和用户进程(根据包含在I P数据报前8个字节中的T C P 或U D P报文首部中的T C P或U D P端口号来判断)。

1.查询报文和差错报文ICMP报文是一份查询报文还是一份差错报文。

不同类型的ICMP报文由报文中的类型字段和代码字段来共同决定。

因为对ICMP差错报文有时需要作特殊处理,因此我们需要对它们进行区分。

例如,在对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文(如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。

当发送一份ICMP差错报文时,报文始终包含I P的首部和产生ICMP差错报文的I P数据报的前8个字节。

这样,接收ICMP差错报文的模块就会把它与某个特定的协议封装在IP 数据报内部.下面各种情况都不会导致产生ICMP差错报文:1) ICMP差错报文(但是,ICMP查询报文可能会产生ICMP差错报文)。

2) 目的地址是广播地址或多播地址的I P数据报。

3) 作为链路层广播的数据报。

4) 不是I P分片的第一片。

ICMP

ICMP

ICMP差错报告的数据段部分:包含出错数据报的首部及出错数据报的 前64位数据(即:端口号(UDP和TCP)和序号(TCP)),这些信息有 助于信源或管理人员发现错误原因。
收到的IP数据报
IP数据报首部 8字节
ICMP差错报告报文
ICMP的前8 个字节
IP数据报 首部
8 字节
首部
ICMP差错报告报文
ICMP首部 ICMP数据
IP数据报首 部
IP数据报数据区
帧首部
帧数据区
因为传输错误的种类多种多样,ICMP 协议要报告这些错 误就必 须根据不同的错误采用不同的格式。但各种ICMP 数据包都有一个共同的ICMP头部。ICMP报文有一个8字节 的首部和一个可变长度的数据部分。如下图1所示。
图1 ICMP报文格式
类型字段值 0
描述 反射应答
3 4
5 8 9 10 11 12 13 14 15
目标不可达 源端关闭
重定向 反射请求
路由器通告
路由器请求 超时 数据包参数错误 时间戳请求 时间戳应答 信息请求(作废)
表1 ICMP 数据包类型
3、各种ICMP报文
ICMP报文可划分为两大类:差错报告报文和查询报文 差错报告报文报告了路由器或者主机在处理IP数据 包时可能遇到的问题。 差错报告报文的类型:目的站不可达(类型3)、 源站抑制(类型4)、时间超过(类型11)、参数 问题(类型12)、改变路由(类型5) 查询报文总是成双成对的出现,他帮助主机或者网 络管理员从某个路由器或者对方主机那里获取特定 的信息。 查询报文类型:回送请求或回答(类型8或0)、 时 间戳请求或回答(类型13或14)、地址掩码请求 或回答(类型17或18)
1、信宿不可达报告

icmp攻击原理

icmp攻击原理

ICMP(Internet Control Message Protocol)攻击是一种利用ICMP协议进行网络攻击的方式。

ICMP协议是用于在IP网络中传递控制信息的协议,它通常用于网络诊断、错误报告和网络管理等方面。

ICMP攻击的原理是利用ICMP协议的特性进行攻击,主要包括以下几种类型:ICMP洪水攻击(ICMP Flooding):攻击者向目标主机发送大量的ICMP请求消息,使目标主机的网络资源(如带宽、CPU、内存等)耗尽,导致服务不可用。

ICMP回显请求攻击(ICMP Echo Request Attack):攻击者发送大量的ICMP回显请求消息(也称为Ping请求),使目标主机不断回复这些请求,消耗目标主机的网络资源和处理能力。

ICMP分片攻击(ICMP Fragmentation Attack):攻击者发送经过特殊处理的ICMP分片消息,目的是使目标主机的IP堆栈产生异常行为,如崩溃或拒绝服务。

ICMP重定向攻击(ICMP Redirect Attack):攻击者发送伪造的ICMP重定向消息,使目标主机误导路由表,导致流量被重定向到攻击者控制的恶意主机。

这些攻击方法都利用了ICMP协议的一些弱点和漏洞,通过发送大量的恶意ICMP消息或利用协议本身的设计缺陷,造成目标主机的资源消耗、服务中断或网络异常。

为了防范ICMP攻击,可以采取以下措施:网络入口设备上配置ICMP过滤规则,限制ICMP流量的数量和频率。

配置防火墙或入侵检测系统(IDS)来检测和阻止异常的ICMP流量。

更新和维护系统的操作系统和网络设备的软件补丁,以修复可能存在的ICMP漏洞。

启用流量限制和流量监控,及时发现异常流量并采取相应措施。

使用网络安全设备和解决方案,如DDoS防护设备,来保护网络免受大规模的ICMP攻击。

总体而言,ICMP攻击是一种常见的网络攻击手段,网络管理员和安全专业人员需要采取相应的防护措施来保护网络和系统的安全。

ICMP协议

ICMP协议

介绍ICMP协议的背景和作用ICMP(Internet Control Message Protocol)是互联网控制报文协议,是TCP/IP协议族中的一个重要成员。

它被设计用于在IP网络中传输控制消息和错误报告。

背景在计算机网络中,数据包的传输是不可靠的,可能会发生各种故障和错误。

为了实现更可靠和有效的数据传输,ICMP 协议应运而生。

它提供了一种在网络设备之间进行通信和交换控制信息的机制。

作用ICMP协议具有以下主要作用:1.错误报告和故障排除:ICMP协议用于向发送方报告网络故障、错误和异常情况。

例如,当目标主机不可达时,ICMP会生成相应的错误消息通知发送方。

2.网络探测和活跃性检测:ICMP协议可以用于检测网络的活跃性和可达性。

通过发送ICMP回显请求(Ping)消息,可以确定目标主机是否在线,并计算往返时间(RTT)等网络性能指标。

3.路径MTU发现:ICMP协议还用于发现通信路径上的最大传输单元(MTU)。

通过发送ICMP分片需要重组的消息,发送方可以确定网络路径上的最大可接受MTU,从而避免分片和重组操作。

4.重定向消息:ICMP协议可以用于向发送方发送重定向消息,提示发送方使用更优的路径或下一跳路由器,以提高数据传输效率。

5.时间戳和时钟同步:ICMP协议支持时间戳消息,用于进行时间同步和时钟校准,以确保网络中的各个设备具有一致的时间参考。

总之,ICMP协议在网络通信中起着重要的作用,它不仅帮助诊断和解决网络故障,还提供了一些实用的功能,用于网络性能监测和优化。

解释ICMP协议的基本原理和工作方式ICMP(Internet Control Message Protocol)是一种网络协议,用于在IP网络中传输控制消息和错误报告。

它与IP协议密切相关,通过在IP数据报中添加ICMP报文来实现网络控制和错误处理。

基本原理ICMP协议的基本原理是通过发送和接收ICMP消息来实现网络设备之间的通信和交换控制信息。

ICMP简要解析

ICMP简要解析

类型:4 未使用(全0)
代码:0
检验和
收到的IP数据报的一部分,包括IP首部以及数据报数据的前 8个字节
差错报告报文

时间超过:生存时间为零时,除丢弃该数据报,还向源站发送超时报文。 无连接方式网络的问题就是数据报会丢失,或者长时间在网络游荡而找不 到目标,或者拥塞导致主机在规定时间内无法重组数据报分段,这时就要 触发ICMP超时报文的产生。超时报文的代码域有两种取值:Code=0表示 传输超 时,Code=1表示重组分段超时。
ICMP攻击

对于“Ping of Death”攻击,可以采取两种方法进行 防范:第一种方法是在路由器上对ICMP数据包进行带 宽限制,将ICMP占用的带宽控制在一定的范围内,这 样即使 有ICMP攻击,它所占用的带宽也是非常有限的, 对整个网络的影响非常少;第二种方法就是在主机上 设置ICMP数据包的处理规则,最好是设定拒绝所有的 ICMP数据包。
类型:8或0
标识符
代码:0
检验和
序号
由请求报文发送;由回答报文重复
ICMP询问报文

掩码地址请求和回答报文:从子网掩码服务器中得到某个接 口地址掩码
类型:17或18
代码:0
检验和
标识符
地址掩码
序号
ICMP询问报文

路由器询问和通告报文:了解连接在本地路由器是否工作, 询问通过广播形式,收到询问路由器通告报文广播其路由信 息。
5.3.2 ICMP报文格式
类型字段
0 3
消息类型
回送应答 目的结点不可达
4
5 8
源结点抑制
重定向 回送请求
11
12 13
时间超出
参数问题 时标请求

02_ICMP协议分析

02_ICMP协议分析

差错报告报文
参数出错报文
1) 参数出错报文报告出错的报文头与错误的报文选项参数 2) 路由器或信宿机在丢弃参数出错的报文时,将向信源机发出参数出错报文; 3) 参数出错报文格式:
类型(12) 指针
码(0-或121)
校验和
未用(全£0)
数据报报头+前64位数据
......
0 -- 数据报某个参数错,指针域指向出错的字节; 1 -- 数据报缺少某个选项,无指针域;
差错报告报文
信息不可达报文
网关在以下情况下发出信息不可到达报告 1) 信宿机硬件出现故障或关机; 2) 发送者指定的地址不存在; 3) 网关不知道去往信宿的路径;
信宿不可到达报告的格式
类型(3)
码(0-12)
校验和
未用(全0)
出错数据报报头+前64bit数据
........
差错报告报文
信息不可达报文

1 主机不可达

2 协议不可达

3
3 端口不可达

4 需要进行分片,但设置了 DF 不分片(2.3.2 节)

5 源路由选择失败

6 目标网络未知

ICMP数据包类型
ICMP报文类型
7 目标主机未知

8 源主机被隔离

9 与目标网络的通信被强制禁止

10 与目标主机的通信被强制禁止

11 对于请求的服务类型 TOS,网络不可达
码域值: 0 ~ 12,进一步说明信宿不可到达的具体原因
码值 0 2 4 6 8
10 11 12
意义
码值 意义
网络不可到达
1 主机不可到达

icmp 协议格式

icmp 协议格式

ICMP协议是Internet控制消息协议,用于在IP主机、路由器之间传递控制消息。

它是网络层协议,位于IP协议之上,TCP协议之下。

ICMP协议格式由报文头和报文体组成。

报文头包含8个字节,其中前4个字节表示类型(Type),后4个字节表示代码(Code)。

类型字段表示ICMP报文的类型,如“Echo Request”(回声请求)或“Echo Reply”(回声应答)。

代码字段表示特定类型的子类型或错误代码。

报文体包含数据,其长度取决于ICMP报文的类型和代码。

例如,对于“Echo Request”类型,报文体包含原始的IP数据包;对于“Echo Reply”类型,报文体包含与原始数据包相同的内容。

除了报文头和报文体之外,ICMP报文还包含一个标识符和一个序列号。

标识符用于区分属于同一原始数据包的多个分片。

序列号用于对分片进行重新排序。

ICMP协议还定义了一些特殊类型的报文,如“Destination Unreachable”(目标不可达)、“Time Exceeded”(超时)和“Parameter Problem”(参数问题)。

这些报文用于报告网络故障或错误状态。

综上所述,ICMP协议格式由报文头和报文体组成,其中报文头包含类型和代码字段,报文体包含数据。

此外,ICMP报文还包含标识符、序列号和一些特殊类型的报文。

icmp协议的功能

icmp协议的功能

icmp协议的功能ICMP协议的功能ICMP(Internet Control Message Protocol)是一种网络协议,用于在IP网络中传递错误消息和操作消息。

它是TCP/IP协议族中的一个重要组成部分,用于在网络中传递控制信息和错误信息。

ICMP协议的主要功能包括以下几个方面:1. 网络诊断ICMP协议可以用于网络诊断,例如ping命令就是基于ICMP协议实现的。

当我们在命令行中输入ping命令并指定一个IP地址或域名时,计算机会向目标主机发送一个ICMP Echo Request消息,如果目标主机正常工作,它会回复一个ICMP Echo Reply消息,这样我们就可以知道目标主机是否可达、网络是否正常工作等信息。

2. 错误报告ICMP协议还可以用于错误报告,例如当一个IP数据包在传输过程中发生错误时,路由器或主机会向源主机发送一个ICMP错误消息,告诉源主机发生了什么错误,例如目标主机不可达、TTL超时等。

这样源主机就可以根据错误消息进行相应的处理,例如重新发送数据包、更改路由等。

3. 路由选择ICMP协议还可以用于路由选择,例如当一个主机要发送数据包到另一个主机时,它会向本地路由器发送一个ICMP Redirect消息,告诉路由器更好的路径,这样路由器就可以根据ICMP Redirect消息更改路由表,选择更好的路径进行转发。

4. 流量控制ICMP协议还可以用于流量控制,例如当一个主机发送数据包到另一个主机时,如果目标主机的接收缓冲区已满,它会向源主机发送一个ICMP Source Quench消息,告诉源主机减缓发送速度,以避免网络拥塞。

5. MTU发现ICMP协议还可以用于MTU发现,MTU(Maximum Transmission Unit)是指网络中能够传输的最大数据包大小。

当一个主机要发送一个大数据包时,它会向目标主机发送一个ICMP Packet Too Big消息,告诉目标主机当前网络的MTU大小,这样目标主机就可以根据ICMP消息调整数据包大小,避免数据包被分片,提高网络传输效率。

ICMP的类型

ICMP的类型
x
3
11
Network unreachable for TOS——由于服务类型TOS,网络不可达
x
3
12
Host unreachable for TOS——由于服务类型TOS,主机不可达
x
3
13
Communication administratively prohibited by filtering——由于过滤,通信被强制禁止
3
Port Unreachable——端口不可达
x
3
4
Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特
x
3
5
Source routing failed——源站选路失败
x
3
6
Destination network unknown——目的网络未知
x
3
14
Host precedence violation——主机越权
x
3
15
Precedence cutoff in effect——优先中止生效
x
4
0
Source quench——源端被关闭(基本流控制)
5
0
Redirect for network——对网络重定向
5
1
Redirect for host——对主机重定向
x
17
0
Address mask request——地址掩码请求
x
18
0
Address mask reply——地址掩码应答
x
x
3
7
Destination host unknown——目的主机未知
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前面整理了分片及重组的一些概念和细节,下面通过发包和抓包来分析下icmp,udp,tcp的分片情况。

一、ICMP的分片
在cmd下面执行命令,192.168.1.1是我的网关:
>ping 192.168.1.1 -l 1500 -f
Pinging 192.168.1.1 with 1500 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
-f 选项关掉了分片许可,所以包没有发出去。

重新执行命令:
>ping 192.168.1.1 -l 1500
发送ICMP数据是1500负荷的数据包,在wireshark下面抓包:
上面是两张图片,表红的是带有ICMP头的分片1,椭圆内的是不带ICMP 头的IP分片2。

分片2的大小是1514bytes = 1480(icmp数据) + 20(ip头) +14(以太网)正好没有超过MTU限制,分片1带有ICMP头,大小是62bytes = (1500 - 1480)(剩下的icmp数据) +20(ip头)+14(以太网头)+8(icmp头)=62。

相关文档
最新文档