热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

点赞后看,养成习惯喜欢的话可以点个关注哟你们的点赞支持对博主们来说很重要哦!!!我们以主机ping的过程举例,

点赞后看,养成习惯
喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!


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

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

01 Ping是什么?

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

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


为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓

    • 01 Ping命令简介
    • 02 判断同一网段的方式
    • 03 相同网段下,数据链路层的动作
    • 04 拓展知识问答
      • 1、ARP协议是什么?
      • 2、ARP请求为什么是广播而不是单播?
      • 3、广播域是什么?
      • 5、主机为什么要缓存ARP回答?
      • 6、RRT(Round Trip Time)是什么?




在这里插入图片描述








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最小、最大、平均值越接近,表明网络越稳定





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

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

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


推荐阅读
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Dell Latitude 5290 2-in-1 平板电脑黑苹果体验评测
    本文基于notebookcheck的详细数据和个人实际使用体验,对Dell Latitude 5290 2-in-1平板电脑进行评测。评测内容包括外观设计、散热性能、基准测试、游戏表现和续航能力等方面,旨在为读者提供全面的参考。 ... [详细]
  • 本章介绍了TCP/IP协议族中的链路层,其主要功能是为IP模块发送和接收IP数据报。链路层还支持一些辅助性协议,如ARP。此外,本文详细探讨了不同类型的链路层技术及其应用。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
author-avatar
卟抛棄D
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有