网络协议 | 典型协议、B/S模式、C/S模式

news2024/12/23 4:20:39

在这里插入图片描述

欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。


网络协议 | 典型协议、B/S模式、C/S模式

    • 网络协议
    • 网络应用程序设计模式


专栏:《网络编程》


网络协议

什么是协议
从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。
假设,A、B双方欲传输文件。规定:

- 第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
- 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
- 第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。

由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议。
这种仅在A、B之间被遵守的协议称之为原始协议。当此协议被更多的人采用,不断的增加、改进、维护、完善。最终形成一个稳定的、完整的文件传输协议,被广泛应用于各种文件传输过程中。该协议就成为一个标准协议。最早的ftp协议就是由此衍生而来。TCP协议注重数据的传输。http协议着重于数据的解释。
典型协议

  • 传输层 常见协议有TCP/UDP协议
  • 应用层 常见的协议有HTTP协议,FTP协议
  • 网络层 常见协议有IP协议、ICMP协议、IGMP协议
  • 网络接口层 常见协议有ARP协议、RARP协议
  • TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
  • HTTP超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
  • FTP文件传输协议(File Transfer Protocol)
  • IP协议是因特网互联协议(Internet Protocol)
  • ICMP协议是Internet控制报文协议(Internet Control Message Protocol)它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
  • IGMP协议是 Internet 组管理协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
  • ARP协议是正向地址解析协议(Address Resolution Protocol),通过已知的IP,寻找对应主机的MAC地址。
  • RARP是反向地址转换协议,通过MAC地址确定IP地址。

TCP/IP四层模型
TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示:

TCP/IP模型

OSI七层模型

OSI模型

①物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由`10`转化为电流强弱来进行传输,到达目的地后再转化为`10`,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
②数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的`1152008、N、1`
③网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
④传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
⑤会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。
⑥表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。
⑦应用层:是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

网络应用程序设计模式

C/S模式
传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。
B/S模式
浏览器()/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。
对比
对于C/S模式来说,其优点明显。客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。且,一般来说客户端和服务器程序由一个开发团队创作,所以他们之间所采用的协议相对灵活。可以在标准协议的基础上根据需求裁剪及定制。例如,腾讯公司所采用的通信协议,即为ftp协议的修改剪裁版。
因此,传统的网络应用程序及较大型的网络应用程序都首选C/S模式进行开发。如,知名的网络游戏魔兽世界。3D画面,数据量庞大,使用C/S模式可以提前在本地进行大量数据的缓存处理,从而提高观感。
C/S模式的缺点也较突出。由于客户端和服务器都需要有一个开发团队来完成开发。工作量将成倍提升,开发周期较长。另外,从用户角度出发,需要将客户端安插至用户主机上,对用户主机的安全性构成威胁。这也是很多用户不愿使用C/S模式应用程序的重要原因。
B/S模式相比C/S模式而言,由于它没有独立的客户端,使用标准浏览器作为客户端,其工作开发量较小。只需开发服务器端即可。另外由于其采用浏览器显示数据,因此移植性非常好,不受平台限制。如早期的偷菜游戏,在各个平台上都可以完美运行。
B/S模式的缺点也较明显。由于使用第三方浏览器,因此网络应用支持受限。另外,没有客户端放到对方主机上,缓存数据不尽如人意,从而传输数据量受到限制。应用的观感大打折扣。第三,必须与浏览器一样,采用标准http协议进行通信,协议选择不灵活。
因此在开发过程中,模式的选择由上述各自的特点决定。根据实际需求选择应用程序设计模式。

...

在这里插入图片描述
在这里插入图片描述


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

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

相关文章

LeetCode:29. 两数相除

29. 两数相除 1)题目2)思路3)代码1.初始代码2.第一次优化3.第二次优化 4)结果1.初始结果2.第一次优化结果3.第二次优化结果 1)题目 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,…

es 三 安装 es 安装kibana

目录 安装7.3.0 版本 下载地址 一个比一个快 页面测试访问 安装kibana 下载 Config/kibana.yml 配置修改开启中文 页面访问 安装7.3.0 版本 下载地址 一个比一个快 Index of /elasticsearch/ 下载中心 - Elastic 中文社区 下载中心 - Elastic 中文社区 官网下载 开箱…

CANape使用记录(一):CANape新建工程及标定观测

目录 1、概述 2、新建工程 3、添加观测与标定量 1、概述 CANape具有以下主要组件:在线测量,离线分析,诊断,打印机功能,数据管理,闪存编程,校准,CDM Studio和设备数据库编辑器&…

从工地到办公室:一个土木工程师如何学成测试技能?

提桶跑路成功了,这工地我是再也不来了。 ​ 工作中流的汗真的都是报专业时脑袋里进的水。 当时高考完,对于要学什么专业感到很迷茫,因为姨夫是干工地的,零几年土木专业的大学生,在我们这五线城市一个月也能够拿一万多…

汇聚支付APP+技术方案介绍

一、时序图 商户使用汇聚支付的 APP方案,需要两个步骤: 步骤一: 请求汇聚支付的支付接口,https://www.joinpay.com/trade/uniPayApi.action 获取返回的关键参数 rc_Result。 步骤二: 商户 APP 按照微信的 SDK 规范使…

pdf怎么拆分成一页一页的?办公常备工具说明

PDF(Portable Document Format)是一种用于创建和共享文档的文件格式。它由Adobe Systems开发,并已成为电子文档的通用格式。PDF文件可以包含文本、图像、表格、超链接和其他多媒体内容,使其成为一种非常方便的文件格式。 然而&…

ChatGPT国内免费使用的网站

ChatGPT是什么意思? ChatGPT全称:Chat Generative Pre-trained Transformer 在英文中“chat”是聊天的意思,GPT是一种预训练语言模型的缩写。 所以ChatGPT是一款功能非常强大的AI(人工智能)聊天机器人,能…

linux小技巧-如何修改IP(四种方法)

目录 项目场景: 方法分析及步骤介绍 原因分析: 解决方案: 项目场景: 项目上经常遇到修改IP的情况,这里总结一些各个情况下修改IP的方法,尤其时有时候没有主机屏幕显示,借助于命令行的方式修…

MATMacOS安装

MAT MacOS安装 文章目录 MAT MacOS安装第一章 简述第01节 介绍第02节 获取 第二章 配置第01节 显示包内容第02节 MAT配置Java环境变量第03节 MAT兼容低版本Java 第三章 问题第01节 正常启动效果第02节 可能遇到的问题 第一章 简述 第01节 介绍 什么是 MAT 工具? …

【随时更新】知识点回顾

哈夫曼编码和解码 C 哈夫曼编码 【介绍编码过程】 哈夫曼树编码及其图形化的实现 【使用可视化方式展现最终编码效果】 Python中使用哈夫曼算法实现文件的压缩与解压缩 【Python实现】 哈夫曼树 C语言实现 【图解如何生成】 编码过程 1. 使用二进制流,统计当前文件…

如何利用Smartbi电子表格进行财务常用账簿数据的联动查询

财务,是几乎所有企事业单位内部的核心组织。单位今年耗费几何,企业去年赚多少钱,平均成本在什么水平,为国家创造多少税收等等,所有这些信息,最终都通过财务账表的方式来体现。可以说,大家工作辛…

OSI/RM七层网络模型和网络协议

目录 1.OSI/RM七层网络模型1.1 结构图1.2 各层功能 2.OSI七层、TCP/IP四层、五层网络模型对比3.各层对应网络协议3.1 应用层3.2 传输层 1.OSI/RM七层网络模型 OSI/RM(Open System Interconnection/Reference Model,开放式系统互联参考模型)是…

前端到接口层的反序列化流程

前置知识 参考我的另一篇博客,(209条消息) Servlet和SpringMVC_fengwuJ的博客-CSDN博客,描述了Servlet与SpringMVC的关系,大致可以知道从前端请求,到后端接口的中间过程 反序列化流程 前篇文章中,走到 getMethodPara…

平台总线模型简介

1. 平台总线介绍 平台总线模型将一个驱动分成两部分 device.c, driver.c。一个描述硬件, 一个控制硬件。 平台总线通过比较字符串, 将name相同的device.c和driver.c匹配到一起来控制硬件。 driver通过平台总线去拿到device.c内容。 平台总线的优点是减少重复代码 提高效率。 …

中间件(三)- Kafka(一)

Kafka 1. Kafka简介1.1 名字由来1.2 主要特性1.3 相关术语1.4 架构图1.5 消息队列1.6 Kafka消费模式1. 一对一消费模式2. 一对多消费模式 1.7 消息中间件 2. Kafka安装及使用2.1 下载kafka2.2 修改配置文件2.3 启动2.4 docker启动 3. 简单指令3.1 topic相关3.2 Kafka 生产/消费…

`JOB`的正确打开方式

文章目录 JOB的正确打开方式 简介工作原理使用场景使用方式注意事项启动JOB失败的情况JOB正确打开方式错误方式正确方式进阶方式终极方式 总结 JOB的正确打开方式 最近有一些小伙伴在使用JOB时,由于使用不当,引起一些问题。例如把license占满&#xff0c…

ASEMI代理长电可控硅MCR100-8特征,MCR100-8应用

编辑-Z 长电可控硅MCR100-8参数: 型号:MCR100-8 VDRM/VRRM:600V IT(RMS):0.8A 结点温度Tj:-40~125℃ 储存温度Tstg:-55 ~ 150℃ 通态电压VTM:1.7V 栅极触发电压VGT:0.8V 正…

泰克MDO4104C(Tektronix) mdo4104c混合域示波器

泰克 MDO4104C混合域示波器,1 GHz,4 通道,2.5 - 5 GS/s,20 M 点 ​泰克 MDO4104C 示波器是一款 6 合 1 集成示波器,可以配置可选的频谱分析仪、任意波形/函数发生器、逻辑分析仪、协议分析仪和 DVM/频率计数器。当配置…

黑盒测试能发现以下几类错误

黑盒测试能发现以下几类错误 黑盒测试是指在不考虑被测试软件的内部结构和工作原理的情况下,通过输入输出的方式对被测试软件进行测试。它主要关注被测试软件的功能是否达到预期的要求。黑盒测试能够发现以下几类错误。 1. 输入错误:黑盒测试可以检查被测…

如何增加网站权重?有效提高网站权重的技巧方法

权重对于网站优化来说非常的重要,那什么是网站权重呢?网站权重是指搜索引擎给网站(包括网页)赋予一定的权威值,对网站(含网页)权威的评估评价。一个网站权重越高,在搜索引擎所占的份…