- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1
Traceroute?程序设计与实现
学生姓名:?樊冠宇 指导老师:姜文超
摘 要?本文主要讲述了路由追踪的基本程序设计与实现,并给出了一种基
于IP网络的路由追踪命令Tracert,详细分析了实现路由追踪的基本原理,归纳了
路由追踪的基本流程。Tracert通过ICMP协议和IP?header中TTL(存活时间)
利用路由器对数据报存活时间的处理方式来实现路由探测的。首先根据任务书
设计好流程图,然后编写程序代码,运行得到Traceroute的命令窗口。提取
tracert的输出,再结合现有IP数据库及自建地名- 坐标数据库对路由中各节点
IP进行定位,最终实现了动态显示追踪的详细信息和路径。
关键词:?IP?地址,ICMP?协议,TTL,Tracert?路由追踪
12
1
1?引?言
Internet,是目前世界上最大的计算机网络,更确切的说是网络中的网络,
它由遍布全球的几万局域网和数百万台计算机组成,并通过用于异构网络的
TCP/IP?协议进行网间通信。互联网中,信息的传送是通过网中许多段的传输介
质和设备从一端到达另一端。每一个连接在?Internet?上的设备,如主机、路由
器、接入服务器等一般情况下都会有一个独立的?IP?地址。通过?Traceroute?我
们可以知道信息从你的计算机到互联网另一端的主机是走的什么路劲。当然每
次数据包由某一同样的出发点到达某一同样的目的地走的路劲可能会不同,但
基本上来说大部分时候所走的路由是相同的。随着?Internet(国际互联网)的
发展,越来越多的服务通过网络提供给大众,与此同时,针对互联网的攻击事
件也越来越频繁。所谓路由追踪实际上就是在?IP?网络上判断从源到达目的所经
过的路由器的?IP?地址,其基本的实现手段都是向目的地发送数据包以获取经过
的路由器的?IP。由于?Internet?上的路由协议是动态的,所以每次形成的数据
包从同一个出发点到达目的地的路由可能会不一样,但由于路由算法有一定的
稳定性,在大部分时侯所走的路由会是相同的。
1.1?课程设计目的
1.这次课程设计,主要为了加深同学们对计算机网络网络的理解和认识
2.了解信息在计算机网络与网络之间的传送和接收
3.进一步加深了解网络与网络之间的协议
4.理解网络中的?IP?地址以及路由之间的相关命令。
1.2?课程设计内容
1.已知参数:输入:目的节点?IP?地址或主机名;输出:从控制台屏幕输出?IP
报文由本机出发到达目的主机所经过的路由信息。
2.设计要求:通过原始套接字编程,实现?Tracert?的基本功能
13
1
2.1?初始化?Windows?Sockets?网络环境;
2.2?解析命令行参数,构造目的端?socket?地址;
2.3?定义?IP、ICMP?报文;
2.4?接收?ICMP?差错报文并进行解析。
1.3?课程设计要求
(1)按要求编写课程设计报告书,能正确阐述设计结果。
(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(3)学会文献检索的基本方法和综合运用文献的能力。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
2?设计原理
raceroute?是一个路由跟踪命令,它通过?ICMP?协议和IP header?中
TTL(存活时间)来实现的。?具体而言就是:发送方发出一个TTL是1的
IP Datagram (事实上每个数据包发送三次,大小为?40?字节,包括本机的?IP
地址,目的主机的?IP 地址以及时间戳),当经由第一个路由器时,路由器将该
数据包的?TTL?减?1,发现此时的?TTL?为?0,将数据包丢失,同时向源主机发送
一个?ICMP?Time-to-Exceed?报文(包括源主机的?IP?地址、路由地址以及路由的
相关消息),源主机收到这个数据包后就知道了这个路由器在这条路径上。同理
发送第二个、第三个...... 第?n?个。源主机将每次IP数据报的TTL+1,直到
某个数据报到达了目的地址,此时不知发回一个ICMP
Time-to-Exceed,而是发送一个数据报的响应报文。当源主机
收到这样一个报文后便知道数据包已经到达了目的地。Traceroute?提取发?ICMP
TTL?到期消息设备的?IP?地址并作域名解析。每次?,Traceroute?都打印出一系列
数据,包括所经过的路由设备的域名及 IP?地址,三个包每次来回所花时间。
Traceroute?有一个固定的时间等待响应(ICMP?TTL?到期消息)。如果这个时间过
14
1
了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间
内发出?ICMP TTL?到期消息的响应。然后,Traceroute?给?TTL?记数器加?1,继
续进
文档评论(0)