| 所谓冲突,就是在总线上同时有多个机器在传送数据,从而造成数据包的冲突和碰撞,这在以太网中是不允许的,因此,以太网中引入了 CSMA/CD 冲突检测机制, CSMA/CD 是英文 carrier sense multiple access/collision detected 的缩写,可把它翻成“载波侦察听多路访问 / 冲突检测”。这个机制的工作原理就是每台机器在总线上发送数据之前要侦听是否有其他数据在总线上传送,如果有就等待,否则就会发出准备传送数据的信息,其它机器侦听到这个信息就会暂停自己的数据传送。可以说所有在这个总线上的机器在一个冲突域内,因为他们是互相争夺总线带宽的,是共享机制,因此又叫做带宽域。集线器( HUB )所有的端口都在一个冲突域,所有的机器都可以侦听到其它机器是否在发送数据,也可以接受到其它机器发出的数据,所以说 HUB 是共享带宽的,在满载的情况下是不能保证所有机器都能得到端口的标称带宽的,而且利用其可以接收到其它机器发送的数据的特点,我们可以用 sniffer 等软件监控网络中的数据。 交换机的好处在于其可以隔离冲突域,每个端口就是一个冲突域,因此在一个端口单独接计算机的时候,该计算机是不会与其它计算机产生冲突的,也就是带宽是独享的,交换机能做到这一点关键在于其内部的总线带宽是足够大的,可以满足所有端口的全双工状态下的带宽需求,并且通过类似电话交换机的机制保护不同的数据包能够到达目的地,可以把 HUB 和交换机比喻成单排街道与高速公路。 HUB 和交换机都工作于 OSI 的第二层。 IP 广播是属于 OSI 的第三层,是基于 TCP/IP 协议的,其产生和原理这里就不多讲了,大家可以看看 TCP/IP 协议方面的书籍。交换机是无法隔离广播的,就像 HUB 无法隔离冲突域一样,因为其是工作在 OSI 第二层的,无法分析 IP 包,但我们可以使用路由器来隔离广播域,路由器的每个端口可以看成是一个广播域,一个端口的广播无法传到另外一个端口(特殊设置除外),因此在规模较大,机器较多的情况下我们可以使用路由器来隔离广播。 下面开始归入正题。 通常,只有通过划分子网才可以隔离广播,但是 VLAN 的出现打破了这个定律,用二层的东西解决三层的问题很是奇怪,但是的确做到了。 VLAN 中文叫做虚拟局域网,它的作用就是将物理上互连的网络在逻辑上划分为多个互不相干的网络,这些网络之间是无法通讯的,就好像互相之间没有连接一样,因此广播也就隔离开了。 VLAN 的实现原理非常简单,通过交换机的控制,某一 VLAN 成员发出的数据包交换机只发个同一 VLAN 的其它成员,而不会发给该 VLAN 成员以外的计算机。 使用 VLAN 的目的不仅仅是隔离广播,还有安全和管理等方面的应用,例如将重要部门与其它部门通过 VLAN 隔离,即使同在一个网络也可以保证他们不能互相通讯,确保重要部门的数据安全;也可以按照不同的部门、人员,位置划分 VLAN ,分别赋给不同的权限来进行管理。 VLAN 的划分有很多种,我们可以按照 IP 地址来划分,按照端口来划分、按照 MAC 地址划分或者按照协议来划分,常用的划分方法是将端口和 IP 地址结合来划分 VLAN ,某几个端口为一个 VLAN ,并为该 VLAN 配置 IP 地址,那么该 VLAN 中的计算机就以这个地址为网关,其它 VLAN 则不能与该 VLAN 处于同一子网。 如果两台交换机都有同一 VLAN 的计算机,怎么办呢,我们可以通过 VLAN Trunk 来解决。 如果交换机 1 的 VLAN1 中的机器要访问交换机 2 的 VLAN1 中的机器,我们可以把两台交换机的级联端口设置为 Trunk 端口,这样,当交换机把数据包从级联口发出去的时候,会在数据包中做一个标记( TAG ),以使其它交换机识别该数据包属于哪一个 VLAN ,这样,其它交换机收到这样一个数据包后,只会将该数据包转发到标记中指定的 VLAN ,从而完成了跨越交换机的 VLAN 内部数据传输。 VLAN Trunk 目前有两种标准, ISL 和 802.1q ,前者是 Cisco 专有技术,后者则是 IEEE 的国际标准,除了 Cisco 两者都支持外,其它厂商都只支持后者。 |