在学习交换机工作原理之前,我们来了解一下涉及到的一些基本概念:
一、mac地址表
mac地址表是存放在内存(交换机)中的,里面有mac地址和接口内容,在刚开始使用交换机时,mac地址表完全是空的。
二、转发数据的方式
广播(broadcast):将收到的报文发给所有接口
组播(multicast):将收到的数据转发给指定一组特定的接口
单播(unicast):将数据只发给对应的接口(mac地址表里会记载)
交换机的具体工作原理,可以概括为两个方面:
- 学习:学习数据帧的源mac地址,写到mac地址表里(因为刚开始的时候mac地址表是空的,所以交换机需要知道数据帧从哪里来,到哪里去)
- 转发数据:当目的mac在mac地址表里面没有的时候,交换机会给连接在它上面的所有接口都转发一份数据,称为广播。
交换机什么时候会广播?
当目的mac地址在mac地址表里面没有的时候
收到目的mac全是FF:FF:FF:FF:FF:FF的地址时
那么问题来了,源设备是怎么知道目的设备的mac地址,然后转发数据的呢?
在计算机网络中,有一个arp协议,完美的解决了这个问题。
arp (address resolution protocol) :地址解析协议,可以将ip地址解析成对应的mac地址。
我们的每台电脑设备里面都会有一个arp缓存表(使用arp -a查看),会记录ip地址和对应的mac地址,如果arp缓存表里面没有我们需要的mac地址,电脑就会发送广播包去‘寻找’mac地址。
arp协议有两种类型的数据包:
1、请求包 request:请求得到某个ip对应的mac地址
2、相应包 response:把自己ip对应的mac地址告诉对方
下面我们用一个例子来解释整体过程:
大致就是这样的流程,欢迎在评论区指正修改