两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種系統(tǒng)終端設(shè)備建立nat穿越通道的方法

文檔序號(hào):7719997閱讀:209來(lái)源:國(guó)知局
專利名稱:一種系統(tǒng)終端設(shè)備建立nat穿越通道的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,更具體地,本發(fā)明涉及一種系統(tǒng)終端設(shè)備 建立NAT穿越通道的方法。
背景技術(shù)
眾所周知由于IP地址有限以及分配上的不均勻,導(dǎo)致網(wǎng)絡(luò)地址嚴(yán)重缺乏,從實(shí)際 應(yīng)用和部署上看,網(wǎng)絡(luò)地址翻譯(Network Address Translator, NAT)技術(shù)是解決IP地址 不足情況下接入互聯(lián)網(wǎng)的重要方法。隨著個(gè)人信息設(shè)備的增多、網(wǎng)絡(luò)接入設(shè)備的普及和網(wǎng) 絡(luò)技術(shù)的發(fā)展,越來(lái)越多的公司、團(tuán)體和家庭希望將這些設(shè)備以網(wǎng)絡(luò)的方式組織在一起,并 接入互聯(lián)網(wǎng),但是出于安全的考慮,如何在網(wǎng)絡(luò)上隱藏高安全等級(jí)的節(jié)點(diǎn)是很多公司面臨 的問題,在這種IP地址嚴(yán)重缺乏、設(shè)備組網(wǎng)互聯(lián)需求迫切并且在大量安全隱患的情況下, 通過(guò)NAT技術(shù)形成的單級(jí)或者多級(jí)私網(wǎng)結(jié)構(gòu)接入互聯(lián)網(wǎng)在實(shí)際部署中已經(jīng)越來(lái)越普遍和 流行。NAT設(shè)備為NAT控制下的私有網(wǎng)絡(luò)(簡(jiǎn)稱私網(wǎng))地址提供地址翻譯功能,使得私網(wǎng) 內(nèi)的主機(jī)可以透明地訪問外部網(wǎng)絡(luò)地址,反向訪問不可以,NAT下主機(jī)的私有網(wǎng)絡(luò)地址在外 部網(wǎng)絡(luò)中是不可路由的,外部網(wǎng)絡(luò)主機(jī)無(wú)法直接訪問位于私網(wǎng)內(nèi)的主機(jī),而且私網(wǎng)內(nèi)的主 機(jī)之間在很多情況下也無(wú)法直接通信,這對(duì)很多主機(jī)部署在私網(wǎng)內(nèi)的端到端通信帶來(lái)了很 多問題和挑戰(zhàn)。目前解決部署在私有網(wǎng)絡(luò)中的主機(jī)通信問題的技術(shù)是NAT穿越技術(shù),有不少研究 團(tuán)體、標(biāo)準(zhǔn)化組織都已做出了很多有意義的工作。目前常用的方法和技術(shù)有應(yīng)用程序網(wǎng) ^ (Application Lay Gate,ALG) >(Relaying)(Connection Reversal)洞(Hole Punching)技術(shù)等,也出現(xiàn)了像中間箱通信(Middle Box Communication)、簡(jiǎn)單 UDP 穿越 NAT (SimpleTraversal of User Datagram Protocol Through NAT, STUN)、中繼 ^ NAT (Traversal Using Relay NAT, TURN) ^ ^ (InteractiveConnectivity Establishment, ICE)等一系列提交IETF用來(lái)解決NAT穿越問題的標(biāo)準(zhǔn)或草案?,F(xiàn)有的這些技術(shù)、標(biāo)準(zhǔn)和草案都存在這樣的問題沒有考慮多級(jí)NAT下的穿越問 題,或者只是簡(jiǎn)單地使用中繼的方式通過(guò)公網(wǎng)服務(wù)器進(jìn)行轉(zhuǎn)發(fā)實(shí)現(xiàn)穿越,或者是依賴NAT 設(shè)備本身Hairpin特性利用穿洞技術(shù)實(shí)現(xiàn),這顯然是十分低效的,而且在很多場(chǎng)景下無(wú)法 實(shí)現(xiàn)。沒有考慮多級(jí)NAT下端到端通信的多樣性,也沒有充分利用多級(jí)NAT所構(gòu)成私網(wǎng)內(nèi) 的網(wǎng)絡(luò)資源。

發(fā)明內(nèi)容
為克服現(xiàn)有NAT網(wǎng)絡(luò)環(huán)境中轉(zhuǎn)發(fā)穿越效率低并且測(cè)試速度慢的缺陷,本發(fā)明提出 了一種系統(tǒng)終端設(shè)備建立NAT穿越通道的方法。根據(jù)本發(fā)明的一個(gè)方面,提供了一種系統(tǒng)終端設(shè)備建立NAT穿越通道的方法,包 括
步驟1)、呼叫方系統(tǒng)終端設(shè)備通過(guò)轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)分別獲取轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù) 接收端口及網(wǎng)絡(luò)地址、及其層級(jí)信息、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址,并將轉(zhuǎn)發(fā)服 務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址和系統(tǒng)終端 設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址送給被呼叫方的系統(tǒng)終端設(shè)備;步驟2、、被呼叫方系統(tǒng)終端設(shè)備收到所述呼叫方系統(tǒng)終端設(shè)備發(fā)送的攜帶有呼叫 方接收數(shù)據(jù)端口的網(wǎng)絡(luò)地址和端口后的連接請(qǐng)求后,通過(guò)轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)分別獲取轉(zhuǎn)發(fā)服務(wù) 節(jié)點(diǎn)上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址、及其層級(jí)信息、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地 址;步驟3)、并行執(zhí)行被呼叫方的系統(tǒng)終端設(shè)備對(duì)于呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù) 接收端口及網(wǎng)絡(luò)地址的直通測(cè)試、呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址的 轉(zhuǎn)發(fā)測(cè)試以及呼叫方的NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址的穿越測(cè)試,發(fā)送測(cè)試請(qǐng)求 消息;步驟4)、被呼叫方的系統(tǒng)終端設(shè)備在所述直通測(cè)試、轉(zhuǎn)發(fā)及穿越測(cè)試進(jìn)行中或者 完成后,根據(jù)測(cè)定的數(shù)據(jù)傳輸路徑和優(yōu)先級(jí),選擇數(shù)據(jù)傳輸路徑。其中,所述系統(tǒng)終端設(shè)備包括路徑完成狀態(tài)記錄裝置,用于記錄路徑探測(cè)的完成狀態(tài);直通測(cè)試單元執(zhí)行狀態(tài)記錄裝置,用于記錄直通測(cè)試單元是否在執(zhí)行;轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)記錄裝置,用于記錄轉(zhuǎn)發(fā)及穿越測(cè)試單元是否在執(zhí) 行;完成優(yōu)先級(jí)狀態(tài)記錄裝置,用于記錄當(dāng)前完成狀態(tài)是由直通測(cè)試單元還是轉(zhuǎn)發(fā)及 穿越測(cè)試單元完成;所述測(cè)試請(qǐng)求消息中包括所述被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)、系 統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)。其中,步驟3)進(jìn)一步包括步驟A20)、所述被呼叫方的系統(tǒng)終端設(shè)備通過(guò)自身的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方的 系統(tǒng)終端設(shè)備的自身的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)送直通測(cè)試請(qǐng)求;步驟A21)、呼叫方的系統(tǒng)終端設(shè)備接收到直通測(cè)試請(qǐng)求消息后,進(jìn)行直通測(cè)試,并 返回應(yīng)答消息;步驟A2》、當(dāng)所述應(yīng)答消息未經(jīng)過(guò)轉(zhuǎn)發(fā)服務(wù)器,或者所述被呼叫方的系統(tǒng)終端設(shè) 備通過(guò)自身的數(shù)據(jù)接收測(cè)試點(diǎn)向呼叫方系統(tǒng)終端設(shè)備強(qiáng)制測(cè)試點(diǎn)發(fā)出強(qiáng)制測(cè)試消息,所述 被呼叫方的系統(tǒng)終端設(shè)備確認(rèn)呼叫方接收數(shù)據(jù)端口的網(wǎng)絡(luò)地址和端口,設(shè)置路徑完成狀 態(tài)。其中,步驟A20)中,所述被呼叫方在系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)等待返回 消息。其中,步驟A22)進(jìn)一步包括步驟A220)、被呼叫方的系統(tǒng)終端設(shè)備獲取返回消息,確認(rèn)雙方可以直通可達(dá),以 雙方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自接收地址,向呼叫方返回所述被呼叫方系 統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn),路徑完成狀態(tài)置位,完成優(yōu)先級(jí)狀態(tài)設(shè)為直通測(cè)試。其中,步驟A22)進(jìn)一步包括
步驟A220)、被呼叫方的系統(tǒng)終端設(shè)備確認(rèn)雙方不可以直通可達(dá),獲取應(yīng)答消息中 的強(qiáng)制測(cè)試點(diǎn),從系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)向強(qiáng)制測(cè)試點(diǎn)發(fā)送強(qiáng)制測(cè)試消息;步驟A221)被呼叫方的系統(tǒng)終端設(shè)備的數(shù)據(jù)接收測(cè)試點(diǎn)收到所述返回的強(qiáng)制測(cè) 試應(yīng)答消息后,獲取應(yīng)答消息中的測(cè)試點(diǎn),將其作為新的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn),向 呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)送穿越直通測(cè)試請(qǐng)求消息,所述穿越直通測(cè) 試請(qǐng)求消息中包含新的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn);步驟A222)、被呼叫方的系統(tǒng)終端設(shè)備獲取返回消息,確認(rèn)雙方可以經(jīng)過(guò)NAT設(shè)備 轉(zhuǎn)發(fā)的直通,以被呼叫方的系統(tǒng)終端設(shè)備的新的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)和呼叫方的 系統(tǒng)終端設(shè)備的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自接收地址,記錄接收對(duì)應(yīng)關(guān)系, 路徑完成狀態(tài)置位,完成優(yōu)先級(jí)狀態(tài)設(shè)為直通測(cè)試。其中,步驟3)進(jìn)一步包括步驟B20)、所述被呼叫方的系統(tǒng)終端設(shè)備通過(guò)自身的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方轉(zhuǎn) 發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)起轉(zhuǎn)發(fā)測(cè)試;步驟B21)、呼叫方的系統(tǒng)終端設(shè)備接收到轉(zhuǎn)發(fā)測(cè)試消息后,進(jìn)行轉(zhuǎn)發(fā)測(cè)試,并返回 應(yīng)答消息;步驟B2》、當(dāng)返回的應(yīng)答消息中存在未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,所述被呼叫 方確定路徑完成狀態(tài)未置位后從系統(tǒng)終端設(shè)備的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn) 上的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)送非對(duì)稱轉(zhuǎn)發(fā)測(cè)試請(qǐng)求;步驟B2!3)、當(dāng)返回的應(yīng)答消息中不存在未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,確認(rèn)更新 呼叫方的轉(zhuǎn)發(fā)點(diǎn),調(diào)整轉(zhuǎn)發(fā)點(diǎn),重新開始轉(zhuǎn)發(fā)測(cè)試;如果沒有新的轉(zhuǎn)發(fā)點(diǎn)則開始穿越測(cè)試。其中,步驟B20)中,所述轉(zhuǎn)發(fā)測(cè)試的測(cè)試請(qǐng)求消息中包括所述被呼叫方的轉(zhuǎn)發(fā)服 務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)、NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)或者系統(tǒng)終端設(shè)備上的數(shù)據(jù)接 收測(cè)試點(diǎn)、被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)的層級(jí)信息,所述被呼叫方在系 統(tǒng)終端設(shè)備的數(shù)據(jù)接收測(cè)試點(diǎn)等待返回消息。其中,步驟B2》進(jìn)一步包括判斷測(cè)試未產(chǎn)生穿越測(cè)試點(diǎn)后,確認(rèn)緩存的消息中有經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消 息;確認(rèn)更新呼叫方的轉(zhuǎn)發(fā)點(diǎn),調(diào)整轉(zhuǎn)發(fā)點(diǎn),重新開始轉(zhuǎn)發(fā)測(cè)試。其中,步驟B2》中,確定產(chǎn)生穿越測(cè)試點(diǎn)的步驟進(jìn)一步包括步驟B220)、在被呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)上等待強(qiáng)制測(cè)試消 息;步驟B221)、獲取攜帶強(qiáng)制測(cè)試消息的數(shù)據(jù)分組攜帶的源地址和源端口,并向所述 源地址和端口返回包括所述源地址和端口的強(qiáng)制測(cè)試應(yīng)答消息;步驟B22》、被呼叫方的系統(tǒng)終端設(shè)備獲取來(lái)自呼叫方的非對(duì)稱轉(zhuǎn)發(fā)測(cè)試請(qǐng)求的 應(yīng)答信息,用測(cè)試獲得的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)代替原來(lái) 呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)。其中,步驟B2》進(jìn)一步包括步驟B220)、當(dāng)緩存的消息中存在經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,獲取返回消息中的 路徑信息和獲取被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口,從被呼叫方的系統(tǒng)終端 設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)向被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口發(fā)送穿洞消息;步驟B221)、判斷返回的應(yīng)答消息中是否有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收 測(cè)試點(diǎn)出現(xiàn);步驟B222)、如果有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),調(diào)整轉(zhuǎn)發(fā)測(cè) 試點(diǎn),以獲取的呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)代替原來(lái)的被呼叫方轉(zhuǎn)發(fā)服務(wù) 節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn),新的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)代 替原來(lái)的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn);步驟B223)、如果沒有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),以雙方的 轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自的數(shù)據(jù)接收地址,記錄接收對(duì)應(yīng)關(guān)系。其中,步驟B2!3)進(jìn)一步包括步驟B230)、當(dāng)返回的應(yīng)答消息中不存在未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,獲取返回 消息中的路徑信息和獲取被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口,從被呼叫方的 系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)向被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口發(fā) 送穿洞消息;步驟B231)、判斷返回的應(yīng)答消息中是否有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收 測(cè)試點(diǎn)出現(xiàn);步驟B232)、如果有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),調(diào)整轉(zhuǎn)發(fā)測(cè) 試點(diǎn),以獲取的呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)代替原來(lái)的被呼叫方轉(zhuǎn)發(fā)服務(wù) 節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn),新的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)代 替原來(lái)的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn);步驟B233)、如果沒有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),以雙方的 轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自的數(shù)據(jù)接收地址,記錄接收對(duì)應(yīng)關(guān)系。其中,步驟3)進(jìn)一步包括步驟C20)、所述被呼叫方的系統(tǒng)終端設(shè)備的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方NAT設(shè)備上 的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)起NAT穿越測(cè)試;步驟C21)、呼叫方的系統(tǒng)終端設(shè)備接收到NAT穿越測(cè)試消息后,進(jìn)行NAT穿越測(cè) 試,并返回應(yīng)答消息;步驟C2》、所述被呼叫方的系統(tǒng)終端設(shè)備根據(jù)所述應(yīng)答消息并確定路徑完成狀態(tài) 未置位后確定對(duì)于被呼叫方可用的呼叫方接收數(shù)據(jù)的網(wǎng)絡(luò)地址和端口。其中,步驟C2》進(jìn)一步包括步驟C220)、被呼叫方在系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)等待應(yīng)答消息;步驟C221)、判斷記錄的接收對(duì)應(yīng)關(guān)系中是否存在以雙方轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù) 接收測(cè)試點(diǎn)作為接收對(duì)應(yīng)關(guān)系的記錄;步驟C222)、如果存在,以雙方的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)作為各自的接收地 址,建立接收對(duì)應(yīng)關(guān)系,并記錄所述接收對(duì)應(yīng)關(guān)系;步驟C22!3)、如果不存在,以被呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)和呼叫 方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)作為各自的接收地址,建立接收對(duì)應(yīng)關(guān) 系,并記錄所述接收對(duì)應(yīng)關(guān)系。其中,步驟4)進(jìn)一步包括
確定直通測(cè)試、轉(zhuǎn)發(fā)及穿越測(cè)試停止;確定檢查數(shù)據(jù)傳輸路徑測(cè)定;根據(jù)優(yōu)先級(jí)選擇測(cè)定數(shù)據(jù)傳輸路徑,如果路徑完成優(yōu)先級(jí)為直通測(cè)試單元,輸出 結(jié)果為直通測(cè)試單元探測(cè)的路徑,如果路徑完成優(yōu)先級(jí)為轉(zhuǎn)發(fā)和穿越測(cè)試單元,輸出結(jié)果 為轉(zhuǎn)發(fā)和穿越測(cè)試單元探測(cè)的路徑。本發(fā)明考慮多級(jí)NAT下端到端通信的多樣性,充分利用多級(jí)NAT所構(gòu)成私網(wǎng)內(nèi)的 網(wǎng)絡(luò)資源,可以在多種場(chǎng)景下實(shí)現(xiàn)NAT的穿越;該方法可以適用于全錐型、IP限制型、IP及 端口限制型、對(duì)稱型等基本NAT設(shè)備及其組合后構(gòu)建的單層、多層網(wǎng)絡(luò)環(huán)境。在同根多層 NAT網(wǎng)絡(luò)下,可以將數(shù)據(jù)流限制在私有網(wǎng)絡(luò)中,從而減小骨干網(wǎng)絡(luò)的壓力;在測(cè)試過(guò)程中, 通過(guò)直通測(cè)試和轉(zhuǎn)發(fā)及穿越測(cè)試的并行執(zhí)行,改變了轉(zhuǎn)發(fā)測(cè)試要等待直通測(cè)試完成的情 況。對(duì)于分處于不同的NAT設(shè)備后的用戶終端來(lái)說(shuō),節(jié)省了等待直通測(cè)試完成的時(shí)間,提高 了路徑探測(cè)速度。在轉(zhuǎn)發(fā)和穿越測(cè)試單元的轉(zhuǎn)發(fā)測(cè)試、穿越測(cè)試流程的執(zhí)行過(guò)程中,通過(guò)對(duì) 路徑完成狀態(tài)的監(jiān)測(cè),可以根據(jù)路經(jīng)實(shí)際測(cè)試結(jié)果,隨時(shí)終止后續(xù)測(cè)試。不影響直通測(cè)試的 效率。


圖IA是示出根據(jù)本發(fā)明實(shí)施例的同根多層NAT網(wǎng)絡(luò)的示意圖;圖IB是示出根據(jù)本發(fā)明實(shí)施例的測(cè)試方的總測(cè)試方法流程圖;圖2是示出根據(jù)本發(fā)明實(shí)施例的測(cè)試方直通測(cè)試單元的流程圖;圖3是示出根據(jù)本發(fā)明實(shí)施例的測(cè)試方轉(zhuǎn)發(fā)測(cè)試流程圖;圖4是示出根據(jù)本發(fā)明實(shí)施例的測(cè)試方穿越測(cè)試流程圖;圖5是示出根據(jù)本發(fā)明實(shí)施例的檢測(cè)各測(cè)試單元停止測(cè)試的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明提供的一種系統(tǒng)終端設(shè)備建立NAT穿越通 道的方法作進(jìn)一步說(shuō)明。在同一申請(qǐng)人于2008年4月21日提出的申請(qǐng)?zhí)枮?00810104586. 0的中國(guó)專利 申請(qǐng)“一種系統(tǒng)終端設(shè)備建立NAT穿越通道的方法”中提出了一種位居NAT設(shè)備后的主機(jī) 間建立數(shù)據(jù)通道的方法,該專利申請(qǐng)的技術(shù)內(nèi)容通過(guò)引用全部包含在本申請(qǐng)中。發(fā)明人對(duì)專利申請(qǐng)200810104586. 0的方法進(jìn)一步研究發(fā)現(xiàn)穿越測(cè)試時(shí),需要在 轉(zhuǎn)發(fā)測(cè)試的反向打洞操作后進(jìn)行,而直通測(cè)試和轉(zhuǎn)發(fā)測(cè)試間沒有類似的操作要求。從而,在 處于不同NAT設(shè)備后的終端請(qǐng)求通訊、位于NAT外部的終端向位于NAT內(nèi)容的終端請(qǐng)求通 訊的情況下,測(cè)試速度較慢。圖IA所示為本發(fā)明的方法所應(yīng)用的同根多層NAT網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,一個(gè)私有網(wǎng) 絡(luò)4-1通過(guò)NAT設(shè)備1001接入公有網(wǎng)絡(luò)3,一個(gè)私有網(wǎng)絡(luò)4_2通過(guò)另一 NAT設(shè)備1002接 入私有網(wǎng)絡(luò)4-1。通過(guò)NAT設(shè)備1001接入公有網(wǎng)絡(luò)3的私有網(wǎng)絡(luò)為該NAT設(shè)備控制的網(wǎng) 絡(luò),通過(guò)NAT設(shè)備1002接入私有網(wǎng)絡(luò)4-1的私有網(wǎng)絡(luò)4-2為該NAT設(shè)備控制的網(wǎng)絡(luò)。直接 同公有網(wǎng)絡(luò)3相連的NAT設(shè)備為根NAT設(shè)備。各私有網(wǎng)絡(luò)到公有網(wǎng)絡(luò)3經(jīng)過(guò)的最少NAT設(shè) 備的個(gè)數(shù)為該私有網(wǎng)絡(luò)的層數(shù),該路徑為私有網(wǎng)絡(luò)到公有網(wǎng)絡(luò)3的最短路徑。私有網(wǎng)絡(luò)到公有網(wǎng)絡(luò)3的層數(shù)越少,表示層級(jí)越高。如果兩個(gè)私有網(wǎng)絡(luò)到公有網(wǎng)絡(luò)的最短路徑中至少 有一個(gè)NAT設(shè)備相同,則這兩個(gè)私有網(wǎng)絡(luò)有共同的根NAT設(shè)備。多層NAT網(wǎng)絡(luò)可以被看作 是多個(gè)同根多層NAT網(wǎng)絡(luò)的組合。多層NAT網(wǎng)絡(luò)可以被看作是多個(gè)同根多層NAT網(wǎng)絡(luò)的組 合。公有網(wǎng)絡(luò)的層級(jí)為0。多層NAT網(wǎng)絡(luò)在擴(kuò)大用戶的接入數(shù)量的同時(shí),也使通信雙方的相對(duì)位置變得更為 復(fù)雜。多層NAT網(wǎng)絡(luò)將公有網(wǎng)絡(luò)扁平化通信模式變成了層次化通信模式。多層NAT網(wǎng)絡(luò)環(huán) 境下,通信雙方典型關(guān)系為(1)通信雙方在公有網(wǎng)絡(luò);( 通信一方在通過(guò)NAT設(shè)備擴(kuò)展 的私有網(wǎng)絡(luò)中,另一方在公有網(wǎng)絡(luò)中;(3)通信雙方在同一NAT設(shè)備控制的私有網(wǎng)絡(luò)中;(4) 通信雙方在不同NAT設(shè)備控制的私有網(wǎng)絡(luò)中,且這兩個(gè)NAT設(shè)備通過(guò)不同的根NAT與公有 網(wǎng)絡(luò)的相連;( 通信雙方在不同NAT設(shè)備控制的私有網(wǎng)絡(luò)中,且這兩個(gè)NAT設(shè)備通過(guò)相同 的根NAT與公有網(wǎng)絡(luò)的相連。本發(fā)明將第五種情況所描述的NAT網(wǎng)絡(luò)稱為同根多層NAT網(wǎng) 絡(luò)。NAT設(shè)備的網(wǎng)絡(luò)地址指同NAT設(shè)備的外網(wǎng)界面綁定的網(wǎng)絡(luò)地址。對(duì)于規(guī)模較大的 私有網(wǎng)絡(luò),NAT設(shè)備外網(wǎng)界面可以同多個(gè)網(wǎng)絡(luò)地址進(jìn)行綁定。在網(wǎng)絡(luò)管理中,可以通過(guò)枚舉 地址或者枚舉網(wǎng)段的方式將多個(gè)網(wǎng)絡(luò)地址映射為一個(gè)NAT設(shè)備。普通用戶可以通過(guò)低端 NAT設(shè)備自行接入網(wǎng)絡(luò),該NAT路由器外網(wǎng)界面一般與一個(gè)網(wǎng)絡(luò)地址綁定。在下面對(duì)NAT設(shè) 備的描述中,一個(gè)NAT設(shè)備外網(wǎng)界面只與一個(gè)網(wǎng)絡(luò)地址綁定。因此,一個(gè)NAT設(shè)備可以用一 個(gè)同該NAT設(shè)備的外網(wǎng)界面綁定的網(wǎng)絡(luò)地址代表。技術(shù)人員不難理解,下面描述的方法也 適用于外網(wǎng)界面同多個(gè)網(wǎng)絡(luò)地址綁定的NAT設(shè)備。為了方便對(duì)多層NAT網(wǎng)絡(luò)的描述,現(xiàn)定義如下名詞NAT設(shè)備的網(wǎng)絡(luò)地址是指該NAT設(shè)備的外網(wǎng)界面上綁定的網(wǎng)絡(luò)地址,或稱為NAT 路由器地址,該地址可以是公有地址,也可以是私有地址。直接上層網(wǎng)絡(luò)如果NAT設(shè)備A的外網(wǎng)界面同NAT設(shè)備B控制的網(wǎng)絡(luò)直接相連, NAT設(shè)備B控制的網(wǎng)絡(luò)為NAT設(shè)備A控制的網(wǎng)絡(luò)的直接上層網(wǎng)絡(luò);公有網(wǎng)絡(luò)是根NAT設(shè)備 控制的網(wǎng)絡(luò)的直接上層網(wǎng)絡(luò)。直接下層網(wǎng)絡(luò)如果NAT設(shè)備A的外網(wǎng)界面同NAT設(shè)備B控制的網(wǎng)絡(luò)直接相連, NAT設(shè)備A控制的網(wǎng)絡(luò)為NAT設(shè)備B控制的網(wǎng)絡(luò)的直接下層網(wǎng)絡(luò);根NAT設(shè)備控制的網(wǎng)絡(luò) 是公有網(wǎng)絡(luò)的直接下層網(wǎng)絡(luò)。
NAT路徑長(zhǎng)度NAT環(huán)境下,主機(jī)A到B的可達(dá)路徑中經(jīng)過(guò)NAT設(shè)備的個(gè)數(shù)為該NAT 路徑的長(zhǎng)度。最短N(yùn)AT路徑NAT環(huán)境下,主機(jī)A到B的所有NAT路徑中,NAT路徑長(zhǎng)度最小的一 條稱為A到B的最短N(yùn)AT路徑,所經(jīng)過(guò)的NAT個(gè)數(shù)為最短N(yùn)AT路徑長(zhǎng)度。上層網(wǎng)絡(luò)從當(dāng)前NAT設(shè)備控制的網(wǎng)絡(luò)的直接上層網(wǎng)絡(luò)起到公有網(wǎng)絡(luò)止的各NAT 設(shè)備控制的網(wǎng)絡(luò)及公有網(wǎng)絡(luò),為當(dāng)前NAT設(shè)備控制的網(wǎng)絡(luò)的上層網(wǎng)絡(luò)。下層網(wǎng)絡(luò)從公有網(wǎng)絡(luò)或當(dāng)前NAT設(shè)備控制的網(wǎng)絡(luò)的直接下層網(wǎng)絡(luò)起的各NAT設(shè) 備控制的網(wǎng)絡(luò),為公有網(wǎng)絡(luò)或當(dāng)前NAT設(shè)備控制的網(wǎng)絡(luò)的下層網(wǎng)絡(luò)所屬網(wǎng)絡(luò)部署于公有網(wǎng)絡(luò)的設(shè)備的所屬網(wǎng)絡(luò)為公有網(wǎng)絡(luò),部署在NAT設(shè)備控制 的網(wǎng)絡(luò)的設(shè)備的所屬網(wǎng)絡(luò)為NAT設(shè)備控制的網(wǎng)絡(luò)。NAT之后設(shè)備所屬網(wǎng)絡(luò)為公有網(wǎng)絡(luò)或當(dāng)前NAT設(shè)備控制的網(wǎng)絡(luò)的下層網(wǎng)絡(luò),則該設(shè)備在NAT之后。基本設(shè)備及數(shù)據(jù)收發(fā)點(diǎn)類型轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)用于協(xié)助希望相互通訊的系統(tǒng)終端設(shè)備建立數(shù)據(jù)傳 遞路徑或?yàn)橄到y(tǒng)終端設(shè)備進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā);每個(gè)提供該轉(zhuǎn)發(fā)服務(wù)的節(jié)點(diǎn)需具有一個(gè)用于存儲(chǔ) 本服務(wù)節(jié)點(diǎn)的配置信息的裝置;該裝置存儲(chǔ)信息包括本服務(wù)節(jié)點(diǎn)主機(jī)名稱、本服務(wù)節(jié)點(diǎn) 主機(jī)網(wǎng)絡(luò)地址、端口、層級(jí)信息。通訊模塊,用于從網(wǎng)絡(luò)收發(fā)數(shù)據(jù)。服務(wù)點(diǎn)記錄裝置記錄轉(zhuǎn) 發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)、及相對(duì)應(yīng)的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)。邏輯控制模 塊控制轉(zhuǎn)發(fā)服務(wù)點(diǎn)的執(zhí)行。標(biāo)識(shí)記錄表,用于記錄標(biāo)識(shí)、該標(biāo)識(shí)對(duì)應(yīng)的系統(tǒng)終端設(shè)備的網(wǎng)絡(luò) 地址和端口、及相關(guān)NAT設(shè)備的網(wǎng)絡(luò)地址和端口。系統(tǒng)終端設(shè)備系統(tǒng)終端設(shè)備可以訪問轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)。在具體網(wǎng)絡(luò)應(yīng)用系統(tǒng)中該 系統(tǒng)終端設(shè)備上可以運(yùn)行客戶端,也可以運(yùn)行服務(wù)端,或同時(shí)運(yùn)行客戶端和服務(wù)端。系統(tǒng)終 端設(shè)備可以收發(fā)數(shù)據(jù)。系統(tǒng)終端設(shè)備有一個(gè)用于存儲(chǔ)設(shè)備的配置信息的裝置,該裝置存儲(chǔ) 本系統(tǒng)終端設(shè)備的標(biāo)識(shí)、網(wǎng)絡(luò)地址,該標(biāo)識(shí)使用當(dāng)前設(shè)備的用戶的標(biāo)識(shí)、或當(dāng)前設(shè)備運(yùn)行的 服務(wù)的標(biāo)識(shí)。系統(tǒng)終端設(shè)備有一個(gè)用于記錄通訊雙方數(shù)據(jù)接收地址對(duì)應(yīng)關(guān)系的裝置,包括 屬于本系統(tǒng)終端設(shè)備的用于接收數(shù)據(jù)的網(wǎng)絡(luò)地址和端口、屬于對(duì)方系統(tǒng)終端設(shè)備的用于接 收數(shù)據(jù)的網(wǎng)絡(luò)地址和端口等項(xiàng)目。系統(tǒng)終端設(shè)備有一個(gè)用于轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的裝置,包括網(wǎng) 絡(luò)地址、端口、層級(jí)信息。系統(tǒng)終端設(shè)備有一個(gè)運(yùn)行控制模塊,控制系統(tǒng)終端設(shè)備的執(zhí)行。系統(tǒng)終端設(shè)備還包括路徑完成狀態(tài)記錄裝置、直通測(cè)試單元執(zhí)行狀態(tài)記錄裝置、 轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)記錄裝置和完成優(yōu)先級(jí)狀態(tài)記錄裝置。其中,路徑完成狀態(tài) 記錄裝置用于記錄路徑探測(cè)的完成狀態(tài),如果路徑探測(cè)未完成,該紀(jì)錄裝置為空;如果路徑 探測(cè)完成,該紀(jì)錄裝置置位;直通測(cè)試單元執(zhí)行狀態(tài)記錄裝置用于記錄直通測(cè)試單元是否 在執(zhí)行,如果在執(zhí)行,狀態(tài)為置位,否則為空;轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)記錄裝置用于 記錄轉(zhuǎn)發(fā)及穿越測(cè)試單元是否在執(zhí)行,如果在執(zhí)行,狀態(tài)為置位,否則為空;完成優(yōu)先級(jí)狀 態(tài)記錄裝置用于記錄當(dāng)前完成狀態(tài)是由直通測(cè)試單元還是轉(zhuǎn)發(fā)及穿越測(cè)試單元完成。直通 測(cè)試單元完成優(yōu)先級(jí)高于轉(zhuǎn)發(fā)及穿越測(cè)試單完成優(yōu)先級(jí)。本發(fā)明的方法將測(cè)試過(guò)程分為兩個(gè)相互獨(dú)立的流程單元直通測(cè)試單元;轉(zhuǎn)發(fā)及 穿越測(cè)試單元。如圖1所示,測(cè)試方的測(cè)試算法并行執(zhí)行直通測(cè)試;轉(zhuǎn)發(fā)及穿越測(cè)試。NAT環(huán)境下,系統(tǒng)終端設(shè)備(為描述方便,使用大寫字母表示)為了能夠接收數(shù)據(jù), 需要獲得轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)(r3)、NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)(r2)、系 統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)(rl)。上述數(shù)據(jù)接收端口可表示為Arl、Ar2、Ar3。同理, 系統(tǒng)終端設(shè)備的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)可以表示為Asl、As2。在下面的描述中B為路徑測(cè)試發(fā)起 方,也就是被呼叫方,A為路徑測(cè)試響應(yīng)方,也就是呼叫方?,F(xiàn)在參考圖1B,圖IB示出建立NAT穿越通道的測(cè)試方的主測(cè)試方法的流程圖。如 圖IB所示S0001 開始;S0002:將路徑完成狀態(tài)設(shè)置為空,表示還沒有產(chǎn)生測(cè)試通道,直通測(cè)試單元執(zhí)行 狀態(tài)設(shè)為空,轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)設(shè)為空;S0003 直通測(cè)試單元執(zhí)行狀態(tài)置位,轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)置位,同時(shí)執(zhí) 行啟動(dòng)直通測(cè)試單元(S0100),啟動(dòng)轉(zhuǎn)發(fā)及穿越測(cè)試單元(S0200);
S5100:檢查直通測(cè)試單元、轉(zhuǎn)發(fā)及穿越測(cè)試單元是否停止,如果沒有停止,跳轉(zhuǎn)到 S5100,繼續(xù)檢查各單元是否完成測(cè)試;S5200 檢查數(shù)據(jù)傳輸路徑是否測(cè)定,如果測(cè)定,跳轉(zhuǎn)到S5400,如果沒有測(cè)定,跳 轉(zhuǎn)到S5999,結(jié)束;S5400 根據(jù)優(yōu)先級(jí)選擇測(cè)定數(shù)據(jù)傳輸路徑,如果路徑完成優(yōu)先級(jí)為直通測(cè)試單 元,輸出結(jié)果為直通測(cè)試單元探測(cè)的路徑,如果路徑完成優(yōu)先級(jí)為轉(zhuǎn)發(fā)和穿越測(cè)試單元,輸 出結(jié)果為轉(zhuǎn)發(fā)和穿越測(cè)試單元探測(cè)的路徑;S5999 結(jié)束。由于直通測(cè)試單元,轉(zhuǎn)發(fā)及穿越測(cè)試單元并行執(zhí)行,因此本方法可以根據(jù)實(shí)際情 況,簡(jiǎn)化為僅執(zhí)行直通測(cè)試單元,或簡(jiǎn)化為僅執(zhí)行轉(zhuǎn)發(fā)及穿越測(cè)試單元。下面分別詳細(xì)描述直通測(cè)試單元、轉(zhuǎn)發(fā)及穿越測(cè)試單元的測(cè)試過(guò)程。從圖2-圖4 開始,結(jié)合具體測(cè)試步驟,對(duì)圖1中的部分步驟進(jìn)行詳細(xì)說(shuō)明,所說(shuō)明的內(nèi)容是原步驟的擴(kuò) 展、具體化。直通路徑測(cè)試單元下面分別詳細(xì)描述直通測(cè)試測(cè)試方直通測(cè)試流程為圖2從S1000起,標(biāo)號(hào)為 SlXXX的操作步驟;測(cè)試響應(yīng)方直通測(cè)試流程參考中國(guó)專利申請(qǐng)200810104586. 0 “一種系 統(tǒng)終端設(shè)備建立NAT穿越通道的方法”的直通測(cè)試。圖2為測(cè)試方直通測(cè)試單元的流程S1000 從Bsl向被測(cè)試方Arl發(fā)送普通直通測(cè)試請(qǐng)求消息,該請(qǐng)求消息中包含測(cè) 試方Brl、Br3等信息;S1001 設(shè)置計(jì)時(shí)器BT1,在Brl地址等待應(yīng)答消息,并判定是否超時(shí),如果未超時(shí) 并收到應(yīng)答消息,轉(zhuǎn)SlOll,如果超時(shí),轉(zhuǎn)S1060 ;SlOll 提取攜帶應(yīng)答消息的數(shù)據(jù)分組的源地址;S1012 根據(jù)攜帶應(yīng)答消息的數(shù)據(jù)分組的源地址和Arl的網(wǎng)絡(luò)地址是否相同,判 定通信雙方是否直通可達(dá),如果相同為直通可達(dá),轉(zhuǎn)S1040,如果不相同為非直通可達(dá),轉(zhuǎn) S1020 ;S1040 確認(rèn)以雙方的rl為各自的數(shù)據(jù)接收地址,在通訊雙方數(shù)據(jù)接收地址對(duì)應(yīng) 關(guān)系的裝置中記錄雙方數(shù)據(jù)接收點(diǎn)對(duì)應(yīng)關(guān)系,順序執(zhí)行S1050 ;S1020 獲取應(yīng)答消息中的強(qiáng)制測(cè)試點(diǎn),從Brl向強(qiáng)制測(cè)試點(diǎn)發(fā)送強(qiáng)制測(cè)試消息;S1031 設(shè)置計(jì)時(shí)器BT2,并在Brl等待反饋消息,判定是否超時(shí),如果未超時(shí)并收 到應(yīng)答消息,轉(zhuǎn)S1032,如果超時(shí),轉(zhuǎn)S1060 ;S1032 獲取強(qiáng)制測(cè)試應(yīng)答消息中的測(cè)試點(diǎn)P,記為Br2_neW,由Bsl向測(cè)試響應(yīng)方 Arl發(fā)送穿越直通測(cè)試請(qǐng)求消息,消息中包含Br2_new ;S1033 設(shè)置計(jì)時(shí)器BT3,并在Brl等待應(yīng)答消息,判定是否超時(shí),如果未超時(shí)并收 到應(yīng)答消息,轉(zhuǎn)S1034,如果超時(shí),轉(zhuǎn)S1060 ;S1034 以Br2_new、Arl為參數(shù),在通訊雙方數(shù)據(jù)接收地址對(duì)應(yīng)關(guān)系的裝置中記錄 雙方數(shù)據(jù)接收點(diǎn)對(duì)應(yīng)關(guān)系,順序執(zhí)行S1050 ;S1050:直通測(cè)試單元執(zhí)行狀態(tài)設(shè)為空,表示直通測(cè)試單元測(cè)試結(jié)束,路徑完成狀 態(tài)置位,表示測(cè)試雙方間的數(shù)據(jù)傳輸通道開通,完成優(yōu)先級(jí)狀態(tài)設(shè)為直通測(cè)試單元;
S1060 直通測(cè)試單元執(zhí)行狀態(tài)設(shè)為空,表示直通測(cè)試單元測(cè)試結(jié)束。轉(zhuǎn)發(fā)及穿越測(cè)試單元圖3為測(cè)試方的轉(zhuǎn)發(fā)測(cè)試流程S2000 從Bsl向測(cè)試響應(yīng)方的Ar3發(fā)送普通轉(zhuǎn)發(fā)測(cè)試請(qǐng)求消息,消息體中包含測(cè) 試方B的測(cè)試點(diǎn)地址Brl Br2 Br3,缺省情況下本消息不帶Br3的層級(jí)信息,該層級(jí)信息可 作為選項(xiàng)添加到消息中;S2011 設(shè)置計(jì)時(shí)器 BTl ;S2012 在Brl等待返回信息;S2013 是否收到應(yīng)答消息,如果收到應(yīng)答消息,轉(zhuǎn)S2014,如果沒有收到應(yīng)答消 息,轉(zhuǎn) S2015 ;S2014:收到應(yīng)答消息,記錄攜帶應(yīng)答消息的數(shù)據(jù)分組的源地址,并緩存應(yīng)答消 息;S2015 是否超時(shí),如果超時(shí),轉(zhuǎn)S2016,如果沒有超時(shí),轉(zhuǎn)S2012 ;S2016 在BTl內(nèi)是否收到應(yīng)答消息,如果收到應(yīng)答消息,轉(zhuǎn)S2017,如果沒有收到 應(yīng)答消息,轉(zhuǎn)S2090 ;S2017 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S2090,如果沒有被置 位,轉(zhuǎn) S2020 ;S2020 根據(jù)攜帶應(yīng)答消息的源地址是否同Br3中的網(wǎng)絡(luò)地址相同,判定緩存的應(yīng) 答消息中是否有未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,如果有未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,轉(zhuǎn) S2030,如果沒有未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,轉(zhuǎn)S2061 ;S2061 獲取返回消息體中路徑信息和測(cè)試方B的Br3添加的網(wǎng)絡(luò)地址、端口,從 Brl向測(cè)試響應(yīng)方B的Br3添加的網(wǎng)絡(luò)地址、端口發(fā)送穿洞消息;S2062 應(yīng)答消息中是否有新的轉(zhuǎn)發(fā)測(cè)試點(diǎn)地址出現(xiàn),如果有,轉(zhuǎn)S2070,如果沒 有,轉(zhuǎn) S2080 ;S2070 調(diào)整轉(zhuǎn)發(fā)測(cè)試點(diǎn),以獲取新的轉(zhuǎn)發(fā)測(cè)試點(diǎn)Ar3_new代替Ar3、Ar2_neW代替 Ar2,順序執(zhí)行S2075 ;S2075 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S2090,如果沒有被置 位,轉(zhuǎn) S2000 ;S2080 以雙方的r3為參數(shù),在通訊雙方數(shù)據(jù)接收地址對(duì)應(yīng)關(guān)系的裝置中記錄數(shù) 據(jù)接收測(cè)試點(diǎn)對(duì)應(yīng)關(guān)系,順序執(zhí)行S3000(即開始穿越測(cè)試);S2030 從Bsl點(diǎn)向測(cè)試響應(yīng)方A的Ar3發(fā)送非對(duì)稱轉(zhuǎn)發(fā)測(cè)試請(qǐng)求消息,消息體中 包含強(qiáng)制測(cè)試點(diǎn)Bsl ;S2041 設(shè)置計(jì)時(shí)器BT2,在Bsl上等待強(qiáng)制測(cè)試消息,判定是否超時(shí),如果未超時(shí) 收到強(qiáng)制測(cè)試消息,轉(zhuǎn)S2047,如果超時(shí),轉(zhuǎn)S2049,表示該測(cè)試沒有NAT設(shè)備上的數(shù)據(jù)接收 測(cè)試點(diǎn)產(chǎn)生;S2047 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S2090,如果沒有被置 位,轉(zhuǎn) S2042 ;S2042:獲取攜帶強(qiáng)制測(cè)試消息的數(shù)據(jù)分組攜帶的源地址和源端口,記為訪問點(diǎn) P,向P點(diǎn)返回強(qiáng)制測(cè)試應(yīng)答消息,消息體中包含P ;
S2043 設(shè)置計(jì)時(shí)器BT3,在Brl上等待非對(duì)稱轉(zhuǎn)發(fā)測(cè)試應(yīng)答消息,判定是否超時(shí), 如果未超時(shí)收到非對(duì)稱轉(zhuǎn)發(fā)測(cè)試應(yīng)答消息,轉(zhuǎn)S2048,如果超時(shí),轉(zhuǎn)S2049,表示該測(cè)試沒有 NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)產(chǎn)生;S2048 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S2090,如果沒有被置 位,轉(zhuǎn) S2044 ;S2049 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S2090,如果沒有被置 位,轉(zhuǎn) S2050 ;S2050 根據(jù)攜帶應(yīng)答消息的源地址是否同Br3中的網(wǎng)絡(luò)地址相同,判定緩存的消 息中是否有經(jīng)過(guò)Br3轉(zhuǎn)發(fā)的應(yīng)答消息,如果有經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,轉(zhuǎn)S2061,如果 沒有經(jīng)過(guò)Br3轉(zhuǎn)發(fā)的應(yīng)答消息,轉(zhuǎn)S2090 ;S2044 獲取來(lái)自被測(cè)試方A的應(yīng)答信息,用測(cè)試獲得的呼叫方的系統(tǒng)終端設(shè)備的 NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)Ar2_new代替Ar2 ;S3000 測(cè)試方B從Bsl向測(cè)試響應(yīng)方A發(fā)起NAT穿越路徑測(cè)試,開始執(zhí)行穿越路 徑測(cè)試;S2090:轉(zhuǎn)發(fā)和穿越測(cè)試單元執(zhí)行狀態(tài)設(shè)置為空,表示轉(zhuǎn)發(fā)和穿越測(cè)試單元停止測(cè)試ο圖4為測(cè)試方的穿越測(cè)試流程S3000 從Bsl向測(cè)試響應(yīng)方的Ar2發(fā)送穿越測(cè)試請(qǐng)求消息;S3002 設(shè)置計(jì)時(shí)器BT1,在Brl上等待應(yīng)答消息,判定是否超時(shí),如果未超時(shí)并收 到應(yīng)答消息,轉(zhuǎn)S3030,如果超時(shí),轉(zhuǎn)S3020 ;S3020 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S3040,如果沒有被置 位,轉(zhuǎn) S3003 ;S3030 檢查路徑完成檢驗(yàn)狀態(tài)是否被置位,如果被置位,轉(zhuǎn)S3040,如果沒有被置 位,轉(zhuǎn) S3004 ;S3004 在雙方數(shù)據(jù)接收記錄列表中以雙方轉(zhuǎn)發(fā)點(diǎn)r3作為接收對(duì)應(yīng)關(guān)系的記錄是 否存在,如果存在,轉(zhuǎn)S3005,如果不存在,轉(zhuǎn)S3006 ;S3005 以雙方的r2為參數(shù),在通訊雙方數(shù)據(jù)接收地址對(duì)應(yīng)關(guān)系的裝置中記錄數(shù) 據(jù)接收測(cè)試點(diǎn)對(duì)應(yīng)關(guān)系,順序執(zhí)行S3050 ;S3006 以Brl、Ar2為參數(shù),在通訊雙方數(shù)據(jù)接收地址對(duì)應(yīng)關(guān)系的裝置中記錄數(shù)據(jù) 接收測(cè)試點(diǎn)對(duì)應(yīng)關(guān)系,順序執(zhí)行S3050 ;S3003 穿越測(cè)試失敗,不在雙方數(shù)據(jù)接收記錄列表中添加雙方接收地址對(duì)應(yīng)關(guān) 系,順序執(zhí)行S3050 ;S3040:轉(zhuǎn)發(fā)和穿越測(cè)試單元執(zhí)行狀態(tài)設(shè)置為空,表示停止轉(zhuǎn)發(fā)和穿越測(cè)試單元的 測(cè)試;S3050:轉(zhuǎn)發(fā)和穿越測(cè)試單元執(zhí)行狀態(tài)設(shè)置為空,,路徑完成狀態(tài)置位,完成優(yōu)先級(jí) 狀態(tài)設(shè)為轉(zhuǎn)發(fā)和穿越測(cè)試單元,表示停止轉(zhuǎn)發(fā)和穿越測(cè)試單元的測(cè)試。圖5是各測(cè)試單元是否停止檢查方法S5100-100 檢查直通測(cè)試單元執(zhí)行狀態(tài),如果該狀態(tài)為空,轉(zhuǎn)S5100-200,否則, 轉(zhuǎn)S5100-100檢查直通測(cè)試單元執(zhí)行狀態(tài);
S5100-200 檢查轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài),如果該狀態(tài)為空,轉(zhuǎn)S5200,否 則,轉(zhuǎn)S5100-200檢查轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)。注意到,圖3、圖4所示的檢查路徑完成狀態(tài)的方法,是在轉(zhuǎn)發(fā)和穿越測(cè)試單元執(zhí) 行過(guò)程中監(jiān)測(cè)路徑實(shí)際測(cè)試結(jié)果并終止后續(xù)測(cè)試的多種方法中的一種。同樣,也可以在 S2041、S2043、S3002等監(jiān)測(cè)超時(shí)的過(guò)程中,加入路徑完成狀態(tài)的監(jiān)測(cè);或在轉(zhuǎn)發(fā)和穿越測(cè) 試單元執(zhí)行過(guò)程中的其它地方,加入路徑完成狀態(tài)的監(jiān)測(cè);或用其它手段監(jiān)測(cè)路徑測(cè)試情 況,但不影響本方法提出的直通測(cè)試單元和轉(zhuǎn)發(fā)及穿越測(cè)試單元的并行執(zhí)行的主體流程。另外,圖5所示的各測(cè)試單元是否停止檢查方法是眾多檢查方法中的一種。如更 改S5100-200和S5100-100的順序,也能得到同樣的效果。有多種方法可以檢查直通測(cè)試 單元,轉(zhuǎn)發(fā)及穿越測(cè)試單元是否停止。如圖5所示,該方法通過(guò)檢查各測(cè)試單元執(zhí)行狀態(tài), 完成對(duì)直通測(cè)試單元,轉(zhuǎn)發(fā)及穿越測(cè)試單元是否停止的判定。由于直通測(cè)試單元,轉(zhuǎn)發(fā)及穿越測(cè)試單元并行執(zhí)行,因此作為另一種選擇,輸出測(cè) 試結(jié)果的步驟可以分別加入到直通測(cè)試單元,和轉(zhuǎn)發(fā)及穿越測(cè)試單元,主程序僅檢查路徑 完成狀態(tài)是否置位,如果置位則結(jié)束程序,如果未置位則等待,并反復(fù)檢測(cè)完成狀態(tài)是否置 位。在直通測(cè)試單元中加入輸出測(cè)試結(jié)果的具體步驟為直通測(cè)試單元測(cè)試完成后, 如果有測(cè)試結(jié)果,輸出測(cè)試結(jié)果,同時(shí)路徑完成狀態(tài)置位,直通測(cè)試單元執(zhí)行狀態(tài)設(shè)為空, 如果沒有測(cè)試結(jié)果,直通測(cè)試單元執(zhí)行狀態(tài)設(shè)為空。在轉(zhuǎn)發(fā)及穿越測(cè)試單元中加入輸出測(cè)試結(jié)果的具體步驟為轉(zhuǎn)發(fā)及穿越測(cè)試單 元測(cè)試完成后,檢查直通測(cè)試單元執(zhí)行狀態(tài)是否為空,如果直通測(cè)試單元執(zhí)行狀態(tài)為空,如 果本測(cè)試單元有測(cè)試結(jié)果,輸出測(cè)試結(jié)果,路徑完成狀態(tài)置位,如果直通測(cè)試單元執(zhí)行狀態(tài) 為空,如果本測(cè)試單元沒有測(cè)試結(jié)果,路徑完成狀態(tài)置位,如果直通測(cè)試單元執(zhí)行狀態(tài)不為 空,則等待,并反復(fù)檢查其是否為空。這種輸出測(cè)試結(jié)果的方法,實(shí)際上也將對(duì)直通測(cè)試單元,轉(zhuǎn)發(fā)及穿越測(cè)試單元是 否停止的判斷加入轉(zhuǎn)發(fā)及穿越測(cè)試單元。這種輸出測(cè)試結(jié)果的方法,在執(zhí)行步驟上規(guī)定了 直通測(cè)試單元,和轉(zhuǎn)發(fā)及穿越測(cè)試單元間的優(yōu)先性,因此可以省略完成優(yōu)先級(jí)狀態(tài)記錄裝置。在本發(fā)明中,所述轉(zhuǎn)發(fā)服務(wù)器、轉(zhuǎn)發(fā)服務(wù)點(diǎn)和轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn),在邏輯上都可認(rèn)為是 轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)。在本發(fā)明中,用于實(shí)現(xiàn)本發(fā)明的方法的步驟可以不限于實(shí)施例中的組合,在具體 實(shí)現(xiàn)中可以去掉部分步驟,或者加入其他的本說(shuō)明書中提到的步驟。最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其限制,并且 在應(yīng)用上可以延伸到其他的修改、變化、應(yīng)用和實(shí)施例,同時(shí)認(rèn)為所有這樣的修改、變化、應(yīng) 用、實(shí)施例都在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種系統(tǒng)終端設(shè)備建立NAT穿越通道的方法,包括步驟1)、呼叫方系統(tǒng)終端設(shè)備通過(guò)轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)分別獲取轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收 端口及網(wǎng)絡(luò)地址、及其層級(jí)信息、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址,并將轉(zhuǎn)發(fā)服務(wù)節(jié) 點(diǎn)上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址和系統(tǒng)終端設(shè)備 上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址送給被呼叫方的系統(tǒng)終端設(shè)備;步驟i)、被呼叫方系統(tǒng)終端設(shè)備收到所述呼叫方系統(tǒng)終端設(shè)備發(fā)送的攜帶有呼叫方接 收數(shù)據(jù)端口的網(wǎng)絡(luò)地址和端口后的連接請(qǐng)求后,通過(guò)轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)分別獲取轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn) 上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址、及其層級(jí)信息、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址;步驟3)、并行執(zhí)行被呼叫方的系統(tǒng)終端設(shè)備對(duì)于呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接 收端口及網(wǎng)絡(luò)地址的直通測(cè)試、呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址的轉(zhuǎn) 發(fā)測(cè)試以及呼叫方的NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址的穿越測(cè)試,發(fā)送測(cè)試請(qǐng)求消 息;步驟4)、被呼叫方的系統(tǒng)終端設(shè)備在所述直通測(cè)試、轉(zhuǎn)發(fā)及穿越測(cè)試進(jìn)行中或者完成 后,根據(jù)測(cè)定的數(shù)據(jù)傳輸路徑和優(yōu)先級(jí),選擇數(shù)據(jù)傳輸路徑。
2.權(quán)利要求1的方法,其中,所述系統(tǒng)終端設(shè)備包括 路徑完成狀態(tài)記錄裝置,用于記錄路徑探測(cè)的完成狀態(tài);直通測(cè)試單元執(zhí)行狀態(tài)記錄裝置,用于記錄直通測(cè)試單元是否在執(zhí)行; 轉(zhuǎn)發(fā)及穿越測(cè)試單元執(zhí)行狀態(tài)記錄裝置,用于記錄轉(zhuǎn)發(fā)及穿越測(cè)試單元是否在執(zhí)行; 完成優(yōu)先級(jí)狀態(tài)記錄裝置,用于記錄當(dāng)前完成狀態(tài)是由直通測(cè)試單元還是轉(zhuǎn)發(fā)及穿越 測(cè)試單元完成;所述測(cè)試請(qǐng)求消息中包括所述被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)、系統(tǒng)終 端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)。
3.權(quán)利要求2的方法,其中,步驟幻進(jìn)一步包括步驟A20)、所述被呼叫方的系統(tǒng)終端設(shè)備通過(guò)自身的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方的系統(tǒng) 終端設(shè)備的自身的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)送直通測(cè)試請(qǐng)求;步驟A21)、呼叫方的系統(tǒng)終端設(shè)備接收到直通測(cè)試請(qǐng)求消息后,進(jìn)行直通測(cè)試,并返回 應(yīng)答消息;步驟A2》、當(dāng)所述應(yīng)答消息未經(jīng)過(guò)轉(zhuǎn)發(fā)服務(wù)器,或者所述被呼叫方的系統(tǒng)終端設(shè)備通 過(guò)自身的數(shù)據(jù)接收測(cè)試點(diǎn)向呼叫方系統(tǒng)終端設(shè)備強(qiáng)制測(cè)試點(diǎn)發(fā)出強(qiáng)制測(cè)試消息,所述被呼 叫方的系統(tǒng)終端設(shè)備確認(rèn)呼叫方接收數(shù)據(jù)端口的網(wǎng)絡(luò)地址和端口,設(shè)置路徑完成狀態(tài)。
4.權(quán)利要求3的方法,其中,步驟A20)中,所述被呼叫方在系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收 測(cè)試點(diǎn)等待返回消息。
5.權(quán)利要求4的方法,其中,步驟A2》進(jìn)一步包括步驟A220)、被呼叫方的系統(tǒng)終端設(shè)備獲取返回消息,確認(rèn)雙方可以直通可達(dá),以雙方 的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自接收地址,向呼叫方返回所述被呼叫方系統(tǒng)終 端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn),路徑完成狀態(tài)置位,完成優(yōu)先級(jí)狀態(tài)設(shè)為直通測(cè)試。
6.權(quán)利要求4的方法,其中,步驟A2》進(jìn)一步包括步驟A220)、被呼叫方的系統(tǒng)終端設(shè)備確認(rèn)雙方不可以直通可達(dá),獲取應(yīng)答消息中的強(qiáng) 制測(cè)試點(diǎn),從系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)向強(qiáng)制測(cè)試點(diǎn)發(fā)送強(qiáng)制測(cè)試消息;步驟A221)被呼叫方的系統(tǒng)終端設(shè)備的數(shù)據(jù)接收測(cè)試點(diǎn)收到所述返回的強(qiáng)制測(cè)試應(yīng) 答消息后,獲取應(yīng)答消息中的測(cè)試點(diǎn),將其作為新的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn),向呼叫 方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)送穿越直通測(cè)試請(qǐng)求消息,所述穿越直通測(cè)試請(qǐng) 求消息中包含新的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn);步驟k222~)、被呼叫方的系統(tǒng)終端設(shè)備獲取返回消息,確認(rèn)雙方可以經(jīng)過(guò)NAT設(shè)備轉(zhuǎn)發(fā) 的直通,以被呼叫方的系統(tǒng)終端設(shè)備的新的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)和呼叫方的系統(tǒng) 終端設(shè)備的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自接收地址,記錄接收對(duì)應(yīng)關(guān)系,路徑 完成狀態(tài)置位,完成優(yōu)先級(jí)狀態(tài)設(shè)為直通測(cè)試。
7.權(quán)利要求2的方法,其中,步驟幻進(jìn)一步包括步驟B20)、所述被呼叫方的系統(tǒng)終端設(shè)備通過(guò)自身的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方轉(zhuǎn)發(fā)服 務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)起轉(zhuǎn)發(fā)測(cè)試;步驟B21)、呼叫方的系統(tǒng)終端設(shè)備接收到轉(zhuǎn)發(fā)測(cè)試消息后,進(jìn)行轉(zhuǎn)發(fā)測(cè)試,并返回應(yīng)答 消息;步驟B2》、當(dāng)返回的應(yīng)答消息中存在未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,所述被呼叫方確 定路徑完成狀態(tài)未置位后從系統(tǒng)終端設(shè)備的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的 數(shù)據(jù)接收測(cè)試點(diǎn)發(fā)送非對(duì)稱轉(zhuǎn)發(fā)測(cè)試請(qǐng)求;步驟B2!3)、當(dāng)返回的應(yīng)答消息中不存在未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,確認(rèn)更新呼叫 方的轉(zhuǎn)發(fā)點(diǎn),調(diào)整轉(zhuǎn)發(fā)點(diǎn),重新開始轉(zhuǎn)發(fā)測(cè)試;如果沒有新的轉(zhuǎn)發(fā)點(diǎn)則開始穿越測(cè)試。
8.權(quán)利要求7的方法,其中,步驟B20)中,所述轉(zhuǎn)發(fā)測(cè)試的測(cè)試請(qǐng)求消息中包括所述被 呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)、NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)和系統(tǒng)終端設(shè) 備上的數(shù)據(jù)接收測(cè)試點(diǎn),或者還包括被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)的層級(jí) 信息,所述被呼叫方在系統(tǒng)終端設(shè)備的數(shù)據(jù)接收測(cè)試點(diǎn)等待返回消息。
9.權(quán)利要求8的方法,其中,步驟B2》進(jìn)一步包括判斷測(cè)試未產(chǎn)生穿越測(cè)試點(diǎn)后,確認(rèn)緩存的消息中有經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息;確 認(rèn)更新呼叫方的轉(zhuǎn)發(fā)點(diǎn),調(diào)整轉(zhuǎn)發(fā)點(diǎn),重新開始轉(zhuǎn)發(fā)測(cè)試。
10.權(quán)利要求9的方法,其中,步驟B2》中,確定產(chǎn)生穿越測(cè)試點(diǎn)的步驟進(jìn)一步包括 步驟B220)、在被呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)上等待強(qiáng)制測(cè)試消息; 步驟B221)、獲取攜帶強(qiáng)制測(cè)試消息的數(shù)據(jù)分組攜帶的源地址和源端口,并向所述源地址和端口返回包括所述源地址和端口的強(qiáng)制測(cè)試應(yīng)答消息;步驟B22》、被呼叫方的系統(tǒng)終端設(shè)備獲取來(lái)自呼叫方的非對(duì)稱轉(zhuǎn)發(fā)測(cè)試請(qǐng)求的應(yīng)答 信息,用測(cè)試獲得的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)代替原來(lái)呼叫 方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)。
11.權(quán)利要求9的方法,其中,步驟B2》進(jìn)一步包括步驟B220)、當(dāng)緩存的消息中存在經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,獲取返回消息中的路徑 信息和獲取被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口,從被呼叫方的系統(tǒng)終端設(shè)備 上的數(shù)據(jù)接收測(cè)試點(diǎn)向被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口發(fā)送穿洞消息;步驟B221)、判斷返回的應(yīng)答消息中是否有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試 點(diǎn)出現(xiàn);步驟B222)、如果有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),調(diào)整轉(zhuǎn)發(fā)測(cè)試點(diǎn),以獲取的呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)代替原來(lái)的被呼叫方轉(zhuǎn)發(fā)服務(wù)節(jié) 點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn),新的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)代替 原來(lái)的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn);步驟B223)、如果沒有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),以雙方的轉(zhuǎn)發(fā) 服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自的數(shù)據(jù)接收地址,記錄接收對(duì)應(yīng)關(guān)系。
12.權(quán)利要求7的方法,其中,步驟B2!3)進(jìn)一步包括步驟B230)、當(dāng)返回的應(yīng)答消息中不存在未經(jīng)過(guò)轉(zhuǎn)發(fā)點(diǎn)轉(zhuǎn)發(fā)的應(yīng)答消息,獲取返回消息 中的路徑信息和獲取被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口,從被呼叫方的系統(tǒng) 終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)向被呼叫方的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)添加的網(wǎng)絡(luò)地址和端口發(fā)送穿 洞消息;步驟B231)、判斷返回的應(yīng)答消息中是否有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試 點(diǎn)出現(xiàn);步驟B232)、如果有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),調(diào)整轉(zhuǎn)發(fā)測(cè)試 點(diǎn),以獲取的呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)代替原來(lái)的被呼叫方轉(zhuǎn)發(fā)服務(wù)節(jié) 點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn),新的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)代替 原來(lái)的呼叫方的系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn);步驟B233)、如果沒有呼叫方新的轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)的數(shù)據(jù)接收測(cè)試點(diǎn)出現(xiàn),以雙方的轉(zhuǎn)發(fā) 服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收測(cè)試點(diǎn)為各自的數(shù)據(jù)接收地址,記錄接收對(duì)應(yīng)關(guān)系。
13.權(quán)利要求2的方法,其中,步驟幻進(jìn)一步包括步驟C20)、所述被呼叫方的系統(tǒng)終端設(shè)備的數(shù)據(jù)發(fā)送測(cè)試點(diǎn)向呼叫方NAT設(shè)備上的數(shù) 據(jù)接收測(cè)試點(diǎn)發(fā)起NAT穿越測(cè)試;步驟C21)、呼叫方的系統(tǒng)終端設(shè)備接收到NAT穿越測(cè)試消息后,進(jìn)行NAT穿越測(cè)試,并 返回應(yīng)答消息;步驟C2》、所述被呼叫方的系統(tǒng)終端設(shè)備根據(jù)所述應(yīng)答消息并確定路徑完成狀態(tài)未置 位后確定對(duì)于被呼叫方可用的呼叫方接收數(shù)據(jù)的網(wǎng)絡(luò)地址和端口。
14.權(quán)利要求13的方法,其中,步驟C2》進(jìn)一步包括步驟C220)、被呼叫方在系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)等待應(yīng)答消息; 步驟C221)、判斷記錄的接收對(duì)應(yīng)關(guān)系中是否存在以雙方轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收 測(cè)試點(diǎn)作為接收對(duì)應(yīng)關(guān)系的記錄;步驟C222)、如果存在,以雙方的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)作為各自的接收地址, 建立接收對(duì)應(yīng)關(guān)系,并記錄所述接收對(duì)應(yīng)關(guān)系;步驟C22!3)、如果不存在,以被呼叫方的系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)和呼叫方的 系統(tǒng)終端設(shè)備的NAT設(shè)備上的數(shù)據(jù)接收測(cè)試點(diǎn)作為各自的接收地址,建立接收對(duì)應(yīng)關(guān)系, 并記錄所述接收對(duì)應(yīng)關(guān)系。
15.權(quán)利要求2的方法,其中,步驟4)進(jìn)一步包括 確定直通測(cè)試、轉(zhuǎn)發(fā)及穿越測(cè)試停止;確定檢查數(shù)據(jù)傳輸路徑測(cè)定;根據(jù)優(yōu)先級(jí)選擇測(cè)定數(shù)據(jù)傳輸路徑,如果路徑完成優(yōu)先級(jí)為直通測(cè)試單元,輸出結(jié)果 為直通測(cè)試單元探測(cè)的路徑,如果路徑完成優(yōu)先級(jí)為轉(zhuǎn)發(fā)和穿越測(cè)試單元,輸出結(jié)果為轉(zhuǎn)發(fā)和穿越測(cè)試單元探測(cè)的路徑。
全文摘要
本發(fā)明公開了一種系統(tǒng)終端設(shè)備建立NAT穿越通道的方法,包括呼叫方系統(tǒng)終端設(shè)備通過(guò)轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)分別獲取轉(zhuǎn)發(fā)服務(wù)節(jié)點(diǎn)上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址、NAT設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址和系統(tǒng)終端設(shè)備上的數(shù)據(jù)接收端口及網(wǎng)絡(luò)地址,并發(fā)送給被呼叫方的系統(tǒng)終端設(shè)備;被呼叫方的系統(tǒng)終端設(shè)備的數(shù)據(jù)發(fā)送端口向呼叫方系統(tǒng)終端設(shè)備分別并行進(jìn)行直通測(cè)試、轉(zhuǎn)發(fā)測(cè)試和穿越測(cè)試,獲取呼叫方系統(tǒng)終端設(shè)備的接收數(shù)據(jù)端口的網(wǎng)絡(luò)地址和端口;將被呼叫方的系統(tǒng)終端設(shè)備的數(shù)據(jù)接收的網(wǎng)絡(luò)地址與端口發(fā)送給呼叫方系統(tǒng)終端設(shè)備。本發(fā)明考慮多級(jí)NAT下端到端通信的多樣性,充分利用多級(jí)NAT所構(gòu)成私網(wǎng)內(nèi)的網(wǎng)絡(luò)資源,可以在多種場(chǎng)景下實(shí)現(xiàn)NAT的穿越。
文檔編號(hào)H04L12/56GK102055659SQ20091023732
公開日2011年5月11日 申請(qǐng)日期2009年11月10日 優(yōu)先權(quán)日2009年11月10日
發(fā)明者傅川, 張國(guó)清 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安岳县| 高邑县| 阿图什市| 丁青县| 皮山县| 康乐县| 云龙县| 丽水市| 忻州市| 贵定县| 蓬安县| 桃江县| 政和县| 临朐县| 永济市| 开封县| 富宁县| 乌苏市| 泾阳县| 邓州市| 民县| 渭南市| 磐石市| 民勤县| 大英县| 永德县| 开远市| 弥渡县| 十堰市| 湟中县| 富顺县| 融水| 瑞金市| 伊春市| 滦南县| 资源县| 调兵山市| 平度市| 德化县| 威宁| 苍梧县|