zl程序教程

您现在的位置是:首页 >  其它

当前栏目

交换机 Switch

交换机 switch
2023-06-13 09:18:26 时间

冲突域

定义:同一时间内只能有一台设备发送信息的范围。

分层:基于OSI的第一层物理层

设备:第二层设备能隔离冲突域,比如Switch。交换机能缩小冲突域的范围,交换接的每一个端口就是一个冲突域。

广播域

定义:如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

分层:基于OSI的第二层数据链路层

设备:第三层设备才能隔离广播域,比如Router。路由器能隔离广播域,其每一个端口就是一个广播域。

什么是交换机

交换机是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。交换机工作于OSI参考模型的第二层,即数据链路层。交换机拥有一条高带宽的背部总线和内部交换矩阵,在同一时刻可进行多个端口对之间的数据传输。交换机的传输模式有全双工,半双工,全双工/半双工自适应。

交换机工作原理(mac table 建立过程):

交换机在转发数据前必须知道它的每一个端口所连接的主机的MAC地址,构建出一个MAC地址表,因此构建MAC地址表是交换机的首要工作。我们举例说明一下交换机建立地址表的过程。

  • 首先我们知道,每一个数据帧中都包含有源MAC地址和目的MAC地址,假设主机A向主机C发送一个数据帧,当该数据帧从E0端口进入交换机后,交换机通过检查数据帧中的源MAC地址字段,将该字段的值,也就是主机A的MAC地址,放入MAC地址表中,并把它与E0端口对应起来,表示E0端口所连接的主机是A。此时,由于在MAC地址表中没有关于目的地MAC地址,也就是主机C的MAC地址的条目。交换机技术将此帧向除了E0端口以外的所有端口转发,从而保证主机C能收到该帧(这种操作叫flooding)。
  • 同理,当交换机收到主机B、C、D的数据后也会把他们的地址学习到,写入地址表中,并将相应的端口和MAC地址对应起来。最终会把所有的主机地址都学习到,构建出完整的地址表。
  • 此时,若主机A再向主机C发送一个数据帧,应用交换机技术则根据它的MAC地址表中的地址对应关系,将此数据帧仅从它的E2端口转发出去。从而仅使主机C接收到主机A发送给它的数据帧,不再影响其他端口。那么在主机A和主机C通信的同时其他主机之间也可以通信。

这就是一个比较完整的MAC地址表的形成过程。需要强调的是,我们为了解释交换机如何建立MAC地址表,假设A向C发了一个数据帧。实际情况并非如此,并不是主机间必须进行通信交换机才能学习到MAC地址。实际上是当网卡驱动加载之后交换机就学习到了主机的MAC地址。

MAC地址条目计时器:

在初始状态下,交换机的 MAC 地址表是空的,不包含任何条目。当交换机的某个端口接收到一个数据帧时,它就会将这个数据帧的源 MAC 地址、接收数据帧的端口号作为一个条目保存在自己的 MAC 地址表中,同时在接收到这个数据帧时重置这个条目的老化计时器时间,默认为300秒。这就是交换机自动添加 MAC 地址表条目的方式。

在新增这一条 MAC 地址条目后,如果交换机再次从同一个端口收到相同 MAC 地址为源 MAC 地址的数据帧时,交换机就会更新这个条目的老化计时器,确保活跃的的条目不会老化。但是如果在老化时间内都没收到匹配这个条目的数据帧,交换机就会将这个老化的条目从自己的 MAC 地址表中删除

图文解析:

#1. 初始状态下,交换机的mac table是空的:

#2:PC1 发送了一个数据帧给PC4(暂且假设PC1已经知道了PC4的mac地址):

#3. 交换机在收到数据帧之后,将数据帧的源mac地址添加到MAC地址表中,并与接受该数据帧的借口FE0/1 关联

#4. 交换机在MAC地址表中查询数据帧的目的mac地址,发现没有匹配的表项,因此将数据帧向除接受该数据帧的接口以外的其他所有接口泛洪出去

#5. PC2,PC3收到数据帧后将其丢弃,因为数据帧并非发给自己,PC4收下该数据帧并且回复数据帧

#6. 交换机收到回复的数据帧,并将数据帧的源MAC地址学习到MAC表中,且与对应的接口FE0/4关联

#7. 随后交换机在MAC地址表查询数据帧的目的MAC地址,发现一条匹配的表项,出接口是FE0/1,于是将数据帧转发到FE0/1

参考自:

https://www.zhihu.com/question/58187639

https://blog.csdn.net/starter_____/article/details/102609365