中間節(jié)點、通信網(wǎng)絡(luò)及其數(shù)據(jù)傳輸控制方法
【專利摘要】本發(fā)明公開了一種中間節(jié)點、通信網(wǎng)絡(luò)及其數(shù)據(jù)傳輸控制方法,所述方法包括:中間節(jié)點接收到一個數(shù)據(jù)包后,解析出該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號;將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄;中間節(jié)點在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號,從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息;上一跳節(jié)點根據(jù)接收的確認信息,確定出中間節(jié)點已接收的數(shù)據(jù)包,將確定出的數(shù)據(jù)包從與中間節(jié)點相對應(yīng)的隊列中清除。應(yīng)用本發(fā)明,可以提高數(shù)據(jù)傳輸質(zhì)量。
【專利說明】中間節(jié)點、通信網(wǎng)絡(luò)及其數(shù)據(jù)傳輸控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種中間節(jié)點、通信網(wǎng)絡(luò)及其數(shù)據(jù)傳輸控制方法。
【背景技術(shù)】
[0002]通訊控制機在通信網(wǎng)絡(luò)中被稱為網(wǎng)絡(luò)結(jié)點,網(wǎng)絡(luò)結(jié)點一方面作為與資源子網(wǎng)的主機、終端相連接的接口,將主機和終端連入網(wǎng)內(nèi);另一方面網(wǎng)絡(luò)結(jié)點又作為通信子網(wǎng)中的分組儲存轉(zhuǎn)發(fā)結(jié)點,完成分組的接收,校驗,存儲轉(zhuǎn)發(fā)等功能,實現(xiàn)將源主機的數(shù)據(jù)包發(fā)送到目的地主機的作用。網(wǎng)絡(luò)結(jié)點可以包括網(wǎng)絡(luò)終端、工作站(可以是個人電腦或服務(wù)器)還有中間環(huán)節(jié)的路由器。
[0003]一個通信網(wǎng)絡(luò)由若干網(wǎng)絡(luò)節(jié)點構(gòu)成,網(wǎng)絡(luò)節(jié)點包括端節(jié)點和中間節(jié)點;在通信網(wǎng)絡(luò)中,一個數(shù)據(jù)包傳輸鏈路通常包括多個網(wǎng)絡(luò)節(jié)點;其中,產(chǎn)生業(yè)務(wù)流的數(shù)據(jù)包的端節(jié)點稱為源端節(jié)點,中間傳輸該數(shù)據(jù)包的網(wǎng)絡(luò)節(jié)點稱為中間節(jié)點;數(shù)據(jù)包最終到達的端節(jié)點稱為目的端節(jié)點。
[0004]目前的通信網(wǎng)絡(luò)通常是基于TCP/IP協(xié)議進行數(shù)據(jù)包的傳輸;然而,隨著衛(wèi)星網(wǎng)絡(luò)的發(fā)展,本發(fā)明的發(fā)明人發(fā)現(xiàn),如果將現(xiàn)有的數(shù)據(jù)傳輸控制技術(shù)應(yīng)用于有若干衛(wèi)星的中間節(jié)點的通信網(wǎng)絡(luò)中,則會出現(xiàn)傳輸質(zhì)量大大下降的問題,體現(xiàn)在丟包率、誤碼率的升高和延遲時間的加長:
[0005]受到各種環(huán)境因素的影響,衛(wèi)星網(wǎng)絡(luò)本身具有長時延、信號衰落嚴重的特性;在信號衰落嚴重時,出現(xiàn)隨機誤碼和突發(fā)誤碼(連續(xù)多個數(shù)據(jù)包丟失)的概率高;若將現(xiàn)有的數(shù)據(jù)傳輸控制技術(shù)應(yīng)用于有若干衛(wèi)星的中間節(jié)點的通信網(wǎng)絡(luò)中,將會增加數(shù)據(jù)傳輸?shù)膩G包率、誤碼率。
[0006]而且,現(xiàn)有基于TCP/IP協(xié)議的通信網(wǎng)絡(luò)采用的是端到端的傳輸確認機制,即目的端節(jié)點在接收到上一跳節(jié)點發(fā)送的數(shù)據(jù)包后,在確認周期到達時,向源端節(jié)點返回確認信息,源端節(jié)點根據(jù)經(jīng)中間節(jié)點傳輸?shù)拇_認信息,確定出源端節(jié)點與目的端節(jié)點之間丟失的數(shù)據(jù)包,并將丟失的數(shù)據(jù)包向目的端節(jié)點重發(fā)。而在基于TCP/IP協(xié)議的通信網(wǎng)絡(luò)中,一般將數(shù)據(jù)包的丟失歸因于網(wǎng)絡(luò)擁塞,因此,在發(fā)現(xiàn)丟包后,源端節(jié)點減小發(fā)送窗口(比如將發(fā)送速率減小為原來的一半),通過該減小的發(fā)送窗口將丟失的數(shù)據(jù)包重新向目的端節(jié)點發(fā)送,這樣,會進一步延長衛(wèi)星網(wǎng)路的數(shù)據(jù)傳輸?shù)耐禃r延。
[0007]因此,有必要提供一種能夠提高數(shù)據(jù)傳輸質(zhì)量的數(shù)據(jù)傳輸控制方法。
【發(fā)明內(nèi)容】
[0008]針對上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明實施例提供了一種通信網(wǎng)絡(luò)、中間節(jié)點及其數(shù)據(jù)傳輸控制方法,用以提高數(shù)據(jù)傳輸質(zhì)量。
[0009]本發(fā)明實施例提供了一種通信網(wǎng)絡(luò)的傳輸控制方法,包括:
[0010]中間節(jié)點接收到一個數(shù)據(jù)包后,解析出該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄;以及
[0011]所述中間節(jié)點在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息;
[0012]所述上一跳節(jié)點根據(jù)接收的確認信息,確定出所述中間節(jié)點已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與所述中間節(jié)點相對應(yīng)的隊列中清除。
[0013]較佳地,在所述將確定出的數(shù)據(jù)包從與所述中間節(jié)點相對應(yīng)的隊列中清除后,所述方法還包括:
[0014]所述上一跳節(jié)點將根據(jù)接收的確認信息確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。
[0015]較佳地,在所述解析該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號時,還包括:
[0016]解析該數(shù)據(jù)包中的目的方IP地址。
[0017]較佳地,在所述將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄后,所述方法還包括:
[0018]將該數(shù)據(jù)包緩存到對應(yīng)所述目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中;其中,所述隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為所述中間節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,所述隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有所述隊列對應(yīng)的本中間節(jié)點的端口的MAC地址,以及所述中間節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號;以及
[0019]所述中間節(jié)點按先入先出的順序?qū)⑺鲫犃兄芯彺娴臄?shù)據(jù)包向下一跳節(jié)點發(fā)送。
[0020]較佳地,在所述中間節(jié)點按先入先出的順序?qū)⑺鲫犃兄芯彺娴臄?shù)據(jù)包向下一跳節(jié)點發(fā)送的過程中,所述方法還包括:
[0021]若所述中間節(jié)點確定與所述隊列所對應(yīng)的下一跳節(jié)點斷開連接,則取消所述隊列與所述下一跳節(jié)點的對應(yīng)關(guān)系,并根據(jù)所述隊列中的數(shù)據(jù)包的目的方IP地址進行重新路由;將重新路由后確定的下一跳節(jié)點與所述隊列進行對應(yīng)。
[0022]較佳地,所述上一跳節(jié)點具體為源端節(jié)點、或所述通信網(wǎng)絡(luò)中的其它中間節(jié)點;以及
[0023]所述下一跳節(jié)點具體為目的端節(jié)點、或所述通信網(wǎng)絡(luò)中的其它中間節(jié)點。
[0024]本發(fā)明實施例還提供了一種中間節(jié)點,包括:
[0025]數(shù)據(jù)包接收模塊,用于接收到一個數(shù)據(jù)包后,解析該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄;
[0026]數(shù)據(jù)包確認模塊,在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。
[0027]較佳地,所述中間節(jié)點還包括:
[0028]數(shù)據(jù)包緩存模塊,用于將所述數(shù)據(jù)包接收模塊接收的數(shù)據(jù)包緩存到對應(yīng)該數(shù)據(jù)包所攜帶的目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中;其中,所述隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為所述中間節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,所述隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有所述隊列對應(yīng)的本中間節(jié)點的端口的MAC地址,以及所述中間節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號;
[0029]數(shù)據(jù)包發(fā)送模塊,用于按先入先出的順序?qū)⑺鰯?shù)據(jù)包緩存模塊中下一跳節(jié)點所對應(yīng)的隊列中緩存的數(shù)據(jù)包向下一跳節(jié)點發(fā)送。
[0030]較佳地,所述中間節(jié)點還包括:
[0031]確認信息處理模塊,用于在接收到下一跳節(jié)點返回的確認信息后,根據(jù)接收的確認信息確定出下一跳節(jié)點已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與所述下一跳節(jié)點所對應(yīng)的隊列中清除。
[0032]本發(fā)明實施例還提供了一種通信網(wǎng)絡(luò),包括上述中間節(jié)點;以及
[0033]源端節(jié)點,用于針對一個業(yè)務(wù)生成一系列數(shù)據(jù)包后,為生成的數(shù)據(jù)包統(tǒng)一分配序列號作為源端序列號;在根據(jù)接收所述數(shù)據(jù)包的目的端的目的方IP地址進行路由后,確定出接收所述數(shù)據(jù)包的下一跳節(jié)點;將所述數(shù)據(jù)包緩存到所述下一跳節(jié)點所對應(yīng)的隊列中;其中,所述隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為所述源端節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,所述隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有所述隊列對應(yīng)的本源端節(jié)點的端口的MAC地址,以及本源端節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號、源端序列號;
[0034]目的端節(jié)點,用于接收到數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的發(fā)送方IP地址和源端序列號對應(yīng)記錄,以及該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號對應(yīng)記錄;并在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息;以及針對每個記錄的發(fā)送方IP地址,查找出與該發(fā)送方IP地址對應(yīng)記錄的各源端序列號后從中確定出最大源端序列號和丟失的數(shù)據(jù)包的源端序列號;根據(jù)該發(fā)送方IP地址返回攜帶有確定出的源端序列號的確認信息;
[0035]所述源端節(jié)點還用于接收到下一跳節(jié)點返回的攜帶有節(jié)點序列號的確認信息后,根據(jù)接收的確認信息確定出下一跳節(jié)點已接收的數(shù)據(jù)包和丟失的數(shù)據(jù)包后,將下一跳節(jié)點已接收的數(shù)據(jù)包從與所述下一跳節(jié)點所對應(yīng)的隊列中清除,將丟失的數(shù)據(jù)包重新發(fā)送;以及接收到所述目的端節(jié)點返回的攜帶有源端序列號的確認信息后,確定出所述目的端節(jié)點已接收的數(shù)據(jù)包和丟失的數(shù)據(jù)包后,將目的端節(jié)點已接收的數(shù)據(jù)包從隊列中清除,將丟失的數(shù)據(jù)包重新發(fā)送。
[0036]本發(fā)明的技術(shù)方案中,中間節(jié)點在接收到數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址和上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號進行對應(yīng)記錄;且在每個確認周期到達時,針對每個記錄的MAC地址,可以根據(jù)與該MAC地址對應(yīng)記錄的各節(jié)點序列號,向上一跳節(jié)點返回攜帶有最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號的確認信息。繼而,中間節(jié)點的上一跳節(jié)點可以根據(jù)接收的確認信息,確定出中間節(jié)點丟失的數(shù)據(jù)包,并將丟失的數(shù)據(jù)包針對目的端節(jié)點重新發(fā)送。這樣,相比現(xiàn)有的端到端的傳輸控制方案,本發(fā)明通過點到點之間的數(shù)據(jù)包丟失檢測和數(shù)據(jù)恢復,可以減小通信網(wǎng)絡(luò)中進行數(shù)據(jù)傳輸時的丟包率、誤碼率,保證源端節(jié)點與目的端節(jié)點之間的數(shù)據(jù)傳輸過程中不會產(chǎn)生錯誤累積;而且,由于中間節(jié)點與下一跳節(jié)點之間對丟失數(shù)據(jù)包的檢測和恢復速度都要比源端節(jié)點到目的端節(jié)點之間對丟失包的處理速度要快,縮短了源端節(jié)點到目的端節(jié)點之間數(shù)據(jù)傳輸?shù)耐禃r延,大大提高了通信網(wǎng)絡(luò)的數(shù)據(jù)傳輸質(zhì)量。
【專利附圖】
【附圖說明】
[0037]圖1為本發(fā)明實施例的通信網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
[0038]圖2為本發(fā)明實施例的通信網(wǎng)絡(luò)的傳輸控制方法的流程示意圖;
[0039]圖3為本發(fā)明實施例的目的端節(jié)點向上一跳的中間節(jié)點返回確認信息的方法流程不意圖;
[0040]圖4為本發(fā)明實施例的目的端節(jié)點向源端節(jié)點返回確認信息的方法流程示意圖;
[0041]圖5為本發(fā)明實施例的中間節(jié)點的內(nèi)部結(jié)構(gòu)示意圖。
【具體實施方式】
[0042]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉出優(yōu)選實施例,對本發(fā)明進一步詳細說明。然而,需要說明的是,說明書中列出的許多細節(jié)僅僅是為了使讀者對本發(fā)明的一個或多個方面有一個透徹的理解,即便沒有這些特定的細節(jié)也可以實現(xiàn)本發(fā)明的這些方面。
[0043]本申請使用的“模塊”、“系統(tǒng)”等術(shù)語旨在包括與計算機相關(guān)的實體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理器上運行的進程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機。舉例來說,計算設(shè)備上運行的應(yīng)用程序和此計算設(shè)備都可以是模塊。一個或多個模塊可以位于執(zhí)行中的一個進程和/或線程內(nèi)。
[0044]本發(fā)明的發(fā)明人對現(xiàn)有的通信網(wǎng)絡(luò)中基于TCP/IP協(xié)議的數(shù)據(jù)傳輸控制技術(shù)進行分析,發(fā)現(xiàn)該技術(shù)采用的端到端的確認機制具有一定缺陷:
[0045]在有不可靠節(jié)點的網(wǎng)絡(luò)中,只有最終的目的端有責任檢測丟失并請求重傳,即源端無序發(fā)送的數(shù)據(jù)包經(jīng)過多個中間節(jié)點到達目的端后才能發(fā)現(xiàn)丟包,目的端再經(jīng)過多個中間節(jié)點向源端返回確認信息,源端再根據(jù)確認信息將丟失的數(shù)據(jù)包重新經(jīng)過多個中間節(jié)點發(fā)送到目的端;這樣,在發(fā)送和接收確認信息期間,通信鏈路不能被充分利用、源端和目的端耗費大量的時間來等待確認信息,造成資源的浪費和增加了通信網(wǎng)絡(luò)的往返時延,且由于無法了解數(shù)據(jù)包丟失的原因是中間節(jié)點發(fā)生擁塞還是衛(wèi)星無線信道的傳輸錯誤,不利于保證數(shù)據(jù)傳輸?shù)目煽啃浴?br>
[0046]由此,本發(fā)明的技術(shù)方案對現(xiàn)有的基于TCP/IP協(xié)議的數(shù)據(jù)傳輸控制技術(shù)進行改進,結(jié)合點到點的確認機制來克服現(xiàn)有技術(shù)的缺陷;使得本發(fā)明的數(shù)據(jù)傳輸控制方法可以大大減小丟包率、誤碼率,縮短延遲時間;尤其是對于具有衛(wèi)星的中間節(jié)點的通信網(wǎng)絡(luò),比如衛(wèi)星網(wǎng)絡(luò)而言,本發(fā)明的數(shù)據(jù)傳輸控制方法的數(shù)據(jù)傳輸質(zhì)量要遠高于應(yīng)用現(xiàn)有的基于TCP/IP協(xié)議的數(shù)據(jù)傳輸控制方法的傳輸質(zhì)量。
[0047]下面結(jié)合附圖詳細說明本發(fā)明的技術(shù)方案。
[0048]本發(fā)明實施例提供了一種通信網(wǎng)絡(luò),如圖1所示,具體包括:源端節(jié)點101、目的端節(jié)點102和至少一個中間節(jié)點103。[0049]源端節(jié)點101可以針對一個業(yè)務(wù)生成一系列數(shù)據(jù)包后,為生成的數(shù)據(jù)包統(tǒng)一分配序列號作為源端序列號;并在根據(jù)接收該一系列數(shù)據(jù)包的目的端的目的方IP地址進行路由后,可以確定出接收該一系列數(shù)據(jù)包的下一跳節(jié)點;并確定出用于緩存源端節(jié)點101向該下一跳節(jié)點發(fā)送數(shù)據(jù)包的隊列,即該下一跳節(jié)點所對應(yīng)的隊列;繼而,可以將源端節(jié)點101生成的一系列數(shù)據(jù)包緩存到該下一跳節(jié)點所對應(yīng)的隊列中。
[0050]其中,該下一跳節(jié)點具體為目的端節(jié)點102、或通信網(wǎng)絡(luò)中的一個中間節(jié)點103 ;且該下一跳節(jié)點所對應(yīng)的隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,且可以將各數(shù)據(jù)包的編號分別作為源端節(jié)點101為各數(shù)據(jù)包分配的節(jié)點序列號。這樣,針對該隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有該隊列對應(yīng)的本源端節(jié)點101的端口的MAC地址,以及本源端節(jié)點101為該數(shù)據(jù)包分配的節(jié)點序列號Seq1、源端序列號SeqS。
[0051]實際應(yīng)用中,針對源端節(jié)點101所生成的每個數(shù)據(jù)包,在該數(shù)據(jù)包的傳輸過程中,每經(jīng)過一個中間節(jié)點103,該中間節(jié)點103可以為該數(shù)據(jù)包分配節(jié)點序列號Seqi。這樣,在該數(shù)據(jù)包的幀頭中,其攜帶的源端節(jié)點101為其分配的源端序列號SeqS在到達目的端節(jié)點102之前是固定不變的,而其攜帶的MAC地址和節(jié)點序列號Seqi在傳輸過程中將根據(jù)其經(jīng)過的中間節(jié)點103而變化。
[0052]中間節(jié)點103在接收到一個數(shù)據(jù)包后,解析出該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄。這樣,在每個確認周期到達時,中間節(jié)點可以針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。
[0053]繼而,該中間節(jié)點103的上一跳節(jié)點可以根據(jù)接收的確認信息,確定出該中間節(jié)點已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與該中間節(jié)點103相對應(yīng)的隊列中清除;并將根據(jù)接收的確認信息確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。
[0054]基于上述中間節(jié)點和源端節(jié)點,上述通信網(wǎng)絡(luò)進行數(shù)據(jù)傳輸控制的具體方法,流程如圖2所示,包括如下步驟:
[0055]S201:源端節(jié)點101針對一個業(yè)務(wù)生成一系列數(shù)據(jù)包后,為生成的數(shù)據(jù)包統(tǒng)一分配序列號作為源端序列號。
[0056]S202:源端節(jié)點101在根據(jù)接收數(shù)據(jù)包的目的端的目的方IP地址進行路由后,確定出接收數(shù)據(jù)包的下一跳節(jié)點。
[0057]具體地,源端節(jié)點101可以根據(jù)最終接收其生成的一系列數(shù)據(jù)包的目的端的目的方IP地址進行路由,確定出接收數(shù)據(jù)包的、與目的端的目的方IP地址相對應(yīng)的下一跳節(jié)點。
[0058]S203:源端節(jié)點101將生成的數(shù)據(jù)包緩存到源端節(jié)點101的下一跳節(jié)點所對應(yīng)的隊列中后,按先入先出的順序?qū)㈥犃兄芯彺娴臄?shù)據(jù)包向下一跳節(jié)點發(fā)送。
[0059]S204:中間節(jié)點103接收到一個數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址、上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號進行對應(yīng)記錄;并將該數(shù)據(jù)包緩存到下一跳節(jié)點所對應(yīng)的隊列中。
[0060]其中,上一跳節(jié)點具體為源端節(jié)點101、或通信網(wǎng)絡(luò)中的其它中間節(jié)點103 ;下一跳節(jié)點具體為目的端節(jié)點102、或通信網(wǎng)絡(luò)中的其它中間節(jié)點103。
[0061]具體地,中間節(jié)點103接收到一個數(shù)據(jù)包后,可以解析出該數(shù)據(jù)包中攜帶的目的方IP地址、中間節(jié)點103的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址、以及該上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄;并將該數(shù)據(jù)包緩存到對應(yīng)解析出的目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中。
[0062]實際應(yīng)用中,該中間節(jié)點103的下一跳節(jié)點所對應(yīng)的隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,最后緩存的數(shù)據(jù)包的編號最大。因此,可以將各數(shù)據(jù)包的編號分別作為本中間節(jié)點103為各數(shù)據(jù)包分配的節(jié)點序列號。這樣,針對該隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有該隊列對應(yīng)的本中間節(jié)點103的端口的MAC地址,以及本中間節(jié)點103為該數(shù)據(jù)包分配的節(jié)點序列號。其中,由于中間節(jié)點103將會在后續(xù)按照先入先出的順序?qū)㈥犃兄械臄?shù)據(jù)包發(fā)送至下一跳節(jié)點,因此,可以按緩存的先后順序,中間節(jié)點103為該隊列中的各數(shù)據(jù)包順序分配不同大小的節(jié)點序列號,其中,最后緩存的數(shù)據(jù)包的節(jié)點序列號最大。
[0063]S205:中間節(jié)點103在每個確認周期到達時,針對每個記錄的MAC地址,從與該MAC地址對應(yīng)記錄的各節(jié)點序列號中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。
[0064]具體地,中間節(jié)點103在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后,從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。其中,確認周期是由管理人員預先設(shè)定的,例如根據(jù)源端節(jié)點所發(fā)送的數(shù)據(jù)包的數(shù)量、頻率等信息來設(shè)定。
[0065]例如,若中間節(jié)點103查找出與中間節(jié)點103的一個上一跳節(jié)點的MAC地址對應(yīng)記錄的各節(jié)點序列號包括:D1、D2、D4、D5、D7,其中最大節(jié)點序列號為D7,這樣,中間節(jié)點103可以將D3、D6確定為丟失的數(shù)據(jù)包的節(jié)點序列號,并將攜帶有確定出的丟失的數(shù)據(jù)包的節(jié)點序列號D3、D6和最大節(jié)點序列號D7的確認信息返回至該中間節(jié)點103的上一跳節(jié)點,用于確認該上一跳節(jié)點與中間節(jié)點103之間丟失的數(shù)據(jù)包。
[0066]S206:中間節(jié)點103的上一跳節(jié)點根據(jù)接收的確認信息,確定出中間節(jié)點103已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與中間節(jié)點103相對應(yīng)的隊列中清除;并將確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。
[0067]具體地,中間節(jié)點103的上一跳節(jié)點(可以是源端節(jié)點,也可以是上一跳的中間節(jié)點)接收到中間節(jié)點103返回的攜帶有最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號的確認信息后,根據(jù)該上一跳節(jié)點中的與該中間節(jié)點103相對應(yīng)的隊列中緩存的各數(shù)據(jù)包的節(jié)點序列號進行比較,確定出中間節(jié)點103已接收的數(shù)據(jù)包;并將確定出的數(shù)據(jù)包從與該中間節(jié)點103相對應(yīng)的隊列中清除后,將該隊列中剩余的數(shù)據(jù)包確定為該上一跳節(jié)點與該中間節(jié)點103之間丟失的數(shù)據(jù)包。
[0068]例如,中間節(jié)點103將攜帶有確定出的丟失的數(shù)據(jù)包的節(jié)點序列號D3、D6和最大節(jié)點序列號D7的確認信息返回至中間節(jié)點103的上一跳節(jié)點;若中間節(jié)點103的上一跳節(jié)點中與該中間節(jié)點103相對應(yīng)的隊列中的最大節(jié)點序列號為D8 ;則該上一跳節(jié)點可以根據(jù)接收的確認信息,確定出該中間節(jié)點103已接收的數(shù)據(jù)包及其對應(yīng)的節(jié)點序列號(Dl、D2、D4、D5、D7),將確定出的已接收的數(shù)據(jù)包從與該中間節(jié)點103相對應(yīng)的隊列中清除后,可以得到丟失的數(shù)據(jù)包及其節(jié)點序列號(D3、D6、D8)。
[0069]繼而,在確定出該上一跳節(jié)點與該中間節(jié)點103之間丟失的數(shù)據(jù)包之后,可以將根據(jù)接收的確認信息確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。具體地,可以根據(jù)接收數(shù)據(jù)包的目的端的目的方IP地址進行重新路由,確定出接收丟失的數(shù)據(jù)包的下一跳節(jié)點后,將丟失的數(shù)據(jù)包緩存到該下一跳節(jié)點所對應(yīng)的隊列中。其中,由于丟失的數(shù)據(jù)包是針對目的端節(jié)點重發(fā)的,不是針對下一跳節(jié)點發(fā)送的,而重新路由時,該上一跳節(jié)點之前的下一跳節(jié)點即該中間節(jié)點103可能已經(jīng)不在可通信范圍內(nèi),或者已經(jīng)不是最佳的傳輸路徑,此時,該上一跳節(jié)點將重新路由出新的接收丟失的數(shù)據(jù)包的下一跳節(jié)點,取消緩存丟失的數(shù)據(jù)包的隊列與該中間節(jié)點103的對應(yīng)關(guān)系,而建立與重新路由出的下一跳節(jié)點的對應(yīng)關(guān)系。
[0070]實際應(yīng)用中,當該中間節(jié)點103的上一跳節(jié)點具體為源端節(jié)點101時,源端節(jié)點101接收到源端節(jié)點101的下一跳節(jié)點(即該中間節(jié)點103)返回的攜帶有節(jié)點序列號的確認信息后,根據(jù)接收的確認信息確定出下一跳節(jié)點(即該中間節(jié)點103)已接收的數(shù)據(jù)包和丟失的數(shù)據(jù)包;將下一跳節(jié)點已接收的數(shù)據(jù)包從與下一跳節(jié)點所對應(yīng)的隊列中清除,將丟失的數(shù)據(jù)包重新發(fā)送。
[0071]實際應(yīng)用中,由于衛(wèi)星網(wǎng)絡(luò)的往返時延一般比較大,一旦發(fā)生丟包,將非常不利于信息的重傳和回復,在極端環(huán)境情況下,可能在第一跳(源端節(jié)點與源端節(jié)點的下一跳節(jié)點傳輸數(shù)據(jù)的過程)就產(chǎn)生了錯誤(比如丟包);若采用現(xiàn)有的傳輸控制方式,只有經(jīng)過多跳到達目的端節(jié)點之后才能發(fā)現(xiàn)丟包,這樣,錯誤將呈指數(shù)累積且檢測出最終錯誤所耗費的時間長;而源端節(jié)點也需要重新路由后,再經(jīng)過多跳將重發(fā)的丟失的數(shù)據(jù)包傳輸至目的端節(jié)點,數(shù)據(jù)恢復時間長。也就是說,現(xiàn)有確認機制中,只有目的端節(jié)點有責任檢測丟失的數(shù)據(jù)包,只有源端節(jié)點能夠重新路由來重發(fā)丟失的數(shù)據(jù)包,存在丟失數(shù)據(jù)包的檢測速度慢和數(shù)據(jù)恢復速度慢的不足。
[0072]而本發(fā)明提供的技術(shù)方案中,中間節(jié)點可以對傳輸?shù)臄?shù)據(jù)包也進行確認,在短時間內(nèi)檢測出該中間節(jié)點與下一跳節(jié)點之間的丟失的數(shù)據(jù)包,并將檢測出的丟失的數(shù)據(jù)包向目的端節(jié)點重新發(fā)送,快速實現(xiàn)數(shù)據(jù)恢復,這樣,可以保證最后在目的端節(jié)點仍將正確接收到源端節(jié)點發(fā)送的一系列數(shù)據(jù)包。
[0073]相比現(xiàn)有的端到端的傳輸控制方案,本發(fā)明通過點到點之間的數(shù)據(jù)包丟失檢測和數(shù)據(jù)恢復,可以減小通信網(wǎng)絡(luò)中進行數(shù)據(jù)傳輸時的丟包率、誤碼率,保證源端節(jié)點與目的端節(jié)點之間的數(shù)據(jù)傳輸過程中不會產(chǎn)生錯誤累積;而且,由于中間節(jié)點與下一跳節(jié)點之間對丟失數(shù)據(jù)包的檢測和恢復速度都要比源端節(jié)點到目的端節(jié)點之間對丟失包的處理速度要快,縮短了源端節(jié)點到目的端節(jié)點之間數(shù)據(jù)傳輸?shù)耐禃r延,大大提高了通信網(wǎng)絡(luò)的數(shù)據(jù)傳輸質(zhì)量。
[0074]此外,中間節(jié)點103對于已接收的數(shù)據(jù)包可以繼續(xù)向下一跳節(jié)點進行傳輸:中間節(jié)點103按先入先出的順序?qū)?yīng)目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中緩存的數(shù)據(jù)包向下一跳節(jié)點發(fā)送。
[0075]實際應(yīng)用中,由于中間節(jié)點103是針對目的端的目的IP地址來發(fā)送數(shù)據(jù)包的,而通信網(wǎng)絡(luò)中的目的端具體可以是對地靜止的軌道衛(wèi)星,也可以是對地具有一定相對速度的中軌及低軌衛(wèi)星。也就是說,目的端節(jié)點的具體位置可能在不斷的變化,這樣,在中間節(jié)點與之前確定出的對應(yīng)目的方IP地址的下一跳節(jié)點之間可能會出現(xiàn)連接失效的情況。[0076]因此,為了保證數(shù)據(jù)傳輸控制的傳輸路徑的可靠性,中間節(jié)點在將緩存的數(shù)據(jù)包發(fā)送之前,需要判斷中間節(jié)點與之前確定出的對應(yīng)目的方IP地址的下一跳節(jié)點之間的通信連接是否斷連。具體地,中間節(jié)點103按先入先出的順序?qū)?yīng)目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中緩存的數(shù)據(jù)包向下一跳節(jié)點發(fā)送的過程中,若中間節(jié)點103確定與該隊列所對應(yīng)的下一跳節(jié)點斷開連接,則取消該隊列與下一跳節(jié)點的對應(yīng)關(guān)系,并根據(jù)該隊列中的數(shù)據(jù)包的目的方IP地址進行重新路由;將重新路由后確定的下一跳節(jié)點與隊列進行對應(yīng);繼而,按先入先出的順序?qū)⒅匦麓_定的下一跳節(jié)點所對應(yīng)的隊列中緩存的數(shù)據(jù)包向重新確定的下一跳節(jié)點發(fā)送。
[0077]本發(fā)明提供的技術(shù)方案中,仍保留端到端的確認機制;目的端節(jié)點在接收到數(shù)據(jù)包后可以向上一跳的中間節(jié)點,以及源端節(jié)點回復確認信息;其中,目的端節(jié)點在接收到數(shù)據(jù)包后向上一跳的中間節(jié)點回復確認信息的具體方法,流程如圖3所示,包括如下步驟:
[0078]S301:目的端節(jié)點接收到數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的發(fā)送方IP地址和源端序列號對應(yīng)記錄,以及該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址和上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號對應(yīng)記錄。
[0079]具體地,通信網(wǎng)絡(luò)中的目的端節(jié)點102在接收到上一跳節(jié)點發(fā)送的數(shù)據(jù)包后,解析出該數(shù)據(jù)包中攜帶的發(fā)送方IP地址、源端節(jié)點為該數(shù)據(jù)包分配的源端序列號、上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址、以及上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號;繼而,可以將解析出的發(fā)送方IP地址和源端序列號對應(yīng)記錄,以及將解析出的MAC地址和節(jié)點序列號對應(yīng)記錄。其中,該上一跳節(jié)點具體為源端節(jié)點101、或通信網(wǎng)絡(luò)中目的端節(jié)點102的上一跳的中間節(jié)點103。
[0080]S302:目的端節(jié)點102在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。
[0081]具體地,目的端節(jié)點102在每個確認周期到達時,可以針對目的端節(jié)點102記錄的每個MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號,從查找出的各節(jié)點序列號中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向與該MAC地址對應(yīng)的目的端節(jié)點102的上一跳節(jié)點(源端節(jié)點101、或上一跳的中間節(jié)點103)返回攜帶有確定出的最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號的確認信息。
[0082]S303:目的端節(jié)點102的上一跳節(jié)點根據(jù)接收的確認信息,確定出目的端節(jié)點102已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與目的端節(jié)點102相對應(yīng)的隊列中清除;并將確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。
[0083]具體地,目的端節(jié)點102的上一跳節(jié)點接收到目的端節(jié)點102返回的攜帶有最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號的確認信息后,根據(jù)該上一跳節(jié)點中的與目的端節(jié)點102相對應(yīng)的隊列中緩存的各數(shù)據(jù)包的節(jié)點序列號進行比較,確定出目的端節(jié)點102已接收的數(shù)據(jù)包;并將確定出的數(shù)據(jù)包從與目的端節(jié)點102相對應(yīng)的隊列中清除后,將該隊列中剩余的數(shù)據(jù)包確定為該上一跳節(jié)點與目的端節(jié)點102之間丟失的數(shù)據(jù)包,并將根據(jù)接收的確認信息確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。
[0084]進一步地,本發(fā)明實施例中,除了進行點到點的確認檢測,還可以結(jié)合傳統(tǒng)的端到端的確認機制,對目的端節(jié)點與源端節(jié)點之間的傳輸?shù)臄?shù)據(jù)包進行確認,保證數(shù)據(jù)傳輸控制的可靠性。具體地,目的端節(jié)點102在接收到數(shù)據(jù)包后向源端節(jié)點回復確認信息的具體方法,流程如圖4所示,包括如下步驟:
[0085]S401:目的端節(jié)點接收到數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的發(fā)送方IP地址和源端序列號對應(yīng)記錄,以及該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址和上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號對應(yīng)記錄。
[0086]S402:目的端節(jié)點102在每個確認周期到達時,針對每個記錄的發(fā)送方IP地址,查找出與該發(fā)送方IP地址對應(yīng)記錄的各源端序列號后從中確定出最大源端序列號和丟失的數(shù)據(jù)包的源端序列號;根據(jù)該發(fā)送方IP地址返回攜帶有確定出的源端序列號的確認信息。
[0087]具體地,目的端節(jié)點102在每個確認周期到達時,針對每個記錄的發(fā)送方IP地址,確定出目的端節(jié)點102接收的數(shù)據(jù)包的最大源端序列號和丟失的數(shù)據(jù)包的源端序列號后,可以向與該發(fā)送方IP地址相對應(yīng)的源端節(jié)點返回攜帶有最大源端序列號和丟失的數(shù)據(jù)包的源端序列號的確認信息。
[0088]S403:源端節(jié)點101接收到目的端節(jié)點102返回的攜帶有源端序列號的確認信息,確定出目的端節(jié)點已接收的數(shù)據(jù)包和丟失的數(shù)據(jù)包后,將目的端節(jié)點已接收的數(shù)據(jù)包從隊列中清除,將丟失的數(shù)據(jù)包重新發(fā)送。
[0089]上述中間節(jié)點的一種具體內(nèi)部結(jié)構(gòu)框圖,如圖5所示,包括:數(shù)據(jù)包接收模塊501、數(shù)據(jù)包確認模塊502。
[0090]其中,數(shù)據(jù)包接收模塊501用于接收到一個數(shù)據(jù)包后,解析該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄。
[0091]數(shù)據(jù)包確認模塊502在每個確認周期到達時,針對數(shù)據(jù)包接收模塊501中每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。
[0092]上述中間節(jié)點還包括:數(shù)據(jù)包緩存模塊503、數(shù)據(jù)包發(fā)送模塊504。
[0093]其中,數(shù)據(jù)包緩存模塊503可以將數(shù)據(jù)包接收模塊501接收的數(shù)據(jù)包緩存到對應(yīng)該數(shù)據(jù)包所攜帶的目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中。
[0094]其中,下一跳節(jié)點所對應(yīng)的隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為中間節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,下一跳節(jié)點所對應(yīng)的隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有該隊列對應(yīng)的本中間節(jié)點的端口的MAC地址,以及中間節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號。
[0095]數(shù)據(jù)包發(fā)送模塊504可以按先入先出的順序?qū)?shù)據(jù)包緩存模塊503中下一跳節(jié)點所對應(yīng)的隊列中緩存的數(shù)據(jù)包向下一跳節(jié)點發(fā)送。
[0096]更優(yōu)地,本發(fā)明實施例中,中間節(jié)點還包括:確認信息處理模塊505。確認信息處理模塊505在接收到下一跳節(jié)點返回的確認信息后,根據(jù)接收的確認信息確定出下一跳節(jié)點已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從數(shù)據(jù)包緩存模塊503中下一跳節(jié)點所對應(yīng)的隊列中清除。
[0097]本發(fā)明實施例中,關(guān)于中間節(jié)點中的各模塊如何進行數(shù)據(jù)傳輸控制,可以參考步驟S204-206,在此不再贅述。[0098]本發(fā)明的技術(shù)方案中,中間節(jié)點在接收到數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址和上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號進行對應(yīng)記錄;且在每個確認周期到達時,針對每個記錄的MAC地址,可以根據(jù)與該MAC地址對應(yīng)記錄的各節(jié)點序列號,向上一跳節(jié)點返回攜帶有最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號的確認信息。繼而,中間節(jié)點的上一跳節(jié)點可以根據(jù)接收的確認信息,確定出中間節(jié)點丟失的數(shù)據(jù)包,并將丟失的數(shù)據(jù)包針對目的端節(jié)點重新發(fā)送。這樣,相比現(xiàn)有的端到端的傳輸控制方案,本發(fā)明通過點到點之間的數(shù)據(jù)包丟失檢測和數(shù)據(jù)恢復,可以減小通信網(wǎng)絡(luò)中進行數(shù)據(jù)傳輸時的丟包率、誤碼率,保證源端節(jié)點與目的端節(jié)點之間的數(shù)據(jù)傳輸過程中不會產(chǎn)生錯誤累積;而且,由于中間節(jié)點與下一跳節(jié)點之間對丟失數(shù)據(jù)包的檢測和恢復速度都要比源端節(jié)點到目的端節(jié)點之間對丟失包的處理速度要快,縮短了源端節(jié)點到目的端節(jié)點之間數(shù)據(jù)傳輸?shù)耐禃r延,大大提高了通信網(wǎng)絡(luò)的數(shù)據(jù)傳輸質(zhì)量。
[0099]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計算機可讀取存儲介質(zhì)中,如:R0M/RAM、磁碟、光盤等。
[0100]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種通信網(wǎng)絡(luò)的傳輸控制方法,其特征在于,包括: 中間節(jié)點接收到一個數(shù)據(jù)包后,解析出該數(shù)據(jù)包中攜帶的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄;以及 所述中間節(jié)點在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息; 所述上一跳節(jié)點根據(jù)接收的確認信息,確定出所述中間節(jié)點已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與所述中間節(jié)點相對應(yīng)的隊列中清除。
2.如權(quán)利要求1所述的方法,其特征在于,在所述將確定出的數(shù)據(jù)包從與所述中間節(jié)點相對應(yīng)的隊列中清除后,還包括: 所述上一跳節(jié)點將根據(jù)接收的確認信息確定出的丟失的數(shù)據(jù)包重新進行發(fā)送。
3.如權(quán)利要求2所述的方法,其特征在于,在所述解析該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號時,還包括: 解析該數(shù)據(jù)包中的目的方IP地址。
4.如權(quán)利要求3所述的方法,其特征在于,在所述將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄后,還包括: 將該數(shù)據(jù)包緩存到對應(yīng)所述目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中;其中,所述隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為所述中間節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,所述隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有所述隊列對應(yīng)的本中間節(jié)點的端口的MAC地址,以及所述中間節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號;以及 所述中間節(jié)點按先入先出的順序?qū)⑺鲫犃兄芯彺娴臄?shù)據(jù)包向下一跳節(jié)點發(fā)送。
5.如權(quán)利要求4所述的方法,其特征在于,在所述中間節(jié)點按先入先出的順序?qū)⑺鲫犃兄芯彺娴臄?shù)據(jù)包向下一跳節(jié)點發(fā)送的過程中,還包括: 若所述中間節(jié)點確定與所述隊列所對應(yīng)的下一跳節(jié)點斷開連接,則取消所述隊列與所述下一跳節(jié)點的對應(yīng)關(guān)系,并根據(jù)所述隊列中的數(shù)據(jù)包的目的方IP地址進行重新路由;將重新路由后確定的下一跳節(jié)點與所述隊列進行對應(yīng)。
6.如權(quán)利要求1-5任一所述的方法,其特征在于,所述上一跳節(jié)點具體為源端節(jié)點、或所述通信網(wǎng)絡(luò)中的其它中間節(jié)點;以及 所述下一跳節(jié)點具體為目的端節(jié)點、或所述通信網(wǎng)絡(luò)中的其它中間節(jié)點。
7.—種中間節(jié)點,其特征在于,包括: 數(shù)據(jù)包接收模塊,用于接收到一個數(shù)據(jù)包后,解析該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號后,將解析出的MAC地址和節(jié)點序列號進行對應(yīng)記錄; 數(shù)據(jù)包確認模塊,在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息。
8.如權(quán)利要求7所述的中間節(jié)點,其特征在于,還包括: 數(shù)據(jù)包緩存模塊,用于將所述數(shù)據(jù)包接收模塊接收的數(shù)據(jù)包緩存到對應(yīng)該數(shù)據(jù)包所攜帶的目的方IP地址的下一跳節(jié)點所對應(yīng)的隊列中;其中,所述隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為所述中間節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,所述隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有所述隊列對應(yīng)的本中間節(jié)點的端口的MAC地址,以及所述中間節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號; 數(shù)據(jù)包發(fā)送模塊,用于按先入先出的順序?qū)⑺鰯?shù)據(jù)包緩存模塊中下一跳節(jié)點所對應(yīng)的隊列中緩存的數(shù)據(jù)包向下一跳節(jié)點發(fā)送。
9.如權(quán)利要求8所述的中間節(jié)點,其特征在于,還包括: 確認信息處理模塊,用于在接收到下一跳節(jié)點返回的確認信息后,根據(jù)接收的確認信息確定出下一跳節(jié)點已接收的數(shù)據(jù)包后,將確定出的數(shù)據(jù)包從與所述下一跳節(jié)點所對應(yīng)的隊列中清除。
10.一種通信網(wǎng)絡(luò),其特征在于,包括:如權(quán)利要求7-9任一所述的中間節(jié)點;以及 源端節(jié)點,用于針對一個業(yè)務(wù)生成一系列數(shù)據(jù)包后,為生成的數(shù)據(jù)包統(tǒng)一分配序列號作為源端序列號;在根據(jù)接收所述數(shù)據(jù)包的目的端的目的方IP地址進行路由后,確定出接收所述數(shù)據(jù)包的下一跳節(jié)點;將所述數(shù)據(jù)包緩存到所述下一跳節(jié)點所對應(yīng)的隊列中;其中,所述隊列中緩存的各數(shù)據(jù)包按緩存的先后順序統(tǒng)一分配了編號,并將各數(shù)據(jù)包的編號分別作為所述源端節(jié)點為各數(shù)據(jù)包分配的節(jié)點序列號;并且,所述隊列中的每個數(shù)據(jù)包,在該數(shù)據(jù)包的幀頭攜帶有所述隊列對應(yīng)的本源端節(jié)點的端口的MAC地址,以及本源端節(jié)點為該數(shù)據(jù)包分配的節(jié)點序 列號、源端序列號; 目的端節(jié)點,用于接收到數(shù)據(jù)包后,將該數(shù)據(jù)包中攜帶的發(fā)送方IP地址和源端序列號對應(yīng)記錄,以及該數(shù)據(jù)包中的上一跳節(jié)點發(fā)送該數(shù)據(jù)包的端口的MAC地址,以及所述上一跳節(jié)點為該數(shù)據(jù)包分配的節(jié)點序列號對應(yīng)記錄;并在每個確認周期到達時,針對每個記錄的MAC地址,查找出與該MAC地址對應(yīng)記錄的各節(jié)點序列號后從中確定出最大節(jié)點序列號和丟失的數(shù)據(jù)包的節(jié)點序列號;并向上一跳節(jié)點返回攜帶有確定出的節(jié)點序列號的確認信息;以及針對每個記錄的發(fā)送方IP地址,查找出與該發(fā)送方IP地址對應(yīng)記錄的各源端序列號后從中確定出最大源端序列號和丟失的數(shù)據(jù)包的源端序列號;根據(jù)該發(fā)送方IP地址返回攜帶有確定出的源端序列號的確認信息; 所述源端節(jié)點還用于接收到下一跳節(jié)點返回的攜帶有節(jié)點序列號的確認信息后,根據(jù)接收的確認信息確定出下一跳節(jié)點已接收的數(shù)據(jù)包和丟失的數(shù)據(jù)包后,將下一跳節(jié)點已接收的數(shù)據(jù)包從與所述下一跳節(jié)點所對應(yīng)的隊列中清除,將丟失的數(shù)據(jù)包重新發(fā)送;以及接收到所述目的端節(jié)點返回的攜帶有源端序列號的確認信息后,確定出所述目的端節(jié)點已接收的數(shù)據(jù)包和丟失的數(shù)據(jù)包后,將目的端節(jié)點已接收的數(shù)據(jù)包從隊列中清除,將丟失的數(shù)據(jù)包重新發(fā)送。
【文檔編號】H04L1/16GK104038322SQ201410268497
【公開日】2014年9月10日 申請日期:2014年6月16日 優(yōu)先權(quán)日:2014年6月16日
【發(fā)明者】佘春東 申請人:北京郵電大學