traceroute程序设计与实现
实验4.Trancert程序的实现

实验四 Trancert程序的实现的设计和实现1.实验目的:(1)掌握ICMP协议的基本工作原理,熟悉ICMP报头格式与各字段的含义(2)掌握Tracert程序的基本功能、原理与实现方法(3)熟悉分析与统计IP数据包信息的方法(4) 掌握Tracert程序设计与软件编程方法(5) 要求有良好的编程规范与注释信息,要求有详细的说明文档,包括程序的设计思想、活动图、关键问题以及解决方法。
2实验环境:(1)Linux操作系统(2)局域网能连接Internet。
3.简述Tracert的实现原理。
向目的主机发送一个ICMP回显请求消息,初始的时候TTL等于1,这样当该数据报抵达途中的第一个路由器时,TTL值就被减为0,导致发生超时错误,因此该路由器生成一份ICMP超时差错报文返回给源主机。
随后,主机将数据报的TTL值递增1,以便IP报文能传输到下一个路由器,并由下一路由器生成ICMP超时差错报文返回给源主机。
不断重复这个过程,直到数据报到达最终的目的主机,此时目的主机将返回ICMP回显应答消息。
这样,源主机只需对返回的每一份ICMP报文进行解析处理,就可以掌握数据报从源主机到达目的主机途中所经过的路由信息。
4.写出ICMP协议报文格式,并给出用于跟踪路由的ICMP报文类型对应的报文格式。
画出这几种ICMP报文放在IP协议中时的结构及其结构中可以确定的字段的值。
用于跟踪路由器的ICMP报文类型是ICMP回显请求报文和ICMP超时差错报文5.如何设置raw socket接收超时属性。
Int iTimeout=3000;Setsockopt(sockRwa, SQL_SOCKET, SO_RCVTIMEO, (char*)&iTimeout, sizeof (iTimeout));Setsockopt(sockRwa, SQL_SOCKET, SO_SNDTIMEO, (char*)&iTimeout, sizeof (iTimeout));6.如何判断超时,并写出判断超时对应的所有代码。
基于淘宝口地址库的图形界面traceroute程序的设计与实现

关键词 : t r a c e r o u t e ; 淘宝 I P地 址 库 ; I C MP 中图分类号 : T P 3 1 1 . 5 2 文 献 标 志 码 :B 文章编号 : 1 6 7 2 — 2 4 3 4 ( 2 0 1 4 ) 0 1 — 0 0 2 4 — 0 3
基 于 淘 宝 口 地 址 库 的 图形 界 面 t r a e e r o u t e 程 序 的 设 计 与 实 现
张 亮
江苏扬州 2 2 5 1 2 7 ) ( 扬 州工业 职业技术学院电气信息工程学院
摘
要: t r a c e r o u t e程序是常用 的网络诊 断T具之 一 , 操 作 系统 自带 的 t r a c e r o u t e程序 均基于 终端命令 行界 面 , 使用不 方便 , 且 无法显示 每一跳 路由 I P所 对应的地理和运营商信息 。设计 实现 了一个 基 于图形界 面 的 t r a c e r o u t e程 序 , 并 利用 淘宝 网提供 的 I P地址库 和 We b S e r v i c e AP I 接口, 对每一跳路 由 I P地址进行查询 , 显示该 I P地址 所对应 的运 营商 及所在 地 区。实践证 明 , 该t r a c e r o u t e程序 比操作系统 自带版本使用更加方便和直观 。
[网络安全知识教育]网络安全知识资料
![[网络安全知识教育]网络安全知识资料](https://img.taocdn.com/s3/m/6098d7d5185f312b3169a45177232f60ddcce7d6.png)
[网络安全知识教育]网络安全知识资料网络安全知识资料11.网络安全类型运行系统安全,即保证信息处理和传输系统的安全。
它侧重于保证系统正常运行,避免因为系统的崩溃和损坏而对系统存贮、处理和传输的信息造成破坏和损失,避免由于电磁泄漏,产生信息泄漏,干扰他人,受他人干扰。
网络上系统信息的安全。
包括用户口令鉴别,用户存取权限控制,数据存取权限、方式控制,安全审计,安全问题跟踪,计算机病毒防溻,数据加密。
网络上信息传播安全,即信息传播后果的安全。
包括信息过滤等。
它侧重于防止和控制非法、有害的信息进行传播后的后果。
避免公用网络上大量自由传输的信息失控。
网络上信息内容的安全。
它侧重于保护信息的保密性、真实性和完整性。
避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为。
本质上是保护用户的利益和隐私。
2.网络安全特征网络安全应具有以下四个方面的特征:保密性:信息不泄漏给非授权用户、实体或过程,或供其利用的特性。
完整性:数据未经授权不能进行改变的特性。
即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。
可用性:可被授权实体访问并按需要使用的特性。
即当需要时能否存取所需的信息。
例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;可控性:对信息的传播及内容具有控制能力。
3.威胁网络安全因素自然灾害、意外事故;计算机犯罪; 人为行为,比如使用不当,安全意识差等;黑客“ 行为:由于黑客的入侵或侵扰,比如非法访问、拒绝服务计算机病毒、非法连接等;内部泄密;外部泄密;信息丢失;比如信息流量分析、信息窃取等; 信息战;网络协议中的缺陷,例如TCP/IP协议的安全问题等等。
网络安全威胁主要包括两种:渗入威胁和植入威胁渗入威胁主要有:假冒、旁路控制、授权侵犯;植入威胁主要有:特洛伊木马、陷门。
陷门:把某一”特征“设立于某个系统或系统部件之中,使得在提供特定的输入数据时,允许安全策略被违反。
网络规划综合实验报告(3篇)

第1篇一、实验背景随着信息技术的飞速发展,网络已成为现代企业、学校等组织运行的重要基础设施。
为了更好地满足网络应用需求,提高网络性能和安全性,网络规划与设计显得尤为重要。
本实验旨在通过实际操作,使学生掌握网络规划的基本方法,提高网络规划与设计能力。
二、实验目的1. 了解网络规划的基本流程和原则;2. 掌握网络拓扑结构、设备选型、IP地址规划等网络规划方法;3. 学会使用网络规划工具,如Packet Tracer等;4. 提高网络规划与设计能力,为实际工作打下基础。
三、实验环境1. 实验设备:笔记本电脑、Packet Tracer、路由器、交换机等;2. 实验软件:Packet Tracer、网络规划工具等;3. 实验资料:网络规划与设计教材、网络设备手册等。
四、实验内容1. 实验任务:为某公司设计一个网络,包括网络拓扑结构、设备选型、IP地址规划等;2. 实验步骤:(1)需求分析:了解公司规模、部门分布、网络应用需求等,确定网络规模和性能要求;(2)网络拓扑设计:根据需求分析结果,设计网络拓扑结构,包括核心层、汇聚层和接入层;(3)设备选型:根据网络拓扑结构,选择合适的网络设备,如路由器、交换机、防火墙等;(4)IP地址规划:规划网络IP地址,包括公网IP地址和私有IP地址;(5)配置网络设备:在Packet Tracer中配置网络设备,实现网络连通;(6)测试网络性能:测试网络性能,如带宽、延迟、丢包率等;(7)总结实验结果:总结实验过程和结果,提出改进建议。
五、实验结果与分析1. 网络拓扑结构:采用三层网络架构,包括核心层、汇聚层和接入层;2. 设备选型:核心层采用路由器,汇聚层采用三层交换机,接入层采用二层交换机;3. IP地址规划:采用私有IP地址规划,公网IP地址通过NAT转换;4. 网络连通性:通过配置网络设备,实现网络连通;5. 网络性能:测试结果表明,网络带宽、延迟、丢包率等性能指标均符合设计要求。
计算机网络实验报告 常用网络命令(含答案)

Traceroute有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。
Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number是),所以当此UDP datagram到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute收到这个消息时,便知道目的地已经到达了。所以traceroute在Server端也是没有所谓的Daemon程式。
③Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。Tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。
《计算机网络》实验报告
实验名称
常用网络命令
班级
姓名
学号
成绩
实验任务:
1.掌握集成于Windows网络操作系统的常见网络调试命令的功能。
1.请运行测试并确定ping、ipconfig、tracert、arp、netstat命令的功能。
2.请运行测试并查阅net share、nslookup的功能;查阅net send的用法。
traceroute实验报告

信息工程学院盐城师范学院毕业论文(设计)基于ICMP的MyTraceRoute探测程序及其应用学生姓名沈晓玲学院信息科学与技术学院专业网络工程班级网络工程13(2)学号 13263408指导教师曹莹莹2016年 6月30日基于ICMP的MyTraceRoute探测程序及其应用摘要traceroute程序是进行网络测量的常用工具之一,通过用于异构网络的TCP/IP协议进行网间通信。
程序利用增加存活时间(TTL)值来实现其功能的。
每当数据包经过一个路由器,其存活时间就会减1。
当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。
原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据包套接字只能读取UDP协议的数据。
因此,如果要访问其他协议发送数据必须使用原始套接字。
原始套接字是,它实现于系统核心,普通的套接字无法处理icmp,igmp等网络报文,而原始套接字可以。
Traceroute程序是进行测量的常用工具之一,Traceroute功能可以通过很多协议实现,其原理是借助ICMP的超时差错报文来反馈路径信息。
【关键词】traceroute 网络通信原始套接字 ICMP的超市差错报文MyTraceRoute detection program based on ICMPand its applicationabstractTraceroute program is one of the commonly used tools for network measurement, through the TCP/IP protocol for heterogeneous network network communication.The program uses an increased survival time (TTL) value to achieve its function. When the packet passes through a router, its survival time will be reduced by 1. When the survival time is 0, the host will cancel the packet, and send a TTL ICMP packet to the sender of the original data packets. The original socket can read and write the kernel without processing the IP packet, and the stream socket can only read the data of the TCP protocol, the data packet socket can only read the data of UDP protocol. Therefore, if you want to access other protocols to send data must use the original socket. Original socket is, it is realized in the system core, ordinary sockets can not handle ICMP, IGMP and other network packets, and the original socket can be.Traceroute program is one of the commonly used tools for measurement, Traceroute function can be achieved through a lot of protocols, the principle is to use the ICMP timeout error messages to feedback path information.【Key words】traceroute network communication original socket ICMP supermarket error message目录1traceroute的概念原理以及软件环境 (4)1.1traceroute的概念 (4)1.2traceroute的概念及原理 (4)1.3设计的软件环境 (4)2设计过程和内容 (4)2.1实现原理 (4)2.2实验要求 (4)2.3实验内容 (5)3实验分析 (5)4实验中用到的函数总结 (6)4.1原始网络套接字网络功能框架 (6)4.2本试验中用到的函数,及函数的功能 (6)5在实验中用到的函数代码 (7)6实验结果截图 (11)7实验遇到的问题 (14)总结 (18)收获 (18)题目:基于ICMP的MyTraceRoute探测程序及其应用1traceroute的概念原理以及软件环境1.1traceroute的概念traceroute程序是进行网络测量的常用工具之一,通过用于异构网络的TCP/IP 协议进行网间通信。
大学计算机网络工程-期末试卷试题及答案

一、选择题1. 下列关于IEEE 802.11无线局域网使用的无线信道的叙述,不正确的是 D 。
(A) 目前802.11无线局域网使用了2.4~2.5GHz和5.725~5.875GHz无线频段(B) 802.11无线局域网使用的无线频段不需经过申请就能使用(C) 每个国家和地区允许使用的802.11无线局域网频段是不一定相同(D) 设计组建一个具有多个AP的无线局域网时,相互覆盖的AP可以使用相同的无线频段2. 下列关于RTS/CTS机制的叙述,不正确的是 A 。
(A) RTS/CTS机制是CSMA/CA协议的一部分(B) RTS/CTS机制的主要作用是解决无线局域网中“暴露节点”问题(C) RTS/CTS机制适合于传输较大的帧时使用(D) 以上均不正确3. 分发系统主要的作用是连接无线局域网延伸服务集中的 B 。
(A) 工作站(B) 接入点(AP)(C) 无线介质(D) 以上均不是4. 综合布线系统在计算机信息系统中属于 D 。
(A) 管理平台(B) 系统平台(C) 传输平台(D) 网络平台5. 在综合布线系统中,从某一建筑物中的主配线架延伸到另外一些建筑物的主配线架的连接系统被称为 A 。
(A) 建筑群子系统(B) 工作区子系统(C) 水平子系统(D) 垂直干线子系统6. 10Base-2以太网的最大网段距离为 A 。
(A) 185米(B) 500米(C) 200米(D) 100米7. OSI参考模型中第5层为 C 。
(A) 网络层(B) 数据链路层(C) 会话层(D) 表示层8. 常用的网络连通性测试命令是通过 C 协议来实现的。
(A) TCP (B) UDP (C) ICMP (D) ARP9. 在IEEE 802.3以太网中,工作站在发送帧之前,需要 C 。
(A) 先等待冲突(B) 等待一个令牌(C) 先侦听传输媒体(D) 先接收一个帧10. 在尚未对交换机、路由器设置IP地址的情况下,通常只能通过 C 对其进行访问。
traceroute流程

traceroute流程一、什么是traceroute?traceroute是一种网络诊断工具,用于确定数据包在通过Internet 传输时所经过的路由路径。
它通过发送一系列的数据包,每个数据包在传输过程中的路由节点上会返回一个回应,从而得知数据包经过的路径。
二、traceroute的工作原理1. 首先,traceroute会向目标主机发送一个TTL(Time To Live)为1的数据包。
2. 当数据包到达第一个路由节点时,该节点会将数据包的TTL减1,然后将其转发给下一个路由节点。
3. 如果TTL减为0,路由节点将不会转发该数据包,并向源主机发送一个“Time Exceeded”错误回应。
4. 源主机会收到该回应,并记录下该路由节点的IP地址。
5. 然后,traceroute会发送一个TTL为2的数据包,重复上述过程,直到到达目标主机。
6. 最后,traceroute会根据记录下的路由节点IP地址,计算出数据包的传输时间,并将结果显示出来。
三、traceroute的使用方法1. 打开命令行窗口(Windows系统使用cmd命令,Linux和Mac系统使用Terminal命令)。
2. 输入“traceroute”命令,后面跟上目标主机的IP地址或域名。
3. 按下回车键,即可开始运行traceroute。
4. 程序会逐个显示数据包经过的路由节点的IP地址和传输时间。
四、traceroute的结果解读1. 每一行显示一个路由节点的IP地址和传输时间。
2. IP地址用于标识路由节点的位置。
3. 传输时间表示数据包从源主机到达该路由节点的时间,单位为毫秒(ms)。
4. 传输时间通常会随着距离的增加而增加,但也可能受到网络拥塞等因素的影响。
5. 如果某个路由节点的传输时间过高,可能表明该节点处于拥塞状态或存在其他问题。
五、traceroute的应用场景1. 网络故障排除:当无法访问某个网站或连接某个服务器时,可以使用traceroute来确定网络中的瓶颈或故障点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Traceroute程序设计与实现学生姓名: 莫小锋指导老师:龙计征摘要本文主要讲述了路由追踪的基本程序设计与实现,并给出了一种基于IP网络的路由追踪命令Tr acert,详细分析了实现路由追踪的基本原理,归纳了路由追踪的基本流程。
Tr acert通过ICMP协议和IPheader中TTL(存活时间)利用路由器对数据报存活时间的处理方式来实现路由探测的。
首先根据任务书设计好流程图,然后编写程序代码,运行得到Traceroute的命令窗口。
提取tracert 的输出,再结合现有IP数据库及自建地名- 坐标数据库对路由中各节点IP进行定位,最终实现了动态显示追踪的详细信息和路径。
关键词: IP 地址,ICMP协议,TTL,Tracert路由追踪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的基本功能2.1初始化Windows Sockets网络环境;2.2解析命令行参数,构造目的端socket地址;2.3定义IP、ICMP报文;2.4接收ICMP差错报文并进行解析。
1.3课程设计要求(1)按要求编写课程设计报告书,能正确阐述设计结果。
(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(3)学会文献检索的基本方法和综合运用文献的能力。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
2设计原理raceroute是一个路由跟踪命令,它通过ICMP协议和IPheader中TTL(存活时间)来实现的。
具体而言就是:发送方发出一个TTL是1的IP Datagram (事实上每个数据包发送三次,大小为40字节,包括本机的IP 地址,目的主机的IP 地址以及时间戳),当经由第一个路由器时,路由器将该数据包的TTL减1,发现此时的TTL为0,将数据包丢失,同时向源主机发送一个ICMP Time-to-Exceed 报文(包括源主机的IP 地址、路由地址以及路由的相关消息),源主机收到这个数据包后就知道了这个路由器在这条路径上。
同理发送第二个、第三个......第n个。
源主机将每次IP数据报的TTL+1,直到某个数据报到达了目的地址,此时不知发回一个ICMPTime-to-Exceed,而是发送一个数据报的响应报文。
当源主机收到这样一个报文后便知道数据包已经到达了目的地。
Traceroute提取发ICMP TTL到期消息设备的IP地址并作域名解析。
每次,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及IP地址,三个包每次来回所花时间。
Traceroute 有一个固定的时间等待响应(ICMP TTL到期消息)。
如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。
然后,Traceroute给TTL记数器加1,继续进行。
2.1ICMP简介和基本原理ICMP(Internet Control Message Protocol),即Internet控制报文协议,它是TCP/IP协议族的一个子协议,属于网络层面向无连接的协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
ICMP报文被包装成IP数据包传到数据链路层进行传输。
通过ICMP协议,主机和路由器可以报告错误并交换相关的状态信息。
ICMP对于TCP/IP协议的可靠运行是至关重要的。
ICMP报文结构如图1所示:2.2traceRoute程序的基本原理路由追踪的主要原理是根据路径上各路由器对数据报的存活时(Time to Live,TTL)做不同的处理,使其产生超时ICMP消息响应,反馈至源主机,从而获得此跳路由器或主机的IP。
照此再发送下一个TTL经过自增的数据报,直至获得整个路由中各节点的IP或者接收到错误的消息。
详细过程描述如下:1) 置n = 1。
假设该过程中共经过M个路由器。
2) 源主机S向目标主机D发送一个TTL为n的UDP数据报。
并设定端口号(一般大于30 000) 。
3) 路由器(或者网关、主机) Rn 对接收到的数据报的TTL 值n做减1处理。
4) 若n = 0,则丢弃UDP数据报,向源主机S发送ICMP超时报文。
5) 若n ≥ 1,继续向目标主机D发送经过处理的数据报。
6) 源主机S分析返回的ICMP报文, 从中提取出发送者Rn的地址IPn并做记录。
7) 若收到“端口不可达”的ICMP报文,则发送方即目标主机D,记录其地址IPn,追踪完成。
8) 置n = n +1,继续向目标主机D发送TTL为n的数据报。
注意,这里使UDP数据报的端口号大于30000,是因为一般的应用程序不可能使用如此高的端口号。
当然这并非绝对,若出现例外,则源主机会发现等待超时,于是随机改变此UDP数据报的端口号,再次发送。
这样最终可以在目标主机上找到一个空闲的端口号。
另外,这里假设路由器和目标主机没有被配置为“过滤ICMP”或者做了其他的非常规处理,如果被做了类似的配置,则上面的追踪机制就无能为力了。
2.3traceRoute实现的功能IP数据报的首部由两部分构成:固定部分和可变部分。
固定部分的长度是20个字段,可变部分由许多选项构成,最长可达40个字节。
虽然选项并不是IP 数据报的必需部分,但选项的处理却是IP软件的必需部分。
在现在的TCP/IP协议中,只定义了六种选项,对于我们进行路由追踪技术有用的是记录路由选项,一个记录路由选项是用来记录处理IP数据报的互联网路由器的IP地址。
因为首部的最大长度是60个字节,它包括20个字节的基本首部。
这就意味着只剩下40个字节留下给选项部分,所以通过选项字段最多能够记录9个路由器的IP地址。
源站在选项中创建一个位标置(placeholder),用来填入所经过的各路由器,图2给出了记录路由选项的格式。
图2 记录路由选项向目的主机发送一个ICMP报文,这种方法只要求使用一个套接字。
ICMP即Internet控制报文协议,是一种用于特殊用途的报文机制,可以使互联网中的路由器或主机报告差错或提供有关意外情况的信息。
尽管UDP和ICMP工作在TCP/IP的不同层次上,但他们的封装是类似的。
ICMP报文为两级封装ICMP报文放在IP数据报的数据部分,数据报则放在帧的数据中进行网络传输(如图3所示)ICMP报文与其他普通报文一样,具有相同的路由选择,并没有特殊的优先权和增加可靠性。
通过路由选项的方法记录路由的实现同UDP数据报是相似的,这里主要说明通过TTL方法的实现。
图3 ICMP报文的两级封装3设计步骤分析本次课程设计的任务书,整个课程设计的过程大致可以分为三个步骤:第一步主要是设计好流程图;第二步是根据流程图编写程序代码;第三步是在程序编译通过后,运行程序结果,在对话框中输入要追踪的IP地址,观察路由追踪命令追踪IP地址在网络中的运行。
其中第一步跟第二步是关键,只有完整的流程图和根据要求编写好正确的程序,才能运行得到正确的结果。
下面是整个设计过程中各个步骤的详细分析。
3.1traceroute流程图根据要求设计好的流程图如图4所示:图4 流程图3.2traceroute的核心程序整个设计过程的核心程序代码:#include "stdafx.h"#include "MyPing.h"#include "Ping.h"#include "MyPingDlg.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endifvoid CPing::Ping(int timeout){ m_hSocket = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,WSA_FLAG_OVERLAPPED);if (m_hSocket == INV ALID_SOCKET){AfxMessageBox("socket 创建失败!");return ;}Start sending/receiving ICMP packets开始发送/接收ICMP的数据包//static int nCount = 0;静态的nCount = 0。
int nCount=0;while(1){int bwrote;if (nCount++ == 4)break;((IcmpHeader*)icmp_data)->i_cksum = 0;((IcmpHeader*)icmp_data)->timestamp = GetTickCount();((IcmpHeader*)icmp_data)->i_seq = seq_no++;((IcmpHeader*)icmp_data)->i_cksum =checksum((USHORT*)icmp_data, datasize);bwrote = sendto(m_hSocket, icmp_data, datasize, 0,(struct sockaddr*)&m_addrDest, sizeof(m_addrDest));if (bwrote == SOCKET_ERROR){ if (WSAGetLastError() == WSAETIMEDOUT){m_dlg->m_result+="Timed out ! \r\n";m_dlg->SetDlgItemText(IDC_EDIT2,m_dlg->m_result);continue; }AfxMessageBox("发送数据函数调用错误!");return ;}3.3traceroute程序运行结果在运行程序后得到的对话框中输入 ,再单击路由跟踪,就可以详细的观察到路由整个的跟踪过程,如图5所示:图5路由跟踪示意图4总结在整个课程设计过程中,首先得仔细分析课程设计任务书,根据要求编写好程序代码,然后运行程序,分析得到的结果。