国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于阿瑞斯協(xié)議的對等網(wǎng)絡緩存系統(tǒng)的實現(xiàn)方法

      文檔序號:7632457閱讀:243來源:國知局

      專利名稱::一種基于阿瑞斯協(xié)議的對等網(wǎng)絡緩存系統(tǒng)的實現(xiàn)方法
      技術領域
      :本發(fā)明是一種阿瑞斯(Ares)對等網(wǎng)絡的緩存系統(tǒng),主要用來緩解對等網(wǎng)絡流量給骨干網(wǎng)帶來的巨大壓力,屬于對等網(wǎng)絡領域。
      背景技術
      :P2P網(wǎng)絡(Peer-to-Peernetwork)即對等網(wǎng)絡,是分布式系統(tǒng)與計算機網(wǎng)絡相結合的產(chǎn)物,采用對等模式工作。其本質在于打破傳統(tǒng)的C/S模式(Client/krvermode)即客戶端/服務器模式,使一切網(wǎng)絡成員享有自由、平等、互聯(lián)的功能,它們既是客戶端又是服務器,任何兩個網(wǎng)絡結點間都能共享文件、傳遞消息。Ares是一個非常不錯的P2P文件共享體系,它始于2002年,開始作為一個Gnutella客戶端在Gnutella網(wǎng)絡上運營,2002年底經(jīng)過改寫,成為目前的Ares網(wǎng)絡。目前的Ares網(wǎng)絡采用混合架構,包含葉子結點和超級結點。Ares網(wǎng)絡是一種基于超級節(jié)點的兩層覆蓋網(wǎng)絡。在超級節(jié)點層,通過分布式哈希表(DHT)技術完成跨越搜索。和BitTorrent類似,Ares支持同步下載和從一個對等體到多個對等體的上載,同時支持直接超鏈接至P2P網(wǎng)絡文件的能力。Ares的優(yōu)點在于能快速地搜索和下載文件,并具有自設代理服務器、自訂聊天社群、內(nèi)建多媒體播放器和瀏覽器等功能,目前支持超過300,000用戶,是非常流行的P2P網(wǎng)絡。近年來,隨著各種P2P應用的流行,P2P網(wǎng)絡已成為互聯(lián)網(wǎng)的重要組成部分。據(jù)統(tǒng)計,目前P2P流量占據(jù)了互聯(lián)網(wǎng)流量的60%以上,其中Ares業(yè)務占很大一部分??焖僭鲩L的P2P流量給運營商帶來了很大的問題,P2P用戶能以運營商分配的帶寬進行全速下載,而這些流量只有小部分請求本地內(nèi)網(wǎng)結點,大部分以運營商出口流量的方式流向外網(wǎng)。為緩解P2P流量給骨干網(wǎng)帶來的巨大壓力,降低運營商的成本,目前解決該問題的方法主要分為限制和緩存兩種方法。所謂限制是通過對P2P協(xié)議的識別,在網(wǎng)絡出口處對P2P流量進行限速或攔截,但這種方法會在很大程度上會降低網(wǎng)絡內(nèi)的用戶體驗。所謂緩存是指在網(wǎng)絡內(nèi)部署P2P內(nèi)容緩存服務器,使內(nèi)網(wǎng)用戶從緩存服務器上獲得內(nèi)容,來減少網(wǎng)絡出口的P2P流量。鑒于復雜的Ares網(wǎng)絡服務,通過部署P2P緩存系統(tǒng),網(wǎng)絡運營商可以利用有限的投入支撐增長的P2P業(yè)務需求,從而解決當前P2P技術帶來的帶寬沖擊。另外,P2P緩存系統(tǒng)的使用還可以改善P2P應用的用戶體驗,從而吸引更多P2P客戶,并可能為網(wǎng)絡運營商帶來更多客戶。因此,P2P緩存系統(tǒng)的部署不僅能緩和P2P技術和網(wǎng)絡運營商的矛盾,而且能引導二者協(xié)同發(fā)展,創(chuàng)造出雙贏局面。
      發(fā)明內(nèi)容技術問題本發(fā)明的目的是提供一種基于阿瑞斯協(xié)議的對等網(wǎng)絡緩存系統(tǒng)的實現(xiàn)方法,該方案具有新穎性、靈活性、易擴展性和易操作性,具有很好的市場前景。技術方案=Ares緩存系統(tǒng)包括以下三個組成部分協(xié)議分析器、索引服務器和緩存服務器。協(xié)議分析器根據(jù)哈希(Hash)搜索請求報文的應用層特征字,將報文識別,然后對報文進行分析、提取源地址和下載資源ID等信息,并把其發(fā)送到索引服務器,等待索引服務器返回資源節(jié)點列表信息,最后根據(jù)返回的信息,構造哈希搜索返回結果報文并傳給Ares客戶端。索引服務器接收協(xié)議分析器發(fā)送來的資源信息查詢請求,將搜索到的擁有此資源的內(nèi)網(wǎng)節(jié)點列表和緩存服務器的列表地址等信息返回。如果沒有在索引服務器中查詢到需要的文件信息,則通知協(xié)議分析器對用戶的哈希搜索請求報文不做處理,并告知緩存服務器下載此文件以供內(nèi)網(wǎng)用戶分享,下載完成后通知索引服務模塊進行信息更新。索引服務器設置閾值來對資源進行更新。緩存服務器主要功能有響應Ares內(nèi)網(wǎng)節(jié)點的下載請求,為其提供下載服務;響應索引服務器發(fā)送來的下載請求和哈希搜索請求,根據(jù)超級節(jié)點的返回信息,構建資源節(jié)點列表并發(fā)送給索引服務器。該系統(tǒng)實現(xiàn)方法包括的步驟為步驟1).進行需求分析,對Ares緩存系統(tǒng)需要完成的功能進行分析,并生成需求分析文檔;步驟幻.按照步驟1的分析文檔設計模塊,對各模塊的功能進行詳細分析,生成各個模塊之間的邏輯關系和功能說明文檔;步驟幻.按照步驟2的文檔,設計與實現(xiàn)協(xié)議分析模塊。協(xié)議分析模塊由以下的幾個部分組成報文識別、提取報文、發(fā)送報文以及構造報文。協(xié)議分析模塊中的識別效率,影響著整個系統(tǒng)的工作效率。報文識別模塊根據(jù)報文長度以及固定位特征字來識別Ares對等網(wǎng)絡服務中的哈希搜索請求報文;提取報文模塊是提取哈希搜索請求報文中的源地址和下載資源號信息,進而由源地址和下載資源號生成哈希值,用來標識不同用戶的不同文件資源;發(fā)送報文模塊將提取的下載資源號和生成的哈希值發(fā)送給索引服務器,并等待索引服務器返回查詢結果;構造報文模塊根據(jù)索引服務器返回的報文,判斷索引服務器查詢是否成功,如果索引服務器查詢成功,說明內(nèi)網(wǎng)有相關的下載資源并返回了內(nèi)網(wǎng)中的資源列表,結合哈希搜索請求報文頭部和索引服務器返回的內(nèi)網(wǎng)資源列表,構造出哈希搜索返回結果報文并發(fā)送給Ares客戶端,Ares客戶端就可以根據(jù)返回的資源地址進行內(nèi)網(wǎng)下載,如果索引服務器查詢失敗,說明內(nèi)網(wǎng)中沒有相關的下載資源,將相應哈希搜索請求報文放行到外網(wǎng),不做其他處理;步驟4).按照步驟2的文檔,設計與實現(xiàn)索引服務模塊。索引服務模塊主要完成數(shù)據(jù)檢索功能以及和協(xié)議分析器、緩存服務器的交互功能。首先把內(nèi)網(wǎng)節(jié)點列表信息存儲在Memcached中,Memcached是一個高性能的分布式內(nèi)存對象緩存系統(tǒng)。在Mysql數(shù)據(jù)庫中存儲緩存服務器的地址信息和文件哈希值并把Mysql數(shù)據(jù)庫中的數(shù)據(jù)映射到Memcached中。當查詢請求到來時,先在Memcached所管理的內(nèi)存數(shù)據(jù)庫中查找,若沒有發(fā)現(xiàn)相應的資源,則需要在Mysql數(shù)據(jù)庫中進行查詢,找到數(shù)據(jù)后同步到Memcached中。若沒有在Mysql數(shù)據(jù)庫中發(fā)現(xiàn)所需查詢的表項,索引服務器發(fā)送命令給協(xié)議分析系統(tǒng),使其放棄對內(nèi)網(wǎng)用戶請求報文的篡改,同時發(fā)送下載請求給緩存服務器進行下載。下載完成后,Mysql數(shù)據(jù)庫將文件哈希值和緩存服務器的信息添加至表中,完成更新工作,同時通過Mysql的觸發(fā)機制,將表項同步至Memcached,以待用戶查詢;步驟5).按照步驟2的文檔,設計與頭現(xiàn)緩存服務模塊。緩存服務器的主要功能有上傳功能響應內(nèi)網(wǎng)節(jié)點的下載請求,與內(nèi)網(wǎng)節(jié)點協(xié)商傳輸端口,用協(xié)商好的傳輸端口為其提供下載服務;下載功能與超級節(jié)點建立連接,登陸4個超級節(jié)點,進行哈希搜索,并根據(jù)超級節(jié)點返回的資源列表進行文件分片下載;響應下載請求功能丌啟特殊的端口進行監(jiān)聽,對索引服務器發(fā)送來的下載請求進行處理,并根據(jù)傳輸來的哈希值進行下載;響應哈希搜索請求功能對索引服務器發(fā)送來的哈希搜索請求進行響應,向超級節(jié)點發(fā)送哈希搜索請求,根據(jù)超級節(jié)點的返回信息,構建資源節(jié)點列表并發(fā)送給索引服務器。有益效果本發(fā)明是一個針對Ares對等網(wǎng)絡緩存系統(tǒng)的實現(xiàn)方法,本發(fā)明通過引導內(nèi)網(wǎng)P2P用戶互聯(lián),充分利用內(nèi)網(wǎng)P2P結點的服務能力,有效地降低了P2P緩存服務器負載壓力,使得通過部署少量的P2P緩存服務器,就可以在不影響用戶體驗的前提下,減少P2P流量對網(wǎng)絡運營商網(wǎng)絡出口帶寬的占用。在整體上提高了P2P緩存系統(tǒng)的性能。相比以往的方法有一些顯著的優(yōu)點良好的系統(tǒng)擴展性由于系統(tǒng)模塊之間采用的是獨立模塊化,功能并行層次化設計,系統(tǒng)模塊之間的通信機制完全采用層次化的結構,因此可以方便地添加新的功能,也可以很容易地升級現(xiàn)有的功能,所以該系統(tǒng)擁有良好的可擴展性。高度的可靠性和穩(wěn)定性通過對Ares協(xié)議分析系統(tǒng)的單元測試、集成測試以及整個P2P緩存系統(tǒng)的系統(tǒng)測試,表明該協(xié)議分析系統(tǒng)運行狀況良好,占用系統(tǒng)資源少,擁有良好的容錯機制以及災難恢復能力。圖1是Ares緩存系統(tǒng)的物理組網(wǎng)圖,圖2是Ares緩存系統(tǒng)的結構圖,圖3是Ares緩存系統(tǒng)的流程圖,圖4是協(xié)議分析器的時序圖,圖5是索引服務器的流程圖,圖6是緩存服務器的時序圖,圖7是緩存服務器哈希搜索流程圖。具體實施例方式體系結構協(xié)議分析器報文識別功能基于應用層數(shù)據(jù)檢測的P2P流量識別技術是通過協(xié)議分析與還原技術,提取P2P應用層數(shù)據(jù)即P2P載荷,通過分析P2P載荷所包含的協(xié)議特征值,來判斷是否屬于P2P應用。因此,這類方法也叫做深層數(shù)據(jù)包檢測技術(DPI)。本發(fā)明的報文識別部分即采用DPI掃描技術,根據(jù)固定位特征字來協(xié)議識別Ares特定P2P網(wǎng)絡服務中的哈希搜索報文以及一些相關交互報文。協(xié)議分析器構造報文功能根據(jù)緩存于先進先出隊列的索引服務器返回的擁有資源節(jié)點列表信息的報文與緩存于分離鏈接散列表中的哈希搜索請求報文,構造哈希搜索返回結果報文。報文構造成功后,按照原路返回給Ares客戶端,使其完成下載。5索引服務器數(shù)據(jù)檢索功能=Mysql數(shù)據(jù)庫中的數(shù)據(jù)映射到Memcached中,當查詢請求到來時,先在Memcached所管理的內(nèi)存數(shù)據(jù)庫中查找,若沒有發(fā)現(xiàn)相應的資源,則需要在Mysql數(shù)據(jù)庫中進行查詢,找到數(shù)據(jù)后同步到Memcached中。若沒有在Mysql數(shù)據(jù)庫中發(fā)現(xiàn)所需查詢的表項,索引服務器發(fā)送命令給協(xié)議分析系統(tǒng),使其放棄對內(nèi)網(wǎng)用戶請求報文的篡改,同時發(fā)送下載請求給緩存服務器進行下載。下載完成后,Mysql數(shù)據(jù)庫將文件hashid和緩存服務器的信息添加至表中,完成更新工作,同時通過Mysql的觸發(fā)機制,將表項同步至Memcached,以待用戶查詢。索引服務器信息交互功能與協(xié)議分析模塊的交互協(xié)議分析模塊識別用戶請求資源的報文,提取出其中的資源ID,發(fā)送給索引服務器,在索引服務器中查找后,如果有,則返回資源列表;如果沒有,則要求緩存服務器到外網(wǎng)下載。與緩存服務器模塊的交互緩存服務器上報其擁有的資源,通知索引服務器及時更新;提供和緩存系統(tǒng)之間的TCP資源查詢功能;對命中緩存的次數(shù)進行統(tǒng)計;索引服務器統(tǒng)計在一定時間內(nèi)用戶請求資源文件的次數(shù),確定是否進行資源更新。當達到事先設定的閾值后,發(fā)送HashID值到緩存服務器,由緩存服務器到外網(wǎng)為其進行資源更新。緩存服務器哈希搜索功能對索引服務器發(fā)送來的哈希搜索請求進行響應,向超級節(jié)點發(fā)送哈希搜索請求,根據(jù)超級節(jié)點的返回信息,構建資源節(jié)點列表并發(fā)送給索引服務器。緩存服務器文件下載功能丌啟特殊的端口進行監(jiān)聽,對內(nèi)網(wǎng)結點和索引服務器發(fā)送來的下載請求進行處理,與超級節(jié)點建立連接,登陸4個超級節(jié)點,進行哈希搜索,并根據(jù)超級節(jié)點返回的資源列表進行文件分片下載。方法流程該部分詳細說明
      發(fā)明內(nèi)容各個部分的設計與實現(xiàn)協(xié)議分析器報文識別功能實現(xiàn)利用Linux的Netfilter防火墻里的TCP/IP協(xié)議棧的關鍵數(shù)據(jù)結構SocketBuffer(SkJxiff),來操作流經(jīng)的數(shù)據(jù)包。如果是報文分片的,或是無連接數(shù),則返回無操作。當一個報文流經(jīng)Netfilter第一個鉤子函數(shù)NF_IP_PRE_ROUTING,會被送到內(nèi)存的控制結構sk_buff中暫時存儲。在這個控制結構里,有個指向網(wǎng)絡報文的指針(如Skb->nh),首先識別報文是否為TCP報文,再根據(jù)sk_bufT結構提供的網(wǎng)絡層和傳輸層頭部的大小,slA->nh加上之前兩者的頭部長度,指針就指向了應用層數(shù)據(jù)的頭部(如Appdata指針)。sk_bufT里還提供數(shù)據(jù)包的總長度,通過減去網(wǎng)絡層和傳輸層頭部的大小,就能得到應用層數(shù)據(jù)的長度。上述準備工作完成后,就可以通過Appdata指針來比對需要識別的Ares報文,也就是通過對報文長度和固定位進行匹配來確定。本發(fā)明需要剖析Ares特定網(wǎng)絡服務中的哈希搜索報文,判斷是否為Ares的上行TCP數(shù)據(jù)包中的哈希搜索請求報文數(shù)據(jù)包,不是則放行數(shù)據(jù)包。協(xié)議分析器構造報文功能實現(xiàn)索引服務器進行檢索,如果有該ID資源,則向協(xié)議分析系統(tǒng)返回構造哈希搜索返回結果報文所需的資源節(jié)點列表信息,協(xié)議分析模塊在內(nèi)核中構造哈希搜索返回結果報文,傳給Ares客戶端。構造報文的過程如下步驟一讀取出當前數(shù)據(jù)包的slib結構體0ldslib;步驟二檢查該數(shù)據(jù)包IP首部的frag_0fT成員,判斷是否是分片包。對于IP分片,調(diào)用ip_defrag把它與已經(jīng)收到的IP分片重組,并等待后來的IP分片,直至形成一個完整的IP數(shù)據(jù)包;步驟三檢查TCP校驗和是否正確,若不正確則丟棄該數(shù)據(jù)包;步驟四對截獲的當前數(shù)據(jù)包的slib結構體,調(diào)用slib_COpy_eXpand0函數(shù)重新拷貝一個nslcb,包括slib結構體和數(shù)據(jù)部分;步驟五更新nslcb引用的路由項,將當前數(shù)據(jù)包的源IP當做路由的目的IP,同時由數(shù)據(jù)包的目的IP得到去往該源IP的路由;步驟六清除nslcb中鏈接跟蹤相關的內(nèi)容,交換源地址和目的地址的IP和端口,重新設置TCP頭部的長度,TCP數(shù)據(jù)部分改為索引服務器返回的資源節(jié)點列表信息,并修改IP頭部中記錄的數(shù)據(jù)包的總長度;步驟七重新設置TCP的序列號和確認號,序列號為原slib中的確認號,確認號為原slA中的序列號與原TCP數(shù)據(jù)部分長度的和;步驟八重新計算TCP校驗和,修改IP包的TTL,重新計算IP數(shù)據(jù)包頭部校驗和;步驟九使nskb和oldskb的鏈接記錄關聯(lián),讓新數(shù)據(jù)包經(jīng)過NetfiIter的NF_IP_L0CAL_0UT點,然后查路由,最后經(jīng)由NF_IP_P0ST_R0UTING點將數(shù)據(jù)包發(fā)送出去。索引服務器數(shù)據(jù)檢索功能實現(xiàn)步驟一設計函數(shù)searchjiiemcached(),當協(xié)議分析系統(tǒng)截獲到哈希搜索請求報文后,將其hashid發(fā)送到Memcached中查詢,此函數(shù)實現(xiàn)了在內(nèi)存中查找索引服務模塊所存儲的內(nèi)網(wǎng)peerlist信息。步驟二設計函數(shù)search_mysql(),當Memcached中沒有查找到所對應的hashid值的記錄后,索引服務模塊將在Mysql數(shù)據(jù)庫中進行查詢,如有相應的記錄則先返回給協(xié)議分析系統(tǒng),同時將其記錄通過數(shù)據(jù)庫的觸發(fā)機制同步到Memcached中。若在數(shù)據(jù)庫中沒有發(fā)現(xiàn)相應的記錄,則通知緩存服務器模塊進行下載,下載完成后將得到的信息存儲到Mysql中并將其同步到內(nèi)存數(shù)據(jù)庫。步驟三設計函數(shù)updatelistO,當數(shù)據(jù)庫中的數(shù)據(jù)被訪問的記錄超過一定閾值的時候,數(shù)據(jù)庫向緩存服務器發(fā)送更新列表的請求,當緩存服務器下載完成后將信息進行過濾(按照IP地址段進行過濾),將內(nèi)網(wǎng)的節(jié)點信息進行保留,告知數(shù)據(jù)庫進行更新,同時,將信息同步到Memcached中。索引服務器信息交互功能實現(xiàn)由于索引服務器涉及到和協(xié)議分析器及緩存服務器的信息交互,采用多線程技術搭建印oil模型。印oil是Linux下多路復用IO接口select/poll的增強版本,它能顯著減少程序在大量并發(fā)連接中只有少量活躍的情況下的系統(tǒng)CPU利用率,印oil模型的工作流程為首先通過印ollcreate()函數(shù)來創(chuàng)建一個epoll的句柄。這個函數(shù)會返回一個新的印oil句柄,之后的所有操作將通過這個句柄來進行操作。在用完之后,用closeO來關閉這個創(chuàng)建出來的印oil句柄。之后在網(wǎng)絡主循環(huán)里面,每一幀的調(diào)用印oll_Wait()函數(shù)來查詢所有的網(wǎng)絡接口,看哪一個可以讀,哪一個可以寫。當^olljait這個函數(shù)操作成功之后,epoll_events里面將儲存所有的讀寫事件。max_events是當前需要監(jiān)聽的所有socket句柄數(shù)。timeout是印oll_wait的超時,為O的時候表示馬上返回,為-1的時候表示一直等下去,直到有事件發(fā)生,為任意正整數(shù)的時候表示等這么長的時間,如果一直沒有事件,則放棄。如果網(wǎng)絡主循環(huán)是單線程,可以用-ι來等,這樣可以保證效率,如果是和主邏輯在同一個線程,則可以用0來保證主循環(huán)的效率。印oll_Wait()范圍之后應該是一個循環(huán),遍利所有的事件如果是主socket的事件的話,則表示有新連接進入了,進行新連接的處理,并將新連接置于非阻塞模式。隨后將新連接也加入印oil的監(jiān)聽隊列。設置好event之后,將這個新的event通過印oll_ctl()函數(shù)加入到epoll的監(jiān)聽隊列里面。如果不是主socket的事件的話,則代表是一個用戶socket的事件,則來處理這個用戶socket的事情。緩存服務器哈希搜索功能實現(xiàn)步驟一設計as_searchman_locate()函數(shù)創(chuàng)建并發(fā)送Hash搜索,調(diào)用as_hashtable_lookup()查詢消息管理器是否包含此hash信息,若沒有則調(diào)用as_search_create_locate()新建Hash搜索,然后調(diào)用as_hashtable_insert()插入此消息到管理器中,若插入失敗,調(diào)用as_hashtable_remove_int()刪除此Hash搜索消息,并as_search_free()釋放此消息,最后調(diào)用asjessmaruforeach()依次發(fā)送管理器中的消息到相連的超級節(jié)點。步驟二設計hashtable_search()函數(shù)查詢哈希表指定項,as_hashtable_create_mem()調(diào)用hashtable_new()為返回結果建立哈希表;as_hashtable_create_int()調(diào)用hashtablejewO建立哈希表存儲已發(fā)送的超級節(jié)點信息,若失敗則調(diào)用as_hashtable_free()釋放結果哈希表,并釋放此搜索消息。步驟三設計hashtable_entry()函數(shù)返回哈希表入口信息,hashtable_insert()函數(shù)插入指定項到哈希表,hashtable_remove()函數(shù)從哈希表刪除某項;as_search_free()釋放Hash搜索消息。步驟四設計send_search_itr()函數(shù)發(fā)送搜索消息到相連的超級節(jié)點,其中as_search_sent_count()用來返回已發(fā)送的超級節(jié)點數(shù)目,aS_Search_Sent_t0()用來判斷此搜索消息是否已經(jīng)發(fā)送到某超級節(jié)點,as_search_send()發(fā)送一個搜索請求到超級節(jié);search_query_packet()^Csearch^;']packetH-ζ,ijffflas—session—send()發(fā)送報文,完畢則aS_paCket_free()釋放報文,timer_add用來設置search消息的超時時間。緩存服務器文件下載功能實現(xiàn)該模塊的主要功能能根據(jù)Hash搜索到的資源HashID信息,系統(tǒng)到外網(wǎng)去下載相應的資源,以便以后為內(nèi)網(wǎng)用戶提供上傳服務。下載過程函數(shù)開始文件塊下載函數(shù)aS_dOWnCOrm_Start()、文件塊下載請求函數(shù)downconn_request()、發(fā)送文件塊下載請求函數(shù)downconn_send_request()、力口密傳輸i青求函數(shù)as_encrypt_transfer_request()、下載連接函數(shù)downconn_connected()、讀取傳輸包頭部函數(shù)downconn_read_header()、PUSH回調(diào)函數(shù)downconn_push_calIback(),該函數(shù)將搜索得到的資源節(jié)點信息和資源節(jié)點答復報文中的信息進行比對,若一致則下載,否則視為無效,比對的信息有ip、port和^erName等。為方便描述,假定如下網(wǎng)絡環(huán)境主機A上安裝Ares軟件客戶端,在網(wǎng)橋上部署Ares協(xié)議分析器,主機A上所有報文流經(jīng)網(wǎng)橋,并且在內(nèi)網(wǎng)部署索引服務器和緩存服務器,構成Ares緩存系統(tǒng)。具體實施方式如下1、主機A連接hternet并打開Ares客戶端;82、Ares客戶端進行搜索并下載,網(wǎng)橋截獲到報文交由協(xié)議分析器進行分析和處理,識別是否是Ares報文,以判斷是否進行下一步的處理;3、如果是Ares哈希搜索請求報文,則提取哈希搜索請求報文的源地址和下載資源ID,進而由源地址和下載資源ID生成哈希值并發(fā)送給索引服務器,并等待索引服務器的返回報文;4、協(xié)議分析器讀取索引服務器返回的報文,根據(jù)報文內(nèi)容判斷是否查詢成功,如果索引服務器查詢失敗,說明內(nèi)網(wǎng)中沒有相關的下載資源,則放行相應的哈希搜索請求報文,使其到外網(wǎng)節(jié)點進行搜索;如果索引服務器查詢成功,說明內(nèi)網(wǎng)中有相關的下載資源,則根據(jù)索引服務器返回報文里的哈希值,并結合哈希搜索請求報文的頭部和索引服務器返回報文里的資源列表信息構造出哈希搜索返回結果報文并返回給Ares用戶,Ares客戶端就可以根據(jù)構造的哈希搜索返回結果報文里的資源地址進行內(nèi)網(wǎng)下載;5、若索引服務器無該Hash記錄,則將該HashID發(fā)給緩存服務器,讓緩存服務器去外網(wǎng)下載;6、緩存服務器根據(jù)該HashID到外網(wǎng)去進行Hash搜索并下載資源,下載完成后緩存服務器告知索引服務器,緩存中擁有該Hash資源的節(jié)點信息。索引服務器根據(jù)該信息選擇15條內(nèi)網(wǎng)節(jié)點信息和緩存服務器信息存入數(shù)據(jù)庫;7、在索引服務器的數(shù)據(jù)表中設置一個點擊次數(shù)字段,并為其設置一個閾值。當大于該閾值時,則發(fā)送它的HashID值給緩存服務器,請求緩存服務器為其進行資源列表更新;8、緩存服務器根據(jù)索引服務器告知的HashID信息,到Ares網(wǎng)絡中進行資源列表更新,將最新的資源列表信息返回給索引服務器;9、索引服務器對外網(wǎng)節(jié)點按照IP地址網(wǎng)段進行過濾后,選擇最優(yōu)的15個內(nèi)網(wǎng)節(jié)點資源進行存儲更新。同時將點擊次數(shù)字段置為0。權利要求1.一種基于阿瑞斯協(xié)議的對等網(wǎng)絡緩存系統(tǒng)的實現(xiàn)方法,其特征在于該系統(tǒng)實現(xiàn)方法包括的步驟為步驟1).進行需求分析,對協(xié)議分析系統(tǒng)需要完成的功能進行分析,并生成需求分析文檔;步驟幻.按照步驟1的分析文檔設計模塊,對協(xié)議分析模塊、索引服務模塊、緩存服務模塊的功能進行詳細分析,生成各個模塊之間的邏輯關系和功能說明文檔;步驟;3).按照步驟2的文檔,設計與實現(xiàn)協(xié)議分析模塊,協(xié)議分析模塊由以下的幾個部分組成報文識別模塊、提取報文模塊、發(fā)送報文模塊以及構造報文模塊;協(xié)議分析模塊中的識別效率影響著整個系統(tǒng)的工作效率;報文識別模塊根據(jù)報文長度以及固定位特征字來識別阿瑞斯對等網(wǎng)絡服務中的哈希搜索請求報文;提取報文模塊是提取哈希搜索請求報文中的源地址和下載資源號信息,進而由源地址和下載資源號生成哈希值,用來標識不同用戶的不同文件資源;發(fā)送報文模塊將提取的下載資源號和生成的哈希值發(fā)送給索引服務器,并等待索引服務器返回查詢結果;構造報文模塊根據(jù)索引服務器返回的報文,判斷索引服務器查詢是否成功,如果索引服務器查詢成功,說明內(nèi)網(wǎng)有相關的下載資源并返回了內(nèi)網(wǎng)中的資源列表,結合哈希搜索請求報文頭部和索引服務器返回的內(nèi)網(wǎng)資源列表,構造出哈希搜索返回結果報文并發(fā)送給阿瑞斯客戶端,阿瑞斯客戶端就可以根據(jù)返回的資源地址進行內(nèi)網(wǎng)下載,如果索引服務器查詢失敗,說明內(nèi)網(wǎng)中沒有相關的下載資源,將相應哈希搜索請求報文放行到外網(wǎng),不做其他處理;步驟4).按照步驟2的文檔,設計與實現(xiàn)索引服務模塊,索引服務模塊主要完成數(shù)據(jù)檢索功能以及和協(xié)議分析器、緩存服務器的交互功能,把內(nèi)網(wǎng)節(jié)點列表信息存儲在內(nèi)存對象緩存系統(tǒng)中,在數(shù)據(jù)庫中存儲緩存服務器的地址信息和文件哈希值并把數(shù)據(jù)庫中的數(shù)據(jù)映射到內(nèi)存對象緩存系統(tǒng)中,當查詢請求到來時,先在內(nèi)存對象緩存系統(tǒng)所管理的內(nèi)存數(shù)據(jù)庫中查找,若沒有發(fā)現(xiàn)相應的資源,則需要在數(shù)據(jù)庫中進行查詢,找到數(shù)據(jù)后同步到內(nèi)存對象緩存系統(tǒng)中;若沒有在數(shù)據(jù)庫中發(fā)現(xiàn)所需查詢的表項,索引服務器發(fā)送命令給協(xié)議分析系統(tǒng),使其放棄對內(nèi)網(wǎng)用戶請求報文的篡改,同時發(fā)送下載請求給緩存服務器進行下載,下載完成后,數(shù)據(jù)庫將文件哈希值和緩存服務器的信息添加至表中,完成更新工作,同時通過數(shù)據(jù)庫的觸發(fā)機制,將表項同步至內(nèi)存對象緩存系統(tǒng),以待用戶查詢;步驟5).按照步驟2的文檔,設計與實現(xiàn)緩存服務模塊,緩存服務器的主要功能有上傳功能響應內(nèi)網(wǎng)節(jié)點的下載請求,與內(nèi)網(wǎng)節(jié)點協(xié)商傳輸端口,用協(xié)商好的傳輸端口為其提供下載服務;下載功能與超級節(jié)點建立連接,登陸4個超級節(jié)點,進行哈希搜索,并根據(jù)超級節(jié)點返回的資源列表進行文件分片下載;響應下載請求功能開啟特殊的端口進行監(jiān)聽,對索引服務器發(fā)送來的下載請求進行處理,并根據(jù)傳輸來的哈希值進行下載;響應哈希搜索請求功能對索引服務器發(fā)送來的哈希搜索請求進行響應,向超級節(jié)點發(fā)送哈希搜索請求,根據(jù)超級節(jié)點的返回信息,構建資源節(jié)點列表并發(fā)送給索引服務器。全文摘要基于阿瑞斯協(xié)議的對等網(wǎng)絡緩存系統(tǒng)及其實現(xiàn)方法包括以下三個組成部分協(xié)議分析器、索引服務器和緩存服務器。協(xié)議分析器根據(jù)深層數(shù)據(jù)包檢測技術識別哈希搜索請求報文,然后對報文進行分析、提取源地址和下載資源標識信息并發(fā)送到索引服務器,索引服務器將搜索到的擁有此資源的內(nèi)網(wǎng)節(jié)點列表和緩存服務器的列表地址等信息返回。協(xié)議分析器根據(jù)返回的信息構造哈希搜索返回結果報文并傳給阿瑞斯客戶端,使對等網(wǎng)絡用戶從內(nèi)網(wǎng)結點和緩存服務器下載資源。如果在索引服務器中沒有查詢到需要的文件信息,則通知協(xié)議分析器對用戶的哈希搜索請求報文不做處理,并告知緩存服務器下載此文件以供內(nèi)網(wǎng)用戶分享,下載完成后通知索引服務模塊進行信息更新。文檔編號H04L29/08GK102130838SQ20111008570公開日2011年7月20日申請日期2011年4月2日優(yōu)先權日2011年4月2日發(fā)明者徐鶴,李致遠,王汝傳,蔣華,邵星,韓志杰申請人:南京郵電大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1