APP下载

面向高速公路通信系统基于簇的传输机制

2021-01-11熊立胜何施茗罗元盛

湖南交通科技 2020年4期
关键词:箭头延时数据包

熊立胜, 何施茗, 罗元盛

(1.湖南省交通运输厅科技信息中心, 湖南 长沙 410022; 2.长沙理工大学 计算机与通信工程学院, 湖南 长沙 410114)

0 引言

高速公路机电系统主要分为收费系统、监控系统、通信系统3个部分,其中通信系统是收费系统、监控系统的传输承载平台,是高速业务正常运行基础。湖南高速公路通信网络结构规划分为3级模式[1],2个网络,即湖南省通信中心(设在长沙市的湖南省高速公路管理局),各条路的通信管理处(设在各地市),各路段通信站(设在收费站服务区)。由省中心到各分中心为干线网,各分中心到各收费站为接入网。湖南省高速公路通信系统的拓扑结构见图1。

图1 湖南省通信网络拓扑图

根据湖南省交通厅《基于混合网络的高速公路数据实时传输保障平台及分布式存储协同机制关键技术研究》项目调研报告,虽然湖南省高速公路通信光纤专网早已建成,且随着新高速公路的竣工还在不断延伸,但存在以下问题: ① 高速公路光纤专网链路质量不均衡。每条高速的建设年代不一样,光纤专网也因铺设年代不同而存在不同程度的老化与损坏。例如: 永州管理处大部分高速公路是去年或前年通车,高速公路光纤专网通信质量很好;而老高速公路,如长沙至益阳至常德、京珠高速湘潭以南等,这些建成已有10a以上的高速光纤网,经常发生中断。 ② 长沙是湖南省高速公路光纤专网的逻辑中心节点,是各种业务数据的存储中心、指挥中心。长沙周边的高速公路光纤专网普遍因使用年限久经常发生中断,由于目前干线传输系统还不是网状组网,新的高速专网必须通过这些老的高速专网才能与省中心连通,从而导致新的高速专网也无法连接到省中心。③ 高速公路光纤专网的规模和覆盖范围与电信等专业公司相差无几,但在设备和维护等方面投入远小于专业公司。光纤经过多次熔接,信号衰减严重,导致出现网络抖动、数据传输延迟长、丢包等极端状况。虽然专网没断,但是间歇性出现上述现象。因此,单纯依赖光纤专网来保障实时性、稳定性、可靠性要求高的各种业务应用系统是不现实的。

为解决传输可靠性问题,本文面向高速公路通信系统特点,设计基于簇的传输机制。高速公路通信系统依附高速公路修建,本身具有地理位置物理特性,地理位置上已经形成簇。基于簇的传输机制,可以提供双层的可靠性传输保障,提高可靠性。设计簇头选择标准和算法,基于此进行分簇,并设计基于簇的数据传输机制的协议,形成分层的通信方式。实验表明,基于簇的传输机制比直接传输具有更少的传输延时和传输完成时间。

1 相关工作

国内针对高速公路数据通信方面的研究成果主要有:长安大学杨晓东及其团队成员李楠提出的区域高速公路网通信系统规划研究与应用[2],以提高通信系统资源利用率和指导通信系统建设为目标,提出了通信系统网络架构;复旦大学戴伟辉及其团队成员谷雨为上海高速公路平台提出了一套以IEEE 802.3ae万兆以太网技术为核心的高速公路通信网解决方案[3],该方案采用新技术,成功解决了上海高速公路网络业务的通信需求;龚树超[4]提出了构建高速公路网无线宽带网络的设想,并且对比了专用无线宽带网络与租用无线宽带网络这两种模式的优缺点。李新法等[5]提出了对现有高速公路通信系统MSTP传输网架构进行全IP通信网的设计方案。孙芸丽[6]从网络结构合理性、可扩展性、数据传输稳定性等方面出发比较了SDH网络和智能ASON网络,分析并探讨如何合理、科学地构建省域高速公路骨干通信系统网络。王露[7]、王辉[8]利用PTN技术,为高速公路通信网组建多种结构的业务传送平台,向集中的业务节点与开放型、分布式、一体化接入网相结合的方向发展,使通信网络从综合成本、效益与效率、网络可拓展性等诸多层面适应新时期的发展趋势,全面提高通信网络的业务能力。结合湖北黄黄高速公路万兆环网建设实例[9],通过改造高速公路通信系统来提高传输可靠性。总体而言,国内对高速公路数据通信方面的研究主要集中在通信网规划设计和改造方面,有关数据可靠传输方面的研究成果还比较少。而在计算机网络研究领域,其研究成果比较丰富[9-13],但是大部分成果没有结合高速公路应用背景,其实际工程应用效果还有待检验。

2 簇头选择指标设计

簇头选择指标从节点间选出能力最佳的节点设置为簇头[14-16]。分布式自适应簇头的选取结合最大节点ID算法和延时权重算法。延时权重WD由节点与省中心、节点与邻居节点的延时共同决定,计算如下:

WD=W*Delayc+(1-W)*D,W∈[0,1)

(1)

其中,Delayc为节点与省中心连接的延时。每次节点与省中心通信过程中,都会记录一个新的延时Delayc。为了计算的精确性,也可以利用历史数据进行时间序列分析;D为节点与邻居节点的平均延时。

假设某个节点有n个有效邻居节点,那么平均延时为:

(2)

当出现两个节点WD相等时,选择节点ID较大的节点作为簇头节点。

3 基于簇的传输机制设计

3.1 消息和数据结构设计

为了完成分布式分簇和基于簇的传输,需要进行消息传递和存储相应的数据。每个节点都存储以下数据结构:省中心连通状态表、簇头选择指标、簇头和簇成员表,省中心存储簇信息表。

省中心连通状态表用于记录节点到省中心的连通情况,尤其是与省中心的延时用于计算簇头选择指标。包括省中心节点id,网络类型,IP地址,延时Delayc,连通率PDR,历史延时Delay_old。

簇头选择指标是根据式(1)中计算的本节点的指标值,是一个双精度的浮点数。

簇头是记录节点所处的簇的簇头节点id,如果节点还未加入簇,该值为空。

簇成员表用于记录所处簇包含的节点id。

簇信息表由省中心存储,用于记录所有簇的簇头和簇成员节点信息,簇信息表的每一项包含簇头id,簇成员节点id list。

协议消息包括簇加入消息(hello-join)、簇头存在消息(hello-CH)、簇成员存在消息(hello-CM)、簇竞选消息(hello-cont)、簇成员汇报消息。消息格式如表1。

表1 分簇主要消息格式格式序号消息格式1消息类型hello-join,发送节点id,目的节点id,消息编号2消息类型hello-CH,发送节点id,目的节点id,消息编号,簇成员节点id list3消息类型hello-CM,发送节点id,目的节点id,簇头节点id,消息编号4消息类型hello-cont,发送节点id,目的节点id,消息编号,簇头选择指标值5消息类型簇成员汇报,发送节点id,目的节点id,消息编号,簇头,簇成员节点id list

3.2 分簇协议

节点在分簇过程中存在3种状态:未确定状态(UN)、簇头状态(CH)和簇成员状态(CM)。节点之间通过消息传递,改变自身状态,计算簇头选择指标来完成分簇。节点状态转移见图2。

节点x初始处于UN状态,发送hello-join请求加入簇,等待t1时间。如果收到来自簇头的hello-CH就加入该簇,对应箭头(1);否则,发送hello-cont进入竞争选择新簇头的阶段。

hello-cont中包含本节点的簇头选择指标值,邻居节点也都发送hello-cont,等待t2时间。指标最小的节点xi当选簇头,xi发送hello-CH,对应箭头(2);别的收到hello-CH的节点成为该簇成员,对应箭头(1)。

图2 节点状态转移图

簇头将簇成员信息汇报给省中心。执行流程如下所示。

3.2.1算法1:节点x处于UN状态

① 给有效邻居发送hello-join请求加入簇,等待t1时间;如果收到来自簇头j的hello-CH消息,就加入该簇,对应箭头(1),发送hello-CM给簇头j,节点x的状态改为CM;否则给有效邻居发送hello-cont,等待t2时间;进入竞争选择新簇头的阶段:收到有效邻居节点发送的hello-cont;将自身的簇头选择指标与收到的有效邻居节点比较,指标值是否最小;是则节点x当选簇头,对应箭头(2),节点x的状态改为CH,簇成员表是之前收到了hello-cont的有效邻居节点,节点x向簇成员表中的节点发送hello-CH;如果收到来自节点j的hello-CH;节点x成为节点j的簇成员,回复hello-CM,簇头设定为节点j,对应箭头(1),节点x的状态改为CM。② 如果收到来自节点i的hello-cont消息,回复hello-cont消息,等待t2时间;进入竞争选择新簇头的阶段。

3.2.2算法2:节点x处于CH状态

① 定时t1给簇成员节点发送hello-CH消息;超过时间未收到成员节点的hello-CM消息,删除该成员节点;汇报簇成员节点信息给省中心。② 如果收到来自节点i的hello-join消息,回复hello-CH消息;如果收到节点i的hello-CM,簇成员表新增节点i。③ 如果收到来自簇头节点j的hello-CH消息,等待t4时间;簇合并:如果还可以接收hello-CH就重新成簇;簇头节点交换两者的指标值,是否指标值较小;是则节点x保留为簇头,节点x的簇成员表新增节点j的簇成员;节点x向簇成员表中节点发送hello-CH;利用簇成员汇报消息,汇报簇成员节点信息给省中心;否则节点x变成簇成员,对应箭头(6),节点x的状态改为CM,节点x的簇头设为节点j。

3.2.3算法3:节点x处于CM状态

① 如果收到来自簇头节点j的hello-CH消息,回复hello-CM消息。② 如果超过时间t3未收到簇头节点j的hello-CH消息,删除簇头信息,对应箭头(4),节点x的状态改为UN,簇分离。 ③如果收到来自节点i的hello-cont消息,回复hello-cont消息,等待t2时间;进入竞争选择新簇头的阶段。

在协议过程中,在节点状态改变时需要对簇头和簇成员表进行重置。节点x改为UN状态,簇头和簇成员表清空;节点x改为CH状态,簇头设为节点x;节点x改为CM状态,簇成员表清空。

省中心根据簇头发送的簇成员汇报消息,构建和更新簇成员表。

3.3 簇维护协议

通过消息传递和节点状态改变,来实现簇分裂和合并。

簇维护过程中,簇头i以周期t1发送hello-CH来维护簇。

簇分离过程中,1个CM状态的节点在t3时间内没有收到任何hello-CH;进入竞争簇头阶段,计算指标,发送hello-cont。等待t2时间,最小指标的CM节点成为簇头发送hello-CH,对应箭头(3)。一个CM或CH状态节点在t3时间没有收到任何hello-CH或hello-CM消息,就可以认为没有任何邻居存在,退回到UN状态,对应箭头(4)、(5)。

簇合并过程中,1个CH状态的节点收到别的节点发出的hello-CH,等待t4时间,如果还可以接收hello-CH就重新成簇,簇头节点交换两者的指标值,指标值较小的保留为簇头,较大的变成簇成员,对应箭头(6)。

3.4 基于簇的数据传输协议

分布式分簇后,利用簇头进行中继数据传输和确认机制,且保证每个节点至少收到1份来自省中心的数据拷贝[17]。协议消息包括数据包和3类确认消息(ACK1,ACK2,ACK3)。3类确认消息用于簇头和省中心、簇头和簇成员之间的确认,数据的格式如表2。

表2 数据包与确认消息数据格式格式序号数据格式1源节点id,目的节点id,目的节点id List,数据包编号,网络类型,数据内容2确认消息类型ACK,源节点id,目的节点id,确认数据包编号3确认消息类型ACK2,源节点id,目的节点id,确认数据包编号4确认消息类型ACK3,源节点id,目的节点id,确认数据包编号,未正确收到簇成员节点id list

对于省中心发出的数据,目的节点id设为簇头id,目的节点id list设为簇成员节点的id list。簇头在收到数据包后,按目的节点id list再进行转发,将目的节点id list的节点作为目的节点继续发送。

3.4.1算法4:省中心数据传输流程

① 省中心需要发送信息。对簇信息表中的所有簇构建数据包,其中目的节点id设为簇头id,目的节点id list设为簇成员节点的id list;发送数据包;等待时间t5。②如果收到来自簇头j的ACK3消息,如果存在未正确接收的节点,重传整个传输单元。

3.4.2算法5:簇头数据传输流程

① 如果收到来自省中心的数据包,回复ACK1;对于目的节点id list中的所有节点i,构建数据包,其中目的节点id设为节点i,目的节点id list设为空;发送数据包;等待时间t5。② 如果收到来自簇成员节点i的ACK1消息,节点i正确收到。③t5定时器触发,根据未收到数据包的簇成员节点构造ACK3。

3.4.3算法6:簇成员传输流程

① 如果收到来自簇头的数据包,回复ACK2。

为保证每个节点至少收到一份来自省中心的数据拷贝,考虑采用3次确认机制(见图3)。

图3 基于簇头转发确认机制图

Step1: 省中心发送数据包给簇头节点,对应箭头(1);如果簇头正确收到,簇头节点对省中心进行第一次回复确认ACK1,对应箭头(2)。

Step2 :簇头将数据转发给所有簇成员节点,对应箭头(3);如果簇成员节点正确收到,簇成员节点对簇头进行第二次回复确认ACK2,对应箭头(4)。

Step3: 簇头等待t5时间后,根据ACK2统计正确收到的簇成员节点,将未正确收数据的簇成员节点id发送给省中心,进行第三次回复确认ACK3,对应箭头(5)。

设定传输单元为1个路径文件或1个视频文件。当省中心确定某一个节点未正确收到传输单元中的某一个数据包时,省中心通过别的路径重传整个传输单元。

4 性能分析

仿真实验在NS2中进行,n0为省中心,30个收费节点分别为n1到n30。节点之间通过vpn和光纤互联,网络拓扑结构如图4所示,链路的参数如表3所示。省中心向所有节点发送相同数目的数据包,采用TCP的FTP类型应用,数据包大小为1000 byte。一个路径信息大约为500 k字节,那么一个路径信息需要发送500个数据包。

采用2种传输方式,直接传输和分簇传输方式。直接传输采用vpn链路,传输采用的路径结果如图5所示。分簇传输利用光纤,路径结果如图6所示,其中设定分为3个簇,每个簇大小为10个节点,簇头节点为簇中编号最小的节点。

图4 网络拓扑结构

表3 链路参数类型带宽/Mbps延时/ms丢包率/%vpn 10205光纤100 81

每个流的路径信息发送量从1、2 增加到20。由于存在30个并发流,那么省中心就需要发送30,60到600个路径信息。图7和图8是不同发送量下,2种传输方式的数据包延时和路径信息平均完成时间比较。由于有TCP的发送窗口限制,在并发流数目确定的情况下,延时和路径信息平均完成时间变化不大。

节点数目从10,20增加到50,每个流发送5个路径信息。分簇情况下,每个簇大小为10个节点,那么簇的数目将从1,2增加到5。图9和图10是不同节点数目下,2种传输方式的数据包延时和路径信息平均完成时间比较。

图5 直接传输路径

图6 分簇传输路径

图7 延时受发送量影响

图8 路径信息平均完成时间受发送量影响

图9 延时受节点数目影响

图10 路径信息平均完成时间受节点数目影响

5 结语

为解决高速公路通信系统可靠性传输问题,面向高速公路通信系统特点,设计基于簇的传输机制,设计簇头选择标准和算法,基于此进行分簇,并设计基于簇的数据传输机制的协议,形成分层的通信方式。实验表明,基于簇的传输机制比直接传输具有更低的传输延时和传输完成时间。

猜你喜欢

箭头延时数据包
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
日光灯断电关闭及自动延时开关设计
C#串口高效可靠的接收方案设计
基于CD4060 的室内换气系统延时关机电路设计
运载火箭
宋湘延时答妙对
桑塔纳车发动机延时熄火
寻宝历险记(6)
天地大转盘