ICMP协议

概念

ICMP是(Internet Control Message Protocol)互联网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

理解

  • ICMP协议是网络层协议。

  • ICMP协议是一种面向无连接的协议。

  • ICMP协议是IP协议的伴随协议,主机或路由器可以利用ICMP彼此通告网络层信息,典型的应用是差错报告。

  • ICMP被认为是IP协议的一部分,但在体系结构上ICMP在IP之上,因为ICMP的消息需要封装在IP分组中

  • ICMP协议主要功能

    • 刺探主机是否响应
    • 建立及维护路由资料
    • 重导资料传送路径(ICMP重定向)
    • 资料流量控制
  • Ping工具、Traceroute工具基于ICMP协议实现

Ping

  • Ping命令通过发送ICMP回声请求报文来检测与另一个主机(或路由器)的通信可达性,常用于排除或诊断网络连接故障。

  • 应用程序Ping发出的报文是ICMP回声请求报文,接收的是ICMP回声应答报文。

  • Ping命令可以检测与目的主机之间通信的RTT(往返时间),但不能检测通信路径上的路由器。

  • Ping of Death

利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。(操作系统已经取消了发送ICMP数据包的大小的限制,解决了这个漏洞)

Traceroute

  • 可以检测从源主机到互联网另一目的主机(或路由器)的分组传输路径,UNIX系统中是Traceroute,在MS Windows系统则是Tracert。

  • Traceroute(Tracert)依次向目标主机发送设定不同TTL值(Time To Live 是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。)、封装ICMP回声请求报文的IP数据报,路径上的每个路由器在转发IP数据报前将其TTL值减1,当TTL值减为0时,路由器丢弃该IP数据报,并向源主机发送ICMP超时报文,源主机收到ICMP超时报文,则探测到路径上相应的路由器,直到目的主机发回回声响应报文为止,源主机则探测到路径上所有的路由器。Traceroute(Tracert)通过递增发送的IP数据报的TTL值,依次检测路径上的路由器,直到目标主机返回ICMP回声响应报文或达到最大TTL值。例如, TTL=1 T T L = 1 时,可以检测到第1个路由器, TTL=2 T T L = 2 时,可以检测到第2个路由器,以此类推。

  • Traceroute(Tracert)对于每个TTL值发送三个数据报,即对每个路由器进行三次探测,并在对每个路由器进行探测时,实现对到达该路由器的RTT进行统计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值