ICMP协议及应用探讨_第1页
ICMP协议及应用探讨_第2页
ICMP协议及应用探讨_第3页
ICMP协议及应用探讨_第4页
ICMP协议及应用探讨_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

论 文 ( 设 计 ) 题 目 ICMP 协议及应用研究 The ICMP Protocol and ItsApplication 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 协议的消息82.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摘要本文较深入地研究了 TCP/IP 协议组中的 ICMP 协议。ICMP 是“Internet Control Message Protocol”(Internet 控制报文协议)的缩写,是一个非常重要的协议。ICMP 是一种与 IP 协议并行运行在网络层的协议,用于在 IP 主机、路由器之间传递控制消息。控制消息包含网络通不通、主机是否可达、路由是否可用等网络本身的消息。本文还深入研究了在常用操作系统下(如UNIX,Windows,DOS)利用 ICMP 协议实现的 ping 命令,它是用来测试网络是否通畅,主机是否可达,以及用 Visual C+制作模拟 ping 命令的小软件PingDemo,它虽小,但是简便,面向一般用户。关键词:ICMP,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 that 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 faces to everyone though it is small. Keywords: ICMP,TCP/IP,ping第一章 引言随着科学技术的飞速发展,21 世纪的地球人已经生活在信息时代。20 世纪人类两大科学技术成果-计算机技术和网络技术,均已深入到人类社会的各个领域,Internet 把“地球村”的居民紧密联系在一起, “天涯若比邻”已然成为现实。互联网之所以能这样迅速蔓延,被世人接受,是因为它具备特有的信息资源。近年来 Internet 的迅速发展,给人们的日常生活带来了全新的感受, “网络生存”已经成为时尚,同时人类社会诸如政治、科研、经济、军事等各种活动对信息网络的依赖程度已经越来越强, “网络经济”时代已初露端倪。ping 命令早已是耳熟能详的检查网络畅通的得力方法之一,但是 ping 命令是来自于哪个网络层次的哪个协议,就不是每个人能说得上的了。同样,对于 TCP/IP 协议我们一定非常熟悉,但是对于 ICMP 协议可能就一无所知了。ICMP 协议是一个非常重要的协议,它对于网络安全、网络的正常运作具有极其重要的意义。它被用于在 IP 主机、路由器之间传递控制消息,如网络通不通、主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。而且,ICMP 协议本身的特点又决定了它非常容易被用于攻击网络上的路由器和主机,造成 CPU 疲于奔命,系统瘫痪,主机死机。以上所言,ICMP 的研究将会带领我们进入一个丰富多彩的未知领域。第二章 基于 IPV4 的 ICMP 的认识2.1 OSI 参考模型和 TCP/IP 参考模型的比较 尽管 OSI 模型在各种场合得到了广泛的应用,但由于其建立时间过早,各种网络的发展不断突破了 OSI 参考模型,特别是互联网的发展,对 OSI 模型是一个巨大的挑战。OSI参考模型的教训是:首先,引入时间过晚,建立标准时 TCP/IP 已在大学使用,而后来又被广泛使用;其次,在技术上不能完全适应网络发展现状,如会话层在大多数应用中很少使用,表述层几乎是空的。相反数据链路层和网络层内容过多,有时不得不分成子层,每一子层赋予不同的功能。OSI 的另一个问题是有些功能在不同的层一再出现,如编址、流量控制、纠错等等。有些功能放在那里很难达成一致意见,如安全性、加密及网络管理层很难达成一致而干脆未包括在内。同时 OSI 完全忽略了无连接业务的相应的协议,而这在LAN 和演播室局域网中得到了广泛的应用,只是后来才加以补充。另一个严重问题是 OSI主要考虑通信,而计算机世界有相当多的不同点。最后在 OSI 的实现和政策上都有一些问题。 我们再来看一下 TCP/IP 参考模型,如图 1。可以看到,其中不存在会晤层和表述层,主要面向连接的网络层也被以包交接为基础的无连接互联网络层代替,称为互联网层,数据链路层和物理层也大大简化为主机到网络层(Host-To-Network) ,除了指出主机必须使用能发送 IP 包的协议外并不规定什么。在互联网层中定义了包结构和相应的协议,称为互联网协议(IP:Internet Protocol) ,主要作用是将 IP 包送到相应的地址。TCP/IP 传送层的作用类似于 OSI 传送层的作用,是使源和目标设备相互对话。TCP/IP 定义了两种端到端协议,第一种是传输控制协议(TCP:Transmission Control Protocol) ,是可靠的面向连接的协议,能确保拜特流无误码从源设备传送到互联网中的其他设备。它将输入拜特流分割成较小的信息并将其每一个都放入互联网层,在接收端,接收 TCP 重组所接收的信息还原成原拜特流。TCP 还进行流量控制,确保较高速的发送端不会使较低速的接收设备过载。第二种协议是用户数据报协议(UDP:User Datagram Protocol) ,是一个非确保的无连接协议,用于那些不需要 TCP 顺序和流量控制的应用,广泛用于单项数据传输、服务器用户类型的应答应用。在这些应用中,即时传送比精确传送更重要,典型的应用就是语言和视频传输。 2.2 TCP/IP 在网络中的地位和作用TCP/IP 协议并不完全符合 OSI 的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的 7 层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这 7 层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而 TCP/IP 通讯协议采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这 4 层分别为:应用层、传输层、互连网络层、网络接口层。 网际协议 IP 是 TCP/IP 的心脏,也是网络层中最重要的协议。IP 层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP或 UDP 层;相反,IP 层也把从 TCP 或 UDP 层接收来的数据包传送到更低层。IP 数据包是不可靠的,因为 IP 并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址) 。图 1 OSI 参考模型和 TCP/IP 参考模型面向连接的服务(例如 Telnet、FTP、rlogin、X Windows 和 SMTP)需要高度的可靠性,所以它们使用了 TCP。 2.3 ICMP 的介绍ICMP 是 “Internet Control Message Protocol”(Internet 控制报文协议)的缩写,是一个非常重要的协议,它对于网络安全具有极其重要的意义。ICMP 消息是随 IP 数据包一起传输的,但该消息本身也是一种与 IP 协议并行运行在网络层的协议。它是 TCP/IP 协议族的一个子协议,用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。我们在网络中经常会使用到 ICMP 协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的 Ping 命令,这个“ping ”的过程实际上就是 ICMP 协议工作的过程。还有其他的网络命令如跟踪路由的 Tracert 命令也是基于 ICMP 协议的。2.3.1 ICMP 协议报头ICMP 消息使用了一种简单的数据结构,其报头部分由三个字段组成,作为报头第一项的类型(type )字段占用了一个字节,用来表示该协议消息所实现的功能,而占用一个字节长度的代码(code)字段则用来进一步对消息内容进行分类。ICMP 协议报头最后一项是两个字节长度的校验和,而其后的 ICMP 消息内容则与消息功能有关,但所有消息内容中都必须带有引发错误消息和数据报的 IP 报头和前个字节,而且这些信息足以使其上层协议对自己的报头进行检查并根据 ICMP 消息内容来执行适当的操作。最重要的是,ICMP 协议不支持数据纠错功能,该协议只是通过向数据源回送错误消息来告诉路由错误。类型 代码 名称 含义 0 * Echo replay 对 ping 的回应 3 * Destination Unreachable 主机或路由器返回信息:一些包未达到目的地 0 Net Unreachable 路由器配置错误或错误指定 IP 地址 1 Host Unreachable 最后一个路由器无法与主机进行 ARP 通讯 4 * Source Quench Internet 阻塞 5 * Redirect 有人试图重定向你的默认路由器,可能 Hacker 试图你 进行“man-in-middle”的攻击,使你的机器通过他们的机器路由。 8 * Echo Request ping 9 * Router Advertisement hacker 可能通过重定向你的默认的路由器 DoS 攻击你的IP 报头 类型 代码 校验和(至少字节) (字节) (字节) (字节)ICMP 消息内容(长度和格式不定)Win9x 或 Solaris。邻近的 Hacker 也可以发动 man-in-the-middle 的攻击 11 * Time Exceeded In Transit 因为超时包未达到目的地 12 * Parameter Problem 发生某种不正常,可能遇到了攻击2.3.2 ICMP 协议的消息为了提前预防协议可能引发的问题,ICMP 协议技术规范中事先对消息进行了若干限制。比如说,规定一个 ICMP 错误消息不能引发另一个 ICMP 错误消息。1) 路由消息ICMP 路由消息大多用于请求得到可使用的路由器的清单或对请求的应答,应答中包括可用路由器的清单(清单中的每个路由都有优先级别) 。一类路由是在路由器过载情况下产生的。如果一个主机向路由器发送过量数据,或者多个主机同时向路由器发送大量数据,都可以导致路由器瘫痪。但是,这时,路由器可以向发送方回送请求减速消息。每当路由器无法对接收的数据报进行处理时,路由器就把该数据报丢弃并同时回送给数据源一个减速消息,请求高速传输主机降低发送速率。收到减速消息的源主机将逐步降低速率直到错误消息消失为止,然后再逐步提高发送速率直到错误消息出现为止。另一类情况是发生在向一个录由器发送数据报时另一个路由器可借助 ICMP 消息广播一个更好的路由。称为路由重新定向。2) 无法到达消息ICMP 无法到达的消息表示在对数据报进行寻址过程中寻址失败而引发的错误信息。举个简单的例子,目标地址有误的数据报可以引发 ICMP 协议将无法到达的消息回送给该数据报的原始发送主机。该消息一般用来指出目标主机或网络不存在或没有应答。引发该类错误消息的主要原因包括主机处于关机状态,网络链路故障,以及无法使用特定的协议等。2.3.3 ping 命令ICMP 协议提供的网络工具之一就是网络管理员最常使用的 ping 命令。ping 命令可以把一个 ICMP 回显请求发送给一个指定的主机,接收该命令的主机通过回送一个 ICMP 回显应答来对收到的 ICMP 回显请求进行应答。ping 命令的目的是测试主机是否存在。其实,ping 命令是测试网络中两个主机是否可以实现最低级别的连通性。2.3.4 路由跟踪 traceroute路由跟踪程序 traceroute 借助于 ICMP TTL 超时消息来巧妙地收集客户端与服务器之间的路右信息。该程序可输出所有参与转发数据包的路由器的名称以及消息从主机到该路由器的往返传输时间。网络管理员可借助该工具来对响应速度较慢的连接进行诊断,通过观察数据包从一个主机到另一个主机的传输路径有助于帮助管理员确定网络瓶颈的具体位置(也就是应答速度最慢的路由器)或不合理的传输路径。与 ping 命令类似,虽然路由跟踪程序不能为网络管理提供全面解决方案,但该工具作为诊断工具来说还是非常有用的。2.4 利用 ICMP 恶意攻击影响网络安全当今世界上,平均每 20 秒钟就有一起黑客事件发生,仅在美国每年造成的经济损失就超过 100 亿美圆。ICMP 协议对于网络安全具有极其重要的意义。ICMP 协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。服务拒绝攻击(DoS)企图通过使服务计算机崩溃或把它压跨来阻止提供服务,服务拒绝攻击是最容易实施的攻击行为。由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对 TCP/IP 栈的实现在 ICMP 包上都是规定 64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过 ICMP 上限的包也就是加载的尺寸超过 64K 上限时,就会出现内存分配错误,导致 TCP/IP 堆栈崩溃,致使接受方当机。这就是所说的“ping of death”,现在网络上很多号称能够致使系统死机的软件都是基于这个原理,我们所熟悉的工具“Winnuke”就是一例。对路由器而言,向Intel Express Switch 或其后的主机发送一畸形的 ICMP 包可能导致系统崩。通过本地或远程发送的畸形包能蒙骗服务器。当服务器收到畸形的 ICMP 包时,它将继续检查才对,然而它将丢失所有的路由功能,而且不将检查其它连接了。主要影响 Intel Express Switch 500系列。另外,Windows 也有拒绝服务漏洞,对 Win98 NT4/SP5,6 Win2K 都有影响,当如上系统受到非法碎片包包含不合法碎片 ICMP ECHOs (pings)和 UDP packets 攻击,Windows 系统会拒绝服务。直至 CPU 占用率达到 100%,最后系统崩溃。 ICMP 重定向提供了一种相当有效的 DoS。不象 ARP 入口,这些特定主机路由入口永不过期。注意,攻击没有要求必须从局域网内发起,事实可以从广域网上发起。如果子网所用 DNS 位于网关外,产生一个到该 DNS 的错误路由是很容易的,通过在 Pwin98 下测试,由 ICMP 重定向包产生的路由都是掩码为 55 的特定主机路由,没有办法产生诸如 这样掩码下的网络路由。此外,由 ICMP 重定向包产生的路由还是会过期的,会被删除,但耗时很长。许多桌面操作系统线性搜索自己的路由表,如果你利用 ICMP 重定向包加了太多特定主机路由到它们的路由表中,极其容易造成系统的瘫痪。对于 Unix系统,虽然搜索路由表时不是线性搜索,但过多的特定主机路由会消耗大量的内存空间。于是,就有了海信“设擂”50 万其欲为何的报道:8 月 21 日海信集团在中关村当代商城,举行新闻发布会:海信“8341 防火墙”悬赏“50 万” ,接受全国及至全球的计算机、网络界高手检测。虽然结果是没有人能够拿到防火墙后面的密码,但是防火墙遭到大量的 ICMP 攻击,导致防火墙的 IP 地址 ping 不通,造成大量攻擂者以为海信公司言而无信,取消了测试,转而怒牵于海信公司主页,于是 8 月 24 日海信集团网站被“黑” 。海信公司自己提供的防火墙遭攻击记录如下:攻击类型 攻击次数1 ICMP 攻击 3340502 碎片攻击 255243 端口扫描 43654 WEB 服务攻击 12275 UDP 攻击 2346 拒绝服务攻击 12事实可以看到,造成海信服务器“拒绝服务”的绝大多数攻击来自于 ICMP 攻击。此外,向目标主机长时间、连续、大量地发送 ICMP 数据包,也会最终使系统瘫痪。大量的 ICMP 数据包会形成 “ICMP 风暴” ,使得目标主机耗费大量的 CPU 资源处理,疲于奔命。不过,对于防止拒绝服务攻击,有关部门也采取了一些相应的措施:对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。比如我们可以在服务器端拒绝所有的 ICMP 包,或者在该网段路由器上对 ICMP 包进行带宽限制,控制其在一定的范围内。第三章 ICMP 部分功能的模拟实现3.1 背景3.1.1 ping 命令的深入认识ICMP 协议提供的网络工具之一就是网络管理员最常使用的 ping 命令。ping 命令可以把一个 ICMP 回显请求发送给一个指定的主机,接收该命令的主机通过回送一个 ICMP 回显应答来对收到的 ICMP 回显请求进行应答。 ping 命令的目的是测试主机是否存在。其实,ping 命令是测试网络中两个主机是否可以实现最低级别的连通性。它的格式是:ping (注:若只用 IP 主机名的话,则该

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论