没有合适的资源?快使用搜索试试~ 我知道了~
09016429陈诚_大作业报告1
需积分: 0 0 下载量 20 浏览量
2022-08-03
14:40:27
上传
评论
收藏 1.98MB PDF 举报
温馨提示
试读
18页
1.traceroute 命令的原理 2.traceroute 命令实际使用结果 3.traceroute 命令缺陷分析 4.改进思路:基于 ICMP 实现的
资源详情
资源评论
资源推荐
网 络 高 级 编 程
实验报告
实验名称: 网络拓扑管理
实验日期: 2019.6.5
学生姓名: 陈诚
学生学号: 09016429
一、实验内容
利用 ping 和 traceroute 命令绘制网络拓扑结构图,找出网关,区分校园网内部 IP 和
外部 IP。实验中发现了基于 UDP 的 traceroute 命令在实际使用时的缺陷,并基于 ICMP
实现了新的 traceroute 程序用于追 踪 并 保 存 路 由 路 径 。 基 于 python 的 networkx 和
matplotlib 库,将这些路由路径最终绘制成了网络拓扑结构图。
二、实验过程
1.traceroute
命令的原理
traceroute 命令利用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到
网络上其他主机的路由。
首先,traceroute 送出一个 TTL 是 1 的 IP 数据包到目的地,当路径上的第一个路由
器收到这个数据包时,它将 TTL 减 1。此时,TTL 变为 0,该路由器会将此数据包丢掉,
并送回一个[ICMP time exceeded]消息(包括发 IP 包的源地址,IP 包的所有内容及路由
器的 IP 地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上。
然后,traceroute 每次将送出的数据包的 TTL 加 1 来发现另一个路由器,这个重复
的动作一直持续到某个数据包抵达目的地。当数据包到达目的地后,该主机则不会送回
ICMP time exceeded 消息,一旦到达目的地,由于 traceroute 通过 UDP 数据包向不可达
端口(大于 30000)发送数据包,因此会收到[ICMP port unreachable]消息,故可判断到达
目的地。
2.traceroute
命令实际使用结果
实际运行时用 traceroute 命令获取从当前校园网节点到 www.baidu.com 的路由路径,
且已知可以 ping 通 www.baidu.com,如下图所示:
“traceroute www.baidu.com”的结果如下:
图中*表示 timed out,主机无法得到应该返回的 ICMP 错误信息包。下面结合
Wireshark 来进行抓包分析:
可以看出,traceroute 命令默认每一跳发送 3 个 UDP 数据包。在某一个路由器中 TTL
超时后,返回一个错误类型为 Time-to-live exceeded 的 ICMP 数据包。
从图中红圈可知主机发出的第一个 UDP 包的 TTL 为 1,即 traceroute 程序首先通过
UDP 协议向目标地址 220.181.38.149 发送了一个 TTL 为 1 的数据包,然后在第一个路
由器中 TTL 超时,返回一个错误类型为 Time-to-live exceeded 的 ICMP 数据包,此时通
过该数据包的源地址可知第一站路由器的地址为 10.203.64.1。之后只需要不停增加 TTL
的值就能得到每一跳的地址。
3.traceroute
命令缺陷分析
然而实验中发现,大部分情况下 traceroute 并不能到达目的地,当 TTL 增加到一定
大小之后就一直拿不到返回的数据包了:
剩余17页未读,继续阅读
李诗旸
- 粉丝: 26
- 资源: 329
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0