• 【网络协议】聊聊从物理层到MAC层 ARP 交换机


    物理层

    物理层其实就是电脑、交换器、路由器、光纤等。组成一个局域网的方式可以使用集线器。可以将多台电脑连接起来,然后进行将数据转发给别的端口。

    数据链路层

    Hub其实就是广播模式,如果A电脑发出一个包,B、C电脑也可以收到。那么数据包就是知道给谁使用。
    1.这个包是发给谁的,谁应该接收。
    2.大家都在发,发送的顺序规则是什么呢
    3.发送错误怎么办,有容错机制嘛

    而这些问题都是MAC所要解决的,MAC的全称是Medium Access Control,即媒体访问控制 ,控制其实就是解决的是往媒体上发数据的时候,发送顺序的问题,多路访问
    信道划分 : 一个车一个车道,各走各的。
    轮流协议 : 单双号
    随机接入协议

    第一个,谁给谁发送数据包
    链路层地址,其实就是MAC地址。第二层其实就是目标MAC 和 源MAC 。而类型有TCP、UDP等
    在这里插入图片描述
    整体流程就是因为有目标MAC地址,在广播的时候,就可以发现是把数据发送给自己的,然后进一步拆开数据看IP地址也是自己,端口号也是,所以就开始处理流程,如果是web服务器的话,就返回对应的数据,返回的时候其实也是先将自己MAC地址封装进去,然后在封装来时的源MAC,以及IP 和端口号 返回响应。

    如何检查容错
    其实使用的就是循环冗余检测 CRC,通过XOR亦或算法。来检测在整个传输数据的过程中是否出现错误。

    但是有一种场景,那就是知道了IP地址,但是不知道MAC地址,这个时候其实就是使用ARP协议也就是已知 IP 地址,求 MAC 地址的协议。

    在这里插入图片描述

    在这里插入图片描述
    整体流程其实就是 1.先查看本地ARP表 2.广播ARP请求 3.ARP应答 4.缓存IP-MAC映射。
    因为机器可能下线,所以需要设置一定的缓存期。所以ARP就是在链路层
    在这里插入图片描述
    在这里插入图片描述

    局域网

    虽然使用Hub的方式可以,但是当电脑比较多的时候,使用广播的模式,其实比较浪费数据传输,根本问题其实就是不知道接口对应的机器是哪个MAC地址。所以需要交换器学习。

    比如刚开始的时候MAC1电脑给MAC2发送数据,刚开始都不知道对方那个口就是MAC2,先使用广播模式,然后MAC2接收之后,交换机会记录MAC1就是发出的口对应什么MAC地址。时间长了,就会初步形成一个网络结构图。就可以不用广播,直接准确转发。交换机上的学习结构称为转发表

    小结

    本篇主要介绍了MAC、ARP、交换机。MAC主要解决的是多路访问堵车的问题。ARP通过吼的方式寻找目标MAC地址,也就是知道IP地址不知道MAC。交换机有学习MAC地址的能力。

  • 相关阅读:
    SOC_AHB_SD_IF
    rpm安装mysql5.7详细教程
    ARM 异常处理方式简单介绍
    单链表的简单使用
    Kotlin数据流概览
    U-boot下netconsole实现
    如何在苹果iOS系统ipa应用中获取当前版本号和Bundle ID
    C++除法分支
    ubuntu 20通过docker安装onlyoffice,并配置https访问
    python-opencv计算重叠矩形面积IOU
  • 原文地址:https://blog.csdn.net/jia970426/article/details/133895414