公务员期刊网 精选范文 icmp协议范文

icmp协议精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的icmp协议主题范文,仅供参考,欢迎阅读并收藏。

icmp协议

第1篇:icmp协议范文

关键词:网络技术;Ping命令;icmp协议

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)19-30028-03

The Realization of Ping Command in Virtual Network Construction

LV Jin-rong, GONG Pei-zeng, YANG Zhi-qiang

(Dept of Computer Science and Engineering, Tongji University, Shanghai 200092, China)

Abstract: Network Technology is being more and more important not only in teaching but also in practical application. The paper based on the teaching curriculum and experiment requirement and did a primary researching in Virtual Network Construction. This experiment method use the simple icons to behalf the real network equipment which been used to construct network. Also the experiment method gives a command interface line in a separated window and simulates some network commands to check the states of net. This paper realizes the Ping command and analyzes with an experiment.

Key words: network technology; Ping command; ICMP protocols

1 引言

随着计算机技术及网络技术的迅速发展,个人、家庭或宿舍中拥有多台计算机已变得十分的普遍,将多台计算机组建成网络可以提高资源的利用率和协同工作的效率,所以网络技术无论在教学还是在现实生活中都变得异常的重要。

在实际学习中,由于资源设备的限制,提供完善的实验环境存在一定的难度,所以提供一种模拟的组建网络的平台具有很强的现实意义。虽然在应用中,业界有很多优秀的成品软件,如:虚拟机软件vmware、virtual pc;以及网络认证考试的软件NetSim、Dynamips等工具也可用于模拟组建网络的练习工具,但是由于它们所面向的是高级的网络应用,在教学的应用中需要更简单直观的平台。

文中就是基于面向网络技术教学的目的而设计的实验平台,提供了简单直观实验的要求。文中重点实现了Ping命令,根据Ping命令的运行原理,对它进行了模拟实现,相应的其他检查网络状态的命令,如:tracert、ipconfig、netstat等等,也可以根据各自的运行原理进行实现[1]。

2 Ping命令及ICMP协议简介

2.1 Ping命令简介

“Ping”这个名字源于声纳定位操作,最早Ping程序是由Mike Muuss编写[2],目的是为了测试另一台主机是否可达,该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。

一般来说,如果不能Ping到某台主机,那么就不能Telnet或者FTP到那台主机;反过来,如果不能Telnet到某台主机,那么通常可以用Ping程序来确定问题出在哪里。但是随着Internet安全意识的增强,Ping不通一台主机也可能是受路由器、防火墙的影响,但在一般的应用中可以将Ping作为检测网络连通状况的实用工具。

图1 Ping命令发送ICMP报文

2.2 ICMP协议简介

ICMP协议(Internet Control Message Protocol, Internet控制报文协议)是TCP/IP协议族的一个子协议,该协议位于网络层,提供了传输差错报文、控制报文和询问报文的功能;允许ICMP报文在IP数据报内携带。封装格式如下图:

图2 ICMP封装在IP数据报内部

ICMP报文有多种类型,Ping程序使用ICMP的回显请求报文,该报文的结构如下:前四个字节为报文头部分,第一个字节为报文类型,第二个字节未用,第三、四个字节为报文的校验和,第五、六个字节为报文的标志符,第六、七个字节为报文的序号,最后为选项数据但是报文总长度不超过64KB。

ICMP回显请求和回显应答报文格式如下图:

图3 ICMP回显请求和回显应答报文格式

3 Ping命令执行原理及实现步骤

3.1 执行原理和步骤

在进行Ping操作时,首先从客户机向服务器发送ICMP回显请求报文,当服务器接收到客户机发送来的ICMP回显请求报文时,服务器就会向客户机发送ICMP回显应答报文,客户机通过接收来自服务器的ICMP回显应答报文,从而判断与远程主机的联通状态。

实现步骤如下:

步骤 1:根据ICMP回显请求的报文格式,定义报文;

步骤 2:客户机发送封装ICMP回显请求报文的IP数据包;

步骤 3:客户机接收封装ICMP应答报文的IP数据包。

3.2 数据包的检验和算法

为了保证包头和数据不被破坏,数据包在计算机网络中传输期间使用了检验和(图3中的第三四字节),ICMP的检验和字段覆盖整个ICMP报文,而求ICMP的检验和是必须的,检验和保证了ICMP报头和数据的正确性。

检验和算法在所有的协议中都是相同的,只是由于协议的不同,检验和保证的域的内容不同。检验和在各种协议中所保证的各种域如下:

检验和icmp_ckSum算法如下[4]:

① 在检验和的域中设置为0;

② 在数据长度为奇数时,在其域中最后追加0,使其调整为以16为单位(在这种调整方法中,即使追加8位,也不包含包长度);

③ 以16位为单位,将一个伪报头、报头、数据部分加上1的补码;

④ 将所求出的值:1的补码存储到报头检查和的区域中。

如果首部在传输的过程中没有发生任何差错,那么接收方计算的结果应该为全1;如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报,但是不生成差错报文,由上层去发现丢失的数据报并进行重传。

4 模拟命令的实验过程及结果

4.1 实验要完成的功能

本实验平台要实现的功能界面如图4。

在“工作台”窗口中,组建了一个简单的局域网,通过模拟网络命令测试该局域网的网络连通状态,在“命令交互”窗口中,用Ping命令从PC1到PC2,返回的结果将与实际的局域网中得到的结果相似。

4.2 Ping命令的Visual C#模拟实现

安装Ping命令的执行原理、步骤,其具体的实现过程如下:

① ICMP数据包类的定义和实现。

public class IcmpPacket{private Byte_type;// 报文类型

private Byte_subCode;// 字代码类型

private UInt16 _checkSum;// 报文校验和

private UInt16 _identifier;//识别符

private UInt16 _sequenceNumber;// 序列号

private Byte[]_data; // 数据选项 }

② 模拟Socket的SendTo()方法的SimSendTo()方法。

在执行Ping命令时该方法将被调用,根据计算机名或虚拟的IP地址,将ICMP数据包的UInt16数组发送给目的主机进行验证。

在该方法中增加了对计算机名的名称的解析,可以将计算机名称与虚拟的IP地址对应起来,因此Ping命令后面的参数可以是计算机名也可以是具体的IP地址。

③ 模拟Socket的ReceiveFrom()方法的SimReceiveFrom()方法。

此方法在执行Ping命令是也会被调用,该方法返回了目的主机回显的信息,表明了目的主机是否已经接收到了发送的数据,若该方法的返回值为ICMP数据包的大小,则表明操作成功,将在终端显示接收信息;若返回的值为-1,则在终端显示“目的主机不可到达”的信息。

④ 检验和icmp_ckSum()算法的实现。

public static UInt16 icmp_ckSum(UInt16[] buffer)

{int cksum = 0;

for(int i=0;i

cksum += (int) buffer[i];

cksum = (cksum >> 16) + (cksum & 0xffff);

cksum += (cksum >> 16);

return (UInt16)(~cksum); }

5 结束语

该文对模拟组网的实验平台进行了介绍,详细介绍了Ping命令的原理及其工作方式,并对其模拟实现进行了详细的分析。依据此实现方式,可以对其他的命令tracert、ipconfig、netstat等等进行实现,以完善该实验平台。

当然该平台到目前只是对关键的技术进行了前期的研究和解决,很多的功能和相关的技术还要进行继续的研究,在命令的交互体验方面也应该更加真实,这些都成为以后工作的重点。

参考文献:

[1] Jon C.Snader. 刘江林,译. 高级TCP/IP编程[M].北京:中国电力出版社,2001.6.

[2] W.Richard Stevens.TCP/IP Illustrated, Volume 1:The Protocols.北京:机械工业出版社,2002.1.

[3] 潘爱明,译.计算机网络[M].第4版.北京:清华大学出版社,2004.8.

[4] 冯杰,闫鲁生,译.TCP/IP网络实验程序篇[M].北京:科学出版社,2003.4.

[5] Gary R.Wright,W.Richard Stevens.TCP/IP Illustrated, Volume 2:The Implementation[M].北京:机械工业出版社,2002.1.

[6] 李铭,黄静,译.C#2005&.NET 3.0高级编程.第5版.北京:清华大学出版社,2007.12.

[7] RFC 791-1981 INTERNET PROTOCOL[S].Network Working Group.

第2篇:icmp协议范文

关键词:黑客攻击;网络协议;ICMPIP

一、黑客基础知识

不难想象,本文可选择的攻击类型范围很广。我之所以选取本文所讨论的几种特定攻击,是因为它们不需要太多关于所涉及协议的知识,但仍然能有效地说明了攻击是如何执行的、攻击实际上是多么简单(一旦您知道了详细信息)以及攻击者所需的资源(计算和网络)是多么有限。尽管不可能在本文中涵盖关于黑客攻击的整个主题,但我已尽可能简化基本原理,而仍然尽量多地提供必要信息,以便您理解所描述的攻击。

二、攻击的种类。拒绝服务攻击:通常,黑客瞄准特定系统,闯入系统以便将其用于特定用途。那些系统的主机安全性经常会阻止攻击者获得对主机的控制权。但进行拒绝服务攻击时,攻击者不必获得对系统的控制权。其目标只是使系统或网络过载,这样它们就无法继续提供服务了。拒绝服务攻击可以有不同的目标,包括带宽消耗(bandwidth consumption)和资源缺乏(resource starvation)。

三、分析选定的网络攻击

(一)协议

本段讨论了针对网际控制报文协议(ICMP)和传输控制协议(TCP)上的攻击,这两个协议都属于网际协议(IP)系列。在深入研究关于这些协议的详细信息之前,我打算先在适合于这些协议的环境中讨论它们。

网际控制报文协议(ICMP)是IP的组成部分,但它使用某些IP服务。ICMP提供服务,使主机能够彼此交流控制信息。ICMP由IP和一些更高级别的协议使用,如传输控制协议(TCP)。

传输控制协议(TCP)是本文中讨论的第三个重要协议。TCP的功能比IP更进一步,并提供两个重要特性:连接和服务质量。这意味着您可以在两台主机之间开一个虚拟通道,通过这个通道,使得所发送的包的顺序及其实际传递都得到保障。

接下来更高的一级是应用层协议,如Telnet和SMTP。它们都使用由TCP提供的服务。例如,当您用Telnet连接到主机时,打开一个连接,并且您希望所有输入这个Telnet会话的数据都以正确的顺序发送到接收主机。

(二)理解IP

因为IP提供的是无连接、不可靠、最高效的(best-effort)数据报传递服务,所以IP的使用范围多少受到了限制。但是,它提供两个基本功能:寻址和分段。地址(在IP数据报头中封装为源和目的地地址)用来将数据报传输到其目的地,这个过程称为路由。有两种基本情况:

接收主机和发送主机位于同一子网,这种情况下数据报将被直接从发送方发送到接收方。

接收主机位于不同的子网,这种情况下发送主机将把数据报转发到网关(连接两个子网的IP主机),然后,如果目的地主机在一个与网关相连的子网中,则网关会尝试将数据报传递到目的地主机。如果目的地主机不在与网关相连的子网中,网关将会把数据报转发到另一个网关。这个过程将反复进行,直到能够将数据报传递到其目的地主机为止。

既然我已经介绍了基础知识,现在可以讨论个别协议了。在以下几节中,您将找到关于ICMP和TCP的更详细的信息以及一些使用这些协议的有趣的攻击。

(三)使用ICMP

超时消息:每个IP数据报头中都包含一个字段―称为“生存时间字段”―它指出数据报在被丢弃之前还能在因特网上保持多久。数据报在因特网上保持的时间以跳跃点(hop)衡量,其中一个跳跃点表示数据报通向目的地节点路径上的一个网关。当数据报经过网关转发时,它就将生存时间字段中的值减一。如果处理数据报的网关测定该数据报IP头中的生存时间字段为0,则丢弃该数据报并用超时消息通知源主机。

回应请求和回应应答消息:如果主机A想知道主机B是否是活动的,则主机A会向主机B发送一条ICMP回应请求消息。主机B将用ICMP回应应答消息来应答,以表明自己是活动的。这条消息就是众所周知的ping包。

以上这些并不是ICMP所使用的全部消息类型,但它们能使您大致了解ICMP的用途。接下来我将向您介绍两种ICMP攻击。

目的地不可到达攻击

类别:拒绝服务攻击

描述:如上所述,ICMP目的地不可到达消息向尝试转发消息的网关提供了一种工具,用来通知发送方:因为在数据报目的地地址中指定的主机不可到达,所以无法传递该消息。

如果入侵者获得了网络10.1.0.0中一台主机的访问权,那么,他可以广播一条“目的地不可到达消息”,声明网关G对于他所在网络的所有主机是不可到达的。这将使网关G和网络10.2.0.0暂时变得不可用,因而不可能从网络10.1.0.0向网络10.2.0.0传输任何消息。

这种攻击背后的动机只是使网络或服务暂时瘫痪。因为攻击者不需要功能强大的机器或高速的网络连接来执行这种攻击,所以它特别危险。

(四)Smurf攻击

类别:拒绝服务攻击

描述:Smurf攻击是拒绝服务攻击的一种非常可怕的形式,因为它具有放大效应。Smurf攻击利用ICMP回应消息。如上所述,主机A每次向主机B发送回应请求消息时,主机B都会返回回应应答消息以表明自己是活动的。名称“Smurf攻击”源自一个名为smurf的利用程序,攻击者用该程序来执行这种攻击。

(五)传输控制协议(TCP)

在继续讨论攻击之前,我将更详细地讨论TCP的某些方面,这些知识对于下面讨论的攻击是必需的。尤其是TCP包(称为段)的结构、如何在主机之间建立TCP连接和如何关闭连接。

(六)TCP包的结构

与IP数据报类似,TCP段包含头部分、可选(选项)部分和数据部分。现在,让我们更仔细地研究一下TCP头的某些重要字段:

源端口:分配给启动连接的主机上虚连接的端口号。

目的地端口:目的地端口号。这也由启动连接的主机分配,因为只有该主机知道自己“想”连接到哪里。例如,如果您打开到特定主机的Telnet连接,则目的地端口将被设置为23。

序列号和确认号:发送方和接收方使用两个序列号来确保包没有丢失、没有重复以及可以在目的地节点以正确顺序重新组装。

标志:这个字段包含六个控制位:

URG:向接收方表明一接收完数据就进行紧急处理。

ACK:表明确认号字段是有意义的。

PSH:表明必须迅速地将数据传递到接收方。

RST:表明要立即复位连接。

SYN:在需要同步序列号的情况下设置。

FIN:表明不会再有来自发送方的数据了(也就是说,连接将要关闭)。

以上是TCP头中的重要字段,下面关于TCP连接的建立和关闭的几节将使您更好地理解这些字段的用途。

第3篇:icmp协议范文

 

关键词:网络管理协议(SNMP) 网络拓扑自动发现算法 网络管理

随着计算机网络的普及,人们对计算机网络的依赖性大大加强了。在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境。计算机网络管理系统就是应这样的需求而产生的。它对网络上的各种设备进行管理,通过监视和控制这些设备。及时地向管理人员报告网络状态,并且简化网络故障的处理,减少故障造成的损失,提高网络的服务质量和效率。在我国,人们开始认识到网络管理的重要性。

一、网络管理中传统的网络拓扑发现算法

网络拓扑的发现,实际上就是根据网络上节点连接情况,构造出来一个反映这种连接关系的图。网络节点可以是网关,也可以是子网:网关节点是与子网和其它网关节点相邻的节点;子网节点可被认为只与网关节点相邻,至少与它的缺省网关相邻。各子网通过各目的网关与其他子网通信,这些子网可以是一个局域网,也可以是某个局域网的一部分,它们都连接到网关的一个端口上。网关的端口可以连接子网,也可以同其他路由器相连。

主拓扑指的是反映出关键设备包括路由器,它们的接口和子网的连接关系,即路由器一路由器、路由器一子网、接口的关系。这些信息需要对网络进行搜索而获得:一般只需要对连接设备进行遍历就可以得到主拓扑结构。当前的网管软件都是通过对网络设备的MIB库进行访问,所以这种方法又被称为基于SNMP的拓扑发现。经过上述的遍历过程,可以得到网络拓拓扑图的整体构成,知道了网络主干通道情况。但是子网内部的具体设备以及连接状态尚不可知。这就需要依靠子网发现来做进一步的工作。子网发现完成的任务是确定子网内各网络设备的状态、类型以及网络接口。

遍历的定义是:对于无向图,以图中某一点为出发点,沿着边依次访问图的其余节点,如果图是连通的,则从图的任一点出发按一定的顺序沿着某些边可以访问图中的所有节点,而且每个节点仅被访问一次,这一过程称为图的遍历。在网络上,一个节点可以和很多的节点连接,所以当进行网络拓扑结构发现的时候,有可能会访问已经被发现过的节点。因此,在遍历的时候,必须对每一个节点设置一个标志。当节点未被访问过时,相应的标志为0,否则,就置为1。

二、改进的网络拓扑算法

前面基于SNMP的拓扑算法在一定程度上是非常有效的,拓扑的速度也非常快。但它存在一个缺陷。那就是,在一个特定的域中,所有的子网的信息都依赖于设备具有SNMP的特性,如果系统不支持SNMP,则这种方法就无能为力了。还有对网络管理的不重视,或者考虑到安全方面的原因,人们往往把网络设备的SNMP功能关闭,这样就难于取得设备的MIB值,就出现了拓扑的不完整性,严重影响了网络管理系统的功能。针对这一的问题,下面讨论本文对上述算法的改进一基于ICMP协议的拓扑发现。

(一)ICMP报文的格式

ICMP被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。网际协议CIP没有出错报告或出错校正机制,它依靠网际控制报文协议(ICMP)模块来报告数据处理过程,井提供管理和状态信息。ICMP报文在传送时被封装在IP数据报中,使用IP协议发送,但ICEP不看作是高层协议的内容。

回应请求与应答均以IP数据报的形式在网间传输,假如成功地收到一个应答(应答中的数据拷贝与请求中的任选数据完全一致),不但说明信宿机可以到达,而且说明数据报传输系统的相应部分工作正常,至少信源机和信宿机的ICMP软件和IP软件工作正常,请求与应答经过中间网关也在正常工作。在许多TCP/IP实现中,用户命令Ping便是利用ICMP回应请求/应答报文测试信宿机的可到达性的。

(二)PING的实现

PING的主要操作是发送报文,并简单地等待回答。PING之所以如此命名,是因为它是一个简单的回显协议,使用ICMP响应请求与响应应答报文。PING主要由系统程序员用于诊断和调试。一般的,PING的功能有:

LOOP BACK PING用于验证TCP/IP软件的操作。

PIN G地址确定能否寻址物理网络设备。

PING远程IP地址验证能否寻址网络。

第4篇:icmp协议范文

 

关键词:简单网络管理协议(SNMP) 网络拓扑自动发现算法 网络管理

随着计算机网络的普及,人们对计算机网络的依赖性大大加强了。在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境。计算机网络管理系统就是应这样的需求而产生的。它对网络上的各种设备进行管理,通过监视和控制这些设备。及时地向管理人员报告网络状态,并且简化网络故障的处理,减少故障造成的损失,提高网络的服务质量和效率。在我国,人们开始认识到网络管理的重要性。

一、网络管理中传统的网络拓扑发现算法

网络拓扑的发现,实际上就是根据网络上节点连接情况,构造出来一个反映这种连接关系的图。网络节点可以是网关,也可以是子网:网关节点是与子网和其它网关节点相邻的节点;子网节点可被认为只与网关节点相邻,至少与它的缺省网关相邻。各子网通过各目的网关与其他子网通信,这些子网可以是一个局域网,也可以是某个局域网的一部分,它们都连接到网关的一个端口上。网关的端口可以连接子网,也可以同其他路由器相连。

主拓扑指的是反映出关键设备包括路由器,它们的接口和子网的连接关系,即路由器一路由器、路由器一子网、接口的关系。这些信息需要对网络进行搜索而获得:一般只需要对连接设备进行遍历就可以得到主拓扑结构。当前的网管软件都是通过对网络设备的MIB库进行访问,所以这种方法又被称为基于SNMP的拓扑发现。经过上述的遍历过程,可以得到网络拓拓扑图的整体构成,知道了网络主干通道情况。但是子网内部的具体设备以及连接状态尚不可知。这就需要依靠子网发现来做进一步的工作。子网发现完成的任务是确定子网内各网络设备的状态、类型以及网络接口。

遍历的定义是:对于无向图,以图中某一点为出发点,沿着边依次访问图的其余节点,如果图是连通的,则从图的任一点出发按一定的顺序沿着某些边可以访问图中的所有节点,而且每个节点仅被访问一次,这一过程称为图的遍历。在网络上,一个节点可以和很多的节点连接,所以当进行网络拓扑结构发现的时候,有可能会访问已经被发现过的节点。因此,在遍历的时候,必须对每一个节点设置一个标志。当节点未被访问过时,相应的标志为0,否则,就置为1。

二、改进的网络拓扑算法

前面基于SNMP的拓扑算法在一定程度上是非常有效的,拓扑的速度也非常快。但它存在一个缺陷。那就是,在一个特定的域中,所有的子网的信息都依赖于设备具有SNMP的特性,如果系统不支持SNMP,则这种方法就无能为力了。还有对网络管理的不重视,或者考虑到安全方面的原因,人们往往把网络设备的SNMP功能关闭,这样就难于取得设备的MIB值,就出现了拓扑的不完整性,严重影响了网络管理系统的功能。针对这一的问题,下面讨论本文对上述算法的改进一基于ICMP协议的拓扑发现。

(一)ICMP报文的格式

ICMP被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。网际协议CIP没有出错报告或出错校正机制,它依靠网际控制报文协议(ICMP)模块来报告数据处理过程,井提供管理和状态信息。ICMP报文在传送时被封装在IP数据报中,使用IP协议发送,但ICEP不看作是高层协议的内容。

回应请求与应答均以IP数据报的形式在网间传输,假如成功地收到一个应答(应答中的数据拷贝与请求中的任选数据完全一致),不但说明信宿机可以到达,而且说明数据报传输系统的相应部分工作正常,至少信源机和信宿机的ICMP软件和IP软件工作正常,请求与应答经过中间网关也在正常工作。在许多TCP/IP实现中,用户命令Ping便是利用ICMP回应请求/应答报文测试信宿机的可到达性的。

(二)PING的实现

PING的主要操作是发送报文,并简单地等待回答。PING之所以如此命名,是因为它是一个简单的回显协议,使用ICMP响应请求与响应应答报文。PING主要由系统程序员用于诊断和调试。一般的,PING的功能有:

LOOP BACK PING用于验证TCP/IP软件的操作。

PIN G地址确定能否寻址物理网络设备。

PING远程IP地址验证能否寻址网络。

PING远程主机名验证主机上某个服务器的操作。

实现PING的过程主要是:首先向目的机器发送一个响应请求的ICMP报文,然后等待目的机器的应答,直到超时。如收到应答报文,贝以报告目的机器运行正常,程序退出。

(三)traceroute的实现

在IP头的结构中,存在一个ip_ttl域,即生存时间(time to_live,TTL)。TTL参数用于测量数据报在网际存在多长时间。网络中的每个路由器都检查该域,如果TTL值为0,路由器就抛弃该数据报。路由器还必须对它处理的每个数据报的该域进行减I操作。在实际执行中,TTL域是一个反映跳段的值。所以,当数据报穿过一个IP节点(网关)时。TTL域中的值就减1。

traceroute的功能就是利用IP头中的TTL域。开始时信源设置IP头的TTL值为0,发送报文给信宿,第一个网关收到此报文后,发现TTL值为0,它丢弃此报文,并发送一个类型为超时的ICMP报文给信源。信源接收到此报文后对它进行解析,这样就得到了路由中的第一个网关地址。然后信源发送TTL值为1的报文给信宿,第一个网关把它的TTL值减为0后转发给第二个网关,第二个网关发现报文TTL值为0,丢弃此报文并向信源发送超时ICMP报文。这样就得到了路由中和第二个网关地址。如此循环下去,直到报文正确到达信宿,这样就得到了通往信宿的路由。

(四)网络拓扑的发现算法

具体实现的步骤:

1、于给定的IP区间,利用PING依次检测每个IP地址,将检测到的IP地址记录到IP地址表中。

2、对第一步中查到的每个IP地址进行traceroute操作,记录到这些IP地址的路由。并把每条路由中的网关地址也加到IP表中。

3、对IP地址表中的每个IP地址,通过发送掩码请求报文与接收掩码应答报文,找到这些IP地址的子网掩码。

4、根据子网掩码,确定对应每个IP地址的子网地址,并确定各个子网的网络类型。把查到的各个子网加入地址表中。

第5篇:icmp协议范文

关键词:拓扑发现;ICMP;SNMP

中图分类号:TP393.02 文献标识码:A文章编号:1007-9599 (2011) 20-0000-01

Network Topology Auto-discovery System Design and Implementation

Tan Jian

(Guilin University of Electronic Science and Technology Hechi College,Yizhou546300,China)

Abstract:The design is based on SNMP and other protocols of the network topology discovery algorithm,three switches and routers as gateways rapid discovery of network topology,as much as possible to find a complete network,and network overhead of the extra load and as much as possible small.

Keywords:Topology discovery;ICMP;SNMP

一、系统功能模块

从功能上看,网络拓扑自动发现系统由4个模块构成:一)主干网拓扑发现模块主要功能为获取主干网中路由器、子网之间的连接信息,将路由器地址放入路由队列,将子网地址放入子网队列,将连接信息放入连接队列;二)子网拓扑发现模块主要功能是获取所有的子网内的所有主机地址、掩码和子网地址;三)主干网拓扑生成模块主要功能是在主干网拓扑并获得了已装有了所有路由器地址的路由队列、装有所有子网地址的子网队列和装有连接信息的连接队列后,将信息进一步进行处理,使网络设备及其连接关系以图像的形式展示在屏幕上;四)子网拓扑生成模块的功能是在获得了已装有了所有路由器地址的路由队列、装有所有连接信息的连接队列和装有所有主机地址的主机队列后,将信息进一步处理,将指定子网内的主机及其连接关系以图像的形式展示在屏幕上。

二、研究解决途径

本算法采用异步的方式发送和接收ICMP回应应答包,提高了算法的性能和效率。图4.19表示了SNMP和ICMP的层次位置关系。

图1:网络管理的层次结构

三、网络拓扑自动发现算法

(一)子网与路由器发现算法描述

1.与网管所在子网直连的路由器检测算法。确定主机地址。以子网地址+1为第一个主机地址,依次加1,增加N台机器为止,这样得到了N个主机地址IP。

检查该IP是否在子网内。若IP&MASK=Net,在子网中该地址可能是子网中一台主机的地址。

回应的ICMP包如果包含在输入的IP中,该IP地址是一台活动的主机。

对于已检测出来的主机,用异步方式向每台主机的161号端口发送SNMP报文,如果有回应则表示该主机运行了SNMP。

对于已经检测出的SNMP主机,检查其MIB值sysServices,这是一个整型变量,假设其值为m。设L是ISO七层模型中的某一层,如果该主机在第i层提供了服务,则Li被赋予相应的层数(Li取值范围为1,2,3,4,7)

i=1为物理层,如中继器;i=2为链路层;i=3为网络层,如路由器;i=4为传输层,如主机;i=7为应用层,如应用程序。由于路由器提供链路层和网络层,因此m=2(2-1)+2(3-1)=6。如果某台SNMP主机的值为6,则它是要找的路由器。

2.子网和路由器的连接检测算法。通过SNMP GetNext操作获取路由表,表中有两项极为重要的MIB变量ipRouteType和ipRouteDest,它们分别表示路由类型和所要到达的目的网络地址,如果ipRouteType的值为3,则表示目的网络与路由器直接相连。因而只需找出对应的ipRouteType的值为3的目的网络地址即可。同时可利用ipAdEnt If Index作为索引,与In2terface组的If Index和If Type相结合来确定子网的网络拓扑类型。

(二)主机发现算法描述

本算法中用到两种报文:回应(echo)请求或回应应答;信宿机发回响应的回应应答。下图所示的“标识符”和“序号”用于匹配请求与应答。

算法如下:

把子网内所有主机加入链表,设置一次发送和接收间的最大延迟、链表循环次数最大值和检查接收栈的时间。遍历链表,链表空则转至a。若检查接收栈的时间到,则转至d。依次检查节点;若此时时间与发包时间差值大于延迟便转c,不然检查下一节点。若循环次数超过最大值,从链表中删除,加入不可到达主机链表。不然发送ICMP包,设置当前时间为发包时间,循环计数加1。检查接收栈是否为空,若空就返回b。否则检查回应包,从链表中删除相应节点,加入可达主机链表。

四、算法的实现

(一)ICMP包的发送和接收。(1)构造ICMP包,填充ICMP包头中某些域,如序号、标识等;(2)用SOCK-RAW类型创建套接字,调用函数为socket();(3)采取异步方式,用WSAAsyncSelect()函数注册FD-READ事件;(4)分别用sentto()和recvfrom()发送和接收ICMP包,在接收到ICMP包时还要进行检验和匹配操作。

(二)用SNMP++技术实现SNMP编程。SNMP++把复杂的WinSNMP的APl函数封装成一个个相关的C++类,从而大大简化了SNMP网络管理软件开发的复杂性。它把SNMP编程中的核心部分都面向对象化封装起来,因此程序员无需了解SNMP底层的机制,只需了解SNMP编程的流程即可快速开发出高效的SNMP程序。

参考文献:

[1]胡谷雨,张巍等.简单网络管理协议教程[M].电子工业出版社,2000

第6篇:icmp协议范文

LAN接口

列出支持的LAN接口类型:防火墙所能保护的网络类型,如以太网、快速以太网、千兆以太网、ATM、令牌环及FDDI等。

支持的最大LAN接口数:指防火墙所支持的局域网络接口数目,也是其能够保护的不同内网数目。

服务器平台:防火墙所运行的操作系统平台(如Linux、UNIX、Win NT、专用安全操作系统等)。

协议支持

支持的非IP协议:除支持IP协议之外,又支持AppleTalk、DECnet、IPX及NETBEUI等协议。

建立VPN通道的协议: 构建VPN通道所使用的协议,如密钥分配等,主要分为IPSec、PPTP、专用协议等。

可以在VPN中使用的协议:在VPN中使用的协议,一般是指TCP/IP协议。

加密支持

支持的VPN加密标准:VPN中支持的加密算法, 例如数据加密标准DES、3DES、RC4以及国内专用的加密算法。

除了VPN之外,加密的其他用途: 加密除用于保护传输数据以外,还应用于其他领域,如身份认证、报文完整性认证、密钥分配等。

提供基于硬件的加密: 是否提供硬件加密方法,硬件加密可以提供更快的加密速度和更高的加密强度。

认证支持

支持的认证类型: 是指防火墙支持的身份认证协议,一般情况下具有一个或多个认证方案,如RADIUS、Kerberos、TACACS/TACA

CS+、 口令方式、数字证书等。防火墙能够为本地或远程用户提供经过认证与授权的对网络资源的访问,防火墙管理员必须决定客户以何种方式通过认证。

列出支持的认证标准和CA互操作性:厂商可以选择自己的认证方案,但应符合相应的国际标准,该项指所支持的标准认证协议,以及实现的认证协议是否与其他CA产品兼容互通。

支持数字证书:是否支持数字证书。

访问控制

通过防火墙的包内容设置:包过滤防火墙的过滤规则集由若干条规则组成,它应涵盖对所有出入防火墙的数据包的处理方法,对于没有明确定义的数据包,应该有一个缺省处理方法;过滤规则应易于理解,易于编辑修改;同时应具备一致性检测机制,防止冲突。IP包过滤的依据主要是根据IP包头部信息如源地址和目的地址进行过滤,如果IP头中的协议字段表明封装协议为ICMP、TCP或UDP,那么再根据ICMP头信息(类型和代码值)、TCP头信息(源端口和目的端口)或UDP头信息(源端口和目的端口)执行过滤,其他的还有MAC地址过滤。应用层协议过滤要求主要包括FTP过滤、基于RPC的应用服务过滤、基于UDP的应用服务过滤要求以及动态包过滤技术等。

在应用层提供支持:指防火墙是否支持应用层,如HTTP、FTP、TELNET、SNMP等。服务在确认客户端连接请求有效后接管连接,代为向服务器发出连接请求,服务器应根据服务器的应答,决定如何响应客户端请求,服务进程应当连接两个连接(客户端与服务进程间的连接、服务进程与服务器端的连接)。为确认连接的唯一性与时效性,进程应当维护连接表或相关数据库(最小字段集合),为提供认证和授权,进程应当维护一个扩展字段集合。

在传输层提供支持:指防火墙是否支持传输层服务。

允许FTP命令防止某些类型文件通过防火墙:指是否支持FTP文件类型过滤。

用户操作的类型:应用层高级功能,如HTTP、POP3 。

支持网络地址转换(NAT):NAT指将一个IP地址域映射到另一个IP地址域,从而为终端主机提供透明路由的方法。NAT常用于私有地址域与公有地址域的转换以解决IP地址匮乏问题。在防火墙上实现NAT后,可以隐藏受保护网络的内部结构,在一定程度上提高了网络的安全性。

支持硬件口令、智能卡: 是否支持硬件口令、智能卡等,这是一种比较安全的身份认证技术。

防御功能

支持病毒扫描: 是否支持防病毒功能,如扫描电子邮件附件中的DOC和ZIP文件,FTP中的下载或上载文件内容,以发现其中包含的危险信息。

提供内容过滤: 是否支持内容过滤,信息内容过滤指防火墙在HTTP、FTP、SMTP等协议层,根据过滤条件,对信息流进行控制,防火墙控制的结果是:允许通过、修改后允许通过、禁止通过、记录日志、报警等。 过滤内容主要指URL、HTTP携带的信息:Java Applet、 JavaScript、ActiveX和电子邮件中的Subject、To、From域等。

能防御的DoS攻击类型:拒绝服务攻击(DoS)就是攻击者过多地占用共享资源,导致服务器超载或系统资源耗尽,而使其他用户无法享有服务或没有资源可用。防火墙通过控制、检测与报警等机制,可在一定程度上防止或减轻DoS黑客攻击。

阻止ActiveX、Java、Cookies、JavaScript侵入:属于HTTP内容过滤,防火墙应该能够从HTTP页面剥离Java Applet、ActiveX等小程序,及从Script、PHP和ASP等代码检测出危险代码或病毒,并向浏览器用户报警。同时,能够过滤用户上载的CGI、ASP等程序,当发现危险代码时,向服务器报警。

安全特性

支持转发和跟踪ICMP协议(ICMP ):是否支持ICMP,ICMP为网间控制报文协议。

提供入侵实时警告:提供实时入侵告警功能,当发生危险事件时,是否能够及时报警,报警的方式可能通过邮件、呼机、手机等。

提供实时入侵防范:提供实时入侵响应功能,当发生入侵事件时,防火墙能够动态响应,调整安全策略,阻挡恶意报文。

识别/记录/防止企图进行IP地址欺骗:IP地址欺骗指使用伪装的IP地址作为IP包的源地址对受保护网络进行攻击,防火墙应该能够禁止来自外部网络而源地址是内部IP地址的数据包通过。

管理功能

通过集成策略集中管理多个防火墙:是否支持集中管理,防火墙管理是指对防火墙具有管理权限的管理员行为和防火墙运行状态的管理,管理员的行为主要包括:通过防火墙的身份鉴别,编写防火墙的安全规则,配置防火墙的安全参数,查看防火墙的日志等。防火墙的管理一般分为本地管理、远程管理和集中管理等。

提供基于时间的访问控制:是否提供基于时间的访问控制。

支持SNMP监视和配置:SNMP是简单网络管理协议的缩写。

本地管理:是指管理员通过防火墙的Console口或防火墙提供的键盘和显示器对防火墙进行配置管理。

远程管理:是指管理员通过以太网或防火墙提供的广域网接口对防火墙进行管理,管理的通信协议可以基于FTP、TELNET、HTTP等。

支持带宽管理:防火墙能够根据当前的流量动态调整某些客户端占用的带宽。

负载均衡特性:负载均衡可以看成动态的端口映射,它将一个外部地址的某一TCP或UDP端口映射到一组内部地址的某一端口,负载均衡主要用于将某项服务(如HTTP)分摊到一组内部服务器上以平衡负载。

失败恢复特性:指支持容错技术,如双机热备份、故障恢复,双电源备份等。

记录和报表功能

防火墙处理完整日志的方法:防火墙规定了对于符合条件的报日志,应该提供日志信息管理和存储方法。

提供自动日志扫描:指防火墙是否具有日志的自动分析和扫描功能,这可以获得更详细的统计结果,达到事后分析、亡羊补牢的目的。

提供自动报表、日志报告书写器:防火墙实现的一种输出方式,提供自动报表和日志报告功能。

警告通知机制:防火墙应提供告警机制,在检测到入侵网络以及设备运转异常情况时,通过告警来通知管理员采取必要的措施,包括E-mail、呼机、手机等。

提供简要报表(按照用户ID或IP 地址):防火墙实现的一种输出方式,按要求提供报表分类打印。

第7篇:icmp协议范文

关键词:包过滤;访问控制列表;防火墙

中图分类号:TN915.08 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02

随着网络的迅速发展,各种各样的网络软件也随之出现,人们的生活和学习对网络的依赖也越来越多,但网络安全问题也接踵而来。防火墙是一种非常有效的网络安全模型,通过它可以隔离风险区域和安全区域的连接,同时不会妨碍人们对风险区域的访问,因此防火墙已经成为世界上用的最多的网络安全产品之一。包过滤技术是防火墙最基本的实现技术,它具有通用、廉价、有效等特点。在不增加软、硬件投资的情况下,利用路由器的访问控制列表来设置包过滤放火墙,可以实现防火墙的大部分功能,是一种增强网络安全的行之有效的方法。

1 包过滤技术基本原理

在网络中,所有的信息传输都是以包的方式来实现的。包过滤是指对通过网络的数据包进行 过滤操作,只有满足条件的数据包才能通过网络,包过滤设备可以是路由器、网桥或计算机 ,通常是包过滤路由器。

包过滤防火墙一般作用在网络层(IP层),故也称网络层防火墙(Network Lev Firewall)或IP过滤器(IP filters)。数据包过滤(Packet Filtering)是指在网络层对数据包进行分析、选择。通过检查数据流中每一个数据包的源IP地址、目的IP地址、源端口号、目的端口号、协议类型等因素或它们的组合来确定是否允许该数据包通过。防火墙检查每一条规则直至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默认规则。在包过滤防火墙中,广泛使用ACL(Access Control List,访问控制列表)来实现数据识别,流经包过滤防火墙的数据与ACL定义的规则进行匹配,并决定是转发还是丢弃这些数据包。

2 ACL访问控制列表

访问控制列表是为了对路由器或者防火墙处理的流量进行过滤而建立的规则,它在改善网络性能和加强网络安全等方面已经发挥出越来越重要的作用。以Cisco路由器为例,access-list(访问列表)最基本的有两种,分别是标准访问列表和扩展访问列表,二者的区别主要是前者是基于目标地址的数据包过滤,而后者是基于目标地址、源地址和网络协议及其端口的数据包过滤。

2.1 标准访问控制列表

标准访问控制列表检查路由的数据包的源地址,从而允许或拒绝基于网络、子网或主机的IP地址的所有通信流量通过路由器的出口。当我们要想阻止来自某一网络的所有通信流量,或者充许来自某一特定网络的所有通信流量,或者想要拒绝某一协议簇的所有通信流量时,可以使用标准访问控制列表来实现这一目标。

标准访问控制列表是最简单的ACL。它的具体格式如下:

access-list ACL号 permit|deny host ip地址

例如:access-list 10 deny host 192.168.1.1这句命令是将所有来自192.168.1.1地址的数据包丢弃。access-list 10 deny 192.168.1.0 0.0.0.255是对192.168.1.0/24这个网段进行过滤。

2.2 扩展访问控制列表

扩展访问控制列表既检查数据包的源地址,也检查数据包的目的地址,还检查数据包的特定协议类型、端口号等。扩展访问控制列表更具有灵活性和可扩充性,即可以对同一地址允许使用某些协议通信流量通过,也可以拒绝使用其他协议的流量通过。

扩展访问列表的具体格式如下:

access-list ACL号 permit|deny protocol source 源地址 destination 目的地址 operator operan established log

例如:access-list 101 deny tcp any host 192.168.1.1 eq www这句命令是将所有主机访问192.168.1.1这个地址网页服务(WWW)TCP连接的数据包丢弃。

3 访问控制列表的应用

访问控制列表的应用领域很广,包括流量控制、病毒过滤、设备管理和时间控制等方面,下面是应用ACL保护企业内部网络安全的两个案例。

3.1 禁止外部ICMP攻击

ICMP协议是传输层的重要协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。在企业网络中,我们希望保证正常的网络通信的同时屏蔽恶意的ICMP消息,可以通过设置如下的访问控制列表来实现:

(1)access-list 100 permit icmp any 路由器E0接口地址 echo。允许外网主机可以PING通我方路由器广域口地址,便于外网进行网络测试。(2)access-list 100 deny icmp any any echo。禁止外网主机发起的任何ICMP ECHO 报文到达我方网络主机,杜绝了外网主机发起的“端口扫描器Nmap ping操作”。(3)access-list 100 permit ip any any。允许所有的IP协议数据包通过,是保证不影响其他各种应用。(4)access-group 100 in。端口应用上设置在入方向进行应用,保证了我方网络主机可PING通外网任意主机,便于我方进行网络连通性测试。

3.2 用访问控制列表控制访问时间

为了保证员工的上班质量,许多企业需要对内部机器访问FTP服务器或者WWW服务器进行限制和管理,基于时间的ACL就比较适合这种对指定时间段或者指定服务的管理。例如在图1所示的网络环境中,只容许172.16.3.0网段的用户在周末访问172.16.4.13上的FTP资源,工作时间不能下载该FTP资源。可以利用访问列表做以下配置。

(1)time-range softer。定义时间段名称为workday。

(2)periodic weekend 00:00 to 23:59。定义具体时间范围,为每周周末(6,日)的0点到23点59分。可以使用periodic weekdays定义具体的工作日。

(3)access-list 101 deny tcp any 172.16.4.13 0.0.0.0 eq ftp time-range softer。设置ACL,禁止在时间段softer范围内访问172.16.4.13的FTP服务。

(4)access-list 101 permit ip any any。设置ACL,容许其他时间段和其他条件下的正常访问。

4 ACL技术局限性分析

由于ACL是使用包过滤技术来实现的,过滤的依据又仅仅只是第三层和第四层包头中的部分信息,这种技术具有一些固有的局限性,如无法识别到具体的人,无法识别到应用内部的权限级别等。因此,要达到端到端的权限控制目的,需要和系统级及应用级的访问权限控制结合使用。但将ACL应用到路由器上可以在不添加任何软硬件的条件下,起到保护内部网络安全,控制网络流量以及灵活管理内部网络的作用,所以这种方法还是非常值得应用和推广的。

参考文献:

[1]Cisco网络技术学院教程.北京人民邮电出版社,2004,7.

[2]诸烨.用ACL实现系统的安全访问控制.计算机应用与软件,2005,3.

[3]王华丽.访问控制列表在网络安全中的应用.电子科技,2007

[4]王芳.路由器访问控制列表及其实现技术研究.计算机工程与设计.2007

第8篇:icmp协议范文

关键词:网络管理 网间控制报文协议(ICMP) WBM

网络管理的目的就是确保一定范围内的网络及其网络设备能够稳定、可靠、高效地运行,使所有的网络资源处于良好的运行状态,达到用户预期的要求。过去有一些简单的工具用来帮助网管人员管理网络资源,但随着网络规模的扩大和复杂度的增加,对强大易用的管理工具的需求也日益显得迫切,管理人员需要依赖强大的工具完成各种各样的网络管理任务,而网络管理系统就是能够实现上述目的系统。

1 WBM 技术介绍

随着应用Intranet的企业的增多,同时Internet技术逐渐向Intranet的迁移,一些主要的网络厂商正试图以一种新的形式去应用M I S 。因此就促使了W e b ( W e b - B a s e dManagement)网管技术的产生[2]。它作为一种全新的网络管理模式—基于Web的网络管理模式,从出现伊始就表现出强大的生命力,以其特有的灵活性、易操作性等特点赢得了许多技术专家和用户的青睐,被誉为是“将改变用户网络管理方式的革命性网络管理解决方案”。

WBM融合了Web功能与网管技术,从而为网管人员提供了比传统工具更强有力的能力。WBM可以允许网络管理人员使用任何一种Web浏览器,在网络任何节点上方便迅速地配置、控制以及存取网络和它的各个部分。因此,他们不再只拘泥于网管工作站上了,并且由此能够解决很多由于多平台结构产生的互操作性问题。WBM提供比传统的命令驱动的远程登录屏幕更直接、更易用的图形界面,浏览器操作和W e b页面对W W W用户来讲是非常熟悉的,所以WBM的结果必然是既降低了MIS全体培训的费用又促进了更多的用户去利用网络运行状态信息。所以说,WBM是网络管理方案的一次革命。

2 基于WBM 技术的网管系统设计

2.1 系统的设计目标

在本系统设计阶段,就定下以开发基于园区网、Web模式的具有自主版权的中文网络管理系统软件为目标,采用先进的WBM技术和高效的算法,力求在性能上可以达到国外同类产品的水平。

本网管系统提供基于WEB的整套网管解决方案。它针对分布式IP网络进行有效资源管理,使用户可以从任何地方通过WEB浏览器对网络和设备,以及相关系统和服务实施应变式管理和控制,从而保证网络上的资源处于最佳运行状态,并保持网络的可用性和可靠性。

2.2 系统的体系结构

在系统设计的时候,以国外同类的先进产品作为参照物,同时考虑到技术发展的趋势,在当前的技术条件下进行设计。我们采用三层结构的设计,融合了先进的WBM技术,使系统能够提供给管理员灵活简便的管理途径。

三层结构的特点[2]:1)完成管理任务的软件作为中间层以后台进程方式实现,实施网络设备的轮询和故障信息的收集;2)管理中间件驻留在网络设备和浏览器之间,用户仅需通过管理中间层的主页存取被管设备;3)管理中间件中继转发管理信息并进行S N M P 和H T T P之间的协议转换三层结构无需对设备作任何改变。

3 网络拓扑发现算法的设计

为了实施对网络的管理,网管系统必须有一个直观的、友好的用户界面来帮助管理员。其中最基本的一个帮助就是把网络设备的拓扑关系以图形的方式展现在用户面前,即拓扑发现。目前广泛采用的拓扑发现算法是基于SNMP的拓扑发现算法。基于SNMP的拓扑算法在一定程度上是非常有效的,拓扑的速度也非常快。但它存在一个缺陷[3]。那就是,在一个特定的域中,所有的子网的信息都依赖于设备具有SNMP的特性,如果系统不支持SNMP,则这种方法就无能为力了。还有对网络管理的不重视,或者考虑到安全方面的原因,人们往往把网络设备的SNMP功能关闭,这样就难于取得设备的M I B值,就出现了拓扑的不完整性,严重影响了网络管理系统的功能。针对这一的问题,下面讨论本系统对上述算法的改进—基于ICMP协议的拓扑发现。

3.1 PING和路由建立

PING的主要操作是发送报文,并简单地等待回答。PING之所以如此命名,是因为它是一个简单的回显协议,使用ICMP响应请求与响应应答报文。PING主要由系统程序员用于诊断和调试实现PING的过程主要是:首先向目的机器发送一个响应请求的ICMP报文,然后等待目的机器的应答,直到超时。如收到应答报文,则报告目的机器运行正常,程序退出。

路由建立的功能就是利用I P 头中的TTL域。开始时信源设置IP头的TTL值为0,发送报文给信宿,第一个网关收到此报文后,发现TTL值为0,它丢弃此报文,并发送一个类型为超时的ICMP报文给信源。信源接收到此报文后对它进行解析,这样就得到了路由中的第一个网关地址。然后信源发送TTL值为1的报文给信宿,第一个网关把它的TTL值减为0后转发给第二个网关,第二个网关发现报文TTL值为0,丢弃此报文并向信源发送超时ICMP报文。这样就得到了路由中和第二个网关地址。如此循环下去,直到报文正确到达信宿,这样就得到了通往信宿的路由。

3.2 网络拓扑的发现算法具体实现的步骤:

(1)于给定的IP区间,利用PING依次检测每个IP地址,将检测到的IP地址记录到IP地址表中。

(2)对第一步中查到的每个IP地址进行traceroute操作,记录到这些IP地址的路由。并把每条路由中的网关地址也加到IP表中。(3)对IP地址表中的每个IP地址,通过发送掩码请求报文与接收掩码应答报文,找到这些IP地址的子网掩码。

(4)根据子网掩码,确定对应每个IP地址的子网地址,并确定各个子网的网络类型。把查到的各个子网加入地址表中。

(5)试图得到与IP地址表中每个IP地址对应的域名(Domain Name),如具有相同域名,则说明同一个网络设备具有多个IP地址,即具有多个网络接口。

(6)根据第二步中的路由与第四步中得到的子网,产生连接情况表。

4 结语

本文提出的ICMP协议的拓扑发现方法能够较好的发现网络拓扑,但是它需要占用大量的带宽资源。本系统进行设计时,主要考虑的是对园区网络的网络管理,所有的被管理设备和网管系统处于同一段网络上,也就是说,系统可以直接到达被管理的网络,所以对远程的局域网就无能为力了。在做下一步工作的时候,可以添加系统对远程局域网络的管理功能。

参考文献

[1] 晏蒲柳.大规模智能网络管理模型方法[J].计算机应用研究.2005,03.

[2] 周杨,家海,任宪坤,王沛瑜.网络管理原理与实现技术[M].北京:清华大学出版社.2000.

第9篇:icmp协议范文

关键词:IP网络;可用带宽;背景流量;瓶颈带宽

中图分类号:TP393.01 文献标识码:A文章编号:1007-9599 (2011) 13-0000-02

Technical Analysis of Network Bandwidth Measurement

Li Yan1,Tian Liang1,Wang Yan2

(1.School of Computer and Information Engineering,Xinxiang College,Xinxiang453003,China;2.Xinyang Vocational and Technical College,Xinyang464000,China)

Abstract:The measurement of change package of algorithms and packet/packet queue measurement algorithm theory analysis resulted in their different environments in the availability,accuracy,robustness,timeliness of analysis,indicating the existence of flaws and problems.Integration of the two types of algorithms,using transmission control protocol packets encapsulated detection algorithm to solve the Internet Control Message Protocol dependence,the use of transmission control protocol feedback mechanisms to measure the algorithm only deploy software at the sending end.

Keywords:IP network;Available bandwidth;Background traffic;Bottleneck bandwidth

一、背景

Internet对信息化的普及和发展起到了巨大的推动作用,但Internet并没有一个正规统一的商业模式,网络也缺乏有效的管理和运营手段,存在服务质量、信息安全和网络管理等诸多问题。由于我国互联网现阶段的情况,马上改善基础设施并不现实,要解决以上这些难题,非常重要的一点就是能够获得对网络状态准确、详尽的了解,在现有网络条件的基础上,使得有效带宽得到充分的利用。

综上所述,在IP网络中采用网络瓶颈带宽测量技术显得尤为重要,可以实现[1][2]:

1.网络实时监控:在进行网络测量的同时实时获取网络当前的运行状态,了解网络中的各种性能指标;在网络发生异常或出现故障之前给出分析和预测,并向网络管理员发出警报,与入侵检测系统IDS、IPS更好的协同工作,避免网络拥塞的出现和网络蠕虫病毒的侵袭。

2.网络的科学规划、优化和合理设计:通过对网络带宽进行测量所得到的数据进行分析,获取网络流量分布、数据报文分布、协议分布等特征,对获取的数据进行收集处理,为网络的科学规划、设计、路由策略的优化等方面提供依据。

3.提供网络增值服务:通过对业务流占用网络带宽的分析、统计,可以获得并分析网络特征和用户使用的偏好,进而开发和规划新的网络应用和业务平台,开发增值服务,从而进一步满足用户的需求。

4.适用不同情况的资费标准:通过对用户上网时间、流量、网络业务流等参数的数据分析,可以根据上网时间段、使用带宽的容量、服务质量等方面实行更加灵活多样的资费标准。

二、VPS测量算法

VPS变包测量技术[3][4][5]最早由Steve Bellovin与Van Jacobson提出,用于测量链路的瓶颈带宽。VPS的基本原理是在发送方发送大量的探测数据包,经过链路中的路由节点到达接收方。探测包经过路由节点时,记录路由器收到这些数据包的响应时间,由此计算出带宽容量。

(一)算法理论分析。VPS测量算法在发送大小一定的若干个数据包给传输路径上的路由节点时,假设发送的数据包中至少有一个数据包和产生的ICMP返回信息都没有排队时延,则实际测量的RTT只包含传输时延和传播时延两部分,那么对于给定大小为L的包,总共传输i跳,其最小的RTT 就可以由公式1计算得出:

(式1)

其中, 为第j跳的带宽容量, 为数据包在链路j上的传输时延, 为到达第i跳前所产生的延迟, 表示为单位长度的数据包在通过链路j时所产生的时延,由于链路容量是物理容量,即为链路的吞吐量。通过发送不同大小的数据包,可通过数学原理估算出 的值。对于每一跳i,重复测量最小的RTT值,据此可由公式2估计出每跳的带宽容量。

(式2)

VPS通过以上过程可以计算出每跳的链路带宽容量,通过对数据收集比对,其中各段链路中容量最小的链路带宽即为整条路径的路径带宽容量,即如公式3所示:

(式3)

(二)影响测量精确度的原因分析。通过上面的理论分析,可以发现,影响VPS算法测量的几个主要因素如下:

1.探测包大小、发送频率。探测包长度如果过小,在其还没有到达接收方就可能被路由节点丢弃或被排队,影响测量精度;而探测包长度如果过大,则会增加探测包本身通过链路时所产生的传输时延,同样也会对测量精度产生影响。

2.背景流量。当网络中存在背景流量时,则探测数据包和其他业务流共享带宽。当网络出现拥塞或有高优先级的业务流存在时,探测包通过路由节点时可能会被排队,产生排队时延,由此影响RTT值的准确度,进而影响最终的测量精度。

3.中间设备。当网络路径中存在存储转发的二层设备时,这些二层设备会对数据包进行存储转发,由此产生等待时延,可并不会发送ICMP协议的回应报文。同样如果网络中的中间设备对ICMP协议进行过滤或限速处理的话,都会影响最终的测量精度。

4.路径的对称性。VPS算法主要的测量参数是路径往返时间RTT,若探测路径与返回路径不一致,则所得的RTT就不是实际的路径返回时间,由此产生较大的误差。

(三)算法优缺点分析。VPS算法属于单端测量,即在测量时只需要在发送端部署软件即可。基于上述的分析可以看出:算法的实现依赖于中间节点对ICMP协议的支持,当中间节点对ICMP协议数据包实行丢弃或限速策略时,算法测量精度将大大下降;在测量时需要发送大量的探测包,占用网络带宽;算法是逐段测量链路的带宽容量,最后对数据收集进行比对得出瓶颈带宽,测量时间较长;后一个链路的测量结果要依赖于前面链路的测量结果,容易产生误差累积。

三、PPTD包对/包队列测量算法

包对技术最初是由Jacobson、Keshav和Bolot小组共同完成的。包对法是非常经典的一种测量方法,可以说,目前绝大多数的带宽测量都是对包对法的改进。

(一)算法理论分析。VPS算法需要发送探测报文等待接收方回应后通过计算RTT时间来测量带宽,而PPTD算法是利用数据包在传输过程中所形成的时间间隔来测量带宽。发送方发送若干对数据包对给接收方,每对数据包都由两个长度相等的背靠背数据包组成。在特定的链路中,两个数据包之间的距离指两个包在链路上传输时,最后一个比特位之间的距离。

图1:包对测量方法原理图

图1描述了一个数据包对中的两个数据包在通过链路i时前后的时间间隔变化情况。设数据包对的长度为L,经过的路由跳数为h,所经过的第i跳链路的带宽为 ,则包对经过 所需的时间间隔 。设在进入链路前两数据包之间的时间间隔为 ,通过链路后的时间间隔为 ,可由公式4计算得出。

(式4)

数据包对在通过链路i时,会产生传输时延 ,当 的值小于 时,说明两个数据包在通过链路i时并没有产生排队时延,由此当数据包离开链路i时, 。而当 的值大于 ,说明数据包在通过链路i时,产生了排队时延,由此造成包对之间的距离增大, 。

当数据包对经过最后一条链路到达接收端时总的时间间隔可由公式5计算得出。

(式5)

其中C就是这条路径端到端的带宽,也就是我们平常说的瓶颈带宽。那么我们就可以通过接收端测得的 的值估算出 。

包队列技术是包对技术的改进和扩展,将一对背靠背的数据包对扩展到多个背靠背的数据包,形成一个队列,测量的基本思想是一致的。

(二)影响测量精确度的原因分析。通过上面的理论分析,可以发现,影响PPTD算法测量的几个主要因素如下:

1.背景流量。当网络中存在背景流量时,包对之间的时间间隔就不在仅仅的受传输时延的影响,因为背景流量的存在会造成数据包在路由设备上产生排队时延,由此无法准确的估算出 值的大小。

2.网络拥塞造成探测包丢失。PPTD算法的实现是以估算背靠背数据包之间的时间间隔为基础的,如果数据包对在链路上传输时,任意一个数据包对或者全部发生丢包现象,则PPTD就无法在进行带宽测量。

3.数据包对的数量。通过采用包队列的测量方法,发送多组数据包对,利用统计学原理来过滤掉误差较大的测量样本,可以减小背景流量对测量结果造成的影响,但这也不能完全解决问题。

(三)算法优缺点分析。PPTD算法属于双端测量,在测量时发送方和接收方都需要部署软件,同时还要保证时间的同步;算法只需要了解路径的单向延迟,测量结果与路径的对称性无关;PPTD不依赖于ICMP协议,可以在应用层实现;测量时发送的背靠背数据包相对较小,占用的网络带宽也相对少一些;无需了解每段链路的带宽容量,测量时间短;测量时每次采用的结果之间相互独立,互不干扰,不存在误差积累的问题。

四、新模型的提出

在广域网的测量工作中,把VPS算法和PPTD算法结合起来,取长补短,设计一种新型的测量模型。这种模型采用TCP协议作为探测数据包的封装,这样就可以有效地避免了VPS算法过于依赖ICMP协议而无法通过广域网中有些路由器的问题,利用TCP协议三次握手的机制来收集返回信息,用以进行带宽测量,这样就可以解决PPTD必须采用双端配置的问题。

但在实际的广域网环境中网络情况比较复杂,采用TCP协议也可能会出现以下问题:

1.TCP协议存在贪婪流的问题。改进方法:用慢启动算法启动并使传输速度达到极限值,然后降低增加速度,改为线性增加传输速度,当探测到网络中出现拥塞即发送数据包超时,将极限值减半,并且重新使用慢启动算法。

2.抖动问题也是使用TCP协议不可避免要碰到的问题。改进办法:采用大小一致的数据包,并且设定每个数据包的大小均为MTU最大传输单元所要求的1500字节。这样可以使每个测量数据包的传输都能平衡、高效,尽可能减少传输过程中的排队时间。

3.进行TCP传输时,窗口大小的确定。改进办法:数据的传输速率主要由TCP协议的滑动窗口大小决定,设定接收窗口保持最大值状态,尽可能避免在接收方出现因为窗口过小而造成的丢包现象。

五、总结与展望

虽然本文对主流的网络带宽测量算法进行了研究,并且对其在各种不同网络环境下的工作情况进行了实验分析,但从理论分析和实验数据的结果上可以看出目前现有的技术还都存在较大的缺陷。目前测量的数据相对准确的都是进行瓶颈带宽测量,而更为重要的参数可用带宽容量一直都没有得到较好的解决。因此,关于网络带宽测量还有很多工作要做,对两种典型的算法进一步提炼,吸取其中值得借鉴的思想,进一步改进和完善文中最后提出的新的测量模型。

参考文献:

[1]刘湘辉.IP网络带宽测量的模型与算法的研究[D].[博士学位论文].长沙:国防科学技术大学,2005

[2]杨帆.可用带宽主动测量算法的研究[D].[硕士学位论文].北京:北京邮电大学,2008

[3]M.Mathis,M.Allman.A Framework for Defining Empirical Bulk Transfer Capacity Metrics.RFC 3148,2001,162-198

[4]魏蔚,董亚波,鲁东明,金光.低速率TCP拒绝服务攻击的检测响应机制[J].浙江大学学报(工学版),2008,36(5):757-762