网络:交换机工作原理
交换机的作用
- 连接多个以太网物理段,隔离冲突域
- 对以太网帧进行高速而透明的交换转发
- 自行学习和维护MAC地址信息
交换机工程在二层,可以用来隔离冲突域,在OSI参考模型中,二层的作用是寻址,这边寻址指的是MAC地址,而交换机就是对MAC地址进行转发,在每个交换机中,都有一张MAC地址表,这个表是交换机自动学习的。
总的来说,交换机的作用是寻址和转发。 注意,这里的寻址和转发都是MAC地址
交换机的特点
- 主要工作在OSI模型的物理层,数据链路层
- 提供以太网的透明桥接和交换
- 依据链路层的MAC地址,将以太网数据帧通过交换机端口进行转发
交换机MAC地址表转发过程
交换机刚启动时,MAC地址表中无表项。以上图中的交换机就是刚刚启动时的MAC地址表。可以看出没有任何的表项,当加入PC的时候,交换机开始进行学习MAC地址。如下图:
- PCA发出数据帧(假设要发送给PCB)
- 交换机把PCA的帧中的源地址MAC_A与接受到此帧的端口E1/0/1关联起来
- 交换机检测自己的MAC地址表,没有发现目标地址
- 交换机把PCA的帧从所有其他端口发送出去(除了接收到帧的端口E1/0/1)
此时局域网内的所有主机都会收到此数据帧,但是只有PCB才会相应这个数据帧,并绘影一个数据帧。 交换机会把MAC_B与端口E1/0/2关联起来。此后就可以进行一对一单播了。
- PCA发出目的到PCD的单播数据帧
- 交换机根据帧中的目的地址,从相应的端口E1/0/4发送出去
- 交换机不在其他端口上转发此单播数据帧
总结
交换机在接收到数据帧以后,首先会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。
下图为数据经过单交换机的传输过程
1)主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。
2)交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。
3)然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了f 0/1接口)。
4)这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。如果没有主机相应这个广播,则会继续向下一个交换机或路由器传播。
5)当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。
下图为经多个交换机进行数据传播的过程。
1)主机A将一个源MAC地址为自己、目标MAC地址主机C的数据帧发送给交换机。
2)交换机1收到此数据帧后,会解析源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧广播出去,主机B和交换机2都会收到此数据帧。主机B会检查本机MAC地址,发现不一样,则不响应。
3)交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会广播此数据帧。
4)主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机1和交换机2都会将主机C的MAC地址记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。
5)这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口f 0/1。
注意:
- 交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口
- 交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。
交换机的工作原理
还没有评论,来说两句吧...