APP下载

一种基于UDP的电力广域保护系统可靠通信方法

2021-08-28袁凯李俊娥刘开培陆秋余倪明罗剑波

自动化学报 2021年7期
关键词:重传广域应用层

袁凯 李俊娥,2 刘开培 陆秋余,2 倪明 罗剑波

电力广域保护系统的测量数据上传、执行报文下发以及各个区域之间的信息交换需要可靠与实时的通信保障[1−3],否则可能导致执行单元发生拒动或者误动,威胁电力系统的安全稳定运行[4−7].目前电网大多采用点对点的信息传输方式,这种传输方式投资大,不能适应大规模的广域保护系统应用需求.采用基于TCP/IP 协议的交换网实现互联电网的广域信息交换是未来电网保护与控制的必然发展趋势.

广域保护与控制系统的通信范围广、通信距离长,其通信网络受到攻击的可能性大,容易出现拥塞状态.传输控制协议(Transmission control protocol,TCP)通过确认与超时重传机制为应用程序提供可靠的传输服务,但其拥塞控制机制可能导致报文时延增加.用户数据报协议(User datagram protocol,UDP)没有拥塞控制机制,无论网络拥塞与否,都按照源站自身的能力以不变的速率发送报文,且大量的UDP 报文发送到信道上,会进一步抑制TCP 的发送速率,从而具有信道资源抢占能力[8−9].

实时、可靠的通信系统是广域保护系统的基础[10−11].传统的关于电力广域保护系统通信实时性与可靠性保障方法的研究,主要采用优化网络拓扑结构、基于多协议标签交换(Multi-protocol label switching,MPLS)的流量工程[12−13]与路由优化[12,14]、针对不同优先级业务优化队列调度算法[15]、基于区分服务体系结构模型的服务质量保障[13,15]等方法.如果传输层仍然使用TCP 协议,这些方法并不能解决同一数据流路径上拥塞和出错重传带来的时延问题.

有学者初步提出了基于UDP 传输可靠性要求高的工业控制报文.文献[16]提出了基于UDP 传输协议的面向通用对象的变电站事件(Generic object oriented substation event,GOOSE)报文广域互联实时通信,但对可靠性保障只给出了应用层报文重传的机制和增加冗余信道的建议措施,且存在如下不足:所设计的报文重传时间间隔较大,稳定状态时的重传时间间隔为小于60 s,可选20 s,不能保证报文丢失或出错时的业务实时性,虽然事件发生后缩短了重传间隔,但多次重传仍然会超时;冗余信道将极大增加投资成本,且不能避免攻击引发的报文丢失和出错问题.文献[17] 提出基于UDP 协议传输局域网广域测量系统(Wide area measurement system,WAMS)数据和在应用层增加重发机制和实时插值机制来保障UDP 传输可靠性的策略,但是,其重传是基于数据缺失检查和请求应答机制实现的,和TCP 类似,多次重传会导致时延超出实时性要求;而实时插值机制针对同步向量测量单元(Phasor measurement unit,PMU)数据特点提出,并不适用于所有的应用.总之,上述文献均未很好解决使用UDP 传输时通信业务的可靠性保障问题.目前为止,未见将纠错、检错和重发机制联合用于实际通信的研究.

电力广域保护控制通信体系依照分层分布的设计原则进行构建[18−20].广域保护系统的业务报文主要包括两大类:测量数据上传报文和控制命令下发报文.广域保护与控制系统的动作时间(测量数据上传和控制命令下发的动作时延)范围在100 ms到100 s 之间,具体时延要求与业务类型、电网规模、元件位置有关[21].以失步保护为例,其测量数据上传和控制命令下发的通信时延之和不能超过370 ms[22−23].

本文针对TCP 不能保障实时性而UDP 不能保障可靠性的问题,提出一种基于UDP 传输的应用层纠错、检错和重发机制,以保障电力控制报文的实时性与可靠性,为广域保护与控制系统走向IP 网络通信提供参考.

1 纠错算法及实时性分析

考虑到计算复杂性,在应用层报文中加入的纠错机制采用线性分组码.

1.1 纠错码长度的理论约束条件

为保证使用UDP 传输时的可靠性,在设计纠错码时,应考虑信道的误码率,即使用的纠错算法和在应用层报文中加入的纠错码,其纠错能力应大于信道的误码率.

1)分组码的校验元长度约束条件

两个等长字符串对应位置的不同字符的个数,称为码元距离,也称汉明距,记为d.各个码字间距离的最小值称为最小码距,记为d0,是衡量码组检错和纠错能力的依据.分组码的纠错或检错能力如下[24]:

为检测e个错码,要求最小码距为

为纠正t个错码,要求最小码距为

为纠正t个错码,同时检测e个错码,要求最小码距为

当采用线性分组码时,每一组的校验元长度r为[24]

2)考虑信道误码率的纠错码理论长度

假设应用层报文的长度字节数为µ,信道误码率为λ,设编码时将报文分为N组,假定分组后每组报文长度为整数,则每组需要纠正的最大比特位数t为

根据式(2)和式(4),则加入的纠错码长度δ为

1.2 纠错算法设计

定义1.分组码是把信源输出的信息序列,以k个码元划分为一段,通过编码器为这k个信息元按一定规则产生r个校验(监督) 元,则输出码长为nk+r的一个码组,表示为 (n,k) .每一码组的校验元仅与本组的信息元有关,而与其他组无关[24].

定义2.当码长为n的分组码中的r个校验元是由k个信元的线性组合来表达时,则该分组码称为线性分组码[24].

线性分组码主要包括汉明码和BCH(Bose-Chaudhuri-Hocquenghem)码.汉明码只能纠正一位错误,BCH 码能够纠正多位错误.BCH 是迄今为止所发现的一种较好的线性纠错码类,它的纠错能力非常强,特别在短和中等码长下,其纠错性能几乎接近理论值.BCH 码中,当码长n2m −1 (m为正整数)时,称为本原BCH 码.这一类编码简单,计算效率高[24].

定理1[24].对任意正整数m和t,一定存在一个二进制BCH 码,它以β,β2,···,β2t−1为根,其码长n2m −1或是 2m −1的因子,能纠正t个随机错误,校验位数目至多为mt个.

1.2.1 本原BCH 码的编译码规则

定义本原BCH 编码的发送端的码字矩阵为C n[c n−1,c n−2,c n−3,···,c1,c0],码字的前k位为信息位,后r位为校验位(监督位).因此,信息元矩阵Ck[c n−1,c n−2,c n−3,···,c n−k+1,c n−k],校验元矩阵Cr[c n−k−1,c n−k−2,c n−k−3,···,c1,c0]. 译码器收到的码字矩阵为w[w n−1,w n−2,w n−3,···,w1,w0],信息在传输时发生随机错误,假定错误矩阵为e[e n−1,e n−2,···,e1,e0],则wC n+e.

1)本原BCH 码的编码规则

步骤1.对于 (n,k) 分组码,其生成多项式g(x)g0+xg1+x2g2+···x n−k−1g n−k−1+x n−k g n−k由xn −1因式分解得到,即xn −1g(x)h(x),则生成矩阵G[24]:

步骤2.对于本原BCH 码,有GHT0 .由此可以得到校验矩阵H[24]:

步骤3.由本原BCH 码的性质可知即[24]

由于信息元cn−1∼c n−k已知,则加入的校验元c n−k−1∼c0可以通过上述公式得到.即

2)本原BCH 码的译码规则

步骤1.根据码长n和信息元长度k计算校验矩阵H.

步骤2.计算矩阵w的伴随矩阵Sw HT.

步骤3.由于Sw HT(C n+e)HTeHT,可以估计错误矩阵

步骤4.译码器输出的估计码字

1.2.2 一种本原BCH 码分组方法

假设本原BCH 编码用二进制数实现,通过分析本原BCH 码的编译码过程,可以计算编译码的时间,编码和译码的移位运算次数分别为kr和nlog2n[24],当采用硬件进行编译码时,一次移位运算的时间非常短,此时编译码的时间基本可以忽略不计.

对应用层报文进行分组和纠错码长度计算时需要考虑如下问题:

1)本原BCH 码的性能在码长小于等于1 023比特时较好,特别在短码时纠错性能更好,随着码长的增加,纠错性能变坏.因此,为了有较好的纠错性能,分组后每组码长应不超过1 023 比特[24].

2)根据信道的误码率和应用层报文长度可以计算信道的误比特数.因此,为了保障信息在传输过程中的可靠性,必须满足整个编码的纠错位数大于或者等于报文在信道传输过程中的误比特数.

3)当原始的数据长度不满足本原BCH 码编码规则时,需要用零补齐.

假设光纤的误码率为 1×10−3时,可以确定本原BCH 码分组规则如表1 所示.

1.2.3 应用举例

设有数据D,长度为200 字节.

依据表1,应当将数据分成N8 组,每组信息元长度为k200×8/8200位,数据D[d1,d2,···,d8],其中每一组信息元d i为1×200 的矩阵

其中,d ij0 或1.

根据定理1,本原BCH 码的码长必须为2m −1(m为正整数),因此,对于200 比特的信息元,编码后的码长应为n255,若期望纠错能力t1,则校验元长度rmt8,信息元长度k′247. 因此需要对原始数据d i进行补零,补零的长度为k′′k′−k47,则补零后的数据,每一组信息元为1×247 的矩阵

每一组校验元矩阵

其中,C rij0 或1.

并将的每一组用零补齐到247 位,得到对应组的译码前每组信息矩阵为1×247 的矩阵

按照本原BCH 码译码规则对c i进行译码,得到对应组的错误图样ei,则译码后码字

1.2.4 实验验证

为了验证上述编译码规则和分组规则的正确性,进行了编程实现,实验程序流程如图1 所示,实验程序伪代码见附录A.对应表1,分别选取应用层报文长度为1、30、59、60、80、115、116、160、231、232、320、462、463、800、1 400 字节作为实验程序的输入,实验结果表明对所有选取的报文长度均能准确地进行BCH 编码和译码,且当信道随机错误小于纠错码的纠错能力时,都可以得到纠正,即能得到正确的原始报文信息.

图1 纠错算法实验程序流程图Fig.1 Flowchart of the experiment program for error correction algorithm

表1 一种本原BCH 码分组方法Table 1 A grouping method of original BCH code

为了进一步验证纠错码的纠错能力,对相同长度的应用层报文加入不同的错误图样进行了实验.应用层报文长度取200 个字节、加入1 位错误时的实验结果见附录B,表明当信道随机错误小于纠错码的纠错能力时,信道误码可以得到纠正.应用层报文长度取200 个字节、加入2 位错误时的实验结果见附录C,表明当信道随机错误大于纠错码的纠错能力时,信道误码不能得到纠正.

1.3 加入纠错机制的报文实时性分析

应用层加入纠错机制后,对通信业务的端到端时延影响主要有如下两个方面:1)加入的纠错码会增加报文的长度,从而增加报文的发送时延;2)纠错码的编码和译码会增加发送端和接收端的处理时延.

1.3.1 加入纠错码后增加的通信时延

假设通信报文纠错码的字节数为δ,通信网络的发送速率为M,报文的发送时延为τ,则单个节点增加的报文发送时延为

编码和译码的时延与其编译码算法复杂度和编译码器的处理器速率等因素有关.假定算法复杂度和处理器确定的情况下,编码和译码的时延分别为T1和T2,编码和译码的总时延T为

1.3.2 实例分析

1)增加的发送时延

为了比较可能增加的最大通信时延,应用层报文的长度取256 字节.依据表1,采用应用层纠错和UDP 方案时,传输层的报文长度为256+16+8=280 Bytes,其中16 字节是增加的纠错码长度,8 字节是UDP 报文首部长度;采用TCP 传输方案(无应用层纠错) 时,传输层的报文长度大于等于256+20=276 Bytes,其中20 为TCP 报文的固定首部长度.可见,传输时延在单个节点最多增加τ=(280−276)×8/M=32/M,M为链路的发送速率,取M=100 Mbps 时,τ=32 bits/100 Mbps=0.32 μs. 电力控制报文的转发跳数不可能多,一个省级调度数据网的报文转发跳数通常是3~4 跳,以5 跳计算,增加的总发送时延为0.32×5=1.6 μs,仍然非常小,几乎可以忽略不计.

2)增加的编译码时延

应用层纠错码的编译码只发生在源端和目的端,即通信过程中只增加一次编码时延和一次译码时延.当采用硬件进行编译码时,编译码的时间基本可以忽略不计.

1.3.3 仿真验证

1)未增加纠错机制的报文端到端时延

为了验证TCP 和UDP 对应用层业务报文实时性的影响,下面以图2 所示的某省级电力调度数据网为例仿真TCP 和UDP 传输方式下的端到端最大时延.假设其由省调双核心、备调双备份和10个地调组成,其主网是4 个155/1 000 Mbps 环型链的双归网络.

图2 一个省级电力调度数据网络结构Fig.2 The structure of a provincial power dispatch data network

以测量数据报文上传业务为例.综合各类文献,取测量数据的应用层报文长度为典型值256 字节,测量数据上传的频率为50 Hz,即测量设备以20 ms的间隔持续向控制中心发送测量数据.

设定网络畅通和拥塞两种情况,仿真传输层分别使用TCP 和UDP 时,统计相应的测量数据报文上传端到端的最大时延,结果如图3 和图4 所示.从图中可以看出,在网络正常情况下,TCP 和UDP传输方式下的业务时延相差不大,都能够满足实时性要求.但在网络拥塞状况下,采用TCP 时,随着仿真时间的增加,时延急剧增加,达到数秒甚至十余秒(第5 分钟时达到40 s),不能满足大部分广域保护业务的实时性需求;而UDP 传输方式下,业务最大时延稳定在80 ms 左右,能满足大部分广域保护业务的实时性需求.

图3 网络畅通时采用TCP 和UDP 的业务最大时延Fig.3 Maximum delays of messages using TCP and UDP when the network is uncongested

图4 网络拥塞时采用TCP 和UDP 的业务最大时延Fig.4 Maximum delays of messages using TCP and UDP when the network is congested

2)增加纠错机制后的报文端到端时延

为了验证采用本文纠错方案后报文的端到端时延是否满足电力业务的实时性要求,本文根据上文设计的BCH 编码算法参数进行了仿真,且为便于比较分析,仍以图2 所示的某省电力调度数据网络为例,网络状况也分为畅通和拥塞两种情况.

仿真中,增加纠错码后报文长度变化增加的发送时延已通过设定报文大小而包含在仿真结果中,由于编译码时间可以忽略,仿真的端到端时延就是采用应用层纠错和UDP 传输方案的总时延.

仿真方法及参数设置与前文类似,不同之处仅仅是UDP 传输时因增加了应用层纠错机制而增加了报文长度.应用层报文的长度仍取256 字节,则TCP 报文的数据区长度为256 字节,UDP 报文的数据区由于加入16 个字节的纠错码,其长度为272字节.

网络畅通时,报文的端到端时延如图5 所示.网络畅通时,UDP 传输方式下报文端到端时延和TCP 传输方案相当,报文时延在1.3 ms 左右,远远小于广域保护测量数据上传和控制命令下发所要求的时延100 ms.

图5 网络畅通时TCP 和UDP 传输下报文的端到端最大时延Fig.5 Maximum end-to-end delays in TCP and UDP transmission modes when network is uncongested

为了观察不同拥塞程度下的通信时延,对带宽为155 Mbps 的链路,分别仿真拥塞流量为156 Mbps、168 Mbps、180 Mbps 以及192 Mbps 时TCP 传输方式和UDP 传输方式的端到端时延,结果如图6所示.可见,TCP 传输方式下的端到端时延随着拥塞程度加重越来越大,延时在1~40 s 之间,不满足广域保护控制系统的实时性要求;而UDP 传输方式下报文的端到端时延跟网络拥塞程度几乎无关,其时延稳定在80 ms 左右,远小于TCP 传输方式,仍满足广域保护系统中对测量数据报文传输时延的要求.

图6 4 种拥塞流量时TCP 和UDP 报文的端到端最大时延Fig.6 Maximum end-to-end delay of TCP and UDP packets in four types of congestion traffic

UDP 传输方式中加入了纠错码,能够确保报文在传输过程中具有高可靠性,避免了出错重传引起的时延抖动.

2 应用层纠错方式下的检错与重发

UDP 传输方式下在应用层报文中加入纠错码,只能保障报文在传输过程中出现随机错误情况下的可靠传输,且其可靠性与纠错码的纠错能力相关,而当错误位较多或突发性误码率高而超出纠错码能力、或整个报文丢失时,报文的可靠性则无法保证.为此本文提出:1)对于报文到达了接收端的情形,为了进一步提高报文的可靠性,在应用层报文中增加检错机制;2)为防止报文在传输过程中丢失,增加报文的重发机制.

2.1 应用层检错机制

在应用层增加检错机制的目的,是判断接收端经过纠错算法译码后的信息是否为正确的数据.因此,本文将检错范围设计为包括信息元和纠错码两者.

设检错编码算法为f,则在发送端和接收端的检错码编码和译码策略分别如式(9)和式(10).

式中,Cs为发送端检错码,Ck为发送端信息元,C r为发送端纠错码.

式中,CR为接收端检错码,为译码后的信息元,为译码后的纠错码.

如果Cs与CR相同,则认为纠错码纠正了错误,否则认为纠错失败.

本文建议采用与TCP 校验和相同的算法进行检错.则检错码的长度为2 字节,几乎不增加发送时延.同时,由于TCP 校验和计算简单,处理时延也可以忽略不计.实际中,在应用层纠错方案中,由于UDP 校验和需要禁用,减少了UDP 计算校验和的时间,从而在应用层增加这种检错机制并不会增加时延.

这样,在报文到达接收端的情况下,其可靠性远大于TCP 传输方案.但是仍不能解决报文丢失情况下的可靠性问题,因此,本文引入下一节讨论通过重发机制来解决这一问题.

2.2 报文重发机制

为了避免报文丢失,可以在广域保护系统中采用将同一报文连续重复发送多次的策略.

电力通信网络为专用网络,相对互联网来说,其通信量远远小于信道的容量,且具有可预见性,因此,重复发送报文虽然增加了通信量,但是可以根据信道容量控制重发次数来避免引起网络拥塞,还可以在网络规划时就考虑到重发报文增加的带宽需求.

广域保护与控制系统的动作时延组成如式(11)所示.

式中,TG为广域保护与控制系统总时延,T s为设备发送时延,T e为发送间隔时延,Tce为测量数据上传通信时延,Tcr为控制命令下发通信时延,T j为控制命令决策时延.其中通信时延与网络传输协议、网络状态和网络结构有关.

在UDP 传输方式下,将报文连续发送N次,不需要等待接收端的确认,报文之间的时间间隔只受发送端处理能力和发送能力的限制.最坏情况下(前N −1 个报文都丢失、只有最后一个报文到达),报文的端到端时延为第一个报文生成到最后一个报文在接收端译码完成的总时延,如图7 所示,即

图7 报文连续发送N 次的总时延构成Fig.7 Composition of the total delay when the message is transmitted N copies

式中,TUDP为UDP 传输时应用层报文总时延,T a为单个报文的端到端时延(含编译码处理时延、发送时延和链路传播时延),T b为帧间间隔,T c为单个报文的发送时延,N为报文的发送次数.

TCP 协议为了保障报文的可靠性,具有超时重传的机制.假设TCP 报文重传N −1 次,相当于报文发送了N次.TCP 报文的时延由超时重传时间和报文的传输时延构成,即

式中,TTCP为TCP 传输时应用层报文的总时延,T d为单个报文的端到端时延(含发送时延和链路传播时延),TRTO为超时重传时间,T c为单个报文的发送时延.

TCP 报文为了实现超时重传,在每发送完一个分组设置一个超时计时器,超时计时器的数值就是超时重传时间.TCP 超时重传时间为加权平均往返时间,是一个动态值,通常会比数据在网络中传输的平均往返时间略长一些,即通常TRTO>2T d,为了简化计算,取TRTO3T d.由于报文端到端时延T d的值会因网络状态和传输路径的不同而改变,是一个不确定值,因此,TCP 超时重传时间TRTO也是不确定的.

下面以如图2 所示的通信网络为例,对报文丢失情况下TCP 重传和UDP 重发机制对时延的影响进行分析.

1)TCP 传输方式下,在网络畅通时,根据前文的仿真结果,可知式(13)中的Td1.3 ms .应用层报文为256 字节,则TCP 传输时物理层的数据总长度为(256+20+20+26)=322 bytes,其中,20 字节是TCP 报文固定首部长度,20 字节是IP分组固定首部长度(为了简化问题,TCP 和IP 均忽略了选项字段),26 是以太网帧前导、首部和尾部的总长度.选择100 Mbps 以太网,根据式(7),单个报文的发送时延为T c322×8 bits/100 Mbps25.76 μs.TCP 报文的超时重传时间TRTO3.9 ms.网络畅通时,TCP 报文的时延为TTCPT d+(N−1)TRTO+(N−1)T c,当N3时,TTCP9.152 ms,根据式(11),TceT crTTCP,PMU 发送间隔T e20 ms,T GT s+T e+T ce+T cr+T j(T s+38.304+T j)ms,总时延大于38.304 ms,满足大部分广域保护控制系统报文的通信时延需求.

网络拥塞时,T d在1~30 s 之间.远远超过大部分广域保护控制系统报文的最大时延需求.

2)UDP 传输方式下,在网络畅通时,根据前文的仿真结果,可知式(12)中的Ta1.3 ms. 应用层报文为256 字节,则UDP 传输时物理层的总长度为(256+16+2+8+20+26)=328 bytes,其中16 字节是增加的纠错码长度,2 字节是增加的检错码长度,8 字节是UDP 报文首部长度,20 字节是IP 分组固定首部长度(为了简化问题,忽略了IP 选项字段),26 是以太网帧前导、首部和尾部的总长度.选择100 Mbp s 以太网,根据式(7),单个报文的发送时延为T c328×8 bits/100 Mbps26.24 μs.两帧之间最少要有96 bits 的发送时间间隔,则帧间间隔为Tb96/1006s0.96 μs. 当N=3 时,应用层报文的总时延为TUDP=1.3544 ms,远远小于广域保护系统报文的时延需求.

网络拥塞时Ta80 ms,假设N=3,则TUDP80.0544 ms,与单个报文的端到端时延几乎一样.

综上,由于TCP 重传时间远大于UDP 传输方式下的报文重发间隔,且TCP 重传时间随着网络拥塞情况的恶化而急剧增大,使得丢包率相同的情况下,UDP 重发机制的实时性远高于TCP 重传机制.

3 联合应用算法与可靠性分析

3.1 纠错、检错与重发机制的联合应用算法

上文提出的纠错、检错与重发机制,在电力广域保护系统通信中联合应用的具体方法如算法1 和算法2.

算法1.发送端应用层报文生成与封装算法

输入.原始应用层报文µ,µ≤1 400 bytes;

输出.UDP 报文X;

算法2.接收端报文解封装与处理算法

输入.UDP 报文X′;

输出.原始应用层报文µ′′;

算法1 用于发送端通信程序的编写,给出了从原始应用层报文到UDP 报文发送过程中的报文生成与封装方法及步骤:首先利用第1.2 节提出的BCH纠错编码规则和分组方法对其进行纠错编码,并按照第2.1 节提出的检错机制计算校验和,然后将原始数据、纠错码与校验和一起封装到UDP 报文数据区,并禁用该UDP 报文的校验和,最后依照第2.2 节中的重发机制对该UDP 报文进行连续3 次重发.需要说明的是,为了避免出错报文在传输层被丢弃,算法中增加了禁用UDP 自身差错校验的机制,即实现时应将UDP 报文首部的“校验和”字段置为0.

算法2 用于接收端通信程序的编写,给出了从UDP 报文接收到将原始应用层报文提交给应用程序的报文解封与处理方法及步骤:首先对接收到的UDP 报文解封装得到未处理的应用层报文,然后按照第1.2 节提出的BCH 纠错译码规则和分组方法对其进行纠错译码,得到原始应用层报文,再按照第2.1 节给出的检错算法进行检错,检错通过则将原始应用层报文提交给应用程序,并且不再处理重复报文,否则丢弃该报文.

在相互通信的两端,必须同时实现算法1 和算法2.

3.2 与TCP 传输方案可靠性的对比

由于TCP 和UDP 报文在同样的信道中传输,因此假定两种报文在信道中传输发生错误的概率为P.报文错误类型可以分为随机的误码错误和报文丢失错误,假设报文在传输时误码率为PSER,丢包率为PPLR.

TCP 通过校验和的检错机制对误码错误进行校验,通过超时重传来提供出错和丢失报文的可靠性.假设校验和不能检错的概率为P1,则TCP 报文重发N−1 次的可靠性PTCP为

UDP 传输方式下,应用层报文同时具有检错和纠错能力,实现对误码错误的纠正或校验,同时通过连续多次重发来为超出纠错能力的错误报文和丢失的报文提供可靠性.假设校验和不能校验错误的概率为P2,纠错码不能纠正错误的概率为P3,如果UDP 快速发N次,则使用快速多发机制的UDP协议报文的可靠性PUDP为

由于P1P2,P3远小于1,因此PUDP>PTCP.

综上所述,UDP 报文中加入检错和纠错机制并采用快速重发多次的机制时,其可靠性远大于TCP 报文的可靠性.

3.3 与其他UDP 传输方案的对比

文献[16−17]提出了基于UDP 协议的通信可靠性方案,本文方案与这两个UDP 传输方案的对比如表2 所示.可见,与已有方案相比,本文提出的方案在确保电力广域保护系统通信业务实时性的同时具有更高的可靠性.

表2 本文方案与其他方案的对比Table 2 Comparison of the proposed scheme with others

目前没有发现传输层使用UDP 并将纠错机制加入应用层的相关研究,也未发现联合使用纠错、检错和重发机制的方案.

4 结束语

当电力广域保护系统的通信网络拥塞时,报文采用TCP 传输协议的时延会急剧增加,而已有UDP 传输方案不能保证报文的可靠性,因此,本文提出了一种新的广域保护系统通信实时性与可靠性保障方案,该方案在传输层采用UDP 协议来保障报文的实时性,通过联合采用应用层纠错与检错机制、和报文快速重发机制来保证报文的可靠性.针对电力广域保护通信业务特点,本文选择本原BCH码作为纠错编译码算法,并设计了分组方法;给出了检错和重发的建议方案;设计了UDP 传输下的检错、纠错与重发机制的联合应用算法.理论分析和仿真结果表明,本文方案在网络拥塞时仍能保障绝大多数电力广域保护业务的实时性,且可靠性高于TCP 传输方案及其他UDP 传输方案.在实际应用中,可以进一步联合传统实时性与可靠性保障方法,优化网络和业务系统结构,最终实现对所有业务的实时性和可靠性保障.

本文设计的纠错译码算法只是一种实现方法,在应用中,也可以按照实际信道的误码率、算法的复杂性和通信设备的计算能力权衡考虑来设计适用的纠错算法.本文工作也可为其他工业控制系统参考.

附录A 实验伪代码

附录B 加入1 位错误时的实验结果

数据区的长度为k=200 byte

输入信息序列为y=DA 9F 9B 6B 78 D4 87 D2 15 D0 05 6B 6A 90 F2 B8 AC 0C FA 78 93 8E 29 EC 74

填充零后的输入信息序列为M=DA 9F 9B 6B 78 D4 87 D2 15 D0 05 6B 6A 90 F2 B8 AC 0C FA 78 93 8E 29 EC 74 00 00 00 00 00 00

编码后的信息序列C=8F 41 5D AF 1E 20 47 97 FE E8 A4 C8 D6 75 F2 0C 19 1E A2 96 84 54 99 D2 47 00 00 00 00 00 00 B5

错误图样序列E=00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

译码序列为C'=8F 41 5D AF 1E 20 47 97 FE E8 A4 C8 D6 75 F2 0C 19 1E A2 96 84 54 99 D2 47 00 00 00 00 00 00 B5

填充零后信息恢复序列M'=DA 9F 9B 6B 78 D4 87 D2 15 D0 05 6B 6A 90 F2 B8 AC 0C FA 78 93 8E 29 EC 74 00 00 00 00 00 00

信息恢复序列y'=DA 9F 9B 6B 78 D4 87 D2 15 D0 05 6B 6A 90 F2 B8 AC 0C FA 78 93 8E 29 EC 74

附录C 加入2 位错误时的实验结果

数据区的长度为k=200 byte

输入信息序列为y=38 6A 39 89 6B 4F 69 7A 6D 49 21 99 43 83 09 23 7A 3E 10 66 A9 FF 8F 2C C1

填充零后的输入信息序列为M=38 6A 39 89 6B 4F 69 7A 6D 49 21 99 43 83 09 23 7A 3E 10 66 A9 FF 8F 2C C1 00 00 00 00 00 00

编码后的信息序列C=38 6A 39 89 6B 4F 69 7A 6D 49 21 99 43 83 09 23 7A 3E 10 66 A9 FF 8F 2C C1 00 00 00 00 00 00 FF

错误图样序列E=00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 04 00 00 00 00 10 00 00 00 00 00 00 00 00

译码序列为C'=38 4A 39 89 6B 4F 69 7A 6D 49 21 99 43 83 09 23 7A 3E 10 E6 AB FF 8F 2C C1 00 00 00 00 00 00 BF

填充零后信息恢复序列M'=38 4A 39 89 6B 4F 69 7A 6D 49 21 99 43 83 09 23 7A 3E 10 E6 AB FF 8F 2C C1 00 00 00 00 00 00

信息恢复序列y'=38 4A 39 89 6B 4F 69 7A 6D 49 21 99 43 83 09 23 7A 3E 10 E6 AB FF 8F 2C C1

猜你喜欢

重传广域应用层
面向异构网络的多路径数据重传研究∗
广域雷达信息采集系统应用
基于分级保护的OA系统应用层访问控制研究
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
基于免疫算法的高容错性广域保护研究
数据链路层的选择重传协议的优化改进
被动成像广域空中监视系统综述
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
基于完全调节法的广域阻尼鲁棒H2/H∞控制策略