icmp协议范例6篇

前言:中文期刊网精心挑选了icmp协议范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

icmp协议

icmp协议范文1

关键词:DELPHI;icmp协议;监控

中图分类号:TP311.11 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02

1 DELPHI简介

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为Anders Hejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

2 ICMP协议

2.1 ICMP简介

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP在网络中的主要作用是:主机探测、路由维护、路由选择、流量控制。Ping的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。Windows 2000提供的icmp.dll模块,用于网络ICMP请求。

2.2 ICMP报文

ICMP报文分为两种,一是错误报告报文,二是查询报文。每个ICMP报头均包含类型、编码和校验和这三项内容,长度为8位,8位和16位,其余选项则随ICMP的功能不同而不同。在网络设备监测时主要用到是ICMP_ECHO和ICMP_ECHOREPLY,它们分别代表:请求回送和请求回应。

2.3 工作原理

简单来ICMP的工作原理是使用一个ICMPECHO数据包来探测主机地址是否存活,通过简单的发送一个ICMPECHO(Type 8)数据包到目标主机,如果ICMPECHOReply(ICMPtype0)数据包接受到,说明主机是存活状态。如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到。回送消息的源地址是回送响应消息的目的地址。若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为0,重新计算机校验码。

下面结合一个编程语言对实现过程做一个详解。

3 实现方式

3.1 创建PING操作的一个类

为了调用方便,首先创建一个类,供程序中使用。源代码如下:

constructor Tping.create;

begin

inherited create;

hICMPdll := LoadLibrary('icmp.dll');

@ICMPCreateFile := GetProcAddress(hICMPdll, 'IcmpCreateFile');

@IcmpCloseHandle := GetProcAddress(hICMPdll,'IcmpCloseHandle');

@IcmpSendEcho := GetProcAddress(hICMPdll, 'IcmpSendEcho');

hICMP := IcmpCreateFile;

end;

3.2 主机活动判断

用IcmpSendEcho函数包含ICMP.DLL中,它是用于Internet控制报文协议测试的,可以直观地测试本地计算机的网络速度。利用这个函数,可以判断主机是否活动。它包含主机IP,数据包大小、延迟时间等8个参数。如果有返回值,返回值表示收到的回复的个数。如果为0表示没有回复,主机无法到达。通过IcmpSendEcho函数进行主机活动的判断。

3.3 主程序的实现

在主程序中放置一个Timer控件,设置扫描时间为10分钟。定义一个ttPing : TPing 变量,并进行初始化。在OnTimer事件中,加入ping操作的代码,根据返回值,显示该主机是否在线,当出现异常时,通过文字和声音进行提示。实现对网络及关键主机的监控。程序代码如下:

ttPing := tPing.create;

try

tStr := '';

ttPing.pinghost(tPingTask.Strings[1],tStr);

if pos('Can not find host',tStr) = 0 then

begin

AddMsg(self.CurentTaskLog,'正常');

end

else

begin

addmsg(self.TaskLog,tPingTask.Strings[0]+ tPingTask.Strings[1]+'出现异常,请查找原因');

Windows.Beep(480, 20000);

end

finally

tPingTask.Free;

ttPing.Free;

end;

3.4 广域网监控实现

以上程序可以实现对局域网内设备进行监控。但要监控外网地址入口就需要增加路由来实现。Windows下添加路由命令为“Route add 目的IP段 mask 子网掩码 路由器IP”,将外网入口地址加到Windows路由表中,通过以上程序就可直接针对外网地址进行PING测试,实现广域网的监控。

4 结束语

本文结合DELPHI编程工具,对icmp.dll实现PING功能做了说明。这只是简单的应用,通过深入开发,可以方便的实现局域网设备、关键主机、广域网入口等设备的监控,以最大程度地减少人工劳动强度,提高工作效率,提高自动化程度,为设备正常、高效的运转奠定良好的基础。

参考文献:

[1]杜新华,杜力耘,张蓓蓓.基于ICMP的Ping软件实现[J].上海交通大学学报,1997,05.

[2]黄跃青,崔智慧,崔炳俭等.MAS系统的二次开发[J].气象与环境科学,2010,33(B09),201-202.

[3]王新刚,柴乔林,李琳.基于Windows的综合网络性能监测系统[J].计算机应用研究,2002,10.

icmp协议范文2

关键词:Wireshark;Omnipeek;TCP/IP协议

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)35-0050-02

The Application of Network Packet Capture Software in Computer Network Technology in Teaching

WAMG Hai-yan

(Jiangxi Province Industry of Electronic and Information Engineering Career Technical College, Nanchang 330095, China)

Abstract:To analyze the network protocol with the wireshark software in CNT course, the students could be have a visual understanding fordata network transmission process. The students can through the rote memorization learning method to learn the abstract and complicated network protocol knowledge. In practical pplication of teaching, students'study interests was obvious increased by learning with the wireshark software, it lays a good foundation for students' further study such

as network programming, network equipment debugging and other professional knowledges.

Key words: wireshark;omnipeek;TCP/IP protocol

随着“互联网+”时代的到来,网络技术成为我们生活、工作、学习中不可缺少的重要部分,这对我国职业院校“计算机网络技术”课程教学提出了更高的要求。在以往课程中,协议理论部分的教学一直是教学中的一个难点,因为传统的计算机网络教材中对各协议层都是纯理论的描述,对于此类看不见又摸不着的内容,学生理解非常的抽象,实在不行只能通过死记硬背的方式将各层的功能强行记下来,但到实践应用的时候又不能把理论联系上。所以在教材的组织上,把协议部分压缩了,另外加入如网络软件的使用等其他不重要的内容来充实教材内容。笔者认为,如果在“计算机网络技术”课程中,没有对基础网络协议有一个清晰的认识,对计算机后续的课程学习是非常不利的,也丧失了“计算机网络技术”这门课的教学意义。以下简单列举两个例子:1计算机软件开发课程中,没有网络协议的知识基础,影响学生在SOCKET编程的部分学习,SOCKET涉及W络层与传输层的协议。2计算机网络互联课程中,对协议掌握的深浅,更是直接影响学生对交换机与路由器运行原理的学习进度。

为了解决以上提出的问题,需要对教学内容进行有效的改革。在制定教学内容时,应该以TCP/IP网络协议模型簇为中心,对常见的协议内容与专业名词(如:IP地址、广播地址、虚拟局域网、路由协议等)讲解要做到讲清、讲透,但是如果依然采用前面的纯理论的讲解的方式,严重影响了教学效果。经过反复细致的研究,加之与同行之间的研讨。决定将抓包软件(Wireshark、Omnipeek)融入到教学中来。

Wireshark(前身叫Ethereal),在网络抓包软件当中,是目前使用率最高的协议分析软件,它主要的功能就是可以从网络适配器驱动层,对网络数据进行捕获,其中“捕获过滤器”与“显示过滤器”,能很容易在大量的数据捕获数据中找出自己所需要的相关数据,它有多平台版本(Windows、Linux),最新的有2.X版本可供下载使用。在高职教学中,我们一般采用WINDOWS 7操作系统,下面,我们可以从实例教学知识点来说明一下软件对教学的辅助作用。

ICMP网际协议:ICMP全称(Internet Control Message Protocol),主要用于确认IP数据包是否成功送达目标地址,并通知在发送过程中IP数据包被丢弃的原因,改善网络设置等。有了这些功能,就可以获得网络通信是否正常、设置是否有误以及设备有何异常等信息,方便对网络出现问题的分析。协议的工作过程如图1所示。

中我们分析得出:首先,从地址上分析(包括MAC地址与IP地址),源MAC变为(00:12:80:4B:C0:7F),目标MAC变为(00:16:D4:B8:59:B1),源IP变为(192.168.100.1),目标变为(192.168.100.138),与前面的ICMP查询报文比较得出,数据报由主机B发出,在ICMP数据部分变化的主要是(Type:0,ICMP Code:0),按照协议的要求,就正是ICMP应答包的协议规定数据。

经过对上面一个教学实例的分析描述,利用Wireshark抓包,使用Omnipeek对一个ICMP包进行分析,在上述图中可以清晰地看出以太网链路层与IP数据报也就是网络层数据及ICMP协议以IP数据报的形式在网络上传输的过程。在抓包软件的有力帮助下,我们可以非常直观的观察协议数据的结构方式,传输方向,了解ICMP协议工作的原理。

实践证明,在网络协议教学过程中,我们通过合理的使用数据包捕获软件,将其良好的融入到我们的教学内容当中,能让教学内容形象的表示出来。新的教学内容与教学方式让学生在学习的过程中更加容易理解复杂抽象的网络协议结构,学生在学习网络协议的兴趣明显提高了,对“计算机网络技术”的课程教学起到了较大的帮助。

参考文献:

icmp协议范文3

关键词:Windows 2000/XP;网络管理;工具命令

中图分类号: TP393.08 文献标识码:A 文章编号:1673-8500(2013)03-0089-01

使用操作系统提供的网络命令可以解决绝大部分网络运行的问题,了解网络运行的状况。这里主要介绍Windows2000的网络工具命令。在Windows2000的“运行”对话框中输入命令“cmd”,既可打开命令窗口,使用工具命令。

1. Windows2000的网络工具命令

当ping目标主机使用域名或主机地址时,首先会返回目标主机的IP地址:

C:\WINDOWS>ping

Pinging [162.105.129.12] with 32 bytes of data:

…………

Reply from 162.105.129.12: bytes=32 time=27ms TTL=244说明数据包的大小、从目标主机返回的时间、返回时的TTL值。

2.TTL:生存时间

指定数据报被路由器丢弃之前允许通过的网段数量。

TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。

使用PING时涉及到的 ICMP 报文类型。一个为ICMP请求回显(ICMP Echo Request);一个为ICMP回显应答(ICMP Echo Reply)

TTL 字段值可以帮助我们识别操作系统类型。

UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255

Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64

微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128

微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32

当然,返回的TTL值是相同的,但有些情况下有所特殊:

LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64

FreeBSD 4.1, 4.0, 3.4;

Sun Solaris 2.5.1, 2.6, 2.7, 2.8;

OpenBSD 2.6, 2.7,

NetBSD

HP UX 10.20

ICMP 回显应答的 TTL 字段值为 255

Windows 95/98/98SE

Windows ME

ICMP 回显应答的 TTL 字段值为 32

Windows NT4 WRKS

Windows NT4 Server

Windows 2000

ICMP 回显应答的 TTL 字段值为 128

这样,我们就可以通过这种方法来辨别操作系统。

3. tracert

tracert通过向目标主机发送不同TTL值的数据包,跟踪从本地计算机到目标主机之间的路由,显示所经过的网关的IP地址和主机名。命令格式为:

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] 目标主机

tracert可以检测某个主机不能连通时,在路由哪个环节出现了问题。

(1)netstat

netstat命令的功能是显示网络连接、路由表和网络端口信息,可以让用户得知目前都有哪些网络连接正在运作。检查系统是否有非法连接以及利用系统漏洞的病

4.毒或木马程序时,经常使用此命令。该命令的一般格式为:

netstat [选项]

-p proto 显示TCP协议的连接情况。

(1)ipconfig和winipcfg

(2)ipconfig

ipconfig可以查看和修改网络中的TCP/IP协议的有关配置,如IP地址、子卡掩码、网关、网卡的MAC地址等。命令格式是

ipconfig [参数1] [参数2]……

5.常用参数:

1.all:显示与TCP/IP协议的细节,如主机名,节点类型,网卡的物理地址,默认网关等。

Batch [文本文件名]:将测试的结果存入指定的文本文件名中。

2.winipcfg

winipcfg的功能和ipconfig基本相同,使用Windows

对话框显示TCP/IP配置情况。

6. nslookup的网络工具命令

nslookup命令的功能是查询一台机器的IP地址和其对应的域名。此命令需要在本机设置正确的域名服务器来提供域名服务。

命令的一般格式为:nslookup [IP地址/域名]

1. finger

finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,

8.finger守护进程。

需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。

命令的一般格式为: finger [-l] [user] [@host]

1.arp

arp命令可以显示和修改“地址解析协议”(ARP) 所使用的到以太网的IP 或令牌环物理地址翻译表。该命令只有在安装了 TCP/IP 协议之后才可用。

命令的一般格式为:

arp -a [inet_addr] [-N [if_addr]

arp -d inet_addr [if_addr]

arp -s inet_addr ether_addr [if_addr]

icmp协议范文4

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

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30661-02

Study on Arithmetic on Finding Network's Topological Structure

YE Shun-fu

(Zhangzhou City Employment Center,Zhangzhou 363000,China)

Abstract:The original arithmetic is based on SNMP,which is fine in finding network's main topological structure, but not well in getting a full one of a subnet.So,a way based on ICMP is putted forward to solve this problem for achieving the full one.

Key words:SNMP(Simple Network Management System);Arithmetic on auto-finding network's topological structure

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

国外在网络管理这一领域起步较早,取得了一些成果。在学术界,IEEE通信学会下属的网络营运与管理专业委员会(CNOM , Committee of Network Operation and Management),从1988年起每两年举办一次网络营运与管理专题讨论会。国际信息联合会(1FIP)也从1989年开始每两年举办一届综合网络管理专题讨论会。以及OSI网络管理论坛(OSI/NM FORUM ),专门讨论网络管理的有关问题[1]。近年来,也有一些厂商和组织开始推出自己的网络管理解决方案[2]。比较有影响的有:网络管理论坛的OMNIPoint和开放软件基金会(OSF)的DME(Distributed Management Environment)[3]。本文详细介绍系统网络拓扑自动发现算法的实现。

1 拓扑发现算法的相关理论

1.1路由选择算法

网络拓扑的发现,实际上就是根据网络上节点连接情况,构造出来一个反应这种连接关系的图。网络节点可以是网关,也可以是子网:网关节点是与子网和其它网关节点相邻的节点;子网节点可被认为只与网关节点相邻,至少与它的缺省网关相邻。

各子网通过各目的网关与其他子网通信,这些子网可以是一个局域网,也可以是某个局域网的一部分,它们都连接到网关的一个端口上,网关的端口可以连接子网,也可以同其他路由器相连。当子网的某一机器发送数据时,数据包首先到达子网的缺省网关,缺省网关检测数据包中的目的地址,根据其路由确定该日的地址是否在与自己相连的子网中,如果是,则把数据包直接发往目的地,否则转发给路由表中规定的下一个网关。这样,下一个网关再进行类似处理,依次类推,数据包将最终到达目的地。

1.2图论中的遍历算法

遍历的定义是:对于无向图,以图中某一点为出发点,沿着边依次访问图的其余节点,如果图是连通的,则从图的任一点出发按一定的顺序沿着某些边可以访问图中的所有节点,而且每个节点仅被访问一次,这一过程称为图的遍历。

在网络上,一个节点可以和很多的节点连接,所以当进行网络拓扑结构发现的时候,有可能会访问己经被发现过的节点。因此,在遍历的时候,必须对每一个节点设置一个标志。当节点未被访问过时,相应的标志为0,否则,就置为1。

2 拓扑发现算法的设计与实现

2.1主拓扑的发现

主拓扑指的是反映出关键设备包括路由器,它们的接口和子网的连接关系,即路由器-路由器、路由器-子网、接口的关系。这些信息需要对网络进行搜索而获得:一般只需要对连接设备进行遍历就可以得到主拓扑结构。当前的网管软件都是通过对网络设备的MIB库进行访问,所以这种方法又被称为基于SNMP的拓扑发现。

2.2子网发现

经过上述的遍历过程,可以得到网络拓拓扑图的整体构成,知道了网络主干通道情况。但是子网内部的具体设备以及连接状态尚不可知。这就需要依靠子网发现来做进一步的工作。子网发现完成的任务是确定子网内各网络设备的状态、类型以及网络接口。

3 改进的拓扑算法

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

3.1 ICMP报文的格式

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

图1 ICMP报文的格式

类型区:定义报文类型;

代码区:描述错误类型或状态信息;

校验和区:计算ICMP报文16位校验和;

利用ICMP进行网络拓扑图的发现,需要利用其中的响应请求与应答报文。其报文格式如图2所示,回应请求/应答被用于测试信宿机的可到达性或连通性。请求者(某机器)向特定信宿机发送一个回应请求,其中包含一个任选的数据区;信宿机发回响应的回应应答,其中包含一个请求中的任选数据区的拷贝。图2所示的“标识符”和“序号”用于匹配请求与应答(同一机器可以同时向若干信宿机发出请求)。

图2 回应请求(类型8)/应答(类型0)报文格式

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

3.2 PING的实现

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

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

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

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

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

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

3.3 traceroute的实现

traceroute的实现与IP数据报文的报头有关。IP头的结构如下:

struct ip{

char ip_ verlen; //IP version&header length

char ip_ tos; //type of service

short ip_len; //total packet length(in octets)

short ip_ id;//datagram id

short ip_fragoff //fragment offset

char ip_t1;//time to live, in gateway hops

char ip_proto//IP protocol

short ip_chksum//header checksum

Ipaddr ip_src//IP address of source

Ipaddr ip_dst//IP address of destination

char ip_data//variable length data

}

在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报文。这样就得到了路由中和第二个网关地址。如此循环下去,直到报文正确到达信宿,这样就得到了通往信宿的路由。

3.4网络拓扑的发现算法

具体实现的步骤:

(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 结论

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

参考文献:

[1]Breibart Y,et al.Topology Discovery in Heterogeneous IP Networks[C].Tel Avivl Israel Proceeding of INFOCOM 2000.

[2]Clarke,Freenet A Distributed Anonymous Information Storage and Retrieval System [C].Workshop on Design Issues in Anonym ity and Unobservability, 2000 25-31.

icmp协议范文5

关键词:TCP/IP; 网络安全; 协议分析

1.TCP/IP数据链路层安全性缺陷

在TCP/IP协议栈中,数据链路层位于网络层底下,网络层的包拆封成不同的数据帧。数据链路层上的常见攻击方式是嗅探(sniff),嗅探是在共享的网络信道上,利用网络接口卡接收不属于自己的数据包。广泛应用的以太网、共享信道的媒体访问协议CSMA/CD、广播机制等构成了嗅探的物理基础。

攻击者可能从数据中分析出帐户、口令等关键数据。同时嗅探也是其他攻击(如IP欺骗、拒绝服务攻击)的基础。嗅探使用的包捕获技术依赖于具体的操作系统,其中比较流行的是UNIX平台上的BPF技术,在通常情况下,网卡驱动程序从网络上接收一个数据包,然后提交给系统协议栈。如果有BPF侦听网络,则驱动程序会先调用BPF,复制一个包给BPF的过滤器,过滤器根据用户规则决定是否接收此数据包,并判断此包是否是发给本机的。如果是,则提交给协议栈,然后返回。否则,驱动程序从中断中返回,继续接收数据包。

2.TCP/IP无线链路性能缺陷

无线链路的特点是易受干扰、多径衰减的影响。信道通信行为会随时间和地理位置而变化,链路层差错控制对包一级QOS的影响也会随时间变化。因此为固定网络开发的TCP无法很好地应用于移动通信和卫星等无线链路中,这是因为TCP/IP缺乏网络自适应性。

在有线网络中,流量控制和资源分配策略均基于底层的物理媒质是高度可靠的这一假定,但这对无线网不成立。在无线网上进行TCP传输TCP认为包的丢失是由拥塞引起的,而实际上包丢失可能是由于信道错误引起的包丢弃或网络延时而引发的,这将导致超时并启动拥塞控制算法,显然不必要。

同时在无线通信中还有一个问题:当主机不断移动时,它可能离开其IP地址标识的那个区域,从而无法连接到网络中。解决主机移动性问题的基本难题是主机的IP地址有双重意义,它既是对主机的惟一标识,又指示它所在位置。而移动主机的位置要经常变化,这意味着IP地址也应改变,这是TCP/IP无法解决的问题。

3.网络层与传输层性能缺陷

实现TCP的可靠传输需要三次握手,导致报文段在网络传输中遇到不利情况的概率增加:当第三次握手时,如果出现网络问题使主机A的一个报文段无法到达主机B,则主机B不会认为建立连接,而主机A认为连接已经建立,并开始发送数据,浪费了A的网络资源;同样如果一个报文段在某些结点延时过长才能到达主机B,在此之前主机B也不会认为连接建立,而主机A确会认为连接已经建立开始发送数据,从而也会浪费了A的网络资源。

所以无论是何种网络或则无论网络状况是否良好,进行三次握手都会比进行两次握手多出部分时延。

4.网络层与传输层安全性缺陷

网络安全中安全问题突出的部分,常发上在这两层上,以下为常见的安全问题与对策:

1.IP劫持(传输层)

当用户连接远程机器时,攻击者接管用户的连接,使正常连接与经过攻击者中转一样,客户和服务器都认为他们在互相通信,攻击者便能对连接交换的数据进行修改,冒充客户给服务器发送非法命令,或给用户发回虚假信息。

2.ICMP隧道(网络层)

几乎所有的基于TCP/IP的机器都会对ICMP echo请求进行响应。所以如果一个敌意主机同时运行很多个PING命令向一个服务器发送超过其处理能力的请求时,就可以淹没该服务器使其拒绝其它服务,而PING命令用的就是ICMP协议,ICMP的请求和应答可用来检验目的机是否可达。由于ICMP有一个可选的数据域,而很多防火墙都允许PING命令通过,这就可能形成一条秘密的信息通道,这种通道称为ICMP隧道。

3.ARP欺骗(网络层)

ARP协议用来进行IP地址和网络物理地址之间的转换。主机用ARP Cache来缓存已经得到的映射关系,并在一定时间后作废Cache的内容。ARP协议的一个重要特性是信任,ARP基于一种思想,认为所有机器都相互协作,而且任何响应都是合法的。主机保存了通过ARP得到的映射,却不考虑它们的有效性,也不维护一致性。因此,当ARP表把几个IP地址映射到同一个物理地址时,不违反协议规范。这个特性对于在网络中使用ARP技术是很重要的。但是一台机器可冒名顶替另一台机器以截获分组。攻击者可以利用暂时没有使用主机的IP地址,伪造IP地址和物理地址之间的映射,欺骗用户向虚假的物理地址发送报文。

4.使用SYN报文段淹没服务器

使用SYN报文段淹没服务器。利用TCP建立连接3的步骤的缺点和服务器端口允许的连接数量的限制, 窃取不可达IP地址作为源地址, 使得服务器端得不到而使连接处于半开状态, 从而阻止服务器响应别的连接请求。尽管半开的连接会因过期

而关闭, 但只要攻击系统发送的spoofed SYN请求的速度比过期的快就可达到攻击的目的。

icmp协议范文6

“拒绝服务”是如何攻击的通过普通的网络连线,使用者传送信息要求服务器予以确定。服务器于是回复用户。用户被确定后,就可登入服务器。 “拒绝服务”的攻击方式为:用户传送众多要求确认的信息到服务器,使服务器里充斥着这种无用的信息。所有的信息都有需回复的虚假地址,以至于当服务器试图回传时,却无法找到用户。服务器于是暂时等候,有时超过一分钟,然后再切断连接。服务器切断连接时,黑客再度传送新一批需要确认的信息,这个过程周而复始,最终导致服务器无法动弹,瘫痪在地。

在这些 DoS 攻击方法中,又可以分为下列几种:

一、TCP Syn Flooding

由于TCP协议连接三次握手的需要,在每个TCP建立连接时,都要发送一个带SYN标记的数据包,如果在服务器端发送应答包后,客户端不发出确认,服务器会等待到数据超时,如果大量的带SYN标记的数据包发到服务器端后都没有应答,会使服务器端的TCP资源迅速枯竭,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。这就是TCP

SYN Flooding攻击的过程。

图1 TCP Syn攻击

TCP Syn 攻击是由受控制的大量客户发出 TCP 请求但不作回复,使服务器资源被占用,再也无法正常为用户服务。服务器要等待超时(Time

Out)才能断开已分配的资源。

二、Smurf

黑客采用 ICMP(Internet Control Message Protocol RFC792)技术进行攻击。常用的ICMP有 PING 。首先黑客找出网络上有哪些路由器会回应 ICMP 请求。然后用一个虚假的 IP 源地址向路由器的广播地址发出讯息,路由器会把这讯息广播到网络上所连接的每一台设备。这些设备又马上回应,这样会产生大量讯息流量,从而占用所有设备的资源及网络带宽,而回应的地址就是受攻击的目标。例如用500K bit/sec 流量的 ICMP echo (PING)包广播到100 台设备,产生 100 个 PING 回应,便产生 50M bit/sec流量。这些流量流向被攻击的服务器,便会使这服务器瘫痪。

ICMP Smurf 的袭击加深了ICMP的泛滥程度,导致了在一个数据包产生成千的ICMP数据包发送到一个根本不需要它们的主机中去,传输多重信息包的服务器用作Smurf 的放大器。

图2 Smurf 攻击图

三、Fraggle:Fraggle

基本概念及做法像 Smurf, 但它是采用UDP echo 讯息。

如何阻挡“拒绝服务”的攻击

阻挡“拒绝服务”的攻击的常用方法之一是:在网络上建立一个过滤器(filter)或侦测器(sniffer),在信息到达网站服务器之前阻挡信息。过滤器会侦察可疑的攻击行动。如果某种可疑行动经常出现,过滤器能接受指示,阻挡包含那种信息,让网站服务器的对外连接线路保持畅通。

DDoS:

DDoS(Distributed Denial of Service)其中文含义为分布式拒绝服务攻击。

Distributed DoS 是黑客控制一些数量的PC 机或路由器,用这些 PC 机或路由器发动 DoS 攻击。因为黑客自己的 PC 机可能不足够产生出大量的讯息,使遭受攻击的网络服务器处理能力全部被占用。

黑客采用 IP Spoofing 技术,令他自己的 IP 地址隐藏,所以很难追查。如果是在 Distributed DoS 情况下,被追查出来的都是被黑客控制的用户的 IP 地址;他们本身也是受害者。

黑客一般采用一些远程控制软件,好像Trinoo, Tribal Flood Network, Stacheldraht 及其他DoS 程序。美国政府资助的CERT (Computer Emergency Response Team) 及 FBI都有免费软件如 find_dosv31,给企业检查自己的网络有没有被黑客安装这些远程控制软件。但黑客亦同时在修改软件以逃避这些检查软件。这是一场持久的网上战争。

图3 黑客图