網路組織
jxta
網路是由相互連線的對等體組成的乙個 ad-hoc
、 multi-hop
網路,具有可適應性。網路的連線是暫時的,因此,兩個對等體間傳送訊息的路徑是非確定的。對等體可是隨時加入或離開 jxta
網路;這也就導致了訊息傳送路徑會隨時變化。
而各種不同的 jxta
應用唯一的相同的方面就是它們之間的通訊是通過 jxta
協議來實現的。網路的組織不是依靠 jxta
框架,而實際上是通過使用四種對等體來實現的:
共享資源分發索引( srdi)
jxse
支援一種共享資源分發索引( shared resource distributed index
: srdi
)服務,當在 jxta
網路內的傳遞**搜尋請求時,這種服務可以為傳遞**提供一種很有效的機制。聚合對等體為邊對等體發布的通告維護著乙個索引。當邊對等體想要再發布乙個新的通告時,它就通過 srdi
服務把這個通告的索引送給聚合對等體。通過這種 「
聚合對等體 -
邊對等體 」
結構,請求僅僅在聚合對等體之間傳遞**。這樣,可以最大減少了在搜尋乙個通告時所牽扯的對等體的數目。
每乙個聚合對等體都有乙個它所知道的對等體組中的其它聚合對等體的列表。乙個聚合對等體可以從乙個預定義的種子對等體中獲得其它聚合對等體的資訊。聚合對等體周期性地選擇一些預先隨機指定數目的聚合對等體,向這些聚合對等體傳送自己所知道的聚合對等體的列表。聚合對等體也會週期性的清除那些總是沒有響應的聚合對等體。因此,這些聚合對等體都維護著乙個鬆散的聚合對等體的網路。
當乙個對等體發布乙個新通告時, srdi
服務通過該通告的名字或者 id
之類的關鍵值為其編制乙個索引,並且最大減少在乙個聚合對等體中儲存該通告所需的資料量,然後將這個索引傳送給乙個聚合對等體。這個聚合對等體也將該索引再傳送給它所知道的其它的聚合對等體(傳送給哪些聚合對等體是通過通告索引的雜湊函式計算出來的)。
詢問( queries)
下圖顯示了乙個配置的示例。對等體 a
是乙個邊對等體,並且將對等體 r1
配置成它的聚合對等體。當對等體 a
初始化乙個發現或搜尋請求時,它首先將其傳送給它的聚合對等體,即 r1
,在這個例子中它也通過多播方式將其傳送給同在乙個子網內的其它對等體。
圖 6:通過聚合對等體**請求
本地網內的請求(也就是同乙個子網內)在**給同乙個子網內的其它對等體時是通過廣播( broadcast
)或多播( multicast
)方式進行的。當乙個對等體接到乙個請求時,如果它在自己的快取李有請求的內容,那麼它就立即響應那個傳送請求的對等體。
當詢問要衝出子網時,則先傳送給它所連線的聚合對等體。聚合對等體試圖在其快取內先檢視是否有所請求內容。如果有的話,則立即響應傳送請求的對等體,而且也不再**該請求了。
如果聚合對等體沒有所請求的資源,那麼就要在其它的聚合對等體中來遍歷搜尋包含這個資源的聚合對等體,而遍歷搜尋時使用到的就是乙個 「
有限範圍遍歷演算法( limited-rang walker algorithm
) 」。通過使用網路地圖功能來修改詢問的路徑,以減少詢問的 ttl
(譯者注:不知道怎麼翻譯這句話,大概意思是:同時也要記錄在前進路勁中跳躍的次數,看它是否超過了設定的最大跳躍次數,以此來避免在不穩定的或動態的網路中容易出現的死迴圈)。
srdi
使用乙個 sha1
雜湊位址表,在這個表中, 160
位的位址空間被分成有序的聚合對等體的列表。當乙個索引到達時,它先被雜湊編碼,以確定它的複製位址。然後將之複製到目標聚合對等體中。
下面的圖 7
從邏輯角度向您展示了 srdi
是如何工作的。一旦結點 a
發布了一組通告,那麼一組以 srdi
訊息形式的索引便傳送給它的聚合對等體, rdv1
,這些索引便儲存在 rdv1
中,然後複製(基於它們的雜湊對映圖)到聚合對等體 2
、 3和 4
中去。接著結點 c
發布乙個詢問,要詢問通告 a
,那麼它就依次遍歷聚合對等體 2
,然後對映到 3
,最後走到結點 a
。
圖 7: srdi
操作過程
防火牆和 nat
防火牆後面的對等體可以直接向外面的對等體傳送訊息,但是外面的對等體卻不能同防火牆後面的對等體建立直接的連線。在 nat
方面,情況也是這樣的。
為了使 jxta
的對等體之間能夠穿越防火牆而相互通訊,必須具備下面幾種情況:
下圖向您展示了典型的通過防火牆傳遞訊息的情況。在這種情況下, jxta
對等體 a
和 b想傳遞乙個訊息,但是防火牆阻止它們建立直接的連線。對等體 a
首先向對等體 c
發起連線,使用的是諸如 http
這樣的防火牆允許通過的協議。對等體 c
然後通過諸如 tcp/ip
協議同對等體 b
建立連線。這樣,對等體 a
與 b間就建立了乙個虛擬連線。
圖 8:訊息穿越防火牆的情形
JXTA手冊 第四章 JXTA網路架構
網路組織 jxta網路是由相互連線的對等體組成的乙個ad hoc multi hop網路,具有可適應性。網路的連線是暫時的,因此,兩個對等體間傳送訊息的路徑是非確定的。對等體可是隨時加入或離開jxta網路 這也就導致了訊息傳送路徑會隨時變化。而各種不同的jxta應用唯一的相同的方面就是它們之間的通訊...
第四章 網路層
目錄 網路層關注的是如何將分組從源端沿著網路路徑送達目的端 兩種服務 網路層應該向運輸層提供怎樣的服務?資料報服務 網路層向上只提供簡單靈活的 無連線的 盡最大努力交付的資料報服務。盡最大努力交付的好處 由於傳輸網路不提供端到端的可靠傳輸服務,這就使網路中的路由器可以做得比較簡單,而且 低廉 採用這...
第四章 專案基礎架構
1 什麼是前端跨域?跨域是瀏覽器為了安全而做出的限制策略 瀏覽器請求必須遵循同源策略 同網域名稱 同埠 同協議2 怎麼解決前端跨域?cors跨域 服務端設定,前端直接呼叫 說明 後台允許前端某個站點進行訪問 jsonp跨域 前端適配,後台配合 說明 前後臺同時改造 跨域3 建立專案目錄小放在asse...