串口服务器内外网数据安全通信方法仿真
2022-08-22曹丽娜
李 娜,周 瑛,曹丽娜
(石家庄铁道大学四方学院,河北石家庄 051132)
1 引言
近年来信息化服务已经成为人们生活的重要组成部分,内外网间的多媒体数据信息交互成为了主流技术,内外网数据的安全通信是通信技术的关键。如何在完成内外网信息交互的同时实现稳定地连续不断地数据传输,且保证信息的隐私安全,已成为近年来研究的热点问题[1,2]。
为实现串口服务器内外网数据安全通信,赵冬青等人[3]通过设计数据通信卡提升数据安全通信性能,王焕强等人[4]利用微服务架构保障数据安全通信,以上研究均能在一定程度上解决内、外网串口服务器安全有效通信,但是前者工作繁杂,且严重浪费网络资源,后者需要重新配置部署内网服务器,增加相关资源及成本。
为改善上述传统方法的不足,本文提出利用WCF技术解决串口服务器内外网数据安全通信方法。
2 串口服务器内外网数据安全通信方法
2.1 WCF技术判别方法
每个串口服务器都会配置一个内网IP[5],以便内网用户使用。利用NET可获得一个方便外网用户使用的外网IP端口。用户根据环境通过选择使用内、外网通信路径,实现服务器端与客户端的数据安全通信[6,7]。用户在使用串口服务器进行数据通信服务时,网页要正确地区分内外网用户,并且能够找到正确安全的数据通信路径,是本文方法的重要内容。
WCF(Windows Communication Foundation)技术是集合了创建和运行分布式系统于一身的数据通信应用架构[8],可以实现Web服务,远程控制、消息传输等多种通信方式,其扩展通信技术可提供安全可靠的跨平台分布式可兼容服务。本文结合WCF技术解决串口服务器内外网数据安全通信问题,同时也可以处理串口服务器的兼容性问题。WCF可与多程序兼容的优势,因此本文方法可广泛应用。
2.1.1 方法原理
参照需求的格式将串口服务器的内外网IP地址和端口号以及内网的IP地址范围输入配置文件,建立的WCF服务,获得串口服务器配置文件中相应的IP地址和端口号,将其加工成内外网数据安全通信路径,与此同时,得到配置文件中的内网IP地址范围。用户通过Web网站在客户端发出数据通信请求,调动WCF服务,使服务端接收到通信请求,在内网IP地址范围内对照获得的用户IP地址,判别是否是内网。若是内网,则使用对应的通信路径连接,完成用户的数据安全通信需求。具体的方法流程见图1。
图1 数据通信方法流程图
2.1.2 实现过程
第一,先要获得配置文件中串口服务器的内、外网通信路径与内网IP地址范围。实现步骤为:
1)提取配置文件中服务器的内、外网IP地址与端口号,这一过程要通过在网站服务器建立WCF服务实现。
2)将上步提取的信息处理成内、外网通信地址。
3)提取配置文件里的内网地址范围。
第二,判别获得的用户IP是否是内网。
用户进行数据安全通信时,客户端与服务端完成互通信息。后台建立的WCF服务可以提取到信息属性,从而获得用户的IP地址。详细流程如下:
1)提取当前线程的执行上下文:
OperationContext context =
OperationContext. Current
2)提取上下文中输入信息的属性:
InquiryCharacteristic inquiryCharacteristic =
Context. IncomingInquiryCharacteristic
3)确保输出信息的客户端IP地址和端口号可以使用:
RemoteTerminalInquiryWealth terminalWealth = inquiryCharacteristic
[RemoteTerminalInquiryWealth. Name ] as RemoteTerminalInquiryWealth
4)提取输出信息的客户端IP地址:
string[ ] guestIP=
terminalWealth. Address;
5)将提取到的用户IP与内网IP范围比照,判别是否为内网:
String[ ] insideStart=
Option.Range. InnerABBRipEnd. Split(′.′);
String[ ] insideEnd=
Option.Range. InnerABBRipEnd. Split(′.′);
String[ ] guestIPs=guestIP. Split(′.′);
If (guestIPs[0]==
insidestart[0]&& guestIPs[1]==insidestart[1] && guestIPs[2]==insidestart[2])
{
If(int.Analysis(guestIPs[3])>
Int.Analysis(insideStart[3])
&&int.Analysis(guestIPs[3])<
Int.Analysis(insideEnd[3])
Flsg=true;
}
Else
Flag=false
第三,客户端根据程序结果给出相应的通信路径,内、外网分别使用相应的通信路径,链接到串口服务器中。外网用户在进行数据通信时,需要跨过内网和外网和安全防火墙,客户端不能直接匹配服务器端的配置文件,所以需要WCF技术与串口服务器完成通信,来实现内外网的数据安全通信。而判断是否为内外网是在后台运行的,只要客户端正常打开网页即可。
2.2 服务端与客户端传输速率控制
服务端的传输是以包传输为主的、非连续异步传输,即在传输过程中有一定的延时。由于传输数据通信被分解为多个数据包,达到客户端的时间存在一定差异。为保证内外网数据通信可以持续输出,利用缓冲系统抑制延迟和抖动造成的影响,保证通信过程中不会出现网络卡顿,数据丢失等影响安全性能的问题。
2.2.1 数据传输速率控制方法
为保障数据传输的通畅安全,本文研究重点是缓冲系统的监管,确保不会出现“溢出”与“下溢”的情况。缓冲系统监管期间,分别设置Wh、Wn、Wl3个水位线。假设缓冲区实际量为A,时间段[ti,ti+1]后,缓冲区水位从ai变成ai+1,则有Δa=ai+1-ai。假设Rp、Rc分别代表生产速率和消费速率,则有式(1)
ai+1-ai=(Rp-Rc)×(ti+1-ti)
(1)
下面3个因素,是影响客户端缓冲区Wh、Wl值的选择:
1)Dmaxf代表反馈信息单元中的最大网络延迟,即反馈延迟。
2)用Δtcheck表示不间断两次水位检查时间间隔,即检查水位时间。
3)Dmax代表数据传输单元的最大网络延迟,即网络延迟。
若Rc>Rp,则表示缓冲区水位降低,需提前警示以确保缓冲区水位不能为0。结合3个延迟时间,从式(1)可得ai+1=0,ai=(Rc-Rp)×(Dmaxf+Δtcheck+Dmax),即:
Wl≥(Rc-Rp)×(Dmaxf+Δtcheck+Dmax)
(2)
若Rp>Rc,则表示缓冲区水位上升,需提前警示以确保缓冲区水位不能为A。结合3个延迟时间,从式(1)可得ai+1=A,ai=A-(Rp-Rc)×(Dmaxf+Δtcheck+Dmax),即
Wh≤A-(Rp-Rc)×(Dmaxf+Δtcheck+Dmax)
(3)
设定的缓冲区警界线,可对缓冲区变化每隔[ti,ti+1]时间段进行一次检查,反馈信息调整传送速率,确保数据安全传输的连续性。
参考式(1)可得,ti+1时间段内,可用式(4)表示生产速率与消耗速率的变化
(4)
由于反馈信息的调整也需要占用网络带宽,所以只要缓冲区水位处于[Wl,Wh]范围内,就不会造成网络堵塞和较大开销。此外,缓冲区水位大于Wh、ΔR<0和缓冲区水位小于Wl、ΔR>0时,这两种情况不需要调整。
在调整传输速率时,要综合考虑客户端接收能力,网络堵塞会导致传输效率低甚至传输中断。因此及时发现问题尽早调整,才会避免数据包在传输过程中损失。针对这个问题,提出一种速率控制优化方法。
2.2.2 数据传输速率优化方法
利用包丢失率LR和延迟抖动J两个参数来计算网络堵塞情况。LR计算公式如下
LRnew=α×LRold+(1-α)×LRnet
(5)
其中,新数据包丢失率为LRnew,上一次检测包丢失率为LRold(从LRold=0开始计算),实测丢包率是LRnet,此次测得的不可信程度α(0≤α≤1)。
延时抖动值用式(6)表示
Jnew=β×Jold+(1-β)×Jnet
(6)
其中,新得延迟抖动为Jnew,上次检测到延迟抖动为Jold(从Jold=0开始计算),实时延迟抖动为Jnet,此次测得不可信程度β(0≤β≤1)。选取适当的α和β值,进行加权处理,即可指定操作网络状态分析,见图2。
图2 网络状态分析模块
利用数据通信过程的包丢失率和延迟抖动,便可得知网络所处状态:
1)数据传输速度低,包丢失率高,即堵塞状态,串口服务器端需要降低传输速率保证释放网络宽带,直到恢复正常。
2)传输状态良好,包丢失率低,即正常状态,串口服务器端保持正常状态。
3)包丢失率非常低甚至不存在丢失,即欠载状态,此时要提高传输速率,保证充分利用宽带。设置参数LRc表示堵塞时包丢失率,可用式(7)计算网络状态
(7)
延迟抖动取决于数据传输路径的通信情况,但当延迟抖动迅速变化时,会被看作是网络堵塞征兆
If(Jnew>×Jold)congestion
(8)
3 仿真分析
3.1 仿真环境
设置36个串口服务器内外网集群节点,通过每9个节点为一个机架的4个机架,通过连接4个节点的集群规模,建立串口服务器内外网仿真环境。
3. 2 仿真
数据通信过程中,由于作为中间数据Shuffle所占比例高,数据通信的优化效果受其影响很大,为此以Shuffle中间数据为例,在仿真中,分别对每个数据传输的数据规模和集群规模进行对比,分析数据和集群的扩展性在数据通信中的影响。在不同的集群规模下进行串口服务器的Shuffle中间数据传输,随着节点数量的增加,数据传输效果结果见图3、图4。
图3 数据规模的扩展对Shuffle比例影响
图4 集群规模的扩展对Shuffle比例影响
结合图3、图4可以看出,随着数据规模和集群规模的扩大,Shuffle比例都有不同程度地减小。当数据规模达到32GB时,Shuffle比例最大,此时的本文方法优化后的数据传输效果优势不显著,但数据规模增加时,集群规模也在增长,优化前后的Shuffle比例均逐渐减小,且本文方法优化后的数据传输减小幅度明显,说明使用本文方法优化后的方法进行数据传输对Shuffle比例的影响更大,可最大程度缩小中间数据Shuffle所占比例,使数据安全通信效果更理想。
数据通信传输速率的控制是根据检测到的生产速率与消费速率差ΔR变化,选择不同的调整措施实现的,因此采用随机算法采集5个时间段内检测到ΔR变化,通过仿真,对比本文方法和文献[3]方法下的数据通信响应时间与执行时间(计算时间),同时利用方差表示方法的稳定性,具体结果见表1。
表1 通信平均响应与执行时间对比
表1结果显示,本文方法速率控制优化后,在进行数据安全通信时,平均响应时间与计算时间都明显优于文献方法。平均响应时间降低了4%~9%左右。从方差的数据来看,优化后的数据通信性能更趋于稳定,更具计算可靠性和实用性。
4 结论
本文研究串口服务器内外网数据通信方法仿真,该方法利用WCF技术完成数据安全通信。该方法可解决网络拥堵造成的数据延迟损失、数据传输过程中卡顿、信息细节不清晰等问题。可以在各个端点完成实时监控,以减少数据包丢失的概率,缩减延迟时间,防止延迟抖动造成网络数据堵塞的现象。因此,本文方法所提的速率控制方法更适合现下网络宽带变化,将网络堵塞发生的几率最小化。对于当下的网络时代具有非常大的应用意义。