计算机网络 网络层 ICMP协议 ping和traceroute介绍

Posted baiiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 网络层 ICMP协议 ping和traceroute介绍相关的知识,希望对你有一定的参考价值。

前言

本文介绍ping命令和traceroute命令;

ping命令

ping命令

  • 功能
    ping 命令用于检测主机是否运作正常。

  • 原理
    执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

  • 可用参数(也可以通过man ping查看):
    -d 使用Socket的SO_DEBUG功能。
    -c <完成次数> 设置完成要求回应的次数。
    -f 极限检测。
    -i<间隔秒数> 指定收发信息的间隔时间。
    -I<网络界面> 使用指定的网络接口送出数据包。
    -l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
    -n 只输出数值。
    -p<范本样式> 设置填满数据包的范本样式。
    -q 不显示指令执行过程,开头和结尾的相关信息除外。
    -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
    -R 记录路由过程。
    -s<数据包大小> 设置数据包的大小。
    -t<存活数值> 设置存活数值TTL的大小。
    -v 详细显示指令的执行过程。
    -w 在 deadline 秒后退出。
    -W 在等待 timeout 秒后开始执行

  • 示例

  • 首行含义
    第一行的意思:www.a.shifen.com是www.baidu.com DNS别名,IP地址是110.242.68.4,以56 bytes大小进行测试。

  • time值
    time显示了信息包到达远程主机后返回的时间。计算定位为毫秒。
    通常网卡下,来回时间在200毫秒以下最好。
    信息包抵达目的地的时间叫做latency(等待时间),如果你看到来回时间变化很大(叫做"jitter(抖动)),这说明同主机之间的联接状况很差。

  • ttl值
    TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。
    当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。
    当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。
    默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。
    从图中能看到从本地到服务器经过了64 - 49 = 15个路由器(可以根据traceroute大概猜猜)。

traceroute命令

traceroute 命令

  • 功能
    traceroute命令用于显示数据包到主机间的路径,该指令让你追踪网络数据包的路由途径。
    一条路径上的每个设备 traceroute 要测 3 次。输出结果中包括每次测试的时间 (ms) 和设备的名称(如有的话)及其 IP 地址。

  • 原理
    traceroute 通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。
    traceroute 提取发 ICMP TTL 到期消息设备的 IP 地址并作域名解析。每次 traceroute 都打印出一系列数据,包括所经过的路由设备的域名及 IP 地址,三个包每次来回所花时间。

  • 可用参数:
    -d 使用Socket层级的排错功能。
    -f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
    -F 设置勿离断位。
    -g<网关> 设置来源路由网关,最多可设置8个。
    -i<网络界面> 使用指定的网络界面送出数据包。
    -I 使用ICMP回应取代UDP资料信息。
    -m<存活数值> 设置检测数据包的最大存活数值TTL的大小。
    -n 直接使用IP地址而非主机名称。
    -p<通信端口> 设置UDP传输协议的通信端口。
    -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
    -s<来源地址> 设置本地主机送出数据包的IP地址。
    -t<服务类型> 设置检测数据包的TOS数值。
    -v 详细显示指令的执行过程。
    -w<超时秒数> 设置等待远端主机回报的时间。
    -x 开启或关闭数据包的正确性检验。

  • 示例

  • 首行含义:
    第一行的意思:从当前主机,到目标主机,最多经过64跳(64 hops max),每次检测发送的包大小为52字节(52 byte packets)

  • 之后行
    之后的每一行包含三部分:序号 + 主机 + 耗时。
    记录按序列号从 1 开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,这是默认发送3个ICMP包;可以使用-q参数控制,用traceroute -q 4 www.baidu.com,表示向每个网关发送4个数据包。

以上是关于计算机网络 网络层 ICMP协议 ping和traceroute介绍的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络 网络层 ICMP协议 ping和traceroute介绍

计算机网络 网络层 ICMP协议 ping和traceroute介绍

ping命令基于ICMP协议的返回信息分析

计算机网络-------------icmp和arp协议

计算机网络 王道考研2021 第四章:网络层 -- 发送数据的过程ARP协议网关DHCP协议静态配置 / 动态配置ICMP协议(包含ping网络TTL)组播

ping是使用TCP/IP协议中的啥协议?