賈 俊
(晉中信息學院 山西 太谷 030800)
隨著當前無線網(wǎng)絡技術的快速發(fā)展,大量的數(shù)據(jù)和信息開始通過采取計算機無線網(wǎng)絡通信的方式進行傳輸,特別是現(xiàn)階段廣泛應用和快速發(fā)展的智能手機,極大地提升了人們對于無線網(wǎng)絡性能的要求。同時當前多數(shù)無線網(wǎng)絡應用均要求相關傳輸過程具有更強的傳輸可靠性和低延時性,但需要了解的是,現(xiàn)階段的無線資源整體仍然較為有限,這種情況下要實現(xiàn)對新技術的開發(fā)和創(chuàng)新以適應人們對網(wǎng)絡傳輸?shù)男枨笫禽^為困難,因此如何在現(xiàn)有的資源條件下,確保無線網(wǎng)絡傳輸?shù)目煽啃耘c穩(wěn)定性成為一個廣受關注的問題[1]。從實際情況來看,計算機無線網(wǎng)絡所采取的方式是依托無線通信介質(zhì)來實現(xiàn)通信過程,而各個通信節(jié)點之間又極其容易出現(xiàn)彼此干擾的情況,且當參與通信的節(jié)點越多,則這種干擾現(xiàn)象將會越嚴重?;谶@一實際情況,在計算機無線網(wǎng)絡通信之中,采取相應的傳輸控制技術來防范這些問題,具有重要的現(xiàn)實意義。
無線網(wǎng)絡通信在布網(wǎng)方面具有較強的靈活性和便捷性,由于其在實際應用階段環(huán)境因素的影響,容易導致路徑損耗、盲區(qū)衰落、多徑衰落以及各類干擾問題的發(fā)生,因而其整體丟標率較高,現(xiàn)階段相關的研究之中進行計算機無線網(wǎng)絡通信控制的主要措施包括自動請求重傳(ARQ)、前向糾錯機制(FEC)、混合方案以及網(wǎng)絡編碼等措施。網(wǎng)絡編碼技術是現(xiàn)階段應用較多的一種傳輸控制技術,該技術是一種包括路由和編碼在內(nèi)的信息交換技術,在應用過程中其可以實現(xiàn)對各個傳輸節(jié)點所接收的數(shù)據(jù)信息實時編碼,在此基礎上達到提高網(wǎng)絡鏈路帶寬利用率的目的。
本次研究中,主要嘗試采取異或網(wǎng)絡編碼、定長滑窗口技術和團分割技術來增強計算機無線網(wǎng)絡通信的傳輸可靠性。
滑動窗口協(xié)議是當前廣泛應用的TCP/IP協(xié)議之中,用以進行可能出現(xiàn)的差錯控制以及流控制的技術類型,在現(xiàn)階段的計算機網(wǎng)絡無線通信中,該技術對于確保通信過程的可靠和準確意義重大。該協(xié)議通常包括停等協(xié)議、回退N協(xié)議和選擇重傳協(xié)議3個種類。首先,停等協(xié)議在相關傳輸之中發(fā)揮作用的條件是,當相應的窗口值為1的時候,每次進行信號傳輸僅僅進行單一數(shù)據(jù)分組的發(fā)送,當相關數(shù)據(jù)分組發(fā)送之后則需要對信息接受方節(jié)點的ACK回復進行一段時間的等待,且在這個階段之中ACK定時器會進行計時,如果接收方在計時范圍內(nèi)沒有進行ACK回復,則進行對上述數(shù)據(jù)分組的再次傳輸。而如果在ACK計時范圍內(nèi),接收方進行了相應的ACK回復,則將已經(jīng)完成傳輸?shù)臄?shù)據(jù)分組移出,將下一個需要進行傳輸?shù)臄?shù)據(jù)分組放入[2]。其次,回退N協(xié)議在進行數(shù)據(jù)傳輸?shù)倪^程中,其傳輸方式是一次傳輸進一個批次數(shù)據(jù)的傳輸,同時也以ACK定時器來判定傳輸是否成功,如果傳輸失敗,則退回至第一個發(fā)生傳輸錯誤的數(shù)據(jù)包進行再次傳輸。與停等協(xié)議相比,回退N協(xié)議在應用過程中往往會出現(xiàn)大規(guī)模重復傳輸?shù)默F(xiàn)象,因而比較容易造成網(wǎng)絡資源的浪費。最后,選擇重傳協(xié)議在應用過程中,是以一次進行一批數(shù)據(jù)分組傳輸?shù)姆绞竭M行傳輸,其傳輸結果判定是以雙方是否進行了相關數(shù)據(jù)的確認為核心。且該協(xié)議下,會將接收方已經(jīng)完成確認的數(shù)據(jù)信息進行緩存,并對未完成正確接收的數(shù)據(jù)包進行重新傳輸。
該技術在應用過程中所采取的措施是以后退N協(xié)議為基礎,對信息的接收方進行特定長度的數(shù)據(jù)發(fā)送,當相關對象在對這些數(shù)據(jù)進行有效接收之后,則將具體的數(shù)據(jù)接收狀況向傳輸方進行反饋。而如果傳輸方所傳輸?shù)臄?shù)據(jù)之中存在丟失現(xiàn)象,則需要退回到第一個丟失的數(shù)據(jù)重新進行數(shù)據(jù)傳輸,見圖1。
在上述技術基礎上,相關研究者提出了定長滑窗團分割措施,在這種技術之下,相關的數(shù)據(jù)傳輸過程對原有的定長滑窗技術和團分割技術進行了整合。實際應用過程中,相關技術需要定義發(fā)送方節(jié)點和N個接收節(jié)點,同時需要對窗口值進行定義[3]。當進行數(shù)據(jù)分組的傳輸之后,就需要對ACK反饋進行接收,完成接收之后形成相應的信息表及構造圖,通過應用最小團分割算法,將相應的數(shù)據(jù)分組以異或編碼的形式進行傳輸。
在本次設計中,為了確保相關過程的順利,需要將發(fā)送方及接收方的傳輸交互流程和邏輯進行明確。
首先,在數(shù)據(jù)分組傳輸過程中,需要以ACK計時的方式來判斷傳輸過程是否成功,并決定相應的重傳方式,具體分類如下:(1)當數(shù)據(jù)分組進行傳輸之后,ACK計時范圍內(nèi)沒有接收到ACK反饋,這種情況下認為相關數(shù)據(jù)完全丟失,因此發(fā)送方應當采取直接重傳本批次數(shù)據(jù)的方式來保障信息傳輸可靠性;(2)當傳輸方完成傳輸,且接收到ACK反饋,但本次傳輸過程中,數(shù)據(jù)接收節(jié)點并未完全成功接收數(shù)據(jù),則采用團分割傳輸編碼數(shù)據(jù)進行補救;(3)當傳輸方完成本次數(shù)據(jù)傳輸,且在ACK計時范圍內(nèi)接收到ACK反饋,且本批次數(shù)據(jù)接收方完全完成了接收,則進行新一批的內(nèi)容的傳輸。具體邏輯見圖2。
其次,接收方需要對相關傳輸結果進行判定,并進行反饋,由此實現(xiàn)傳輸過程的完整和成功。在該過程中,接收方的主要判定標準為是否能夠完成對相關數(shù)據(jù)的解碼,具體流程如下:(1)當接收方接收到新的數(shù)據(jù)內(nèi)容之后,需要將自身所獲取的數(shù)據(jù)信息存入緩存之中;(2)當接收到相關的編碼數(shù)據(jù)之后,需要以是否能夠?qū)崿F(xiàn)解碼來進行對數(shù)據(jù)的判定,當相關數(shù)據(jù)經(jīng)過判定,無法實現(xiàn)解碼的情況下,則直接對相應的編碼包進行舍棄;(3)當相關編碼數(shù)據(jù)滿足解碼條件的情況下,則進行解碼。具體流程見圖3。
在數(shù)據(jù)傳輸?shù)目刂品矫?,主要需要ACK/NACK來進行可靠性保障。通常來說,ACK/NACK的反饋方式有兩種類型,首先是發(fā)送方向接收方進行一個要求回復ACK/NACK的數(shù)據(jù)包發(fā)送,當數(shù)據(jù)的接收方在獲取這個數(shù)據(jù)包之后,則會迅速地將自身的實際情況向發(fā)送方進行反饋,以達到對傳輸情況的判定。另一種方式是通過ACK/NACK計時器的方式,當相關接收方的反饋未發(fā)生在即使范圍內(nèi),則需要進行重傳。但在實際應用的過程中,由于相關網(wǎng)絡受到各類因素的影響,因而不可避免地會出現(xiàn)傳輸延時的情況,部分情況下僅僅是少量的延時也會導致數(shù)據(jù)大規(guī)模重傳問題的發(fā)生[4]。基于此,在本次設計之中采取了混合措施來進行反饋機制的設計,即當相關發(fā)送方節(jié)點進行對數(shù)據(jù)包的發(fā)送,要求接收方對本次傳輸?shù)木唧w情況進行反饋,且在這種情況下還會進行重傳計時。通過這種方式,可以避免傳輸方進行重傳的長期等待,又可以避免由于網(wǎng)絡環(huán)境延時而導致不合時宜的大規(guī)模重傳發(fā)生,見圖4。
在相關機制發(fā)揮作用的階段,當發(fā)送方進行完成對數(shù)據(jù)的發(fā)送之后,隨即會啟用計時器對接收方的接收狀況進行判定,當相關反饋內(nèi)容在時間范圍之內(nèi)達到,且判定數(shù)據(jù)需要重傳的情況下,則以團分割算法對相關數(shù)據(jù)包的實際組成情況進行判定。如果相關的反饋未在時間范圍內(nèi)達到,則認為傳輸過程失敗,需要對相應的數(shù)據(jù)信息進行全部重傳。
在進行相關設計的過程中,發(fā)送模塊、接收模塊和重傳模塊的設計重要性較強。本次研究之中,盡管發(fā)送模塊的主要功能是對現(xiàn)有的數(shù)據(jù)信息進行發(fā)送,但同時其也需要完成對反饋數(shù)據(jù)的接收,從而判定是否需要進行重傳,因而如果缺少對反饋信息的接收,則必然導致整個流程無法推進,這也是設計之中進行接收模塊增設的原因。首先,在發(fā)送模塊的設計之中,相關的發(fā)送數(shù)據(jù)組判定是根據(jù)定長滑窗的窗口值和包長度來確定[5]。在執(zhí)行發(fā)送的過程中,相關數(shù)據(jù)分組的數(shù)量應當小于窗口值,當判定數(shù)據(jù)分組的數(shù)據(jù)包數(shù)量小于窗口值,且數(shù)量并沒有達到本次傳輸數(shù)據(jù)包數(shù)量的末尾,則對數(shù)據(jù)分組進行傳輸。而當判定數(shù)據(jù)組數(shù)量等于或是大于窗口值,且文件數(shù)量并沒有達到末尾,則對該組數(shù)據(jù)組裝成數(shù)據(jù)包,不執(zhí)行發(fā)送并進入上一循環(huán)。其次,在接收模塊的設計過程中,需要根據(jù)所獲取的反饋信息來判定是否成功發(fā)送,當反饋信息為數(shù)據(jù)完全成功接收之后,則結束本次流程。當判定數(shù)據(jù)未完成全部接收的情況下,則需要執(zhí)行重傳。最后,在重傳模塊的設計方面,需要根據(jù)ACK數(shù)據(jù)來進行判定執(zhí)行全部重傳或是部分重傳。在部分重傳的情況下,進行數(shù)據(jù)接收信息表的建立,并以此進行相關數(shù)據(jù)的團分割,并對數(shù)據(jù)進行編碼和重傳[6]。
與之相對應的,在接收方模塊設計的過程中,也需要進行相關的發(fā)送模塊設計,從而向發(fā)送方進行信息反饋。本次設計之中,接收方模塊主要包括接收模塊和發(fā)送模塊兩個部分,其中接收模塊在根據(jù)已經(jīng)接收的數(shù)據(jù)信息判定未完全傳輸之后,需要將新數(shù)據(jù)寫入到緩存。在接收到重傳的編碼數(shù)據(jù)后,需要對數(shù)據(jù)進行解碼,并存儲至對應位置。在發(fā)送模塊的設計方面,需要接收方在接收到相關的數(shù)據(jù)后,根據(jù)所獲取的數(shù)據(jù)進行完整性的判定,并進行ACK數(shù)據(jù)的發(fā)送。
本文采取單播和組播兩種方式對可靠性進行了測試,在單播情況下,所進行的數(shù)據(jù)包傳輸數(shù)量為1 000~9 999不斷增加,測試了丟包率在2%及10%情況下的傳輸成功率,相關測試之中顯示,采取本次設計最終單播傳輸?shù)目煽啃跃鶠?00%,說明相關措施能夠保證計算機無線網(wǎng)絡通信的傳輸質(zhì)量得到充分控制,見表1。
表1 單播情況下可靠性測試結果
同時,在進行組播測試的過程中,主要測試了網(wǎng)絡丟包率2%和10%的兩種情況,數(shù)據(jù)包數(shù)量為1 000~9 999不斷增加,在本次的測試結果之中,相關傳輸?shù)目煽柯示_到較高水平,說明在組播的情況下,該方案也具有良好的傳輸效果,見表2。
表2 組播情況下可靠性測試結果
計算機網(wǎng)絡通信控制技術的應用能夠有效地保障相關信息傳輸?shù)臏蚀_性和穩(wěn)定性,本文通過以定長滑窗技術為基礎進行了相應的通信控制設計,在相關實現(xiàn)過程中,該方案是依托ACK/NACK完成對相應數(shù)據(jù)傳輸情況的判定,而傳統(tǒng)的傳輸反饋整體方式較為單一,如采取ACK計時器的方式,或是要求回復ACK/NACK的數(shù)據(jù)包的發(fā)送等,這些方式在結果判定方面缺乏彈性,因而比較容易導致數(shù)據(jù)包丟失或是大規(guī)模重傳等問題的發(fā)生,極大地降低計算機網(wǎng)絡通信的可靠性,并對網(wǎng)絡資源形成較大程度的擠占。而通過本次的設計,可以有效地控制丟包個數(shù),達到提升計算機網(wǎng)絡通信可靠性目的。