计算机网络 网络层 ICMP协议 ping和traceroute介绍
Posted baiiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 网络层 ICMP协议 ping和traceroute介绍相关的知识,希望对你有一定的参考价值。
前言
本文介绍ping命令和traceroute命令;
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 要测 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介绍
计算机网络 王道考研2021 第四章:网络层 -- 发送数据的过程ARP协议网关DHCP协议静态配置 / 动态配置ICMP协议(包含ping网络TTL)组播