P2P網絡通信網路相關知識收集
P2P網絡通信網路相關知識收集
資料來源:https://read01.com/R5dL7y.html
01.通訊準備:
假設有一個端點A,欲和P2P網絡中其他端點通信,在通信之前,端點A必須首先把自己的IP和埠通知P2P網絡中的其他每一個端點。其他每個端點收到這個信息後,就獲得了端點A的IP和埠,隨後向端點A反饋自己的IP和埠信息,使端點A也獲得P2P網絡中每個端點的IP和埠。
這裡有兩個技術可以完成端點A向其他端點通知其IP和埠的工作,一是廣播技術,二是多播技術。
●廣播技術主要在區域網中使用,在區域網中的每一個端點(主機)都不得不接受並處理一個廣播數據包。因此為了避免網絡阻塞,路由器均限制廣播數據包的通過。所以設計基於網際網路的P2P程序不適合採用廣播技術。
●多播技術(也常稱為組播通信)(Multicast) 是一種允許一個或多個發送者(多播源)發送單一的數據包到多個接收者(一次的,同時的)的網絡技術。 多播源把數據包發送到特定多播組,而只有屬於該多播組的地址才能接收到數據包。多播可以大大的節省網絡帶寬,提高了數據傳送效率。減少了主幹網出現擁塞的可能性。多播組中的端點(主機)可以是在同一個物理網絡, 也可以來自不同的物理網絡(如果有多播路由器的支持)。因此,多播技術是我們的選擇。
PS多播指定的D類IP位址(224.0.0.1到239.255.255.255)
02.與已知IP和埠的端點通信:
TCP/UDP
2 thoughts on “P2P網絡通信網路相關知識收集”
codeproject上有對『VC++多播技術(Multicast)聊天程式』
GroupTalk – A multicast based group conference application:
https://www.codeproject.com/Articles/7454/GroupTalk-A-multicast-based-group-conference-appli
C# A Multicast Based P2P File Sharing Application
https://github.com/ahmad-siavashi/Project-Bella