天天看點

JXTA理論篇

Peers之間的路由消息

  Router Peers作為代理連接配接防火牆或NAT分隔的兩個Peer。在防火牆保護下的peer周期連接配接Router peer以檢視是否有新的消息。注意:在防火牆保護下的peer必須使用能穿透防火牆或NAT的協定(防火牆根據端口号過濾協定,一般不會過濾HTTP協定)。一旦消息從source peer發到destination peer,連接配接就關閉。接下來的消息可以重複該操作,但是消息可能使用不同的router peer,是以,可能使用不同的路由器到destination peer。

    同樣,公網上的peer想要給防火牆内部的peer發送消息,source peer必須知道router peer能夠發送資訊給destination peer的路由資訊。 路由資訊可能通過早期P2P的發現協定獲得。也同樣需要source peer周期連接配接destination peer, 連接配接一次就關閉。是以可能下次連接配接的router peer就換了。

雙防火牆和NAT穿透 

一些在邊緣網絡上的peer,通常需要兩次穿透防火牆和NAT的界限,具體情況如下圖:

JXTA理論篇

具體過程與單穿透NAT類似

假如source peer和destination peer有一個共同的router peer。雙穿透NAT可以隻使用那個公共的router peer。 然而,使用router peer除了用作穿透防火牆邊界還有其他作用。多個router peers可以作為解決網絡瓶頸提供更高性能的一種手段,或者作為兩個不相容網絡的翻譯者。在這種情況下,當一個peer連接配接到source router peer的時候,它提供一些列的router peers供選擇。

比較業界的P2P解決方案

Napster

Napster 混合了P2P模式和c/s模式,有一台中央伺服器提供搜尋。這種架構可以标記為單彙聚點和多個simple peers,所有的網絡傳輸用TCP協定。彙聚點提供simple peers查找MP3檔案通告的能力,這些通告包括檔案名,IP位址和端口資訊。 Simple peers 使用這些資訊連結宿主peer(檔案的所有者)然後下載下傳檔案。 Napster不提供全面穿透防火牆的能力,它隻能穿透一層防火牆。每個peer充當簡單的路由器,通過使用HTTP發送能力給防火牆後面的peer。 Napster也不提供消息路由能力,這意味着在網絡中的簡單peer不能作為router peer進而達到穿透雙防火牆的能力。

Gnutella

   在Gnutella網絡中,每個peer充當simple peer,rendezvous peer,和router peer,使用TCP和HTTP協定作為檔案傳輸。在網絡中搜尋都會被peer轉發到它所知道的鄰居中。在Gnutella網絡中通告内容包括IP位址,端口号,一個序号标記宿主peer的檔案和檔案的一些詳細資訊,如檔案名字和大小。Gnutella也不同工全路由peer的能力,這也就意味着Naster,Gnutella都隻能穿透一層防火牆。

Client/Server

即使是簡單的C/S架構也可以解釋為P2P架構。如client作為一個simple peer,服務端作為rendezvous peer,根據不用的應用提供通告。不提供穿透防火牆的能力,網絡傳輸協定根據不同的應用而不同。

下一篇: jxta