有用数据吞吐量分别对应于OSI层(多个层)的数据传输速率。第1、2和3层等的有用数据吞吐量以及这些层相应的数据传输速率,可以根据管理和发送这些被传输数据所需要的开销来计算。
如第5章所述,通过该电气接口所发送的数据与物理帧也就是PLCP-PDU是相一致的。这种帧由PLCP帧头和来自MAC层的数据这两大部分组成,且帧头有两个子部分组成。如图8.17所示,PLCP-PDU各大部分的发送速率各不相同。
图8.17 PLCP-PDU的结构
PLCP-PDU的帧头包含有起始和终止定界符。前导部分较长时,帧头的传输速率为1Mbit/s。
PLCP-PDU的第二大部分对应于MAC帧本身。对于HomePlug 1.0来说,其帧的发送速率可以高达1~4.5Mbit/s、9Mbit/s或者14Mbit/s。PLC本身拥有一个数据传输速率调整机制,可以根据电气环境的特性,以不同的传输速率进行数据传输。在计算第2层有用数据吞吐量时,必须事先知道传输时间。传输时间也就是用于发送数据信号的时长。由于使用电气接口作为传输介质,且电子在电力线上的运动速度相当于光速,因此信号在电力线上的传播时间可以视为0。这样传输时间(Tt)相当于数据发送所需要的时间。
根据定义,第2层有用数据吞吐量Du相当于被传输数据负荷总量除以总传输时间,即
倘若认为HomePlug 1.0网络使用较短的前导(Preamble),且该网络中所有工作站的传输速率均为14Mbit/s时,我们就可以据此计算出可以发送1500B数据的PLCP-PDU的有用数据吞吐量(Du1)。尽管数据负荷总量(为1500B)大小已知,但是用于传输PLCP-PDU帧头和传输MAC数据的时长总和仍旧需要计算。
MAC帧包含有一个34B的帧头[6]。因此,MAC帧的大小为1534。故它们的传输时间(TtMAC)可以根据下式计算:
PLCP-PDU帧头的大小总计为120bit,发送速率为1Mbit/s,故PLCP-PDU帧头的传输时间为
TtPLCP-PDU=72μs+1.5μs+72μs=145.5μs
因此,总传输时间(Tt1)为
Tt1=TtMAC+TtPLCP-PDU≈0.0010215s
在传输的数据中,有用数据吞吐率等于需传输的信息总量即1500B(也就是12000bit)除以上述传输时间(即大约1.021ms),相当于11.74Mbit/s:
然而,这个数据传输率与实际情况并不一致。在PLC中,数据的发送必须符合与CSMA/CA(带有冲突避免的载波侦听多路访问)访问方式有关的某些规则。有关的访问方式的基础是第3章详述的某些机制,并可能产生相对较大的开销。
在单个工作站通过介质发送数据这一理想情况下,当工作站需要发送数据时,它首先会侦听介质。如果介质空闲可用,该工作站会延时一个CIFS时间然后进行传输。过了CIFS时间之后,如果介质仍然空闲可用,则该工作站会开始传输它的数据。数据传输结束之后,该工作站会再次等待一个RIFS时间,以等待该数据的确认信息。如图8.18所示,在这种传输方法中,应当重视确认信息和帧头传输所对应的CIFS和RIFS计时器所产生的开销,哪怕这个开销很小。
图8.18 发送数据时的最小开销
现在,我们来计算这种理想情况下的有用数据吞吐量(Du2)。如上例,考虑合适较短的前导信息,并以14Mbit/s的速率传输1500B的数据信息。
根据前面的计算,该数据传输时间相当于Tt1,即
确认帧(ACK)的持续时间为72μs,其传输时间等于
TtACK=72μs+145.5μs=0.0002175s(www.xing528.com)
CIFS和RIFS时长为定值。不过它们的值可以随着技术的不同而改变。在HomePlug 1.0中,CIFS数值为35.84μs;RIFS数值为26μs。
因此,总传输时间为
Tt2=CIFS+TtData+RIFS+TtACK=0.001949s
所以,在这一理想情况下,有用数据吞吐量等于[7]
我们可以发现,开销越大,有用数据吞吐量越小。由于该数据传输率对应于单工作站通过介质发送数据这一理想情况,因此,该数据传输率为有用数据吞吐量的最大值。
网络中含有多个工作站时,两个或两个以上的工作站有可能试图通过介质同时传输数据,这时,问题就变得非常复杂。某个工作站试图访问介质时,或者等待一个CIFS时间之后,如果它发现介质处于忙状态,且会推迟它的数据传输操作。为此,它会启动一个计时器,该计时器采用回退算法计算需要等待的时间。
额外的等待时间和随时回退计时器显然会使得开销更大,如图8.19所示。
图8.19 发送数据时的最大开销
这样一来,传输时间(Tt3)变为[8]:
Tt3=TWait+CIFS+TBackoff+TtData+RIFS+TtACK
由于等待时间和回退计时器的值不固定,所有很难确定具体的时间长度值。然而,在理想情况下,我们可以认为,等待时间与回退时间之和通常与传输时间相同。与等待时间相比,回退计时器的值很小,可以视为0。等待时间数值上与另一个工作站的传输时间相同。
因此,有用数据吞吐量等于[9]
并可以进一步表示为
网络由两个工作站组成时,每个工作站的有用吞吐量基本上等于最大有用吞吐量除以构成该网络的工作站的数量。该公式可以进一步推广并适用于由传输速率相同的n个工作站构成的PLC网络。因此,各个工作站的有用数据吞吐量等于
需要注意的是,我们前面的计算中,仅考虑了第2层的有用数据吞吐量。然而,MAC帧的数据中包含了一个LLC帧,这个帧的帧头为4B,随后是一个IP封包(packet),并且此封包有20B的包头。IP封包本身又是一个24B的TCP段(segment)。因此,额外的开销总计有48B。更上层(例如第3层和第4层)在处理数据时,还会产生开销,这类开销我们在此不考虑。
结论很明显,PLC网络始终无法达到物理介质声称的数据传输容量。根据我们实验,数据传输速度为14Mbit/s时,用户可用的数据总数量大约仅为电气接口原始速率的一半,即平均5Mbit/s(625KB/s)。
表8.9简要地列出了各种类型局域网的有用数据吞吐量。
在介质传输速率相同的情况下,以太网的有用数据吞吐率要远远高于PLC网络的有用数据吞吐率。
表8.9 局域网有用数据吞吐量
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。