温故:

        在上一篇文章《​​计算机网络基础之学习总结(二)​​》中和大家聊了一些网络方面的基础知识点,比如:

         4、数据传输的同步技术可以使用同步传输和异步传输实现,同步传输的单位是数据帧,实现的是帧同步;异步传输的单位是字符,每个传输字符由起始位、数据位、校验位和停止位组成;

        5、数据交换技术分为电路交换技术、存储转发技术和高速交换技术,其中存储转发技术又分为报文交换和报文分组交换。电路交换的三个阶段分别是电路建立、数据传输和电路拆除。存储转发交换相比于电路交换的特点是它可以动态的使用信道,不占用信道,线路利用率高;
        如果大家对这部分内容感兴趣可以看看我之前的文章。

知新:

        之前都是介绍了一些关于通信网络的基础知识,包括数字信号、模拟信号、信道容量、信道带宽等等,今天我们进入一个新的阶段,聊聊网络的体系架构,聊聊咱们经常提到的网络协议、七层模型等等,随着咱们学习的一点点深入,希望大家真的能够有所收获。

一、通信协议

        通信协议这个东西我们之前已经讲过了,说的简单点它的存在的意义就是给大家一个共有的都承认的规范,为了大家的产品和服务都能够实现共享互联,大家就必须按着这个规范去做产品和服务。这个东西也很常见,咱们最常见的就是TCP/IP协议了,然后说一说网络协议的3要素:

1、语法:规定双方交互的格式。举个例子以前的谍战片里面经常有对暗号的情节,对暗号就要求双方实现按照约定好的“规则”进行,你说几个字,我回几个字,你问什么?我回什么?都是约定好的;

2、语义:规定双方交互的内容。还是刚才谍战对暗号的例子,谍报人员对好暗号之后,要说的内容就是语义;

3、时序:规定双方交互的顺序。依旧是对暗号的例子,大家看过的电视剧中应该都有一个场景,对暗号的时候会有一个人先说上句,另一个接下句,你不能倒着说啊,所以这就是时序。

        当咱们把三要素具象化之后是不是就十分清晰了,其实好多的知识都可以通过一些生活中的例子来进行类比,这样就容易记忆了。

二、网络体系架构

        为了更好的观察网络,所以就对网络体系结构提出的分层的方案,于是就有了下图:

计算机网络基础之体系结构_网络

        通过观察图,可以得到这样结论:每一层都是下一层的用户,不必关心下层是如何工作的,只需知道下层为自己提供什么服务以及本层要向上层提供什么服务即可。其实这样设计的好处就是可以把复杂的问题简单化,哪里出了问题搞哪里,不用像没头的苍蝇一样乱转。

三、分层结构中的相关概念 

        1、通信实体与对等实体:刚刚说过了我们将网络体系分层来观察,每一层都承担着相应的功能,所以承担着每一层功能的相关的软硬件(能收发消息)就叫做通信实体,比如说文件传输系统、电子邮件系统,亦或是一张网卡都可以称之为通信实体。那么不同系统的相同层叫什么呢?对等层。因此处于不同系统中的同一层的实体就是对等实体,他们之间的通信就是对等层通信。这个就有点像电视剧中两个土匪帮派谈判时经常说的一句台词:你和我不是一个级别,找你老大来谈。这里就是因为不对等,所以谈不拢。

        2、服务功能和协议:这里是要做一下强调,服务是“垂直”的,刚刚我已经讲过了,N层接收N-1层及以下各层所提供的服务,是一种上下的关系;而协议都是针对某一层的,每一层都有若干个协议,相比较来说它是“水平的”

        3、面向连接的服务和无连接的服务:首先要说明的是这两种连接都是面向的对等层中的对等实体来讲的。前者在实际流程中就像电话系统一样,两者要想打电话首先要建立一个连接,类似于前面讲得电路交换的过程,要有连接建立、数据传输和连接撤销这三个过程;而后者就不需要事先创建连接,这个过程就像收快递一样,快递员只需把你的快递准确的送到你的家门口或者你所在的小区的丰巢即可,无需要求了解你是否在家,你想什么时候取就什么时候取。而且由于无连接的服务事先没有建立连接,就要求传输的每个分组内都包含目的地址信息,这个有点像前面讲过的数字数据的数字信号编码里面的曼彻斯特编码的原理。

        4、接口和服务点:这个接口说的就是同一系统相邻两层之间的边界,同一系统相邻两层实体交换信息的地方称之为服务访问点(SAP),任何层间的服务都是在接口的SAP上进行的,每个SAP都有独立的唯一识别地址,换句话说这个SAP就是两个层间的实体的虚拟接口,如果非要简单的理解它,你就把它当做3楼和2楼之间的楼梯口即可。

        5、服务原语:用户和协议实体间的接口,实际上是一段程序代码,但其具有不可分割性。通过服务原语能实现服务用户和​​服务提供者​​间的交流,与协议不同的是,服务原语用于服务提供者与服务用户,而协议是用于服务用户之间的通信。它的作用就是上层利用它来告知下层需要做什么,下层用它来告知上层已经做了什么。

        如果大家对这部分内容感兴趣,请看我的《​​计算机网络基础之OSI参考模型​​》

拓展:

在同一开放系统中,(N+1)实体向N实体请求服务时,服务用户和​​服务提供者​​之间要进行交互,交互信息称为服务原语。服务原语由服务动作和原语类型两部分组成。

服务原语只有4种类型。

四种基本原语:

请求(Request) 用户实体要求服务做某项工作 源(N+1)实体—>源(N)实体

指示(Indication) 用户实体被告知某事件发生 目的(N)实体—>目的(N+1)实体

响应(Response) 用户实体表示对某事件的响应 目的(N+1)实体—>目的(N)实体

确认(Confirm) 用户实体收到关于它的请求的答复 源(N)实体—>源(N+1)实体

服务原语的交换时序称为服务证实方式,不同的证实方式需要的原语类型有区别,但是都在以上4种当中