6.2、客户/服务器方式(C/S)对等方式(P2P方式)

news2024/11/19 8:24:58

网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务。

开发一种新的网络应用首先要考虑的问题就是 网络应用程序在各种端系统上的组织方式和它们之间的关系。 \color{red}网络应用程序在各种端系统上的组织方式和它们之间的关系。 网络应用程序在各种端系统上的组织方式和它们之间的关系。

目前流行的主要有以下两种:

  • 客户 / 服务器 \color{red}客户/服务器 客户/服务器(Client/Server,C/S)方式

  • 对等 \color{red}对等 对等(Peer-to-Peer,P2P)方式

1、客户/服务器方式(C/S)

客户/服务器(Client/Server,C/S)方式

  • 客户和服务器是指通信中所涉及的两个应用进程。

  • 客户/服务器方式所描述的是进程之间服务和被服务的关系。

  • 客户是服务请求方,服务是服务提供方 \color{red}客户是服务请求方,服务是服务提供方 客户是服务请求方,服务是服务提供方

  • 服务器总是处于运行状态,并等待客户的服务请求。 \color{red}服务器总是处于运行状态,并等待客户的服务请求。 服务器总是处于运行状态,并等待客户的服务请求。

  • 服务器具有固定端口号 ( 例如 HTTP 服务器的默认端口号为 80 ) ,而运行服务器的主机也具有固定的 IP 地址。 \color{red}服务器具有固定端口号(例如 \texttt{HTTP} 服务器的默认端口号为 \texttt{80}),而运行服务器的主机也具有固定的 \texttt{IP} 地址。 服务器具有固定端口号(例如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定的IP地址。


如下所示,处于网络边缘的主机 A 中运行的是客户程序

  • 正在运行的客户程序称为客户进程,简称为客户

注意:运行客户进程的主机应称为:客户计算机,有时简称为客户

处于网络边缘的主机 B 中运行的是服务器程序

  • 正在运行的客户程序称为服务器进程,简称为服务器

注意:运行服务器进程的主机应称为:服务器计算机,有时简称为服务器

image-20230108223248071


C/S 方式下,客户向服务器请求服务,服务器收到服务请求后向客户提供服务

  • 也就是说 客户是服务请求方,服务是服务提供方 \color{red}客户是服务请求方,服务是服务提供方 客户是服务请求方,服务是服务提供方

C/S 方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是 C/S 方式。包括万维网 www、电子邮件、文件传输FTP等。

基于 C/S 方式的应用服务通常是 服务集中型 \color{red}服务集中型 服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上。

  • 由于一台服务器计算机要为多个客户机提供服务,在 C/S 应用中

    常会出现服务器计算机跟不上众多客户机请求的情况 \color{red}常会出现服务器计算机跟不上众多客户机请求的情况 常会出现服务器计算机跟不上众多客户机请求的情况

  • 为此,在 C/S 应用中,常用 计算机群集 \color{red}计算机群集 计算机群集(或服务器场)构建一个强大的 虚拟服务器 \color{red}虚拟服务器 虚拟服务器

2、对等方式(P2P方式)

对等(Peer-to-Peer,P2P)方式

  • 在P2P方式中, 没有固定的服务请求者和服务提供者 \color{red}没有固定的服务请求者和服务提供者 没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为 对等方 \color{red}对等方 对等方

    对等方相互之间直接通信 \color{red}对等方相互之间直接通信 对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者。


如下所示,处于网络边缘的主机 CDEF 中运行着同一种 P2P 程序

  • 例如:某种网络下载工具软件

EF 中的 P2P 进程互为等对方,CD 中的 P2P 进程互为等对方

  • ED 中的 P2P 进程互为等对方

image-20230108224348852

我们可以想象成 EP2P 进程正在从 F 下载文件

  • 与此同时还为 DP2P 进程提供下载服务

目前,在因特网上流行的 P2P 应用主要包括 P2P 文件共享、即时通信、P2P 流媒体、分布式存储等。

基于 P2P 的应用是 服务分散型 \color{red}服务分散型 服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑,

  • 它们通常位于住宅、校园和办公室中。

P2P 方式的最突出特性之一就是它的 可扩展性 \color{red}可扩展性 可扩展性。因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者, 系统性能不会因规模的增大而降低 \color{red}系统性能不会因规模的增大而降低 系统性能不会因规模的增大而降低

P2P 方式具有 成本上的优势 \color{red}成本上的优势 成本上的优势,因为它通常不需要庞大的服务器设施和服务器带宽。为了降低成本,服务提供商对于将 P2P 方式用于应用的兴趣越来越大。

3小结

image-20230108224910844

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式_创建型模式 -《建造者模式》

设计模式_创建型模式 -《建造者模式》 笔记整理自 黑马程序员Java设计模式详解, 23种Java设计模式(图解框架源码分析实战) 概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造&#…

Golang.org/x库初探2——text库

Golang有一个很有意思的官方库,叫golang.org/x,x可能是extends,experimental,总之是一些在官方库中没有,但是又很有用的库。最近花点时间把这里有用的介绍一下。 Golang.org/x库初探1——image库Golang.org/x库初探2—…

原创,探店,混剪,带货,获客,发布,更新,呆头鹅批量剪辑软件

一天轻松剪辑2000条,视频批量生成工具,短视频带货,电商卖家,媒体运营多场景应用视频剪辑分镜音频合成,一次解决! 对于广大自媒体玩家最关心的话题,用了这个AI全自动呆头鹅批量视频剪辑软件做出来…

骑电动车不戴头盔识别抓拍系统 yolov7

骑电动车不戴头盔识别抓拍系统通过Python基于YOLOv7网络深度学习技术,对现场画面中骑电动车不戴头盔识别抓拍包括骑乘人员和带乘人员。YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器,并在V100 上,30…

如何设置等高线坐标系并输出

如何设置等高线坐标系并输出发布时间:2018-01-17 版权:投影设置及数据导出矢量等高线生成完成后(详细生成过程参加上一章节:矢量等高线生成),我们就能够设置投影和导出等高线数据。投影设置我们生成等高线默认的坐标是…

Rust之错误处理(一):无法恢复的错误panic!

开发环境 Windows 10Rust 1.66.1VS Code 1.74.3项目工程 这里继续沿用上次工程rust-demo 错误处理 错误是软件生活中的一个事实,所以Rust有一些处理出错情况的功能。在许多情况下,Rust要求你承认错误的可能性,并在你的代码编译前采取一些…

Google结构化数据

为什么要向网页添加结构化数据? 添加结构化数据可让您获得对用户更有吸引力的搜索结果,并可能会鼓励用户与您的网站进行更多互动,这就是富媒体搜索结果。 以下是一些为网站实现了结构化数据的案例研究: Rotten Tomatoes 为 10 万…

【学习笔记之Linux】工具之gdb

背景知识: 首先我们要知道,程序的发布一共有两种模式,一种是debug模式,是我们程序员自己编写代码的模式,可以进行调试,这个模式下编译出来的程序是包含调试信息的;一种是release模式&#xff0c…

AntV G6 组织图使用(后端渲染数据)

一、业务场景: 点击按钮,跳转页面并显示该数据的组织架构图(类似于粒子效果) 二、问题描述: 初始写死的数据能显示,但是从接口请求到的数据赋上值 渲染不了 三、具体实现步骤: (1&…

python GUI And Tkinter 01

目录 一、基础介绍 二、创建窗口 1、创建完窗口后还需要知道窗口的相关属性 2、widget相关控件 3、原本tkinter有的Widget。 4、widget的共同属性 1. Configuration 2. Event Processing 3. Event callbacks 4. Alarm handlersafter(time,callback):间隔指定时间后调…

Python logging 库的『完整教程』

前言 本文的标题是『完整』。所谓『完整』,大意是想表达:提炼出一组最小的经验组合,并且能够快速应用于工程中,能 work,甚至能完美地 work。这篇文章就是想要做到『如何能完美地work』。 初衷 最原始的初衷就是&…

nmap 扫描数据分析

本案22端口为开放端口,110为未开放端口 Wireshark上使用下面的表达式 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port22 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port110 命令一、 nmap -sS SYN-->SYN ACK-->RST …

电脑技巧:Windows这些自带应用尽量不要删,否则影响系统运行

目录 第一种:带有“microsoft”字样的软件尽量不卸载。 第二种:带有“Intel”或者“英特尔”的程序名称不要卸载。 第三种:windows驱动程序包尽量不要卸载 第四种:Adobe flash player不建议卸载 当电脑太卡,运行变…

C/C++ - 从代码到可执行程序的过程

(1)预编译 主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下: 删除所有的#define,展开所有的宏定义。处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。处理“#inc…

简单工厂模式

简单工厂模式所谓组件:从设计上讲,组件就是能完成一定功能的封装体。小到一个类,大到一个系统,都可以称为组件,因为一个小系统放到更大的系统里面去,也就当个组件而已。模式定义:提供一个创建对…

servlet运用自定义分发优化servlet泛滥

servlet优化 Web 层的 Servlet 个数太多了,不利于管理和编写 我们发现每一个功能都需要定义一个 servlet,一个模块需要实现增删改查功能,就需要4个 servlet,模块一多就会造成servlet 泛滥。此时我们就想 servlet 能不能像 servi…

YOLOv6 训练自己的数据集

项目地址:https://github.com/meituan/YOLOv6 论文地址:https://arxiv.org/abs/2209.02976 论文解析:http://t.csdn.cn/0ZQbV YOLOv6 是一种专为工业应用设计的单级对象检测框架,具有硬件友好的高效设计和高性能。YOLOv6-N 在 NVI…

【windows】docker与docker-compose部署spring boot项目

看完不会用,我倒立**,保姆级教学 docker部署项目 采用Dockerfile部署 docker-compose部署项目 docker-compose部署,实际上是对容器的编排,以及容器间的一些依赖 比如一个springboot项目,需要使用redis,…

深入 Redis sds

文末有视频讲解 在上一个模块中,我和小伙伴们一起学习了 Redis 最核心的命令,主要涉及 String、List、Hash、Set、Sorted Set 五种数据结构的命令,同时,我们还介绍了每种数据结构的实战场景,并带领小伙伴们使用 Java 语…

11、ThingsBoard-租户配置

1、概述 租户配置(tenant profile)如其名是租户相关的配置,通俗一点就是给你这个租户的功能增加一些限制,如果你加钱,我就给你把限制设置高一点,thingsboard官方那个收费的版本不就是这样的吗?租户配置在系统层,系统管理员可以创建租户配置,然后使用租户配置为多个租…