今天来总结一下TCP/IP各个协议层的几个检测网络延迟的方法。
1、应用层
Telnet命令属于应用层的协议,用于远程登录,也可用于检测IP的端口状态。但是功能有限,只能检测IP端口状态,无法检测到网络延时。当然可以自己在程序来实现发现信息和接收信息的时间差来判断延迟,但是这个时间可能包含程序处理的时间 。
2、传输层
2.1 TCPPing
tcping命令使用传输层协议,可以检测IP端口状态和查看ping 值,即使源地址禁止ICMP 也可以通过 tcping 来监控服务器网络状态。
2.2 UDPPing
UDPPing与TCPPing的原理类似,只不过使用udp协议来完成数据包封装。
Python编写 的UDP Ping工具,wangyu-/UDPping: ping with UDP packets 🛠 (github.com) 。
2.3 Tcproute
相对于tracert是利用ICMP协议。Tcproute是一个基于tcp的Windows跟踪路由控制台程序。tcproute.exe - 基于 tcp 的 traceroute for windows (elifulkerson.com) 有具体的介绍和程序 。
3、网络层
ICMP 是TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能。
ICMP协议,只能检查 IP 的连通性或网络连接速度, 无法检测IP的端口状态。网络PING的两个时间RTT与TTL 文章里面有具体的介绍 。
MTR工具集成了 Ping 和 tracert 的功能,具有图形界面,可以直观地看到各个节点的响应时间和丢包情况。使用 MTR 分析网络延迟及丢包 文章里面有具体的介绍。
4、链接层
此层是用来处理连接网络的硬件部分,检测延时的话应该使用硬件来代替协议或者命令来完成。利用示波器精确测量传输线延迟时间 ,原理其实很简单,在线路多端打环,利用示波器的触发信号和接收信号的时间差来得到传输线路的延迟。
网友评论