1交换机基本原理和转发流程总结关键词:以太网集线器EthernetHUB交换机Switch虚拟局域网VLAN路由器Router路由表RouteTable地址解析协议ARPARP表ARPTableMAC表FIBTable三层硬件转发表IPfdbTable计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。下面将从互联网的渐进历程逐一阐述各种设备的工作原理:1、EthernetHUBEthernetHUB的中文名称叫做以太网集线器,其基本工作原理是广播技术(broadcast),也就是HUB从任何一个端口收到一个以太网数据帧后,它都将此以太网数据帧广播到其它所有端口,HUB不记忆哪一个MAC地址挂在哪一个端口——这里所说的广播是指HUB将该以太网数据帧发送到所有其它端口,并不是指HUB将该报文改变为广播报文。以太网数据帧中含有源MAC地址和目的MAC地址,对于与数据帧中目的MAC地址相同的计算机执行该报文中所要求的动作;对于目的MAC地址不存在或没有响应等情况,HUB既不知道也不处理,只负责转发。HUB工作原理:①HUB从某一端口A收到的报文将发送到所有端口;②报文为非广播报文时,仅与报文的目的MAC地址相同的端口响应用户A;③报文为广播报文时,所有用户都响应用户A。随着网络应用不断丰富,网络结构日渐复杂,导致传统的以太网连接设备HUB已经越来越不能满足网络规划和系统集成的需要,它的缺陷主要表现在以下两个方面:①冲突严重——HUB对所连接的局域网只作信号的中继,所有物理设备构成了一个冲突域;②广播泛滥。2、二层交换技术2二层交换机的出现能够在一定程度上解决HUB存在的缺陷——主要是冲突严重的问题,其与HUB的区别从大的方面来看可以分为以下三点:①从OSI体系结构来看,HUB属于OSI模型的第一层物理层设备,而交换机属于OSI的第二层数据链路层设备。也就意味着HUB只是对数据的传输起到同步、放大和整形的作用,对数据传输中的短帧、碎片等无法进行有效的处理,不能保证数据传输的完整性和正确性;而交换机不但可以对数据的传输做到同步、放大和整形,而且可以过滤短帧、碎片等。②从工作方式来看,HUB是一种广播模式,当HUB的某个端口工作的时候,其他所有端口都能够收听到信息,容易产生广播风暴,当网络较大时网络性能会受到很大的影响;而当交换机工作的时候,只有发出请求的端口和目的端口之间相互响应而不影响其他端口,因此交换机就能够隔离冲突域,并在一定程度上抑制广播风暴。③从带宽来看,HUB不管有多少个端口,所有端口都是共享一条带宽,在同一时刻只能有二个端口传送数据,其他端口只能等待,同时HUB只能工作在半双工模式下(半双工模式——在通道中同时只能沿着一个方向传输数据);而对于交换机而言,每个端口都有一条独占的带宽,当二个端口工作时并不影响其他端口的工作,同时交换机不但可以工作在半双工模式下而且可以工作在全双工模式下(全双工模式——在通道中同时双向数据传输的能力)。二层交换技术的工作原理:由于二层交换技术是在OSI七层网络模型中的第二层,即数据链路层进行操作的,因此交换机对数据报文的转发是建立在MAC(MediaAccessControl)地址--物理地址基础之上的,对于IP网络协议来说,它是透明的,即交换机在转发数据报文时,无须知道信源机和信宿机的IP地址,只需知其物理地址(MAC地址)即可。交换机在工作过程当中会不断的检测报文的源和目的MAC地址来建立MAC地址表,这个表说明了某个MAC地址是在哪个端口上被发现的。这样当交换机收到一个报文时,它便会看一下该数据报文的目的MAC地址,核对一下自己的MAC地址表以确认应该从哪个端口把数据报文发出去;但若交换机收到的报文在目的MAC地址不能在地址表中找到时,交换机会把IP报文广播出去——这正是二层交换机的弱点所在。二层交换机的报文转发涉及到两个关键的线程:学习线程:①交换机接收网段上的所有数据帧,利用接收数据帧的源MAC地址建立MAC地址表;②端口移动机制:交换机如果发现一个报文的入端口和报文中源MAC地址的所在端口不同,就产生端口移动,将MAC地址学习到新的端口;③地址老化机制:如果交换机在很长一段时间内没有收到主机发出的报文,则该主机对应的MAC地址就会被删除,等下次报文来的时候重新学习。3报文转发线程:①交换机在MAC地址表中查找数据帧的目的MAC地址,如果找到就将该数据发送到相应的端口,如果找不到就向所有的端口发送(广播);②如果交换机收到的报文中源MAC与目的MAC地址相同,则丢弃该报文;③交换机向入端口以外的所有其它端口发送广播报文。二层交换机的缺点:传统的以太网交换机对接收到的数据帧根据MAC地址进行二层转发,因此将网段上的冲突域限制到了端口级,但却无法限制广播域的大小,在主机数量很多的情况下,广播泛滥的现象仍然很严重。3、VLAN技术为解决在局域网中存在的广播泛滥和安全性的问题,引出了VLAN即虚拟局域网的概念,所谓VLAN是一种将局域网内的设备逻辑地而不是物理地划分成一个个网段从而实现虚拟工作组的新兴技术。VLAN技术允许网络管理者将一个物理的LAN逻辑地划分成不同的广播域(或称虚拟LAN,即VLAN),每一个VLAN都包含一组有着相同需求的计算机工作站,与物理上形成的LAN有着相同的属性。但由于它是逻辑地而不是物理地划分,所以同一个VLAN内的各个工作站无须被放置在同一个物理空间里,即这些工作站不一定属于同一个物理LAN网段。一个VLAN内部的广播和单播流量都不会转发到其他VLAN中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。引入了VLAN以后,对二层交换机的报文转发线程产生了如下的影响:1)交换机在MAC地址表中查找数据帧中的目的MAC地址,如果找到(同时还要确保报文的入VLAN和出VLAN是一致的),就将该数据帧发送到相应的端口,如果找不到,就向(VLAN内)所有的端口发送;2)如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文;3)交换机向(VLAN内)入端口以外的其它所有端口转发广播报文。Vlan与二层交换的规则:主机和交换机之间传送的是untagged报文交换机之间用干道链路(Trunk)连接交换机用Tag来标识报文所属的VLAN干道链路上传输的是TaggedFrame不同VLAN之间在二层不能相互通讯虚拟局域网将一组位于不同物理网段上的用户在逻辑上划分成一个局域网内,在功能和操作上与传统LAN基本相同,可以提供一定范围内终端系统的互联。VLAN的优势主要表现在以下四个方面:1)建立虚拟工作组模型,使虚拟局域网中的各个设备很容易相互访问;42)限制广播范围;3)增加网络的安全性;4)动态网络管理。VLAN的划分:基于端口的VLAN;基于MAC的VLAN;基于协议的VLAN;基于IP地址的VLAN;基于IP子网的VLAN;基于组合策略的VLAN。802.1Q协议规定了一段新的以太网祯字段,与标准的以太网祯头相比,VLAN报文格式在源地址后增加了一个4字节的802.1Q标签。4个字节的802.1Q标签中,包含了2个字节的标签协议标识(TPID--TagProtocolIdentifier,它的值是8100),和两个字节的标签控制信息(TCI--TagControlInformation),TPID是IEEE定义的新的类型,表明这是一个加了802.1Q标签的报文。如图1所示:DestinationMacSourceMacLength/typeFCS66242~15004Data4DestinationMacSourceMacLength/typeFCS66246~15004DataVlantag22VlanProtocalID=0x8100cfipriorityVlanID1bit3bit12bit图1VLANIdentified(VLANID):这是一个12位的域,指明VLAN的ID,一共4096个,每个支持802.1Q协议的主机发送出来的数据包都会包含这个域,以指明自己所属的VLAN。CanonicalFormatIndicator(CFI):这一位主要用于总线型的以太网与FDDI、令牌环网交换数据时的祯格式。Priority:这3位指明祯的优先级。一共有8种优先级,主要用于当交换机阻塞时,优先发送优先级高的数据包。5在交换机中,直接与主机相连的端口是无法识别802.1Q报文的,那么这种端口称为Access端口;对于交换机相连的端口,可以识别和发送802.1Q报文,那么这种端口称为TagAware端口。工作原理:在交换机中的报文转发过程中,802.1Q报文标识了报文所属的VLAN;在跨越交换机的报文中,带有VLAN标签信息的报文尤其显得重要。例如,定义交换机中的1端口属于VLAN2,且该端口类型为Acess,当1端口接收到一个数据报文后,交换机会查看该报文中没有802.1Q标签,若没有交换机根据1端口所属的VLAN2,自动给该数据包添加一个VLAN2的标签头,然后再将数据包交给数据库查询模块,数据库查询模块会根据数据包的目的地址和所属的VLAN进行查找,之后交给转发模块,转发模块看到这是一个包含标签头的数据包,根据报文的出端口的性质来决定是否保留还是去掉标签头。如果端口是TagAware端口,则保留标签,否则删除标签头。一般情况下,两个交换机互连的端口一般都是TagAware端口,交换机和交换机之间交换数据包时是没有必要去掉标签的。VLAN的IVL和SVL方式IVL:IndependentVlanLearningSVL:SharedVlanLearning图2在IVL方式下:每个VLAN都有自己的对应的MAC地址表(抽象的概念并不是物理的),相互之间没有影响。一个MAC地址可以被学习到不同的VLAN中,因此对一个用户来说如果属于多个VLAN,那么每个VLAN内的信息都需要重新学习。而SVL方式下,一个地址表项对所有的VLAN都通用,表中的MAC用户不能有重复。PVLANPVLAN,Primary-VLAN特性的简称,主要通过将用户划入不同的VLAN,实现用户之间二层报文的隔离。为客户提供了更多的解决方案。在PVLAN的设计中采用了多个SecondaryVLAN包含在一个PrimaryVLAN中的方式,给用户提供了灵活的配置方式。如果用户希望实现二层报文的隔离,可以采用了为每个用户分MAC1VLAN1PORT1MAC2VLAN2PORT2MAC2VLAN2PORT2MAC3VLAN3PORT3MAC1VLAN1PORT1MAC2VLAN2PORT2MAC3VLAN3PORT3IVLSVL6配一个Secondaryvlan的方式,每个VLAN中只包含用户连接的端口和Uplinkport;如果希望实现用户之间二层报文的互通,可以将用户连接的端口划入同一个VLAN中;同时创建PrimaryVLAN,该VLAN包含所有SecondaryVLAN中包含的端口和Uplink端口,这样对上层交换机来说,可以认为下层交换机中只有一个PrimaryVLAN,用来标识设备,而不必关心PrimaryVLAN中的端口实际所属的VLAN,简化了配置,节省了VLAN资源。图3PrimaryVLAN中的所有端口都不是802.1Q的Trunk端口,包括与其它交换机相连的Uplink口。每个端口的PVID就是它所属SecsondaryVLAN的ID,Uplink端口的PVID是PrimaryVLAN的ID。如图3所示,在交换机中可以实现端口同时属于多个VLAN,其中端口1为Uplink端口,属于PrimaryVLAN1,端口2