论文部分内容阅读
摘 要:TCP和UDP通信协议应用于无路由保护、带宽受限的长距离微波传输的广播电视远程综合监管系统通信,存在着传输通道不稳定造成监管系统中心与分中心通信可靠性差而影响系统正常运行的问题。针对这种情况,在分析了成因的基础上,创造性地提出了一种特殊通信协议。此协议基于UDP协议基础,通过设计专用应用层报文格式,建立信息有序、信息加密、差错检测、差错报文重传和信息超时监测机制,并应用于远程综合监管中心与各分中心的可靠通信,实现了系统的正常运行。
关键词:微波传输;远程综合监管系统;UDP;特殊通信协议
1 概述
文章分析了广播电视远程综合监管中心与全省范围的各地分中心之间,利用带宽有限的长距离微波作为传输媒介,网络运行不正常的原因,创造性地设计了一种特殊通信协议应用于此网络。此特殊协议是承载于UDP协议上,借鉴TCP思想设计而成,实现了网络通信的稳定、可靠,保证了远程综合监管系统的正常运行。
2 网络工作环境对远程传输稳定性的影响
远程综合监管中心与遍布全省各地的分中心(各广播电视传输发射台)之间利用微波无线接力通道作为远程传输媒介,容易受到外界环境(如微波传输衰落和复杂的环境电磁场干扰)影响,造成网络断路;由于资源有限,无线传输带宽一般较窄,传输视频等大量数据,不时造成短时间的网络断路,形成较为频繁的网络闪断;实际工作中,由于人为的操作因素,也会造成网络断路。以上这些因素交织在一起,严重影响网络的正常运行,必须找到一个行之有效的解决方案,在固有的工作环境下,确保远程综合监管系统能正常运行。
3 TCP和UDP在无线信道中传输存在的问题
TCP协议实现数据的无差错传输,是通过通信双方3次握手建立连接,4次握手拆除连接的方式实现,是以复杂的传输控制和较大的网络开销为代价的。将其用于带宽有限、受外界环境影响频繁的无线信道中传输,常出现网络无法正常工作的情况。究其产生的原因在于TCP协议的链接开销大(20个字节的固定头部),网络一旦出现断路,再进行重连时,其过多的重连会造成操作系统网络资源的过度占用,出现网络通讯溢出,进而无法建立新的连接线程;TCP可能多次重发一个分组,这个行为促使拥塞发生或者加重拥塞状况。两种情况皆会导致远程综合监管系统无法正常工作。
UDP协议是一种无连接协议,传输数据之前源端和终端不建立连接,具有开销小的优势,但是不具有差错控制和拥塞控制功能,是一种不可靠传输。在发送端,UDP传送数据的速度是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP 协议可以检测是否出错。当其检测到错误时,不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。当我们面对可靠性相對较差的无线传输通道时,UDP协议本身的特点必然造成信息的丢失,导致与使用TCP协议一样的结果——远程综合监管系统无法正常工作。
4 特殊通信协议设计
UDP(用户数据报)首部小(8字节),额外开销少,在带宽相对较小,常出现拥塞,常存在出错的网络中UDP没有创建所需的额外通信量可以看做是一个优势。TCP的流量控制和差错控制的思想也是有利于系统稳定工作的。于是进行折中考虑,在应用层设计了基于UDP的,加入标识符、多连接信息识别标记、分段信息顺序标签、信息加密系统、校验等数据段,并采取适当控制机制(信息的重复发送机制、超时监测机制)的特殊通信协议,实现了远程综合监管中心与各地分中心之间通信的可靠性,确保了监管系统的正常工作。
4.1 UDP(用户数据报)格式
UDP分组称为用户数据报(user datagram),有8字节的固定头部,其中含4个字段,每个字段由2字节(16位)组成。用户数据报格式请见图1所示。
4.2特殊通信协议格式
特殊通信协议格式中数据头、数据尾、标识符分别占用1个字节, 随机ID、序号和校验位各占用2个字节,其格式请见图2所示。
标识符:用来标识信息类别,区别信息用,可以随意定字符。
随机ID(多连接信息识别标记):标示此次信息的随机ID,一般由本机IP最后位加当前开机时间毫秒,然后取校验位的方式生成唯一的ID。ID实现是首先采用GUID(Globally Unique IDentifier)算法,接着对GUID算法生成的代码转换成十六进制,最后对此字串取CRC16 校验,此校验码作为我们的ID。
例如:
取某一时刻本机的GUID
fb0be97d-7642-4550-ab7a-3637dd4b8f3a
去掉间隔符变成长度为32的可视字串
fb0be97d76424550ab7a3637dd4b8f3a
B. 将上述字串转换成十六进制
66 62 30 62 65 39 37 64 37 36 34 32 34 35 35 30 61 62 37 61 33 36 33 37 64 64 34 62 38 66 33 61
C. 对以上字串进行CRC16校验取得校验码
45 AC
D. 将此校验码作为ID
序号(分段信息顺序标签):用来区别一个信息的多个段的序号,一般1K数据一个段,以防过长被截断。序号在实际使用中可以根据情况,灵活确定使用的字节数。
数据:对数据采用Base64编码或用Easy.Compression.Library加密后在无线通道中传输。
校验位:对②+③+④+⑤进行取校验,其中校验可以采用通用的方法(合补加一&CRC等),弥补UDP协议没有差错控制的不足。 数据尾:用“)”来标示此信息的结尾。
5 协议工作流程及原理
在明确了特殊通信协议格式的基础上,下面具体描述其工作流程(如图3所示)及原理。
工作原理详述如下:
⑴标识符:用来标识信息类别,区别信息用,可以随意定字符。例如,
设置标识符“i”表示“设备状态信息”;“w”表示“设备告警信息”
⑵多连接信息识别标记(随机ID):如果多个客户端同时向一个服务端发送数据,经常会造成各个数据段堆积在一起,因此需要对每个数据段加入唯一标识(每次开始传输即生成一个针对本次传输信息的唯一ID),以区分各种不同的进程所发的信息。
⑶分段信息顺序标签(序号):由于UDP通讯每次最多不到2K数据量(多余会被截断),传输前必须对长信息进行分段,因此对分段后的同一个信息强制加入序号标签,由接收端合成一个完整的信息段。本系统对数据分段采用的是以1K为标准进行分段,尽量避免造成大量数据重传,减小信息丢失对系统造成的影响。
⑷信息加密:
信息加密作用有3个:①对信息进行格式化,将字符转换成标准可视化字符串,以防传输过程中被截断。②对信息进行保密处理。③起到补充校验作用,如出现错误字符,会直接导致解密时出错或字符错位等现象,可以很容易通过验证数据格式来排除掉错误数据。
加密方式:对保密性要求不高的数据用Base64编码后生成可视化的纯ASCII的字符串进行传输;对安全性要求高的数据(如设置数据、认证数据等等)是用Easy.Compression.Library压缩加密后进行传输。
远程综合监管系统中应用示例:
保密性要求低的指令示例:
i1000=状态1=a,状态2=b
(1000号设备状态指令,其中i表示“状态”)
w1000=ErrorCode=5, StartTime=20120205012048,Color=255,Info=电压过低 (1000号设备告警指令,其中w表示“告警”)
保密性要求高的指令示例:
type=ChangeKey,user=admin,old=333,new=555,code=12345678
(更改密码)
1001=open,code=12345678 (设置数据,对1001号设备发送open指令进行开机)
⑸信息校验:采用UDP方式进行信息传输,容易出现差错,因此需要对整个信息加入校验位,采用CRC-16校验方式(校验的内容包括标识符、随机ID、序号和数据)。CRC(Cyclic Redundancy Check)中文名称为循环冗余校验,它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,对一个传送数据块进行校验,是一种高效的差错控制方法。它采用多项式编码方法,CRC-16多项式为x16+x15+x2+1,其对应校验二进制位列为1 1000 0000 0000 0101。多项式乘除法运算过程与普通代数乘除法相同,多项式的加减法运算以2为模,如同逻辑异或运算。
⑹信息的重复发送:
对于软硬件均正常工作情况下,偶尔出现错误的处理过程:正常接收后,接收方会给发送方返回一个确认命令字,发送方在规定时间(例如5秒)内收不到回复的正确命令字,则会重复发送规定的次数(例如3次)。 对于软件异常或断网等严重故障,一般会导致接收方接收不到信息。对于此类错误,采用由发送方定时的发送信息來抵消断网造成的信息损失现象。例如系统中的报警数据是每1分钟(考虑了远程传输的时延)重复发送一次,而状态数据则是每3分钟重复发送一次,冗余数据由接收方自行判定差异性进行适当抛弃处理。
⑺发送信息的超时检测机制:
远程综合监管系统采用服务端主动向客户端发送数据的方式进行数据传输。工作过程如下:首先客户端向服务端发送数据请求,此请求在规定时间(例如300秒)重复发送一次,而服务端会不停检测此标志,如果在规定时间(例如320秒)内收不到此标志,则服务端认为客户端断开,就停止发送数据以节省网络资源,避免出现拥塞。
6 特殊通信协议在综合监管系统中的应用
特殊通信协议在远程综合监管系统中的应用如图4所示。为了便于理解这个应用的实现,特详述一个监管中心远程修改分中心登录密码的应用过程如下:
⑴ 监管中心(客户端)主动发送登录用户名、密码(已用MD5加密后的信息)给分中心服务器,用Easy.Compression.Library 方式加密(使用code为空的方式)的认证加密串示例如下 user=admin,pass=21232f297a57a5a7438 94a0e4a801fc3,type=Client,udpport=8086
⑵ 分中心服务器对此加密串进行解密后,对登录用户名、密码进行认证。
所有认证信息都存在数据库中,软件搜索数据库中用户名对应的密码,然后与(1)中的pass进行比对,相同则认证通过,否则失败。
⑶通过认证后,认证服务器又为中心(客户端)随机生成一个解密码“13895678”并将其返回给中心(客户端)
⑷中心(客户端)收到这个解密码(13895678)后,随着修改登录密码的操作指令一起又发送给分中心服务器,其指令为type=ChangeKey,user=admin,old=333,new=555,code=13895678
(改变密码指令,其中code=13895678为解密码)
⑸分中心服务器收到这条信息后,确认其解密码与认证服务器里为其(监管中心)产生的解密码是相同的,就执行改变密码的指令;如果不同则直接丢弃这个Easy.Compression.Library 方式加密传输的信息。
7 结束语
从功能上看,此特殊通信协议属于传输层协议,但从网络体系结构的角度看,是建立在UDP上的应用层协议。其实质是在应用层进行适当的报文格式设计,实现对差错报文的检测、重传、超时检测机制,保证基于UDP的协议能实现可靠传输。这种方法与直接使用UDP协议相比会增加一些网络开销,但是此协议既克服了TCP连接机制的弱点,又排除了UDP无连接带来的隐患,保证了传输的稳定性和可靠性。实践证明,通过对特殊通信协议的应用,消除了固有的工作环境给远程综合监管网络系统运行带来的严重影响,大大提高了系统稳定性和可靠性,确保了系统的稳定有效工作。
参考文献
[1]Behrouz A. Forouzan, Firouz Mosharraf等. 计算机网络教程自顶向下方法 【美】[M]. 张建忠, 靳星等译. 北京:机械工业出版社, 2012.10
[2]孙飞显主编. TCP/IP网络编程技术与实例[M]. 北京:国防工业出版社, 2014.1
[3]谢希仁. 计算机网络(第6版) [M]. 北京: 电子工业出版社,2013.
[4]王达. 深入理解计算机网络[M]. 北京: 机械工业出版社,2013.
关键词:微波传输;远程综合监管系统;UDP;特殊通信协议
1 概述
文章分析了广播电视远程综合监管中心与全省范围的各地分中心之间,利用带宽有限的长距离微波作为传输媒介,网络运行不正常的原因,创造性地设计了一种特殊通信协议应用于此网络。此特殊协议是承载于UDP协议上,借鉴TCP思想设计而成,实现了网络通信的稳定、可靠,保证了远程综合监管系统的正常运行。
2 网络工作环境对远程传输稳定性的影响
远程综合监管中心与遍布全省各地的分中心(各广播电视传输发射台)之间利用微波无线接力通道作为远程传输媒介,容易受到外界环境(如微波传输衰落和复杂的环境电磁场干扰)影响,造成网络断路;由于资源有限,无线传输带宽一般较窄,传输视频等大量数据,不时造成短时间的网络断路,形成较为频繁的网络闪断;实际工作中,由于人为的操作因素,也会造成网络断路。以上这些因素交织在一起,严重影响网络的正常运行,必须找到一个行之有效的解决方案,在固有的工作环境下,确保远程综合监管系统能正常运行。
3 TCP和UDP在无线信道中传输存在的问题
TCP协议实现数据的无差错传输,是通过通信双方3次握手建立连接,4次握手拆除连接的方式实现,是以复杂的传输控制和较大的网络开销为代价的。将其用于带宽有限、受外界环境影响频繁的无线信道中传输,常出现网络无法正常工作的情况。究其产生的原因在于TCP协议的链接开销大(20个字节的固定头部),网络一旦出现断路,再进行重连时,其过多的重连会造成操作系统网络资源的过度占用,出现网络通讯溢出,进而无法建立新的连接线程;TCP可能多次重发一个分组,这个行为促使拥塞发生或者加重拥塞状况。两种情况皆会导致远程综合监管系统无法正常工作。
UDP协议是一种无连接协议,传输数据之前源端和终端不建立连接,具有开销小的优势,但是不具有差错控制和拥塞控制功能,是一种不可靠传输。在发送端,UDP传送数据的速度是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP 协议可以检测是否出错。当其检测到错误时,不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。当我们面对可靠性相對较差的无线传输通道时,UDP协议本身的特点必然造成信息的丢失,导致与使用TCP协议一样的结果——远程综合监管系统无法正常工作。
4 特殊通信协议设计
UDP(用户数据报)首部小(8字节),额外开销少,在带宽相对较小,常出现拥塞,常存在出错的网络中UDP没有创建所需的额外通信量可以看做是一个优势。TCP的流量控制和差错控制的思想也是有利于系统稳定工作的。于是进行折中考虑,在应用层设计了基于UDP的,加入标识符、多连接信息识别标记、分段信息顺序标签、信息加密系统、校验等数据段,并采取适当控制机制(信息的重复发送机制、超时监测机制)的特殊通信协议,实现了远程综合监管中心与各地分中心之间通信的可靠性,确保了监管系统的正常工作。
4.1 UDP(用户数据报)格式
UDP分组称为用户数据报(user datagram),有8字节的固定头部,其中含4个字段,每个字段由2字节(16位)组成。用户数据报格式请见图1所示。
4.2特殊通信协议格式
特殊通信协议格式中数据头、数据尾、标识符分别占用1个字节, 随机ID、序号和校验位各占用2个字节,其格式请见图2所示。
标识符:用来标识信息类别,区别信息用,可以随意定字符。
随机ID(多连接信息识别标记):标示此次信息的随机ID,一般由本机IP最后位加当前开机时间毫秒,然后取校验位的方式生成唯一的ID。ID实现是首先采用GUID(Globally Unique IDentifier)算法,接着对GUID算法生成的代码转换成十六进制,最后对此字串取CRC16 校验,此校验码作为我们的ID。
例如:
取某一时刻本机的GUID
fb0be97d-7642-4550-ab7a-3637dd4b8f3a
去掉间隔符变成长度为32的可视字串
fb0be97d76424550ab7a3637dd4b8f3a
B. 将上述字串转换成十六进制
66 62 30 62 65 39 37 64 37 36 34 32 34 35 35 30 61 62 37 61 33 36 33 37 64 64 34 62 38 66 33 61
C. 对以上字串进行CRC16校验取得校验码
45 AC
D. 将此校验码作为ID
序号(分段信息顺序标签):用来区别一个信息的多个段的序号,一般1K数据一个段,以防过长被截断。序号在实际使用中可以根据情况,灵活确定使用的字节数。
数据:对数据采用Base64编码或用Easy.Compression.Library加密后在无线通道中传输。
校验位:对②+③+④+⑤进行取校验,其中校验可以采用通用的方法(合补加一&CRC等),弥补UDP协议没有差错控制的不足。 数据尾:用“)”来标示此信息的结尾。
5 协议工作流程及原理
在明确了特殊通信协议格式的基础上,下面具体描述其工作流程(如图3所示)及原理。
工作原理详述如下:
⑴标识符:用来标识信息类别,区别信息用,可以随意定字符。例如,
设置标识符“i”表示“设备状态信息”;“w”表示“设备告警信息”
⑵多连接信息识别标记(随机ID):如果多个客户端同时向一个服务端发送数据,经常会造成各个数据段堆积在一起,因此需要对每个数据段加入唯一标识(每次开始传输即生成一个针对本次传输信息的唯一ID),以区分各种不同的进程所发的信息。
⑶分段信息顺序标签(序号):由于UDP通讯每次最多不到2K数据量(多余会被截断),传输前必须对长信息进行分段,因此对分段后的同一个信息强制加入序号标签,由接收端合成一个完整的信息段。本系统对数据分段采用的是以1K为标准进行分段,尽量避免造成大量数据重传,减小信息丢失对系统造成的影响。
⑷信息加密:
信息加密作用有3个:①对信息进行格式化,将字符转换成标准可视化字符串,以防传输过程中被截断。②对信息进行保密处理。③起到补充校验作用,如出现错误字符,会直接导致解密时出错或字符错位等现象,可以很容易通过验证数据格式来排除掉错误数据。
加密方式:对保密性要求不高的数据用Base64编码后生成可视化的纯ASCII的字符串进行传输;对安全性要求高的数据(如设置数据、认证数据等等)是用Easy.Compression.Library压缩加密后进行传输。
远程综合监管系统中应用示例:
保密性要求低的指令示例:
i1000=状态1=a,状态2=b
(1000号设备状态指令,其中i表示“状态”)
w1000=ErrorCode=5, StartTime=20120205012048,Color=255,Info=电压过低 (1000号设备告警指令,其中w表示“告警”)
保密性要求高的指令示例:
type=ChangeKey,user=admin,old=333,new=555,code=12345678
(更改密码)
1001=open,code=12345678 (设置数据,对1001号设备发送open指令进行开机)
⑸信息校验:采用UDP方式进行信息传输,容易出现差错,因此需要对整个信息加入校验位,采用CRC-16校验方式(校验的内容包括标识符、随机ID、序号和数据)。CRC(Cyclic Redundancy Check)中文名称为循环冗余校验,它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,对一个传送数据块进行校验,是一种高效的差错控制方法。它采用多项式编码方法,CRC-16多项式为x16+x15+x2+1,其对应校验二进制位列为1 1000 0000 0000 0101。多项式乘除法运算过程与普通代数乘除法相同,多项式的加减法运算以2为模,如同逻辑异或运算。
⑹信息的重复发送:
对于软硬件均正常工作情况下,偶尔出现错误的处理过程:正常接收后,接收方会给发送方返回一个确认命令字,发送方在规定时间(例如5秒)内收不到回复的正确命令字,则会重复发送规定的次数(例如3次)。 对于软件异常或断网等严重故障,一般会导致接收方接收不到信息。对于此类错误,采用由发送方定时的发送信息來抵消断网造成的信息损失现象。例如系统中的报警数据是每1分钟(考虑了远程传输的时延)重复发送一次,而状态数据则是每3分钟重复发送一次,冗余数据由接收方自行判定差异性进行适当抛弃处理。
⑺发送信息的超时检测机制:
远程综合监管系统采用服务端主动向客户端发送数据的方式进行数据传输。工作过程如下:首先客户端向服务端发送数据请求,此请求在规定时间(例如300秒)重复发送一次,而服务端会不停检测此标志,如果在规定时间(例如320秒)内收不到此标志,则服务端认为客户端断开,就停止发送数据以节省网络资源,避免出现拥塞。
6 特殊通信协议在综合监管系统中的应用
特殊通信协议在远程综合监管系统中的应用如图4所示。为了便于理解这个应用的实现,特详述一个监管中心远程修改分中心登录密码的应用过程如下:
⑴ 监管中心(客户端)主动发送登录用户名、密码(已用MD5加密后的信息)给分中心服务器,用Easy.Compression.Library 方式加密(使用code为空的方式)的认证加密串示例如下 user=admin,pass=21232f297a57a5a7438 94a0e4a801fc3,type=Client,udpport=8086
⑵ 分中心服务器对此加密串进行解密后,对登录用户名、密码进行认证。
所有认证信息都存在数据库中,软件搜索数据库中用户名对应的密码,然后与(1)中的pass进行比对,相同则认证通过,否则失败。
⑶通过认证后,认证服务器又为中心(客户端)随机生成一个解密码“13895678”并将其返回给中心(客户端)
⑷中心(客户端)收到这个解密码(13895678)后,随着修改登录密码的操作指令一起又发送给分中心服务器,其指令为type=ChangeKey,user=admin,old=333,new=555,code=13895678
(改变密码指令,其中code=13895678为解密码)
⑸分中心服务器收到这条信息后,确认其解密码与认证服务器里为其(监管中心)产生的解密码是相同的,就执行改变密码的指令;如果不同则直接丢弃这个Easy.Compression.Library 方式加密传输的信息。
7 结束语
从功能上看,此特殊通信协议属于传输层协议,但从网络体系结构的角度看,是建立在UDP上的应用层协议。其实质是在应用层进行适当的报文格式设计,实现对差错报文的检测、重传、超时检测机制,保证基于UDP的协议能实现可靠传输。这种方法与直接使用UDP协议相比会增加一些网络开销,但是此协议既克服了TCP连接机制的弱点,又排除了UDP无连接带来的隐患,保证了传输的稳定性和可靠性。实践证明,通过对特殊通信协议的应用,消除了固有的工作环境给远程综合监管网络系统运行带来的严重影响,大大提高了系统稳定性和可靠性,确保了系统的稳定有效工作。
参考文献
[1]Behrouz A. Forouzan, Firouz Mosharraf等. 计算机网络教程自顶向下方法 【美】[M]. 张建忠, 靳星等译. 北京:机械工业出版社, 2012.10
[2]孙飞显主编. TCP/IP网络编程技术与实例[M]. 北京:国防工业出版社, 2014.1
[3]谢希仁. 计算机网络(第6版) [M]. 北京: 电子工业出版社,2013.
[4]王达. 深入理解计算机网络[M]. 北京: 机械工业出版社,2013.