• HCIA 交换机原理与ARP协议


    一、概述

    交换机(Switch),在网络通讯中属于非常重要而基础的设备,常见资料往往侧重于介绍某一点或对某个名词的解释,本文试图从用户使用的角度来理解交换和交换机,不过仅限于HCIA的层次,也就是比较浅层但希望是可以比较全面和实用。

    二、交换

    其实从名字看,我们就能大概知道交换机的作用是在网络中“传递”数据的,而且是默认不带限制的“传递”,但传递这个词比较偏向于一对一的传递,而交换机是多对多的传递,所以交换机这个名字就取的很好。

    常见交换机一般会有很多端口,比如24口的、48口的,目的就是要尽可能多的让设备接进来实现互通。

    1.一对一

    假设现在有两台电脑需要通讯,我们只需要简单的“直连”即可,像下图这样。配置好PC的IP就可以直接互通了。

     

    2.多对多

    但我们工作中不可能只有两台电脑,比如一个办公室少说也有三五个人,每人一台电脑该怎么办呢。在很久很久以前其实还有方案就是“集线器”,像下图这样。

    集线器的特点是每个端口收到的数据都向其他端口转发,其实对于小规模应用或者一台主发其他设备只收也是可以的。但如果网络比较大,或应用比较多,大量的PC需要互相通信,那集线器这样的东西肯定不行了。因为通信受限于端口的带宽,如果每一个信号都向所有端口转发那集线器就太忙了。

    如果让你基于集线器的特性来改造你会怎么办?其实好办,我给PC都编个号(也就是MAC地址),同时让集线器”记住”各端口连的PC的MAC地址问题不就解决了吗。比如下图这样,设备如果记住了MAC地址与端口的对应关系,PC6向PC9发数据时,设备就知道只需要向E0/0/4转发即可。交换机其实就是这么个原理。

    那如果单台交换机的端口不够了咋办,没关系可以串联的,比如下图这样。通过MAC地址与端口对应表,PC6如果向PC11发包就只需要走这样的路径:LSW5的E0/0/5->LSW6的E0/0/3->LSW7的E0/0/1。

    那现在的问题就变成了,如何在交换机中维护这样一个MAC地址表?那就是ARP协议啦。

    三、ARP协议与ARP表

    考虑如下的网络结构,如果PC1想要与PC2通讯它该怎么办?

    对于PC1来说它知道如下信息:

    1)自己的IP

    2)自己的MAC地址

    3)PC2(目标)的IP

    同时它还知道自己与交换机连着的。所以当PC1需要向PC2发数据而它又不知道更多信息的情况下,它可以向交换机发一个广播包“问一问”谁是PC2(通过目标IP)。我们知道广播包可以转发到网络中所有设备的所有端口,所以如果PC2真实存在的话,它一定是能收到的,像下图这样。

    在PC2收到ARP广播的同时,网络中所有交换机其实也都收到了,甚至也包括了PC3,所以网络中所有的PC设备可以做如下记录:

    192.168.0.11 的MAC等于5489-9893-0811

    当PC2记录了上述信息后,它需要回应PC1,所以它会发一个ARP的响应报文来告知PC1自己的MAC地址,像下图这样。

    如此各PC可以生成如下的ARP表:

    PC1:

    PC2:

    PC3:

    然后有一点不知道你是否注意到了,PC3的ARP表中只有PC1的MAC而没有PC2的,也就是PC1发的ARP报文是广播而PC2发的响应报文并不是广播。原因是网络中不光PC在记录MAC地址,交换机也是有记录的,因为交换机的记录它可以做到将PC2的响应报文原路送回给PC1而不需要广播。

    四、ARP与MAC表

    前面我们说PC1因为只知道目标IP其他啥也不知道,所以它需要发一个ARP广播到网络中问问目标你到底在不在啊,同时也将自己的MAC地址和IP告知了网络中所有设备,这其中就包括了交换机,所以各交换机可以做如下记录。

    当PC2响应ARP包时,各交换机又可以添加一笔如下记录。

    如此一来,除了PC机可以记录下ARP表,交换机还能记录下下图这些MAC地址表。

    LSW3:

    LSW2:

    LSW4:

    如此,依据PC机的ARP表(IP与MAC对应关系)和交换机的MAC表(端口与MAC对应关系),数据就可以在PC机间高效的传输啦。

    五、报文传输

    假设网络中PC机已完善了ARP表,交换机已完善了MAC表。

    PC1需要向PC2发送一个消息,这个消息只需要知道IP即可,因为PC1的ARP表中有PC2的MAC地址,网卡会自动把这个信息放到报文中并传递给LSW3。LSW3收到报文后可以查询自己的MAC表,发现目的MAC来自E0/0/1,所以它会通过E0/0/1端口将报文传递出去,也就是给了LSW2。同样的LSW2查询MAC表知道要向E0/0/2传递,所以报文传递给了LSW4。LSW4查MAC表知道目标MAC就在自己的E0/0/1端口,它直接传过去就行了,于是PC2就这样收到了来自PC1的报文。

    六、回顾

    本篇我们了解了交换机的工作原理,以及与交换功能密切相关的ARP协议、ARP表、MAC地址表。

    常用命令:

    PC机查询ARP表:arp -a

    交换机查询MAC表:display mac-address

  • 相关阅读:
    阿里云/腾讯云国际经销商账号:仍需不断追赶,全球云计算一日千里
    Vue13 监视属性
    【华为OD机试python】报数游戏【2023 B卷|100分】
    Stable Diffusion 3的到来巩固了 AI 图像对抗 Sora 和 Gemini 的早期领先优势
    Redis整理复习
    JS-回到顶部
    ​打造企业自己代码规范IDEA插件(上)
    www.7seasnft.com、数字藏品、总结
    如何实现 Es 全文检索、高亮文本略缩处理(封装工具接口极致解耦)
    野火霸天虎 STM32F407 学习笔记_5 按键输入;位带操作介绍
  • 原文地址:https://blog.csdn.net/weixin_40402375/article/details/127482866