网络基础-ICMP协议

ICMP(Internet Control Message Protocol, Internet控制消息协议)
复制代码
ICMP协议是IP协议的辅助协议,用于在IP网络上发送控制消息,它通常被用于诊断网络故障、执行网络管理任务以及提供一些错误报告;对于收集各种网络信息、诊断 和排除各种网络故障等方面起着至关重要的作用。
ICMP协议涉及的一些常见数据包类型:
复制代码
Echo Request (Type 8): 发送此类型的数据包以请求目标主机响应;通常用于Ping命令。
Echo Reply (Type 0): 响应Echo请求的数据包。包含与Echo请求相同的数据。
Destination Unreachable (Type 3): 当目标主机无法访问时发送的数据包。可能是因为网络不可达、主机不可达或端口不可达等原因。
Source Quench (Type 4): 当路由器或主机希望通知发送方减慢发送速度时发送的数据包。
Redirect (Type 5): 当路由器希望通知发送方通过另一个路由器发送数据时发送的数据包。
Time Exceeded (Type 11): 当数据包在路由器上的生存时间(TTL)过期时发送的数据包。
Parameter Problem (Type 12): 当IP头部中的某些字段有问题时发送的数据包。
Timestamp Request (Type 13): 请求目标主机发送当前时间的数据包。
Timestamp Reply (Type 14): 响应Timestamp请求的数据包,包含发送时间和接收时间。
Address Mask Request (Type 17): 请求目标主机发送子网掩码的数据包。
Address Mask Reply (Type 18): 响应Address Mask请求的数据包,包含子网掩码信息。
常用的基于ICMP协议应用
1.ping:

当你使用命令行工具或者网络诊断工具执行ping时,实际上在使用ICMP协议发送和接收消息来测试你计算机和目标主机之间的连接性和延迟;这个命令通常在Windows、Linux和其他类Unix系统上都是可用的。

ping命令的工作原理:

复制代码
1.发送Echo请求: 执行ping命令并指定目标主机的地址时,计算机会发送一个ICMP Echo请求消息到目标主机。
2.等待Echo回复: 一旦目标主机收到Echo请求消息,它会生成并发送一个Echo回复消息作为响应;这个回复消息携带着与请求中相同的数据。
3.计算往返时间(Round-Trip Time,RTT): 一旦计算机收到了Echo回复消息,它会记录当前时间,并计算发送Echo请求和接收Echo回复之间的时间差。这个时间差就是往返时间(RTT),它表示了数据从计算机发送到目标主机并返回的时间。
4.显示结果: ping命令会显示每个Echo请求的往返时间,并且通常还会显示每个请求的成功率(通常以百分比形式);此外,一般还会显示有关网络状态的统计信息,如平均往返时间、最小和最大往返时间等。
ping命令的用途:
复制代码
检测网络连接性: 通过发送Echo请求并接收Echo回复,可以确定目标主机是否可达;如果主机不可达,ping命令会显示请求超时或者目标不可达的消息。
测量延迟: 往返时间(RTT)可以用来评估计算机与目标主机之间的通信延迟;较低的RTT通常表示更快的网络连接。
诊断网络问题: 如果ping命令显示了不寻常的延迟或者丢包率,这可能表明网络中存在问题,如拥塞、路由问题或者网络设备故障等。
2.traceroute (tracert)

Traceroute是一种网络诊断工具,用于确定数据包从源主机到目标主机之间经过的路径;它通过发送一系列的数据包,并记录每个数据包经过的路由器,从而帮助用户了解网络中的延迟和网络拓扑。

traceroute工作原理
复制代码
1,发送数据包: Traceroute发送一系列的UDP数据包(在Unix/Linux系统上,默认使用UDP,而在Windows系统上则默认使用ICMP)到目标主机,每个数据包的TTL(生存时间)逐渐增加。
2.路由器处理: 当数据包到达网络中的路由器时,路由器会将TTL减1,并检查TTL是否变为0。如果TTL变为0,路由器将丢弃数据包并发送一个ICMP "Time Exceeded"消息给发送主机。
3.记录路由器信息: Traceroute捕获"Time Exceeded"消息,并记录下每个路由器的IP地址和响应时间。
4.重复过程: Traceroute重复发送数据包,每次增加TTL,直到数据包到达目标主机。通过收集每个路由器的响应,Traceroute能够构建出数据包从源主机到目标主机的完整路径。

在思科设备和Linux系统中使用traceroute命令,在华为、华三设备和Windows中使用tracert命令进行使用。

输出解释:

Traceroute的输出通常会显示每个路由器的IP地址、主机名(如果可解析)、每个路由器的响应时间(通常以毫秒为单位),以及整个路径的总响应时间。这些信息可用于诊断网络问题和评估网络性能。

应用用途:
复制代码
网络故障排除: Traceroute可用于诊断网络连接问题,如确定数据包在网络中的哪个节点丢失或受阻。
网络性能评估: 通过分析Traceroute的输出,可以评估网络中各个节点的延迟,并确定数据包传输的瓶颈所在。
网络拓扑发现: Traceroute可以用来发现网络中的路由器和主机,从而帮助绘制网络拓扑图和理解网络架构。
相关推荐
带娃的IT创业者14 小时前
Python 异步编程完全指南:从入门到精通
服务器·开发语言·python·最佳实践·asyncio·异步编程
MaximusCoder18 小时前
等保测评命令——Anolis Linux
linux·运维·服务器·网络·经验分享·安全·php
线束线缆组件品替网18 小时前
Adam Tech NPC-6-007-BU网线组件详解
服务器·网络·数码相机·智能路由器·电脑·51单片机·电视盒子
Striver-Diligent19 小时前
您的解决方案准确吗?一种用于增强通信网络可靠性的、面向故障的性能预测方法
网络·深度学习·机器学习·网络性能估计·数字孪生网络·网络预测
cg_ssh19 小时前
Vue3中样式变量的使用
linux·运维·服务器
cheems952719 小时前
[网络原理]http协议理论基础以及wireshark抓包分析(二)
网络·http·wireshark
双星系统19 小时前
ABB机器人DSQC 679示教器电缆选型与故障排查(附原装型号对照表)
网络·数据库·机器人·工业4.0·工业机器人
炸炸鱼.19 小时前
Nginx 代理与缓存实战:正向、反向及网络层级详解
网络·nginx·缓存
5G行业应用19 小时前
6G未来网络架构ATHENA愿景——《2026韩国SK电讯6G白皮书》
网络·架构
一去不复返的通信er19 小时前
5G系统级仿真
网络·5g