Windows平臺上實現P2P服務(一)

       對等網絡,即對等計算機網絡,是一種在對等者(Peer)之間分配任務和工做負載的分佈式應用架構,是對等計算模型在應用層造成的一種組網或網絡形式。「Peer」在英語裏有「對等者、夥伴、對端」的意義。所以,從字面上,P2P能夠理解爲對等計算或對等網絡。國內一些媒體將P2P翻譯成「點對點」或者「端對端」,學術界則統一稱爲對等網絡(Peer-to-peer networking)或對等計算(Peer-to-peer computing),其能夠定義爲:網絡的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲能力、網絡鏈接能力、打印機等),這些共享資源經過網絡提供服務和內容,能被其它對等節點(Peer)直接訪問而無需通過中間實體。在此網絡中的參與者既是資源、服務和內容的提供者(Server),又是資源、服務和內容的獲取者(Client)。安全

      UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據報協議,是OSI(Open System Interconnection,開放式系統互聯) 參考模型中一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768是UDP的正式規範。UDP在IP報文的協議號是17。
        UDP協議全稱是用戶數據報協議,在網絡中它與TCP協議同樣用於處理數據包,是一種無鏈接的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,也就是說,當報文發送以後,是沒法得知其是否安全完整到達的。UDP用來支持那些須要在計算機之間傳輸數據的網絡應用。包括網絡視頻會議系統在內的衆多的客戶/服務器模式的網絡應用都須要使用UDP協議。UDP協議從問世至今已經被使用了不少年,雖然其最初的光彩已經被一些相似協議所掩蓋,可是即便是在今天UDP仍然不失爲一項很是實用和可行的網絡傳輸層協議。服務器

        採用UDP協議進行打洞以進行P2P會話,打洞的原理是這樣的:假設client A要向client B對話,可是A不知道B的地址,即便知道根據NAT的原理這個對話在第一次會被拒絕,由於client B的NAT認爲這是一個從沒有過的外部發來的請求.這個時候,A若是發現本身沒有保存B的地址,或者說發送給B的會話請求失敗了,它會要求server端讓B向A打一個洞,這個B->A的會話意義在於它使NAT B認爲A的地址/端口是能夠經過的地址/端口,這樣A再向B發送對話的時候就不會再被NAT B拒絕了。打一個比方來講明打洞的過程,A想來B家作客,可是遭到了B的管家NAT B的拒絕,理由是:我歷來沒有聽我家B提過你的名字,這時A找到了A,B都認識的朋友server,要求server給B報一個信,讓B去跟管家說A是個人朋友,因而,B跟管家NAT B說,A是我認識的朋友,這樣A的訪問請求就不會再被管家NAT B所拒絕了。簡而言之,UDP打洞就是一個經過server保存下來的地址使得彼此之間可以直接通訊的過程,server只管幫助創建鏈接,在創建間接以後就再也不介入了。網絡

相關文章
相關標籤/搜索