12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 2278|回复: 13
打印 上一主题 下一主题

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

[复制链接]

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

跳转到指定楼层
楼主
发表于 2011-8-31 07:58:52 |只看该作者 |倒序浏览

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

- 主机探测

- 路由维护

- 路由选择

- 流量控制
对于主机探测来说有很多方法,主机某些服务的BANNER,一些使用的应用程序,或者使用工具来检测主机,如NMA

P,在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由主机发送。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

Asen    

867

主题

0

听众

1万

积分

外协人员

Rank: 7Rank: 7Rank: 7

纳金币
17488
精华
1
沙发
发表于 2011-8-31 09:58:09 |只看该作者
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-3-26 23:18:49 |只看该作者
不错哦,顶一下......
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-4-28 23:18:49 |只看该作者
有意思!学习了!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-4-29 23:18:28 |只看该作者
不错哦,顶一下......
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-8-3 00:10:08 |只看该作者
好可爱的字,学习了
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

7#
发表于 2012-9-22 23:36:43 |只看该作者
楼主收集的可真全哦
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

8#
发表于 2012-12-13 22:49:26 |只看该作者
很经典,很实用,学习了!
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2013-2-3 23:28:37 |只看该作者
响应天帅号召,顶
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2013-2-22 23:18:10 |只看该作者
再看一看,再顶楼主
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-12 07:14 , Processed in 0.103491 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部