分享
 
 
 

透析ICMP协议(一): 协议原理

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

透析ICMP协议(一): 协议原理

===============================

这篇文章原创自bugfree/CSDN

平台: VC6 Windows XP

ICMP简介:

--------

对于熟悉网络的人来说, ICMP是再熟悉不过了. 它同IP协议一样工作在ISO模型的网络层, 它的全称是: Internet Control Message Protocal. 其在网络中的主要作用是:

- 主机探测

- 路由维护

- 路由选择

- 流量控制

我主要围绕主机探测来讲解如下的几篇文章:

- 透析ICMP协议(一): 基础知识

协议原理

- 透析ICMP协议(二): 函数简介

Windows Socket 简介

- 透析ICMP协议(三): 牛刀初试之一

应用篇ping(ICMP.dll)

- 透析ICMP协议(四): 牛刀初试之二

应用篇ping(RAW Socket)

- 透析ICMP协议(五):

应用篇路由追踪

对于主机探测来说有很多方法,主机某些服务的BANNER,一些使用的应用程序,或者使用工具来检测主机,如NMAP,在WEB上有www.netcraft.com来简单的估测主机。下面所讲的是使用ICMP协议来探测主机,主要也是可以了解ICMP这个协议,这里最主要的也是将这个ICMP协议,

首先我来讲一下主机探测用到的ICMP报文:(我没有一一讲全部报文,详细请参见RFC792协议)

1. 回送或回送响应

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

回送消息的源地址是回送响应消息的目的地址。若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为0,重新计算机校验码。

下面是这个报文的格式:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Type | Code | Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identifier | Sequence Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Data ...

+-+-+-+-+-

类型:

8代表回送消息;

0代表回送响应消息。

代码:0

校验码:

16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在 以后会被校验码取代。

标识符:如果代码=0,帮助匹配回送和回送响应的代码可以为0。

序列码:如果代码=0,帮助匹配回送和回送响应的序列码可以为0。

说明:

回送消息中接收到的消息应该在回送响应消息中返回。标识符和序列码由回送发送者使用帮助匹配

回送请求的响应。代码: 从主机或网关接收0

2. 超时报文

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Type | Code | Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| unused |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet Header + 64 bits of Original Data Datagram |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

类型:11

代码:

0 = 传送超时;

1 = 分段级装超时。

校验码:

16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。

这些零在以后会被校验码取代。

Internet包头+64位源数据报数据:

Internet包头加上源数据的头64位而得。此数据用于主机匹配信息到相应的进程。

如果高层协议使用端口号,应该假设其在源数据的头64个字节之中。

说明:

如果网关在处理数据报时发现生存周期域为零,此数据报必须抛弃。网关同时必须通过超

时信息通知源主机。如果主机在组装分段的数据报时因为丢失段未能在规定时间内组装数据,

此数据报必须抛弃。网关发送超时信息。

如果段零不可用则不用发送超时信息。

代码0由网关发送,代码1由主机发送。

3. 目标主机不可达报文

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Type | Code | Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| unused |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet Header + 64 bits of Original Data Datagram |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

类型:3

代码:

0 = 网络不可达;

1 = 主机不可达;

2 = 协议不可用;

3 = 端口不可达;

4 = 需要段和DF设置;

5 = 源路由失败;

校验码:

16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。

这些零在以后会被校验码取代。

Internet包头+源数据报:

Internet包头加上源数据的头64位而得。此数据用于主机匹配信息到相应的进程。

如果高层协议使用端口号,应该假设其在源数据的头64个字节之中。

说明:

相应于网关的路由表,如果在目的域中指定的网络不可达,如网络距离为无限远,网关会向发送

源数据的主机发送目的不可达消息。而且,在一些网络中,网关有能力决定目的主机是否可达。

如果目的地不可达,它将向发送源数据的主机发送不可达信息。

在目的主机,如果IP模块因为指定的协议模块和进程端口不可用而不能提交数据报,目的主机将

向发送源数据的主机发送不可达信息。

另外一种情况是当数据报必须被分段传送,而“不可分段”位打开,在这种情况下,网关必须抛弃

此数据报,并向向发送源数据的主机发送不可达信息。

代码0,1,4和5由网关发送,而代码2和3由主机发送。

链接:

-------

我的其它文章,<<透析ICMP协议>>, 和其它文章参见:

http://www.csdn.net/develop/author/netauthor/bugfree/

透析ICMP协议(五): 应用篇路由追踪

透析ICMP协议(四): 牛刀初试之二 应用篇ping(RAW Socket)

透析ICMP协议(三): 牛刀初试之一 应用篇ping(ICMP.dll)

透析ICMP协议(二): Windows Socket 简介

透析ICMP协议(一): 协议原理

联系方式:

-------

zhangliangsd@hotmail.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有