專利名稱:一種對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到網(wǎng)絡(luò)與通訊技術(shù)領(lǐng)域,具體涉及一種對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)的實(shí)現(xiàn)方法。
背景技術(shù):
所謂對(duì)等網(wǎng)絡(luò)(P2P,peer-to-peer)是一種用于不同PC用戶之間,不經(jīng)過服務(wù)器直接交換數(shù)據(jù)或服務(wù)的技術(shù),它允許Internet用戶直接使用對(duì)方的資源或直接進(jìn)行交流。每個(gè)聯(lián)網(wǎng)用戶可以直接連接到其他用戶的計(jì)算機(jī)上,并進(jìn)行數(shù)據(jù)的交換,而不需要連接到服務(wù)器上再進(jìn)行瀏覽與下載。因?yàn)橄酥虚g環(huán)節(jié),對(duì)等網(wǎng)絡(luò)技術(shù)使得網(wǎng)絡(luò)上的溝通變得更快速、更直接。
目前可以實(shí)現(xiàn)對(duì)等網(wǎng)絡(luò)技術(shù)的軟件國(guó)外有Napstere及ICQ,國(guó)內(nèi)有OICQ、Ezpeer等,其中Ezpeer的具體的運(yùn)作方式為首先,所有安裝了Ezpeer軟件的用戶均會(huì)登陸Ezpeer的服務(wù)器,服務(wù)器即可掌握各電腦所儲(chǔ)藏的檔案資料;當(dāng)某一用戶連入Internet時(shí),即可看到裝有此一軟件的所有其它連網(wǎng)用戶及其共享信息,當(dāng)輸入欲搜尋的關(guān)鍵詞后,Ezpeer服務(wù)器會(huì)尋找其他儲(chǔ)存此類文件的電腦資料,然后顯示在此用戶的搜尋結(jié)果中,用戶隨即可從其他用戶的電腦上直接下傳所需的資料。整個(gè)資料的傳遞僅在用戶的電腦之間進(jìn)行,并無須經(jīng)過Ezpeer的服務(wù)器,但用戶之間的連接不是直接的,需要有位于中心的服務(wù)器來協(xié)調(diào)。
現(xiàn)有的相關(guān)發(fā)明已有一些,但與本發(fā)明有著根本區(qū)別。如發(fā)明專利“用于下載的程序之間的保密對(duì)等通信的系統(tǒng)和方法(公告號(hào)1163433)”是用于在來自同一保密域、但運(yùn)行在第一和第二計(jì)算機(jī)上的計(jì)算機(jī)程序之間建立對(duì)等通信聯(lián)系的系統(tǒng)和方法,其對(duì)等通訊的建立過程為第一計(jì)算機(jī)程序在第一計(jì)算機(jī)上運(yùn)行,同時(shí)發(fā)送一條信息到第二計(jì)算機(jī),請(qǐng)求建立對(duì)等通信聯(lián)系。當(dāng)在第二計(jì)算機(jī)上收到該信息時(shí),第二計(jì)算機(jī)確定是否有一個(gè)滿足建立對(duì)等通信聯(lián)系的預(yù)定條件的第二計(jì)算機(jī)程序運(yùn)行在第二計(jì)算機(jī)上,如果是,第二計(jì)算機(jī)向第一計(jì)算機(jī)發(fā)送一條接受該請(qǐng)求的回答信息。當(dāng)?shù)谝挥?jì)算機(jī)收到該回答信息后,所請(qǐng)求的在第一和第二計(jì)算機(jī)程序之間的對(duì)等通信聯(lián)系即被建立。上述對(duì)等網(wǎng)絡(luò)軟件及方法在具體實(shí)現(xiàn)時(shí)或者通過電信公司的P2P服務(wù)器以ASP的方式實(shí)現(xiàn)或者通過企業(yè)自己在電信公司的IDC中架設(shè)P2P服務(wù)器來實(shí)現(xiàn),所以它們并不是完全對(duì)等,只是減輕了服務(wù)器的負(fù)擔(dān),并不能完全脫離服務(wù)器,且不能穿透防火墻和NAT路由器,同時(shí)還存在信任和安全問題。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述現(xiàn)有技術(shù)的不足之處,提出了一種對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)方法,本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是該體系結(jié)構(gòu)中的對(duì)等網(wǎng)絡(luò)建立在TCP/IP協(xié)議之上,由抽象的對(duì)等實(shí)體之間組成無層次結(jié)構(gòu)的邏輯網(wǎng)絡(luò),實(shí)體之間的地位完全平等,每個(gè)實(shí)體既作為向其它實(shí)體提供服務(wù)的服務(wù)器,又作為使用其它實(shí)體所提供服務(wù)的客戶端,實(shí)體的具體實(shí)現(xiàn)形式為在計(jì)算機(jī)上運(yùn)行的特定軟件實(shí)例或?qū)S玫男畔⒔K端設(shè)備。
實(shí)體之間建立對(duì)等網(wǎng)絡(luò)的步驟如下(1)新連接到網(wǎng)絡(luò)中的實(shí)體A,通過UDP端口向本實(shí)體的已在線實(shí)體名單中的其中之一實(shí)體B,發(fā)出表示本實(shí)體A已在線的通知信息。(2)收到該信息的實(shí)體B,向發(fā)出信息的實(shí)體A返回一個(gè)應(yīng)答,確認(rèn)收到該信息,同時(shí)向其發(fā)出一個(gè)數(shù)據(jù)包,其內(nèi)容為實(shí)體B所有知道的已在線實(shí)體名稱;(3)實(shí)體A將所收到的名單加入本實(shí)體的已在線實(shí)體名單;(4)實(shí)體B將實(shí)體A加入本實(shí)體的已在線實(shí)體名單;(5)實(shí)體A從已在線實(shí)體名單中選取下一個(gè)已在線實(shí)體,并重復(fù)上述四個(gè)步驟,直至與所有已在線實(shí)體完成上述通信過程。
網(wǎng)絡(luò)實(shí)體之間通信步驟如下(1)當(dāng)實(shí)體A需要與實(shí)體B通信時(shí),實(shí)體A向?qū)嶓wB發(fā)出一個(gè)通信請(qǐng)求;(2)收到該信息的實(shí)體B向發(fā)出信息的實(shí)體A返回一個(gè)應(yīng)答,確認(rèn)收到該信息;(3)實(shí)體A與實(shí)體B協(xié)商確定由其中一方作為服務(wù)器,另一端作為客戶端,其選擇原則為若實(shí)體A和實(shí)體B均在同一透明網(wǎng)絡(luò)環(huán)境中,中間沒有隔離防火墻,則實(shí)體B作為服務(wù)器,實(shí)體A作為客戶端;若有且只有其中一個(gè)實(shí)體處于防火墻之后,則未處于防火墻之后的實(shí)體作為服務(wù)器,處于防火墻之后的實(shí)體作為客戶端;若雙方均處于防火墻之后且分屬于不同的防火墻,則請(qǐng)求一未處于防火墻之后的實(shí)體C作為服務(wù)代理,實(shí)體B作為服務(wù)器,其服務(wù)由實(shí)體C代理,實(shí)體A作為客戶端;(4)實(shí)體B與實(shí)體A問以服務(wù)器與客戶機(jī)方式進(jìn)行通信。(5)通信內(nèi)容傳輸完畢后,由實(shí)體A發(fā)起拆除服務(wù)請(qǐng)求,實(shí)體B應(yīng)答,通信過程結(jié)束。
本發(fā)明中的實(shí)現(xiàn)方法在正常的網(wǎng)絡(luò)形態(tài)和具有防火墻或NAT路由器的網(wǎng)絡(luò)中均能實(shí)現(xiàn)無中心交換機(jī)或中心服務(wù)器的輕負(fù)荷的對(duì)等網(wǎng)絡(luò)結(jié)構(gòu),并可以使任何該類型的實(shí)體連接上網(wǎng)后通過認(rèn)證可以立即獲知其它相關(guān)實(shí)體是否在線,并通知已在線的實(shí)體,告知本實(shí)體已在線的信息。從而可使各種聯(lián)網(wǎng)企業(yè)與用戶之間安全地進(jìn)行信息交流與資源共享。
本發(fā)明通過把認(rèn)證、授權(quán)和加密三個(gè)要素結(jié)合在一起創(chuàng)建一個(gè)安全的對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)。認(rèn)證涉及到在一個(gè)網(wǎng)絡(luò)(如因特網(wǎng))中對(duì)等點(diǎn)向其他對(duì)等點(diǎn)認(rèn)證它們自己;授權(quán)涉及到授予一個(gè)認(rèn)證過的實(shí)體實(shí)施某些行為或訪問某些資源的許可的過程。在一個(gè)對(duì)P2P應(yīng)用中,一個(gè)對(duì)等點(diǎn)可能被認(rèn)證為只可以訪問另一個(gè)對(duì)等點(diǎn)的部分資源;加密涉及到把易理解的信息轉(zhuǎn)化為一種對(duì)未授權(quán)的個(gè)人和系統(tǒng)來說難理解的形式的過程,解密是這一過程的逆過程。加密可以保護(hù)在一個(gè)不安全網(wǎng)絡(luò)(如因特網(wǎng))中的對(duì)等點(diǎn)間流動(dòng)的信息,而這通過與每個(gè)對(duì)等點(diǎn)的安全認(rèn)證結(jié)合在一起,可確保交換數(shù)據(jù)不會(huì)在通信中被竊聽,如果信息是被數(shù)字簽名過的或在其中加入了MAC(消息認(rèn)證碼),那么雙方還能確定該信息沒有被修改過。
四
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
圖1是本發(fā)明中網(wǎng)絡(luò)實(shí)體間建立對(duì)等網(wǎng)絡(luò)的示意圖。
圖2是本發(fā)明中基于專有協(xié)議的端到端通訊流程圖。
圖3是本發(fā)明中處于不同防火墻內(nèi)的網(wǎng)絡(luò)實(shí)體間通訊過程流程圖。
五具體實(shí)施例方式
實(shí)體(對(duì)等點(diǎn))之間建立對(duì)等網(wǎng)絡(luò)的步驟如圖1所示(1)新連接到網(wǎng)絡(luò)中的實(shí)體A通過UDP端口向已在線實(shí)體名單中的其中之一實(shí)體B發(fā)出表示本實(shí)體A已在線的通知信息;(2)收到該信息的實(shí)體B向發(fā)出信息的實(shí)體A返回一個(gè)應(yīng)答,確認(rèn)收到該信息并要求實(shí)體A認(rèn)證實(shí)體B,同時(shí)向其發(fā)出一個(gè)數(shù)據(jù)包,其內(nèi)容為實(shí)體B所有知道的已在線實(shí)體名稱。認(rèn)證過程中實(shí)體A和實(shí)體B都用一個(gè)共享密鑰交換秘密的信息;(3)實(shí)體A對(duì)實(shí)體B進(jìn)行認(rèn)證后,將所收到的名單加入實(shí)體A的已在線實(shí)體名單并要求實(shí)體B認(rèn)證實(shí)體A;(4)實(shí)體B對(duì)實(shí)體A進(jìn)行認(rèn)證后,將實(shí)體A加入本實(shí)體的已在線實(shí)體名單,并通過分配給實(shí)體A特權(quán)的方式來授權(quán)實(shí)體A訪問某些資源;(5)在進(jìn)一步的通信發(fā)生之前,這兩個(gè)對(duì)等點(diǎn)可以協(xié)商加密它們之間的通道連接。然后,實(shí)體A從已在線實(shí)體名單中選取下一個(gè)已再線實(shí)體,并重復(fù)上述四個(gè)步驟,直至與所有已在線實(shí)體完成上述對(duì)等網(wǎng)絡(luò)連接。
對(duì)等實(shí)體間內(nèi)容的驗(yàn)證采用基于數(shù)字簽名的機(jī)制,其過程為(1)如圖1所示,實(shí)體A和實(shí)體B建立了一個(gè)安全的連接;(2)在它們建立好通道后,實(shí)體A向?qū)嶓wB要求一個(gè)內(nèi)容,如果實(shí)體B創(chuàng)建了該內(nèi)容,它就會(huì)在傳送該內(nèi)容之前為其數(shù)字簽名,如果實(shí)體B只是發(fā)布在別處創(chuàng)建的內(nèi)容,那么該內(nèi)容是已經(jīng)被簽名過的;(3)在實(shí)體A收到內(nèi)容后,它將驗(yàn)證附在內(nèi)容上的數(shù)字簽名。
本發(fā)明中所提出的建立在TCP/IP上的專有協(xié)議(Firewall Special Protocol,F(xiàn)SP)可以使防火墻后的實(shí)體能夠不受限制地運(yùn)行各種端到端的應(yīng)用。其核心技術(shù)是TCP/IP數(shù)據(jù)包的再封裝,下面介紹基于此協(xié)議的端到端通訊過程如圖2所示,首先,位于防火墻外的實(shí)體A上的應(yīng)用程序向位于防火墻內(nèi)的實(shí)體B發(fā)送一個(gè)網(wǎng)絡(luò)請(qǐng)求,經(jīng)過網(wǎng)絡(luò)層后,數(shù)據(jù)包由本地的FSP軟件處理,經(jīng)過編碼和封裝成為一個(gè)HTTP數(shù)據(jù)包,然后發(fā)送到HTTP/TCP/IP通道,經(jīng)由80端口通過防火墻到達(dá)實(shí)體B。在實(shí)體B,數(shù)據(jù)包先通過HTTP/TCP/IP通道送交以上FSP軟件,經(jīng)過解碼后插入本實(shí)體的網(wǎng)絡(luò)協(xié)議棧,最后到達(dá)實(shí)體B的應(yīng)用程序,就像沒有經(jīng)過防火墻一樣。在FSP中,每個(gè)TCP/IP包都以HTTP的GET請(qǐng)求或回應(yīng)GET請(qǐng)求消息的形式出現(xiàn),因而在通過防火墻時(shí)不會(huì)造成兼容性問題。IP包經(jīng)過MIME編碼成為HTTP消息體,而TCP包頭信息被分析后編碼到HTTP頭信息中。其中數(shù)據(jù)包被定義為由信封和正文組成的任意大小的束。信封是標(biāo)準(zhǔn)格式,它包括報(bào)頭、源端點(diǎn)信息(URI格式)、目的地端點(diǎn)信息(URI格式)、消息摘要(用于安全性目的),消息正文的長(zhǎng)度是任意的,包含一個(gè)可選的信任狀(用于安全性目的)和內(nèi)容。
本發(fā)明的具體實(shí)施例是在網(wǎng)絡(luò)化的產(chǎn)品協(xié)同開發(fā)中的應(yīng)用,如圖3所示,企業(yè)1和企業(yè)2都組建有自己的局域網(wǎng),且通過防火墻與外界的廣域網(wǎng)相連,安裝有實(shí)現(xiàn)FSP協(xié)議應(yīng)用軟件的計(jì)算機(jī)A和計(jì)算機(jī)B分別屬于局域網(wǎng)1與局域網(wǎng)2。計(jì)算機(jī)A和計(jì)算機(jī)B根據(jù)本發(fā)明中的方法建立對(duì)等網(wǎng)絡(luò)的體系結(jié)構(gòu)因雙方均處于防火墻之后且分屬于不同的防火墻,則計(jì)算機(jī)A請(qǐng)求一未處于防火墻之后的聯(lián)網(wǎng)計(jì)算機(jī)C作為服務(wù)代理,計(jì)算機(jī)B作為服務(wù)器,其服務(wù)由計(jì)算機(jī)C代理,計(jì)算機(jī)A作為客戶端。計(jì)算機(jī)B與計(jì)算機(jī)A之間以服務(wù)器與客戶機(jī)方式進(jìn)行對(duì)等通信。當(dāng)計(jì)算機(jī)A和計(jì)算機(jī)B的通訊過程建立后,雙方用戶在產(chǎn)品協(xié)同設(shè)計(jì)過程中只需把自己的各種設(shè)計(jì)文檔保存或拖放到本機(jī)共享文件夾中,對(duì)方就可以對(duì)這些文件進(jìn)行訪問,同時(shí)雙方用戶還可以進(jìn)行實(shí)時(shí)網(wǎng)上交流。企業(yè)1和企業(yè)2內(nèi)的各部門、業(yè)務(wù)伙伴之間都可以通過以上方法建立起對(duì)等網(wǎng)絡(luò)關(guān)系,而不通過服務(wù)器直接共享和傳輸數(shù)據(jù)、文件、信息、代碼或多媒體信息等。
權(quán)利要求
1.一種對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)方法,其特征在于該對(duì)等網(wǎng)絡(luò)建立在TCP/IP協(xié)議之上,由抽象的對(duì)等實(shí)體之間組成無層次結(jié)構(gòu)的邏輯網(wǎng)絡(luò),實(shí)體之間的地位完全平等;每個(gè)實(shí)體既作為向其它實(shí)體提供服務(wù)的服務(wù)器,又作為使用其它實(shí)體所提供服務(wù)的客戶端;實(shí)體的具體實(shí)現(xiàn)形式為在計(jì)算機(jī)上運(yùn)行的特定軟件實(shí)例或?qū)S玫男畔⒔K端設(shè)備。
2.根據(jù)權(quán)利要求1所述的對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)方法,其特征在于實(shí)體之間建立對(duì)等網(wǎng)絡(luò)的步驟如下(1)新連接到網(wǎng)絡(luò)中的實(shí)體A,通過UDP端口向本實(shí)體的已在線實(shí)體名單中的其中之一實(shí)體B,發(fā)出表示本實(shí)體A已在線的通知信息;(2)收到該信息的實(shí)體B,向發(fā)出信息的實(shí)體A返回一個(gè)應(yīng)答,確認(rèn)收到該信息,同時(shí)向其發(fā)出一個(gè)數(shù)據(jù)包,其內(nèi)容為實(shí)體B所有已知道的已在線實(shí)體名稱;(3)實(shí)體A將所收到的名單加入本實(shí)體的已在線實(shí)體名單;(4)實(shí)體B將實(shí)體A加入本實(shí)體的已在線實(shí)體名單;(5)實(shí)體A從已在線實(shí)體名單中選取下一個(gè)已在線實(shí)體,并重復(fù)上述四個(gè)步驟,直至與所有已在線實(shí)體完成上述通信過程。
3.根據(jù)權(quán)利要求1或2所述的對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)方法,其特征在于網(wǎng)絡(luò)實(shí)體之間通信步驟如下(1)當(dāng)實(shí)體A需要與實(shí)體B通信時(shí),實(shí)體A向?qū)嶓wB發(fā)出一個(gè)通信請(qǐng)求;(2)收到該信息的實(shí)體B向發(fā)出信息的實(shí)體A返回一個(gè)應(yīng)答,確認(rèn)收到該信息;(3)實(shí)體A與實(shí)體B協(xié)商確定由其中一方作為服務(wù)器,另一端作為客戶端,其選擇原則為若實(shí)體A和實(shí)體B均在同一透明網(wǎng)絡(luò)環(huán)境中,中間沒有隔離防火墻,則實(shí)體B作為服務(wù)器,實(shí)體A作為客戶端;若有且只有其中一個(gè)實(shí)體處于防火墻之后,則未處于防火墻之后的實(shí)體作為服務(wù)器,處于防火墻之后的實(shí)體作為客戶端;若雙方均處于防火墻之后且分屬于不同的防火墻,則請(qǐng)求一未處于防火墻之后的實(shí)體C作為服務(wù)代理,實(shí)體B作為服務(wù)器,其服務(wù)由實(shí)體C代理,實(shí)體A作為客戶端;(4)實(shí)體B與實(shí)體A間以服務(wù)器與客戶機(jī)方式進(jìn)行通信;(5)通信內(nèi)容傳輸完畢后,由實(shí)體A發(fā)起拆除服務(wù)請(qǐng)求,實(shí)體B應(yīng)答,通信過程結(jié)束。
全文摘要
一種對(duì)等網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)方法,該體系結(jié)構(gòu)中的對(duì)等網(wǎng)絡(luò)建立在TCP/IP協(xié)議之上,由抽象的對(duì)等實(shí)體之間組成無層次結(jié)構(gòu)的邏輯網(wǎng)絡(luò),實(shí)體之間的地位完全平等,每個(gè)實(shí)體既作為向其它實(shí)體提供服務(wù)的服務(wù)器,又作為使用其它實(shí)體所提供服務(wù)的客戶端,實(shí)體的具體實(shí)現(xiàn)形式為在計(jì)算機(jī)上運(yùn)行的特定軟件實(shí)例或?qū)S玫男畔⒔K端設(shè)備。本方法在正常的網(wǎng)絡(luò)形態(tài)和具有防火墻或NAT路由器的網(wǎng)絡(luò)中均能實(shí)現(xiàn)無中心交換機(jī)或中心服務(wù)器的輕負(fù)荷的對(duì)等網(wǎng)絡(luò)結(jié)構(gòu),并可以使任何該類型的實(shí)體連接上網(wǎng)后通過認(rèn)證可以立即獲知其它相關(guān)實(shí)體是否在線,并通知已在線的實(shí)體,告知本實(shí)體已在線的信息。
文檔編號(hào)G06F15/16GK1447256SQ0211349
公開日2003年10月8日 申請(qǐng)日期2002年3月21日 優(yōu)先權(quán)日2002年3月21日
發(fā)明者鄢萍, 劉飛, 賀德強(qiáng) 申請(qǐng)人:重慶大學(xué), 重慶海特克系統(tǒng)集成有限公司