李 娜,周 瑛,曹麗娜
(石家莊鐵道大學四方學院,河北石家莊 051132)
近年來信息化服務已經成為人們生活的重要組成部分,內外網間的多媒體數據信息交互成為了主流技術,內外網數據的安全通信是通信技術的關鍵。如何在完成內外網信息交互的同時實現穩(wěn)定地連續(xù)不斷地數據傳輸,且保證信息的隱私安全,已成為近年來研究的熱點問題[1,2]。
為實現串口服務器內外網數據安全通信,趙冬青等人[3]通過設計數據通信卡提升數據安全通信性能,王煥強等人[4]利用微服務架構保障數據安全通信,以上研究均能在一定程度上解決內、外網串口服務器安全有效通信,但是前者工作繁雜,且嚴重浪費網絡資源,后者需要重新配置部署內網服務器,增加相關資源及成本。
為改善上述傳統(tǒng)方法的不足,本文提出利用WCF技術解決串口服務器內外網數據安全通信方法。
每個串口服務器都會配置一個內網IP[5],以便內網用戶使用。利用NET可獲得一個方便外網用戶使用的外網IP端口。用戶根據環(huán)境通過選擇使用內、外網通信路徑,實現服務器端與客戶端的數據安全通信[6,7]。用戶在使用串口服務器進行數據通信服務時,網頁要正確地區(qū)分內外網用戶,并且能夠找到正確安全的數據通信路徑,是本文方法的重要內容。
WCF(Windows Communication Foundation)技術是集合了創(chuàng)建和運行分布式系統(tǒng)于一身的數據通信應用架構[8],可以實現Web服務,遠程控制、消息傳輸等多種通信方式,其擴展通信技術可提供安全可靠的跨平臺分布式可兼容服務。本文結合WCF技術解決串口服務器內外網數據安全通信問題,同時也可以處理串口服務器的兼容性問題。WCF可與多程序兼容的優(yōu)勢,因此本文方法可廣泛應用。
2.1.1 方法原理
參照需求的格式將串口服務器的內外網IP地址和端口號以及內網的IP地址范圍輸入配置文件,建立的WCF服務,獲得串口服務器配置文件中相應的IP地址和端口號,將其加工成內外網數據安全通信路徑,與此同時,得到配置文件中的內網IP地址范圍。用戶通過Web網站在客戶端發(fā)出數據通信請求,調動WCF服務,使服務端接收到通信請求,在內網IP地址范圍內對照獲得的用戶IP地址,判別是否是內網。若是內網,則使用對應的通信路徑連接,完成用戶的數據安全通信需求。具體的方法流程見圖1。
圖1 數據通信方法流程圖
2.1.2 實現過程
第一,先要獲得配置文件中串口服務器的內、外網通信路徑與內網IP地址范圍。實現步驟為:
1)提取配置文件中服務器的內、外網IP地址與端口號,這一過程要通過在網站服務器建立WCF服務實現。
2)將上步提取的信息處理成內、外網通信地址。
3)提取配置文件里的內網地址范圍。
第二,判別獲得的用戶IP是否是內網。
用戶進行數據安全通信時,客戶端與服務端完成互通信息。后臺建立的WCF服務可以提取到信息屬性,從而獲得用戶的IP地址。詳細流程如下:
1)提取當前線程的執(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與內網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技術與串口服務器完成通信,來實現內外網的數據安全通信。而判斷是否為內外網是在后臺運行的,只要客戶端正常打開網頁即可。
服務端的傳輸是以包傳輸為主的、非連續(xù)異步傳輸,即在傳輸過程中有一定的延時。由于傳輸數據通信被分解為多個數據包,達到客戶端的時間存在一定差異。為保證內外網數據通信可以持續(xù)輸出,利用緩沖系統(tǒng)抑制延遲和抖動造成的影響,保證通信過程中不會出現網絡卡頓,數據丟失等影響安全性能的問題。
2.2.1 數據傳輸速率控制方法
為保障數據傳輸的通暢安全,本文研究重點是緩沖系統(tǒng)的監(jiān)管,確保不會出現“溢出”與“下溢”的情況。緩沖系統(tǒng)監(jiān)管期間,分別設置Wh、Wn、Wl3個水位線。假設緩沖區(qū)實際量為A,時間段[ti,ti+1]后,緩沖區(qū)水位從ai變成ai+1,則有Δa=ai+1-ai。假設Rp、Rc分別代表生產速率和消費速率,則有式(1)
ai+1-ai=(Rp-Rc)×(ti+1-ti)
(1)
下面3個因素,是影響客戶端緩沖區(qū)Wh、Wl值的選擇:
1)Dmaxf代表反饋信息單元中的最大網絡延遲,即反饋延遲。
2)用Δtcheck表示不間斷兩次水位檢查時間間隔,即檢查水位時間。
3)Dmax代表數據傳輸單元的最大網絡延遲,即網絡延遲。
若Rc>Rp,則表示緩沖區(qū)水位降低,需提前警示以確保緩沖區(qū)水位不能為0。結合3個延遲時間,從式(1)可得ai+1=0,ai=(Rc-Rp)×(Dmaxf+Δtcheck+Dmax),即:
Wl≥(Rc-Rp)×(Dmaxf+Δtcheck+Dmax)
(2)
若Rp>Rc,則表示緩沖區(qū)水位上升,需提前警示以確保緩沖區(qū)水位不能為A。結合3個延遲時間,從式(1)可得ai+1=A,ai=A-(Rp-Rc)×(Dmaxf+Δtcheck+Dmax),即
Wh≤A-(Rp-Rc)×(Dmaxf+Δtcheck+Dmax)
(3)
設定的緩沖區(qū)警界線,可對緩沖區(qū)變化每隔[ti,ti+1]時間段進行一次檢查,反饋信息調整傳送速率,確保數據安全傳輸的連續(xù)性。
參考式(1)可得,ti+1時間段內,可用式(4)表示生產速率與消耗速率的變化
(4)
由于反饋信息的調整也需要占用網絡帶寬,所以只要緩沖區(qū)水位處于[Wl,Wh]范圍內,就不會造成網絡堵塞和較大開銷。此外,緩沖區(qū)水位大于Wh、ΔR<0和緩沖區(qū)水位小于Wl、ΔR>0時,這兩種情況不需要調整。
在調整傳輸速率時,要綜合考慮客戶端接收能力,網絡堵塞會導致傳輸效率低甚至傳輸中斷。因此及時發(fā)現問題盡早調整,才會避免數據包在傳輸過程中損失。針對這個問題,提出一種速率控制優(yōu)化方法。
2.2.2 數據傳輸速率優(yōu)化方法
利用包丟失率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)。選取適當的α和β值,進行加權處理,即可指定操作網絡狀態(tài)分析,見圖2。
圖2 網絡狀態(tài)分析模塊
利用數據通信過程的包丟失率和延遲抖動,便可得知網絡所處狀態(tài):
1)數據傳輸速度低,包丟失率高,即堵塞狀態(tài),串口服務器端需要降低傳輸速率保證釋放網絡寬帶,直到恢復正常。
2)傳輸狀態(tài)良好,包丟失率低,即正常狀態(tài),串口服務器端保持正常狀態(tài)。
3)包丟失率非常低甚至不存在丟失,即欠載狀態(tài),此時要提高傳輸速率,保證充分利用寬帶。設置參數LRc表示堵塞時包丟失率,可用式(7)計算網絡狀態(tài)
(7)
延遲抖動取決于數據傳輸路徑的通信情況,但當延遲抖動迅速變化時,會被看作是網絡堵塞征兆
If(Jnew>×Jold)congestion
(8)
設置36個串口服務器內外網集群節(jié)點,通過每9個節(jié)點為一個機架的4個機架,通過連接4個節(jié)點的集群規(guī)模,建立串口服務器內外網仿真環(huán)境。
數據通信過程中,由于作為中間數據Shuffle所占比例高,數據通信的優(yōu)化效果受其影響很大,為此以Shuffle中間數據為例,在仿真中,分別對每個數據傳輸的數據規(guī)模和集群規(guī)模進行對比,分析數據和集群的擴展性在數據通信中的影響。在不同的集群規(guī)模下進行串口服務器的Shuffle中間數據傳輸,隨著節(jié)點數量的增加,數據傳輸效果結果見圖3、圖4。
圖3 數據規(guī)模的擴展對Shuffle比例影響
圖4 集群規(guī)模的擴展對Shuffle比例影響
結合圖3、圖4可以看出,隨著數據規(guī)模和集群規(guī)模的擴大,Shuffle比例都有不同程度地減小。當數據規(guī)模達到32GB時,Shuffle比例最大,此時的本文方法優(yōu)化后的數據傳輸效果優(yōu)勢不顯著,但數據規(guī)模增加時,集群規(guī)模也在增長,優(yōu)化前后的Shuffle比例均逐漸減小,且本文方法優(yōu)化后的數據傳輸減小幅度明顯,說明使用本文方法優(yōu)化后的方法進行數據傳輸對Shuffle比例的影響更大,可最大程度縮小中間數據Shuffle所占比例,使數據安全通信效果更理想。
數據通信傳輸速率的控制是根據檢測到的生產速率與消費速率差ΔR變化,選擇不同的調整措施實現的,因此采用隨機算法采集5個時間段內檢測到ΔR變化,通過仿真,對比本文方法和文獻[3]方法下的數據通信響應時間與執(zhí)行時間(計算時間),同時利用方差表示方法的穩(wěn)定性,具體結果見表1。
表1 通信平均響應與執(zhí)行時間對比
表1結果顯示,本文方法速率控制優(yōu)化后,在進行數據安全通信時,平均響應時間與計算時間都明顯優(yōu)于文獻方法。平均響應時間降低了4%~9%左右。從方差的數據來看,優(yōu)化后的數據通信性能更趨于穩(wěn)定,更具計算可靠性和實用性。
本文研究串口服務器內外網數據通信方法仿真,該方法利用WCF技術完成數據安全通信。該方法可解決網絡擁堵造成的數據延遲損失、數據傳輸過程中卡頓、信息細節(jié)不清晰等問題??梢栽诟鱾€端點完成實時監(jiān)控,以減少數據包丟失的概率,縮減延遲時間,防止延遲抖動造成網絡數據堵塞的現象。因此,本文方法所提的速率控制方法更適合現下網絡寬帶變化,將網絡堵塞發(fā)生的幾率最小化。對于當下的網絡時代具有非常大的應用意義。