WinMTR是老外开发的工具,集成了tracert与ping这两个命令的图形界面,使用winmtr可以直接的看到各个节点的响应时间及丢包率,适合windows下做路由追踪及PING测试,使用方法简单,WinMTR 不需安装,解压之后即可执行。
ping与tracert通常被用来检测网络状况和服务器状态。ping命令会送出封包到指定的服务器,如果服务器有回应就会传送回封包,另外也会告诉我们封包来回的时间。而tracert命令则是用来告诉我们从用户的电脑到指定的服务器中间一共会经过那些节点(路由)和每个节点的回应速度。
使用方法如下:
下载WinMTR后,直接双击即可运行,打开后,我们可以看到Host一栏的文本框,在Host文本框内输入您要追踪的IP或者域名,再按Start ,此时就可以看到如下图所示的 tracert 与 Ping 的结果,如下图所示:
traceroute 主要利用 IP 数据包的 TTL 字段值 + ICMP 来实现,它发送的用于探测网络路径的数据包的 IP 之上的协议可以是 UDP、TCP或ICMP。
协议表示该数据报文所携带的数据所使用的协议类型,占 8 位。
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。
例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。
不同模式下,探测过程中设计的数据包如下:
UDP 探测数据包(目标端口大于 30000) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Destination Unreachable 数据包
TCP [SYN] 探测数据包(默认目标端口为 80) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 TCP [SYN ACK] 数据包
ICMP Echo (ping) Request 探测数据包 + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Echo (ping) reply 数据包
UDP 端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。
我们向 目标主机 的固定端口发送UDP数据包,可以得到 两种结果:
在运营商的路由器上,UDP 与 ICMP 的待遇大不相同。
为了利于 troubleshooting,ICMP ECHO Request/Reply 是不会封的,而 UDP 则不同。
UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意多的 UDP 包,长度自定义。
所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等。
当网络工程师用Ping时,Ping在偷摸做啥事儿?
ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。
ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。
另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。
Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认最大为30)才结束追踪
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
动态图解traceroute(路由追踪)的原理与实现
https://zhuanlan.zhihu.com/p/404043710
IP数据报格式详解
http://c.biancheng.net/view/6411.html
解析为何traceroute探测的时候中间有些节点探测不到?
https://zhuanlan.zhihu.com/p/122465496
traceroute使用与实现原理分析
https://zhuanlan.zhihu.com/p/36811672
traceroute(路由追踪)的原理及实现
https://www.jianshu.com/p/75a5822d0eec
为什么目标地址ping能通,但是tracetoute不通?
https://cloud.tencent.com/developer/article/1642331
只会用ping测试网络通不通?高级网工还会这么用
https://zhuanlan.zhihu.com/p/458358961
当网络工程师用Ping时,Ping在偷摸做啥事儿?
https://zhuanlan.zhihu.com/p/513184441
traceroute原理
https://www.cnblogs.com/zyd112/p/7196341.html
TCP/UDP/ICMP Traceroute的原理及区别
https://zhuanlan.zhihu.com/p/101810847
一、下载测试法下载测试法主要是将一个大型的文件放置在服务器上,然后通过下载的方法来对带宽的下载速度和稳定性进行测试,这种方法比较适用,特别是对于搭建下载网站或者在线视频这种需要大带宽支持的用户来说。不过通常这种方法也需要服务商的配合。一般情况下:
1Mbps的带宽下载速度:100K-150K/S
2Mbps是200-280K/S
4Mbps是400K-500K/S
8Mbps是800-950K/S
10Mbps光纤共享能达到1M-1.5M/S
注:(1Mbps宽带理论下载速度128K/s,2Mbps宽带理论256K/s,4Mbps是512K/s)
2、使用Ping测试网速
通过ping
服务商所提供的IP地址来对网络的当前情况进行测试。但是需要注意的是这种方法只是对带宽的一个估算,而不是直观地将数值表现出来,这种方法最重要的测试服务器的访问速度稳定性。
3、使用测试网站
只要用户在搜索引擎上一搜,其实有很多网速测试网站可以进行网速测试,是最常用的网速测试方法,而且用户根据网络使用情况选择测试线路,测试点遍及全国各省、美国、澳大利亚、日本等海外国家,用户可选择任意测试点进行测试,网站采用flash实现测速功能,可视化的测试过程,测试结果能准确反映本地网络速率,无需下载安装插件或添加额外设备,使用简单,操作方便。
4、使用路由跟踪
常见的路由跟踪命令行 windows有Tracert和winmtr, Linux下有traceroute和mtr,
windows的winmtr是带gui的使用比较简单。根据以上带宽的速度,然后除页面文件大小,乘以打开页面的时间(秒为单位)。这样就可以算出1M带宽能同时承受多少人访问了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)