首页 > 其他分享 >HCIA 交换机原理与ARP协议

HCIA 交换机原理与ARP协议

时间:2023-01-30 16:11:14浏览次数:62  
标签:ARP PC2 PC1 端口 HCIA MAC 交换机

一、概述

交换机(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的报文。

常用命令:

PC机查询ARP表:arp -a 

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

标签:ARP,PC2,PC1,端口,HCIA,MAC,交换机
From: https://www.cnblogs.com/joyware/p/17076321.html

相关文章

  • 网桥、集线器和以太网交换机
    一:网桥(bridge)网桥又叫做桥接器,工作在数据链路层,是一个二层设备。1.网桥的作用:1、网桥在数据链路层上实现局域网互连;2、网桥能够互连两个采用不同传输介质与......
  • 工业交换机的重要指标有哪些,你知道吗?
    众所周知,工业交换机是专门为工业环境而研发设计的,因此工业交换机的要求比普通商业交换机要严格的多!但现在市面上许多打着工业级交换机的旗号,卖的却是商业级别的,由于很多用户......
  • 编程调用arp命令,进阶高手必看
    ARP(AddressResolutionProtocol)命令是一种网络协议,用于在网络中将IP地址映射到对应的物理(MAC)地址。通常在局域网(LAN)中使用。ARP命令通过发送ARP......
  • CSharp: Relational mapping in donet using Entity Framework
     sqlscript--dbo.Students--Idintidentity--Name--Agebyte--CreatedTimedate--ModifiedTimedateIFEXISTS(select*fromsysobjectswhereid=object......
  • CSharp: Sort
     BubbleSort冒泡排序SelectionSort选择排序InsertionSort插入排序QuickSort快速排序ShellSort希尔排序MergeSort归并排序HeapSort堆排序BucketSort桶排序又......
  • 二层交换机的工作原理&二层单点故障和链路聚合
         ......
  • CSharp: Collection
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceCSharpDataStructuresAlgorithms......
  • CSharp: Add,Edit,Del,Select in donet using Entity Framework
     usingSystem;usingSystem.Collections.Generic;usingSystem.Data.Entity;usingSystem.Linq;usingSystem.Runtime.Remoting.Contexts;usingSystem.Text;usi......
  • CS144-Lab5-ARP
    lab地址:lab5-doc代码实现:lab5-code完整目录:0.ByteStream1.StreamReassembler2.TCPReceiver3.TCPSender4.TCPConnection5.ARP6.IP-Router1.目标lab......
  • CSharp: emojione
     ///<summary>///mysql数据库用编码类型utf8mb4///向sqlserver数据库插入emoji表情包///插入emoji的数据时,值value需要......