首页 > 文章中心 > icmp协议

icmp协议

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇icmp协议范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

icmp协议

icmp协议范文第1篇

关键词:单片机;I2C总线协议;EEPROM;SCL;SDA

中图分类号:TP391文献标识码:A文章编号:1009-3044(2010)18-4888-02

The Communication Technology Based on I2C Bus Protocol between the Single Chip Processor and EEPROM

LI Jing1, WANG De-xing2, LI Xing-hui1

(1.College of Computer Engineering, Qingdao Technological University, Qingdao 266033, China; 2.Institute of Modern Communication Technology of Qingdao Technological University, Qingdao 266033, China)

Abstract: This article introduces the principle, working mode and mode of data transmission of I2C Bus, elaborated on the specific process of EEPROM read and write operations. And then specifically describe the communication between the STC MCU and EEPROM for an application example. Pointed out the problem which should pay attention to in application. Finally, proposed the future prospects for the I2C device development.

Key words: The single Chip Processor; I2C Bus Protocol; EEPROM; SCL; SDA

在现代电子系统中,一个系统中有众多的IC需要进行相互之间以及与外界的通信。元件与芯片之间短距离通信的物理线路往往会比较多,这样不仅增加了硬件系统设计的难度,而且也不利于系统的稳定性,为了提高硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的、简单的双向两线串行总线I2C,用于连接微控制器及其设备。

I2C总线自从出现以后,得到了广泛的应用,近年来,各公司设计制造了很多种的支持I2C总线的器件,而且I2C总线的规范也得到了扩展。

1 I2C总线的工作原理、工作方式、数据传送格式

I2C总线采用二进制传输,一根是数据线SDA,另一根是时钟线SCL,所有的I2C器件都连接在同名端的SDA和SCL上,每一个器件都有唯一的地址。

I2C总线支持多主和主从两种工作方式。

多主方式,即总线上可以有多个主机的工作方式。I2C总线需通过硬件和软件仲裁主机对总线的控制权。在主从工作方式中,系统中只有一个主机,总线上的其它器件都是具有I2C总线接口的从器件,总线上只有主机对I2C总线从器件的读写访问,没有总线的竞争等问题。

I2C总线上进行一次数据传输的通信格式如下:

1)起始信号

当SCL为高电平,数据线SDA出现由高到低的电平变化是,启动I2C总线。

2)寻址信号

主机发送了起始信号之后,再发寻址信号,以选择从器件。器件地址有7位和10位两种,这里主要介绍7位地址寻址方式。寻址信号由一个字节构成,其中高7位为地址位,最低位为方向位,用来表明主机与从器件的数据传送方向。方向位为“0”时,表明是主机对从器件的写操作,方向位为“1”时,表明是主机对从器件的读操作。

3)数据传输

主机发送寻址信号并得到从器件应答后,就可进行数据传输,每次一个字节,但每次传输都必须在得到应答信号后再传送下一字节。

4)应答信号

I2C总线协议规定,在数据传输时,包括地址及命令字,每传送一个字节数据后,都要有一个应答信号以确定数据传送的是否正确。I2C总线上第9个时钟脉冲对应于应答位。相应数据线上低电平时为“应答”信号,高电平时为“非应答”信号。当主机为接收设备时,主机对最后一个字节不应答,以向发送设备表示数据传输结束。

5)停止信号

当全部数据传送完后,主机发停止信号,即在SCL位高电平期间,SDA上产生一个上升沿信号。

2 EEPROM芯片FM24C32概况

FM24C32是美国仙童公司推出的具有I2C串行接口的EEPROM,它提供了32kbit存储容量,它有很高的可靠性,数据保存时间长达40年。

FM24C32芯片的基本操作包括写操作和读操作,写操作是主机向FM24C32写数据,可有两种方式:写字节和写页面。

在一次写字节操作中,主机向FM24C32写入启动信号和芯片寻址信号后,将会收到FM24C32给出的低电平应答信号,然后继续向FM24C32写入1字节的EEPROM内部地址寻址字节(Slave Address),内部地址寻址字节也称器件的控制字节,其中高四位作为器件类型识别符(不同类型的芯片定义不同,EEPROM一般为1010),接着三位为片选位,最后一位是读写位,当读写位为“1”时为读操作,为“0”时为写操作。在收到FM24C32的低电平应答信号后,主机继续向FM24C32写入两个字节的EEPROM内部地址寻址字节,收到FM24C32的应答信号后,主机向FM24C32写入数据,数据传送完毕后主机发结束信号终止此次写字节操作,FM24C32收到结束信号后,便进入了内部写周期,在此期间FM24C32对外界输入不作响应,如图1所示。

写页面的过程和写字节十分相似,也是由启动信号、芯片寻址字节、一个字节的内部地址寻址字节、数据字节、结束信号和FM24C32的应答信号组成,所不同的是写页面的一个字节的内部地址寻址字节是起始地址,在写完1个字节的数据后还能继续向FM24C32中写入多个字节,每写入一个字节FM24C32产生一个应答信号,内部地址指针累加1。

读操作:用于主机从FM24C32读取数据,读操作的过程与写操作类似,只是芯片寻址字节的R/ 位不同。读操作有三种方式:当前地址读、任意地址读、连续读。在读当前地址内的数据时,FM24C32内部的地址指针会指向最后一次读写操作的地址,读命令就是从此地址内读出数据,并将内部的地址指针累加1,向FM24C32写入启动信号和芯片寻址字节后,主机将收到FM24C32给出的应答信号和一个字节的数据,收到数据后主机向FM24C32写入结束信号。具体过程如图2所示。

任意地址读用于读取FM24C32内的任一地址的数据,在读之前,主机必须先进行一次“空写”操作,即给出起始信号和芯片寻址字节,并给出所读单元的字地址。收到应答信号后,再用读当前地址内的数据方式从中读出数据,连续读可由当前地址读或任意地址读启动,读第一个字节的操作与前两种方式相同,不同的是此时主机会做应答,表示还要接收数据,FM24C32每收到一个应答就会输出一个数据,直到主机不再应答或产生停止条件为止。

3 STC单片机通用I/O端口作为I2C总线接口

选用STC11F16XE单片机的P2^1作为SCL串行时钟线,P2^2作为SDA串行数据线,两者都需要上拉电阻接至正电源,以保证在总线空闲期间内SCL、SDA均为高电平。A0~A2为片选地址引脚,当有多个EEPROM时,通过芯片地址来选择当前I2C总线上工作的芯片,因此这三个引脚必须接Vss或Vcc来确保在多EEPROM下对每个EEPROM的选择。WP为写保护引脚,该引脚接Vss可以对FM24C32芯片正常读写。

4 结束语

由于I2C总线硬件结构简单,在智能控制、单芯片控制、LCD驱动器、远程I/O控制,尤其是在日益流行的视听系统、多媒体系统、家庭影院得到了广泛应用,已经成为了一种工业标准,相信随着数字化时代的飞速发展,I2C器件一定会有更广阔的发展前景,一定会得到更好的应用。

参考文献:

[1] 戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006(4):399-407.

[2] 苏建志,王冰峰.I2C总线及其应用[J].现代电子技术,2004(22).

[3] 张志伟,张灵,王爱乐.I2C总线原理及其通信的初步实现[J].机械管理开发,2004,4(2).

[4] 赵辉,董德存.I2C总线技术及其应用实例[J].微型电脑应用,2005(4).

icmp协议范文第2篇

Windows操作系统谁都知道比较危险,原因就是漏洞实在很多。单靠打补丁就已经足够烦恼了,要是万一被黑客盯上或者病毒破坏那后果就更严重了。往往利用系统自身的缺陷来进行各种入侵向来就是黑客常得手的重要途径。随着宽带互联网的普及,家家户户使用网络已经渐渐增多。由此带来的安全问题也威胁着计算机的安全。懂得网络的人都知道我们常用Ping命令来检查网络是否畅通,可是这个Ping也能给Windows系统带来严重的后果,那就是Ping入侵即是ICMP(Internet Control and Message Protocal是因特网控制消息错误报文协议)入侵,原理是通过Ping大量的数据包使得计算机的CPU使用率居高不下而崩溃,通常在一个时段内连续向计算机发出大量请求而导致CPU处理不及而死机。

二、防范措施

步骤1:在电脑桌面,右键点击“网上邻居属性本地连接属性Internet协议(TCP/IP)属性高级选项-TCP/IP筛选-属性”。

步骤2:你看到一个窗口是关于“TCP/IP筛选”的,先点击选中“启用TCP/IP筛选(所有适配器)”。然后分别在“TCP端口、UDP端口和IP协议”的添加框上,点击“只允许”,再按添加按钮,然后在跳出的对话框输入端口,通常我们用来上网的端口是80、8080,而邮件服务器的端口是25、110,FTP的端口是20、21,同样地进行UDP端口和IP协议的添加。

步骤3:打开“控制面板管理工具本地安全策略”,然后右击“IP安全策略,在本地机器”选“管理IP筛选器和IP筛选器操作”,在管理IP筛选器和IP筛选器操作列表中添加一个新的过滤规则,名称输入“防止ICMP攻击”,然后按添加,在源地址选任何IP地址,目标地址选我的IP地址,协议类型为ICMP,设置完毕。

步骤4:在“管理筛选器操作”中,取消使用“添加向导”,添加,在常规中输入名字“Deny的操作”,安全措施为“阻止”。这样我们就有了一个关注所有进入ICMP报文的过滤策略和丢弃所有报文的过滤操作了。

步骤5:点击“IP安全策略,在本地机器”,选择“创建IP安全策略下一步输入名称为ICMP过滤器”,通过增加过滤规则向导,把刚刚定义的“防止ICMP攻击”过滤策略指定给ICMP过滤器,然后选择刚刚定义的“Deny的操作”,右击“防止ICMP攻击”并启用。

icmp协议范文第3篇

引言

Internet现已成为社会重要的信息流通渠道。如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。可以预言,嵌入式设备与Internet的结合代表着嵌入式系统和网络技术的真正未来。随着IPv6的应用,设备都可能获得一个全球唯一的IP地址,通过IP地址和互联网相连成为一个网络设备。但是传统的TCP/IP协议在实现实时性方面做得不够好,它把大量的精力花在保证数据传送的可靠性以及数据流量的控制上。而在实时性要求比较高的嵌入式领域中,传统的TCP/IP不能满足其实时要求。另外,传统TCP/IP的实现过于复杂,需占用大量系统资源,而嵌入式应用的系统资源往往都很有限。因此,需要把传统TCP/IP在不违背协议标准的前提下加以改进实现,使其实现性得到提高,占用的存储空间尽可能少,以满足嵌入式应用的要求。

在大型企业自动化系统中,上层企业管理层和生产监控层一般采用的都是以太网和PC机,而在下层车间现场都是采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡和并行打印口EPP接口卡来实现。这种连接方式成本高,开发周期长。针对这些情况,本文提出了一种单独的嵌入式CAN-以太网网关互连系统的设计方案,成功地实现以太网和现有的CAN总线网的直接数据传输。

1 异构网络互联系统结构设计

CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层就要通过一种数据网关。

这里设计了一个SX52网关,用于CAN总线与以太网的互连。图1所示的系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关和以太网信息管理终端(如监控平台和网络数据库等)。以太网信息管理终端与CAN总线上的CAN节点通过Ethernet、SX52网关、CAN总线相互通信,其中SX52网关起核心异构网络的互连作用。

协议转换是异构网络互连的技术关键和难点。协议转换一般遥相呼应采用分层转换的方法,自低向上逐层进行。目前互连大都是在网络层或网络层展开的,因而必须对互连层以下各层协议逐层向上转换。这种转换方法的依据是协议分层的基本原理,即低层支持高层,高层调用低层,低层断开连接后,高层连接也随之断开,但高层断开连接却不会影响低层。从网络的分层结构上来看我们设计的互连系统具有如图2所示的分层结构。以太网上运行TCP/IP协议,它具有应用层、传输层、网络层以太网数据链路层和物理层;CAN总线具有应用层、数据链路层和物理层,其中应用层由用户自己定义,数据链路层和物理层由CAN协议所定义;SX52数据网关具有物理层、数据链路层和应用层,其应用层也就是Ethernet与CAN的信息数据交换层,SX52微控制器在此层相互解释并转发这两种不同协议的数据。

在本设计中,SX52网关被设计成了一个透明数据网关。也就是在以太网应用层构建和解析完整的CAN协议数据包。CAN协议数据包作为TCP/IP网络的应用层的数据进行传输。对通信数据的具体实际意义不做任何解释。

透明式网关由通信处理器、CAN总线控制器和以太网控制器三个部分组成。其中SX52单片机为核心处理器,实现CAN控制网络与以太网之间的协议转换。以太网信息管理 层的控制指令发送到嵌入式透明SX52网关,经过它将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明SX52网关,再通过网关协议转换程序将CAN协议数据封装成TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。

2 SX52中TCP/IP协议栈的设计

按照层次结构思想,对计算机网络模块化的研究结果是,形成了一组从上到下单向依赖关系的协议栈(protocol stack),也叫协议族。在标准的TCP/IP协议族中有很多协议。这里SX52中TCP/IP协议栈层次结构如图3所示。

2.1 SX52 ARP协议的设计与实现

地址解析协议ARP(Address Resolution Protocol)可以实现逻辑地址到物理地址的动态映射。它提供了一种使以太网络节点可以传输一个IP数据包到目的地址的映射机制。

在SX52中,ARP协议是通过一个“IP地址对应以太网地址”的单登记实现的。当远程主机需要知道它的物理地址时,远程主机会向它发送ARP请求。这时它就会响应这个远程主机的请求,告诉对方自己的物理地址。当然,当应用层需要传输IP数据包时,SX52 ARP协议也可以请求远程目的物理地址。

    要传输的Internet数据包在以太网控制器的发送缓冲区中被构建,它使用最近接收到的数据包的目的以太网地址作为发送数据包的目的地址。当然,这可能不是正确的以太网地址,因此,在实际发送数据包之前,ARP协议将检查发送数据包中的IP地址是否存在于ARP核中。如果发送数据中包中的IP地址在这个核中,在以太网发送缓冲区中的数据包将使用ARP核中的以太网地址更新;如果不在,ARP协议将发送一个ARP请求包,然后等待一个应答。一旦这个ARP应答接收到,这个ARP核将使用刚接收到的目标以太网地址更新,接着,等待发送的数据包也将使用这个以太网地址更新,然后被发送出去。如果发送的ARP请求包没有应答,导致ARP定时器超时,这时等待发送的数据包将被废弃,正常的协议栈继续运行。使用的变量有:ARP核中的IP地址{hostlIP3,hostlIP2,hostlIP1,host1IP0};ARP核中的以太网物理地址{host1Eth0,host1Eth1,host1Eth2,host1Eth3,host1Eth4,host1Eth5};ARP协议的定时器{arpTimerMSB,arpTimerLSB}等。使用涉及的函数有:ARPInit(),ARPCheckCache(),ARPSendResponse(),ARPUpdateEthAddr(),ARPCheckIfIs(),ARPCompare4(),ARPSendStPacket(),ARPSendCommon(),ARPSendRequest()。

2.2 SX52 IP协议的设计与实现

IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。本设计中的IP协议是针对特殊的应用环境下的合理简化。CAN总线的控制网络是一种短帧(每个数据帧为8字节)的实时网络,所以,IP数据包无须分片(MF=DF=0),同时,设置IP为服务类型为一般类型,其头长为20字节,寿命TTL设置为64。使用的变量有:目的IP地址{remoteIP3,remoteIP2,remoteIP1,remoteIP0};源IP地址{myIP3,myIP2,myIP1,myIP0};IP校验和{ipCheckSumMSB,ipCheckSumLSB};IP数据包长度{ipLengthMSB,}ipLengthLSB};上层使用的协议ipProtocol,IP标识{ipIdentMSB,ipIdentLSB}。使用涉及的函数有:TCPIPInit(),CheckIPDatagram(),CheckIPDestAddr(),IPStartPktOut()等。

2.3 SX52 ICMP协议的设计与实现

为了让互联网中的路由器报告或提供有关意外情况的信息,在TCP/IP协议系列中加入了一个专门用于发送差错报文的协议——互联网控制报文协议ICMP(Internet Control Message Protocol)。ICMP是IP的一部分在每个IP实现中都必须用到它。像其它所有的通信业务一样,ICMP报文是放在一个IP数据报的数据部分中传送的。ICMP报文的最终目的不是应用程序或目的机器上的用户,而是该机上处理它的Internet协议软件模块。也就是说:Internet控制报文协议允许路由器向其它路由器或主机发送差错或控制报文;ICMP在两台主机的Internet协议软件之间提供通信。

每个ICMP报文都以相同的3个字节开始:1个8位整数的报文类型(TYPE)字段用来识别报文,1个8位代码(CODE)字段提供有关报文类型的进一步信息,1个16位校验和字段。此外,ICMP报文还总是包括产生问题的数据报首部及其开头的64位数据。

ICMP使用IP来传送每一个差错报文。当路由器有一个ICMP报文要传递时,它会创建一个IP数据报并将ICMP报文封装其中,也就是说,ICMP报文被置于IP数据报的数据区中,然后这一数据报像通常一样被转发。即整个数据报被封装进帧中进行传递。

每一个ICMP报文的产生总是对应于一个数据报。路由器将一个ICMP报文将回给产生数据报的主机。在这里,只实现了ICMP的回应请求/应答服务,主要用于PING程序测试通信链路的畅通性,即只处理接收的报文类型为0x08的ICMP帧,发送的ICMP报文类型为0x00。它没有自己专有的变量,涉及的函数也只有ICMPGenCheckSum()和ICMPProcPktIn()。

2.4 SX52 UDP协议的设计与实现

UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性,它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。由于缺乏可靠性,我们似乎觉得要避免使用UDP,而使用一种可靠的协议,如TCP。但分析发现,UDP在我们的互连设计中有很多的优点:其一,UDP协议传输效率高,无须TCP通信前的连接开销;第二,UDP协议简单,无须复杂的状态机传输机制,可以很好地避免SX52网关死机复位后由于状态不一致而无法正常通信,且上层协议又很难发现的危险。因此,可以使用UDP来实现通信(避免TCP连接的开销),而让许多需要的特征(如动态超和重传、拥塞避免、查错等)放置在应用层设计和实现。使用的变量有:

UDP接收数据报的源端口{udpRxSrcPortMSB,udpRxSrcPortLSB};

UDP接收数据报的目的端口{udpRxDestPortMSB,udpRxDestPortLSB};

UDP接收数据报的长度{udpRxDataLenMSB,udpRxDataLenLSB};

UDP发送数据报的源端口{udpTxSrcPortMSB,udpTxSrcPortLSB};

UDP发送数据报的目的端口{udpTxDestPortMSB,udpTxDestPortLSB};

UDP发送数据报的长度{udpTxDataLenMSB,udpTxDataLenLSB}。

设计的相关函数有:UDPAppInit(),DPGenCheckSum(),UDPStartPktOut(),UDPProcPktIn(),UDPEndPktOut(),UDPAppProcPktIn(),UDPAppProcPktOut()等。

2.5 SX52 TCP协议的设计与实现

传输控制协议TCP(Transmission Control Protocol)是传输层的重要协议。它提供一个完全可靠的(没有数据重复或丢失)、面向连接的、全双工的流传输服务。本设计中,对复杂的TCP协议做了合理的简化:①因为CAN网络传输速度较快,数据量小且10Mbps的以太网传输一般不会发生阻塞,以太网上的主机也会有足够的能力及时处理通信数据,所以可以固定超时与重传的时间为5s。②RTL8019AS上有两个1500字节的接收缓冲区,且CAN网络为控制网,信息量小,所以可以固定接收窗口为1400字节。③因为我们采用一般的TCP服务就可以满足应用,所以可以忽略紧急指针和选项及填充字段的值。通过上述三点简化,实际上大大简化了TCP协议的实现。因为TCP的超时与重传时间的确定和窗口大小的控制有着较复杂的算法和实现机制。

它的实现变量有:tcpState,{tcpTmpSeq4,tcpTmpSeq3,tcpTmpSeq2,tcpTmpSeq1},{tcpTmpAck4,tcpTmpAck3,tcpTmpAck2,tcpTmpAck1},{tcpUnAckMSB,tcpUnAckLSB},tcpRxFlags,{tcpCheckSumMSB,tcpCheckSumLSB},{tcpLengthMSB,tcpLengthLSB},{tcpTmpMSB,TcpTmpLSB},{tcbLocalPortMSB,tcbLocalPortLSB},{tcbRemotePortMSB,tcbRemotePortLSB},{tcbSndUna4,tcbSndUna3,tcbSndUna2,tcbSndUnal},{tcbRcvNxt4,tcbRcvNxt3,tcbRcvNxt2,tcbRcvNxt1},tcbOffset,tcbFlags,{tcbSendWinMSB,tcbSendWinLSB},{tcpTimerMSB,tcpTimerLSB}等。

相关函数有:TCPIPInit(),TCPRxHeader(),TCPProcPktIn(),TCPTransmit(),TCPReTransmit(),TCPAppPassiveOpen(),TCPAppActiveOpen(),CPAppClose(),TCPAddRcvNxt(),TCPIncRcvNxt(),TCPIncSndUna(),TCPCopySeqToNxt(),TCPAckUpdate(),TCPUpdateSeq(),TCPChkSeq(),TCPRestorePrev(),TCPCmpNxtSeq(),TCPSendEmptyPkt(),TCPSendReset(),TCPSendSyn(),TCPSendISN(),TCPSendSynAck()TCPSendAck(),TCPSendFin(),TCPCheckSuminit(),CPCheckSumAcc(),TCPCheckSumAddHdr(),CPTxByte(),TCPStartPktOut(),TCPAppInit(),TCPAPPTxBytes(),TCPAPPTxData(),TCPAPPTxDone(),TCPAppRxBytes(),TCPAppRxData(),等。

2.6 TCP和IP传输层协议的选择

把TCP/IP协议应用到控制网络中如何选择传输层协议类型很关键。如果要与现有的应用程序通信,必须使用与其相同的协议类型。在实际应用时,从可靠性来说,TCP提供了可靠的数据连接,UDP和直接访问IP的一些协议是不可靠的,数据报可能会丢失、损坏或重复;从性能上讲,UDP的性能最快,可靠性、流量控制重组包和连接维护等附加开销降低了TCP的性能。对于速度比较慢的系统来说,如温度、湿度传感器,选择TCP或UDP都无所谓,对于不太重要的传感器选用UDP就可以了;对于可靠性要求较高的传感器,应该选用TCP协议;对于实时性要求高的网络设备,如网络会议系统、IP音响、实时播放的电视等设备,数据传输率较高,应该选用UDP协议;有些有严格要求的同步系统应采用UDP;数据监控系统传输的可靠性要求较高,应采用TCP;Web和Email也应采用了TCP。总之,要根据实际情况来确定选用何种协议。

icmp协议范文第4篇

[论文摘要]主要论述网管系统中一个重要的功能网络拓扑的自动发现。阐述相关的理论知识,并具体讨论基于SNMP和基于ICMP的拓扑发现,最后对算法所适用范围加以说明。虽然这种方法能够较好的发现网络拓扑,但是它需要占用大量的带宽资源。

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

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

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

主拓扑指的是反映出关键设备包括路由器,它们的接口和子网的连接关系,即路由器一路由器、路由器一子网、接口的关系。这些信息需要对网络进行搜索而获得:一般只需要对连接设备进行遍历就可以得到主拓扑结构。当前的网管软件都是通过对网络设备的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地址的子网地址,并确定各个子网的网络类型。把查到的各个子网加入地址表中。

icmp协议范文第5篇

关键词:SNMP(简单网络管理协议);ICMP(PING)协议;网络设备监测

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)19-4403-04

近年来,在局和台统一部署和努力下,我台的信息化建设取得了可喜的成绩。随着我台信息化技术不断发展,自动化规模越来越大,各类业务系统的应用,对网络运行的稳定性和可靠性提出了更高的要求。网络系统设备是实现发射机自动化重要的信息基础设施,我台网络由于业务特点,决定了其网络是分布式的,点多面广,结构复杂,分支网络在地理上分散于两个台区的多个机房内。用人工的方式去查看网络系统中各个设备的运行参数,不仅费时费力,而且难以全面及时地掌握各业务系统的业务状况。

目前比较流行的网络管理软件有IBM公司的Net View,HP公司的Open View,以及Cisco公司的Cisco Works等。但这些软件以管理主干路由器为主,或者是建立在独立厂商各自设备的基础之上,对于我台网络结构并不能完全适用。而网络设备正常运行与否,直接关系到发射机的播出情况,进一步导致不良的政治后果。为了解决目前的困难,实现一个高效的、实时的、智能的、合适的网络设备监控系统,已经被提到了一个空前的高度上。

因此,我台计划建设信息化IT运维管理平台,实现对网络系统、服务器、数据库、机房环境等信息基础的设施的全程自动监控;改变以往被动的、孤立的、分散的管理模式,主动及全面发现系统中存在的问题[1],以流程贯穿整个运维管理过程;减少运维人员的劳动强度,提高效率,切实保障各业务系统可靠、稳定、高效的运行,进一步信息化为全台的服务质量。

1 基于ICMP和SNMP协议网络运维系统设计

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息[2]。本系统正是利用了“是否可达”功能来检测目标主机是否处于联网状态。

SNMP,Simple Network Management Protocol,即简单网络管理协议[3],是有IETF定义的一套基于SGMP(简单网关监视协议)的网络管理协议。在SNMP为技术的网络管理系统中,管理工作站利用SNMP进行远程监控管理网络上的所有支持这种协议的设备:如计算机工作站、终端、路由器、Hub、网络打印机等,主要负责监视设备状态、修改设备配置、接受事件警告等。本系统正是利用了这些功能,对网络中的设备进行各设备状态的实时监视。

本次系统开发,结合我台实际应用,采用SNMP及ICMP(PING)两种方式,实时采集网络中设备的相关数据,比对预设阈值,进行告警管理,并实时保存数据等功能。由于两种协议都会一定程度上增加网络带宽,所以系统在设计之初就提出了时间间隔的概念,即两次执行PING和SNMP的时间间隔。

本系统的ICMP协议采用了PING方式实现。管理主机向目标主机执行一次PING命令时,在预设的时间内没有完成本次PING,则系统会认为管理主机与目标主机之间的链路出现了问题,将会产生语音、文字及图像报警信息,通知维护人员前往处理故障。表若PING成功,表示目标主机可达,即主机处于正常联网状态,系统将继续执行SNMP协议相关功能。

SNMP协议在PING成功后执行,获取相应设备的参数信息,与预先设置的阈值进行比对,若超出阈值,同样的会生成语音、文字及图像的报警信息来通知维护人员。两种协议实现流程如图1所示。

2 网络运维系统结构和功能

建立网络设备监测系统[4],实现传统的被动式故障处理方式向前瞻式管理方式的转变,既要使网络中出现的危险和漏洞降到最低,防范于未然;又要减轻我台面临着巨大的运维压力,降低信息管理的难度。因此,整个系统以事件为核心,将IT资源监控管理系统与流程管理系统有机地整合在一起。采用统一事件管理系统,对整个系统内的所有事件进行收集、关联分析和处理。

通过统一的管理系统对管辖范围内IT对象的运行状况和系统性能进行实时的监控,并以类visio图形化的方式直观地展现出来。对于系统运行的异常表现及时采用文字、图形及语音的方式报警。

本网络运维系统主要是应对我台现有的网络设备,而我台需要监测对象有:服务器、交换机、路由器、防火墙、存储设备、终端主机、UPS等终端,所以此次系统设计也主要针对这此设备展开。根据我台维护人员历来的经验,在故障处理过程中,主要针对设备 ICMP (PING)延迟,内存利用率,硬盘利用率,CPU利用率,网口流量,设备持续运行时间,会话数,电压状态等参数信息判断网络运行情况,所以软件功能也由此展开。图2显示出了本系统的主要监测对象及功能:

图2