资源描述:
《透析icmp协议(一)协议原理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、透析ICMP协议(一)协议原理透析ICMP协议(一):协议原理来源:互联网时间:2008-02-22西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款!VPS主机租用266元/月(1G内存)!对于熟悉网络的人来说,ICMP是再熟悉不过了.它同IP协议一样工作在ISO模型的网络层,它的全称是:InternetControlMessageProtocal.其在网络中的主要作用是:-主机探测
2、-路由维护-路由选择-流量控制对于主机探测来说有很多方法,主机某些服务的BANNER,一些使用的应用程序,或者使用工具来检测主机,如NMAP,在WEB上有www.netcraft.com来简单的估测主机。下面所讲的是使用ICMP协议来探测主机,主要也是可以了解ICMP这个协议,这里最主要的也是将这个ICMP协议,首先我来讲一下主机探测用到的ICMP报文我没有一一讲全部报文,详细请参见RFC792协议)1.回送或回送响应 我们使用一个ICMPECHO数据包来探测主机地址是否存活(当然在主机没有被配置为过滤I
3、CMP形式),通过简单的发送一个ICMPECHO(Type8)数据包到目标主机,如果ICMPECHOReply(ICMPtype0)数据包接受到,说明主机是存活状态。 如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到.回送消息的源地址是回送响应消息的目的地址。若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为0,重新计算机校验码。下面是这个报文的格式:01230123456789012
4、3456789012345678901--------------------------------
5、Type
6、Code
7、Checksum
8、--------------------------------
9、Identifier
10、SequenceNumber
11、--------------------------------
12、Data...-----类型:8代表回送消息;0代表回送响应消息。代码:0校验码:16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在以后会被校验
13、码取代。标识符:如果代码=0,帮助匹配回送和回送响应的代码可以为0。序列码:如果代码=0,帮助匹配回送和回送响应的序列码可以为0。说明:回送消息中接收到的消息应该在回送响应消息中返回。标识符和序列码由回送发送者使用帮助匹配回送请求的响应。代码:从主机或网关接收02.超时报文012301234567890123456789012345678901--------------------------------
14、Type
15、Code
16、Checksum
17、-------------------------------
18、-
19、unused
20、--------------------------------
21、InternetHeader64bitsofOriginalDataDatagram
22、--------------------------------类型:11代码:0=传送超时;1=分段级装超时。校验码:16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在以后会被校验码取代。Internet包头64位源数据报数据:Internet包头加上源数据的头64位而得。此数据用于主机匹配信息到
23、相应的进程。如果高层协议使用端口号,应该假设其在源数据的头64个字节之中。说明:如果网关在处理数据报时发现生存周期域为零,此数据报必须抛弃。网关同时必须通过超时信息通知源主机。如果主机在组装分段的数据报时因为丢失段未能在规定时间内组装数据,此数据报必须抛弃。网关发送超时信息。如果段零不可用则不用发送超时信息。代码0由网关发送,代码1由主机发送。3.目标主机不可达报文012301234567890123456789012345678901--------------------------------
24、Typ
25、e
26、Code
27、Checksum
28、--------------------------------
29、unused
30、--------------------------------
31、InternetHeader64bitsofOriginalDataDatagram
32、--------------------------------类型:3代码:0=网络不可达;1=主机不可达;2=协议不可用;3=端口不可达;4=需要段