一个办公室内部,可能由多个交换机组成,共同组成了一个大的局域网
假设一个局域网分布关系如下
当机器1 要发送数据给机器4的时候,就会发送广播寻找机器4的mac地址
交换机A 收到 机器1的广播包之后,会转发给所有端口
机器2也收到了,发现不是自己就丢弃这个数据包
交换机B也收到了这个广播包,再广播给所有的端口
于是机器4收到了并回应,这时候交换机A,交换机B就知道机器1,机器4在哪个端口上了
出现环路的情况
机器1想访问机器2,于是发送了一个广播
交换机A 收到广播后,转给 右边的LAN2,于是交换机B也收到了
同样交换机B会将这个广播继续转发,也就是转发给LAN1,最后转了一圈又到交换A这里了
此时交换机A是不知道机器2在哪里,于是再次转发,最后形成网络风暴,变成环路了
当机器1发送广播包丢掉时候,交换机A,交换机B都知道机器1是在左边这个端口上
之后交换机A将数据广播出去,交换机B右边端口收到了,他以为机器1的位置变了,于是更新映射表
交换机B再转发广播,交换机A右边端口也收到了,于是也更新映射表
于是一会左边,一会右边,就在不停的更新映射关系
使用生成树算法解决上述问题
STP spanning Tree Protocol
STP协议中的一些概念解释
1.Root Bridge,也就是根交换机
2.Designated Bridges,对一个根交换机来说,会有一些交换指定他做上级
3.Bridge Protocol Data Units BPUD,当两个交换机相连的时候就需要比较各自权重,只有根交换机才可以比较,其他附属的交换机只负责传达命令
4.Priority Vector优先级向量,两个交换机比较权重,[Root Bridge Id,Root Path Cost,Bridge ID and Port ID],就是先比跟交换机,再比到达跟交换机的时间权重,最后比较自己的权重
有些交换机比较贵,一开始就被管理员分配了很高的权限
下面是一个例子
经过一轮的BPDU比较,有些交换机就变成根了,有些就变成从属了
下面这个图中,就形成了几个小的分支
3-4,5-6,1-7,2-8
合并过程有下面四种情况
1.根和根比较,1交换机大于5交换机,于是5归属到1下面,并将5下面所有的交换机都归顺到1下面
2.同组内的比较,6原来的上级是5,现在1和6经过比较发现,应该变成1->6->5这种模式,因为1->5的路径花费很高,5还不如经过6再到1更划算
3.根和从属比较,本来2是根的,7是从属,但是7的上级比2大,于是2带着下面所有的交换机都归属到1下面
也就变成了1->7->2这种模式了
4.从属交换机之间比较,4本来比5大的,但是4的3 小于 5的上级1,于是4和2归顺到5下面
最终就形成了一个统一的树模型了
一个局域网内,可能有不同的部门,财务,HR,技术
为了保证效率(不那么频繁的发广播),也为了保证安全性,需要给机器分组
于是就出现了VLAN技术,将一个交换机下面的机器划分成若干个虚拟局域网
实现方式是在MAC数据包做了改动,在目标mac,源mac,之后加入了一个tag标签,用来标识VLAN的id
VLAN的id一共是12bit也就是4096个,在云计算的环境中就显得不够用了
经过划分之后,不同VLAN的机器就独立了,VLAN10的机器就不能给VLAN20的机器通讯
而VLAN10下面某个机器原本是A的,现在A走了变成B,B是另外一个部门,只要将其连接端口改成VLAN20就可以换组了