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

表1 單播情況下可靠性測試結果
同時,在進行組播測試的過程中,主要測試了網絡丟包率2%和10%的兩種情況,數據包數量為1 000~9 999不斷增加,在本次的測試結果之中,相關傳輸的可靠率均達到較高水平,說明在組播的情況下,該方案也具有良好的傳輸效果,見表2。

表2 組播情況下可靠性測試結果
計算機網絡通信控制技術的應用能夠有效地保障相關信息傳輸的準確性和穩定性,本文通過以定長滑窗技術為基礎進行了相應的通信控制設計,在相關實現過程中,該方案是依托ACK/NACK完成對相應數據傳輸情況的判定,而傳統的傳輸反饋整體方式較為單一,如采取ACK計時器的方式,或是要求回復ACK/NACK的數據包的發送等,這些方式在結果判定方面缺乏彈性,因而比較容易導致數據包丟失或是大規模重傳等問題的發生,極大地降低計算機網絡通信的可靠性,并對網絡資源形成較大程度的擠占。而通過本次的設計,可以有效地控制丟包個數,達到提升計算機網絡通信可靠性目的。