计算机网络——同网段下的主机通信

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 计算机网络——同网段下的主机通信
点赞后看,养成习惯
喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!




我们以主机ping的过程举例,设定本地IP地址为10.1.1.1,目标IP地址为10.1.1.3



针对以下问题逐条进行解答:

01 Ping是什么?

02 电脑如何判断ping的IP地址是不是和自己一个网段?

03 如果ping的IP地址是属于同一个网段,那么数据链路层会做什么?





image.png





## 01 Ping命令简介


要了解ping是什么,我们可以先来看一看声纳是什么。



image.png


声呐是一种探测物体的技术,通过发射出特定波长的声波来探测物体,比如遇到潜水艇则会反射回来,以此可以定位潜水艇的位置和距离,做出准确的攻击。

ping也是类似的原理。
ping包发送出去之后,如果目的电脑联网,目的电脑就会将Ping包弹回来;
如果目的电脑没有联网,拿着这个ping包就会消失在漫漫网络之中。

由此,我们可以根据两种不同的反应,判断目的电脑是否处于联网状态。



02 判断同一网段的方式


主机会用自己的掩码去遮掩对方的IP地址,image.png

如果得到的网络号和自己本身的网络号,是一样的,那就说明10.1.1.3和自己处于同一个网段。



03 相同网段下,数据链路层的动作

如果是处于同一网段,那么通信这个事情就简单多了。

①先检查自己的ARP缓存是否有对方网卡的硬件地址MAC,有的话,就进行数据链路层的封装,然后发出去ping包

②如果ARP缓存里没有,那么就要发个ARP广播询问对方!image.png

那么该如何询问呢?

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地址,所以可以直接使用点对点的单播凡是回答对方

这里做个比喻,来说明广播和单播

广播通信:如在火车售票大厅寻找走散的情侣,小美焦急大喊到:小明,你在哪里啊?结果整个大厅的人都听到了,小明连忙回音:亲爱的,我在这里

image.png

单播通信:如打电话,尽管肉麻却不会影响到其他人

5、主机为什么要缓存ARP回答?

如果不缓存的话,每一次通信就需要一次次地址解析,将会产生更多的广播信息。
而缓存下来,在超时时间内可以重复利用。
如果有流量刷新超时定时器,则缓存的时间更长,这样可以最大限度减轻广播消息对广播域的影响。

就比如你认识了个朋友,你就还不如先认真记一下他的住址。免得每次去他那里玩,你都需要问。
而如果你们已经很久时间没有一起玩了,那么你就会把他的地址忘记,等下次去的时候再问一问



image.png


6、RRT(Round Trip Time)是什么?

通俗来说,就是一个Ping包从发出去的那一秒开始计时,一直到Ping回包为止,所流逝的时间,以毫秒ms为计时单位。
RRT最小、最大、平均值越接近,表明网络越稳定





以上文章,作为自己的学习笔记,仅供参考

本文完,感谢你的阅读!!!

最后,如果本文对你有所帮助,希望可以点个赞支持一下。你们的鼓励将会是博主原创的动力。

目录
相关文章
|
2天前
|
网络协议 算法 Java
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
17 3
|
2天前
|
Java 开发者 Spring
Java一分钟之-Java网络编程基础:Socket通信
【5月更文挑战第13天】本文介绍了Java Socket编程基础知识,包括使用`ServerSocket`和`Socket`类建立连接,通过`OutputStream`和`InputStream`进行数据传输。常见问题涉及忘记关闭Socket导致的资源泄漏、网络异常处理及并发同步。理解Socket通信原理并掌握异常处理、资源管理和并发控制,能帮助开发者构建更稳定的网络应用。
25 1
|
2天前
|
网络协议 Java 网络安全
【计算机网络】—— Socket通信编程与传输协议分析
【计算机网络】—— Socket通信编程与传输协议分析
12 0
|
2天前
|
开发框架 网络协议 Java
【计算机网络】—— 网络应用通信基本原理
【计算机网络】—— 网络应用通信基本原理
8 0
|
2天前
|
安全
AC/DC电源模块在通信与网络设备中的应用的研究
AC/DC电源模块在通信与网络设备中的应用的研究
AC/DC电源模块在通信与网络设备中的应用的研究
|
2天前
BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究
BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究
BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究
|
2天前
|
弹性计算 运维 Shell
自动化网络扫描工具发现活跃主机
【4月更文挑战第30天】
9 0
|
2天前
|
安全 数据安全/隐私保护 智能硬件
|
2天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
2天前
|
监控 安全 API
《计算机网络简易速速上手小册》第5章:无线网络和移动通信(2024 最新版)
《计算机网络简易速速上手小册》第5章:无线网络和移动通信(2024 最新版)
24 2