WCF PeerChannel介绍
原文:http://www.ppcn.net/wap.aspx?nid=3444&p=2&cp=2&cid=2&sp=6
PeerChannel 這個術語通常用于指代 Windows Communication Foundation 的 P2P 功能。無論 Windows Communication Foundation 中的 PeerChannel 指代的是什么,它實際上消除了通常與 P2P 應用程序開發相伴的所有復雜性,并且在我看來,它是 P2P 應用程序開發領域的一個創新性突破。?
PeerChannel 網格 PeerChannel 網格是專為消息擴散而設計。但 PeerChannel 包含了可將消息傳播到網格的一部分而不是整個網格的機制。因此,更準確地說,PeerChannel 網格是專為多方消息傳送而設計。?
PeerChannel 網格的結構由每個節點所連接的鄰居數量所控制。為此,PeerChannel 網格會主動維護網格的結構。這種維護的作用就是使網格性能穩健并且分布均勻。更具體點說,網格中的節點會設法將連接的鄰居數保持在兩到七個之間。這些閾值可使對本地節點的資源需求與保持網格穩健性之間取得平衡。?
如果某節點在進入網格時帶有三個鄰居,然后其中兩個鄰居離開網格,則該節點將開始一個維護周期以試圖獲取新的鄰居連接。同樣,如果一個節點連接的鄰居少于七個,則它將接受新連接,直到它具有七個鄰居連接時為止。當一個 PeerChannel 節點連有三個鄰居時,則認為它處于理想的連接狀態,但一個節點將接受多達七個鄰居,以便低于鄰居數最低閾值的節點可以迅速獲得新的鄰居。應注意的是,您的應用程序代碼不能更改這些閾值或對網格的維護實施任何控制,這一點很重要。這些細節問題完全由 PeerChannel 基礎結構逐個節點地處理。?
PeerChannel 提供了 PNRP 解析程序和自定義解析程序,以供用作預期節點發現網格中已有節點地址的方法。無論選擇哪個解析方法,主旨都是一樣的:將網格名傳遞到解析程序并接收網格中其他節點的 IP 地址列表。一旦解析進程生成地址列表,預期 PeerChannel 節點就并發連接到每個地址。當 PeerChannel 網格中已有的某節點收到其中一個連接請求時,它可以接受或拒絕該連接。如果接受該連接,則現有節點會向新連接的節點發送一條歡迎消息,消息中除了其他內容之外,還包含網格中其他節點的地址列表。如果拒絕該連接,則現有節點會向預期節點發送一條拒絕消息,消息中包含拒絕理由以及網格中其他節點的地址列表。?
這里的重要一點是,網格名解析(通過 PNRP 解析程序或自定義解析程序執行)不是向 PeerChannel 中預期節點返回地址列表的唯一方式。與將網格名解析作為預期節點獲取地址的唯一方法相比,此特性可使節點更快速地進入理想的連接狀態。此外,這一特性使網格中的節點可對節點擁有的鄰居數(這一因素會進而影響網格的穩健性)進行控制。?
PeerChannel 網格內的通信被調整為盡量減少重復性的消息傳遞。當網格中的某節點向該網格發送消息時,實際上是在向其鄰居發送消息。當收到消息后,每個鄰居都會檢驗該消息,然后將其轉發給自己的鄰居。如果一個 PeerChannel 節點從某鄰居收到消息,它不會將此消息轉發回該鄰居。此外,如果一個 PeerChannel 節點經常從某鄰居那里收到先前已收到并處理過的消息,則與該鄰居的連接可能會在下一個維護周期中終止。這些功能將通過每個節點上的本地高速緩存來實現。在內部,PeerChannel 網格中的每個節點都會對 WS-Addressing 消息 ID 的值和傳送消息的鄰居的標識符進行緩存處理。節點在決定向哪些鄰居傳送該消息時會檢查這個高速緩存。將這些功能相結合后,會將網格調整為以最低的重復率和網絡帶寬消耗來向網格中的各節點傳送消息。?
如前所述,PeerChannel 節點還可以將消息發送給網格中節點的子集。這可以通過向消息分配一個跳躍計數來實現,這實際上是跟蹤轉發消息所經由的節點數的方式
轉載于:https://www.cnblogs.com/jRoger/articles/2595131.html
總結
以上是生活随笔為你收集整理的WCF PeerChannel介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET后台获取url
- 下一篇: android学汇资料总整理