问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

交换机工作原理+实验案例

创作时间:
作者:
@小白创作中心

交换机工作原理+实验案例

引用
CSDN
1.
https://blog.csdn.net/Fanmeang/article/details/145802382

一、以太网协议

1.概述

以太网协议是用于LAN的一种协议,主要是定义了报文的封装格式和地址解析方式,为了确保数据帧能够在LAN中正确传递。

2.概念

(1)冲突域

冲突域在连接在同一个介质的所有的设备的集合,共享介质的带宽,从一个节点上面发出的报文无论是单播、组播或者广播,除了这个发送端的节点和接收端的节点以外和它同一个介质上的其他节点也能够收到,这样就会出现冲突现象导致通信效率大大降低。

早期的Hub集线器就是一个冲突域主要使用的算法是CSMA/CD(载波侦听多路访问/冲突检测)

(2)广播域

广播域简单来说就是一个节点发送的一个广播报文,其他能够收到这条广播报文的节点主机的集合就是一个广播域。

路由器设备的一个端口就是一个广播域所以路由器有能够隔离广播域的功能,交换机可以使用vlan协议来分割广播域。

(3)双工模式

  • 单工:数据只能够发送或者只能够接收。
  • 半双工:HUB工作模式,数据可以发送,也可以接收,但是不能够同时进行。
  • 全双工:交换机工作模式,数据不仅可以发送同时也可以接收。

二、以太帧

1.以太二帧(Ethernet II帧)

Ethernet II格式中Data字段长度在46-1500B

大部分业务的数据都是以太二帧来进行封装的,比如:FTP(文件传输协议),HTTP(超文本传输协议),ARP(地址解析协议),IP(互联网协议地址)。

  • D.MAC:目的MAC地址,6字节,标识接收者的MAC。
  • S,MAC:源MAC地址,6字节,标识发送者的MAC。
  • Type:类型,2字节,标识上层使用的协议。比如如果上层的是ARP则为0x0806,如果是IP则为0x0800。
  • DATA:用户数据,标识网络层数据,最小为46字节。
  • FCS:校验字段,该字节来判断我们的数据包有没有出现错误或被篡改等,如果出现被篡改或者错误则丢弃。

2.IEEE802.3帧

大部分的协议报文都是以802.3帧来进行封装的,比如:STP,ISIS等

  • Length:该字段定义了用户数据的字节数
  • LLC(Logical Link Control):该字段由SAP(源访问点),DAP(目的访问点),Control(控制字段)组成,源访问点指的是我们这边发送的协议如果是生成树的话就是0x42,如果是ISIS的话就是0xFE,正常来说这两个访问点都是同一个。
  • SNAP(Sub-network Access Protocol):该字段由机构代码(Org Code)和类型Type字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet II中Type字段相同

我们可以通过以太帧的头部的第三个字段是否大于0X600,如果大于那么是以太2帧,如果小于则是802.3帧

三、MAC地址

1.MAC的组成

MAC地址(Media Access Control address)是烧录在网卡里的,MAC地址也叫硬件地址,是由48比特长(6字节),16进制的数字组成;0-23位是由厂家自己分配,24-47位叫做组织唯一标志符(OUI)

(1)OUI:组织唯一标识orgarizationally unique identifier,前24位是厂家向IEEE组织购买的部分。

2.MAC地址的种类

(1)单播:发出的以太帧的目的MAC的第8位必须为0的数据帧才是单播,实现1对1的转发,主要应用于一对一的站点数据传输,相应的单播帧只有一个站点收到。

(2)广播:发出的以太帧的目的MAC为全F主要应用于广播的应用,比如ARP的request请求,相应的广播帧局域网内的所有站点都能够收到。

(3)组播:发出的以太帧的目的MAC的第8位必须为1,主要应用于一对多的应用,比如在802.1X认证,STP/RSTP/MSTP协议等。

四、交换机

1.交换机的分类

(1)二层交换机:工作在数据链路层,即TCP/IP的第二层,主要用于终端的接入(PC 打印机 服务器等)主要是基于MAC来工作的。

(2)三层交换机:当网络的规模变大的时候,可能使用多个IP网段,不同网段之间的互通必须通过路由器或者其他的三层设备(三层交换机),因为路由器的接口比较少,当然我们的路由器是可以添加交换网板的,但是三层交换机有特定的三层转发芯片,所以在园区网中用三层交换机来实现跨网段的互访。

2.交换机的工作原理

1.概述

交换机在收到数据帧之后,首先会记录数据帧中的MAC地址和对应的接口到MAC地址表中,然后交换机会检查MAC地址表中是否已经存在这条MAC地址的信息,如果存在就会根据MAC地址表将数据帧转发出去,如果没有,则会将该数据帧从非接收接口发送出去也就是俗称的广播。

2.交换机的转发行为分类

交换机的转发方式一共分为三种:泛洪、转发、丢弃。

  • 泛洪:交换机收到广播报文(目的MAC全为F)时会泛洪
  • 交换机收到组播数据帧时会泛洪
  • 交换机收到未知的单播帧时会泛洪
  • 转发:交换机收到一个目的MAC存在于自己的MAC地址表中,交换机就会查表将数据转发出去。
  • 丢弃:交换机收到数据的接口和转发数据的接口在同一个接口时,交换机就会将数据丢弃。
3.MAC地址表

当交换机收到了一个数据帧时,会将数据帧的MAC和接口以及VLAN的映射关系放入MAC地址表中。

MAC地址表中包含:MAC地址 接口信息 VLAN信息 Type类型

4.MAC地址表的分类
  • 动态MAC地址:由接口通过报文中的源MAC地址学习获得,表项可老化,默认老化时间为300s,可以通过命令修改老化时间,老化时间到后,会清除学习到的动态MAC地址。
  • 静态MAC地址:由用户手工配置,不会老化,接口和MAC地址静态绑定后,其他接口收到目的MAC是该MAC地址的报文将会被丢弃,但是一个接口和MAC地址静态绑定后,不会影响该接口动态MAC地址表项的学习。
  • 黑洞MAC地址:设备收到源MAC或者目的地址是该MAC地址的报文将会被丢弃。

接下来我们可以做一个简单的实验来看看交换机是如何工作的

拓扑

这时我们让PC1发出一个ICMP的ping报文去pingPC2

通过上图我们可以看到ping通了这时我们再去交换机上查看MAC地址表

我们可以看到MAC表中PC1和PC2的MAC对应的接口,类型为学习到的动态MAC地址表项,当形成了MAC表时后面收到目的MAC为PC1的数据包时,交换机不会再去泛洪而是直接查表转发。

接下来我们可以PC2的MAC设置为静态MAC,在查看MAC地址表时就会发现原本的动态地址表中的PC2的MAC地址被删除了,多了一项静态MAC表。

如果我们把PC2从接口2移到其他接口上,再重新接一台设备到2号口上面则会发生目的MAC为PC2的数据包仍从2号口发送出去,而四号端口则会丢弃该报文,我们可以做一个小实验来验证看看

拓扑

我们这里将PC2重新接到了交换机的3号端口,然后把PC3接入到了2号端口,我们继续让PC1发送ping报文去pingPC2同时打开抓包软件看看会发生什么

我们发现原本可以ping通PC2的PC1现在ping不通了,接下来我们看看抓包软件抓出来的报文信息

1号端口

2号端口

3号端口

我们通过抓包软件发现由PC1发出的ICMP的request报文被交换机转发到了2号端口,而3号端口则是被丢弃了,PC3收到这个报文拆包发现里面的目的MAC并不是自己所以它不会对这个数据包做回应。

此时我们再去查看交换机的MAC表

我们发现MAC地址并没有发生任何改变,是因为交换机没有收到来自PC2和PC3的数据帧,所以PC1发出的数据到交换机之后,交换机发现目的MAC在自己的MAC地址表当中所以直接查表转发,导致PC1的数据依旧从2号端口转发出去,如果这时我们让PC3去pingPC1的话交换机就会记录PC3的MAC地址但是我们会发现一个有意思的地方,我们重新查看MAC地址表时会发现PC3和PC2的MAC都在2号端口上。

此时如果我们让PC1去pingPC3的话,数据到达交换机时交换机查MAC转发还是会从2号端口转发出去,但这次的目的MAC为PC3所以PC3会做回应。

如果此时我们让PC2在去pingPC1或者PC3的话数据到达交换机但交换机不会写入MAC地址表,因为MAC表有一条规则,多个MAC地址可以对应同一个端口,但是不可以多个端口对应同一个MAC地址。

我们可以用抓包软件来看看此时PC2去pingPC1时交换机是如何转发的

连接PC2的3号端口

连接PC1的1号端口

连接PC3的2号端口

通过抓包我们可以看到,PC2发出的ARP的Broadcast请求报文到达交换机时,因为是广播报文所以交换机会进行泛洪处理,所以PC3和PC1都会收到这个请求报文,但PC3拆包发现目的IP不是自己则会丢弃,PC1拆包发现目的IP是自己则做回应,回应数据到达交换机时,发现这个报文是单播报文,就查表转发又从2号端口转发出去了,所以PC2依然ping不同PC1。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号