交换技术一、以太网以太网技术标准主要定义了数据链路层和物理层的规范。同一层次的技术标准包括令牌环网等等。TCP/IP协议本身是与数据链路层和物理层无关的,TCP/IP协议栈可以架构在以太网技术上,也可以是令牌环网。LLCMAC物理层数据链路层以太网技术范围以太网是广播网。半双工传输时采用CSMA/CD技术,全双工模式不需要。在采用CSMA/CD传输介质访问的以太网中,任何一个CSMA/CDLAN工作站在任何一时刻都可以访问网络。发送数据前,工作站要侦听网络是否堵塞,只有检测到网络空闲时,工作站才能发送数据。工作站在发送数据帧时需要等待一个时间片的时间,用来检测刚才发送出去的帧是否发生冲突。冲突发生时,采用时间指数退避算法,延后一段时间后在发送数据包。一层设备:代表设备是HUB,作用于7层网络模型的第1层,物理层,主要用于电信号的放大,以增加传输距离。一层设备不存在交换。以太网HUB工作于半双工状态,HUB连接的所有主机同时只能有一台主机发送以太帧,并且所有的主机都能够接收到这个帧,所有的端口处于同一个冲突域,一个广播域。以太网帧结构:前导符帧开始符目的地址源地址类型数据CRC7字节1字节6字节6字节2字节46-1500字节4字节最小以太帧为64字节,若小于64字节,则需要“填充”。二、交换机基本结构目前的L2/L3交换芯片一般采用分布式交换的体系结构,主要包括:CPU(带管理的交换机)或者EEPROM(不带管理的交换机)、交换结构、MAC芯片、物理层芯片几个部分,如果是提供光口还需要光模块。其中的核心是MAC芯片,实现了MAC源地址学习和L2层以太帧转发,以及流量控制功能,如果是L3芯片,则在MAC层芯片中还有路由模块。所有的2层地址学习、2层转发和3层路由都是分散在各个MAC芯片中完成的。虽然地址学习是分散在各个芯片中完成的,但是系统中的所有MAC芯片会通过内部通讯协议通过交换结构互相交换地址学习信息,使得整个系统中的地址学习表是统一的。图中所示的是一个L2/L3层交换的MAC芯片,它主要包括了L2交换模块、L3路由模块、流分类模块和转发引擎等几个部分:1、L2交换模块主要进行MAC地址学习和L2层转发判断2、L3路由模块主要根据路由表进行L3层路由转发,如果是L2芯片则没有这个模块3、流分类模块主要是对进入以太帧做QOS方面的调整或者流量限制。如果是L2层芯片,则可以根据源目的MAC地址、端口、VLAN号、以太帧中的COS位进行流控,降低优先级甚至丢弃,如果是L3层芯片还可以根据IP包中的TOS位、IP源目的地址、IP地址加上TCP/UDP的端口号,甚至根据应用层的信息进行QOS调整和流量控制。转发引擎主要是根据前面几个模块的结果做转发操作,输出队列的选择依据以太帧中的COS与优先级队列映射表或者Diffserv表等。交换机构:总线结构、共享内存交换结构、CROSSBAR结构两种转发方式:直接转发、存储转发三、VLAN及三层交换二层交换式网络中,整个网络是一个扁平的结构。网络全部由二层交换机构造起来,整个网络是一个大的广播域。在以太网中,所谓广播域就是指在一个网络中,广播帧(目的MAC地址为ff-ff-ff-ff-ff-ff的帧)将要被转发的最大范围。在二层交换机中,交换机仅根据MAC地址进行帧的选路和转发,当一个完整正确的以太网帧从一个交换机端口上被接收上来以后,交换机将在自己维护的MAC地址表中去查找地址,根据地址类型的不同和查找结果的不同情况,交换机对帧采取不同的处理。单播帧(Unicast),目的地址在MAC地址表中存在:按照目的地址在地址表中的表项所指的输出端口,将帧转发到相应的端口上。(单播MAC地址在地址表中只能指向一个输出端口)单播帧(Unicast),目的地址在MAC地址表中不存在:在广播域的所有端口上广播该帧多播帧(Multicast),目的地址在MAC地址表中存在:按照目的地址在地址表中的表项所指的输出端口,将帧转发到相应的端口上。(多播MAC地址在地址表中可以指向一个或一组输出端口)多播帧(Multicast),目的地址在MAC地址表中不存在:在广播域的所有端口上广播该帧广播帧(Broadcast):在广播域的所有端口上广播该帧为了解决网络由广播导致的效率下降和安全性等问题,VLAN的概念被引入,在支持VLAN功能的交换机组成的网络中,每一个VLAN被设计为一个独立的广播域。VLAN之间被严格地隔离开来,任何一个帧都不能从自己所属的VLAN被转发到其他的VLAN中。整个网络被划分为若干个规模更小的广播域,网络的广播被控制在相对比较小的范围内,提高了网络的带宽利用率,改善网络效率和性能。每一个人都不能随意地从网络上的一点,毫无控制地直接访问另一点的网络或监听整个网络上的帧,隔离的广播域改善了网络的安全性。对于VLAN概念的理解,有几点要注意:1.VLAN分离了广播域;2.单独的一个VLAN模拟了一个常规的交换以太网,因此VLAN将一个物理交换机分割成了一个或多个逻辑交换机;3.不同VLAN之间通信需要三层参与;4.当多台交换机级联时,VLAN通过VID来识别,该ID插入到标准的以太帧中,被称作tag;5.大多数的tag都不是端到端的,一般在上行路上第一个VLAN交换机打tag,下行链路的最后一个VLAN交换机去除tag;6.只有在一个数据帧不打tag就不能区分属于哪个VLAN时才会打上tag,能去掉时尽早要去掉tag;7.最终,IEEE802.1q解决了VLAN的tag问题。VLAN间通信用传统的路由器进行VLAN之间的路由在性能上还有一定的不足:由于路由器利用通用的CPU,转发完全依靠软件进行,同时支持各种通信接口,给软件带来的负担也比较大。软件要处理包括报文接收、校验、查找路由、选项处理、报文分片,导致性能不能做到很高,要实现高的转发率就会带来高昂的成本。由此就诞生了三层交换机,利用三层交换技术来进一步改善性能。三层交换机的设计基于对IP路由的仔细分析,把IP路由中每一个报文都必须经过的过程提取出来,这个过程是个十分简化的过程:IP路由中绝大多数报文是不包含IP选项的报文,因此处理报文IP选项的工作在多数情况下是多余的;不同的网络的报文长度都是不同的,为了适应不同的网络,IP实现了报文分片的功能,但是在全以太网的环境中,网络的帧(报文)长度是固定的,因此报文分片的功能也是一个可以裁减的工作;三层交换机采用了和路由器的最长地址掩码匹配不同的方法,使用精确地址匹配的方式处理,有利于硬件实现快速查找;三层交换机采用了Cache的方法,把最近经常使用的主机路由放到了硬件的查找表中,只有在这个Cache中无法匹配到的项目才会通过软件去转发。这样,只有每个流的第一个报文会通过软件进行转发,其后的大量数据流则可以在硬件中得以完成。三层交换机在IP路由的处理上做了以上改进,实现了简化的IP转发流程,利用专用的芯片实现了硬件的转发,这样绝大多数的报文处理都在硬件中实现了,只有极少数报文才需要使用软件转发,整个系统的转发性能能够得以成百上千倍地增加。相同性能的设备在成本上得以大幅度下降。四、交换机的报文转发L2交换机中的3张表:1、地址转发表MACVLAN端口选项MACA112地址学习表是L2交换的转发依据。它主要记录某个MAC地址是从哪个端口收到的,以及这个被学习的帧属于哪个VLAN的信息,另外还有一个比较重要的栏是标志,在标志栏中可以设置标志,使匹配到这个条目的以太帧被送到CPU进行处理,或者送到L3路由模块进行处理。也可以设置标志表示该表项是属于静态表项,不进行老化处理。2、VLAN表VLAN端口11、2、3VLAN表主要记录哪些端口属于某个VLAN。一个端口可以属于多个VLAN,比如端口1既属于VLAN1,又属于VLAN3,此时这个端口输出时采用802.1Q的帧格式。3、端口寄存器表端口号PVID端口寄存器表项主要记录了该端口的缺省VLAN。交换机的报文转发机制分两种:SVL和IVL。SVL:Sharedvlanlearning,共享式vlan学习。在这种方式下,MAC地址在整张表中是唯一的,一个MAC地址在地址表中只能有一条记录,一个MAC只能被学习到一个端口上。IVL:Independentvlanlearning,独立式vlan学习。在这种方式下,MAC地址表在逻辑上可以被看成根据VLAN信息分成了很多张表,一个MAC地址可学习到不同VLAN对应的“地址表”上。MAC地址在不同方式的地址表中的存在可以形象的表示为:MAC1VALN1PORT1MAC2VLAN2PORT2MAC3VLAN3PORT3IVLSVLMAC1VALN1PORT1MAC2VLAN1PORT2MAC2VLAN2PORT3MAC3VLAN3PORT3在IVL方式下,MAC2可以学习在VLAN1的“地址表”上,也可以学习在VLAN2的“地址表”上。两种转发机制的转发报文的流程而在SVL方式下,MAC2只能有一条记录,只能对应某个VLAN和端口。对于SVL方式而言:交换机先根据目的MAC地址查MAC地址表,找到端口之后,然后判断这个端口所属的VLAN是否和报文携带的VLAN信息对应的VLAN相等,如果相等就转发,否则就丢弃。如果根据目的MAC没有找到对应的端口,则在报文所属的VLAN内进行广播。而对于IVL而言:交换机根据MAC地址和VLAN信息一起查MAC地址表,如果找到对应的端口则转发,否则在报文所属的VLAN内进行广播。三层交换机的数据包转发流程三层交换机转发流程三层交换机转发流程二层交换二层交换模块模块MACMAC表表VLANVLAN表表三层路由三层路由模块模块路由表路由表多层多层流分类流分类流分类流分类规则表规则表多层流处理多层流处理流处理属性表流处理属性表(接入带宽约束(接入带宽约束//优先级)优先级)策略策略//管理服务器管理服务器以太以太网包网包以太以太网包网包广广播播包包未未知知流流交交换换网网包转发包转发广播包和无法广播包和无法路由的包路由的包包转发包转发假设两个使用IP协议的站点(源站点A、目的站点B)通过第三层交换机,通信的过程如下:-源站点A在开始发送时,已知目的站的IP地址,但尚不知道在局域网上发送所需要的MAC地址。首先需要采用地址解析(ARP)来确定目的站的MAC地址。源站点把自己的IP地址与目的的站的IP地址比较。-若目的站B与源站A在同一子网内,源站A广播一个ARP请求,目的B站返回其MAC地址,A站得到目的站点B的MAC地址后将这一地址缓存起来存放在ARP表中,并用此MAC地址封装包后转发数据。三层以太网交换机的第二层交换模块根据源站A发送的以太网帧中的目的MAC地址查找MAC地址表确定将数据包发向目的端口。-若目的站B与源站A不在同一子网内,如源站A要与目的站B通信,源站A要向“缺省路径(其软件中配置的网关地址)”发出ARP封装包,“缺省路径”的IP地址实际上对应所连接第三层交换机的一个路由接口,即连接源站A的物理端口所属VLAN接口。当发源站A对“缺省路径”的IP地址广播出一个ARP请求时,交换机回相应路由接口(即发源站A的“缺省路径”)的MAC地址给源站。第三层交换模块在以往的通信过程中已得到目的站B的MAC地址,则直接将数据包以此MAC地址封装并发向目的站B;否则则提取出输入帧的IP包去查路由表,根据路由表中的路由信息向目的站网段广播一个ARP请求,目的站B得到此ARP请求后,向第三层交换模块回复其MAC地址,以后,当再进行站点A与站点B之间的数据包转发时,将用最终的目的站点B的IP地址为索引查找底层硬件转发表,得到出端口与对应的MAC地址,并用查到MAC地址封装包,从查到的出端口将数据转发出去;数据转发过程全部交给第二层交换处理,因此信息得到高速交换。报文到报文的交换方式与流交换方式的区别:如果每一个报文都要经历第三层处理,并且业务流转发是基于第三层地址的,这种交换方式就是报文到报文交换方式;如果只是第一个报文经过第三层处理,其他后续报文只进行第二层转发,这种交换方