计算机工程
COMPUTER ENGINEERING 
1999年 第25卷 第5期 Vol.25 No.5 1999



以太网的分布式优先级实现方式
蔡文军 巩超 张根度
摘要 首先概要评价了千兆以太网的一些优缺点。然后提出了一种将优先级控制引入以太网的设想，这种方法可以在介质共享的CSMA/CD算法中引入分布式优先级控制，并可以减少重负荷情况下的冲突率。最后对优先级系统和本方案作了一个分析。
关键词 千兆以太网 QOS预约表 预约优先级 重构冲突
Realization of Priority in Etherent 
Cai Wenjun GongChao Zhang Gendu
（Department of Computer Science，Fudan University Shanghai 200433）
[Abstract] This paper briefly discusses some atrongpoints and limitations of 1000Base Ethernet vs .ATM first，then introduces a kind of priority sontrol method into CSMA/CD which can also reduce the xollision frequency in heavy network burden.At  last we make some analyses about it 
[Key words] 1000Base Ethernet；Qos；Reserve table；Priority reserve；Collision of reconstruct
　　近年来，局域网(LAN)的技术市场逐渐从群雄逐鹿的境地转为两强相争，新兴的千兆以太网和ATM在LAN主干网上的激烈竞争，更是成为众人瞩目的焦点。
　　正在成熟中的ATM具有高速率和优异的服务质量(QoS)，然而，由于与传统LAN(主要是以太网)不兼容，从现有网络向ATM升级是一项艰难而昂贵的工作。ATM Forum为此提出了LANE、Classical IP over ATM和MPOA等技术和方法来实现现有LAN向ATM的平滑升级。但是，这些技术要么繁琐复杂、要么尚停留在探讨框架的阶段，还没有成为现实可行的解决方案。
　　以太网简单、经济实用而易于掌握，成功与普及度令其它网络技术望尘莫及。交换以太网和快速以太网的出现，满足了不断增长的带宽需求，更以其与传统以太网的良好兼容性，成了当前LAN的主导技术。随着越来越多的桌面以100Mbps的速度与服务器相连，对网络主干提出了更高的速度要求，第三代以太网--千兆以太网的适时出现，满足了这种需求，更以其平滑廉价的升级方式，成为ATM进入LAN主干网的主要竞争对手。
　　但是，与ATM相比，千兆以太网有一个重大的缺陷，那就是不能提供真正意义上的服务质量QoS，不能进行流量控制，从而不适用于对时延敏感的多媒体应用等实时业务。1980年颁布的IEEE802.3标准主要针对数据交换，而不提供服务质量和优先级控制。千兆以太网继承了这一协议，也继承了这一缺点。网络发展到现在，要求的不仅仅是高速度、高带宽，更要求能够支持多媒体应用，支持网络策略管理(Policy)，为此人们提出用千兆以太网＋QoS对策软件的模式来引入QoS。QoS对策软件包括IEEE的802.1p和802.1q，IETF的实时传输协议RTP(Real Time Transport Protocol)和资源预留协议RSVP(Resource Reservation Protocol)以及3Com公司提出的优先访问控制PACE(Priority Access Control-Enabled)等各项新技术。在这个模式中，由千兆以太网提供QoS所需的速度与带宽，由QoS对策软件提供优先级区分和带宽分配方案，从而配合完成实时业务。
1 在以太网中实现优先级控制的一个方案
　　实现QoS,很重要的一个要求是能够实现优先级控制。为此，我们提出一种方法,将优先级控制引入以太网。基本思想是：为每个数据帧确定一个优先级，高优先级的帧优先获得线路，并可中断低优先级的帧，而各帧通过预约以减少冲突。
　　在这之前，先让我们来看一下100VG-AnyLAN的教训：为了实现优先级控制，100VG-AnyLAN将存在冲突的介质共享这一以太网的核心思想加以改变，提出了按需优先访问协议DPAM(Demand Priority Access Method),彻底改变了网络的访问协议。虽然它保留了以太网的帧格式，但是由于缺乏以太网的简单性和向后兼容性，从而在与快速以太网的竞争中败下阵来。因此，要引入优先级控制，不能改变CSMA/CD这一核心，只有这样，才能将其平滑地引入现有的以太网技术之中。
　　为了在存在冲突的介质共享环境中引入优先级控制，必须为每个帧确定一个优先级。为此，可以在每个节点发送帧时，在每个帧的前面贴上一个优先级位段。由于优先级位段是贴在帧的前面，而不是插在帧的中间，所以无须对帧的格式加以改动，节点也无须知道帧的内部内容。参考ATM只有5种服务，IPv6也只有4位标识优先级，帧头的优先级位段只需4位(即可表达16个优先级)就足够了。由于优先级位段只有4位，即使是最短的以太网帧(64字节，共512位)，所花费的代价也只有4/(4+512)=0.77%，对于较长的帧，代价更低。
　　基本思想如下。
　　每一个以太网节点内部都维持一张预约表。表的长度是网内节点的数目，每一个表项对应一个节点，表项内容包括逻辑节点号、是否预约和预约的优先级。由逻辑节点号和预约优先级共同决定发送次序，高优先级的预约先于低优先级的预约得到满足，同级预约中逻辑节点号低的先于逻辑节点号高的得到满足，未进行预约的帧必须等到高优先级或同级预约被满足后才有资格发送。每一个节点都必须遵守这张预约表，但是未预约的高优先级帧可以中断低优先级帧，优先发送，而被干扰的低优先级帧必须多等待一个帧的时间才能按预约表发送。
　　当一个节点产生一个未经预约的帧时，在发送它前，节点先聆听线路。此时线路或者正在传送高优先级帧(状态A)，或者正在传送低优先级帧(状态B)，或者空闲(状态C)。
　　状态A时，节点必须等待，直到高优先级帧发送完，线路空闲，即为状态C。
　　状态B时，节点可以发送帧以产生冲突。冲突发生后，被中断的低优先级节点意识到有高优先级的帧要插入，就礼貌地停止发送，等到插队者发送完毕后，再重新进行发送。而制造冲突的节点，在等待了一小段时间，以确认低优先级节点已经让出位置，线路空闲后，就可以认为自己有资格发送，转入状态D。
　　状态C时，节点查找预约表。如果有高优先级或同级预约，说明线路已经被预定，则必须等待，直到这些预约都被满足为止。若还有低优先级预约，则可发送帧，产生冲突，此时转入状态B。若预约表已空，则认为线路空闲，转入状态D。
　　状态D时，节点发送，此时发送可能成功，也可能产生冲突(可能是因为多个高优先级节点同时中断一个低优先级帧，也可能是因为预约表空闲而导致的多帧同时发送)。如果发生冲突，由于此时无法确定发生冲突的帧的数量和优先级，所以必须进行预约表的重组，以决定发送次序，这种冲突也因此可以称为重构冲突。重构预约表(也就是初始化预约表)的过程如下：将冲突后的以太网传输时间划分为一个个时间片，在每个时间片里，节点根据自己的逻辑节点号顺序依次申明自己的预约和所要求的优先级。网上的所有节点聆听这些申明，并据此更新自己的预约表。在聆听了节点数目个时间片后，预约表重构完成，节点又可以根据预约表有条不紊地发送。
　　这个算法的一个改进是允许每个节点在发送时，在发送的帧末尾进行预约，从而减少了重构冲突的数量。
　　之所以设定逻辑节点号，是为了保证发送的公平性。当一个预约被满足后，发送它的节点自动地将逻辑节点号设为最后一个，而其它节点则将它们的逻辑节点号自动顺序前移一位。这样，就可以防止排在前面的节点始终拥有较高的发送概率，从而影响后面节点的发送公平性。由于VLAN概念的兴起，在将来的设计中，就可以把逻辑节点号的初始值设为VLAN号，从而无须再考虑逻辑节点号的初始分配。
　　对于像多媒体应用等对时延敏感的业务，可以让它们申请最高优先级预约，以防止帧的传输被其它的节点所打断。更进一步，如果设定预约表中最高优先级预约所允许的最大数目(只需在预约表作小小的限制，将多于限制的最高优先级预约设为次高优先级预约)，就能够保证在可预期的时间内，节点能够再次获得所需的空闲带宽，也就相当于，将带宽分割为几个多媒体等实时应用。对于优先级较低的业务，为了防止无限制的等待，可以根据等待的时间增长而逐渐提高优先级，从而保证在某个有限的时间内，可以最终得到服务。与传统的CSMA/CD所隐含的无限等待相比，这是一个明显的进步。
2 对优先级系统和本方案的性能分析
　　由上面可以看出，采用本方法的以太网，其行为可以用排队论中的强占优先制排队模型进行分析。此模型的定义是："顾客分等级，当一个具有较高级别优先权的顾客到达系统时，若正被服务的顾客是一个具有较低级别优先权的顾客，则低等级顾客将被中断服务，重新回到队列中排队等待服务，可以用记号X/Y/Z/m/n/PPR来表达〔X表示顾客相继到达系统的间隔时间的概率分布，Y表示服务窗口所耗费的服务时间的概率分布，Z表示服务系统内服务窗的个数，m为系统最大容量，n为顾客最大数目，PPR表示排队规则〕。"[3]
　　在这里，顾客是数据帧，服务窗口是线路，服务窗口的服务时间是数据帧占用线路的时间，服务窗口数量为一〔各节点共享唯一信道〕。为了方便起见，假设顾客到达的概率分布服从泊松分布，服务窗口的服务时间服从负指数分布，系统最大容量无限，顾客最大数量无限。此时，上面的记号可以简化为M/M/1/∞/∞/PPR。为了计算各级顾客〔数据帧〕的平均排队等待时间Wqk〔k表示用户的等级，1级高于2级，2级高于3级，……〕，可以引入以下排队论的公式。

　　其中，Wsk 表示第k级顾客在系统中的平均逗留时间，Ws,1-k表示只有第1级到第k级顾客在系统中时顾客的平均逗留时间，λi表示单位时间内顾客平均到达率，1/μ表示顾客平均被服务时间。
　　在以太网中，将单位时间设定为帧时间。此时，顾客的平均被服务时间1/μ，就是数据帧占用线路的平均时间，为一个帧时间，则μ＝1。 各级顾客的平均到达率λk可以折算为每帧时间发送帧的平均值Gk〔这里G＝∑∞k=1Gk是网络总的帧平均发送率〕。此时，上面的公式可以写成如下公式：
　　
　　为了比较优先级系统的性能改进，我们假设一个有3类数据帧的系统，一类数据帧(最高优先级)占所有帧数量的  10％，二类数据帧(次高优先级)占所有帧数量的20％，剩下的都是三类帧。表格1显示了G从0到1区间变化时，各类数据帧和不分优先级时(Wq)数据帧等待发送的时间。
表1 顾客（数据帧）等待时间随网络发送率G变动情况
G0.10.20.30.40.50.60.70.80.91.0
Wq10.1111110.250.4285710.66666711.52.333333349∞
Wq20.0101010.0204080.0309280.0416670.52630.063830.07526880.08695650.0989010.111111
Wq30.0413410.0855410.1328880.1837120.238390.2975530.36110.4302060.5053440.587302
Wq40.1454750.3297870.5698590.8939391.352942.048783.219415.5789512.6986∞

　　从上面的比较表可以看出：在G不断增加，网络负荷不断增重的情况下，具有高优先级的顾客(数据帧)仍然能够只需等待较少的时间，就得到服务；而在没有分优先级的情况下，顾客(数据帧)的等待时间将随指数增长，在G接近1时系统将瘫痪。显然，优先级系统对各种实时业务具有非常重要的意义。
　　采用预约表，是为了降低网络的冲突率。与传统的CSMA/CD算法相比，它能实现在保证低负荷情况下的低等待的同时，实现重负荷情况下极低的冲突率。事实上，负荷越重，有效利用率越高。在重负荷情况下，数据可以通过预约表实现无冲突传输。由于高优先级对低优先级的中断不影响预约表，所增加的仅仅是一次冲突，而不会产生连锁冲突。只有在不明优先级帧产生重构冲突的情况下，才需花费重构预约表的代价，而这一代价又被随后的按预约表无冲突访问的一组帧所分摊。与之相比，传统的CSMA/CD在重负荷的情况下产生众多的冲突，从而使传输几乎停顿。
　　这个方法的另一个特点是采用分布式优先级控制，在每个节点内维护一个预约表，而不是采用一个中心控制节点来实施优先级控制。这虽然付出了一些内存上的代价，却继承了以太网分布式控制的的思想，增加了可靠性、健壮性和实现上的简单性。另外，由于一个以太网(或VLAN)中的节点数目有限，预约表中所需维护的数据量又少得可怜，因此并不会占用太多的内存。
3 结束语
　　当今,信息产业迅猛发展，对网络技术提出了越来越高的需求，速度与服务质量缺一不可。传统的网络技术已力不从心。为了平滑升级和保留现有投资，有必要在发展新技术的同时，对现有技术进行改造。在这一方面还有许多工作要做，我们提出的方案正是为将优先级引入以太网的一个尝试。希望大家能对这一方案提出宝贵的意见，批评和指正不足之处。
作者简介：蔡文军 男，25岁，研究生，主研计算机网络
作者单位：复旦大学计算机系 上海 200433
参考文献
1 Andrew S.Tanenbaum：Computer Network.Prentice Hall,PTR,1996
2 高传善,张世永,曲海等.计算机网络.上海：复旦大学出版社,1994
3 陆传赉.排队论.北京：北京邮电学院出版社，1994
收稿日期：1998-10-05
