基于所發(fā)現(xiàn)的nat類型選擇主機的方法
【專利說明】
[0001] 相關(guān)申請的交叉引用
[0002] 本申請涉及與本申請同日提交的、頒發(fā)給MarkLesterJacob等人、題為"SYSTEM ANDMETHODSFORSEEMLESSHOSTMIGRATION"(代理人卷號_)的共同轉(zhuǎn)讓的美國專利 申請?zhí)朹,其全部內(nèi)容通過引用結(jié)合于此。
[0003] 本申請涉及于2008年3月17日提交的、頒發(fā)給MarkLesterJacob等人、題為 "SYSTEMANDMETHODSFORSEAMLESSHOSTMIGRATION" 的美國專利申請?zhí)?12/049,954, 其全部內(nèi)容通過引用結(jié)合于此。本申請還涉及于2007年10月5日提交的、題為"Systems andMethodsforSeamlessHostMigration"的美國臨時專利申請?zhí)?60/997, 918,其公開 內(nèi)容通過引用結(jié)合于此。
[0004] 本申請涉及于2005年10月4日提交的、頒發(fā)給YutakaTakeda等人的、題為 "PEER-TO-PEERCOMMUNICATIONTRAVERSINGSYMMETRICNETWORKADDRESSTRANSLATORS" 的共同轉(zhuǎn)讓的美國專利申請公開號20070076729,其全部內(nèi)容通過引用結(jié)合于此。
技術(shù)領(lǐng)域
[0005] 本發(fā)明涉及計算機網(wǎng)絡(luò),更具體地涉及在計算機網(wǎng)絡(luò)的若干客戶端之間確定對等 (peer-to-peer)通信的主機(host)。
【背景技術(shù)】
[0006] 目前,在計算機網(wǎng)絡(luò)的若干客戶端之間玩游戲期間,客戶端直接與服務(wù)器通信。中 央服務(wù)器處理來自每個客戶端的數(shù)據(jù),每個客戶端將該數(shù)據(jù)傳遞給所有其它客戶端,從而 該網(wǎng)絡(luò)中的若干客戶端可以相互之間通過中央服務(wù)器來參與游戲。中央服務(wù)器在若干客戶 端之間交流數(shù)據(jù)的能力受到帶寬的限制,因此游戲數(shù)據(jù)之外的通信受到限制。
[0007] 除游戲數(shù)據(jù)之外;客戶端可能想要相互傳送其它信息而不必通過帶寬有限的中央 服務(wù)器。這種通信的示例可包括網(wǎng)絡(luò)電話(VoIP)、bittorrent、視頻數(shù)據(jù)、文件共享以及 數(shù)據(jù)流式傳送。通過允許客戶端相互之間不需要中央服務(wù)器地進行通信,中央服務(wù)器的一 些職責可以推(offload)給客戶端。
[0008] 當在參加P2P網(wǎng)絡(luò)的眾多客戶端之間確定了主機時,對等網(wǎng)絡(luò)被建立起來。主機 負起中央服務(wù)器的職責并且引導(dǎo)客戶端(下面當提到P2P網(wǎng)絡(luò)中的非主機時這些客戶端被 稱為對等機(peer))之間的通信。
[0009] 正是在這一背景下產(chǎn)生了本發(fā)明的實施例。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明涉及一種在對等中用于確定指定兩個或更多對等機中的哪一個作為用于 在對等網(wǎng)格中進行服務(wù)的主機的方法,所述方法包括:
[0011] a)收集用于對等機的NAT簡檔信息;
[0012] b)與所述兩個或更多對等機中的一個或多個其它對等機共享所述用于對等機的 NAT簡檔信息;
[0013]c)接收用于所述一個或多個其它對等機的NAT簡檔信息;
[0014]d)根據(jù)所述用于對等機的NAT簡檔信息和所述用于一個或多個其它對等機的NAT簡檔信息確定,指定所述兩個或更多對等機中的哪一個作為主機。
[0015] 本發(fā)明還涉及一種對等裝置,其包括:
[0016] 計算機處理器;
[0017] 耦合到所述處理器的計算機存儲器;
[0018] 耦合到所述處理器的網(wǎng)絡(luò)接口,其中所述網(wǎng)絡(luò)接口被配置為便于所述處理器與在 對等網(wǎng)格中連接的一個或多個其它對等裝置之間的通信;
[0019] 以及
[0020] -組包含在所述存儲器中的計算機可讀指令,其中所述計算機可讀指令被配置為 實施一種用于確定指定所述對等網(wǎng)格中的哪個對等裝置作為在所述對等網(wǎng)格內(nèi)進行服務(wù) 的主機的方法,所述方法包括:
[0021] a)收集用于對等機的NAT簡檔信息;
[0022] b)與兩個或更多對等機中的一個或多個其它對等機共享所述用于對等機的NAT 簡檔信息;
[0023] c)接收用于所述一個或多個其它對等機的NAT簡檔信息;
[0024] d)根據(jù)所述用于對等機的NAT簡檔信息和用于所述一個或多個其它對等機的NAT 簡檔信息確定,指定所述兩個或更多對等機中的哪一個作為主機。
[0025] 本發(fā)明進一步涉及一種計算機可讀媒體,其具有一組物化在其中的計算機可讀指 令,其中所述計算機可讀指令被配置為實施一種用于確定指定所述對等網(wǎng)格中的哪個對等 裝置作為在所述對等網(wǎng)格內(nèi)服務(wù)的主機的方法,所述方法包括:
[0026] a)收集用于對等機的NAT配置文件信息;
[0027] b)與兩個或更多對等機中的一個或多個其它對等機共享所述用于對等機的NAT 配置文件信息;
[0028] c)接收用于所述一個或多個其它對等機的NAT配置文件信息;
[0029] d)根據(jù)所述用于對等機的NAT配置文件信息和所述用于一個或多個其它對等機 的NAT配置文件信息確定,指定所述兩個或更多對等機中的哪一個作為主機。
【附圖說明】
[0030] 圖1是示出根據(jù)本發(fā)明實施例的P2P網(wǎng)絡(luò)的示意圖。
[0031] 圖2是從客戶端角度示出根據(jù)本發(fā)明特定實施例基于所發(fā)現(xiàn)的NAT類型選擇主機 的方法的流程圖。
[0032] 圖3是從客戶端角度示出基于所發(fā)現(xiàn)的NAT類型來選擇主機的基本方法的流程 圖。
[0033] 圖4是示出根據(jù)當前發(fā)明實施例的客戶端接口的示例的框圖。
【具體實施方式】
[0034] 介紹
[0035] 當嘗試通過對等通信(P2P)在客戶端之間建立通信時所產(chǎn)生的一個問題是網(wǎng)絡(luò) 地址翻譯(NAT)的難題。大多數(shù)與中央服務(wù)器連接的客戶端都位于NAT之后。NAT是使得 局域網(wǎng)絡(luò)(LAN)能夠使用一組私有IP地址用于內(nèi)部通信業(yè)務(wù)(traffic)并且使用第二組 全局IP地址用于外部通信業(yè)務(wù)的互聯(lián)網(wǎng)標準。因此,期望P2P網(wǎng)絡(luò)中的主機具有有利的 (favorable)的NAT簡檔(profile)以便創(chuàng)建最佳的P2P網(wǎng)絡(luò)。
[0036] 于是,在本領(lǐng)域中需要一種在若干連接到中央服務(wù)器的客戶端之間確定具有有利 NAT簡檔的主機的方法。
[0037] 有4種類型的可利用的NAT:完全錐型NAT(FullConeNAT)、受限錐型 NAT(RestrictedConeNAT)、端口受限維型NAT(PortRestrictedConeNAT)以及對稱型 NAT(SymmetricNAT)。完全錐型NAT是來自同一內(nèi)部IP地址和端口的所有請求都被映射 到同一外部IP地址和端口的NAT。另外,任何外部主機都可以通過向所映射的外部地址發(fā) 送分組來向內(nèi)部主機發(fā)送分組。
[0038] 在受限錐型NAT中,來自同一內(nèi)部IP地址和端口的所有請求都被映射到同一外部 IP地址和端口。不像完全錐型NAT,只有當內(nèi)部主機之前已經(jīng)向IP地址X發(fā)送過分組時, (具有IP地址X的)外部主機才可以向內(nèi)部主機發(fā)送分組。
[0039] 端口受限的NAT類似于受限錐型NAT,但是限制包括端口號。具體地,只有當內(nèi)部 主機之前已經(jīng)從IP地址X和端口P發(fā)送過分組時,外部主機才可以向內(nèi)部主機發(fā)送具有源 IP地址X和源端口P的分組。
[0040] 在對稱型NAT中,來自同一內(nèi)部IP地址和端口并發(fā)送到特定目標IP地址和端口 的所有請求都被映射到同一外部IP地址和端口。如果同一主機將具有相同源地址和端口 的分組(但是)發(fā)送到不同的目標,則使用不同的映射。另外,只有接收分組的外部主機可 以將用戶數(shù)據(jù)協(xié)議(UDP)分組發(fā)送回內(nèi)部主機。
[0041] 基于NAT類型的主機選擇
[0042] 圖1是示出根據(jù)本發(fā)明實施例的P2P網(wǎng)絡(luò)的示意圖。網(wǎng)絡(luò)上的客戶端裝置105A、 105B、107和10?最初連接到外部網(wǎng)絡(luò)109中的服務(wù)器101。舉例來說,服務(wù)器101可監(jiān)視 連接到外部網(wǎng)絡(luò)109的客戶端105A、105B、107和10?之間的游戲數(shù)據(jù)。客戶端105AU05B、 107和10?可位于相應(yīng)的網(wǎng)絡(luò)地址翻譯器(NAT) 111A、111B、IllC和IllD之后。可根據(jù)互 聯(lián)網(wǎng)標準對每個NAT進行配置,所述互聯(lián)網(wǎng)標準使得局域網(wǎng)絡(luò)(LAN)能夠使用一組私有IP 地址用于內(nèi)部通信業(yè)務(wù)并且使用第二組全局IP地址用于外部通信業(yè)務(wù)。大多數(shù)NAT對IP 地址執(zhí)行動態(tài)翻譯,從而外部網(wǎng)絡(luò)在內(nèi)部網(wǎng)絡(luò)發(fā)起通信之前沒有途徑到達內(nèi)部網(wǎng)絡(luò)。然而, 因為客戶端105A、105B、107和10?建立了服務(wù)器-客戶端關(guān)聯(lián),所以服務(wù)器101與客戶端 105A、105B、107 和 10? 之間的通信不受NAT111A、11