1、 共 16 页 第 1 页 装 订 线 目目 录录 1 引言 错误错误!未定义书签。未定义书签。 1.1 课程设计目的 错误错误!未定义书签。未定义书签。 1.2 课程设计内容 错误错误!未定义书签。未定义书签。 2 课程设计原理. 错误错误!未定义书签。未定义书签。 2.1 ICMP 的简介和原理 . 错误错误! !未定义书签。未定义书签。 2.2 traceroute 程序的基本原理 . 错误错误! !未定义书签。未定义书签。 2.3traceroute 实现的功能 . 错误错误!未定义书签。未定义书签。 3 设计步骤 错误错误!未定义书签。未定义书签。 3.1 traceroute 流程
2、图6 3.2 traceroute 的核心程序7 3.3traceroute 程序运行结果.7 4 心得结论 错误错误!未定义书签。未定义书签。 5 参考文献 错误错误!未定义书签。未定义书签。 6 程序清单 错误错误!未定义书签。未定义书签。 共 16 页 第 2 页 装 订 线 1 1 引引 言言 Internet,是目前世界上最大的计算机网络,更确切的说是网络中的网络, 它由遍布全球的几万局域网和数百万台计算机组成,并通过用于异构网络的 TCP/IP 协议进行网间通信。互联网中,信息的传送是通过网中许多段的传输介 质和设备从一端到达另一端。每一个连接在 Internet 上的设备,如主机
3、、路由 器、接入服务器等一般情况下都会有一个独立的 IP 地址。通过 Traceroute 我 们可以知道信息从你的计算机到互联网另一端的主机是走的什么路劲。当然每 次数据包由某一同样的出发点到达某一同样的目的地走的路劲可能会不同,但 基本上来说大部分时候所走的路由是相同的。随着 Internet(国际互联网)的 发展,越来越多的服务通过网络提供给大众,与此同时,针对互联网的攻击事 件也越来越频繁。 所谓路由追踪实际上就是在 IP 网络上判断从源到达目的所经 过的路由器的 IP 地址, 其基本的实现手段都是向目的地发送数据包以获取经过 的路由器的 IP。 由于 Internet 上的路由协议是
4、动态的, 所以每次形成的数据包 从同一个出发点到达目的地的路由可能会不一样,但由于路由算法有一定的稳 定性,在大部分时侯所走的路由会是相同的。 1.1 1.1 课程设课程设计目的计目的 1.这次课程设计,主要为了加深同学们对计算机网络网络的理解和认识 2.了解信息在计算机网络与网络之间的传送和接收 3.进一步加深了解网络与网络之间的协议 4.理解网络中的 IP 地址以及路由之间的相关命令。 1.2 1.2 课程设计内容课程设计内容 1.已知参数:输入:目的节点 IP 地址或主机名;输出:从控制台屏幕输出 IP 报文由本机出发到达目的主机所经过的路由信息。 2.设计要求:通过原始套接字编程,实现
5、 Tracert 的基本功能 (1) Ping 功能:发送 ICMP 数据包到目标计算机,如有返回,显示响应时间等 (2) 路由探测功能: 依次 Ping 途经的路由器或网关设备, 依次显示途经路由器的响应时 间。 共 16 页 第 3 页 装 订 线 (增加的功能) 2.1 初始化 Windows Sockets 网络环境; 2.2 解析命令行参数,构造目的端 socket 地址; 2.3 定义 IP、ICMP 报文; 2.4 接收 ICMP 差错报文并进行解析 2 2 设计原理设计原理 raceroute 是一个路由跟踪命令,它通过 ICMP 协议和 header 中 (存活时间)来实现的。 具体而言就是:发送方发出一个是的 IP Datagram (事实上每个数据包发送三次,大小为 40 字节,包括本机的 IP 地址, 目的主机的 IP 地址以及时间戳) ,当经由第一个路由器时,路由器将该数据包 的 TTL 减 1, 发现此时的 TTL 为 0, 将数据包丢失, 同时向源主机发送一个 ICMP Time-to-Exceed 报文(包括源主机的 IP 地址、路由地址以及路由的相关消息) , 源主机收到这个数据包后就知道了这个路由器在这条路径上。