计算机网络——ping命令过程的详解、原理

article/2025/10/7 6:04:00

目录

一、ping命令是用来做什么的?

1、ICMP是什么呢?

2、ping命令和icmp的关系

二、ping命令的使用

三、ping过程的原理

ping过程的详解

1、ping的是相同网段

2、使用 Cisco实验拓扑图来演示这个原理:

 3、ping不同网段之间的ip

4、使用 Cisco实验拓扑图验证这个原理

一、ping命令是用来做什么的?

ping命令是测试网络是否畅通的工具。用于测试网络连接的程序。

ping发送一个ICMP;回声请求消息给目的地并报告是否收到所有希望的icmp echo(ICMP回声应答)。

1、ICMP是什么呢?

ICMP协议(internet control message protocol)因特网控制消息协议的缩写。它是tcp、ip协议的一个子协议,用于在ip主机、路由器之间传递控制消息。

ping命令通常用来作为网络可用性的检查。ping命令可以对一个网络地址发送测试数据包。看该网络地址是否有响应并统计响应时间,以此来测试网络。

2、ping命令和icmp的关系

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

二、ping命令的使用

ping + 目标主机:用来测试本机与目标主机之间是否联通、联通速度如何、稳定性如何。

ping [参数选项] [目标主机]

参数选项:

-c 发包的次数 count

[-w deadline] 多少时间内必须完成 期限

[-W timeout] 超过多少时间就停止  超时

[-i interval] 包和包之间的时间间隔 间隔

 ping 同一网段里面的其他IP地址:

[root@nginx-kafka01 python]# ping 192.168.2.43
PING 192.168.2.43 (192.168.2.43) 56(84) bytes of data.
64 bytes from 192.168.2.43: icmp_seq=1 ttl=64 time=6.82 ms
64 bytes from 192.168.2.43: icmp_seq=2 ttl=64 time=3.13 ms
64 bytes from 192.168.2.43: icmp_seq=3 ttl=64 time=10.4 ms
64 bytes from 192.168.2.43: icmp_seq=4 ttl=64 time=4.58 ms
64 bytes from 192.168.2.43: icmp_seq=5 ttl=64 time=3.95 ms
^C
--- 192.168.2.43 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4010ms
rtt min/avg/max/mdev = 3.132/5.797/10.498/2.651 ms

ping外网:测试能不能进行上网:

[root@nginx-kafka01 python]# ping www.bai.com
PING parking.nodes.gz.com (121.201.112.137) 56(84) bytes of data.
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=1 ttl=51 time=19.5 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=2 ttl=51 time=17.9 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=3 ttl=51 time=22.1 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=4 ttl=51 time=19.1 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=5 ttl=51 time=18.8 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=6 ttl=51 time=18.6 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=7 ttl=51 time=17.6 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=8 ttl=51 time=19.0 ms
64 bytes from 121.201.112.137 (121.201.112.137): icmp_seq=9 ttl=51 time=19.4 ms

三、ping过程的原理

ping过程的详解

        1.如果是域名,先进行域名解析到具体的一个IP

        2.将要ping的IP地址和自己的子网掩码进行与运算,得出相应的网段号

        3.然后到自己的电脑里的路由表里查询是否有到这个网段的路由,如果没有就走默认路由,会有下一跳地址

        4.查看本机arp缓存表里面是否有下一跳地址的mac地址,如果有就直接封装,如果没有就发arp广播获得下一跳地址的mac地址

        5.得到了mac地址后,封装好数据,走物理层(网线)送出数据

举例说明:本机IP:192.168.0.237/24,ping 192.168.90.1的过程:

        1.拿目的IP192.168.90.1和自己的子网掩码进行与运算,得到目的网段192.168.90.0

        2.查看本机的路由表,是否有到达这个网段的路由,如果没有就走默认路由,下一跳地址为192.168.0.1

        3.查看本机arp缓存表里是否有下一跳地址192.168.0.1的Mac地址,如果有就直接封装帧,如果没有,就发arp广播获得192.168.0.1的Mac地址

        4.得到了Mac地址后,封装好数据,走物理层送出数据。

1、ping的是相同网段

从封装的角度讲:

使用A机器去 ping B机器

A:192.168.10.1

B:192.168.10.2

1、应用层--》数据,随机产生数据 假设是32个字节的数据

2、传输层---没有涉及端口号

3、网络层 ping --》icmp协议 --中requests请求包和reply包

icmp协议封装的头部信息中没有没有源地址和目的地址

4、ip协议:ip头部中有,封装成帧,里面有源ip(10.1)和目的ip(10.2)

                                                                           10.1              10.2

5、帧的封装:源mac 和目的mac

自己 发arp广播得到192.168.10.2的mac地址

6、比特流

2、使用 Cisco实验拓扑图来演示这个原理:

步骤是:

1、画拓扑图
2、配置ip地址
3、测试

我们先在这个实验中添加两台pc机,和一个交换机,并配置好ip地址:

 先配置pc1和pc5的ip地址分别为:192.168.10.1、192.168.10.2。

 配置好ip地址并写好子网掩码、网关。

pc5的配置也是如同pc1一样,网关和子网掩码一样(因为是同一网段的)。

配置好了之后进行测试:使用pc1进行ping测试,ping pc机5:

以下是ping成功的显示结果:两个ip之间能够互相ping,都能ping通。

PC>ping 192.168.10.2Pinging 192.168.10.2 with 32 bytes of data:Reply from 192.168.10.2: bytes=32 time=8ms TTL=255
Reply from 192.168.10.2: bytes=32 time=15ms TTL=255
Reply from 192.168.10.2: bytes=32 time=15ms TTL=255
Reply from 192.168.10.2: bytes=32 time=15ms TTL=255Ping statistics for 192.168.10.2:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:Minimum = 8ms, Maximum = 15ms, Average = 13ms
PC>ping 192.168.10.1Pinging 192.168.10.1 with 32 bytes of data:Reply from 192.168.10.1: bytes=32 time=18ms TTL=128
Reply from 192.168.10.1: bytes=32 time=15ms TTL=128
Reply from 192.168.10.1: bytes=32 time=16ms TTL=128
Reply from 192.168.10.1: bytes=32 time=13ms TTL=128Ping statistics for 192.168.10.1:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:Minimum = 13ms, Maximum = 18ms, Average = 15ms

 3、ping不同网段之间的ip

A:192.168.20.1

B:192.168.30.1

从封装的角度讲:

1、封装icmp数据和ip包数据

2、先拿目的ip和自己的子网掩码进行与运算得到目标网段是192.168.30.0,然后去查询自己路由表

直连路由:192.168.20.0 ens33

默认路由:192.168.20.254

ip包的封装:

源192.168.20.1 目的ip:192.168.30.1

3、走默认路由,下一跳地址是192.168.20.254

帧:源mac:自己 目的mac:192.168.20.254的mac地址

4、发arp广播得到20.254的mac地址(此时的mac地址是网关)

5、封装帧

6、比特流

通过交换机发送数据,因为交换机只看mac地址。

ip地址在整个互联网里使用,mac地址在局域网里使用。

先到交换机再到路由器。交换机查看mac地址表。

4、使用 Cisco实验拓扑图验证这个原理

1、首先先准备好两台路由器,四台pc机(可以根据自己需要自行选择),两台交换机。画好拓扑图。

2、 先给pc机配置好ip地址、网关:配置流程如上面的一样。

记得一定要配置好网关。如果没有配置pc机,当需要路由去ping跨网段的ip地址是ping的不同的,因为没有网关,ip地址不知道要把数据包发送到哪里,在pc机里面添加网关,就是做配置,就是配置一条默认路由。当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口。

就是比如上图中192.168.10.1去ping192.168.10.2,如果192.168.10.2没有配置网关,使用192.168.10.1去ping192.168.10.2能够ping通,但是不能上网,这是因为PC与RTA直连,ping命令使用的的ICMP报文这是属于IP层的报文不会使用到路由表查询,使用ARP寻路到达目标。

192.168.10.2中没有配置网关:

 使用192.168.10.2去ping 192.168.10.1能ping通:

而使用192.168.10.2去ping路由器上的Fa0/1口的192.168.30.2接口上的ip地址是不能ping通的,原理是如上图所说的。

继续进入主题:

然后给router 0的Fa0/0口配置ip地址为:192.168.30.1,Fa0/1口为:192.168.20.3

router 1的ip地址设置为:Fa0/0口为:192.168.10.3,Fa0/1口为:192.168.30.2。

配置流程为:

先扩展一下:路由器的作用是实现扩网段之间进行通信的。

然后可以从拓扑图中看出,我们的router 0直连路由的是20网段和30网段的,而router 1直连路由的是30网段和10网段的。

首先我们先测试192.168.20.2pc机去ping192.168.30.2路由器。

首先跨网段是ping不通的,所以我们需要添加一个静态路由。

路由的优先级是:

① 直连路由

② 静态路由

③动态路由

④ 默认路由

静态路由的添加顺序是:先添加你要到哪个网段去,然后填写子网掩码,最后再填写下一跳路由口的ip地址。

第一个network代表的是要去的目的网段ip:20网段的。

network:192.168.20.0

第二个mask是子网掩码。

mask:255.255.255.0

第三个next hop是指下一跳路由器的ip地址:192.168.30.1。

Next Hop:192.168.30.1

添加成功之后,就可以ping通:192.168.20.2pc  ping   192.168.30.2 pc机

然后我们再试试用192.168.10.2pc1机去ping 192.168.20.2pc2机,这个时候还需要对路由器0router0进行静态路由配置:

network:192.168.10.0

Mask:255.255.255.0

Next Hop:192.168.30.2

大体流程就是这样的,这个计算机网络原理是比较抽象,所以还得多加练习,需要多做实验。


http://chatgpt.dhexx.cn/article/nYE7TLOX.shtml

相关文章

ping命令讲解

ping命令个人讲解(日常使用) 最近正在复习、研究DOS命令时,了解到之前个人理解的ping命令时对其功能作用了解模糊不清,近日在教学视频和查找网络资料,对ping命令有了如下见解: ping命令的使用方式 使用&…

ping命令的使用

ping命令的使用 一、ping命令的基本概念 ping是一个十分基本但又十分重要的TCPIP网络工具。它的作用主要为: (1)通常用来检测网络的连通情况和测试网络速度; (2)也可以根据域名得到相应主机的IP地址; (3)根据ping返回的TTL值来判断对方所使用的操作系统…

ping 命令的用法大全(图文详解)

1、ping/? :ping命令使用帮助。(用法如下图) 2、无参数 ping :在默认情况下,一般都是只发送四个32字节数据包,通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟&#xff0c…

Linux命令详解(1)ping命令

之前写过一个简版的ping命令介绍。看的人比较多。这次决心写一个新的,尽可能详细的版本。 -c选项,这个选项设定对目标主机地址发送请求次数。 例子1:对网关和一个不存在的主机地址执行ping -c2 如图,对网关发松了2个包&#xff…

【Ping命令的使用】

目录 前言1、Ping命令的使用方法总结 前言 ping命令常用来检测局域网内网络信号发送与接收的检测以及网络速度的检测,还可以用来判断网络是否存在故障等,对于网络运维人员来说,经常会用到,是最实用最常用的网络命令之一。 Ping命…

Ping命令详解(使用Ping这命令来测试网络连通)

相关知识点 BIOS 在计算机领域,BIOS是 "Basic Input Output System"的缩略语,译为"基本输入输出系统", 与前者读法相同。计算机在运行时,首先会进入BIOS,它在计算机系统中起着非常重要的作用。一块…

Ping 命令详解

简述: ICMP协议是“Internet Control Message Protocol”(因特网控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。 ping (Packet Internet Groper),因特网包探索器&#xf…

ping命令详解 ping命令入门详解

在这个时代,科技越来越发达,网络已经越来越成为人们不可缺少的一部分。计算机也已经是很多学校的课程了,因为计算机技术是非常有技术性的专业,它其中涉及到很多专业知识,需要通过学习才能掌握。今日小编就为大家介绍一…

ping命令(详解)

简述: ICMP协议是“Internet Control Message Protocol”(因特网控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。 ping (Packet Internet Groper),因特网包探索器&#xf…

Ubuntu系统中清理DNS缓存

在下一篇文章中,我们将看一看 我们如何在Ubuntu中刷新DNS缓存。 DNS被认为是Internet连接的关键部分之一。 目的是更快地访问访问的网站。更常见的是,我们的机器会跟踪DNS记录,或者将其缓存。 迄今为止,IP地址的命名是DNS协议中…

DNS 缓存查看以及清除(转载)

转载地址:https://blog.csdn.net/cogbee/article/details/27535039 你是否因修改网站DNS解析后,却因本机DNS缓存而需要等待... 你是否遇到修改了本机的hosts文件后,必须重起firefox和ie才起作用... 其实只要清空DNS缓存这些问题都可以解决。 …

【DNS】Linux上DNS缓存的开启和清理

DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息。 换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。 这消除了对远程 DNS 服务器重复查询的需要,并允许你的 OS 或浏览器快…

如何刷新DNS缓存(Windows,Mac,Chrome)

对网站进行故障排除可能是一个令人生畏的责任。当涉及到诸如刷新域名服务器(DNS)缓存之类的任务时,在您开始之前就很容易感到不知所措和困惑。 幸运的是,即使没有什么技术经验,您也可以快速,轻松地执行此特…

如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari

请访问原文链接:https://sysin.org/blog/clear-browser-dns-cache/,查看最新版。原创作品,转载请保留出处。 作者:gc(at)sysin.org,主页:www.sysin.org 对普通用户而言,关闭后重新打开浏览器一…

本机电脑清除DNS缓存+浏览器清除DNS缓存

目录 前言 一、Windows 二、Mac OS 三、Linux 四、路由器 五、浏览器 谷歌浏览器 Edge浏览器 火狐浏览器 总结语 前言 有时候在我们配置好了DNS地址后没有生效,可能是缓存导致的,这个时候我们就需要通过清除缓存的手段才能使DNS生效了&#xff…

如何查看浏览器的DNS 缓存信息

浏览器的DNS缓存查看和清除 有dns的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。本文总结一些常见的浏览器和操作系统的DNS缓存时间 浏览器先查询自己的缓存,查不到,则调用域…

Linux服务器如何清除dns缓存

Linux服务器如何清除dns缓存 DNS缓存是一个临时数据库,用于存储已解释的DNS查询信息。换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留域名和相应IP地址的记录。 这消除对远程DNS服务器重复查询,并允许你的操作系统…

DNS 刷新:清除 DNS 缓存的方法详解

Windows 等操作系统会在所谓的 DNS 缓存中自动生成访问网站的临时条目。 缓存中包含的信息在定义的时间段内有效。 DNS 刷新,即清空缓存,会在时间限制到期之前从系统中删除数据。 什么是 DNS 刷新? DNS 刷新是手动删除 DNS 缓存的临时条目的…

DNS服务与缓存

DNS服务 DNS的作用DNS的解析方式DNS的协议端口号DNS的解析过程DNS 缓存 DNS 缓存服务搭建 DNS的作用 将域名解析成IP地址 DNS的解析方式 正向解析:域名解析出IP。 反向解析:IP解析出域名 DNS服务器存储着大量的ip和域名映射记录,它的记录…

刷新DNS缓存

小知识: 当dns堆积过多,或者指向出现错误时,会影响网页速度,甚至上不了网(感觉上),所以刷一下还是可以的 winR键 cmd回车 输入 ipconfig/flushdns (不用担心该作用仅刷新缓存) 好了 备注:dns缓存是干啥的,就是用来记录网址对应的ip地址的…