继续来看计算机网络的分层结构,在之前的学习中,我们介绍了计算机网络的分层结构,以及各层之间的关系。我们把工作在某一层的软件和硬件模块称为这一层的实体,为了完成这一层的某些功能,同一层的实体和实体之间需要遵循某种通信协议。也就是说协议这个东西,它是约束了水平方向的通信规则。

为了让大家体会到协议的作用。我们不妨从水平的视角来看一下数据是怎么传输的。之前我们简单的介绍过数据传输的过程,从垂直的视角来看,发送方这边的数据会从最顶层开始,逐层的往下传递。每一层都会对数据进行相应的处理,然后再放到物理传输媒体上进行传输,在接收方这边,当他收到数据之后,又会从最底层开始进行逐层的逆处理,最终获得原始数据。我们不妨假设应用层需要实现L、M、N这几个功能,那N这个功能,我们不妨假设它是要把数据进行压缩,然后再传输,从而可以节省流量。基于这样的设计,发送方的第五层实体需要把数据进行压缩,压缩完了之后再交给下面的层次去处理和传输,而接收方的第五层实体对等的这个实体,它又需要把数据进行解压缩,解压了之后再把它上交给上层的用户,因此从水平视角来看。这两个用户,他们感受不到
数据被压缩和解压的过程。在他们俩看来,数据似乎是被原模原样的传输的。但事实上,发送方的第五层实体和接收方的第五层实体分别做了压缩和解压缩的过程。

为了支持这样的功能,我们不妨制定一个协议,这个协议的名字叫做YSCS协议。之前我们说过一个协议规定了水平方向上的两个对等实体之间的通信规则,为了实现压缩传输这个功能,我们需要在协议当中规定发送方的第五层实体,首先需要把这个数据进行压缩,数据压缩的算法有很多种,为了让接收方能够用对应的解压算法去解压,因此我们需要增加一个首部的信息,也就是一部分控制信息。发送方的应用层实体先把数据用某一种压缩算法进行压缩,然后在首部位置指明自己采用了哪一种压缩算法,这样的话,当接收方的第五层实体收到这个数据之后,就可以从首部位置去获取压缩算法的信息,紧接着再采用对应的解压算法,把数据进行解压,再交还给上层的用户。从这个例子中我们可以感受到,从水平视角来看,对等的两个实体之间,他们的通信需要遵循某种协议,而遵循这个协议的目的,是为了实现某一种功能。一个协议可能会规定在数据之前增加一个首部。当然,有的协议也可以再增加一个尾部的信息,反正无论是首部还是尾部,这些都是为了实现协议的功能而存在的控制信息。具体首部和尾部需要多少个字节,以及每个字节具有什么含义,这些都需要在协议当中规定清楚。理解了这些之后,我们就可以更深刻的体会到为什么要分层,以及为什么要制定协议了。

我们说计算机网络功能是很复杂的,所以我们需要先把计算机网络需要支持的功能A、B、C、D、E、F、G给罗列出来,然后再把这些功能安排到合适的层次当中,处于同一个层次的对等实体,需要去配合着实现这一层当中的这些功能。因此我们需要去制定协议去约束对等实体之间的这种通信规则。

了解协议存在的意义之后,接下来我们再从垂直的视角,来看一下数据传输的整个过程。假设左边这个用户要给右边这个用户发送一些数据,这些数据首先会被交给应用层进行处理,应用层负责实现某一些功能,为了实现这些功能,应用层和应用层之间的通信需要遵循某种协议,因此就需要给这些数据增加协议的首部,我们不妨把它称为应用层的首部,应用层按照协议的规定做了这些处理之后,又会把这一整块的数据作为一个整体,把它交给下面这一层传输层,传输层和传输层之间同样需要遵循某一些通信协议,因此传输层也会增加协议控制信息,也就是首部的这部分数据。接下来传输层又把这一整块的数据作为一个整体交给下面这一层网络层,同样的道理,网络层和网络层之间也需要遵循某种通信协议。因此,网络层的实体也需要增加一个首部的信息,接下来,网络层把这些数据交给数据链路层。那么,数据链路层为了实现本层的功能,它需要增加首部和尾部的信息,无论是首部还是尾部,最终都是为实现协议的功能去服务的。最后数据链路层再把这些数据交给物理层,在这种五层的体系结构当中,物理层并不会对这些数据进行任何处理,他只负责把这些二进制的数据原模原样的传输到物理传输媒体上,这样就可以让数据到达下一个节点,下一个节点接收到这些数据之后,首先交给物理层,紧接着物理层再交给数据链路层,这层的实体会根据本层的协议规定,去检查首部以及尾部的信息,然后根据这些控制信息完成数据链路层需要完成的一
些事情,比如说完成差错控制的功能。如果这些数据没有什么问题的话,这层的实体会把本层的首部和尾部拆掉,然后再交给上一层进行处理,第三层网络层,它通过本层的协议控制信息去实现本层应该负责的功能。具体来说,这一层要实现的就是路由,也就是数据分组的存储转发,所以第三层的首部信息,它其实会包含发送方的IP地址以及接收方的IP地址这些信息,路由器的第三层实体就可以根据这些信息去决定数据分组下一跳应该把它转发到什么位置,路由器的第三层实体会对 H3这个部分的控制信息进行一些简单的处理。

具体是什么处理,我们现在先不展开,总之处理完了之后,它又会把这一整块的数据交给下一层,也就数据链路层,数据链路层又会根据对等实体之间的协议去增加首部和尾部的信息,然后再把这些数据交给物理层,物理层再把这些数据通过物理传输媒体传给下一个结点,接收方主机第一层物理层收到这些信息之后,就会把这些信息交给数据链路层,后面的过程就是类似的,逐层的往上处理,每一层的实体,只关注本层的首部信息,逐层往上处理,逐层的把首部信息给拆掉,最终交给用户的就是一个干净的,没有首部信息的数据,这样就完成了数据的传输。这就是从垂直视角来看,数据的传输过程,同一层次的对等实体之间。他们需要遵循某一种通信协议,而协议本质上是为了某一些功能而服务的,要让协议规定的事情可以落地,我们就需要在数据之前增加一个首部的信息,每一层只关心自己的首部信息。

捋清这个过程之后,接下来我们引入几个概念,分别是协议数据单元、服务数据单元和协议控制信息,英文缩写是PDU、SDU和PCI。首先看协议数据单元,对等层次之间传送的数据单位,就是这一层的协议数据单元。

比如说第五层和第五层之间,他们传送的数据就是原始数据加一个H5这个头部,所以这一整块东西就是第五层的协议数据单元。类似的,第三层和第三层之间,它们传送的数据是这一整块,所以这一整块就是第三层的协议数据单元。协议数据单元由服务数据单元和协议控制信息组成,协议控制信息指的是控制协议操作的信息,就是刚才我们提到的首部,第五层的协议控制信息,也就是第五层的PCI,就是第五层的首部,第四层的PCI就是第四层的首部,第二层的PCI包含了首部和尾部两部分的信息,所以首部和尾部加起来,共同组成了第二层PCI,也就是协议控制信息。去除协议控制信息之外,剩下的部分就是本层的服务数据单元,也就是SDU这个概念。服务数据单元是为了完成上一层实体所要求的功能而传送的数据。

没有跟上的同学,在这儿给大家罗列了一些例子。大家可以暂停来感受一下,总之这三个概念之间的关系就是某一层的服务数据单元,加上这一层的协议控制信息,共同组成了这一层的协议数据单元,而这一层的协议数据单元,又会作为下一层的服务数据单元。大家可以暂停来体会一下。

最后我们再来介绍协议的三要素。我们要制定一个完整的协议,需要规定这个协议的语法语义和同步分别是什么,这就是所谓的协议三要素。首先,第一个要素,所谓的语法指的是数据与控制信息的格式。比如说我们需要规定这个协议的控制信息,也就首部总共几个字节,每个字节的含义是什么,以及协议的数据部分,也就是SDU那个部分最多有多少个字节。这就是所谓的语法要规定数据的格式。第二个要素语义,指的是需要发出何种控制信息、完成何种动作以及做出何种应答,听起来比较抽象。举个例子,比如刚才我们提到压缩传输的功能,A、B两台主机的第五层应用层的实体要实现压缩传输功能。他们之间就需要遵循压缩传输协议,除了规定,这个协议的数据控制信息格式之外。我们还需要规定在双方进行数据传输的过程当中,双方需要完成哪些动作以及做出哪些应答。比如说当发送方发完数据之后,接收方是否需要给他一个应答的信号,以及这个应答的信号有哪些种类。
比如说,给他应答一个传输成功,或者给他应答一个传输失败,这就是所谓的语义要描述清楚的东西。最后第三个要素叫做同步,又叫做时序。在历年真题当中,出现的是时序这个术语。时序这个要素需要描述清楚,通信双方执行各种操作的条件、时序关系等等。是对事件实现顺序的详细说明。比如说A、B双方要遵循压缩传输的协议,这个协议当中我们要求发送方首先要给接收方发送数据,接收方接收完数据之后,需要立即给发送方一个回应。比如说传输成功,当然也可以回应传输失败,如果发送方在十秒之内还没有收到这个接收方的传输成功应答的话,发送方会再次尝试重新发送这个文件的数据。所以我们用一个时序图去描述清楚了发送方和接收方,他们的动作之间的时序关系。所以语义这个要素是描述了发送方和接收方有可能需要做的动作有哪些,而时序这个要素是需要描述清楚这些动作的发生顺序。这三个要素相辅相成,共同组成了协议。在这门课的后续章节中,我们还会详细学习很多种协议。

在这两个视频中,我们介绍了计算机网络的分层结构。我们说计算机网络的功能十分复杂,为了让计算机网络看起来结构清晰,并且易于维护、易于实现,因此我们引入了分层设计的思想。把计算机网络分成多个层次,每一个层次负责实现若干个功能。对于同一层次中的活动元素,我们把它称为这一层的实体,我们可以把处于同一层次的实体称为对等实体。为了实现一个层次中的各种功能,对等实体之间需要根据某种协议的规定去进行通信。所以协议规定的是水平方向对等实体之间
的通信规则。在一个分层结构的计算机网络当中,上一层的实体会通过接口去请求下一层实体的服务,而所谓的服务就是为上一层提供的功能调用。所以接口和服务这两个概念是垂直方向的,它描述的是相邻的上层和相邻的下一层之间发生的一个交互关系。服务可以按照不同的维度进行分类,比如可靠的,不可靠的,有连接的,没有连接的,以及有响应的和没有响应的,关于服务的分类,在初学阶段可以先不了解,随着这门课后续章节的学习,我们对服务的分类会有更直观的认知。那在这节课当中,我们也介绍了协议数据单元、服务数据单元和协议控制信息这几个概念。处于同一层的对等实体之间,以协议数据单元为单位去交换数据,协议数据单元由服务数据单元和协议控制信息组成,所谓的协议控制信息就是首部和尾部,而服务数据单元就是上一层的实体委托给下一层的实体传输的那部分数据。而某一层的协议数据单元,又会作为下一层的服务数据单元,这几个概念比较容易混淆,建议大家看图复习,反而会更清晰。

在这节课中,我们还介绍了协议的三要素,分别是语法、语义和时序。语法描述了协议的数据与控制信息的格式,也就是描述了一个协议的SDU和PCI的格式。协议的第二个要素语义,描述了使用协议的这些对等实体之间需要发出什么样的控制信息,以及需要完成什么样的动作,做出什么样的回应。简言之,语意描述了对等实体之间需要做什么,而最后一个要素时序,它需要描述这些对等实体做的这些动作,触发条件是什么,以及先后顺序是什么?也就是需要描述清楚什么时候做。由于到目前为止,我们暂时还没有接触任何一个具体的协议,所以这几个概念现在听起来比较抽象是很正常的。通过这门课后续章节的学习对这几个概念的理解会更加深刻。在上一节课当中我们也介绍了计算机网络体系结构的概念。当我们要设计计算机网络体系结构的时候,我们需要精确的定义层次的划分以及各层的功能,各层的协议等等,只需要给出精确的定义就可以,而不需要涉及到具体的实现。相当于我们设计一个体系结构,只是给计算机网络的软硬件开发者搭建了一个框架,开发者们只需要按照体系结构的定义去进行开发。开发的软件和硬件就可以在我这个网络上去正常的运行。

所以具体的实现这个问题是交给软硬件开发者的,体系结构的设计者只需要给出定义就可以,在上节课中我们也简单介绍了三种常见的网络体系结构,分别是OSI参考模型TCP/IP模型,以及我们教学使用的五层模型。OSI参考模型是法律标准,是由一个国际标准化组织提出来的,但是现在的互联网世界,网络的体系结构是TCP/IP模型,也就是分为了四层,所以TCP/IP模型它是事实上的标准。在下节课中,我们会展开介绍OSI参考模型和TCP/IP模型,而在这门课程的后续几个章节中,我们会更详细的去研究五层模型的各个层次。

以上就是这个视频的全部内容。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实训八——路由器与交换机与网线

补充——基本功能路由器:用于不同逻辑网段通信的交换机:用于相同逻辑网段通信的1.网段逻辑网段(IP地址网段):IP地址的前三组数字代表不同的逻辑网段(有限条件下);IP地址的后一组数字…

C++——构造函数的补充:初始化列表

C中,构造函数为成员变量赋值的方法有两种:构造函数体赋值和初始化列表。构造函数体赋值是在构造函数里面为成员变量赋值,如:class Data { public://构造函数体赋值Data(int year,int month,int day){_year year;_month month;_d…

代码随想录|图论|12岛屿周长

leetcode:106. 岛屿的周长 题目 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿是被水包围,并且通过水平方向或垂直方向上相邻的陆地连接而成的。 你可以假设矩阵外均被水包围。在矩阵中恰好拥有…

开发制作模仿参考抄别人的小程序系统

很多老板看见别人公司的小程序系统界面好看,功能强大,使用人数多。就想要抄袭模仿参考别人家的小程序系统。想要了解一下有没有侵权风险,以及怎么开发制作开发制作模仿参考抄别人的小程序系统。首先回答第一个问题,只要你的小程序…

c语言中的数组IV

数组的集成初始化 集成初始化的定位 数组的大小 数组的赋值 不能直接将一个数组a赋值给数组b&#xff0c;只能通过遍历来实现 遍历数组 示例——检索元素在数组中的位置#include <stdio.h> int search(int key,int a[],int length); int main(void){int a[] {2,4,6,7,1,…

LDO选型

目录 一、最大输出电流 二、最大输入电压 三、最大功率&#xff1a;Pmax 四、负载动态调整率 五、输入电源纹波抑制比&#xff1a;PSRR 一、最大输出电流 参考TI LM1117IMPX-3.3/NOPB数据手册 由于LDO转换效率很低&#xff0c;LDO的标称最大电流 ≥ 实际最大负载电流 1…

飞算JavaAI:重构Java开发的“人机协同”新范式

目录一、从需求到架构&#xff1a;AI深度参与开发“顶层设计”1.1 需求结构化&#xff1a;自然语言到技术要素的准确转换1.2 架构方案生成&#xff1a;基于最佳实践的动态匹配二、编码全流程&#xff1a;从“手写代码”到“人机协同创作”2.1 复杂业务逻辑生成&#xff1a;以“…

解决SQL Server SQL语句性能问题(9)——SQL语句改写(7)

9.4.15. 消除join场景一 与Oracle等其他关系库类似,SQL Server中,join作为基本语法用于SQL语句中相关表之间的连接,有些场景中,join既可以增强SQL语句的可读性,同时,又可以提升SQL语句的性能,但有些场景中,join会导致CBO为SQL语句产生次优的查询计划,进而出现SQL语句…

深度学习-数据准备

一、数据准备 1.1定义 数据准备&#xff08;Data Preparation&#xff09; 是数据分析与机器学习流程中的核心环节&#xff0c;指将原始数据转换为适合分析或建模的结构化格式的过程。 1.2组成 数据准备主要由两个部分组成&#xff0c;一个是划分数据集&#xff0c;一个是构建…

IPA软件源预览系统源码(源码下载)

这是一款IPA软件源预览系统源码&#xff0c;搭建这个源码一定记住没有软件源的别搭建&#xff0c;因为你玩不明白&#xff0c;不是做IPA软件源的不要下载这套源码&#xff0c;简单的测试了&#xff0c;UI很舒服&#xff0c;喜欢的自行部署&#xff01; 源码下载&#xff1a;htt…

python 数据分析 单细胞测序数据分析 相关的图表,常见于肿瘤免疫微环境、细胞亚群功能研究 ,各图表类型及逻辑关系如下

这是一组 单细胞测序数据分析 相关的图表&#xff0c;常见于肿瘤免疫微环境、细胞亚群功能研究 &#xff0c;各图表类型及逻辑关系如下&#xff1a;使用kimi doubao 和deepseek &#xff0c;分析图标和pdf 豆包最好&#xff0c;用豆包分析| 图表类型 A、E&#xff08;堆叠柱状…

表达式索引海外云持久化实践:关键技术解析与性能优化

随着全球数字化转型加速&#xff0c;表达式索引技术正成为海外云服务商提升数据库性能的核心方案。本文将深度解析如何通过云原生架构实现索引持久化&#xff0c;对比主流云平台的技术实现差异&#xff0c;并给出跨国业务场景下的优化建议。 表达式索引海外云持久化实践&#x…

sprinboot团队任务管理系统 计算机毕业设计源码32322

摘 要 随着团队协作模式的日益多样化&#xff0c;传统的任务管理方法已无法满足现代团队对高效协作和任务分配的需求。因此&#xff0c;本研究通过引入信息化设计并实现了一套团队任务管理系统&#xff0c;旨在为管理员、成员用户和团长用户等用户提供高效、灵活的任务管理…

单链表,咕咕咕

1.引入单链表顺序表对于中间或者头部的删除&#xff0c;时间复杂度为O(N)&#xff0c;增容需要申请新的空间&#xff0c;拷贝数据&#xff0c;释放就空间&#xff0c;消耗。增容一般是2倍的增长&#xff0c;会有空间的浪费。为了解决这些问题&#xff0c;引入了单链表。2.单链表…

docker设置镜像加速

配置镜像加速器解决 Docker 拉取问题 在使用 Docker 拉取镜像时&#xff0c;我首先按照官方指引尝试配置阿里云镜像加速器。然而&#xff0c;多次操作后仍无法正常使用&#xff0c;怀疑是个人账号没有权限拉取镜像&#xff0c;但经过多轮权限检查与配置核对&#xff0c;始终未…

【计算机网络】王道考研笔记整理(2)物理层

第二章 物理层2.1 通信基础的基本概念本节主要介绍通信中常用的一些基本概念&#xff0c;包括&#xff1a;信源、信宿、信号、信道&#xff0c;以及码元、速率、波特。首先&#xff0c;我们来看什么是信源、信宿、信号、信道&#xff0c;这些概念通过一张图就可以理解。其中&a…

2023年IEEE TITS SCI2区TOP,增强回溯搜索算法EBSA+多无人机辅助商业包裹递送系统飞行规划,深度解析+性能实测

目录1.摘要2.回溯搜索算法BSA原理3.模型定义4.增强回溯搜索算法EBSA5.结果展示6.参考文献7.算法辅导应用定制读者交流1.摘要 利用无人机进行商业包裹投递可以显著推动物流行业的转型升级&#xff0c;这得益于节省了人力资源成本&#xff0c;而无人机正在成为智能交通运输系统的…

window wsl 环境下编译openharmony,HarmonyOS 三方库 FFmpeg

1.wsl 创建 C:\Users\Administrator>wsl --list --online 以下是可安装的有效分发的列表。 使默认分发用 “*” 表示。 使用 wsl --install -d <Distro> 安装。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ub…

Kubernetes服务暴露与负载均衡深度探析

目录 Kubernetes服务基础 服务类型与适用场景 服务发现与DNS 负载均衡机制 kube-proxy IPVS Ingress控制器 Ingress与服务暴露 Ingress资源 Ingress控制器 负载均衡策略与配置 服务配置 Ingress配置 IPVS配置 高可用性设计 服务冗余 Ingress控制器高可用 负载…

探索飞算 JavaAI 进阶:解锁高效Java开发的新维度

前引&#xff1a;在当今快速迭代的软件开发领域&#xff0c;Java作为企业级应用的基石&#xff0c;持续推动着技术创新。随着性能需求的提升&#xff0c;“飞算JAVA”应运而生&#xff0c;它融合了现代优化理念&#xff0c;为开发者提供了一套简洁、高效的解决方案。本文将深入…