网络编程—TRACEROUTE程序实例.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 14 PAGE 13 目录 TOC \o 1-3 \h \u 25032 目录 2 20906 1. 问题描述 3 226 2. 需求分析 3 29006 3. 系统设计 3 30143 3.1. 概要设计 3 14202 3.2. 详细设计 5 21650 3.2.1. Traceroute的实现原理 5 10271 4. 调试 7 30695 5. 总结 8 2166 6. 附录 9 31111 7. 参考文献 14 5831 8. 设计评语 15 问题描述 本次课程设计,我们小组选择了课外的题目,经过讨论,最终我们决定我们小组的课题为:网络编程——Traceroute程序的应用。 Traceroute(路由追踪)是一个非常有用的网络工具。在命令提示符下,执行Traceroute程序,输入必要的参数后即可探测出到达网络中任何一台目标主机中途需要经过哪些路由器以及每个路由器的信息,比如IP地址等。在网络中进行多播通信或者遇到路由问题时,Traceroute获得的信息就非常有用。 需求分析 路由是把信息从源穿过网络传递到目的地的行为,在传输过程中,遇到一系列的中间节点。这些中间节点构成了路由跟踪的依据。路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功,这一时间延迟的主要原因是七十年代的网络很简单,后来大型的网络才较为普遍。而路由跟踪是在路由的基础上提出的问题,是利用路由跟踪实用程序于确定 IP 数据报访问目标所采取的路径。 当我们不能通过网络访问目的设备时,网络运行者就需要判断是哪里出了问题。问题不仅仅会出现在最终目的设备,也可能出现在转发数据包的中间路由器。解决方法是,了解了 IP 数据报访问目标所采取的路径,将发现网络布网简单拓扑,确定路由断点即可解决网络故障。 操作系统中的 tracert 或 traceroute 路由跟踪程序,通过它可以查看到达目标地址所经过的路径。它的作用与 ping 有类似之处,使用 ping 可以检查是否连接,如果不通,一般不好准确判断哪一个节点出错,而使用 tracert 则可以准确判断出错的部分。路由跟踪程序随着网络的发展而发展,现已经较为成熟,不仅在操作系统上有路由跟踪程序,在中间设备也加入路由跟踪程序,如 cisco 扩展路由跟踪程序,提供详细的参数选择。 单、多线程路由跟踪程序都已经面世,实现方式也各不相同,如基于记录路由选项的,基于 UDP, 基于 ICMP Echo Request 的路由探测。 本课题主要基于UDP协议的路由探测方法。 系统实现路由的跟踪,每经过一个路由,要求得到经过该路由节点的地址,也就是说输入目标信息, 可以得到本地主机到目标经过的所有中间节点。这些中间节点用 IP 地址标识。并要求对跟踪跳数,每一跳等待时间可控。 为了让系统更加完善,首先要测试目标的连通性,系统中也要实现目标探测功能,即Ping 功能。 系统设计 概要设计 本次编写的Traceroute程序编写环境为在Linux系统下使用C语言进行编写。当完成编写后,使用gcc编译工具进行编译,测试无误后再次使用arm-linux-gcc进行编译,移植入开发板进行测试。 由于Traceroute程序的运行需要有真实的网络环境,需要根据所需的环境来搭建并且配置路由器,在当前条件下,我们小组使用了Dynamips模拟器。 实验所需的拓扑图如下: 当在Linux系统下运行经过编译的Traceroute程序并输入需要进行追踪的IP地址,程序会显示出到达目标主机所经过的每一个路由器。 Linux系统网络属性配置 配置好linux系统中的网络属性,将IP地址设置为与R4同一网段,网关设置为10.0.0.1,即R4,运行经过编译的Traceroute程序并输入需要进行追踪的IP地址,程序会显示出到达目标主机所经过的每一个路由器。(详见测试结果) 详细设计 Traceroute的实现原理 Traceroute程序的实现主要涉及IP头部生存时间(time to live,TTL)字段的使用。 设置TTL字段的目的是防止数据报由于选路错误或其他软硬件原因从而导致在网络中无休止的流动,它指定了数据报的生存时间。TTL的初始值由源主机设置,当一份数据报经过路由器时,处理该数据报的路由器都需要把TTL值减去数据报在路由器中停留的秒数。但事实上大多数路由器只是简单地将TTL值减1,因此TTL字段最终被实现为一个跳站计数器。当TTL字段的值被减为0时,路由器就不会转发该数据报,而是将其丢弃,并产生一份ICMP超时差错报文发往源主机以通知错误的发生。Traceroute程序的关键就在于返回的这份ICMP超时差错报文的源地址就是途径路由器的IP地址。

文档评论(0)

xieliandimei + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档