为什么要分层呢?
假设一个场景:
我们发送一个文件给别人,这里就要经过一条链路,才能发送过去,不然中间没有介质到不了。除了需要链路外,我们还需要几个完成的工作:
- 发起通信的计算机必须将数据通信的通路进行激活(就是发送一些命令,保证我要传送的数据,这个文档能正确的发送和接收,确定是能通过的。)
- 要告诉网络如何识别目的主机的。
- 发送通信的计算机要查明目的主机是否开机,并且与网络连接正常。
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
- 确保差错和意外可以解决。
- 。。。。。。
从上面的这么多的大问题很难解决,所以计算机网络要把它分解成小问题解决。
分层原则
- 各层之间要相互独立,每层只要实现一种相对独立的功能。
- 每层之间的界面自然清晰,易于理解,相互交流尽可能少。
- 结构上可分隔开,每层都采用最合适的技术分开。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构能促进标准化工作。
元素
实体
第 n 层中的活动元素称为 n 层实体。同一层的实体叫对等实体。
协议
为网络中的对等实体数据交换而建立的规则,标准或约定称为网络协议。
- 语法: 规定传输数据的格式。
- 语义:规定所要完成的功能。
- 同步:规定各种操作的顺序。
接口(访问服务端SAP)
上层使用下层服务的入口。
服务
下层为相邻的上层提供的功能调用。
举例:
如图。我们查看它们的数据传输关系。
SDU 服务数据单元
为完成用户所要求的功能应传送的数据。
说白了,就是我们每一层所有传送的数据,有用的数据部分。
PCI 协议控制信息
控制协议操作的信息
简单的理解称为一些控制信息,这些控制信息加上我们有效的数据SDU( 含金量比较高的数据 )就得到了PDU
PDU 协议数据单元
对等层次之间传送到数据单元
然后每层的PDU就成为下一层的SDU,然后加上下一层的PCI称为新的PDU。
概念总结
- 网络体系架构是从功能上描述计算机网络结构。
- 根据功能的不同来划分,而不是从物理层(硬件等),因为我们从功能分成各个小问题解决。
- 计算机网络结构简称网络体系结构是分层结构。
- 每层要遵循某个/些网络协议以完成本层的功能。
- 计算机网络体系结构是计算机网络的各层及其协议的集合。
- 第 n 层向 n+1 层提供服务时,此服务不仅包括第 n 层本身的功能,还包括由下层服务提供的功能。
- 相邻层间有接口,且所提供的服务的具体实现细节对上一层完全屏蔽。
- 体系结构是抽象的,而实现的指能运行的一些软件和硬件。
分层结构
这里的5层只是便于我们理解的五层。
OSI 参考模型
ISO/OSI 参考模型-怎么来的?
为了解决计算机网络复杂的大问题 —> 分层结构(按功能)
提出了第一个网络体系结构的是:
IBM公司提出的 SNA ,之后其他开始效仿,比如,DEC公司和美国国防部等等,还有很多。
1 | graph LR |
但是比如IBM的只能在它们的产品上才能够用这个体系结构,这样对于全世界的所有人互联互通很困难。
目的:为了支持异构网络系统的互联互通。就产生了国际标准化组织(ISO)于1984年提出的开放系统互连(OSI)参考模型。可是,理论成功,市场失败。主要由于:制定协议的专家缺乏实际经验,实现复杂,运行效率低,标准制定周期长,层次划分比较不合理,对于市场不大合理。但是对于学习和借鉴还是用很高的学习价值。
OSI一共有七层
- 应用层 7
- 表示层 6
- 会话层 5
- 传输层 4
- 网络层 3
- 数据链路层 2
- 物理层 1
其中 5-7 层位资源子网(数据处理),1-3 为通信子网(数据通信)。4 为资源子网和通信子网中间的接口一样。
OSI/ISO 参考模型解释通信过程
如图,A 向 B 发送消息。由应用层的 DATA(SDU)加上 H7(PCI)就是成为 7-PDU,然后传到下一层第六层成为第六层的 SDU,在加上第六层的 PCI 成为新的 PDU,一步一步下去,直到数据链路层,头尾都有加,而物理层只是转换成了 01010101010 的形式放到传输介质上。
之后到达 B 端则开始解析,一步一步拆开。