新四季網

一種建立對等直連通道的方法

2023-07-20 06:16:51 1

專利名稱:一種建立對等直連通道的方法
技術領域:
本發明涉及計算機網絡中節點的連接技術,特別是涉及一種建立對等直連(P2P,Peer to Peer)通道的方法。
背景技術:
在網絡中,兩個節點之間的連接方式一般有兩種一種是客戶端/伺服器方式的連接,客戶端申請服務,伺服器提供服務,通常這種連接方式是一對多的關係,如圖1所示,一個伺服器可以接收來自多個客戶端的申請,並向多個客戶端提供服務,兩者之間的關係是非對等的關係;另一種是P2P方式,如圖2所示,P2P方式的連接是指在計算機網絡中的每兩個節點直接連接,即每兩個節點之間是對等連接的關係。
在客戶端/伺服器的方式下,由於伺服器需要向多個客戶端提供服務,所以,通常需要使用高性能的機器,成本一般比較大。P2P方式的通訊雙方是對等的關係,兩者互相為對方提供服務,所以,P2P方式的突出優勢在於可以將眾多性能不高的PC連接起來,以實現資源共享和通訊,這種連接方式大大降低了成本,逐漸成為網絡發展的新方向。
雖然P2P方式有如上所述的優勢,但是其發展受到一定限制,這是因為,為了防範網絡病毒的攻擊,越來越多的計算機都位於網絡地址轉換器(Network Address Translator,NAT)的保護之內。NAT是在內部網絡和公共網絡之間起檢查和轉發作用的設備,通常集成在路由器上,NAT可能會修改內網中主機的IP位址和埠信息,所以它限制了網絡上任意兩臺計算機之間的直接通訊,只有符合一定規則的通訊才被允許,所以,如何突破NAT的限制是實現P2P的重要內容。
由於當前NAT的種類繁多,並且不同種類的NAT各有其自身規定的通訊方式,所以,在位於不同種類NAT中的兩個節點之間建立P2P通道的時候,首先需要獲得雙方節點的NAT的類型,然後根據NAT的類型採用不同的通訊方式建立P2P通道。
下面介紹現有技術建立P2P通道的方法。
首先,如圖3所示,當網絡中某主機A需要與主機B建立P2P通道時,通常需要兩臺外部伺服器確定自身和對方所在的NAT類型,主機A使用同樣的埠向這兩臺伺服器發送UDP信息,這兩臺伺服器記錄該主機的IP位址和埠號,再分別將記錄的IP位址和埠號返回給主機A,主機A通過判斷兩個外部伺服器返回的IP位址和埠號確定自身所在的NAT的類型。判斷的方式為如果兩個外部伺服器返回的IP位址和埠相同,則NAT類型為非對稱NAT(Cone NAT);如果不同,則NAT類型為對稱NAT(Symmetric NAT)。同理,主機B也如此判斷NAT類型。主機A和主機B確定了NAT類型後,分別將類型信息發送至目錄伺服器,並從目錄伺服器獲取對方的NAT類型信息。
然後,主機A啟動建立P2P通道,主機A先判斷主機B所在的NAT類型,如果主機B所在的NAT類型是Cone NAT,則主機A主動發起直連請求,然後由主機B向主機A發送探測包;如果主機B是Symmetric NAT,主機A判斷自己所在的NAT類型,如果主機A是Cone NAT,則主機A通知主機B發起直連請求,然後由主機A向主機B發送探測包;如果主機A也是Symmetric NAT,則通道無法建立。
最後,當兩個主機之間的P2P通道建立完畢之後,兩主機才開始通過P2P通道發送數據。
但是,Cone NAT又分為幾種子類型全部非對稱NAT(Full Cone NAT)、受限非對稱NAT(Restricted Cone NAT)和埠受限非對稱NAT(Port-Restricted Cone NAT),現有技術還無法識別Cone NAT的具體子類型,並且現有技術的方法只對Full Cone NAT有效。也就是說,現有技術只對主機A和主機B均在Full Cone NAT之內,或主機A在Full Cone NAT之內、主機B在Symmetric NAT之內時才能建立起P2P通道。如果建立P2P通道的任何一方處於Restricted Cone NAT或Port-Restricted Cone NAT之內,則直連通道的建立將失敗。這是因為,對於這兩種NAT,內網主機的一個埠在與不同的外界地址通信時會在NAT上映射為同一個公網IP和埠,Restricted Cone NAT只允許同時和一個IP位址的主機進行雙向通信,Port-Restricted Cone NAT只允許同時和一個IP位址和埠的主機進行雙向通信,因此在建立P2P通道的過程中,如果遇到Restricted Cone NAT或Port-Restricted Cone NAT,則主機A和主機B之間不僅無法建立P2P通道,還有可能導致客戶端與伺服器的通信中斷,使得一個客戶端無法與多個客戶端同時建立P2P直連。
除了上文提及的幾種NAT類型,網絡中還存在很多其它類型的NAT,每種NAT的具體特徵不同,現有技術的方法無法利用一種連通方式適用於儘可能多的NAT類型。
如上所述,對於某些類型的NAT,現有技術還無法建立P2P通道,並有可能導致客戶端與伺服器之間的通信中斷,使得該客戶端無法和其它主機建立P2P通道。所以,現有技術的方法建立P2P通道的成功率較低。而且,現有技術的方法中,只有兩個主機建立P2P通道之後才能互相發送數據,由於通道的建立存在一定時延,所以數據傳輸也存在時延,無法滿足對實時性要求較高的數據傳輸的需要。
而且,現有技術的方法需要通過額外的兩臺外部伺服器協助判斷NAT的類型,這不僅需要耗費較多的資源,而且延長了建立P2P通道所需的時間。

發明內容
本發明的主要目的在於提供一種建立P2P通道的方法,一個主機可以和多個主機建立P2P通道,且適用於建立多種類型NAT內的主機之間的P2P通道。
為實現上述目的,本發明提供了一種建立對等直連通道的方法,該方法包括如下步驟A、第一主機綁定第一用戶數據報協議UDP埠,並通過第一UDP埠向轉發伺服器發送直連請求,轉發伺服器提取出第一主機的公網IP和公網UDP埠,然後向第二主機轉發該直連請求,其中,所轉發的直連請求中包括第一主機公網IP位址和公網UDP埠;B、第二主機接收到直連請求後綁定第二UDP埠,並通過第二UDP埠向轉發伺服器發送直連響應,轉發伺服器提取出第二主機的公網IP和公網UDP埠,然後向第一主機轉發該直連響應,其中,該直連響應中包含第二主機公網IP位址和公網UDP埠;C、第一主機通過第一UDP埠向第二主機公網IP位址和公網埠地址發送探測包,第二主機從探測包獲取第一主機的直連公網IP位址和直連公網埠地址,並向該地址發送探測響應包,第一主機從探測響應包獲取第二主機的直連公網IP位址和直連公網埠地址,第一主機和第二主機分別根據所獲得的對方主機的直連公網IP位址和直連公網埠地址,在彼此間建立對等直連通道。
其中,步驟C中,所述利用該探測包/探測響應包將第一主機/第二主機的直連公網IP位址和直連公網埠地址發送給第二主機/第一主機進一步包括第二主機/第一主機將收到的直連公網IP位址和直連公網埠地址更新在該主機的用戶信息表中。
其中,步驟C所述利用該探測包/探測響應包將第一主機/第二主機的直連公網IP位址和直連公網埠地址發送給第二主機/第一主機包括第二主機/第一主機從所獲得的探測包/探測響應包中的UDP報文頭中獲得所述直連公網IP位址和直連公網埠地址。
其中,步驟C之後,該方法進一步包括判斷是否需要建立新的對等直連通道,如果是,則第一主機和第二主機分別採用新的UDP埠,然後返回步驟A。
為實現上述目的,本發明還提供了一種建立對等直連通道的方法,該方法包括如下步驟a、第一主機綁定第一用戶數據報協議UDP埠,並通過第一UDP埠向轉發伺服器發送直連請求,轉發伺服器向第二主機轉發該直連請求,其中,所轉發的直連請求中包括第一主機公網IP位址和第一UDP公網埠地址;b、第二主機接收到直連請求後,綁定第二UDP埠,並通過第二UDP埠向轉發伺服器發送直連響應,轉發伺服器向第一主機轉發該直連響應,其中,該直連響應中包含第二主機公網IP位址和第二UDP公網埠地址;c、第一主機根據收到的直連響應中所包含的第二主機公網IP位址和第二UDP公網埠地址,通過第一UDP埠向第二主機發送探測包,通過該探測包將第一主機的直連公網IP位址和直連公網埠地址發送給第二主機,第二主機收到該探測包後,向第一主機發送探測響應包,通過該探測響應包將第二主機的直連公網IP位址和直連公網埠地址發送給第一主機,第一主機通過轉發伺服器將接收到的直連響應發送至第二主機,第二主機接收到該直連響應後,通過第二UDP埠發送探測包至第一主機,利用該探測包將第二主機的直連公網IP位址和直連公網埠地址發送給第一主機,第一主機收到該探測包後,向第二主機發送探測響應包,利用該探測響應包將第一主機的直連公網IP位址和直連公網埠地址發送給第二主機;和,第一主機和第二主機分別根據所獲得的對方主機的直連公網IP位址和直連公網埠地址,在彼此間建立對等直連通道。
其中,步驟c中,所述利用該探測包/探測響應包將直連公網IP位址和直連公網埠地址發送給進一步包括接收到該直連公網IP位址和直連公網埠地址的主機將收到的直連公網IP位址和直連公網埠地址更新在該主機的用戶信息表中。
其中,步驟c所述利用該探測包/探測響應包將直連公網IP位址和直連公網埠地址發送給包括接收到該直連公網IP位址和直連公網埠地址的主機從所獲得的探測包/探測響應包中的UDP報文頭中獲得所述直連公網IP位址和直連公網埠地址。
為實現上述目的,本發明還提供了一種建立對等直連通道的方法,該方法包括如下步驟步驟a1第一主機和第二主機登錄轉發伺服器;步驟a2判斷第一主機和第二主機的連接狀態,如果判斷得到連接狀態未知,則第一主機和第二主機分別綁定各自的UDP埠,在第一主機和第二主機的UDP埠間發送探測包以及探測響應包,實現在第一主機和第二主機間建立對等直連通道。
其中,所述發送探測包以及探測響應包進一步包括將第一主機和第二主機的連接狀態更新為不通狀態,步驟a2所述判斷進一步包括判斷第一主機和第二主機的連接狀態是否為不通狀態,如果是,則該方法進一步包括第一主機通過轉發伺服器向第二主機轉發數據。
其中,在相應主機接收到探測包之後,該方法進一步包括將第一主機和第二主機的連接狀態更新為通的狀態,步驟a2所述判斷進一步包括判斷第一主機和第二主機的連接狀態是否為通的狀態,如果是,則該方法進一步包括第一主機和第二主機通過已經建立的直連通道傳送數據。
其中,所述更新狀態為在用戶信息表中將進行所述狀態更新。
其中,所述傳送數據之後,該方法進一步包括判斷數據傳送是否已經結束,如果是,則結束本流程,否則,返回所述步驟a1。
其中,所述第一主機和第二主機分別位於不同NAT所管轄的內網中,所述轉發伺服器位於公網中。
從上述技術方案可以看出,本發明的方法是兩個主機分別綁定一個新的UDP埠,並通過探測包和探測響應包的交互獲取對方的新的公網IP位址和UDP埠地址,從而建立直連UDP通道。在現有技術的方法中,需要根據確定的NAT類型採用不同的通訊方式建立P2P通道,並且,由於建立P2P通道時不綁定新埠,有可能造成通道無法建立或與伺服器的通信中斷。(這是結合現有技術論述本發明的優點)除兩主機所處的NAT類型都是Symmetric NAT的情況,本發明的方法適用於在所有NAT類型組合之內的通信雙方之間建立P2P通道,並且不導致客戶端與轉發伺服器之間的通信中斷。在P2P通道建立的過程中,由於主機之間通過轉發伺服器轉發數據,不會造成數據通信的時延,所以能夠很好地滿足對實時性要求較高的數據傳輸的需要。
而且,本發明的方法不需要兩臺外網伺服器協助確定NAT類型,可以節省網絡資源和建立P2P通道所需的時間。


圖1是網絡中的主機以客戶端/伺服器方式連接的示意圖;圖2是網絡中的主機以P2P方式連接的示意圖;圖3是現有技術中主機確定防火牆或NAT類型的方法示意圖;圖4是待建立P2P通道的兩臺主機位於不同內網的結構示意圖;圖5是根據本發明一實施例的啟動建立UDP直連通道的流程圖;圖6是根據本發明一實施例的建立UDP直連通道的流程圖。
圖7是根據本發明另一實施例的建立UDP直連通道的流程圖。
具體實施例方式
為了使本發明的目的、技術方案和優點更清楚,下面結合附圖和具體實施方式
對本發明作進一步描述。
本發明提供了一種在兩臺位於不同內網的主機之間建立P2P通道的方法,參見圖4,客戶端A和客戶端B分別位於NAT類型為NAT A和NAT B的內網中,轉發伺服器(以下簡稱伺服器)位於公網環境中,本發明的方法是客戶端A和客戶端B分別綁定新的用戶數據報協議(UDP)埠,在客戶端A和客戶端B之間建立直連UDP通道。
下面結合圖4和具體實施例詳細說明本發明的方法。
圖5是根據本發明一實施例啟動建立直連UDP通道的流程圖。在該實施例中,客戶端A欲建立與客戶端B的直連UDP通道並發送數據,該流程包括如下步驟步驟501客戶端A和客戶端B通過UDP協議登錄伺服器。
在客戶端A和客戶端B登錄伺服器後,伺服器端將更新記錄客戶端相關網絡信息的表,在該表中添加客戶端A和客戶端B的相關網絡信息

在登錄成功後,伺服器分別向客戶端A和B返回各自的公網IP和公網埠,並將成功登錄該伺服器的其它用戶的內網和公網的IP和埠發送至客戶端A和客戶端B;客戶端A在登錄成功後記錄自身的網絡信息

客戶端A在自身保存的其它用戶信息表中添加客戶端B的信息

其中,連接狀態為「未知」表示客戶端A和客戶端B從未進行通信;同時,客戶端B也在登錄成功後記錄自身的網絡信息

客戶端B也在自身保存的其它用戶信息表中添加客戶端A的信息

步驟502當客戶端A需要向客戶端B發送數據時,客戶端A通過查詢自身保存的其它用戶信息表確定與客戶端B的連接狀態,如果連接狀態為「未知」,表示客戶端A和客戶端B之間還未啟動建立直連UDP通道的程序,轉到步驟503;如果連接狀態為「不通」,表示客戶端A和客戶端B之間正處於建立直連UDP通道的過程中,轉到步驟505;如果連接狀態為「通」,表示客戶端A和客戶端B之間已經建立起直連UDP通道,轉到步驟507。
步驟503客戶端A在其它用戶信息表中將客戶端B的連接狀態設置為「不通」。
步驟504客戶端A啟動建立直連UDP通道的過程,然後返回步驟502。
步驟505客戶端A向伺服器遞交轉發數據請求。
步驟506伺服器接收到客戶端A的轉發數據的請求後,將數據傳送至客戶端B,並告知客戶端B數據是由客戶端A發送的,然後返回步驟502。
由於建立UDP直連通道需要一定的時間,而且客戶端A和客戶端B之間存在無法建立直連UDP通道的可能,所以,在通道建立之前通過伺服器轉發數據可以保證數據收發不受直連UDP通道建立延時的影響。
步驟507客戶端A通過直連UDP通道直接發送數據至客戶端B。
步驟508客戶端A檢查是否還有數據需要發送,如果有,則返回步驟502判斷客戶端A與客戶端B的連接狀態;如果沒有,則結束。
從上述流程的可以看出,當客戶端A查詢到與客戶端B的連接狀態為「未知」時,說明兩客戶端之間未建立直連UDP通道,此時,可以啟動建立直連UDP通道的流程;當客戶端A查詢到客戶端B的連接狀態為「不通」時,說明兩客戶端之間正處於建立直連UDP通道的過程中,為了不影響數據傳輸的實時性,通過伺服器轉發數據;當客戶端A查詢到客戶端B的連接狀態為「通」時,說明兩客戶端之間已經建立了直連UDP通道,可以通過該直連通道發送數據。
下面詳細說明客戶端A啟動建立直連UDP通道的過程。仍以圖4所示的網絡結構為例,客戶端A和客戶端B分別位於NAT類型為NAT A和NATB的內網中,伺服器位於公網環境中,在客戶端A和客戶端B之間建立直連UDP通道。
圖6是根據本發明一實施例建立直連UDP通道的流程圖,從圖中可以看出,在該實施例中,建立直連UDP通道的過程包括如下步驟步驟601客戶端A綁定一個新的UDP埠,埠地址為xx。
步驟602客戶端A通過新綁定的UDP埠向伺服器發送與客戶端B建立直連UDP通道的請求,該請求的內容包括

步驟603伺服器接收到該直連請求後,提取出客戶端A的公網IP和公網UDP埠,向客戶端B轉發該請求,所轉發的直連請求中包括客戶端A的公網IP位址和公網UDP埠,轉發的請求內容包括

其中,源公網IP和源公網埠由伺服器從接收到的客戶端A的請求UDP報文頭中所獲取。
步驟604客戶端B接收到直連請求後,綁定一個新的UDP埠,埠地址為yy,然後通過該埠向伺服器發送直連響應1,該響應的內容包括

步驟605伺服器接收到直連響應1後,提取出客戶端B的公網IP和公網UDP埠,向客戶端A轉發該直連響應1,所轉發的直連響應1中包括客戶端B的公網IP位址和公網UDP埠,轉發的直連響應1內容包括

其中,源公網IP和源公網埠是伺服器從接收到的客戶端B的響應UDP報文頭中獲取的信息。
步驟606客戶端A接收到客戶端B的直連響應1後,向客戶端B發送探測包,該探測包的內容包括

步驟607客戶端B接收到客戶端A的探測包後,在自身保存的其它用戶信息表中更新客戶端A的連接狀態為「通」,同時將該表中客戶端A的公網IP和公網埠更新為探測包中UDP報文頭中的IP位址和埠,更新後的其它用戶信息表中客戶端A的內容為

其中,RAAA為客戶端A向客戶端B發送探測包時所採用的直連公網IP位址,RX為客戶端A向客戶端B發送探測包時所採用的直連公網埠地址;步驟608客戶端B向客戶端A的新公網IP和埠發送探測響應包,該探測響應包的內容包括

步驟609客戶端A接收到客戶端B的探測響應後,將自身保存的其它用戶信息表中的客戶端B的連接狀態更新為「通」,將表中客戶端B的公網IP和公網埠更新為客戶端B發來的探測響應包中UDP報文頭中的IP位址和埠,更新後的其它用戶信息表中客戶端B的內容為

其中,RBBB為客戶端B向客戶端A發送探測包時所採用的直連公網IP位址,RY為客戶端B向客戶端A發送探測包時所採用的直連公網埠地址;如此,在客戶端A和客戶端B之間建立了直連UDP通道,即P2P通道。由於客戶端A和客戶端B通過分別綁定一個新的UDP埠建立該直連UDP通道,所以,該通道內傳輸的數據通過新的UDP埠,當其它客戶端需要與客戶端A或客戶端B建立直連UDP埠時,再分別綁定新埠,這樣,即使NAT A或NAT B是restricted clone NAT或port-restricted clone NAT,也可以建立新的通道,同時不會導致客戶端A或客戶端B與伺服器的通信中斷。
圖7是根據本發明另一具體實施例的建立直連UDP通道的流程圖,從圖中可以看出,在該實施例中,建立直連UDP通道的過程包括如下步驟步驟701客戶端A綁定一個新的UDP埠,埠地址為xx。
步驟702客戶端A通過新綁定的UDP埠向伺服器發送與客戶端B建立直連UDP通道的請求,該請求的內容包括

步驟703伺服器接收到該直連請求後,向客戶端B轉發該請求,轉發的請求內容包括

其中,源公網IP和源公網埠是伺服器從接收到客戶端A的請求UDP報文頭中所獲取的信息。
步驟704客戶端B接收到直連請求後,綁定一個新的UDP埠,埠地址為yy,然後通過該埠向伺服器發送直連響應1,該響應的內容包括

步驟705伺服器接收到直連響應1後,向客戶端A轉發該直連響應1,轉發的直連響應1內容包括

其中,源公網IP和源公網埠是伺服器從接收到的客戶端B的響應UDP報文頭中獲取的信息,然後同時執行步驟706和步驟710。
步驟706客戶端A接收到客戶端B的直連響應1後,向客戶端B發送探測包,該探測包的內容包括

步驟707客戶端B接收到客戶端A的探測包後,在自身保存的其它用戶信息表中更新客戶端A的連接狀態為「通」,同時將該表中客戶端A的公網IP和公網埠更新為探測包中UDP報文頭中的IP位址和埠,更新後的其它用戶信息表中客戶端A的內容為

步驟708客戶端B向客戶端A的新公網IP和埠發送探測響應,該探測響應的內容包括

步驟709客戶端A接收到客戶端B的探測響應後,將自身保存的其它用戶信息表中的客戶端B的連接狀態更新為「通」,將表中客戶端B的公網IP和公網埠更新為客戶端B發來的探測響應包中UDP報文頭中的IP位址和埠,更新後的其它用戶信息表中客戶端B的內容為

然後結束。
步驟710客戶端A向客戶端B發送直連響應2,直連響應2的內容為為

步驟711伺服器接收到直連響應2後,向客戶端B轉發該直連響應2,轉發的直連響應2內容包括

步驟712客戶端B接收到客戶端A的直連響應2後,向客戶端A發送探測包,該探測包的內容包括

步驟713客戶端A接收到客戶端B的探測包後,在自身保存的其它用戶信息表中更新客戶端B的連接狀態為「通」,同時將該表中客戶端B的公網IP和公網埠更新為探測包中UDP報文頭中的IP位址和埠,更新後的其它用戶信息表中客戶端B的內容為

步驟714客戶端A向客戶端B的新公網IP和埠發送探測響應,該探測響應的內容包括

步驟715客戶端B接收到客戶端A的探測響應後,將自身保存的其它用戶信息表中的客戶端A的連接狀態更新為「通」,將表中客戶端A的公網IP和公網埠更新為客戶端A發來的探測響應包中UDP報文頭中的IP位址和埠,更新後的其它用戶信息表中客戶端A的內容為

然後結束。
如此,在客戶端A和客戶端B之間建立了直連UDP通道,即P2P通道。
在上述流程中,步驟706至步驟709是客戶端A向客戶端B探測的步驟,步驟712至步驟715是客戶端B向客戶端A探測的步驟。本發明的方法是客戶端A和客戶端B分別向對方發送探測,這樣,不僅可以保證客戶端A和客戶端B還可以與其它客戶端建立P2P通道,而且,也可以保證在NAT A是Symmetric NAT時,通過客戶端B向客戶端A的探測,成功建立UDP直連通道。
需要說明的是,除了NAT A和NAT B都是Symmetric NAT的情況,本發明的方法適用於其它任何NAT類型的組合。
其中,在本發明中,如果在建立P2P通道之後,還需要進一步建立新的P2P通道,則可採用新的UDP埠,按照與上述各實施例完全相同的方法建立新的通道,並不影響本發明的實現。
在具體的實施過程中可對根據本發明的方法進行適當的改進,以適應具體情況的具體需要。因此可以理解,根據本發明的具體實施方式
只是起示範作用,並不用以限制本發明的保護範圍。
權利要求
1.一種建立對等直連通道的方法,其特徵在於,該方法包括如下步驟A、第一主機綁定第一用戶數據報協議UDP埠,並通過第一UDP埠向轉發伺服器發送直連請求,轉發伺服器提取出第一主機的公網IP和公網UDP埠,然後向第二主機轉發該直連請求,其中,所轉發的直連請求中包括第一主機公網IP位址和公網UDP埠;B、第二主機接收到直連請求後綁定第二UDP埠,並通過第二UDP埠向轉發伺服器發送直連響應,轉發伺服器提取出第二主機的公網IP和公網UDP埠,然後向第一主機轉發該直連響應,其中,該直連響應中包含第二主機公網IP位址和公網UDP埠;C、第一主機通過第一UDP埠向第二主機公網IP位址和公網埠地址發送探測包,第二主機從探測包獲取第一主機的直連公網IP位址和直連公網埠地址,並向該地址發送探測響應包,第一主機從探測響應包獲取第二主機的直連公網IP位址和直連公網埠地址,第一主機和第二主機分別根據所獲得的對方主機的直連公網IP位址和直連公網埠地址,在彼此間建立對等直連通道。
2.根據權利要求1所述的方法,其特徵在於,步驟C中,所述利用該探測包/探測響應包將第一主機/第二主機的直連公網IP位址和直連公網埠地址發送給第二主機/第一主機進一步包括第二主機/第一主機將收到的直連公網IP位址和直連公網埠地址更新在該主機的用戶信息表中。
3.根據權利要求1或2所述的方法,其特徵在於,步驟C所述利用該探測包/探測響應包將第一主機/第二主機的直連公網IP位址和直連公網埠地址發送給第二主機/第一主機包括第二主機/第一主機從所獲得的探測包/探測響應包中的UDP報文頭中獲得所述直連公網IP位址和直連公網埠地址。
4.根據權利要求1所述的方法,其特徵在於,步驟C之後,該方法進一步包括判斷是否需要建立新的對等直連通道,如果是,則第一主機和第二主機分別採用新的UDP埠,然後返回步驟A。
5.一種建立對等直連通道的方法,其特徵在於,該方法包括如下步驟a、第一主機綁定第一用戶數據報協議UDP埠,並通過第一UDP埠向轉發伺服器發送直連請求,轉發伺服器向第二主機轉發該直連請求,其中,所轉發的直連請求中包括第一主機公網IP位址和第一UDP公網埠地址;b、第二主機接收到直連請求後,綁定第二UDP埠,並通過第二UDP埠向轉發伺服器發送直連響應,轉發伺服器向第一主機轉發該直連響應,其中,該直連響應中包含第二主機公網IP位址和第二UDP公網埠地址;c、第一主機根據收到的直連響應中所包含的第二主機公網IP位址和第二UDP公網埠地址,通過第一UDP埠向第二主機發送探測包,通過該探測包將第一主機的直連公網IP位址和直連公網埠地址發送給第二主機,第二主機收到該探測包後,向第一主機發送探測響應包,通過該探測響應包將第二主機的直連公網IP位址和直連公網埠地址發送給第一主機,第一主機通過轉發伺服器將接收到的直連響應發送至第二主機,第二主機接收到該直連響應後,通過第二UDP埠發送探測包至第一主機,利用該探測包將第二主機的直連公網IP位址和直連公網埠地址發送給第一主機,第一主機收到該探測包後,向第二主機發送探測響應包,利用該探測響應包將第一主機的直連公網IP位址和直連公網埠地址發送給第二主機;和,第一主機和第二主機分別根據所獲得的對方主機的直連公網IP位址和直連公網埠地址,在彼此間建立對等直連通道。
6.根據權利要求5所述的方法,其特徵在於,步驟c中,所述利用該探測包/探測響應包將直連公網IP位址和直連公網埠地址發送給進一步包括接收到該直連公網IP位址和直連公網埠地址的主機將收到的直連公網IP位址和直連公網埠地址更新在該主機的用戶信息表中。
7.根據權利要求5或6所述的方法,其特徵在於,步驟c所述利用該探測包/探測響應包將直連公網IP位址和直連公網埠地址發送給包括接收到該直連公網IP位址和直連公網埠地址的主機從所獲得的探測包/探測響應包中的UDP報文頭中獲得所述直連公網IP位址和直連公網埠地址。
8.一種建立對等直連通道的方法,其特徵在於,該方法包括如下步驟步驟a1第一主機和第二主機登錄轉發伺服器;步驟a2判斷第一主機和第二主機的連接狀態,如果判斷得到連接狀態未知,則第一主機和第二主機分別綁定各自的UDP埠,在第一主機和第二主機的UDP埠間發送探測包以及探測響應包,實現在第一主機和第二主機間建立對等直連通道。
9.根據權利要求8所述的方法,其特徵在於,所述發送探測包以及探測響應包進一步包括將第一主機和第二主機的連接狀態更新為不通狀態,步驟a2所述判斷進一步包括判斷第一主機和第二主機的連接狀態是否為不通狀態,如果是,則該方法進一步包括第一主機通過轉發伺服器向第二主機轉發數據。
10.根據權利要求8所述的方法,其特徵在於,在相應主機接收到探測包之後,該方法進一步包括將第一主機和第二主機的連接狀態更新為通的狀態,步驟a2所述判斷進一步包括判斷第一主機和第二主機的連接狀態是否為通的狀態,如果是,則該方法進一步包括第一主機和第二主機通過已經建立的直連通道傳送數據。
11.根據權利要求9或10所述的方法,其特徵在於,所述更新狀態為在用戶信息表中將進行所述狀態更新。
12.根據權利要求9或10所述的方法,其特徵在於,所述傳送數據之後,該方法進一步包括判斷數據傳送是否已經結束,如果是,則結束本流程,否則,返回所述步驟a1。
13.根據權利要求8所述的方法,其特徵在於,所述第一主機和第二主機分別位於不同NAT所管轄的內網中,所述轉發伺服器位於公網中。
全文摘要
本發明公開了一種建立對等直連通道的方法,該方法是第一主機綁定第一UDP埠,並通過第一UDP埠向轉發伺服器發送直連請求,轉發伺服器向第二主機發送直連請求;第二主機綁定第二UDP埠,並通過第二UDP埠向轉發伺服器發送直連響應,轉發伺服器向第一主機發送直連響應;第一主機通過第一UDP埠發送探測包至第二主機,第二主機從探測包中UDP報文頭獲取第一主機的直連IP位址和埠地址,並向獲取的第一主機的直連IP位址和埠地址發送探測響應包,第一主機從探測響應包UDP報文頭獲取第二主機的直連IP位址和埠地址。使用該方法,成功建立對等直連通道的可能性較現有技術會有很大提高。
文檔編號H04L29/06GK1805388SQ200510002058
公開日2006年7月19日 申請日期2005年1月12日 優先權日2005年1月12日
發明者周全, 李炯 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀