1.2.2 计算机网络分层结构(下)

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

为了让大家体会到协议的作用。我们不妨从水平的视角来看一下数据是怎么传输的。之前我们简单的介绍过数据传输的过程,从垂直的视角来看,发送方这边的数据会从最顶层开始,逐层的往下传递。每一层都会对数据进行相应的处理,然后再放到物理传输媒体上进行传输,在接收方这边,当他收到数据之后,又会从最底层开始进行逐层的逆处理,最终获得原始数据。我们不妨假设应用层需要实现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模型,而在这门课程的后续几个章节中,我们会更详细的去研究五层模型的各个层次。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋悠然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值