ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:86.83KB ,
资源ID:10279357      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10279357.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ICMP协议及应用研究.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ICMP协议及应用研究.docx

1、ICMP协议及应用研究论文(设计)题目 ICMP协议及应用研究 The ICMP Protocol and Its Application Study 作 者 张 李 华 二级学院、专业 信息工程学院 计算机科学技术 班 级 计001 指导教师(职称) 詹国华(教授) 论 文 字 数 10202 论文完成时间 2008年5月 教务处制目 录摘要3Abstract4第一章 引言5第二章 基于IPv4的ICMP的认识52.1 OSI参考模型和TCP/IP参考模型的比较 52.2 TCP/IP在网络中的地位和作用62.3 ICMP的介绍72.3.1 ICMP协议报头72.3.2 ICMP协议的消息8

2、2.3.3 ping命令82.3.4路由跟踪traceroute82.4 ICMP攻击影响网络安全8第三章ICMP部分功能的模拟实现103.1背景103.1.1 ping命令的深入认识103.2存在的问题123.3 CPing的功能特点133.3.1网络的连通133.3.2可视化界面133.3.3 显示简单,对一般用户容易看懂133.3.4 容量小,易携带133.4模拟环境143.5.1硬件环境143.5.2软件环境143.5实现143.5.1 文件组成143.5.2 网络套接字163.6操作过程及结果的显示16第四章ICMP的发展趋势(基于Ipv6的ICMP)18参考文献19摘要本文较深入地

3、研究了TCP/IP协议组中的ICMP协议。ICMP是“Internet Control Message Protocol”(Internet控制报文协议)的缩写,是一个非常重要的协议。ICMP是一种与IP协议并行运行在网络层的协议,用于在IP主机、路由器之间传递控制消息。控制消息包含网络通不通、主机是否可达、路由是否可用等网络本身的消息。本文还深入研究了在常用操作系统下(如UNIX,Windows,DOS)利用ICMP协议实现的ping命令,它是用来测试网络是否通畅,主机是否可达,以及用Visual C+制作模拟ping命令的小软件PingDemo,它虽小,但是简便,面向一般用户。关键词:IC

4、MP,TCP/IP,pingAbstractThe paper searches the ICMP protocol in TCP/IP deeply.ICMP is Internet Control Message Protocol,which plays a very important role. ICMP that works in the same degree as IP protocol,is used to pass the control message between ip-host and rounters.The control message tells you th

5、at is the net linked,has the host been arrived,or is the rounter working and so on.In addition,the paper also searches the ping command in the common OS with ICMP.The ping command is to check that the host exists or not.And more,using Visual C+ to make a soft called PingDemo as similar as ping.It fa

6、ces to everyone though it is small. Keywords: ICMP,TCP/IP,ping第一章 引言随着科学技术的飞速发展,21世纪的地球人已经生活在信息时代。20世纪人类两大科学技术成果-计算机技术和网络技术,均已深入到人类社会的各个领域,Internet把“地球村”的居民紧密联系在一起,“天涯若比邻”已然成为现实。互联网之所以能这样迅速蔓延,被世人接受,是因为它具备特有的信息资源。近年来Internet的迅速发展,给人们的日常生活带来了全新的感受,“网络生存”已经成为时尚,同时人类社会诸如政治、科研、经济、军事等各种活动对信息网络的依赖程度已经越来越强,

7、“网络经济”时代已初露端倪。ping命令早已是耳熟能详的检查网络畅通的得力方法之一,但是ping命令是来自于哪个网络层次的哪个协议,就不是每个人能说得上的了。同样,对于TCP/IP协议我们一定非常熟悉,但是对于ICMP协议可能就一无所知了。ICMP协议是一个非常重要的协议,它对于网络安全、网络的正常运作具有极其重要的意义。它被用于在IP主机、路由器之间传递控制消息,如网络通不通、主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。而且,ICMP协议本身的特点又决定了它非常容易被用于攻击网络上的路由器和主机,造成CPU疲于奔命,系统瘫痪,主机死机

8、。以上所言,ICMP的研究将会带领我们进入一个丰富多彩的未知领域。 第二章 基于IPV4的ICMP的认识2.1 OSI参考模型和TCP/IP参考模型的比较 尽管OSI模型在各种场合得到了广泛的应用,但由于其建立时间过早,各种网络的发展不断突破了OSI参考模型,特别是互联网的发展,对OSI模型是一个巨大的挑战。OSI参考模型的教训是:首先,引入时间过晚,建立标准时TCP/IP已在大学使用,而后来又被广泛使用;其次,在技术上不能完全适应网络发展现状,如会话层在大多数应用中很少使用,表述层几乎是空的。相反数据链路层和网络层内容过多,有时不得不分成子层,每一子层赋予不同的功能。OSI的另一个问题是有些

9、功能在不同的层一再出现,如编址、流量控制、纠错等等。有些功能放在那里很难达成一致意见,如安全性、加密及网络管理层很难达成一致而干脆未包括在内。同时OSI完全忽略了无连接业务的相应的协议,而这在LAN和演播室局域网中得到了广泛的应用,只是后来才加以补充。另一个严重问题是OSI主要考虑通信,而计算机世界有相当多的不同点。最后在OSI的实现和政策上都有一些问题。 我们再来看一下TCP/IP参考模型,如图1。图1 OSI参考模型和TCP/IP参考模型可以看到,其中不存在会晤层和表述层,主要面向连接的网络层也被以包交接为基础的无连接互联网络层代替,称为互联网层,数据链路层和物理层也大大简化为主机到网络层

10、(Host-To-Network),除了指出主机必须使用能发送IP包的协议外并不规定什么。在互联网层中定义了包结构和相应的协议,称为互联网协议(IP:Internet Protocol),主要作用是将IP包送到相应的地址。TCP/IP传送层的作用类似于OSI传送层的作用,是使源和目标设备相互对话。TCP/IP定义了两种端到端协议,第一种是传输控制协议(TCP:Transmission Control Protocol),是可靠的面向连接的协议,能确保拜特流无误码从源设备传送到互联网中的其他设备。它将输入拜特流分割成较小的信息并将其每一个都放入互联网层,在接收端,接收TCP重组所接收的信息还原成

11、原拜特流。TCP还进行流量控制,确保较高速的发送端不会使较低速的接收设备过载。第二种协议是用户数据报协议(UDP:User Datagram Protocol),是一个非确保的无连接协议,用于那些不需要TCP顺序和流量控制的应用,广泛用于单项数据传输、服务器用户类型的应答应用。在这些应用中,即时传送比精确传送更重要,典型的应用就是语言和视频传输。 2.2 TCP/IP在网络中的地位和作用 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层

12、、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层、传输层、互连网络层、网络接口层。 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地

13、址)。面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。 2.3 ICMP的介绍ICMP是“Internet Control Message Protocol”(Internet控制报文协议)的缩写,是一个非常重要的协议,它对于网络安全具有极其重要的意义。ICMP消息是随IP数据包一起传输的,但该消息本身也是一种与IP协议并行运行在网络层的协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据

14、,但是对于用户数据的传递起着重要的作用。我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping命令,这个“ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。2.3.1 ICMP协议报头ICMP消息使用了一种简单的数据结构,其报头部分由三个字段组成,作为报头第一项的类型(type)字段占用了一个字节,用来表示该协议消息所实现的功能,而占用一个字节长度的代码(code)字段则用来进一步对消息内容进行分类。ICMP消息内容(长度和格式不定)ICMP协议报头最后一项是两个字节长

15、度的校验和,而其后的ICMP消息内容则与消息功能有关,但所有消息内容中都必须带有引发错误消息和数据报的IP报头和前个字节,而且这些信息足以使其上层协议对自己的报头进行检查并根据ICMP消息内容来执行适当的操作。最重要的是,ICMP协议不支持数据纠错功能,该协议只是通过向数据源回送错误消息来告诉路由错误。类型 代码 名称 含义 0 * Echo replay 对ping的回应 3 * Destination Unreachable 主机或路由器返回信息:一些包未达到目的地 0 Net Unreachable 路由器配置错误或错误指定IP地址 1 Host Unreachable 最后一个路由器无

16、法与主机进行ARP通讯 4 * Source Quench Internet 阻塞 5 * Redirect 有人试图重定向你的默认路由器,可能Hacker试图你 进行“man-in-middle”的攻击,使你的机器通过他们的机器路由。 8 * Echo Request ping 9 * Router Advertisement hacker可能通过重定向你的默认的路由器DoS攻击你的Win9x 或Solaris。邻近的Hacker也可以发动man-in-the-middle的攻击 11 * Time Exceeded In Transit 因为超时包未达到目的地 12 * Parameter

17、 Problem 发生某种不正常,可能遇到了攻击2.3.2 ICMP协议的消息为了提前预防协议可能引发的问题,ICMP协议技术规范中事先对消息进行了若干限制。比如说,规定一个ICMP错误消息不能引发另一个ICMP错误消息。1) 路由消息ICMP路由消息大多用于请求得到可使用的路由器的清单或对请求的应答,应答中包括可用路由器的清单(清单中的每个路由都有优先级别)。一类路由是在路由器过载情况下产生的。如果一个主机向路由器发送过量数据,或者多个主机同时向路由器发送大量数据,都可以导致路由器瘫痪。但是,这时,路由器可以向发送方回送请求减速消息。每当路由器无法对接收的数据报进行处理时,路由器就把该数据报

18、丢弃并同时回送给数据源一个减速消息,请求高速传输主机降低发送速率。收到减速消息的源主机将逐步降低速率直到错误消息消失为止,然后再逐步提高发送速率直到错误消息出现为止。另一类情况是发生在向一个录由器发送数据报时另一个路由器可借助ICMP消息广播一个更好的路由。称为路由重新定向。2) 无法到达消息ICMP无法到达的消息表示在对数据报进行寻址过程中寻址失败而引发的错误信息。举个简单的例子,目标地址有误的数据报可以引发ICMP协议将无法到达的消息回送给该数据报的原始发送主机。该消息一般用来指出目标主机或网络不存在或没有应答。引发该类错误消息的主要原因包括主机处于关机状态,网络链路故障,以及无法使用特定

19、的协议等。2.3.3 ping命令ICMP协议提供的网络工具之一就是网络管理员最常使用的ping命令。ping命令可以把一个ICMP回显请求发送给一个指定的主机,接收该命令的主机通过回送一个ICMP回显应答来对收到的ICMP回显请求进行应答。ping命令的目的是测试主机是否存在。其实, ping命令是测试网络中两个主机是否可以实现最低级别的连通性。2.3.4 路由跟踪traceroute路由跟踪程序traceroute借助于ICMP TTL超时消息来巧妙地收集客户端与服务器之间的路右信息。该程序可输出所有参与转发数据包的路由器的名称以及消息从主机到该路由器的往返传输时间。网络管理员可借助该工具

20、来对响应速度较慢的连接进行诊断,通过观察数据包从一个主机到另一个主机的传输路径有助于帮助管理员确定网络瓶颈的具体位置(也就是应答速度最慢的路由器)或不合理的传输路径。与ping命令类似,虽然路由跟踪程序不能为网络管理提供全面解决方案,但该工具作为诊断工具来说还是非常有用的。2.4 利用ICMP恶意攻击影响网络安全当今世界上,平均每20秒钟就有一起黑客事件发生,仅在美国每年造成的经济损失就超过100亿美圆。ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。服务拒绝攻击(DoS)企图通过使服务计算机崩溃或把它压跨来阻止提供服务,服务拒

21、绝攻击是最容易实施的攻击行为。由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。这就是所说的“pingofdeath”,现在网络上很多号称能够致使系统死机的软件都是基于这个原理,我们所熟悉的工具“Winnuke”就是一例。对路由器而言,向IntelExpressSwitch或其后的主机发送一畸形的ICMP包

22、可能导致系统崩。通过本地或远程发送的畸形包能蒙骗服务器。当服务器收到畸形的ICMP包时,它将继续检查才对,然而它将丢失所有的路由功能,而且不将检查其它连接了。主要影响IntelExpressSwitch500系列。另外,Windows也有拒绝服务漏洞,对Win98NT4/SP5,6Win2K都有影响,当如上系统受到非法碎片包包含不合法碎片ICMPECHOs(pings)和UDPpackets攻击,Windows系统会拒绝服务。直至CPU占用率达到100%,最后系统崩溃。ICMP重定向提供了一种相当有效的DoS。不象ARP入口,这些特定主机路由入口永不过期。注意,攻击没有要求必须从局域网内发起,

23、事实可以从广域网上发起。如果子网所用DNS位于网关外,产生一个到该DNS的错误路由是很容易的,通过在Pwin98下测试,由ICMP重定向包产生的路由都是掩码为255.255.255.255的特定主机路由,没有办法产生诸如255.255.0.0这样掩码下的网络路由。此外,由ICMP重定向包产生的路由还是会过期的,会被删除,但耗时很长。许多桌面操作系统线性搜索自己的路由表,如果你利用ICMP重定向包加了太多特定主机路由到它们的路由表中,极其容易造成系统的瘫痪。对于Unix系统,虽然搜索路由表时不是线性搜索,但过多的特定主机路由会消耗大量的内存空间。于是,就有了海信“设擂”50万其欲为何的报道:8月

24、21日海信集团在中关村当代商城,举行新闻发布会:海信“8341防火墙”悬赏“50万”,接受全国及至全球的计算机、网络界高手检测。虽然结果是没有人能够拿到防火墙后面的密码,但是防火墙遭到大量的ICMP攻击,导致防火墙的IP地址ping不通,造成大量攻擂者以为海信公司言而无信,取消了测试,转而怒牵于海信公司主页,于是8月24日海信集团网站被“黑”。海信公司自己提供的防火墙遭攻击记录如下:攻击类型 攻击次数1ICMP攻击 3340502碎片攻击 255243端口扫描 43654WEB服务攻击 12275UDP攻击 234 6拒绝服务攻击 12事实可以看到,造成海信服务器“拒绝服务”的绝大多数攻击来自

25、于ICMP攻击。此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。不过,对于防止拒绝服务攻击,有关部门也采取了一些相应的措施:对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。比如我们可以在服务器端拒绝所有的ICMP包,或者在该网段路由器上对ICMP包进行带宽限制,控制其在一定的范围内。第三章 ICMP部分功能的模拟实现3.1 背景3.1.1 ping命令的深入认识ICMP协议提供的网络工具之一就是网络管理员最常使用的ping命令。ping命令可以把一个ICMP

26、回显请求发送给一个指定的主机,接收该命令的主机通过回送一个ICMP回显应答来对收到的ICMP回显请求进行应答。 ping命令的目的是测试主机是否存在。其实,ping命令是测试网络中两个主机是否可以实现最低级别的连通性。它的格式是:ping (注:若只用IP主机名的话,则该命令不仅可用来校验两个主机之间的连通性,而且还可以测试本地主机是否可以对主机名正确解析)例如:使用ICMP协议来进行主机探测 -1,ICMP ECHO(Type 8) 和ECHO Reply (Type 0) 我们使用一个ICMP ECHO数据包来探测主机地址是否存活(当然在主机没有被配置为过滤ICMP形式),通过简单的发送一

27、个ICMP ECHO(Type 8)数据包到目标主机,如果ICMP ECHO Reply(ICMP type 0)数据包接受到,说明主机是存活状态。 如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。 -| | - ICMP ECHO request -| |HOST| - |HOST| | | A | - | B | | | | 如果存活或者没有过滤 | | | - 将返回ICMP RCHO REPLY - | |-图2 主机间通过ICMP交互的示意图这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到。 下面是两个LINUX机器的演示:

28、rootxundi /root# ping 192.168.5.5 PING 192.168.5.5 (192.168.5.5) from 192.168.5.1 : 56(84) bytes of data. 64 bytes from 192.168.5.5: icmp_seq=0 ttl=255 time=4.4 ms 64 bytes from 192.168.5.5: icmp_seq=1 ttl=255 time=5.9 ms 64 bytes from 192.168.5.5: icmp_seq=2 ttl=255 time=5.8 ms - 192.168.5.5 ping s

29、tatistics - 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 4.4/5.3/5.9 ms 下面是snort所显示的信息包(ICMP ECHO request & replay报文):01/26-13:16:25.746316 192.168.5.1 - 192.168.5.5 ICMP TTL:64 TOS:0x0 ID:6059 ID:5721 Seq:1 ECHO 89 D7 8E 38 27 63 0B 00 08 09 0A 0B 0C 0D 0E 0F .8c. 10

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1