喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!
我们以主机ping的过程举例,设定本地IP地址为10.1.1.1,目标IP地址为10.1.1.3。
针对以下问题逐条进行解答:
01 Ping是什么?
02 电脑如何判断ping的IP地址是不是和自己一个网段?
03 如果ping的IP地址是属于同一个网段,那么数据链路层会做什么?
## 01 Ping命令简介
要了解ping是什么,我们可以先来看一看声纳是什么。
声呐是一种探测物体的技术,通过发射出特定波长的声波来探测物体,比如遇到潜水艇则会反射回来,以此可以定位潜水艇的位置和距离,做出准确的攻击。
ping也是类似的原理。
ping包发送出去之后,如果目的电脑联网,目的电脑就会将Ping包弹回来;
如果目的电脑没有联网,拿着这个ping包就会消失在漫漫网络之中。
由此,我们可以根据两种不同的反应,判断目的电脑是否处于联网状态。
02 判断同一网段的方式
主机会用自己的掩码去遮掩对方的IP地址,
如果得到的网络号和自己本身的网络号,是一样的,那就说明10.1.1.3和自己处于同一个网段。
03 相同网段下,数据链路层的动作
如果是处于同一网段,那么通信这个事情就简单多了。
①先检查自己的ARP缓存是否有对方网卡的硬件地址MAC,有的话,就进行数据链路层的封装,然后发出去ping包
②如果ARP缓存里没有,那么就要发个ARP广播询问对方!
那么该如何询问呢?
1、确定用哪个接口发送广播
通过路由表中网段与接口的对应关系,来确定用哪个接口
2、从对应接口发送ARP广播,ARP广播在广播域内蔓延
广播请求10.1.1.3的硬件MAC地址,大声问谁的IP地址是10.1.1.3啊,是的话,把你的MAC地址告诉我
3、10.1.1.3收到该广播帧就单播ARP回复10.1.1.1,其他IP地址收到广播帧发现不是找自己,就丢掉ARP包
我的IP地址就是10.1.1.3,我的MAC地址是MACxm
4、10.1.1.1收到10.1.1.3的回复,将10.1.1.3/MACxm保存在自己的ARP缓存里,时间为20-30分钟不等,以备下次使用
就这样,一个Ping包就发送出去了,然后反弹回最大、最小、平均的来回延迟时间RTT
04 拓展知识问答
1、ARP协议是什么?
ARP是地址转换协议,用于将已知的IP地址,解析其对应的MAC地址。如果把IP地址看作是网络地址,那么MAC地址就是绑定在网卡上的硬件地址。
2、ARP请求为什么是广播而不是单播?
现在我们的情况是不知道对方到底在哪里,所以我们需要大声呼喊,希望对方能够听到我们的呼喊,然后告诉我们他的位置。具体来说,我们使用广播帧的时候,目的MAC设置为FF.FF.FF.FF.FF.FF,这样可以完成封装
如果用单播,那就说明我们已经知道了对方的MAC地址,既然知道了,那就不需要用ARP协议了
3、广播域是什么?
通俗来说,就是广播信息可以扩散到的地盘、空间。
如果是几台主机连接在一个Hub上,那么这几台主机都处于一个广播域
如果是几台主机连接在一个交换机上,如果交换机没有划分VLAN,那么所有的端口都处于默认VLAN ID = 1里,那么这几台主机也都处于一个广播域。如果交换机有52个端口,去掉一个接受端口,交换机要将广播信息复制51次,然后发送出去。
4、ARP应答为什么是单播?
因为通过ARP请求,你就可以知道请求者的MAC地址,即对方的MAC地址,所以可以直接使用点对点的单播凡是回答对方
这里做个比喻,来说明广播和单播
广播通信:如在火车售票大厅寻找走散的情侣,小美焦急大喊到:小明,你在哪里啊?结果整个大厅的人都听到了,小明连忙回音:亲爱的,我在这里
单播通信:如打电话,尽管肉麻却不会影响到其他人
5、主机为什么要缓存ARP回答?
如果不缓存的话,每一次通信就需要一次次地址解析,将会产生更多的广播信息。
而缓存下来,在超时时间内可以重复利用。
如果有流量刷新超时定时器,则缓存的时间更长,这样可以最大限度减轻广播消息对广播域的影响。
就比如你认识了个朋友,你就还不如先认真记一下他的住址。免得每次去他那里玩,你都需要问。
而如果你们已经很久时间没有一起玩了,那么你就会把他的地址忘记,等下次去的时候再问一问
6、RRT(Round Trip Time)是什么?
通俗来说,就是一个Ping包从发出去的那一秒开始计时,一直到Ping回包为止,所流逝的时间,以毫秒ms为计时单位。
RRT最小、最大、平均值越接近,表明网络越稳定
以上文章,作为自己的学习笔记,仅供参考
本文完,感谢你的阅读!!!
最后,如果本文对你有所帮助,希望可以点个赞支持一下。你们的鼓励将会是博主原创的动力。