以太网交换机及其相关协议(一)一、阻抗匹配特征阻抗定义为传输线上一点的电压和电流之比,对均匀传输线来讲,oooCLZIV,oLoC为传输线单位长度的电感和电容。传输线上的阻抗不连续会导致信号反射,一个理想的传输线模型如下图,理想传输线L被内阻为R0的数字信号驱动源VS驱动,传输线的特性阻抗为Z0,负载阻抗为RL。理想的情况是当R0=Z0=RL时,传输线的阻抗是连续的,不会发生任何反射,能量一半消耗在源内阻R0上,另一半消耗在负载电阻RL上(传输线无直流损耗)。如果负载阻抗大于传输线的特性阻抗,那么负载端多余的能量就会反射回源端,由于负载端没有吸收全部能量,故称这种情况为欠阻尼。如果负载阻抗小于传输线的特性阻抗,负载试图消耗比当前源端提供的能量更多的能量,故通过反射来通知源端输送更多的能量,这种情况称为过阻尼。欠阻尼和过阻尼都会引起反向传播的波形,某些情况下在传输线上会形成驻波。当LoRZ时,负载完全吸收到达的能量,没有任何信号反射回源端,这种情况称为临界阻尼。从系统设计的角度来看,由于临界阻尼情况很难满足,所以最可靠适用的方式轻微的过阻尼,因为这种情况没有能量反射回源端。负载端阻抗与传输线阻抗不匹配会在负载端(B点)反射一部分信号回源端(A点),反射电压信号的幅值由负载反射系数决定,oLoLLZRZR,反射系数是反射电压和输入电压之比。-1≤L≤1,且当LR=Z0时,L=0,这时就不会发生反射。即,只要根据传输线的特性阻抗进行终端匹配,就能消除反射。从原理上说,反射波的幅度可以大到入射电压的幅度,极性可正可负。当LR〈oZ时,L0,处于过阻尼状态,反射波极性为负;当LRoZ时,L0,处于欠阻尼状态,反射波极性为正。当从负载端反射回的电压到达源端时,又将再次反射回负载端,形成二次反射波,此时反射电压的幅值由源反射系数S决定,ooooSZRZR。传输线的端接通常采用两种策略:(1)使负载阻抗与传输线阻抗匹配,即并行端接(2)使源阻抗与传输线阻抗匹配,即串行端接。即如果负载反射系数或源反射系数二者任一为零,反射将被消除。从系统设计的角度,应首选策略1,因其是在信号能量反射回源端之前在负载端消除反射,即使L=0,因而消除一次反射,这样可以减小噪声、电磁干扰(EMI)及射频干扰(RFI),而策略2则是在源端消除由负载端反射回来的信号,只是消除二次反射,由于策略2实现简单方便,在许多应用中也被广泛采用。(1)并行端接并行端接主要是在尽量靠近负载端的位置加上拉和/或下拉阻抗以实现终端的阻抗匹配,根据不同的应用环境,并行端接又可分为以下几种类型:(I)简单的并行端接这种端接方式是简单地在负载端加入一下拉到GROUND的电阻TR(oTZR)来实现匹配,如下图所示。采用此端接的条件是驱动端必须能够提供输出高电平时的驱动电流以保证通过端接电阻的高电平电压满足门限电压要求。在输出为高电平状态时,这种并行端接电路消耗的电流过大,对于50的端接负载,维持TTL高电平消耗电流高达48mA,因此一般器件很难可靠地支持这种端接电路。(II)戴维宁(Thevenin)并行端接戴维宁(Thevenin)端接即分压器型端接,如下图示。它采用上拉电阻R1和下拉电阻R2构成端接电阻,通过R1和R2吸收反射。R1和R2阻值的选取由下面的条件决定。R1的最大值由可接受的信号的最大上升时间(是RC充放电时间常数的函数)决定,R1的最小值由驱动源的吸电流数值决定。R2的选择应满足当传输线断开时电路逻辑高电平的要求。戴维宁等效阻抗可表示为:2121RRRRRT。这里要求RT等于传输线阻抗Z0以达到最佳匹配。此端接方案虽然降低了对源端器件驱动能力的要求,但却由于在VCC和GROUND之间连接的电阻R1和R2从而一直在从系统电源吸收电流,因此直流功耗较大。(III)主动并行端接在此端接策略中,端接电阻RT(RT=Z0)将负载端信号拉至一偏移电压VBIAS,如下图所示。VBIAS的选择依据是使输出驱动源能够对高低电平信号有汲取电流能力。这种端接方式需要一个具有吸、灌电流能力的独立的电压源来满足输出电压的跳变速度的要求。在此端接方案中,如偏移电压VBIAS为正电压,输入为逻辑低电平时有DC直流功率损耗,如偏移电压VBIAS为副电压,则输入为逻辑高电平时有直流功率损耗。(IV)并行AC端接如图6所示,并行AC端接使用电阻和电容网络(串联RC)作为端接阻抗。端接电阻R要小于等于传输线阻抗Z0,电容C必须大于100pF,推荐使用0.1uF的多层陶瓷电容。电容有阻低频通高频的作用,因此电阻R不是驱动源的直流负载,故这种端接方式无任何直流功耗。(2)串行端接串行端接是通过在尽量靠近源端的位置串行插入一个电阻RS(典型10O到75O)到传输线中来实现的,如下图所示。串行端接是匹配信号源的阻抗,所插入的串行电阻阻值加上驱动源的输出阻抗应等于传输线阻抗。即这种策略通过使源端反射系数为零从而抑制从负载反射回来的信号再从源端反射回负载端。串行端接的优点在于:每条线只需要一个端接电阻,无需与电源相连接,消耗功率小。当驱动高容性负载时可提供限流作用,这种限流作用可以帮助减小地弹噪声。串行端接的缺点在于:当信号逻辑转换时,由于RS的分压作用,在源端会出现半波幅度的信号,这种半波幅度的信号沿传输线传播至负载端,又从负载端反射回源端,持续时间为2TD(TD为信号源端到终端的传输延迟),这意味着沿传输线不能加入其它的信号输入端,因为在上述2TD时间内会出现不正确的逻辑态。并且由于在信号通路上加接了元件,增加了RC时间常数从而减缓了负载端信号的上升时间,因而不适合用于高频信号通路(如高速时钟等)。(3)多负载的端接在实际电路中常常会遇到单一驱动源驱动多个负载的情况,这时需要根据负载情况及电路的布线拓扑结构来确定端接方式和使用端接的数量。一般情况下可以考虑以下两种方案。如果多个负载之间的距离较近,可通过一条传输线与驱动端连接,负载都位于这条传输线的终端,这时只需要一个端接电路。如采用串行端接,则在传输线源端加入一串行电阻即可,如下图所示。如采用并行端接(以简单并行端接为例),则端接应置于离源端距离最远的负载处,同时,线网的拓扑结构应优先采用菊花链的连接方式,如下图所示:如果多个负载之间的距离较远,需要通过多条传输线与驱动端连接,这时每个负载都需要一个端接电路。如采用串行端接,则在传输线源端每条传输线上均加入一串行电阻,如下图所示:如采用并行端接(以简单并行端接为例),则应在每一负载处都进行端接,如下图所示:二、时序图分析三、生成树协议以太网交换机在第二层即MAC层必须具有交换功能,MAC层交换方式基于生成树算法(IEEE802.1D)。在局域网内的交换机执行了生成树算法以后,会组成一个生成树动态拓扑结构,该拓扑结构使局域网内任意两个工作站之间不存在回路,以防止由此产生的局域网广播风暴,同时,生成树算法还负责监测物理拓扑结构的变化,并能在拓扑结构发生变化之后建立新的生成树。例如当一个交换机坏了或某一条数据通路断了后,能提供一定的容错能力而重新配置生成树的拓扑结构。交换机根据生成树动态拓扑结的状态信息来维护和更新MAC地址表,最终实现MAC层的交换。在没有生成树协议的情况下,会存在几个问题:(1)广播风暴:在没有生成树机制而又存在环路的情况下,会出现广播风暴。如下图,:a.Host向router发送arp请求,arp帧到达SwitchA;b.SwitchA监测到这是一个广播帧,(FF:FF:FF:FF:FF:FF),广播此帧到SegmentB;c.SwitchB广播此帧到SegmentA。2.MAC地址表的不稳定性当一个帧的多个拷贝到达不同交换机的不同端口时,造成MAC地址表的不稳定性,从而导致交换机不能正确的转发数据。如下图:a.Host发送单播帧到路由器,SwitchA和B都能够收到此帧,并在端口2学到Host地址;b.SwitchA不知道Router地址,广播此帧;c.SwitchB从Port1收到SwitchA地址,更新地址表,得到错误的地址信息。不能正确的转发数据。以太网交换机在MAC层的功能主要是实现LAN的互连,根据IEEE802.1D协议的规定,在MAC层工作的体系结构必须包含以下内容:(1)一个用于连接交换机端口的MAC转发实体;(2)至少两个端口;(3)高层协议实体,其中包括交换机协议实体,如下图所示。MAC转发实体主要实现交换机不同端口间的内部通信。该实体存储各个端口的工作状态并维护一个过滤数据库。数据库中存放了一张MAC地址表,用以实现MAC层的交换。当数据帧从一个端口的底层服务进程传上来时,MAC实体首先判断目的端口的工作状态,如果目的端口没有被阻塞,MAC转发实体将依据MAC地址表的对应关系将该帧从目的端口转发出去,同时MAC转发实体还可以进行过滤、MAC地址学习等操作。交换机端口的功能是从与其相连的LAN上接收或传送数据。端口的状态由生成树算法规定,包括转发、学习、监听、阻塞和禁止状态。在转发状态的端口可以收发数据,在阻塞状态的端口不能转发数据,当交换机计算生成树决定端口转发或阻塞时,端口在监听状态,不能转发数据;学习状态时监听状态到转发状态的过渡状态,端口不能转发数据,但是能够进行地址学习。高层协议实体位于LLC层,主要用于计算和配置LAN的拓扑结构。生成树协议算法就是运行在该协议实体内,用来实现MAC层的交换。高层协议实体可以直接调用MAC转发实体提供的服务,并能读取或更改MAC实体数据库中维护的信息,如从MAC实体中读取或更改某端口的状态信息等。在运行生成树算法时,交换机的高层协议实体将使用一个统一的组地址01-80-C2-00-00-00作为目的MAC地址,该数据被称为BPDU(桥协议数据单元)。BPDU中携带了实现生成树算法的有关信息。在实现生成树算法时,从端口接收上来BPDU,由LLC层的服务进程将其传给交换机协议实体。在执行了生成树算法以后,交换机的协议实体将根据算法的结果更新端口的状态信息并更新过滤数据库,以决定交换机端口的工作状态(阻塞或转发等),从而建立生成树拓扑结构。生成树协议基于以下几点:(1)有一个唯一的组地址(01-80-C2-00-00-00)标识一个特定LAN上的所有的交换机。这个组地址能被所有的交换机识别;(2)每个交换机有一个唯一的标识(BridegIdentifier);(3)每个交换机的端口有一个唯一的端口标识(PortIdentifier)。对生成树的配置进行管理还需要:对每个交换机调协一个相对的优先级;对每个交换机的每个端口调协一个相对的优先级;对每个端口调协一个路径费用。具有最高优先级的交换机被称为根(root)交换机。根交换机为具有最低交换机ID的交换机。交换机ID包含两部分,交换机优先级(2bytes)交换机MAC地址(6bytes)。802.1d缺省优先级位32768(8000hex),一个交换机具有MAC地址00:A0:C5:12:34:56,则其交换机ID为8000:00A0:C512:3456。每个交换机端口都有一个根路径费用,根路径费用是该交换的路径费用的总和。一个交换机中根路径费用的值为最低的端口称为根端口,若有多个端口具有相同的根路径费用,则具有最高优先级的端口为根端口。在每个LAN中都有一个交换机被称为选取(designated)交换机,它属于该LAN中根路径费用最少的交换机。把LAN和选取交换机连接起来的端口就是LAN的选取端口(designatedport)。如果选取交换机中有两个以上的端口连在这个LAN上,则具有最高优先级的端口被选为选取端口。交换机之间定期发送BPDU包,交换生成树配置信息,以便能够对网络的拓扑、费用或优先级的变化做出及时的响应。BPDU分为两种类型,包含配置信息的BPDU包称为配置BPDU(ConfigurationBPDU),当检测到网络拓扑结构变化时则要发送拓扑变化通知BPDU(TopologyChangeNotificationBPDU