C/S,B/S与P2P架构

您所在的位置:网站首页 p2p是一种什么应用架构 C/S,B/S与P2P架构

C/S,B/S与P2P架构

2024-07-12 17:09| 来源: 网络整理| 查看: 265

C/S、B/S与P2P架构 一、C/S架构

C/S 架构是一种典型的两层架构,全称是Client/Server,即客户端/服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。 在这里插入图片描述 *C/S架构软件有一个特点,就是如果用户要使用的话,需要下载一个客户端,安装后就可以使用。*比如:微信/客户端QQ等是基于C/S架构

1、C/S架构的优点:

1 C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)

2 安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层。

3 由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)

2、C/S架构的缺点:

可以将QQ作为类比:

1 适用面窄,通常用于局域网中。

2 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。

3 维护成本高,发生一次升级,则所有客户端的程序都需要改变。

二、B/S架构

B/S架构的全称为Browser/Server,即浏览器/服务器架构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB****端构成所谓的三层架构。B/S架构的系统无须特别安装,只要有Web浏览器即可。 在这里插入图片描述

B/S架构的分层:

与C/S架构只有两层不同的是,****B/S架构有三层****,分别为:

第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。

第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。

第三层数据层:主要是接受客户端请求后独立进行各种运算。

比如:IE浏览器/WEB端QQ等是基于B/S架构的。

B/S架构的优点:

1、客户端无需安装,有Web浏览器即可。 2、BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。 3、BS架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载啊什么的。

B/S架构的缺点:

1、在跨浏览器上,BS架构不尽如人意。 2、表现要达到CS程序的程度需要花费不少精力。 3、在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。 4、客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

B/S架构的几种形式

第一种:客户端-服务器-数据库

这个应该是我们平时比较常用的一种模式:

1、客户端向服务器发起Http请求

2、服务器中的web服务层能够处理Http请求

3、服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法

4、如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端

第二种:客户端-web服务器-应用服务器-数据库 在这里插入图片描述

类似于第一种方法,只是将web服务和应用服务解耦

1 客户端向web服务器发起Http请求

2 web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口

3 应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器

4 web服务器将模版+数据组合渲染成html返回给客户端

第三种方法:客户端-负载均衡器(Nginx)-中间服务器(Node)-应用服务器-数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RmAu4WF9-1616083212400)(X:\桌面\3.png)]

1、整正暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址

2、客户向负载均衡器发起Http请求

3、负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群

4、Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口

5、应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node

6、Node层将模版+数据组合渲染成html返回反向代理服务器

7、反向代理服务器将对应html返回给客户端

客户端QQ是基于C/S架构的,C-客户端:即下载好的QQ客户端,可以在本地处理一些自主问题而无需经过服务器的处理,S-服务器端:即你与其他人聊天时,你的聊天记录经过服务器的指定传送给对方,然后才能开始愉快的聊天。C/S需要用指定的工具(比如客户端),而B/S用浏览器进行网页操作就可以了,不需要下载指定登陆工具。

三、P2P架构

P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点“。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。

P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。

P2P架构的核心思想是每个节点既可以充当客户端(Client),又可以充当服务器端(Server)。

P2P网络有3种常见的组织结构

1)DHT结构 分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输[2]。 (2)树形结构 P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播[3-4]。 (3)网状结构

网状结构如图1©所示,又叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。网状结构[5]为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA[6]。 在这里插入图片描述

P2P架构的优点 拥有较佳的并行处理能力。运用内存来管理交换资料,大幅度提高性能。不用投资大量金钱在服务器的软,硬体设备。适用于小规模的网路,维护容易。 P2P架构的缺点

架设较为复杂,除了要有开发服务器端,还要有专用的客户端。

用在大规模的网路,资源分享紊乱,管理较难,安全性较低。

比如:BT/电驴下载,非法传播视频的网站等,因为每个结点既是客户端可以进行下载,又是服务器端可以继续上传资源以提供下载服务给其他人,所以找不到真正的Server,打击非法网站也就难上加难了,所以P2P架构就是一种”我为人人,人人为我“的资源共享思想。如果是C/S架构,比如HTTP协议,只需单点攻击Server,整个C/S架构就失去了最核心的服务器端部分,基于C/S架构的通信也就被攻破了。

参考文献:https://blog.csdn.net/sea_snow/article/details/81187804



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3