李 娜,周 瑛,曹麗娜
(石家莊鐵道大學(xué)四方學(xué)院,河北石家莊 051132)
近年來信息化服務(wù)已經(jīng)成為人們生活的重要組成部分,內(nèi)外網(wǎng)間的多媒體數(shù)據(jù)信息交互成為了主流技術(shù),內(nèi)外網(wǎng)數(shù)據(jù)的安全通信是通信技術(shù)的關(guān)鍵。如何在完成內(nèi)外網(wǎng)信息交互的同時(shí)實(shí)現(xiàn)穩(wěn)定地連續(xù)不斷地?cái)?shù)據(jù)傳輸,且保證信息的隱私安全,已成為近年來研究的熱點(diǎn)問題[1,2]。
為實(shí)現(xiàn)串口服務(wù)器內(nèi)外網(wǎng)數(shù)據(jù)安全通信,趙冬青等人[3]通過設(shè)計(jì)數(shù)據(jù)通信卡提升數(shù)據(jù)安全通信性能,王煥強(qiáng)等人[4]利用微服務(wù)架構(gòu)保障數(shù)據(jù)安全通信,以上研究均能在一定程度上解決內(nèi)、外網(wǎng)串口服務(wù)器安全有效通信,但是前者工作繁雜,且嚴(yán)重浪費(fèi)網(wǎng)絡(luò)資源,后者需要重新配置部署內(nèi)網(wǎng)服務(wù)器,增加相關(guān)資源及成本。
為改善上述傳統(tǒng)方法的不足,本文提出利用WCF技術(shù)解決串口服務(wù)器內(nèi)外網(wǎng)數(shù)據(jù)安全通信方法。
每個串口服務(wù)器都會配置一個內(nèi)網(wǎng)IP[5],以便內(nèi)網(wǎng)用戶使用。利用NET可獲得一個方便外網(wǎng)用戶使用的外網(wǎng)IP端口。用戶根據(jù)環(huán)境通過選擇使用內(nèi)、外網(wǎng)通信路徑,實(shí)現(xiàn)服務(wù)器端與客戶端的數(shù)據(jù)安全通信[6,7]。用戶在使用串口服務(wù)器進(jìn)行數(shù)據(jù)通信服務(wù)時(shí),網(wǎng)頁要正確地區(qū)分內(nèi)外網(wǎng)用戶,并且能夠找到正確安全的數(shù)據(jù)通信路徑,是本文方法的重要內(nèi)容。
WCF(Windows Communication Foundation)技術(shù)是集合了創(chuàng)建和運(yùn)行分布式系統(tǒng)于一身的數(shù)據(jù)通信應(yīng)用架構(gòu)[8],可以實(shí)現(xiàn)Web服務(wù),遠(yuǎn)程控制、消息傳輸?shù)榷喾N通信方式,其擴(kuò)展通信技術(shù)可提供安全可靠的跨平臺分布式可兼容服務(wù)。本文結(jié)合WCF技術(shù)解決串口服務(wù)器內(nèi)外網(wǎng)數(shù)據(jù)安全通信問題,同時(shí)也可以處理串口服務(wù)器的兼容性問題。WCF可與多程序兼容的優(yōu)勢,因此本文方法可廣泛應(yīng)用。
2.1.1 方法原理
參照需求的格式將串口服務(wù)器的內(nèi)外網(wǎng)IP地址和端口號以及內(nèi)網(wǎng)的IP地址范圍輸入配置文件,建立的WCF服務(wù),獲得串口服務(wù)器配置文件中相應(yīng)的IP地址和端口號,將其加工成內(nèi)外網(wǎng)數(shù)據(jù)安全通信路徑,與此同時(shí),得到配置文件中的內(nèi)網(wǎng)IP地址范圍。用戶通過Web網(wǎng)站在客戶端發(fā)出數(shù)據(jù)通信請求,調(diào)動WCF服務(wù),使服務(wù)端接收到通信請求,在內(nèi)網(wǎng)IP地址范圍內(nèi)對照獲得的用戶IP地址,判別是否是內(nèi)網(wǎng)。若是內(nèi)網(wǎng),則使用對應(yīng)的通信路徑連接,完成用戶的數(shù)據(jù)安全通信需求。具體的方法流程見圖1。

圖1 數(shù)據(jù)通信方法流程圖
2.1.2 實(shí)現(xiàn)過程
第一,先要獲得配置文件中串口服務(wù)器的內(nèi)、外網(wǎng)通信路徑與內(nèi)網(wǎng)IP地址范圍。實(shí)現(xiàn)步驟為:
1)提取配置文件中服務(wù)器的內(nèi)、外網(wǎng)IP地址與端口號,這一過程要通過在網(wǎng)站服務(wù)器建立WCF服務(wù)實(shí)現(xiàn)。
2)將上步提取的信息處理成內(nèi)、外網(wǎng)通信地址。
3)提取配置文件里的內(nèi)網(wǎng)地址范圍。
第二,判別獲得的用戶IP是否是內(nèi)網(wǎng)。
用戶進(jìn)行數(shù)據(jù)安全通信時(shí),客戶端與服務(wù)端完成互通信息。后臺建立的WCF服務(wù)可以提取到信息屬性,從而獲得用戶的IP地址。詳細(xì)流程如下:
1)提取當(dāng)前線程的執(zhí)行上下文:
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與內(nèi)網(wǎng)IP范圍比照,判別是否為內(nèi)網(wǎng):
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
第三,客戶端根據(jù)程序結(jié)果給出相應(yīng)的通信路徑,內(nèi)、外網(wǎng)分別使用相應(yīng)的通信路徑,鏈接到串口服務(wù)器中。外網(wǎng)用戶在進(jìn)行數(shù)據(jù)通信時(shí),需要跨過內(nèi)網(wǎng)和外網(wǎng)和安全防火墻,客戶端不能直接匹配服務(wù)器端的配置文件,所以需要WCF技術(shù)與串口服務(wù)器完成通信,來實(shí)現(xiàn)內(nèi)外網(wǎng)的數(shù)據(jù)安全通信。而判斷是否為內(nèi)外網(wǎng)是在后臺運(yùn)行的,只要客戶端正常打開網(wǎng)頁即可。
服務(wù)端的傳輸是以包傳輸為主的、非連續(xù)異步傳輸,即在傳輸過程中有一定的延時(shí)。由于傳輸數(shù)據(jù)通信被分解為多個數(shù)據(jù)包,達(dá)到客戶端的時(shí)間存在一定差異。為保證內(nèi)外網(wǎng)數(shù)據(jù)通信可以持續(xù)輸出,利用緩沖系統(tǒng)抑制延遲和抖動造成的影響,保證通信過程中不會出現(xiàn)網(wǎng)絡(luò)卡頓,數(shù)據(jù)丟失等影響安全性能的問題。
2.2.1 數(shù)據(jù)傳輸速率控制方法
為保障數(shù)據(jù)傳輸?shù)耐〞嘲踩疚难芯恐攸c(diǎn)是緩沖系統(tǒng)的監(jiān)管,確保不會出現(xiàn)“溢出”與“下溢”的情況。緩沖系統(tǒng)監(jiān)管期間,分別設(shè)置Wh、Wn、Wl3個水位線。假設(shè)緩沖區(qū)實(shí)際量為A,時(shí)間段[ti,ti+1]后,緩沖區(qū)水位從ai變成ai+1,則有Δa=ai+1-ai。假設(shè)Rp、Rc分別代表生產(chǎn)速率和消費(fèi)速率,則有式(1)
ai+1-ai=(Rp-Rc)×(ti+1-ti)
(1)
下面3個因素,是影響客戶端緩沖區(qū)Wh、Wl值的選擇:
1)Dmaxf代表反饋信息單元中的最大網(wǎng)絡(luò)延遲,即反饋延遲。
2)用Δtcheck表示不間斷兩次水位檢查時(shí)間間隔,即檢查水位時(shí)間。
3)Dmax代表數(shù)據(jù)傳輸單元的最大網(wǎng)絡(luò)延遲,即網(wǎng)絡(luò)延遲。
若Rc>Rp,則表示緩沖區(qū)水位降低,需提前警示以確保緩沖區(qū)水位不能為0。結(jié)合3個延遲時(shí)間,從式(1)可得ai+1=0,ai=(Rc-Rp)×(Dmaxf+Δtcheck+Dmax),即:
Wl≥(Rc-Rp)×(Dmaxf+Δtcheck+Dmax)
(2)
若Rp>Rc,則表示緩沖區(qū)水位上升,需提前警示以確保緩沖區(qū)水位不能為A。結(jié)合3個延遲時(shí)間,從式(1)可得ai+1=A,ai=A-(Rp-Rc)×(Dmaxf+Δtcheck+Dmax),即
Wh≤A-(Rp-Rc)×(Dmaxf+Δtcheck+Dmax)
(3)
設(shè)定的緩沖區(qū)警界線,可對緩沖區(qū)變化每隔[ti,ti+1]時(shí)間段進(jìn)行一次檢查,反饋信息調(diào)整傳送速率,確保數(shù)據(jù)安全傳輸?shù)倪B續(xù)性。
參考式(1)可得,ti+1時(shí)間段內(nèi),可用式(4)表示生產(chǎn)速率與消耗速率的變化

(4)

由于反饋信息的調(diào)整也需要占用網(wǎng)絡(luò)帶寬,所以只要緩沖區(qū)水位處于[Wl,Wh]范圍內(nèi),就不會造成網(wǎng)絡(luò)堵塞和較大開銷。此外,緩沖區(qū)水位大于Wh、ΔR<0和緩沖區(qū)水位小于Wl、ΔR>0時(shí),這兩種情況不需要調(diào)整。

在調(diào)整傳輸速率時(shí),要綜合考慮客戶端接收能力,網(wǎng)絡(luò)堵塞會導(dǎo)致傳輸效率低甚至傳輸中斷。因此及時(shí)發(fā)現(xiàn)問題盡早調(diào)整,才會避免數(shù)據(jù)包在傳輸過程中損失。針對這個問題,提出一種速率控制優(yōu)化方法。
2.2.2 數(shù)據(jù)傳輸速率優(yōu)化方法
利用包丟失率LR和延遲抖動J兩個參數(shù)來計(jì)算網(wǎng)絡(luò)堵塞情況。LR計(jì)算公式如下
LRnew=α×LRold+(1-α)×LRnet
(5)
其中,新數(shù)據(jù)包丟失率為LRnew,上一次檢測包丟失率為LRold(從LRold=0開始計(jì)算),實(shí)測丟包率是LRnet,此次測得的不可信程度α(0≤α≤1)。
延時(shí)抖動值用式(6)表示
Jnew=β×Jold+(1-β)×Jnet
(6)
其中,新得延遲抖動為Jnew,上次檢測到延遲抖動為Jold(從Jold=0開始計(jì)算),實(shí)時(shí)延遲抖動為Jnet,此次測得不可信程度β(0≤β≤1)。選取適當(dāng)?shù)摩梁挺轮担M(jìn)行加權(quán)處理,即可指定操作網(wǎng)絡(luò)狀態(tài)分析,見圖2。

圖2 網(wǎng)絡(luò)狀態(tài)分析模塊
利用數(shù)據(jù)通信過程的包丟失率和延遲抖動,便可得知網(wǎng)絡(luò)所處狀態(tài):
1)數(shù)據(jù)傳輸速度低,包丟失率高,即堵塞狀態(tài),串口服務(wù)器端需要降低傳輸速率保證釋放網(wǎng)絡(luò)寬帶,直到恢復(fù)正常。
2)傳輸狀態(tài)良好,包丟失率低,即正常狀態(tài),串口服務(wù)器端保持正常狀態(tài)。
3)包丟失率非常低甚至不存在丟失,即欠載狀態(tài),此時(shí)要提高傳輸速率,保證充分利用寬帶。設(shè)置參數(shù)LRc表示堵塞時(shí)包丟失率,可用式(7)計(jì)算網(wǎng)絡(luò)狀態(tài)

(7)
延遲抖動取決于數(shù)據(jù)傳輸路徑的通信情況,但當(dāng)延遲抖動迅速變化時(shí),會被看作是網(wǎng)絡(luò)堵塞征兆
If(Jnew>×Jold)congestion
(8)

設(shè)置36個串口服務(wù)器內(nèi)外網(wǎng)集群節(jié)點(diǎn),通過每9個節(jié)點(diǎn)為一個機(jī)架的4個機(jī)架,通過連接4個節(jié)點(diǎn)的集群規(guī)模,建立串口服務(wù)器內(nèi)外網(wǎng)仿真環(huán)境。
數(shù)據(jù)通信過程中,由于作為中間數(shù)據(jù)Shuffle所占比例高,數(shù)據(jù)通信的優(yōu)化效果受其影響很大,為此以Shuffle中間數(shù)據(jù)為例,在仿真中,分別對每個數(shù)據(jù)傳輸?shù)臄?shù)據(jù)規(guī)模和集群規(guī)模進(jìn)行對比,分析數(shù)據(jù)和集群的擴(kuò)展性在數(shù)據(jù)通信中的影響。在不同的集群規(guī)模下進(jìn)行串口服務(wù)器的Shuffle中間數(shù)據(jù)傳輸,隨著節(jié)點(diǎn)數(shù)量的增加,數(shù)據(jù)傳輸效果結(jié)果見圖3、圖4。

圖3 數(shù)據(jù)規(guī)模的擴(kuò)展對Shuffle比例影響

圖4 集群規(guī)模的擴(kuò)展對Shuffle比例影響
結(jié)合圖3、圖4可以看出,隨著數(shù)據(jù)規(guī)模和集群規(guī)模的擴(kuò)大,Shuffle比例都有不同程度地減小。當(dāng)數(shù)據(jù)規(guī)模達(dá)到32GB時(shí),Shuffle比例最大,此時(shí)的本文方法優(yōu)化后的數(shù)據(jù)傳輸效果優(yōu)勢不顯著,但數(shù)據(jù)規(guī)模增加時(shí),集群規(guī)模也在增長,優(yōu)化前后的Shuffle比例均逐漸減小,且本文方法優(yōu)化后的數(shù)據(jù)傳輸減小幅度明顯,說明使用本文方法優(yōu)化后的方法進(jìn)行數(shù)據(jù)傳輸對Shuffle比例的影響更大,可最大程度縮小中間數(shù)據(jù)Shuffle所占比例,使數(shù)據(jù)安全通信效果更理想。
數(shù)據(jù)通信傳輸速率的控制是根據(jù)檢測到的生產(chǎn)速率與消費(fèi)速率差ΔR變化,選擇不同的調(diào)整措施實(shí)現(xiàn)的,因此采用隨機(jī)算法采集5個時(shí)間段內(nèi)檢測到ΔR變化,通過仿真,對比本文方法和文獻(xiàn)[3]方法下的數(shù)據(jù)通信響應(yīng)時(shí)間與執(zhí)行時(shí)間(計(jì)算時(shí)間),同時(shí)利用方差表示方法的穩(wěn)定性,具體結(jié)果見表1。

表1 通信平均響應(yīng)與執(zhí)行時(shí)間對比
表1結(jié)果顯示,本文方法速率控制優(yōu)化后,在進(jìn)行數(shù)據(jù)安全通信時(shí),平均響應(yīng)時(shí)間與計(jì)算時(shí)間都明顯優(yōu)于文獻(xiàn)方法。平均響應(yīng)時(shí)間降低了4%~9%左右。從方差的數(shù)據(jù)來看,優(yōu)化后的數(shù)據(jù)通信性能更趨于穩(wěn)定,更具計(jì)算可靠性和實(shí)用性。
本文研究串口服務(wù)器內(nèi)外網(wǎng)數(shù)據(jù)通信方法仿真,該方法利用WCF技術(shù)完成數(shù)據(jù)安全通信。該方法可解決網(wǎng)絡(luò)擁堵造成的數(shù)據(jù)延遲損失、數(shù)據(jù)傳輸過程中卡頓、信息細(xì)節(jié)不清晰等問題。可以在各個端點(diǎn)完成實(shí)時(shí)監(jiān)控,以減少數(shù)據(jù)包丟失的概率,縮減延遲時(shí)間,防止延遲抖動造成網(wǎng)絡(luò)數(shù)據(jù)堵塞的現(xiàn)象。因此,本文方法所提的速率控制方法更適合現(xiàn)下網(wǎng)絡(luò)寬帶變化,將網(wǎng)絡(luò)堵塞發(fā)生的幾率最小化。對于當(dāng)下的網(wǎng)絡(luò)時(shí)代具有非常大的應(yīng)用意義。