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

ICMP简介:

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

- 主机探测

- 路由维护

- 路由选择

- 流量控制

对于主机探测来说有很多方法,主机某些服务的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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

时间: 2024-11-01 22:49:27

透析ICMP协议(1):协议原理的相关文章

透析ICMP协议(4):应用篇ping(RAW Socket)

原理简介: -------- 用RAW Socket实现的ping可能比上一节的应用ICMP.DLL的程序庞大些, 但是这才是我们需要关注的东西, 我的观点真正想做网络开发的程序员应该静下心来读读这篇文章, 相信你会从中获益颇多. 中间我也会讲解一些东西为后一章的路由追踪做一些铺垫. 另一个重要的要讲的东西, 微软宣布随时不支持上节讲的ping用到的开发接口, 但是本节的讲的是更一般的东西. 所以它不会过时, 甚至做很小的改动就可以移植到别的系统上去. 系统移植不是我们的讲的重点. 但是微软的长

透析ICMP协议(3):应用篇ping(ICMP.dll)

原理简介: -------- 这个例子演示了应用微软的ICMP.DLL怎样"ping"另一台机器. 这个DLL是没有文档话的发送ICMP回送包API接口, 也称为"pings," 就像潜水员对声纳信号的术语一样. 这段代码出自一个被一个名叫MarkG的家伙的GUI程序, 他的网页已经消失了. ICMP.DLL API 现在在Windows平台上与微软的Winsocks工作的很好, 但是微软说更好的产品一出来他们将替换它. 微软说这个自从Windows 95时代就在用

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

简介: ------- Windows 的Socket函数有许多, 我没有做详细介绍, 这里的函数都是简要说明其用途, 详细用法请参考MSDN. 这里的主要目的是为了后面的三个应用服务. 函数说明: --------- WSAStartup函数 初始化Winsock [声明] int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData); [参数] wVersionRequested - 要求使用Winsock的最低版本号 lpWSAData

网络协议:简析三次握手协议

           一,简析三次握手协议               首先来看我们生活中很常见的一件事:                             在我们网购的时候,常常会跟客服这样聊天:我们向客服询问某件事,客服回答,然后我们断网了...过了一会儿,我们再登陆就收到了客服的回答.              这个交互的过程进行了三次才完成了一次应答,这个过程就类似我们采用TCP/IP协议访问服务器时的三次握手机制:                          第一次握手:

全面透析网赢战车如何做关键词排名推广

文章讲的是全面透析网赢战车如何做关键词排名推广,近期市场上多出了一款新的用人工智能代替纯手工模式的网站优化和关键词排名推广的软件,名为网赢战车,而具资料考究,这款软文自2014年就已经上市,并经历了三次的版本迭代,现在的真实命名为网赢战车3.0,至于为什么说近期才开始被广大企业所关注,正是我们今天要进行剖析的原因. 如何解决网站质量问题 首先,这款软件有一款叫做云词机器人的程式,它通过搜索引擎大数据,对用户的搜索习惯和路径进行分析,匹配出关键词.区别于传统的人工模式的是,它不仅会对产品核心关键词

透析站内优化关键因子:“以何为贵”

透析站内优化关键因子:"以何为贵"

什么是ipv9协议,ipv9协议是什么意思?

什么是ipv9协议,ipv9协议是什么意思? 根据<采用全数字码给上网的计算机分配地址的方法>发明专利实施并发展而成的"十进制网络"采用的是自主知识产权.以十进制算法(0-9)为基础的IPV9协议,并将网上计算机进行互相连接,从而达到计算机相互通信和数据传输的目的. 目前,十进制网络系统主要有IPV9地址协.IPV9报头协议.IPV9过度期协议.数字与名规范等协议和标准构成. 数字域名是指0-9的阿拉伯数字替代传统的英文字母做域名的方法上网.同时,数字域名也可以直接以IPV

多视角透析Struts2

3.3 多视角透析Struts2  Struts2的外部环境并不复杂,因为其核心内容非常明确:探究Struts2运行时所必须的基本要素.我们对Struts2的运行环境和Struts2所依赖的核心技术的讲解,更多是为了让读者了解Struts2能够顺利运行的条件.  在明确了Struts2的外部环境之后,我们讨论的话题就将转向Struts2本身.在本节中,我们将从宏观和微观这两个不同的视角,阐述Struts2的总体架构和内部元素构成,以此揭开Struts2的神秘面纱.  3.3.1透视镜 -- St

透析新浪投资故事的内涵

新浪不为人知的故事 在陈凡的十七年投资生涯中,新浪无疑是可圈可点的一笔.透析新浪投资故事的内涵,对今天的PE投资者投资和企业家创业,都有着现实的指导意义 新浪已经上市这么多年了,有谁又知道新浪投资与上市过程中一连串的未解密故事:中金以弱胜强拿下新浪:VIE模式如何成为新浪模式:新浪管理团队政变始末:王志东为何差点被扔到海里去,后来又怎样被人捞回来:Jim Sha是怎么洗洗睡的:新浪承销商高盛与大摩之争,新浪与中金为何帮助摩根暗渡陈仓,入主东宫:高盛又是为何黯然退出的-- 虽然这一切都已成为历史,