Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 在分布式系统中,P2P和客户机-服务器体系结构模型有什么区别_Networking_Distributed Computing_Distributed System - Fatal编程技术网

Networking 在分布式系统中,P2P和客户机-服务器体系结构模型有什么区别

Networking 在分布式系统中,P2P和客户机-服务器体系结构模型有什么区别,networking,distributed-computing,distributed-system,Networking,Distributed Computing,Distributed System,因此,我们在分布式系统中有两种体系结构模型,P2P和客户机-服务器 在一般的网络中,我已经熟悉这两个概念,但我的理解是,在客户机-服务器模型中,服务器也可能是另一台服务器的客户机,这让我很困惑,因为这难道不基本上与P2P相似,在P2P中,每台计算机都被视为“对等机”? 为什么要用这两个模型?这不是一个非常精确的问题,如果答案不是你想要的,请原谅。本质上,客户机/服务器(C/S)和对等(P2P)模型分别表示两种不同的通信模式:不对称和对称。在C/S模式中,每个参与者都在做一些完全不同的事情:一个发

因此,我们在分布式系统中有两种体系结构模型,P2P和客户机-服务器

在一般的网络中,我已经熟悉这两个概念,但我的理解是,在客户机-服务器模型中,服务器也可能是另一台服务器的客户机,这让我很困惑,因为这难道不基本上与P2P相似,在P2P中,每台计算机都被视为“对等机”?
为什么要用这两个模型?

这不是一个非常精确的问题,如果答案不是你想要的,请原谅。本质上,客户机/服务器(C/S)和对等(P2P)模型分别表示两种不同的通信模式:不对称和对称。在C/S模式中,每个参与者都在做一些完全不同的事情:一个发送邮件,另一个接收邮件,或者一个是需要内容的web浏览器,另一个是分发邮件的服务器。P2P模型涉及参与者之间的合作以实现相同的任务,例如文件共享

也许让您对C/s模型感到困惑的是一种类似于代理的模式,在这种模式中,代理服务器是某些节点的服务器,而客户端是其他节点的客户端。这在很大程度上仍然是C/S模式,而不是P2P模式,但代理同时在客户端和服务器角色中运行,很可能在这两种情况下使用相同的协议(当协议不同时,通常称为“网关”)。例如,在HTTP代理的情况下,浏览器客户端将HTTP代理视为普通web服务器。事实上,就浏览器而言,代理可能是web服务器:大多数规模相当大的网站实际上是负载平衡代理或类似代理背后的许多服务器。代理可能不保存所请求的数据,在这种情况下,它将以客户端的角色从其他web服务器获取数据

相反,P2P协议往往在每个节点上做相同的事情。类似Torrent的文件共享就是一个明显的例子:参与的节点在它们之间分发文件。某些节点具有其他节点所需的数据。可能存在主要接收数据的节点(leechers)和主要发送数据的节点(seeders),但协议对于所有参与者都是相同的

一些应用程序甚至可以从混合方法中受益。在电信应用程序中,通常需要一些节点充当服务器,以便于建立呼叫,但一旦发生呼叫,最好是终端节点可以作为对等节点直接相互通信