基于以太网负载的改进CSMA协议
2023-11-26齐少楠林金花
齐少楠, 赵 航, 林金花
(1.长春工业大学 应用技术学院, 吉林 长春 130102;2.长春工业大学 数学与统计学院, 吉林 长春 130012)
0 引 言
载波侦听多路访问(Carrier Sense Multiple Access, CSMA)是一种MAC层协议,是解决以太网拥塞问题的关键技术之一。以太网技术具有价格低廉、通信速率高、兼容性好、带宽大等诸多优点[1-2],广泛应用于通信、航天、国防等对通信实时性具有严格要求的领域。
由于以太网采用带冲突检测的载波侦听多路访问(Carrier Sense Multiple Access/Collision Detection, CSMA/CD)的介质访问机制,采用1-坚持CSMA协议及二进制指数退避BEB算法来处理报文冲突存在通信延迟不定等缺点。文献[3]根据ACK字符发送成功的数据包个数,提出一种自适应反冲AAB算法,通过ACK计数器来调整反冲时隙,并给出算法的具体实现过程。之后更多学者对CSMA协议展开研究。美国加州大学开发的CSMA/DCR协议是走树搜索协议的改进,每个终端具有唯一的时隙分配,如果终端没有数据发送,则其时隙将被没收[4]。文献[5]针对信道冲突/空闲比设置4种优先级,提出基于P-坚持CSMA协议的自适应调整发送概率的RLBSA算法。文献[6]基于现场可编程门阵列设计通信电路,首先利用平均周期法建模,计算得出双优先级P-坚持CSMA协议的吞吐量与节点平均功率理论值。文献[7]针对面向低压电力线通信人工蛛网的网络,提出一种根据参与信道竞争节点数调整接入概率的改进型自适应P-坚持CSMA协议优化方法,从而控制节点发送数据分组行为。文献[8]提出一种根据链路占用率和优先级动态调整队列传输窗口,从而提高传输效率的CSMA调度算法。文献[9]根据网络吞吐量和终端发包概率以及数据包碰撞率之间的关系,提出基于CSMA/CA提升网络吞吐量的方法。文献[10]提出一种自适应碰撞时长的三时隙P-CSMA协议,其中包括信息分组发送成功时长、发生碰撞时长以及空闲时长。文中提出一种基于以太网负载的改进CSMA协议。当网络负载较轻时,采用1-Persistent CSMA协议和P-Persistent CSMA协议(P值较大)来减小终端接入信道的时延;当网络重载时,采用非坚持CSMA协议和P值较小的P-坚持CSMA协议来减少数据冲突。
1 协议评价性能指标
负载、吞吐量及平均传输时延这三个指标是评价协议性能的最基本指标。吞吐量定义为每帧时内通过信道成功传输的数据,记为S;负载定义为每帧时内终端新产生的数据与遭受冲突而重传数据的数据之和,记为G。对于一个理想协议,负载与吞吐量之间的关系为
(1)
吞吐量与业务量之间的关系如图1所示。
图1 吞吐量与业务量之间的关系
从图1可以看出,在理想情况下,如果没有数据包产生,或者所有传输的数据包由于碰撞被丢弃,此时,吞吐量为0,如果所有数据都成功传输,则吞吐量为1。然而,在实际情况下,吞吐量在负载较小时,随着负载的增加而增加,而当负载大于一定门限后,吞吐量随着负载的增加而下降。
设任意标准帧长度为lp,数据在信道上的传输速率为br,则标准帧长度的数据传输时间T0为
(2)
当负载大于某一阈值时,平均传输时延将大幅度增加。当成功发送的数据包数量达到total=5 000时,成功发送的数据包和失败发送的数据包总延迟时间为Tw,则平均传输延迟Tdelay为
(3)
2 CSMA协议通信模型
在分析CSMA协议的性能时,使用下列假设:
1)仿真系统模型是一个分组通信系统,也是一个无线呼叫源模型,若每个终端独立随机生成分组,所有终端到达帧服从Possion分布。
2)假设每个终端的传播延迟τ相同,即信道上任意两个终端的单向传播时延相同;数据传输时间T0相同,即传输固定长度的帧需要的时间相同,归一化传播延迟为α=τ/T0,且α<1。
3)在任何时刻,每个终端只有一个数据包准备发送,载波侦听过程是瞬间完成的。
4)信道为理想有线信道,是时不变系统,假设各终端的信号功率相同,并且无捕获效应,所有在信道内碰撞的数据包都必须重发。
基于负载的CSMA改进协议设计,CSMA协议一般分为1-坚持CSMA协议、P-坚持CSMA协议和非坚持CSMA协议[11]。在不同的负载下,三种协议不同负载时表现不一,以下分别就这三种协议作一剖析。
在低负载时,使用1-坚持CSMA协议可获得更好的性能。原因是1-坚持CSMA协议的规则为:若终端有数据要发送,首先监听所在的信道(即载波监听),如果信道在idle状态下,数据可被即时发送;如果信道是busy,数据将不被发送,直到发现信道处于空闲状态。虽然1-坚持CSMA协议避免了介质利用率的损失,在低负载下,延迟较低且吞吐量较高,但是一旦负载增加,多个终端发送数据时,冲突将不可避免。
设λ为数据包平均到达率,每帧时负载G与帧时T0的关系为
G=λT0。
(4)
设PS为数据成功发送的概率,则吞吐量S与负载G的关系为
S=PSG。
(5)
由于终端产生的数据与经历冲突重传的数据包传输到达在概率分布上满足泊松分布,则T0秒内到达k个数据包的概率为
(6)
一个数据发送成功要求在T0+τ内有且仅有一个数据到达,在T0+τ内有一个数据到达的概率为
P[在T0+τ时间内有一个数据到达]=
λ(T0+τ)e-λ(T0+τ)=
G(1+α)e-G(1+α)。
(7)
在T0+τ内有数据到达的概率为
P[在T0+τ时间内有数据到达]=
1-e-λ(T0+λ)=
1-e-G(1+α)。
(8)
在τ内有一个数据到达的概率为
P[在τ内有一个数据到达]=λτe-λτ=
αGe-αG。
(9)
在τ内有数据到达的概率为
P[在τ内有数据到达]=1-e-Gτ/T0=
1-e-αG。
(10)
可以求得1-坚持CSMA协议吞吐量与负载的关系为
(11)
当忽略归一化传播延迟时,吞吐量与负载的关系式收敛于
(12)
在负载较高时,非坚持CSMA协议性能较高。主要原因是非坚持CSMA协议的规则为:若终端存在要发送数据的情况,先侦听信道后再发送数据,如果信道是idle,信息可马上发送出去;当信道处于busy状态时,不再监听信道,而是随机延迟一段时间后再监听。尽管非坚持CSMA协议在高负载时使用随机重传次数来降低碰撞概率,但是低负载情况下,非坚持CSMA协议极有可能下一次侦听前信道已处于idle状态,因此会使信道资源浪费,导致利用率低。
数据包产生间隔表示为
(13)
式中:n----终端数目。
当信道忙时,数据包等待一个随机时间重发,该随机时间为
Tcol=-Tintlog(1-m), 0≤m≤1,
(14)
式中:m----0~1之间的随机值。
用同样方法可求得非坚持CSMA协议吞吐量S与负载G之间的关系为
(15)
P-坚持CSMA协议作为折中方案不仅能在非坚持CSMA协议等重负载时降低碰撞,而且在1-坚持CSMA等低负载时降低信道空闲时间。P-坚持CSMA应用在时隙信道上,它的协议规则是节点在准备传输数据时先监听信道,如果信道在idle状态下,则按概率P进行信息传输,按概率1-P延迟传输直至数据传输成功。若监听到信道在busy状态下,则等待下个时隙时重复以上过程。
对于P-坚持CSMA协议,可以得到吞吐量S与负载G的关系为
(16)
其中x值定义为
(17)
由于P-坚持CSMA协议的负载G与吞吐量S之间的关系与P值相关,所以P-坚持CSMA协议的仿真结果在下文阐述。
P-坚持CSMA协议适用于分时隙的信道,假定共有k个终端竞争信道的使用权,终端在各自时隙传输概率为P,信道处于空闲状态且没有正在传输的数据,则可以得到负载G的表达式为
(18)
一般情况下,传输时间T0远大于传播延迟τ,所以在该状态下的负载G约等于竞争信道的终端数k。
终端竞争得到信道的概率是任意一个终端以概率P发送,而其他(k-1)个终端以(1-P)的概率延迟到下个时隙,则该终端成功发送概率为
A=kP(1-P)k-1。
(19)
由式(19)可以求得,当P=1/k时,最大终端成功发送概率A与竞争信道的终端数量k之间的关系为
(20)
终端竞争信道成功概率与竞争终端数目关系如图2所示。
图2 终端竞争信道成功概率与竞争终端数目关系
从图2可以看出,竞争终端数量少的情况下,成功的可能性大,但竞争终端数量一旦达到5个后,其可能性就会逐渐接近1/e。当P=1/k时,A最大,但是,随着竞争终端数目的增加,P的取值会越来越小,造成大量数据包延时重发。
为了解决上述问题,终端在发送数据前,先预测k值,然后根据k的阈值判断以某种介质访问控制方法发送数据。随着网络负载增加,竞争信道终端数也随之增加,而相应的协议会随之调整,从而减小发生碰撞的概率。
假设k的取值为(1,+∞),当k=1时,网络负载较低,则采用1-坚持CSMA协议;当k在2~5时,选择发送概率P为1/k的P-坚持CSMA协议,根据竞争终端数目确定P的取值分别为1/2、1/3、1/4、1/5,引入自适应机制,使系统的吞吐量能够维持相对稳定高效;当k>5时,最大终端成功发送概率趋近于1/e,并且P值过小,使得网络阻塞,所以此时选择非坚持CSMA协议作为以太网介质访问控制层协议。
3 仿真分析
IEEE802.3协议定义最小帧长为512 bit,在实际以太网中,为验证文中提出的算法性能,利用Matlab R2014a仿真工具,假设所需发送的数据服从参数为λ的泊松分布,数据包长度为512 bit,仿真条件设为比特速率为6×106bit/s,符号速率为0.25×106符号/s,归一化传输延迟为0.08,并将100个终端随机布置在半径为100 m的服务区域内。
在不同负载情况下,对吞吐量与负载关系进行分析,结果如图3所示。
图3 CSMA协议的吞吐量与负载的关系
随着负载的增加,网络吞吐量起初呈上升趋势,1-坚持CSMA协议吞吐量与负载的增长曲线最陡,在G=1附近时,吞吐量达到最高值53.79%,非坚持CSMA协议增长曲线最缓,在G=3附近时,吞吐量最高值为55.31%,P-坚持CSAM协议吞吐量介于1-坚持CSMA协议与非坚持CSMA协议之间;当吞吐量达到最高后,随着负载的增加,网络吞吐量呈下降趋势,非坚持CSMA协议吞吐量与负载的下降曲线最缓,在G=36附近时,网络吞吐量小于5%,1-坚持CSMA协议下降趋势最陡,在G=5附近时,网络吞吐量小于5%。
由图3可见,基于负载的改进CSMA协议可以随着负载的变化对协议进行相应调整,与1-坚持CSMA协议、P-坚持CSMA协议,以及非坚持CSMA协议相比,吞吐量明显更高。
对不同负载下的传输延迟进行分析,结果如图4所示。
图4 CSMA协议的传输延时与负载的关系
当网络负载较小时,1-坚持CSMA协议传输延迟显著低于非坚持CSMA协议传输延迟,由于1-坚持CSMA协议使用连续监听信道方式,当检测到信道空闲时会立即进行数据传输,而非坚持CSMA协议侦听到冲突后会等待一段随机时间,从而造成很大的传输延迟;在网络负载较大时,1-坚持CSMA协议传输延迟会急剧增加,由于1-坚持CSMA协议采用持续侦听信道的方式,所以随着网络负载的增加,数据冲突数就会急剧增大,而非坚持CSMA协议在信道忙时,发送数据会随机等待一段时间,避免了冲突的发生,所以传输延迟会较低。P-坚持CSMA协议在发现信道空闲后,按P概率发送该数据,并且按(1-P)概率将该数据推迟传送至下一通道。P-坚持CSMA协议的延迟性能介于1-坚持CSMA协议和非坚持CSMA协议之间。
从图4可以看出,改进后基于负载的CSMA协议可以根据负载的变化对协议进行相应调整,低负载时采用1-坚持CSMA协议,高负载时采用非坚持CSMA协议,而负载不处于两个极端状态时,则采用P-坚持CSMA协议,从整体上看,基于负载改进的CSMA协议传输延迟明显比其他协议传输时延更低。
4 结 语
根据以太网的网络负载变化情况提出一种改进的CSMA协议,基于在1-坚持CSMA协议、P-坚持CSMA协议,以及非坚持CSMA协议,提出一种通过预估竞争信道冲突数而自适应切换MAC层介质访问机制的方法,从而在不同负载情况下,保证最大吞吐量及满足实时性要求,实验仿真和模型分析结果验证了该方法的有效性。