(三) 计算机网络的分层结构和分层对应的OSI模型, TCP/IP模型和5层参考模型
导图
- 之前介绍了计算机网络的概念和性能指标, 接下来介绍计算机网络的分层结构和相关协议
- 网络体系结构是从功能上描述计算机网络结构, 计算机网络体系结构是计算机的各层及其协议的集合
- 计算机网络体系结构简称网络体系结构是分层结构, 每层遵循每个/些网络协议以完成本层功能, 协议就是来规定功能的
为什么要分层
- 发起通信的计算机必须将数据通信的通路进行激活, 确保要通信的链路是可通行的
- 要告诉网络如何识别目的主机.
- 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作, 以及是否有存储空间.
- 确保差错和意外可以解决。
分层的基本原则
- 各层之间相互独立, 每层只实现一种相对独立的功能
- 每层之间界面自然清晰, 易于理解, 相互交流尽可能少
- 结构上可分割开. 每层都采用最合适的技术来实现.
- 保持下层对上层的独立性, 上层单向使用下层提供的服务
- 整个分层结构应该能够促进标准化工作.
认识分层结构
- 实体: 第n层中的活动元素称为
n层实体
. 同一层的实体叫做对等实体
. 比如图中的第五层可以看做一个实体, 水平的第五层是它的对等实体, 在层次上属于对等层 - 协议: 为进行网络中的对等实体数据交换而建立的规则, 标准或约定称为网络协议, 注意是水平方向上的.
- 协议有三大要素:
- 接口(访问服务点SAP): 上层使用下层服务的入口,也是下层为上层提供服务的接口, 比如图上的上下两层有接口
- 服务: 下层为相邻上层提供的功能调用, 垂直方向, 比如第四层为第五层提供服务, 同时使用第三层提供的接口, 即第四层使用了下层所有服务的总和.
抽象第5,4,3层的数据包含关系
- SDU(服务数据单元): 为完成用户所要求的功能而应传送的数据, 比较有用的数据
- PCI(协议控制信息): 控制协议操作的信息, 可以简单的理解为控制信息
- PDU(协议数据单元): 对等层次之间传送的数据单位
也就是说最开始是只有SDU, 后来加入PCI变成PDU, PDU又会变成下层的SDU.
第n层在向n+1层提供服务时, 此服务不仅包含第n层本身的功能, 还包含由下层服务提供的功能.
分层结构对应的模型
- OSI是法定标准, 实际用的是4层的TCP/IP参考模型, 为了学习方便抽象出5层的模型
OSI参考模型
起源
- 但是理论成功, 市场失败, 原因如下:
- OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力
- OSI的协议实现起来过分复杂,而且运行效率很低
- OSI制定标准的周期太长,因而使得按OSI标准生产的设备无法及时进入市场(20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来,但基于TCP/IP的互联网已经抢先在全球相当大的范围成功运行了)
- OSI的层次划分不太合理,有些功能在多个层次中重复出现。
分层记忆
ISO/OSI参考模型解释通信过程
OSI参考模型(Open Systems Interconnection,开放式系统互联)是由国际标准化组织(ISO)在20世纪80年代定义的一个网络通信标准,ISO参考模型则是指该标准的体系结构,因此OSI和ISO参考模型通常被视为同一个概念
- 上面4层看起来像是没有中间系统一样, 可以实现端到端的通信, 而下面三层是一个点到点的方式
- 原始数据从主机A发出, 经过应用层增加头部控制信息H7送到下一层, 注意数据链路层除了头部信息还增加了尾部信息
- 主机B端会进行拆数据过程, 逐级往上拆解, 最后得到原始数据。
- 物理层什么都不加,只管发送数据(比特流)
各层作用的简单介绍
1. 应用层(Application Layer):
- 所有能和用户交互产生网络流量的程序, 典型的应用层服务: 文件传输(FTP), 电子邮件(SMTP), 万维网(HTTP)
2. 表示层(Presentation Layer):
- 把数据转换为能与接收者的系统格式兼容并适合传输的格式,即让两个系统可以交换信息, 比如将比特流转为图片即数据格式变换, 或者对数据加密解密, 还能进行数据压缩和恢复, 比如视频聊天中图像的处理. 表示层没有什么单独的协议,因为在TCP/IP协议中它会被纳入应用层,会话层里面.
3. 会话层(Session Layer):
- 它的主要功能有以下几个:
(1) 建立,管理,终止会话
(2) 使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信, 实现数据同步
(3) 结束:当应用程序中止数据传输时,会话层负责终止这个逻辑通道,释放资源。
(4) 块同步:为了让接收方正确地解释传输的数据,会话层需要在数据流中插入分割符或标记点,使得接收方能够分辨开不同的数据块。
总体而言,会话层的作用就是确保两台计算机之间的通信顺利进行 - 主要协议: ADSP, ASP
4. 传输层(Transport Layer):
- 负责主机中两个进程的通信, 即端到端的通信, 传输单位是报文段或用户数据报. 具体功能有:
(1)可
靠传输、不可靠传输
(2)差
错控制, 纠正传输中的错误
(3)流
量控制, 流量控制(Flow Control)是指通过某些手段来限制数据的发送速率,以防止发送方发送过多的数据导致接收方无法处理,从而影响数据传输的质量。在计算机网络中,流量控制是指接收方通过发送通知、确认等方式向发送方提示当前接收端的缓冲区状态,从而控制发送端的数据发送速率。
(4) 复用
分用
复用(Multiplexing)和分用(Demultiplexing)是计算机网络中的两个重要概念。
复用是指将多个信号或数据流合并在一起发送,在传输过程中共享同一条物理通信线路或信道的过程。例如,在电路交换中,多个电话信号可以通过一个交换机进行复用,从而共享同一条话务线路进行传输。在分组交换中,多个数据包也可以通过一个路由器进行复用,从而共享同一条物理链路进行传输。
分用是指从复用的信号或数据流中分离出不同的信号或数据流并交付给相应的接收方,实现数据的分类和传输的过程。例如,在电路交换中,交换机需要从合并在一起的电话信号中分离出不同的电话信号并交付给相应的电话号码对应的终端用户。在分组交换中,路由器需要从合并在一起的数据包中分离出不同的数据流并交付给相应的终端设备。
复用和分用是计算机网络中一些重要的技术手段,可以实现多个信号或数据流的复用和分离,从而提高通信的效率和数据传输的可靠性。
我们可以举一个发送电子邮件的例子来说明可靠传输:
假设你正在使用电子邮件客户端发送一份电子邮件,电子邮件客户端会把邮件内容打包成若干个数据包,并通过网络发送到邮件服务器。在这个过程中,可能会发生数据包传输过程中的错误、丢失、重复等问题。
如果采用可靠传输协议,邮件服务器会在接收到每一个数据包后,给电子邮件客户端发送一个确认信(ACK)表明已经收到该数据包。如果服务器没有正确接收到一个数据包,或者该数据包已经重复接收,服务器将发送一个否定确认信(NAK),请求客户端重新发送。
当客户端接收到服务器的确认信后,就知道该数据包已经被成功发送到服务器,并可以继续发送下一个数据包。如果客户端在一定时间内没有收到服务器的确认信,就会认为该数据包在传输过程中发生了问题,会重新发送该数据包。如果客户端多次尝试发送同一个数据包,但一直没有收到服务器的确认信,客户端就会发现连接已经不可用,需要重新建立连接。
基于上述方式,电子邮件客户端就可以通过可靠传输协议将邮件内容成功发送到邮件服务器,保证了邮件内容的完整性和正确性。
不可靠传输指不保证数据传输的可靠性,有可能会发生数据丢失或出错的情况。例如,在一个局域网中,两个计算机进行文件传输,如果使用的是UDP协议进行数据传输,由于UDP协议不保证数据传输的可靠性,因此在数据传输过程中可能会出现一些数据包丢失或传输错误的情况。
- 主要协议: TCP, UDP
5. 网络层(Network Layer):
- 主要任务是把分组从源端传到目的端, 为分组交换网上的不同主机提供通信服务, 网络层传输单位是数据报, 数据报过长就会切分为分组. 有这么几个功能:
(1) 路由选择, 选择合适的路由, 最佳路径
(2) 流量控制, 类似传输层功能
(3) 差错控制, 对传输层的数据进行纠错
(4) 拥塞控制, 流量控制主要控制发送端, 拥塞控制是对全局进行控制, 指的是若所有结点都来不及接受分组, 而要丢弃大量分组的话, 网络就处于拥塞状态. 因此要采取一定措施缓解这种拥塞 - 主要协议: IP, IPX, ICMP, IGMP, ARP, RARP, OSPF
6. 数据链路层(Data Link Layer):
- 主要任务是把网络层传下来的数据报组装成帧, 数据链路层/链路层的传输单位是帧
基本功能有:
(1) 成帧(定义帧的开始和结束)
(2) 差错控制(帧错+位错)
(3) 流量控制
(4) 访问(接入)控制, 控制对信道的访问 - 主要协议: SDLC, HDLC, PPP, STP
7. 物理层(Physical Layer):
-
将比特流转成电信号的形式, 然后放到链路上进行传输. 主要任务是在物理媒体(同轴电缆,双绞线, 无线电波)上实现比特流的透明传输, 物理层的传输单位是bit
-
透明传输指的是不管所传数据是什么样的比特组合, 都应当能够在链路上传送.
-
基本功能有:
(1) 定义接口特性
(2) 定义传输模型,单工,半双工,双工
(3) 定义传输速率
(4) 比特同步
(5) 比特编码 -
主要协议: Rj45, 802.3
清晰图示
TCP/IP参考模型
- 因为TCP/IP协议比较常用, 所以协议栈因此命名.
5层参考模型
5层参考模型的数据封装与解封装
- 应用层的数据加上控制信息变成报文,然后报文经过切分变为报文段放到传输层进行传输, 报文段加上控制信息形成数据报(数据报过长可以进行切分变为分组), 数据报到链路层成帧, 在头尾加上控制信息. 物理层把帧转成比特流的形式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南