p2p和cs模式的区别与对比

区别:P2P(Peer-to-Peer端到端)模型是与C/S(客户/服务器)模型相对应。基于C/S的用户间通信需要由服务器中转,在C/S中的服务器故障将导致整个网络通信的瘫痪,而基于P2P的用户间则是直接通信,去掉了服务器这一层,带来的显著优点是通信时没有单一的失败点,一个用户的故障不会影响整个p2p网络。

P2p通信模型

     在p2p网络中,任何两个端点之间可实现直接通信。在基于C/s的网络中,客户端可以通过向服务器注册来实现定位(获得IP和端口)。在p2p网络中,是如何实现彼此之间的定位和通信,下面做一阐述。

获得网络中可以通信端点的ip和端口

     假设有一个端点a,欲与p2p网络中的其他端点通信,在通信之前,端点A必须首先把自己的ip和端口通知p2p网络中的其他每一个端点。其他每个端点收到这个信息后,就获得了端点A的ip和端口,随后向端点A反馈自己的ip和端口信息,使端点A也获得P2P网络中的每个端点的ip和端口。

     这里有两个技术可以完成端点A向其他端点通知其Ip和端口的工作,一是广播技术,二是多播技术。

    广播技术主要在局域网中使用,在局域网中的每一个端点(主机)都不得不接受并处理一个广播数据包,因此为了避免网络阻塞,路由器均限制广播数据包的通过。所以设计基于互联网的p2p程序不适合采用广播技术。

  多播技术是一种允许一个或多个发送者(多播源)发送单一的数据包到多个接收者(一次的,同时的)网络技术。多播源把数据包发送到特定多播组,而只有属于该多播组的地址才能接受到数据包。多播可以大大的节省网络带宽,提高了数据的传送效率。减少了主干网出现拥塞的可能性。多播组中的端点(主机)可以是在同一个物理网络,也可以来自不同的物理网络(如果由多播路由器的支持)。因此,多播技术是我们的选择。

发布了10 篇原创文章 · 获赞 3 · 访问量 292

猜你喜欢

转载自blog.csdn.net/qq_32227619/article/details/105694168
P2P