專利名稱:一種系統(tǒng)終端設備建立nat穿越通道的方法
技術領域:
本發(fā)明涉及計算機網絡通信技術領域,更具體地,本發(fā)明涉及一種系統(tǒng)終端設備 建立NAT穿越通道的方法。
背景技術:
眾所周知由于IP地址有限以及分配上的不均勻,導致網絡地址嚴重缺乏,從實際 應用和部署上看,網絡地址翻譯(Network Address Translator, NAT)技術是解決IP地址 不足情況下接入互聯(lián)網的重要方法。隨著個人信息設備的增多、網絡接入設備的普及和網 絡技術的發(fā)展,越來越多的公司、團體和家庭希望將這些設備以網絡的方式組織在一起,并 接入互聯(lián)網,但是出于安全的考慮,如何在網絡上隱藏高安全等級的節(jié)點是很多公司面臨 的問題,在這種IP地址嚴重缺乏、設備組網互聯(lián)需求迫切并且在大量安全隱患的情況下, 通過NAT技術形成的單級或者多級私網結構接入互聯(lián)網在實際部署中已經越來越普遍和 流行。NAT設備為NAT控制下的私有網絡(簡稱私網)地址提供地址翻譯功能,使得私網 內的主機可以透明地訪問外部網絡地址,反向訪問不可以,NAT下主機的私有網絡地址在外 部網絡中是不可路由的,外部網絡主機無法直接訪問位于私網內的主機,而且私網內的主 機之間在很多情況下也無法直接通信,這對很多主機部署在私網內的端到端通信帶來了很 多問題和挑戰(zhàn)。目前解決部署在私有網絡中的主機通信問題的技術是NAT穿越技術,有不少研究 團體、標準化組織都已做出了很多有意義的工作。目前常用的方法和技術有應用程序網 ^ (Application Lay Gate,ALG) >(Relaying)(Connection Reversal)洞(Hole Punching)技術等,也出現了像中間箱通信(Middle Box Communication)、簡單 UDP 穿越 NAT (SimpleTraversal of User Datagram Protocol Through NAT, STUN)、中繼 ^ NAT (Traversal Using Relay NAT, TURN) ^ ^ (InteractiveConnectivity Establishment, ICE)等一系列提交IETF用來解決NAT穿越問題的標準或草案?,F有的這些技術、標準和草案都存在這樣的問題沒有考慮多級NAT下的穿越問 題,或者只是簡單地使用中繼的方式通過公網服務器進行轉發(fā)實現穿越,或者是依賴NAT 設備本身Hairpin特性利用穿洞技術實現,這顯然是十分低效的,而且在很多場景下無法 實現。沒有考慮多級NAT下端到端通信的多樣性,也沒有充分利用多級NAT所構成私網內 的網絡資源。
發(fā)明內容
為克服現有NAT網絡環(huán)境中轉發(fā)穿越效率低并且測試速度慢的缺陷,本發(fā)明提出 了一種系統(tǒng)終端設備建立NAT穿越通道的方法。根據本發(fā)明的一個方面,提供了一種系統(tǒng)終端設備建立NAT穿越通道的方法,包 括
步驟1)、呼叫方系統(tǒng)終端設備通過轉發(fā)服務節(jié)點分別獲取轉發(fā)服務節(jié)點上的數據 接收端口及網絡地址、及其層級信息、NAT設備上的數據接收端口及網絡地址,并將轉發(fā)服 務節(jié)點上的數據接收端口及網絡地址、NAT設備上的數據接收端口及網絡地址和系統(tǒng)終端 設備上的數據接收端口及網絡地址送給被呼叫方的系統(tǒng)終端設備;步驟2、、被呼叫方系統(tǒng)終端設備收到所述呼叫方系統(tǒng)終端設備發(fā)送的攜帶有呼叫 方接收數據端口的網絡地址和端口后的連接請求后,通過轉發(fā)服務節(jié)點分別獲取轉發(fā)服務 節(jié)點上的數據接收端口及網絡地址、及其層級信息、NAT設備上的數據接收端口及網絡地 址;步驟3)、并行執(zhí)行被呼叫方的系統(tǒng)終端設備對于呼叫方的系統(tǒng)終端設備上的數據 接收端口及網絡地址的直通測試、呼叫方的轉發(fā)服務節(jié)點上的數據接收端口及網絡地址的 轉發(fā)測試以及呼叫方的NAT設備上的數據接收端口及網絡地址的穿越測試,發(fā)送測試請求 消息;步驟4)、被呼叫方的系統(tǒng)終端設備在所述直通測試、轉發(fā)及穿越測試進行中或者 完成后,根據測定的數據傳輸路徑和優(yōu)先級,選擇數據傳輸路徑。其中,所述系統(tǒng)終端設備包括路徑完成狀態(tài)記錄裝置,用于記錄路徑探測的完成狀態(tài);直通測試單元執(zhí)行狀態(tài)記錄裝置,用于記錄直通測試單元是否在執(zhí)行;轉發(fā)及穿越測試單元執(zhí)行狀態(tài)記錄裝置,用于記錄轉發(fā)及穿越測試單元是否在執(zhí) 行;完成優(yōu)先級狀態(tài)記錄裝置,用于記錄當前完成狀態(tài)是由直通測試單元還是轉發(fā)及 穿越測試單元完成;所述測試請求消息中包括所述被呼叫方的轉發(fā)服務節(jié)點上的數據接收測試點、系 統(tǒng)終端設備上的數據接收測試點。其中,步驟3)進一步包括步驟A20)、所述被呼叫方的系統(tǒng)終端設備通過自身的數據發(fā)送測試點向呼叫方的 系統(tǒng)終端設備的自身的數據接收測試點發(fā)送直通測試請求;步驟A21)、呼叫方的系統(tǒng)終端設備接收到直通測試請求消息后,進行直通測試,并 返回應答消息;步驟A2》、當所述應答消息未經過轉發(fā)服務器,或者所述被呼叫方的系統(tǒng)終端設 備通過自身的數據接收測試點向呼叫方系統(tǒng)終端設備強制測試點發(fā)出強制測試消息,所述 被呼叫方的系統(tǒng)終端設備確認呼叫方接收數據端口的網絡地址和端口,設置路徑完成狀 態(tài)。其中,步驟A20)中,所述被呼叫方在系統(tǒng)終端設備上的數據接收測試點等待返回 消息。其中,步驟A22)進一步包括步驟A220)、被呼叫方的系統(tǒng)終端設備獲取返回消息,確認雙方可以直通可達,以 雙方的系統(tǒng)終端設備上的數據接收測試點為各自接收地址,向呼叫方返回所述被呼叫方系 統(tǒng)終端設備上的數據接收測試點,路徑完成狀態(tài)置位,完成優(yōu)先級狀態(tài)設為直通測試。其中,步驟A22)進一步包括
步驟A220)、被呼叫方的系統(tǒng)終端設備確認雙方不可以直通可達,獲取應答消息中 的強制測試點,從系統(tǒng)終端設備上的數據接收測試點向強制測試點發(fā)送強制測試消息;步驟A221)被呼叫方的系統(tǒng)終端設備的數據接收測試點收到所述返回的強制測 試應答消息后,獲取應答消息中的測試點,將其作為新的NAT設備上的數據接收測試點,向 呼叫方的系統(tǒng)終端設備上的數據接收測試點發(fā)送穿越直通測試請求消息,所述穿越直通測 試請求消息中包含新的NAT設備上的數據接收測試點;步驟A222)、被呼叫方的系統(tǒng)終端設備獲取返回消息,確認雙方可以經過NAT設備 轉發(fā)的直通,以被呼叫方的系統(tǒng)終端設備的新的NAT設備上的數據接收測試點和呼叫方的 系統(tǒng)終端設備的轉發(fā)服務節(jié)點上的數據接收測試點為各自接收地址,記錄接收對應關系, 路徑完成狀態(tài)置位,完成優(yōu)先級狀態(tài)設為直通測試。其中,步驟3)進一步包括步驟B20)、所述被呼叫方的系統(tǒng)終端設備通過自身的數據發(fā)送測試點向呼叫方轉 發(fā)服務節(jié)點上的數據接收測試點發(fā)起轉發(fā)測試;步驟B21)、呼叫方的系統(tǒng)終端設備接收到轉發(fā)測試消息后,進行轉發(fā)測試,并返回 應答消息;步驟B2》、當返回的應答消息中存在未經過轉發(fā)點轉發(fā)的應答消息,所述被呼叫 方確定路徑完成狀態(tài)未置位后從系統(tǒng)終端設備的數據發(fā)送測試點向呼叫方轉發(fā)服務節(jié)點 上的數據接收測試點發(fā)送非對稱轉發(fā)測試請求;步驟B2!3)、當返回的應答消息中不存在未經過轉發(fā)點轉發(fā)的應答消息,確認更新 呼叫方的轉發(fā)點,調整轉發(fā)點,重新開始轉發(fā)測試;如果沒有新的轉發(fā)點則開始穿越測試。其中,步驟B20)中,所述轉發(fā)測試的測試請求消息中包括所述被呼叫方的轉發(fā)服 務節(jié)點上的數據接收測試點、NAT設備上的數據接收測試點或者系統(tǒng)終端設備上的數據接 收測試點、被呼叫方的轉發(fā)服務節(jié)點上的數據接收測試點的層級信息,所述被呼叫方在系 統(tǒng)終端設備的數據接收測試點等待返回消息。其中,步驟B2》進一步包括判斷測試未產生穿越測試點后,確認緩存的消息中有經過轉發(fā)點轉發(fā)的應答消 息;確認更新呼叫方的轉發(fā)點,調整轉發(fā)點,重新開始轉發(fā)測試。其中,步驟B2》中,確定產生穿越測試點的步驟進一步包括步驟B220)、在被呼叫方的系統(tǒng)終端設備上的數據發(fā)送測試點上等待強制測試消 息;步驟B221)、獲取攜帶強制測試消息的數據分組攜帶的源地址和源端口,并向所述 源地址和端口返回包括所述源地址和端口的強制測試應答消息;步驟B22》、被呼叫方的系統(tǒng)終端設備獲取來自呼叫方的非對稱轉發(fā)測試請求的 應答信息,用測試獲得的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點代替原來 呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點。其中,步驟B2》進一步包括步驟B220)、當緩存的消息中存在經過轉發(fā)點轉發(fā)的應答消息,獲取返回消息中的 路徑信息和獲取被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口,從被呼叫方的系統(tǒng)終端 設備上的數據接收測試點向被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口發(fā)送穿洞消息;步驟B221)、判斷返回的應答消息中是否有呼叫方新的轉發(fā)服務節(jié)點的數據接收 測試點出現;步驟B222)、如果有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,調整轉發(fā)測 試點,以獲取的呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點代替原來的被呼叫方轉發(fā)服務 節(jié)點上的數據接收測試點,新的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點代 替原來的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點;步驟B223)、如果沒有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,以雙方的 轉發(fā)服務節(jié)點上的數據接收測試點為各自的數據接收地址,記錄接收對應關系。其中,步驟B2!3)進一步包括步驟B230)、當返回的應答消息中不存在未經過轉發(fā)點轉發(fā)的應答消息,獲取返回 消息中的路徑信息和獲取被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口,從被呼叫方的 系統(tǒng)終端設備上的數據接收測試點向被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口發(fā) 送穿洞消息;步驟B231)、判斷返回的應答消息中是否有呼叫方新的轉發(fā)服務節(jié)點的數據接收 測試點出現;步驟B232)、如果有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,調整轉發(fā)測 試點,以獲取的呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點代替原來的被呼叫方轉發(fā)服務 節(jié)點上的數據接收測試點,新的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點代 替原來的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點;步驟B233)、如果沒有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,以雙方的 轉發(fā)服務節(jié)點上的數據接收測試點為各自的數據接收地址,記錄接收對應關系。其中,步驟3)進一步包括步驟C20)、所述被呼叫方的系統(tǒng)終端設備的數據發(fā)送測試點向呼叫方NAT設備上 的數據接收測試點發(fā)起NAT穿越測試;步驟C21)、呼叫方的系統(tǒng)終端設備接收到NAT穿越測試消息后,進行NAT穿越測 試,并返回應答消息;步驟C2》、所述被呼叫方的系統(tǒng)終端設備根據所述應答消息并確定路徑完成狀態(tài) 未置位后確定對于被呼叫方可用的呼叫方接收數據的網絡地址和端口。其中,步驟C2》進一步包括步驟C220)、被呼叫方在系統(tǒng)終端設備上的數據接收測試點等待應答消息;步驟C221)、判斷記錄的接收對應關系中是否存在以雙方轉發(fā)服務節(jié)點上的數據 接收測試點作為接收對應關系的記錄;步驟C222)、如果存在,以雙方的NAT設備上的數據接收測試點作為各自的接收地 址,建立接收對應關系,并記錄所述接收對應關系;步驟C22!3)、如果不存在,以被呼叫方的系統(tǒng)終端設備上的數據接收測試點和呼叫 方的系統(tǒng)終端設備的NAT設備上的數據接收測試點作為各自的接收地址,建立接收對應關 系,并記錄所述接收對應關系。其中,步驟4)進一步包括
確定直通測試、轉發(fā)及穿越測試停止;確定檢查數據傳輸路徑測定;根據優(yōu)先級選擇測定數據傳輸路徑,如果路徑完成優(yōu)先級為直通測試單元,輸出 結果為直通測試單元探測的路徑,如果路徑完成優(yōu)先級為轉發(fā)和穿越測試單元,輸出結果 為轉發(fā)和穿越測試單元探測的路徑。本發(fā)明考慮多級NAT下端到端通信的多樣性,充分利用多級NAT所構成私網內的 網絡資源,可以在多種場景下實現NAT的穿越;該方法可以適用于全錐型、IP限制型、IP及 端口限制型、對稱型等基本NAT設備及其組合后構建的單層、多層網絡環(huán)境。在同根多層 NAT網絡下,可以將數據流限制在私有網絡中,從而減小骨干網絡的壓力;在測試過程中, 通過直通測試和轉發(fā)及穿越測試的并行執(zhí)行,改變了轉發(fā)測試要等待直通測試完成的情 況。對于分處于不同的NAT設備后的用戶終端來說,節(jié)省了等待直通測試完成的時間,提高 了路徑探測速度。在轉發(fā)和穿越測試單元的轉發(fā)測試、穿越測試流程的執(zhí)行過程中,通過對 路徑完成狀態(tài)的監(jiān)測,可以根據路經實際測試結果,隨時終止后續(xù)測試。不影響直通測試的 效率。
圖IA是示出根據本發(fā)明實施例的同根多層NAT網絡的示意圖;圖IB是示出根據本發(fā)明實施例的測試方的總測試方法流程圖;圖2是示出根據本發(fā)明實施例的測試方直通測試單元的流程圖;圖3是示出根據本發(fā)明實施例的測試方轉發(fā)測試流程圖;圖4是示出根據本發(fā)明實施例的測試方穿越測試流程圖;圖5是示出根據本發(fā)明實施例的檢測各測試單元停止測試的流程圖。
具體實施例方式下面結合附圖和具體實施例,對本發(fā)明提供的一種系統(tǒng)終端設備建立NAT穿越通 道的方法作進一步說明。在同一申請人于2008年4月21日提出的申請?zhí)枮?00810104586. 0的中國專利 申請“一種系統(tǒng)終端設備建立NAT穿越通道的方法”中提出了一種位居NAT設備后的主機 間建立數據通道的方法,該專利申請的技術內容通過引用全部包含在本申請中。發(fā)明人對專利申請200810104586. 0的方法進一步研究發(fā)現穿越測試時,需要在 轉發(fā)測試的反向打洞操作后進行,而直通測試和轉發(fā)測試間沒有類似的操作要求。從而,在 處于不同NAT設備后的終端請求通訊、位于NAT外部的終端向位于NAT內容的終端請求通 訊的情況下,測試速度較慢。圖IA所示為本發(fā)明的方法所應用的同根多層NAT網絡的結構示意圖,一個私有網 絡4-1通過NAT設備1001接入公有網絡3,一個私有網絡4_2通過另一 NAT設備1002接 入私有網絡4-1。通過NAT設備1001接入公有網絡3的私有網絡為該NAT設備控制的網 絡,通過NAT設備1002接入私有網絡4-1的私有網絡4-2為該NAT設備控制的網絡。直接 同公有網絡3相連的NAT設備為根NAT設備。各私有網絡到公有網絡3經過的最少NAT設 備的個數為該私有網絡的層數,該路徑為私有網絡到公有網絡3的最短路徑。私有網絡到公有網絡3的層數越少,表示層級越高。如果兩個私有網絡到公有網絡的最短路徑中至少 有一個NAT設備相同,則這兩個私有網絡有共同的根NAT設備。多層NAT網絡可以被看作 是多個同根多層NAT網絡的組合。多層NAT網絡可以被看作是多個同根多層NAT網絡的組 合。公有網絡的層級為0。多層NAT網絡在擴大用戶的接入數量的同時,也使通信雙方的相對位置變得更為 復雜。多層NAT網絡將公有網絡扁平化通信模式變成了層次化通信模式。多層NAT網絡環(huán) 境下,通信雙方典型關系為(1)通信雙方在公有網絡;( 通信一方在通過NAT設備擴展 的私有網絡中,另一方在公有網絡中;(3)通信雙方在同一NAT設備控制的私有網絡中;(4) 通信雙方在不同NAT設備控制的私有網絡中,且這兩個NAT設備通過不同的根NAT與公有 網絡的相連;( 通信雙方在不同NAT設備控制的私有網絡中,且這兩個NAT設備通過相同 的根NAT與公有網絡的相連。本發(fā)明將第五種情況所描述的NAT網絡稱為同根多層NAT網 絡。NAT設備的網絡地址指同NAT設備的外網界面綁定的網絡地址。對于規(guī)模較大的 私有網絡,NAT設備外網界面可以同多個網絡地址進行綁定。在網絡管理中,可以通過枚舉 地址或者枚舉網段的方式將多個網絡地址映射為一個NAT設備。普通用戶可以通過低端 NAT設備自行接入網絡,該NAT路由器外網界面一般與一個網絡地址綁定。在下面對NAT設 備的描述中,一個NAT設備外網界面只與一個網絡地址綁定。因此,一個NAT設備可以用一 個同該NAT設備的外網界面綁定的網絡地址代表。技術人員不難理解,下面描述的方法也 適用于外網界面同多個網絡地址綁定的NAT設備。為了方便對多層NAT網絡的描述,現定義如下名詞NAT設備的網絡地址是指該NAT設備的外網界面上綁定的網絡地址,或稱為NAT 路由器地址,該地址可以是公有地址,也可以是私有地址。直接上層網絡如果NAT設備A的外網界面同NAT設備B控制的網絡直接相連, NAT設備B控制的網絡為NAT設備A控制的網絡的直接上層網絡;公有網絡是根NAT設備 控制的網絡的直接上層網絡。直接下層網絡如果NAT設備A的外網界面同NAT設備B控制的網絡直接相連, NAT設備A控制的網絡為NAT設備B控制的網絡的直接下層網絡;根NAT設備控制的網絡 是公有網絡的直接下層網絡。
NAT路徑長度NAT環(huán)境下,主機A到B的可達路徑中經過NAT設備的個數為該NAT 路徑的長度。最短NAT路徑NAT環(huán)境下,主機A到B的所有NAT路徑中,NAT路徑長度最小的一 條稱為A到B的最短NAT路徑,所經過的NAT個數為最短NAT路徑長度。上層網絡從當前NAT設備控制的網絡的直接上層網絡起到公有網絡止的各NAT 設備控制的網絡及公有網絡,為當前NAT設備控制的網絡的上層網絡。下層網絡從公有網絡或當前NAT設備控制的網絡的直接下層網絡起的各NAT設 備控制的網絡,為公有網絡或當前NAT設備控制的網絡的下層網絡所屬網絡部署于公有網絡的設備的所屬網絡為公有網絡,部署在NAT設備控制 的網絡的設備的所屬網絡為NAT設備控制的網絡。NAT之后設備所屬網絡為公有網絡或當前NAT設備控制的網絡的下層網絡,則該設備在NAT之后?;驹O備及數據收發(fā)點類型轉發(fā)服務節(jié)點轉發(fā)服務節(jié)點用于協(xié)助希望相互通訊的系統(tǒng)終端設備建立數據傳 遞路徑或為系統(tǒng)終端設備進行數據轉發(fā);每個提供該轉發(fā)服務的節(jié)點需具有一個用于存儲 本服務節(jié)點的配置信息的裝置;該裝置存儲信息包括本服務節(jié)點主機名稱、本服務節(jié)點 主機網絡地址、端口、層級信息。通訊模塊,用于從網絡收發(fā)數據。服務點記錄裝置記錄轉 發(fā)服務節(jié)點上的數據接收測試點、及相對應的NAT設備上的數據接收測試點。邏輯控制模 塊控制轉發(fā)服務點的執(zhí)行。標識記錄表,用于記錄標識、該標識對應的系統(tǒng)終端設備的網絡 地址和端口、及相關NAT設備的網絡地址和端口。系統(tǒng)終端設備系統(tǒng)終端設備可以訪問轉發(fā)服務節(jié)點。在具體網絡應用系統(tǒng)中該 系統(tǒng)終端設備上可以運行客戶端,也可以運行服務端,或同時運行客戶端和服務端。系統(tǒng)終 端設備可以收發(fā)數據。系統(tǒng)終端設備有一個用于存儲設備的配置信息的裝置,該裝置存儲 本系統(tǒng)終端設備的標識、網絡地址,該標識使用當前設備的用戶的標識、或當前設備運行的 服務的標識。系統(tǒng)終端設備有一個用于記錄通訊雙方數據接收地址對應關系的裝置,包括 屬于本系統(tǒng)終端設備的用于接收數據的網絡地址和端口、屬于對方系統(tǒng)終端設備的用于接 收數據的網絡地址和端口等項目。系統(tǒng)終端設備有一個用于轉發(fā)服務節(jié)點的裝置,包括網 絡地址、端口、層級信息。系統(tǒng)終端設備有一個運行控制模塊,控制系統(tǒng)終端設備的執(zhí)行。系統(tǒng)終端設備還包括路徑完成狀態(tài)記錄裝置、直通測試單元執(zhí)行狀態(tài)記錄裝置、 轉發(fā)及穿越測試單元執(zhí)行狀態(tài)記錄裝置和完成優(yōu)先級狀態(tài)記錄裝置。其中,路徑完成狀態(tài) 記錄裝置用于記錄路徑探測的完成狀態(tài),如果路徑探測未完成,該紀錄裝置為空;如果路徑 探測完成,該紀錄裝置置位;直通測試單元執(zhí)行狀態(tài)記錄裝置用于記錄直通測試單元是否 在執(zhí)行,如果在執(zhí)行,狀態(tài)為置位,否則為空;轉發(fā)及穿越測試單元執(zhí)行狀態(tài)記錄裝置用于 記錄轉發(fā)及穿越測試單元是否在執(zhí)行,如果在執(zhí)行,狀態(tài)為置位,否則為空;完成優(yōu)先級狀 態(tài)記錄裝置用于記錄當前完成狀態(tài)是由直通測試單元還是轉發(fā)及穿越測試單元完成。直通 測試單元完成優(yōu)先級高于轉發(fā)及穿越測試單完成優(yōu)先級。本發(fā)明的方法將測試過程分為兩個相互獨立的流程單元直通測試單元;轉發(fā)及 穿越測試單元。如圖1所示,測試方的測試算法并行執(zhí)行直通測試;轉發(fā)及穿越測試。NAT環(huán)境下,系統(tǒng)終端設備(為描述方便,使用大寫字母表示)為了能夠接收數據, 需要獲得轉發(fā)服務節(jié)點上的數據接收測試點(r3)、NAT設備上的數據接收測試點(r2)、系 統(tǒng)終端設備上的數據接收測試點(rl)。上述數據接收端口可表示為Arl、Ar2、Ar3。同理, 系統(tǒng)終端設備的數據發(fā)送測試點可以表示為Asl、As2。在下面的描述中B為路徑測試發(fā)起 方,也就是被呼叫方,A為路徑測試響應方,也就是呼叫方?,F在參考圖1B,圖IB示出建立NAT穿越通道的測試方的主測試方法的流程圖。如 圖IB所示S0001 開始;S0002:將路徑完成狀態(tài)設置為空,表示還沒有產生測試通道,直通測試單元執(zhí)行 狀態(tài)設為空,轉發(fā)及穿越測試單元執(zhí)行狀態(tài)設為空;S0003 直通測試單元執(zhí)行狀態(tài)置位,轉發(fā)及穿越測試單元執(zhí)行狀態(tài)置位,同時執(zhí) 行啟動直通測試單元(S0100),啟動轉發(fā)及穿越測試單元(S0200);
S5100:檢查直通測試單元、轉發(fā)及穿越測試單元是否停止,如果沒有停止,跳轉到 S5100,繼續(xù)檢查各單元是否完成測試;S5200 檢查數據傳輸路徑是否測定,如果測定,跳轉到S5400,如果沒有測定,跳 轉到S5999,結束;S5400 根據優(yōu)先級選擇測定數據傳輸路徑,如果路徑完成優(yōu)先級為直通測試單 元,輸出結果為直通測試單元探測的路徑,如果路徑完成優(yōu)先級為轉發(fā)和穿越測試單元,輸 出結果為轉發(fā)和穿越測試單元探測的路徑;S5999 結束。由于直通測試單元,轉發(fā)及穿越測試單元并行執(zhí)行,因此本方法可以根據實際情 況,簡化為僅執(zhí)行直通測試單元,或簡化為僅執(zhí)行轉發(fā)及穿越測試單元。下面分別詳細描述直通測試單元、轉發(fā)及穿越測試單元的測試過程。從圖2-圖4 開始,結合具體測試步驟,對圖1中的部分步驟進行詳細說明,所說明的內容是原步驟的擴 展、具體化。直通路徑測試單元下面分別詳細描述直通測試測試方直通測試流程為圖2從S1000起,標號為 SlXXX的操作步驟;測試響應方直通測試流程參考中國專利申請200810104586. 0 “一種系 統(tǒng)終端設備建立NAT穿越通道的方法”的直通測試。圖2為測試方直通測試單元的流程S1000 從Bsl向被測試方Arl發(fā)送普通直通測試請求消息,該請求消息中包含測 試方Brl、Br3等信息;S1001 設置計時器BT1,在Brl地址等待應答消息,并判定是否超時,如果未超時 并收到應答消息,轉SlOll,如果超時,轉S1060 ;SlOll 提取攜帶應答消息的數據分組的源地址;S1012 根據攜帶應答消息的數據分組的源地址和Arl的網絡地址是否相同,判 定通信雙方是否直通可達,如果相同為直通可達,轉S1040,如果不相同為非直通可達,轉 S1020 ;S1040 確認以雙方的rl為各自的數據接收地址,在通訊雙方數據接收地址對應 關系的裝置中記錄雙方數據接收點對應關系,順序執(zhí)行S1050 ;S1020 獲取應答消息中的強制測試點,從Brl向強制測試點發(fā)送強制測試消息;S1031 設置計時器BT2,并在Brl等待反饋消息,判定是否超時,如果未超時并收 到應答消息,轉S1032,如果超時,轉S1060 ;S1032 獲取強制測試應答消息中的測試點P,記為Br2_neW,由Bsl向測試響應方 Arl發(fā)送穿越直通測試請求消息,消息中包含Br2_new ;S1033 設置計時器BT3,并在Brl等待應答消息,判定是否超時,如果未超時并收 到應答消息,轉S1034,如果超時,轉S1060 ;S1034 以Br2_new、Arl為參數,在通訊雙方數據接收地址對應關系的裝置中記錄 雙方數據接收點對應關系,順序執(zhí)行S1050 ;S1050:直通測試單元執(zhí)行狀態(tài)設為空,表示直通測試單元測試結束,路徑完成狀 態(tài)置位,表示測試雙方間的數據傳輸通道開通,完成優(yōu)先級狀態(tài)設為直通測試單元;
S1060 直通測試單元執(zhí)行狀態(tài)設為空,表示直通測試單元測試結束。轉發(fā)及穿越測試單元圖3為測試方的轉發(fā)測試流程S2000 從Bsl向測試響應方的Ar3發(fā)送普通轉發(fā)測試請求消息,消息體中包含測 試方B的測試點地址Brl Br2 Br3,缺省情況下本消息不帶Br3的層級信息,該層級信息可 作為選項添加到消息中;S2011 設置計時器 BTl ;S2012 在Brl等待返回信息;S2013 是否收到應答消息,如果收到應答消息,轉S2014,如果沒有收到應答消 息,轉 S2015 ;S2014:收到應答消息,記錄攜帶應答消息的數據分組的源地址,并緩存應答消 息;S2015 是否超時,如果超時,轉S2016,如果沒有超時,轉S2012 ;S2016 在BTl內是否收到應答消息,如果收到應答消息,轉S2017,如果沒有收到 應答消息,轉S2090 ;S2017 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S2090,如果沒有被置 位,轉 S2020 ;S2020 根據攜帶應答消息的源地址是否同Br3中的網絡地址相同,判定緩存的應 答消息中是否有未經過轉發(fā)點轉發(fā)的應答消息,如果有未經過轉發(fā)點轉發(fā)的應答消息,轉 S2030,如果沒有未經過轉發(fā)點轉發(fā)的應答消息,轉S2061 ;S2061 獲取返回消息體中路徑信息和測試方B的Br3添加的網絡地址、端口,從 Brl向測試響應方B的Br3添加的網絡地址、端口發(fā)送穿洞消息;S2062 應答消息中是否有新的轉發(fā)測試點地址出現,如果有,轉S2070,如果沒 有,轉 S2080 ;S2070 調整轉發(fā)測試點,以獲取新的轉發(fā)測試點Ar3_new代替Ar3、Ar2_neW代替 Ar2,順序執(zhí)行S2075 ;S2075 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S2090,如果沒有被置 位,轉 S2000 ;S2080 以雙方的r3為參數,在通訊雙方數據接收地址對應關系的裝置中記錄數 據接收測試點對應關系,順序執(zhí)行S3000(即開始穿越測試);S2030 從Bsl點向測試響應方A的Ar3發(fā)送非對稱轉發(fā)測試請求消息,消息體中 包含強制測試點Bsl ;S2041 設置計時器BT2,在Bsl上等待強制測試消息,判定是否超時,如果未超時 收到強制測試消息,轉S2047,如果超時,轉S2049,表示該測試沒有NAT設備上的數據接收 測試點產生;S2047 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S2090,如果沒有被置 位,轉 S2042 ;S2042:獲取攜帶強制測試消息的數據分組攜帶的源地址和源端口,記為訪問點 P,向P點返回強制測試應答消息,消息體中包含P ;
S2043 設置計時器BT3,在Brl上等待非對稱轉發(fā)測試應答消息,判定是否超時, 如果未超時收到非對稱轉發(fā)測試應答消息,轉S2048,如果超時,轉S2049,表示該測試沒有 NAT設備上的數據接收測試點產生;S2048 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S2090,如果沒有被置 位,轉 S2044 ;S2049 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S2090,如果沒有被置 位,轉 S2050 ;S2050 根據攜帶應答消息的源地址是否同Br3中的網絡地址相同,判定緩存的消 息中是否有經過Br3轉發(fā)的應答消息,如果有經過轉發(fā)點轉發(fā)的應答消息,轉S2061,如果 沒有經過Br3轉發(fā)的應答消息,轉S2090 ;S2044 獲取來自被測試方A的應答信息,用測試獲得的呼叫方的系統(tǒng)終端設備的 NAT設備上的數據接收測試點Ar2_new代替Ar2 ;S3000 測試方B從Bsl向測試響應方A發(fā)起NAT穿越路徑測試,開始執(zhí)行穿越路 徑測試;S2090:轉發(fā)和穿越測試單元執(zhí)行狀態(tài)設置為空,表示轉發(fā)和穿越測試單元停止測試ο圖4為測試方的穿越測試流程S3000 從Bsl向測試響應方的Ar2發(fā)送穿越測試請求消息;S3002 設置計時器BT1,在Brl上等待應答消息,判定是否超時,如果未超時并收 到應答消息,轉S3030,如果超時,轉S3020 ;S3020 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S3040,如果沒有被置 位,轉 S3003 ;S3030 檢查路徑完成檢驗狀態(tài)是否被置位,如果被置位,轉S3040,如果沒有被置 位,轉 S3004 ;S3004 在雙方數據接收記錄列表中以雙方轉發(fā)點r3作為接收對應關系的記錄是 否存在,如果存在,轉S3005,如果不存在,轉S3006 ;S3005 以雙方的r2為參數,在通訊雙方數據接收地址對應關系的裝置中記錄數 據接收測試點對應關系,順序執(zhí)行S3050 ;S3006 以Brl、Ar2為參數,在通訊雙方數據接收地址對應關系的裝置中記錄數據 接收測試點對應關系,順序執(zhí)行S3050 ;S3003 穿越測試失敗,不在雙方數據接收記錄列表中添加雙方接收地址對應關 系,順序執(zhí)行S3050 ;S3040:轉發(fā)和穿越測試單元執(zhí)行狀態(tài)設置為空,表示停止轉發(fā)和穿越測試單元的 測試;S3050:轉發(fā)和穿越測試單元執(zhí)行狀態(tài)設置為空,,路徑完成狀態(tài)置位,完成優(yōu)先級 狀態(tài)設為轉發(fā)和穿越測試單元,表示停止轉發(fā)和穿越測試單元的測試。圖5是各測試單元是否停止檢查方法S5100-100 檢查直通測試單元執(zhí)行狀態(tài),如果該狀態(tài)為空,轉S5100-200,否則, 轉S5100-100檢查直通測試單元執(zhí)行狀態(tài);
S5100-200 檢查轉發(fā)及穿越測試單元執(zhí)行狀態(tài),如果該狀態(tài)為空,轉S5200,否 則,轉S5100-200檢查轉發(fā)及穿越測試單元執(zhí)行狀態(tài)。注意到,圖3、圖4所示的檢查路徑完成狀態(tài)的方法,是在轉發(fā)和穿越測試單元執(zhí) 行過程中監(jiān)測路徑實際測試結果并終止后續(xù)測試的多種方法中的一種。同樣,也可以在 S2041、S2043、S3002等監(jiān)測超時的過程中,加入路徑完成狀態(tài)的監(jiān)測;或在轉發(fā)和穿越測 試單元執(zhí)行過程中的其它地方,加入路徑完成狀態(tài)的監(jiān)測;或用其它手段監(jiān)測路徑測試情 況,但不影響本方法提出的直通測試單元和轉發(fā)及穿越測試單元的并行執(zhí)行的主體流程。另外,圖5所示的各測試單元是否停止檢查方法是眾多檢查方法中的一種。如更 改S5100-200和S5100-100的順序,也能得到同樣的效果。有多種方法可以檢查直通測試 單元,轉發(fā)及穿越測試單元是否停止。如圖5所示,該方法通過檢查各測試單元執(zhí)行狀態(tài), 完成對直通測試單元,轉發(fā)及穿越測試單元是否停止的判定。由于直通測試單元,轉發(fā)及穿越測試單元并行執(zhí)行,因此作為另一種選擇,輸出測 試結果的步驟可以分別加入到直通測試單元,和轉發(fā)及穿越測試單元,主程序僅檢查路徑 完成狀態(tài)是否置位,如果置位則結束程序,如果未置位則等待,并反復檢測完成狀態(tài)是否置 位。在直通測試單元中加入輸出測試結果的具體步驟為直通測試單元測試完成后, 如果有測試結果,輸出測試結果,同時路徑完成狀態(tài)置位,直通測試單元執(zhí)行狀態(tài)設為空, 如果沒有測試結果,直通測試單元執(zhí)行狀態(tài)設為空。在轉發(fā)及穿越測試單元中加入輸出測試結果的具體步驟為轉發(fā)及穿越測試單 元測試完成后,檢查直通測試單元執(zhí)行狀態(tài)是否為空,如果直通測試單元執(zhí)行狀態(tài)為空,如 果本測試單元有測試結果,輸出測試結果,路徑完成狀態(tài)置位,如果直通測試單元執(zhí)行狀態(tài) 為空,如果本測試單元沒有測試結果,路徑完成狀態(tài)置位,如果直通測試單元執(zhí)行狀態(tài)不為 空,則等待,并反復檢查其是否為空。這種輸出測試結果的方法,實際上也將對直通測試單元,轉發(fā)及穿越測試單元是 否停止的判斷加入轉發(fā)及穿越測試單元。這種輸出測試結果的方法,在執(zhí)行步驟上規(guī)定了 直通測試單元,和轉發(fā)及穿越測試單元間的優(yōu)先性,因此可以省略完成優(yōu)先級狀態(tài)記錄裝置。在本發(fā)明中,所述轉發(fā)服務器、轉發(fā)服務點和轉發(fā)服務節(jié)點,在邏輯上都可認為是 轉發(fā)服務節(jié)點。在本發(fā)明中,用于實現本發(fā)明的方法的步驟可以不限于實施例中的組合,在具體 實現中可以去掉部分步驟,或者加入其他的本說明書中提到的步驟。最后應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非對其限制,并且 在應用上可以延伸到其他的修改、變化、應用和實施例,同時認為所有這樣的修改、變化、應 用、實施例都在本發(fā)明的精神和范圍內。
權利要求
1.一種系統(tǒng)終端設備建立NAT穿越通道的方法,包括步驟1)、呼叫方系統(tǒng)終端設備通過轉發(fā)服務節(jié)點分別獲取轉發(fā)服務節(jié)點上的數據接收 端口及網絡地址、及其層級信息、NAT設備上的數據接收端口及網絡地址,并將轉發(fā)服務節(jié) 點上的數據接收端口及網絡地址、NAT設備上的數據接收端口及網絡地址和系統(tǒng)終端設備 上的數據接收端口及網絡地址送給被呼叫方的系統(tǒng)終端設備;步驟i)、被呼叫方系統(tǒng)終端設備收到所述呼叫方系統(tǒng)終端設備發(fā)送的攜帶有呼叫方接 收數據端口的網絡地址和端口后的連接請求后,通過轉發(fā)服務節(jié)點分別獲取轉發(fā)服務節(jié)點 上的數據接收端口及網絡地址、及其層級信息、NAT設備上的數據接收端口及網絡地址;步驟3)、并行執(zhí)行被呼叫方的系統(tǒng)終端設備對于呼叫方的系統(tǒng)終端設備上的數據接 收端口及網絡地址的直通測試、呼叫方的轉發(fā)服務節(jié)點上的數據接收端口及網絡地址的轉 發(fā)測試以及呼叫方的NAT設備上的數據接收端口及網絡地址的穿越測試,發(fā)送測試請求消 息;步驟4)、被呼叫方的系統(tǒng)終端設備在所述直通測試、轉發(fā)及穿越測試進行中或者完成 后,根據測定的數據傳輸路徑和優(yōu)先級,選擇數據傳輸路徑。
2.權利要求1的方法,其中,所述系統(tǒng)終端設備包括 路徑完成狀態(tài)記錄裝置,用于記錄路徑探測的完成狀態(tài);直通測試單元執(zhí)行狀態(tài)記錄裝置,用于記錄直通測試單元是否在執(zhí)行; 轉發(fā)及穿越測試單元執(zhí)行狀態(tài)記錄裝置,用于記錄轉發(fā)及穿越測試單元是否在執(zhí)行; 完成優(yōu)先級狀態(tài)記錄裝置,用于記錄當前完成狀態(tài)是由直通測試單元還是轉發(fā)及穿越 測試單元完成;所述測試請求消息中包括所述被呼叫方的轉發(fā)服務節(jié)點上的數據接收測試點、系統(tǒng)終 端設備上的數據接收測試點。
3.權利要求2的方法,其中,步驟幻進一步包括步驟A20)、所述被呼叫方的系統(tǒng)終端設備通過自身的數據發(fā)送測試點向呼叫方的系統(tǒng) 終端設備的自身的數據接收測試點發(fā)送直通測試請求;步驟A21)、呼叫方的系統(tǒng)終端設備接收到直通測試請求消息后,進行直通測試,并返回 應答消息;步驟A2》、當所述應答消息未經過轉發(fā)服務器,或者所述被呼叫方的系統(tǒng)終端設備通 過自身的數據接收測試點向呼叫方系統(tǒng)終端設備強制測試點發(fā)出強制測試消息,所述被呼 叫方的系統(tǒng)終端設備確認呼叫方接收數據端口的網絡地址和端口,設置路徑完成狀態(tài)。
4.權利要求3的方法,其中,步驟A20)中,所述被呼叫方在系統(tǒng)終端設備上的數據接收 測試點等待返回消息。
5.權利要求4的方法,其中,步驟A2》進一步包括步驟A220)、被呼叫方的系統(tǒng)終端設備獲取返回消息,確認雙方可以直通可達,以雙方 的系統(tǒng)終端設備上的數據接收測試點為各自接收地址,向呼叫方返回所述被呼叫方系統(tǒng)終 端設備上的數據接收測試點,路徑完成狀態(tài)置位,完成優(yōu)先級狀態(tài)設為直通測試。
6.權利要求4的方法,其中,步驟A2》進一步包括步驟A220)、被呼叫方的系統(tǒng)終端設備確認雙方不可以直通可達,獲取應答消息中的強 制測試點,從系統(tǒng)終端設備上的數據接收測試點向強制測試點發(fā)送強制測試消息;步驟A221)被呼叫方的系統(tǒng)終端設備的數據接收測試點收到所述返回的強制測試應 答消息后,獲取應答消息中的測試點,將其作為新的NAT設備上的數據接收測試點,向呼叫 方的系統(tǒng)終端設備上的數據接收測試點發(fā)送穿越直通測試請求消息,所述穿越直通測試請 求消息中包含新的NAT設備上的數據接收測試點;步驟k222~)、被呼叫方的系統(tǒng)終端設備獲取返回消息,確認雙方可以經過NAT設備轉發(fā) 的直通,以被呼叫方的系統(tǒng)終端設備的新的NAT設備上的數據接收測試點和呼叫方的系統(tǒng) 終端設備的轉發(fā)服務節(jié)點上的數據接收測試點為各自接收地址,記錄接收對應關系,路徑 完成狀態(tài)置位,完成優(yōu)先級狀態(tài)設為直通測試。
7.權利要求2的方法,其中,步驟幻進一步包括步驟B20)、所述被呼叫方的系統(tǒng)終端設備通過自身的數據發(fā)送測試點向呼叫方轉發(fā)服 務節(jié)點上的數據接收測試點發(fā)起轉發(fā)測試;步驟B21)、呼叫方的系統(tǒng)終端設備接收到轉發(fā)測試消息后,進行轉發(fā)測試,并返回應答 消息;步驟B2》、當返回的應答消息中存在未經過轉發(fā)點轉發(fā)的應答消息,所述被呼叫方確 定路徑完成狀態(tài)未置位后從系統(tǒng)終端設備的數據發(fā)送測試點向呼叫方轉發(fā)服務節(jié)點上的 數據接收測試點發(fā)送非對稱轉發(fā)測試請求;步驟B2!3)、當返回的應答消息中不存在未經過轉發(fā)點轉發(fā)的應答消息,確認更新呼叫 方的轉發(fā)點,調整轉發(fā)點,重新開始轉發(fā)測試;如果沒有新的轉發(fā)點則開始穿越測試。
8.權利要求7的方法,其中,步驟B20)中,所述轉發(fā)測試的測試請求消息中包括所述被 呼叫方的轉發(fā)服務節(jié)點上的數據接收測試點、NAT設備上的數據接收測試點和系統(tǒng)終端設 備上的數據接收測試點,或者還包括被呼叫方的轉發(fā)服務節(jié)點上的數據接收測試點的層級 信息,所述被呼叫方在系統(tǒng)終端設備的數據接收測試點等待返回消息。
9.權利要求8的方法,其中,步驟B2》進一步包括判斷測試未產生穿越測試點后,確認緩存的消息中有經過轉發(fā)點轉發(fā)的應答消息;確 認更新呼叫方的轉發(fā)點,調整轉發(fā)點,重新開始轉發(fā)測試。
10.權利要求9的方法,其中,步驟B2》中,確定產生穿越測試點的步驟進一步包括 步驟B220)、在被呼叫方的系統(tǒng)終端設備上的數據發(fā)送測試點上等待強制測試消息; 步驟B221)、獲取攜帶強制測試消息的數據分組攜帶的源地址和源端口,并向所述源地址和端口返回包括所述源地址和端口的強制測試應答消息;步驟B22》、被呼叫方的系統(tǒng)終端設備獲取來自呼叫方的非對稱轉發(fā)測試請求的應答 信息,用測試獲得的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點代替原來呼叫 方的系統(tǒng)終端設備的NAT設備上的數據接收測試點。
11.權利要求9的方法,其中,步驟B2》進一步包括步驟B220)、當緩存的消息中存在經過轉發(fā)點轉發(fā)的應答消息,獲取返回消息中的路徑 信息和獲取被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口,從被呼叫方的系統(tǒng)終端設備 上的數據接收測試點向被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口發(fā)送穿洞消息;步驟B221)、判斷返回的應答消息中是否有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試 點出現;步驟B222)、如果有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,調整轉發(fā)測試點,以獲取的呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點代替原來的被呼叫方轉發(fā)服務節(jié) 點上的數據接收測試點,新的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點代替 原來的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點;步驟B223)、如果沒有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,以雙方的轉發(fā) 服務節(jié)點上的數據接收測試點為各自的數據接收地址,記錄接收對應關系。
12.權利要求7的方法,其中,步驟B2!3)進一步包括步驟B230)、當返回的應答消息中不存在未經過轉發(fā)點轉發(fā)的應答消息,獲取返回消息 中的路徑信息和獲取被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口,從被呼叫方的系統(tǒng) 終端設備上的數據接收測試點向被呼叫方的轉發(fā)服務節(jié)點添加的網絡地址和端口發(fā)送穿 洞消息;步驟B231)、判斷返回的應答消息中是否有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試 點出現;步驟B232)、如果有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,調整轉發(fā)測試 點,以獲取的呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點代替原來的被呼叫方轉發(fā)服務節(jié) 點上的數據接收測試點,新的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點代替 原來的呼叫方的系統(tǒng)終端設備的NAT設備上的數據接收測試點;步驟B233)、如果沒有呼叫方新的轉發(fā)服務節(jié)點的數據接收測試點出現,以雙方的轉發(fā) 服務節(jié)點上的數據接收測試點為各自的數據接收地址,記錄接收對應關系。
13.權利要求2的方法,其中,步驟幻進一步包括步驟C20)、所述被呼叫方的系統(tǒng)終端設備的數據發(fā)送測試點向呼叫方NAT設備上的數 據接收測試點發(fā)起NAT穿越測試;步驟C21)、呼叫方的系統(tǒng)終端設備接收到NAT穿越測試消息后,進行NAT穿越測試,并 返回應答消息;步驟C2》、所述被呼叫方的系統(tǒng)終端設備根據所述應答消息并確定路徑完成狀態(tài)未置 位后確定對于被呼叫方可用的呼叫方接收數據的網絡地址和端口。
14.權利要求13的方法,其中,步驟C2》進一步包括步驟C220)、被呼叫方在系統(tǒng)終端設備上的數據接收測試點等待應答消息; 步驟C221)、判斷記錄的接收對應關系中是否存在以雙方轉發(fā)服務節(jié)點上的數據接收 測試點作為接收對應關系的記錄;步驟C222)、如果存在,以雙方的NAT設備上的數據接收測試點作為各自的接收地址, 建立接收對應關系,并記錄所述接收對應關系;步驟C22!3)、如果不存在,以被呼叫方的系統(tǒng)終端設備上的數據接收測試點和呼叫方的 系統(tǒng)終端設備的NAT設備上的數據接收測試點作為各自的接收地址,建立接收對應關系, 并記錄所述接收對應關系。
15.權利要求2的方法,其中,步驟4)進一步包括 確定直通測試、轉發(fā)及穿越測試停止;確定檢查數據傳輸路徑測定;根據優(yōu)先級選擇測定數據傳輸路徑,如果路徑完成優(yōu)先級為直通測試單元,輸出結果 為直通測試單元探測的路徑,如果路徑完成優(yōu)先級為轉發(fā)和穿越測試單元,輸出結果為轉發(fā)和穿越測試單元探測的路徑。
全文摘要
本發(fā)明公開了一種系統(tǒng)終端設備建立NAT穿越通道的方法,包括呼叫方系統(tǒng)終端設備通過轉發(fā)服務節(jié)點分別獲取轉發(fā)服務節(jié)點上的數據接收端口及網絡地址、NAT設備上的數據接收端口及網絡地址和系統(tǒng)終端設備上的數據接收端口及網絡地址,并發(fā)送給被呼叫方的系統(tǒng)終端設備;被呼叫方的系統(tǒng)終端設備的數據發(fā)送端口向呼叫方系統(tǒng)終端設備分別并行進行直通測試、轉發(fā)測試和穿越測試,獲取呼叫方系統(tǒng)終端設備的接收數據端口的網絡地址和端口;將被呼叫方的系統(tǒng)終端設備的數據接收的網絡地址與端口發(fā)送給呼叫方系統(tǒng)終端設備。本發(fā)明考慮多級NAT下端到端通信的多樣性,充分利用多級NAT所構成私網內的網絡資源,可以在多種場景下實現NAT的穿越。
文檔編號H04L12/56GK102055659SQ20091023732
公開日2011年5月11日 申請日期2009年11月10日 優(yōu)先權日2009年11月10日
發(fā)明者傅川, 張國清 申請人:中國科學院計算技術研究所