网络编程—traceroute程序实例

网络编程—traceroute程序实例

ID:8872477

大小:308.50 KB

页数:14页

时间:2018-04-10

网络编程—traceroute程序实例_第1页
网络编程—traceroute程序实例_第2页
网络编程—traceroute程序实例_第3页
网络编程—traceroute程序实例_第4页
网络编程—traceroute程序实例_第5页
资源描述:

《网络编程—traceroute程序实例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、目录目录21.问题描述32.需求分析33.系统设计33.1.概要设计33.2.详细设计53.2.1.Traceroute的实现原理54.调试75.总结86.附录97.参考文献148.设计评语1513问题描述本次课程设计,我们小组选择了课外的题目,经过讨论,最终我们决定我们小组的课题为:网络编程——Traceroute程序的应用。Traceroute(路由追踪)是一个非常有用的网络工具。在命令提示符下,执行Traceroute程序,输入必要的参数后即可探测出到达网络中任何一台目标主机中途需要经过哪些路由器以及每个路由器的信息,比如IP地址等。在网络中进行多播通信或者遇到路由问题时,Tracer

2、oute获得的信息就非常有用。1.需求分析路由是把信息从源穿过网络传递到目的地的行为,在传输过程中,遇到一系列的中间节点。这些中间节点构成了路由跟踪的依据。路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功,这一时间延迟的主要原因是七十年代的网络很简单,后来大型的网络才较为普遍。而路由跟踪是在路由的基础上提出的问题,是利用路由跟踪实用程序于确定IP数据报访问目标所采取的路径。当我们不能通过网络访问目的设备时,网络运行者就需要判断是哪里出了问题。问题不仅仅会出现在最终目的设备,也可能出现在转发数据包的中间路由器。解决方法是,了解了IP数据报访问目标所采取的路径,将发现网络布网简单拓

3、扑,确定路由断点即可解决网络故障。操作系统中的tracert或traceroute路由跟踪程序,通过它可以查看到达目标地址所经过的路径。它的作用与ping有类似之处,使用ping可以检查是否连接,如果不通,一般不好准确判断哪一个节点出错,而使用tracert则可以准确判断出错的部分。路由跟踪程序随着网络的发展而发展,现已经较为成熟,不仅在操作系统上有路由跟踪程序,在中间设备也加入路由跟踪程序,如cisco扩展路由跟踪程序,提供详细的参数选择。单、多线程路由跟踪程序都已经面世,实现方式也各不相同,如基于记录路由选项的,基于UDP,基于ICMPEchoRequest的路由探测。本课题主要基于UD

4、P协议的路由探测方法。系统实现路由的跟踪,每经过一个路由,要求得到经过该路由节点的地址,也就是说输入目标信息,可以得到本地主机到目标经过的所有中间节点。这些中间节点用IP地址标识。并要求对跟踪跳数,每一跳等待时间可控。为了让系统更加完善,首先要测试目标的连通性,系统中也要实现目标探测功能,即Ping功能。3.系统设计3.1.概要设计本次编写的Traceroute程序编写环境为在Linux系统下使用C语言进行编写。当完成编写后,使用gcc编译工具进行编译,测试无误后再次使用arm-linux-gcc进行编译,移植入开发板进行测试。13由于Traceroute程序的运行需要有真实的网络环境,需要

5、根据所需的环境来搭建并且配置路由器,在当前条件下,我们小组使用了Dynamips模拟器。实验所需的拓扑图如下:当在Linux系统下运行经过编译的Traceroute程序并输入需要进行追踪的IP地址,程序会显示出到达目标主机所经过的每一个路由器。Linux系统网络属性配置配置好linux系统中的网络属性,将IP地址设置为与R4同一网段,网关设置为10.0.0.1,即R4,运行经过编译的Traceroute程序并输入需要进行追踪的IP地址,程序会显示出到达目标主机所经过的每一个路由器。(详见测试结果)133.1.详细设计3.1.1.Traceroute的实现原理Traceroute程序的实现主要

6、涉及IP头部生存时间(timetolive,TTL)字段的使用。设置TTL字段的目的是防止数据报由于选路错误或其他软硬件原因从而导致在网络中无休止的流动,它指定了数据报的生存时间。TTL的初始值由源主机设置,当一份数据报经过路由器时,处理该数据报的路由器都需要把TTL值减去数据报在路由器中停留的秒数。但事实上大多数路由器只是简单地将TTL值减1,因此TTL字段最终被实现为一个跳站计数器。当TTL字段的值被减为0时,路由器就不会转发该数据报,而是将其丢弃,并产生一份ICMP超时差错报文发往源主机以通知错误的发生。Traceroute程序的关键就在于返回的这份ICMP超时差错报文的源地址就是途径

7、路由器的IP地址。由此,通过一次递增TTL字段的值,就可以得到一份数据报在其传输路径上所经过的路由信息。Traceroute程序在具体实现时,是令其向目的主机发送一个UDP数据包,并重复递增IP头部TTL字段的值。刚开始的时候TTL等于1,这样当该数据包抵达途中的第一个路由器时,TTL的值就被减为0,导致发送超时错误,因此该路由器会返回一个ICMP超时数据包到源主机。随后,主机将数据包的TTL值递增1,以便I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。