查看: 12445|回复: 4

想详细了解ICMP协议?

[复制链接]
发表于 2006-5-11 13:23:49 | 显示全部楼层 |阅读模式
谁能讲讲ICMP协议啊,想详细的了解下。
谢谢了
回复

使用道具 举报

发表于 2006-5-11 14:07:38 | 显示全部楼层
个人理解,

1. ICMP是同IP协议一样工作在ISO模型的网络层, 它的全称是: Internet Control Message Protocal.  

2. ICMP仅能够用于故障隔离而不能用于错误纠正。。ICMP报文还能用于故障检测,排除和优化网络性能。
ICMP的标准定义在RFC792中。

ICMP报文不能直接发给网络借口层进行传输。它必须被封装在IP数据报中,然后发往下一层。IP数据报中的数据部分由ICMP报文组成。当一个ICMP报文通过IP数据报进行传输时,IP报头的协议字段必须设置为1。

3. 下面是一些关于ICMP的内容:
-ICMP报告发生在数据传输时的错误。但不负责由此而引发的问题。
-当携带有ICMP报文的IP数据遇到问题时,ICMP不报告错误。
-ICMP报文总是只报告数据报零分段的问题。
-ICMP报文总是被重定向到那些发送数据的主机上,而不是中间设备上。
-对于含有多播地址或者像127.0.0.1这样的特殊地址的数据报将不会产生ICMP报文。

4. ICMP报文格式

ICMP所报告的报文被分成两类:错误报文和查询报文。
错误报文用来报告网络中存在的问题;而查询报文则用来排除网络故障。

A ,错误报文

类型          代码              校验和
———————————————-——
                       未使用
—————————————————
internet报头+原始数据包的前64位


ICMP报文格式中的 类型字段给出了错误报文的类型。例如,目标不可达,重定向,源抑制,超时,参数问题等。

B,查询报文

最常用的 查询报文就是回送请求(Echo Request),回送应答(Echo Reply),时间戳(Time Stamp Request)和时间戳应答(Time Stamp Reply)。

ICMP还可以生成一些其他报文,比如地址掩码请求(Address Mask Request)和地址掩码应答(Address Mask Reply)


我们使用一个ICMPECHO数据包来探测主机地址是否存活(当然在主机没有被配置为过滤ICMP形式),通过简单的发送一个ICMPECHO(Type 8)数据包到目标主机,如果ICMPECHOReply(ICMPtype0)数据包接受到,说明主机是存活状态。  如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到.
回复

使用道具 举报

发表于 2006-5-11 17:09:22 | 显示全部楼层
谢谢!!
又有一点收获了!
回复

使用道具 举报

 楼主| 发表于 2006-5-12 09:13:26 | 显示全部楼层
ICMP的具体作用呢?
回复

使用道具 举报

发表于 2006-5-12 11:44:01 | 显示全部楼层
我理解的ICMP的作用如下:

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

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

ICMP报文分问两种:错误报文和查询报文

1.错误报文:用来报告网络中存在的问题
当网络中中间设备出现问题时,目的地无法联系上,会发出一个ICMP目标不可达的错误报文
当主机为数据分组找到更有效的路由时,会发出一个ICMP重定向报文

2.查询报文:查询报文主要用来排除网络故障

我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表