使用
ping命令主要用于测试网络连接的可达性和延迟情况。通过观察ping命令返回的信息,如响应时间、丢包率等,可以初步了解网络的性能和连接状态。
- 如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络可达;
- 如果没有收到应答,则可能表示网络中存在问题;
- 如目标主机不存在、网络连接中断、存在防火墙过滤等。
在不同网段的情况下,当IP协议发现目标主机与自己不在同一网段内时,会直接将数据包交由路由处理,路由会根据自身的路由表来转发数据包。如果在路由过程中出现问题,可能会返回超时或其他错误信息。
ping命令还可以结合一些参数来实现不同的功能:
ping -t:
持续发送数据包来监测网络连接的稳定性。ping -l:
指定发送数据包的大小。
ping命令过程
- 如果是域名,先进行域名解析到具体的一个IP
- 将要ping的IP地址和自己的子网掩码进行与运算,得出相应的网段号
- 然后到自己的电脑里的路由表里查询是否有到这个网段的路由,如果没有就走默认路由,会有下一跳地址
- 查看本机arp缓存表里面是否有下一跳地址的mac地址,如果有就直接封装,如果没有就发arp广播获得下一跳地址的mac地址
- 得到了mac地址后,封装好数据,走物理层(网线)送出数据
举例
本机ping目标地址的过程:
- 拿目标地址和自己的子网掩码进行与运算,得到目标网段
- 查看本机的路由表,是否有到达这个网段的路由,如果没有就走默认路由
- 查看本机arp缓存表里是否有下一跳地址的Mac地址,如果有就直接封装帧,如果没有,就发arp广播获得下一跳的Mac地址。
- 得到了Mac地址后,封装好数据,走物理层送出数据。