專利名稱:一種在通信設(shè)備間實(shí)現(xiàn)通信的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)及通信領(lǐng)域,尤其涉及一種在通信設(shè)備間實(shí)現(xiàn)通信的方法及其裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,基于互聯(lián)網(wǎng)的應(yīng)用也越來越多,如基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)游戲、即時通信等,而且這些應(yīng)用對傳輸速度和對服務(wù)器處理速度的要求也越來越高。由于互聯(lián)網(wǎng)是以服務(wù)器/瀏覽器(Server/Browser)或服務(wù)器/客戶端(S/C)結(jié)構(gòu)的應(yīng)用模式為主,這樣的應(yīng)用必須在網(wǎng)絡(luò)內(nèi)設(shè)置一個服務(wù)器,信息通過服務(wù)器才可以傳遞。信息或是先集中上傳到服務(wù)器保存,然后再分別下載(如網(wǎng)站),或是信息按服務(wù)器上專有規(guī)則(軟件)處理后才可在網(wǎng)絡(luò)上傳遞流動(如郵件)。
一些基于互聯(lián)網(wǎng)的應(yīng)用對網(wǎng)速要求較高,如果網(wǎng)速較慢,則會影響該類應(yīng)用的流暢性和效果,因此這類應(yīng)用在實(shí)現(xiàn)時采用了P2P(即Peer to Peer,稱為對等連接或?qū)Φ染W(wǎng)絡(luò))技術(shù)。P2P起源于最初的聯(lián)網(wǎng)通信方式,如在建筑物內(nèi)計算機(jī)(PC)通過局域網(wǎng)互聯(lián),不同建筑物間通過調(diào)制解調(diào)器(Modem)遠(yuǎn)程撥號互聯(lián)。其中建立在傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP協(xié)議)之上的通信模式構(gòu)成了今日互聯(lián)網(wǎng)的基礎(chǔ),所以從基礎(chǔ)技術(shù)角度看,P2P不是新技術(shù),而是新的應(yīng)用技術(shù)模式。
P2P技術(shù)主要指由硬件形成連接后的信息控制技術(shù),其代表形式是軟件,而P2P通信可以采取傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)兩種通信方式。對于要求數(shù)據(jù)包要盡可能的快速達(dá)到目的地的應(yīng)用來說,如果一個數(shù)據(jù)包達(dá)到目的地比較晚,則很可能喪失了它的意義,如高對抗性的鍵盤類網(wǎng)絡(luò)游戲。這類應(yīng)用又大多會采取UDP的方式實(shí)現(xiàn)P2P通信。
在互聯(lián)網(wǎng)中,服務(wù)器采取多互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)方式架設(shè),引導(dǎo)用戶進(jìn)入跟自己連接速度較快的服務(wù)器,采取客戶端-服務(wù)器-客戶端(CSC)模式通信。因此,采取UDP方式實(shí)現(xiàn)P2P通信的應(yīng)用,特別是網(wǎng)絡(luò)游戲,只要用戶與服務(wù)器之間的網(wǎng)絡(luò)速比較快,應(yīng)用的流暢性就可以得到保障。
雖然上述方法的通信模型和實(shí)現(xiàn)簡單,對于客戶端可控性也較高,但存在以下缺點(diǎn)1、由于UDP方式是面向非連接的,因此,在網(wǎng)絡(luò)中不能保證數(shù)據(jù)包的傳送順序,而且在網(wǎng)絡(luò)繁忙時會出現(xiàn)大量丟包的情況,從而導(dǎo)致應(yīng)用的流暢性和效果得不到保證。
2、由于數(shù)據(jù)都需服務(wù)器轉(zhuǎn)發(fā),使得服務(wù)器的數(shù)據(jù)量和負(fù)載非常大,導(dǎo)致用戶信息交互比較慢。
發(fā)明內(nèi)容
本發(fā)明提供一種在通信設(shè)備間實(shí)現(xiàn)通信的方法及其裝置,用以解決現(xiàn)有技術(shù)采用UDP方式實(shí)現(xiàn)P2P通信時,存在信息交互慢和因會出現(xiàn)丟包而不能較好地保證通信效果的問題。
為解決上述問題,本發(fā)明提供以下技術(shù)方案一種在通信設(shè)備間實(shí)現(xiàn)通信的方法,包括如下步驟A、第一通信設(shè)備通過服務(wù)器向第二通信設(shè)備發(fā)送建立P2P連接請求消息;B、第一和第二通信設(shè)備中至少一個通信設(shè)備發(fā)起與對方建立P2P連接的命令;C、根據(jù)所述建立P2P連接的命令在第一和第二通信設(shè)備間直接建立P2P通道并經(jīng)該通道傳送數(shù)據(jù)包。
第一通信設(shè)備在發(fā)送所述請求消息后,若接收到第二通信設(shè)備主動發(fā)起的建立P2P連接的請求消息,則在步驟B中,由第一通信設(shè)備發(fā)起與第二通信設(shè)備建立P2P連接的命令。
第二通信設(shè)備接收到第一通信設(shè)備的請求消息后,若第二通信設(shè)備確定本通信設(shè)備處于公網(wǎng),則第二通信設(shè)備發(fā)起與第一通信設(shè)備建立P2P通道的命令,若第二通信設(shè)備確定本通信設(shè)備處于私網(wǎng),則第二通信設(shè)備通過服務(wù)器向第一通信設(shè)備發(fā)送建立P2P連接的請求消息。
在發(fā)送建立P2P通道請求前,所述第一、第二通信設(shè)備分別向服務(wù)器發(fā)送報文,服務(wù)器從該報文獲知通信設(shè)備的地址信息并將其返回給對應(yīng)的通信設(shè)備。
若第一或第二通信設(shè)備處于私網(wǎng),則在所述建立P2P連接的請求消息中還攜帶私網(wǎng)地址信息。
若第一和第二通信設(shè)備處于同一私網(wǎng)內(nèi),則直接在該私網(wǎng)內(nèi)建立所述通道。
通信設(shè)備在發(fā)起建立P2P通道命令后,向?qū)Ψ桨l(fā)送測試數(shù)據(jù)包,以確定是否已建立P2P通道。
第一和第二通信設(shè)備中任一方收到對方的數(shù)據(jù)包后,從數(shù)據(jù)包中提取序號并與收到的數(shù)據(jù)包序號比較以確定是否出現(xiàn)丟包,并在出現(xiàn)丟包時請求對方重發(fā)。
一種通信設(shè)備,其特征在于包括第一接口,用于接收應(yīng)用程序發(fā)送的第一數(shù)據(jù)包和將網(wǎng)絡(luò)側(cè)的數(shù)據(jù)包發(fā)送給應(yīng)用程序;編解碼模塊,對通過第一接口發(fā)向網(wǎng)絡(luò)側(cè)的數(shù)據(jù)進(jìn)行編碼和對發(fā)向第一接口的數(shù)據(jù)進(jìn)行解碼;第二接口,用于將編碼后的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)和將從網(wǎng)絡(luò)接收的數(shù)據(jù)發(fā)送到編解碼模塊;第一通信模塊,用于控制通信設(shè)備與網(wǎng)絡(luò)中的服務(wù)器的通信信息和通信方式;第二通信模塊,用于控制通過對等方式(P2P)連接的其他通信設(shè)備的通信信息和通信方式。
本發(fā)明具有以下有益效果1、本發(fā)明通過服務(wù)轉(zhuǎn)發(fā)通信設(shè)備之間的建立P2P通道請求后,直接在通信設(shè)備之間建立P2P通道進(jìn)行通信,不再需要服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù),從而降低了服務(wù)器的負(fù)荷,可提高用戶信息的交互速度。
2、在UDP通信中引入重發(fā)機(jī)制,保證了消息傳遞的可靠性,從而使基于網(wǎng)絡(luò)的應(yīng)用的流暢性和效果得到有效保障,尤其適合于網(wǎng)絡(luò)游戲和即時通信類應(yīng)用。
圖1為本發(fā)明的通信設(shè)備結(jié)構(gòu)示意圖;圖2為本發(fā)明中通信設(shè)備判斷自身網(wǎng)絡(luò)情況的流程圖;圖3為本發(fā)明中通信設(shè)備間直接建立P2P通道并進(jìn)行通信的流程圖。
具體實(shí)施例方式
參閱圖1所示,本發(fā)明的通信設(shè)備包括第一接口(或稱應(yīng)用層接口)、第二接口(或稱套接字(Socket)接口)、編解碼模塊、第一通信模塊和第二通信模塊,其中第一接口用于接收應(yīng)用程序發(fā)送向網(wǎng)絡(luò)側(cè)發(fā)送的數(shù)據(jù)包,以及將網(wǎng)絡(luò)側(cè)發(fā)送來的數(shù)據(jù)包傳送給通信設(shè)備上的應(yīng)用程序。
編解碼模塊用于對通過第一接口發(fā)向網(wǎng)絡(luò)側(cè)的數(shù)據(jù)進(jìn)行編碼,還可對數(shù)據(jù)進(jìn)行加密處理;以及對發(fā)往第一接口的網(wǎng)絡(luò)側(cè)的數(shù)據(jù)進(jìn)行解碼,如果數(shù)據(jù)已經(jīng)過加密處理,該模塊還對數(shù)據(jù)進(jìn)行對應(yīng)的解密處理。
第二接口,用于將編碼后的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò),和將從網(wǎng)絡(luò)接收的數(shù)據(jù)發(fā)送到編解碼模塊。
第一通信模塊,用于控制通信設(shè)備與網(wǎng)絡(luò)中的P2P服務(wù)器的通信信息和通信方式。當(dāng)某一通信設(shè)備需要與另一通信設(shè)備通信時,必須先登錄網(wǎng)絡(luò)中的P2P服務(wù)器。P2P服務(wù)器是具有公網(wǎng)固定IP地址,其作用是為各通信設(shè)備之間建立P2P通道提供服務(wù)。第一通信模塊通過與P2P服務(wù)器交互即可獲得連接到P2P服務(wù)器的各通信設(shè)備的地址信息。
第二通信模塊,用于控制通過對等方式(P2P)連接的其他通信設(shè)備的通信信息和通信方式,以及從第一通信模塊得到通信設(shè)備的地址信息。一個通信設(shè)備中的第二通信模塊可以為多個,每個第二通信模塊用于控制與一個其他通信設(shè)備通信。
在一個通信系統(tǒng)中,具有多個上述的通信設(shè)備。當(dāng)本機(jī)應(yīng)用程序要向網(wǎng)絡(luò)其他通信設(shè)備發(fā)送數(shù)據(jù)時,它先將數(shù)據(jù)發(fā)送到第一接口,由于應(yīng)用程序中保存有通信終端的ID信息,第一接口收到數(shù)據(jù)后根據(jù)ID信息將數(shù)據(jù)發(fā)給指定的第二通信模塊;通過第一通信模塊和第二通信模塊獲得待發(fā)送數(shù)據(jù)的目的地址及相關(guān)信息;然后調(diào)用編解碼模塊對數(shù)據(jù)進(jìn)行編碼,最后將已編碼的數(shù)據(jù)通過第二接口發(fā)送到網(wǎng)絡(luò)。
當(dāng)通信設(shè)備從網(wǎng)絡(luò)獲取數(shù)據(jù)時,通過第二接口獲得數(shù)據(jù),然后發(fā)送到編解碼模塊對數(shù)據(jù)進(jìn)行解碼,然后將解碼后的數(shù)據(jù)通過第二模通信模塊和第一接口發(fā)送給本通信設(shè)備上的應(yīng)用程序。
本發(fā)明通過在網(wǎng)絡(luò)中的第一通信設(shè)備通過服務(wù)器向第二通信設(shè)備發(fā)送建立P2P連接的請求消息之后,由第一通信設(shè)備和第二通信設(shè)備中至少一個通信設(shè)備發(fā)起與對方建立P2P通道的命令,然后由網(wǎng)絡(luò)中的資源控制設(shè)備直接在第一和第二通信設(shè)備之間建立P2P通道來實(shí)現(xiàn)UDP方式通信,在P2P通道建立后,通信設(shè)備之間相互發(fā)往對方的數(shù)據(jù)不再由服務(wù)器轉(zhuǎn)發(fā),從而減少服務(wù)器的負(fù)荷和加快交互信息的響應(yīng)速度。
由于網(wǎng)絡(luò)中的通信設(shè)備可能處于公網(wǎng),也可能處于私有網(wǎng)防火墻后面。處于私網(wǎng)的通信設(shè)備不管是主動請求建立P2P通道,還是被請求建立P2P通道,都必須通過服務(wù)器向?qū)Ψ桨l(fā)起建立P2P通道請求后才能開始建立P2P通道,即雙方設(shè)備均要在網(wǎng)關(guān)上建立私網(wǎng)地址與公網(wǎng)地址的映射關(guān)系,這樣處于私網(wǎng)內(nèi)的通信設(shè)備才能接收到從公網(wǎng)發(fā)送來的數(shù)據(jù)包。若被請求方處于公網(wǎng),則可以直接發(fā)起建立P2P通道命令來建立通道。
通信設(shè)備連接到通信系統(tǒng)中的服務(wù)器后,服務(wù)器即可獲知各通信設(shè)備的IP地址和端口等地址信息,因此,通信設(shè)備可以通過向服務(wù)器發(fā)送數(shù)據(jù)包來獲知自己是處于公網(wǎng)還是處于私網(wǎng),參閱圖2所示,其流程如下步驟10、通信設(shè)備與服務(wù)器連接;步驟11、通信設(shè)備向服務(wù)器發(fā)送用于獲知本通信設(shè)備的網(wǎng)絡(luò)情況的UDP數(shù)據(jù)包。
步驟12、服務(wù)器接收到通信設(shè)備的UDP數(shù)據(jù)包后,提取該數(shù)據(jù)包中的源IP地址和端口號(即服務(wù)器所看到的通信設(shè)備的IP地址和端口號),并向通信設(shè)備發(fā)送攜帶所述IP地址和端口號的數(shù)據(jù)包。
步驟13、通信設(shè)備從服務(wù)器發(fā)送來的數(shù)據(jù)包中提取所述IP地址和端口號,并與通信設(shè)備的IP地址和端口號進(jìn)行比較,如果IP地址和端口號相同,則確定本通信設(shè)備處于公網(wǎng),若IP地址和端口號不相同,則可確定本通信設(shè)備處于私網(wǎng)內(nèi)。
參閱圖3所示,第一通信設(shè)備與第二通信設(shè)備之間建立P2P通道并經(jīng)該通道傳送數(shù)據(jù)的流程如下步驟20、第一通信設(shè)備向服務(wù)器發(fā)送請求與第二通信設(shè)備建立P2P通道的消息。
若第一通信設(shè)備處于私網(wǎng)內(nèi),則在請求消息中帶可攜帶通信設(shè)備的私網(wǎng)IP地址和端口號。
步驟21、服務(wù)器將請求消息發(fā)送到第二通信設(shè)備,并向第一通信設(shè)備返回響應(yīng)消息。
步驟22、第二通信設(shè)備接收到請求消息后,若本通信設(shè)備處于私網(wǎng),則進(jìn)行步驟23,否則根據(jù)請求消息中的第一通信設(shè)備的地址,發(fā)起建立P2P通道命令。在所述請求消息中還可攜帶第二通信設(shè)備的私網(wǎng)IP地址和端口號。
步驟23、第二通信設(shè)備向服務(wù)器發(fā)送請求與第一通信設(shè)備建立P2P通道的消息。
步驟24、服務(wù)器將請求消息發(fā)送到第一通信設(shè)備,并向第二通信設(shè)備返回響應(yīng)消息。
步驟25、第一通信設(shè)備和第二通信設(shè)備中的任何一方收到對方的請求消息和地址信息(IP地址和端口號)后,發(fā)起建立P2P通道命令。
步驟26、網(wǎng)絡(luò)中的資源控制設(shè)備在第一通信設(shè)備與第二通信設(shè)備之間建立直接的P2P通道,第一通信設(shè)備和第二通信設(shè)備通過該通道傳輸U(kuò)DP數(shù)據(jù)包。
在步驟26中,如果第一通信設(shè)備和第二通信設(shè)備都在同一個私有網(wǎng)絡(luò),則可在該私有網(wǎng)絡(luò)內(nèi)建立所述通道。
在執(zhí)行上述流程的步驟20后,即第一通信設(shè)備向服務(wù)器發(fā)起與第二通信設(shè)備建立P2P通道的請求后,若第一通信設(shè)備接收到第二通信設(shè)備主動發(fā)起的建立P2P通道的請求,此時第一通信設(shè)備可直接發(fā)起與第二通信設(shè)備建立P2P連接的命令,然后進(jìn)行步驟26。這是因?yàn)?,通過發(fā)送請求消息,在私網(wǎng)中的通信設(shè)備已在網(wǎng)關(guān)上建立了私網(wǎng)地址與公網(wǎng)地址的映射關(guān)系,所以可以直接發(fā)起建立P2P連接的命令。
在建立P2P連接過程中,第一、第二通信設(shè)備發(fā)起建立P2P連接的命令后,可以立即開始向?qū)Ψ桨l(fā)送測試數(shù)據(jù)包,以確定是否已建立P2P通道。對方在收到測試包后返回一個響應(yīng),發(fā)送方收到該響應(yīng)后再發(fā)送一個P2P通道已建立的確認(rèn)消息,然后開始傳送數(shù)據(jù)。
為了在數(shù)據(jù)傳輸過程中保證UDP數(shù)據(jù)包接收的可靠性,在本發(fā)明引入重發(fā)機(jī)制。在第一通信設(shè)備與第二通信設(shè)備通過P2P通道傳送UDP數(shù)據(jù)包時,收到數(shù)據(jù)包的一方從包頭信息中提取序列號,將其與前后收到的數(shù)據(jù)包的序列號進(jìn)行比較,以判斷是否存在丟包和確定有哪些數(shù)據(jù)包沒有收到。在判斷有丟包的情況下請求對方重發(fā)這些數(shù)據(jù)包。
由于接收數(shù)據(jù)的通信設(shè)備也可能需要向?qū)Ψ桨l(fā)送數(shù)據(jù),因此,為了節(jié)約網(wǎng)絡(luò)帶寬和降低網(wǎng)絡(luò)擁塞的概率,提高通信質(zhì)量,可以將需要對方重發(fā)數(shù)據(jù)包的消息和標(biāo)識這些包的信息可以通過數(shù)據(jù)包攜帶給對方。
在通過發(fā)送的數(shù)據(jù)包攜帶丟包信息時,通過在數(shù)據(jù)包的包頭中增加兩個字節(jié),其中一個字節(jié)用于標(biāo)識未收到的數(shù)據(jù)包中序列號最小的數(shù)據(jù)包之后的8個數(shù)據(jù)包的狀態(tài),另一個字節(jié)用于標(biāo)識序列號最大的數(shù)據(jù)包之前的8個數(shù)據(jù)包的狀態(tài)。這是因?yàn)闆]有收到數(shù)據(jù)包表明網(wǎng)絡(luò)可能發(fā)生擁塞,丟失的數(shù)據(jù)包中序列號最小的數(shù)據(jù)包之后的連續(xù)多個數(shù)據(jù)包丟失的可能性比較大,一般情況下這些數(shù)據(jù)也密切關(guān)聯(lián),因此,這里也用一個字節(jié)表示其后8個封包的接收狀態(tài),以確定哪些封包需要重傳;同樣,丟失數(shù)據(jù)包中序列號最大的數(shù)據(jù)之前連續(xù)多個數(shù)據(jù)丟失的可能比較大,一般情況下這些數(shù)據(jù)也密切關(guān)聯(lián)。該序列號最大的數(shù)據(jù)包代表最近的消息,序列號最小的數(shù)據(jù)包因等待時間長,所以這些數(shù)據(jù)包的重發(fā)優(yōu)先級較高。這樣,用于一個字節(jié)表示8個數(shù)據(jù)包的狀態(tài)以確定哪些需要重傳,能夠避免傳送數(shù)據(jù)的序列號,使數(shù)據(jù)包頭盡可能小而包含的信息量盡可能大。當(dāng)然,也可根據(jù)需要在包頭中增加更多字節(jié),如四個,其處理方式同理。
上述方法尤其適用于網(wǎng)絡(luò)游戲,對于高對抗性的鍵盤類游戲要求網(wǎng)速高和數(shù)據(jù)盡可能快速到達(dá)目的地,因此,通過P2P通道在游戲終端之間直接傳送UDP數(shù)據(jù)包并結(jié)合重傳機(jī)制,可大幅度地的提高游戲的流暢性和信息交互速度,克服了現(xiàn)有技術(shù)通過服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)而存在的不足。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種在通信設(shè)備間實(shí)現(xiàn)通信的方法,其特征在于,包括如下步驟A、第一通信設(shè)備通過服務(wù)器向第二通信設(shè)備發(fā)送建立對等連接(P2P連接)的請求消息;B、第一和第二通信設(shè)備中至少一個通信設(shè)備發(fā)起與對方建立P2P連接的命令;C、根據(jù)所述建立P2P連接的命令在第一和第二通信設(shè)備間直接建立P2P通道并經(jīng)該通道傳送數(shù)據(jù)包。
2.如權(quán)利要求1所述的方法,其特征在于,第一通信設(shè)備在發(fā)送所述請求消息后,若接收到第二通信設(shè)備主動發(fā)起的建立P2P連接的請求消息,則在步驟B中,由第一通信設(shè)備發(fā)起與第二通信設(shè)備建立P2P連接的命令。
3.如權(quán)利要求1所述的方法,其特征在于,第二通信設(shè)備接收到第一通信設(shè)備的請求消息后,若第二通信設(shè)備確定本通信設(shè)備處于公網(wǎng),則第二通信設(shè)備發(fā)起與第一通信設(shè)備建立P2P通道的命令,若第二通信設(shè)備確定本通信設(shè)備處于私網(wǎng),則第二通信設(shè)備通過服務(wù)器向第一通信設(shè)備發(fā)送建立P2P連接的請求消息。
4.如權(quán)利要求1所述的方法,其特征在于,在發(fā)送建立P2P通道的請求消息前,所述第一、第二通信設(shè)備分別向服務(wù)器發(fā)送報文,服務(wù)器從該報文獲知通信設(shè)備的地址信息并將其返回給對應(yīng)的通信設(shè)備。
5.如權(quán)利要求4所述的方法,其特征在于,若第一或第二通信設(shè)備處于私網(wǎng),則在所述建立P2P連接的請求消息中還攜帶私網(wǎng)地址信息。
6.如權(quán)利要求5所述的方法,其特征在于,若第一和第二通信設(shè)備處于同一私網(wǎng)內(nèi),則直接在該私網(wǎng)內(nèi)建立所述通道。
7.如權(quán)利要求1至6任一項所述的方法,其特征在于,通信設(shè)備在發(fā)起建立P2P通道命令后,向?qū)Ψ酵ㄐ旁O(shè)備發(fā)送測試數(shù)據(jù)包,以確定是否已建立P2P通道。
8.如權(quán)利要求7所述的方法,其特征在于,所述的數(shù)據(jù)包為用戶數(shù)據(jù)報協(xié)議(UDP)數(shù)據(jù)包。
9.如權(quán)利要求8所述的方法,其特征在于,第一和第二通信設(shè)備中任一方收到對方的數(shù)據(jù)包后,從數(shù)據(jù)包中提取序號并與收到的數(shù)據(jù)包序號比較以確定是否出現(xiàn)丟包,并在出現(xiàn)丟包時請求對方重發(fā)。
10.如權(quán)利要求9所述的方法,其特征在于,確定出現(xiàn)丟包的通信設(shè)備在向?qū)Ψ桨l(fā)送的數(shù)據(jù)包中攜帶重發(fā)消息和需要重發(fā)的數(shù)據(jù)包信息。
11.如權(quán)利要求10所述的方法,通過在數(shù)據(jù)包的包頭中增加多個字節(jié),用于標(biāo)識丟失的數(shù)據(jù)包中序列號最小的數(shù)據(jù)包之后的若個數(shù)據(jù)包的狀態(tài)和丟失的數(shù)據(jù)包中序列號最大的數(shù)據(jù)包之前的若個數(shù)據(jù)包的狀態(tài),接收該數(shù)據(jù)的通信設(shè)備根據(jù)所述狀態(tài)確定需要重發(fā)的數(shù)據(jù)包。
12.一種通信設(shè)備,其特征在于包括第一接口,用于接收應(yīng)用程序發(fā)送的第一數(shù)據(jù)包和將網(wǎng)絡(luò)側(cè)的數(shù)據(jù)包發(fā)送給應(yīng)用程序;編解碼模塊,對通過第一接口發(fā)向網(wǎng)絡(luò)側(cè)的數(shù)據(jù)進(jìn)行編碼和對發(fā)向第一接口的數(shù)據(jù)進(jìn)行解碼;第二接口,用于將編碼后的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)和將從網(wǎng)絡(luò)接收的數(shù)據(jù)發(fā)送到編解碼模塊;第一通信模塊,用于控制通信設(shè)備與網(wǎng)絡(luò)中的服務(wù)器的通信信息和通信方式;第二通信模塊,用于控制通過對等方式(P2P)連接的其他通信設(shè)備的通信信息和通信方式。
13.如權(quán)利要求12所述的設(shè)備,其特征在于,所述第二通信模塊為多個。
全文摘要
本發(fā)明公開了一種在通信設(shè)備間實(shí)現(xiàn)通信的方法,用以解決現(xiàn)有技術(shù)采用UDP方式實(shí)現(xiàn)P2P通信時,存在信息交互慢和因會出現(xiàn)丟包而不能較好地保證通信效果的問題;該方法為第一通信設(shè)備通過服務(wù)器向第二通信設(shè)備發(fā)送建立P2P連接的請求消息;第一和第二通信設(shè)備中至少一個通信設(shè)備發(fā)起與對方建立P2P連接的命令;以及根據(jù)所述建立P2P連接的命令在第一和第二通信設(shè)備間直接建立P2P通道并經(jīng)該通道傳送數(shù)據(jù)包。本發(fā)明通過直接在通信設(shè)備之間建立P2P通道進(jìn)行通信,不再需要服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù),因而能夠降低服務(wù)器的負(fù)荷和提高用戶信息的交互速度。
文檔編號H04L29/06GK1881916SQ20051007685
公開日2006年12月20日 申請日期2005年6月17日 優(yōu)先權(quán)日2005年6月17日
發(fā)明者孫宏宇 申請人:騰訊科技(深圳)有限公司