计算机网络:应用层 —— 网络应用模式

news2025/2/5 11:49:46

文章目录

    • 客户—服务器方式和对等方式
      • 客户/服务器方式 (C/S方式)
        • 工作流程
        • 特点
      • 对等方式 (P2P方式)
        • 工作流程
        • P2P 应用
        • 特点

客户—服务器方式和对等方式

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

开发一种新的网络应用首先要考虑的问题,就是网络应用程序在各种端系统上的组织方式和它们之间的关系,目前流行的主要有以下两种:

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

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

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

在客户 - 服务器方式(C/S 模式)中有明确的服务提供者(服务器)和服务请求者(客户)。

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

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

  • 客户是服务请求方服务器是服务提供方

  • 服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口号(例如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定的IP地址

![[客户服务器方式.png]]

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

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

由于一台服务器计算机要为多个客户机提供服务,在 C/S 应用中,常会出现服务器计算机跟不上众多客户机请求的情况。为此,在 C/S 应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器

工作流程
  1. 首先,客户程序需要知道服务器的 IP 地址和端口号。以网页浏览为例,当用户在浏览器(客户程序)中输入一个网址(如http://www.example.com)时,浏览器会通过 DNS(域名系统)查询得到对应的 Web 服务器的 IP 地址。

  2. 浏览器(客户)向 Web 服务器(服务端)的 80 端口(HTTP 服务默认端口)发送一个 HTTP 请求,请求获取网页内容。

  3. 服务器接收到请求后,根据请求的内容进行处理,比如从服务器的文件系统中找到对应的网页文件,然后将文件内容封装成 HTTP 响应发送回客户。

  4. 最后,客户(浏览器)收到响应后,对内容进行解析和显示,如将 HTML 文本解析成可视化的网页呈现给用户。

特点
  • 功能分工明确:服务器专注于提供特定的服务,它通常具有强大的计算资源、存储资源和网络带宽,以满足多个客户同时请求服务的需求。

    客户则相对简单,主要负责向服务器发送请求和接收、处理服务器返回的结果。例如,在文件服务器系统中,服务器负责存储和管理大量的文件,而客户只是在需要时向服务器请求下载或上传文件。

  • 可扩展性和集中管理性较好:可以通过增加服务器的硬件资源(如内存、硬盘、CPU 等)或者增加服务器的数量(如采用服务器集群)来满足不断增长的客户请求。同时,服务器端的服务和资源可以进行集中管理,例如可以方便地对服务器上的文件系统进行备份、更新软件版本等操作。

  • 安全性较高:服务器可以对客户进行身份认证和访问控制,确保只有合法的客户才能访问服务。例如,在银行系统中,客户需要通过用户名、密码或者数字证书等方式进行身份验证后,才能访问自己的账户信息和进行交易操作。

对等方式 (P2P方式)

对等方式 (P2P 方式) 是指,网络中的每个节点(计算机或设备)既是客户端又是服务器,它们在地位上是平等的,没有专门的服务器和客户端之分。

P2P 方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方对等方相互之间直接通信,每个对等方既是服务的请求者又是服务的提供者,它们在地位上是平等的。

![[对等方式.png]]

工作流程

P2P 文件共享为例:

  • 当一个节点(用户 A)想要获取一个文件时,它首先会在自己连接的 P2P 网络中发送一个文件查找请求。这个请求会在网络中的其他节点之间传播,每个节点会检查自己是否拥有该文件。

  • 如果某个节点(用户 B)拥有这个文件,它就会与请求节点(用户 A)建立连接,并将文件的部分或者全部发送给用户 A。

  • 在这个过程中,节点之间的连接可能是直接的,也可能通过其他中间节点进行转发,具体取决于 P2P 网络的拓扑结构和路由算法。

P2P 应用

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

基于 P2P 的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所有,而可是为个人控制的桌面计算机和笔记本电脑,它们通常位于住宅、校园和办公室中。

特点
  • 自组织和高扩展性P2P 方式的最突出特性之一就是它的可扩展性,因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不因规模的增大而降低

  • 分布式资源共享P2P 模式充分利用了网络中各个节点的资源,实现了资源的分布式存储和共享。它不需要像 C/S 模式那样依赖集中式的服务器,因此可以避免单点故障问题

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

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

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

相关文章

118.【C语言】数据结构之排序(堆排序和冒泡排序)

目录 1.堆排序 2.冒泡排序 单趟排序的两种情况 情况1.和arr[i]的前一个元素交换,第一次循环结束时i的值为n-1,第二次循环结束时i的值为n-2 情况2.和arr[i]的后一个元素交换,第一次循环结束时i的值为n-2,第二次第一次循环结束时i的值为n-3,... 将单趟排序代码嵌入外循环中…

【图像处理lec9】小波与多分辨率分析

目录 一、背景 1、引出小波变换 2、图像金字塔 (1)图像金字塔的基本概念 (2)高斯金字塔 (3)拉普拉斯金字塔 (4)金字塔的结构与生成框图 3、子带编码 (1&#xf…

ubuntu2204 gpu 没接显示器,如何连接vnc

之前一直用ssh ,一直没接显示器,后来实在不方便,要安个vnc看一下,结果装上就黑了 硬件上:买一个HDMI显卡欺骗器插在设备上。 软件上:装一个虚拟显示器欺骗一下 sudo apt install xserver-xorg-coresudo apt install…

黑神话悟空游戏鼠标光标使用教程与下载

效果图: 鼠标光标特点 这套鼠标光标的设计灵感来源于《黑神话:悟空》游戏中的角色和元素,具有以下特点: • 主题鲜明:光标设计紧扣游戏主题,采用了游戏中的元素,让玩家在使用电脑时也能感受到…

32132132123

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

简述css中z-index的作用?如何用定位使用?

z-index是一个css属性,用于控制元素的堆叠顺序, 如何使用定位用index 1、position:relative; z-index; 相对于自己来定位的,可以根据top,bottom,right,left&#xff…

简单贪吃蛇小游戏的设计与实现

文章目录 1、知识预备1.1 WIN32 API1.1.1 什么是WIN32 API1.1.2 了解部分WIN32 API1.1.2.1 控制台坐标1.1.2.2 控制台光标1.1.2.3 获取键盘按键情况 2.1 宽字符2.1.1 C语言的国际化2.1.2 宽字符的打印 2、 贪吃蛇游戏设计2.1 游戏开始2.2 游戏运行2.2.1 更新分数2.2.2 按键检测…

mac中idea菜单工具栏没有git图标了

1.右击菜单工具栏 2.选中VCS,点击添加 3.搜索你要的工具,选中点击确定就添加了 4.回到上面一个界面,选中你要放到工具栏的工具,点击应用就好了 5.修改图标,快捷键或者右击选中编辑图标 6.选择你要的图标就好了

ElementPlus 自定义封装 el-date-picker 的快捷功能

文章目录 需求分析 需求 分析 我们看到官网上给出的案例如下,但是不太满足我们用户想要的快捷功能,因为不太多,因此需要我们自己封装一些,方法如下 外部自定义该组件的快捷内容 export const getPickerOptions () > {cons…

电子病历五级的Python编程基础实战

一、电子病历五级之路:机遇与挑战并存 在当今数字化医疗的浪潮下,电子病历五级成为医院迈向高质量发展的关键里程碑。它不仅象征着医院信息化建设的深度与广度,更是保障医疗服务质量、提升患者安全的核心要素。随着电子病历五级标准的深入推行…

VDA 学习手册

VDA(Verband der Automobilindustrie,德国汽车工业联合会)报文标准是专为汽车行业制定的电子数据交换(EDI)标准,用于支持供应链管理中的数据传输。它是由德国汽车工业联合会开发和维护的,广泛应…

cesium入门学习四

怎么加载地图效果文件,地图效果的显示。 学习总结: 1.cesium入门学习一-CSDN博客 2.cesium入门学习二-CSDN博客 3.cesium入门学习三-CSDN博客 1.怎么加载geojson文件,并在html中显示 1.1 geojson文件来源: DataV.GeoAtlas地理小…

前端开发 -- 自动回复机器人【附完整源码】

一&#xff1a;效果展示 本项目实现了一个简单的网页聊天界面&#xff0c;用户可以在输入框中输入消息&#xff0c;并点击发送按钮或按下回车键来发送消息。机器人会根据用户发送的消息内容&#xff0c;通过关键字匹配来生成自动回复。 二&#xff1a;源代码分享 <!DOCTYP…

2011-2019年各省总抚养比数据

2011-2019年各省总抚养比数据 1、时间&#xff1a;2011-2019年 2、来源&#xff1a;国家统计局 3、指标&#xff1a;行政区划代码、地区、年份、总抚养比(人口抽样调查)(%) 4、范围&#xff1a;31省 5、指标解释&#xff1a;总抚养比也称总负担系数。指人口总体中非劳动年…

【从零开始入门unity游戏开发之——C#篇34】C#匿名函数(delegate )和Lambda表达式

文章目录 一、匿名函数&#xff08;delegate &#xff09;1、什么是匿名函数&#xff1f;2、匿名函数的基本语法2.1 语法2.2 **没有参数的匿名函数&#xff1a;**2.3 **有参数的匿名函数&#xff1a;**2.4 **有返回值的匿名函数&#xff1a;** 3、匿名函数的使用示例3.1 作为参…

脱离电路图编程

SM0.0常开始终吸合 SM0.1&#xff08;特殊中继&#xff09; 常开&#xff1a;闭合一次再断开 常闭&#xff1a;断开一次再闭合 上述是依据电路图编程

人工智能及深度学习的一些题目

1、一个含有2个隐藏层的多层感知机&#xff08;MLP&#xff09;&#xff0c;神经元个数都为20&#xff0c;输入和输出节点分别由8和5个节点&#xff0c;这个网络有多少权重值&#xff1f; 答&#xff1a;在MLP中&#xff0c;权重是连接神经元的参数&#xff0c;每个连接都有一…

OpenGL变换矩阵和输入控制

在前面的文章当中我们已经成功播放了动画&#xff0c;让我们的角色动了起来&#xff0c;这一切变得比较有意思了起来。不过我们发现&#xff0c;角色虽然说是动了起来&#xff0c;不过只是在不停地原地踏步而已&#xff0c;而且我们也没有办法通过键盘来控制这个角色来进行移动…

【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享

学术科研啥的要用到很多数据&#xff0c;nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的&#xff0c;再来做一篇总结篇&#xff0c;也分享下练习数据跟工具&#xff0c;如果还是弄不了的&#xff0…

linux-21 目录管理(一)mkdir命令,创建空目录

对linux而言&#xff0c;对一个系统管理来讲&#xff0c;最关键的还是文件管理。那所以我们接下来就来看看如何实现文件管理。当然&#xff0c;在文件管理之前&#xff0c;我们说过&#xff0c;文件通常都放在目录下&#xff0c;对吧&#xff1f;所以先了解目录&#xff0c;可能…