以太网交换机基础知识——基本架构和原理大纲•一、以太网交换机硬件架构(P3)•二、802.3分层结构(P10)•三、交换机帧处理流程(P16)•四、SMI串行管理接口(P22)•五、衡量交换性能的指标(P28)•六、一些技术点(自协商、流控、VLAN)(P34)•七、产品开发借鉴(P54)一、以太网交换机硬件架构以太网交换机硬件架构基本网络拓扑接入层交换机以太网交换机硬件架构汇聚层交换机以太网交换机硬件架构核心层交换机以太网交换机硬件架构以太网交换机硬件架构产品内部架构-单机产品产品内部架构-机架式产品管理板1管理板2SGMII控制百兆管理百兆管理控制Higi/Xaui业务卡黄色的代表低速接插件,其上所走信号速率最高位SGMII,1.25G。包含其它信号,百兆管理(100M),控制信号(主要是状态采集/输出),还有I2C/MIIM信号等。绿色的代表高速接插件,其上目前所走的信号最高速率为3.75G(Higi),4对信号线合成12G数据流量。从图上可知,S76的架构为双星形拓扑,即所有的业务卡的通路均在管理板处聚合。管理板之间没有数据通路。背板示意图以太网交换机硬件架构二、802.3分层结构802.3分层结构•802.3以太网标准位于ISO/OSI7层参考模型的第1层(物理层)和第2层(数据链路层),全称是“带冲突检测的载波侦听多重访问机制CSMA/CD和物理层规范”。802.3标准仅仅是由IEEE802标准制定的第1和第2层标准之一。其他标准还包括802.4(令牌总线)、802.5(令牌环)、802.11(无线网)、802.12(需求优先级)等。802.3分层结构以太网接口分层各子层功能介绍-以100BASE为例•PCS•The100BASE-XPCSrealizesallservicesrequiredbytheMII,including:•a)Encoding(decoding)ofMIIdatanibblesto(from)five-bitcode-groups(4B/5B);•b)GeneratingCarrierSenseandCollisionDetectindications;•c)Serialization(deserialization)ofcode-groupsfortransmission(reception)ontheunderlyingserialPMA,and•d)MappingofTransmit,Receive,CarrierSenseandCollisionDetectionbetweentheMIIandtheunderlyingPMA.802.3分层结构•PMA•ThePMAprovidesamedium-independentmeansforthePCSandotherbit-orientedclients(e.g.,repeaters)tosupporttheuseofarangeofphysicalmedia.The100BASE-XPMAperformsthefollowingfunctions:•a)Mappingoftransmitandreceivecode-bitsbetweenthePMA’sclientandtheunderlyingPMD;•b)GeneratingacontrolsignalindicatingtheavailabilityofthePMDtoaPCSorotherclient,alsosynchronizingwithAuto-Negotiationwhenimplemented;•c)Optionally,generatingindicationsofactivity(carrier)andcarriererrorsfromtheunderlyingPMD;•d)Optionally,sensingreceivechannelfailuresandtransmittingtheFar-EndFaultIndication;anddetectingtheFar-EndFaultIndication;and•e)RecoveryofclockfromtheNRZIdatasuppliedbythePMD.802.3分层结构•PMD•PMD子层的功能是支持在PMA子层和介质之间交换串行化的符号代码位。PMD子层将这些电信号转换成适合在某种特定介质上传输的形式。•比如10BASE-T的曼彻斯特编码,100BASE-TX的MLT-3和1000BASE-X上的1.2GSERDES信号。802.3分层结构•三、交换机帧处理流程•BCM数据帧流程的大致介绍•1、交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道具有该源MAC地址的机器是连接在哪个端口上的,这样一组对应信息将被存放在地址表(L2Table)中;•2、随后将读取包头中的目的MAC地址,并在地址表中查找与该MAC地址对应的端口;•3、如果在地址表中查到有与这个目的MAC地址对应的端口号,则将数据包直接复制到这个端口上;•4、如果在地址表中找不到相应的MAC地址以及对应的端口号,则将数据包广播到所有端口上;当目的机器收到这个数据包以后,如果对源主机进行回应时,交换机又可以按照1中所描述的方式,又学习到这个MAC地址与端口的对应关系,在下次传送数据时就不再需要对所有端口进行广播了。•5、依此类推,对于与该交换机有直接或间接联系的所有MAC地址信息都可以实时的学习到,二层交换机就是这样建立和维护它自己的地址表的。交换机帧处理流程•大部分BCM交换芯片采取下面这种结构方式来做,并且提供了更多的灵活性:•下图示意性的表示了以太网帧在进入交换芯片以后,一个基本的物理处理流程是从“Ingress”单元到“MMU”单元再到“Egress”单元,该过程描述了以太网交换芯片对帧从进入到送出的处理流程。交换机帧处理流程•由于数据帧在芯片内部的流程很复杂并且不同的厂家处理方式不尽相同,这边只对BCM各模块的基本功能概括如下,有兴趣的请详细参考芯片厂商的PG文档。•Ingress包含下面一些主要处理功能:•1、数据包检查、拆分;•2、VLAN处理;•3、地址学习;•4、L2交换;•5、L3路由交换;•6、快速过滤处理(FFP);•7、其他附加功能,如CPU包处理、Mirror、Trunk功能等;交换机帧处理流程•MMU负责对帧进行缓存排队(buffering)处理和调度处理(scheduling),它从Ingress逻辑中接收帧,并调度、暂存这些帧,随后传送到Egress逻辑。所有的帧存储和对帧缓存的维护管理都是通过MMU完成的,MMU表现为调度的核心所在。交换机帧处理流程•Egress执行如下步骤:•1、从MMU请求帧传送;•2、若帧输出不需要带Tag则它将VLANTag移除;•3、如果端口是uplink端口并且HTLS模式使能,则添加HTLS包头;•4、对L3IPMC报文进行修正;•5、将IPMC报文复制到VLAN中每个正确的端口;•6、可能的话重新计算CRC(看Tag是否有变化);•7、Egress对包的老化做处理;•8、Egress速率控制;•9、将帧传送给发送MAC;若是往CPU方向传送的帧,则CMICEgress将把帧通过DMA通道直接传送给CPU。交换机帧处理流程•四、SMI-串行管理接口SMI-串行管理接口•串行管理接口SMI是连接MAC和PHY之间的管理通道,区别于两者之间的数据通道如MII,在上电初始化及交换机正常运行过程中通过其对PHY进行设置来改变PHY的工作状态,通过其对PHY中的寄存器进行读取来判断当前的工作模式和状态。•SMI管理帧格式:802.3定义的SMI寄存器集SMI-串行管理接口SMI-串行管理接口一些寄存器举例SMI-串行管理接口一些寄存器举例一些寄存器举例SMI-串行管理接口•五、衡量交换性能的指标衡量交换性能的指标•Throughput•Latency•Backtoback•Headofline•Addresshandling•Manytoone(Onetomany)•X-stream•Filterillegalframes•Forwardpressure•Broardcastproportion•Throughput•Throughput是指被测设备在所提供的帧不丢失情况下的最大速率(RFC1242),该项测试用来确定设备在不出错的情况下转发帧所能达到的最大速率。•Latency•对于storeandforward设备:从输入帧的最后一位(bit)到达输入端口开始到输出帧的第一位出现在输出端口为止的时间间隔;•Back-to-back•Back-to-back用于测试被测设备处理back-to-back帧(指以最小帧间距存在的固定长度的一连串的帧)的能力,可用来衡量被测设备的缓冲能力。衡量交换性能的指标•Headofline•Head-of-lineBlocking是指一个输入接口同时向一个拥塞端口和一个非拥塞端口转发帧时,在非拥塞端口的帧丢失或延迟的增加(RFC2285),用来决定被测设备怎么处理拥塞(设备是否执行拥塞控制,在一个端口的拥塞是否影响非拥塞端口)。•该项测试的模型(10M)为:•若在非拥塞端口检测到帧丢失,则表示存在”Head-of-line”blocking.衡量交换性能的指标•AddressHandling•该项测试用于决定设备的地址处理能力(RFC2285),包括两重的测试:一是测试被测设备在其地址表未溢出的情况下每个端口可处理的MAC地址数,二是被测设备学习新地址的速率(frames/sec).•AST所进行的测试操作是:Port1向Port2发以Port2为目的地址带若干个不同源地址的学习帧,Port2收到后发出相应的控制帧(以Port2为源地址,学习到的源地址为目的地址),而Port3作为监控端口用来侦听溢出的帧(若有则表示地址表已满)衡量交换性能的指标•其他的一些指标还有:•Manytoone(Onetomany)•测试用来决定多对一或一对多发时的throughput,用于衡量被测设备在此种情况下无帧丢失的交换能力。•X-stream•X-Stream测试用于决定被测设备在所有参与测试的端口都以某个确定的throughput同时收发帧时,设备收到多路数据流时的帧丢失率。•FilterIllegalFrames•该项测试决定被测设备在错误帧和异常帧情况下的行为(RFC2285),其结果表示设备在此情况下是过滤错误,还是简单地按照目的地址传送帧.•使用专业的设备进行交换性能的测试(SMB6000)衡量交换性能的指标•六、一些技术点(自协商、流控、VLAN)一些技术点-自协商•自协商是指位于链路两端的设备之间自动协商确定公共功能子集的一种算法。最早出现10BASE-T以太网的时候并没有引入自协商这个概念,因为那时候链路两端的设备情形都很单一。但随着技术的不断发展,局域网中的物理接口标准不断增多,技术工程师和客户手动配置网络过程中遇到越来越多的问题:•链路两端速率不匹配,10Mbit,100Mbit•链路两端双工模式不匹配,fullduplex,halfduplex•链路两端流控设置不匹配•今后可能的升级准备一些技术点-自协商NLP一些技术点-自协商FLP一些技术点-自协商一些技术点-自协商一些技术点-自协商一些技术点-自协商•目的:防止因为网络拥塞导致的大量丢帧。•帧丢失会导致高层协议的确认定时器超时,超时引发对丢失帧的重传。确认定时器设定的值必须(至少)考虑到整个网络上端到端的传输延迟,加上处理与延迟间隔时间。一般的协议以秒为量级设置定时器以保证在大的互连网上运行,因此一个丢帧引起数据传输间断几秒钟。•由此带来的后果是整个网络吞吐量随着帧丢失率(FLR)迅速下降。对于一•个5秒钟的NFS确认定时器,1%FLR将导致操作性能降低98%[3]。一些技术点-流控•半双工流控:背压(backpressure)1、强行与将要