上一次,咱们经过宿舍联网打魔兽的需求,认识了如何经过物理层和链路层组建一个宿舍局域网。今天,让咱们切换到稍微复杂点的场景,办公室。程序员
在这个场景里,就不像在宿舍那样,搞几根网线,拉一拉,扯一扯就能够了。一个办公室少到数十人,大至上百人,每一个人都有一个网口,若是再算上整个楼层楼层、甚至整栋楼,这个网口就更多了。算法
相似办公室这样,这些复杂场景的网络布线就牵扯出一个专业名词-拓扑结构。安全
在解释拓扑结构前,咱们要先明白什么是拓扑。拓扑是 Topology 的音译,直译是地志学,最先指研究地形、地貌相相似的有关学科。如今是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。网络
计算机网络的拓扑结构是引用拓扑学中研究与大小、形状无关的点、线关系的方法,把网络中的计算机和通讯设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构。数据结构
上面说过,每一个办公室会有几十个甚至上百个网口。这个时候,一个交换机确定不够用,须要多台交换机链接,而多台交换机链接就造成了一个稍微复杂的拓扑结构。性能
咱们先来看两台交换机的情形。两台交换机链接着三个局域网,每一个局域网上都有多台机器。若是机器 1 只知道机器 4 的 IP 地址,当它想要访问机器 4 时,把包发出去的时候,它必须知道机器 4 的 MAC 地址。咱们来看看这个过程:学习
在机器 1 收到机器 4 的 MAC 地址后,一个 ARP 请求就成功完成了。加密
在上面过程当中,交换机 A 和交换机 B 都是可以学习到这样的信息:计算机网络
当了解这样的信息后,若是机器 2 访问 机器 1,机器 2 发起一个 ARP 请求获取机器 1 的 MAC 地址,这个广播消息会发给机器 1 和交换机 A。这个时候交换机 A 已经知道机器 1 是在左边的网卡,因此它就不会将请求广播到局域网二和局域网三。设计
就这样,当交换机学习完全部的拓扑信息后,两台交换机工做得会愈来愈好。
可是随着办公室愈来愈大,交换机数量确定会愈来愈多,当整个拓扑结构复杂,这么多网线绕来绕去,不可避免的就会出现一些意料以外的状况,其中最多见的问题就是环路问题。
以下图。当两个交换机环路链接两个局域网时,你知道会出现什么结果吗?
咱们来想象下机器 1 访问机器 2 的过程。
咦,整个过程很顺利,没什么问题。
可是咱们忽略了,两个交换机也是能收到广播包的。咱们来看看两个交换机的广播过程:
看出来了吗?这样一直广播,就会造成一个环路,最终成为广播风暴,直到网络瘫痪。
上面过程,可能会有人说,两台交换机逐渐学习到拓扑结构后 ,是否是就能够了?那就让咱们来看下它们的学习过程:
就这样,两个交换机会不断刷新“三观”,机器 1 是在左网口,过一会,发现不对,机器 1 是在右网口,过了一会,又发现不对,是在左网口。因而,又造成了一个“广播风暴”。
那么,有什么方法能够解决环路问题呢?这就到了 STP 协议出场的时候了。
在数据结构中,有一个方法叫做最小生成树。有环的咱们常称为图。将图中的环破了,就生成了树。而在计算机网络中,生成树的算法叫做 STP(Spanning Tree Protocol)。
STP 协议比较复杂,一开始很难看懂,让咱们来经过华山论剑,决出五岳盟主的方式看看生成树的过程。
在 STP 协议里面有不少概念,译名就很是拗口,让咱们以门派中的职位来帮助你们理解。
概念都准备好了,下面咱们看看 STP 是怎么工做的。
一开始,江湖纷争,异常混乱。你们都以为本身是掌门,谁也不服谁。因而,全部的交换机都认为本身是掌门,每一个网桥都分配了一个 ID。这个 ID 里有管理员分配的优先级,固然管理员指定哪些交换机性能好,就给它们分配高的优先级。这种交换机生下来武功就很高,起步就是乔峰。
既然都是掌门,互相都连长网线,那就互相发送 BPDU 来比功夫呗。这一比就发现,有人是岳不群,有人是封不平。赢的人接着作掌门,输的就只好作小弟了。当掌门的还会继续发 BPDU,而输的人就没有机会了,它们就只有在收到掌门发的 BPDU 的时候,转发一下,表示服从命令。
数字表示优先级。就像上面的图,5 和 6 遇见了,6 的优先级低(数字越小,优先级越高),因此乖乖作小弟。因而,一个小门派造成,5 是掌门,6 是小弟。其余诸如 1-七、2-八、3-4 这样的小门派也诞生了。接着,这些小的门派就好相互合并。
合并的过程会出现如下四种情形。
当 5 碰到了 1,掌门遇见掌门,1 以为本身是掌门,5 也刚刚跟别人 PK 完,成为掌门。这俩掌门比功夫,最终 1 胜出,因而 5 就率领全部的小弟归顺。结果就是 1 成功大掌门。
同门相遇能够是掌门与本身的小弟相遇,这说明存在“环”了。这个小弟已经经过其余门路拜在你门下,结果你还不认识,还 PK 了一把。结果掌门发现这个小弟功夫不错,不该该级别这么低,就把它招到门下亲自带,那这个小弟就至关于升职了。
咱们再来看,假如 1 和 6 相遇。6 原来就拜在 1 的门下,只不过 6 的上司是 5,5 的上司是 1。1 发现,6 距离我只有 2,比从 5 这里过来的 5(=4+1)近多了,那 6 就直接向我汇报吧。因而,5 和 6 分别汇报给 1。
同门相遇还能够是小弟相遇。这个时候就要比较谁和掌门的关系近。近的当大哥。刚才 5 和 6 同时向 1 汇报,后来 5 和 6 相遇比功夫的时候发现,5 你直接汇报给 1 距离是 4,若是 5 汇报给 6 再汇报给 1 ,距离只有 2+1=3,因此 5 干脆拜 6 为上司。
小弟拿本帮掌门和这个掌门比,赢了,这个掌门就拜入门下,输了,就拜入新掌门,而且会主键拉拢和本身链接的兄弟,一块儿“弃暗投明”。
例如,2 和 7 相遇,虽然 7 是小弟,2 是掌门,就我的武功而言,2 比 7 强,可是 7 的掌门是 1,比 2 牛,因此没办法,2 要拜入 7 的门派,而且连同本身的小弟都一块儿拜入。
各自拿掌门比较,输了的拜入赢的门派,而且逐渐将与本身链接的兄弟拉入新门派。
例如,5 和 4 相遇。虽然 4 的武功好于 5,可是 5 的掌门是 1,比 4 牛,因而 4 拜入 5 的门派。后来当 3 和 4 相遇的时候,3 发现 4 已经“叛变”了,4 说我如今老大是 1,比你牛,要不你也来吧,因而 3 也拜入 1。
最红,生成一棵树,武林一统,天下太平。可是天下统一久了,也会有相应问题。常见的有广播和安全问题。
机器多了,交换机也多了,就算交换机比 Hub 智能一些,可是仍是不免有广播的问题。一大堆机器,相关的部门、不相关的部门,广播一大堆,性能就下来了。
就像一家公司,创业的时候,十来我的,坐在一个会议室,有事情你们讨论下,很是方便。当时若是变成了 50 个,全在一个会议室吵吵,就会乱的不得了。
另外一方面,一个公司里,有的部门须要保密,好比人事部门,确定要讨论升职加薪的事情。可是若是在一个广播域里,碰到一个会抓包的程序员,就能看的没有加密的敏感信息。
那咋办?能咋办,分部门,分会议室呗,让咱们来看看怎么分。
有两种分的方法。一个是物理隔离。每一个部门设一个单独的会议室,对应到网络方面,就是每一个部门有单独的交换机,配置单独的子网。这样部门之间的沟通就须要路由器了。
这样的问题在于,有的部门人多,有的部门人少,并且部门的人数也会频繁发生变化,若是每一个部门有单独的交换机,网口多了浪费,少了又不够用。
这时候,虚拟隔离就出来了。虚拟隔离,就是咱们常说的 VLAN,或者叫作虚拟局域网。
使用 VLAN,一个交换机上会连属于多个局域网的机器,那交换机是怎么区分哪一个机器属于哪一个局域网呢?
咱们只须要在原来的二层头上加一个 TAG,里面有个 VLAN ID,共 12 位,能够划分 4096 个 VLAN。对于普通办公室,这个数量应该是够用的。
若是咱们买的交换机支持 VLAN,当这个交换机把二层的头取下来的时候,就可以识别这个 VLAN ID。这样只有相同的 VLAN 的包,才会互相转发,不一样 VLAN 的包,是看不到的。
这样,广播和安全问题就可以解决了。
这样,复杂的办公室网络布线就被咱们用交换机与 VALN 搞定了。
参考: