前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【计算机网络】从网购到网络协议:趣味拆解分层架构的五大原则与核心术语

【计算机网络】从网购到网络协议:趣味拆解分层架构的五大原则与核心术语

作者头像
蒙奇D索隆
发布2025-03-22 09:38:27
发布2025-03-22 09:38:27
11200
代码可运行
举报
运行总次数:0
代码可运行

导读

大家好,很高兴又和大家见面啦!!!

在上一篇内容中我们介绍了计算机网络体系结构的基本概念以及3种参考模型:

  • 计算机网络的各层及其协议的集合称为网络的体系结构
  • 在计算机网络中,有3种层次结构模型:
    • OSI参考模型:将计算机网络分为7层,从上到下依次是:
      • 应用层
      • 表示层
      • 会话层
      • 传输层
      • 网络层
      • 数据链路层
      • 物理层
    • TCP/IP参考模型:将计算机网络分为4层,从上到下依次是:
      • 应用层
      • 传输层
      • 网络层
      • 网络接口层
    • 教学模型:将计算机网络分为5层,从上到下依次是:
      • 应用层
      • 传输层
      • 网络层
      • 数据链路层
      • 物理层

在今天的内容中,我们将从3个方面进一步学习计算机网络的分层结构,下面我们直接开始今天的内容吧!!!

一、分层的基本原则

计算机网络的分层遵循5个基本原则:

  • 每层都实现一种相对独立的功能,降低大系统的复杂度;
  • 各层之间的接口自然清晰,易于理解,相互交流尽可能少;
  • 各层功能的精确定义独立于具体的实现方法,可采用最合适的技术来实现;
  • 保持下层对上层的独立性,上层单向使用下层提供的服务;
  • 整个分层结构应能促进标准化工作

1.1 原则解读

每层都实现一种相对独立的功能,降低大系统的复杂度

在计算机网络的分层中,每一层的功能通过标准化的接口规范实现相对独立。这种独立性体现在:

  • 接口稳定性:只要相邻层之间的接口规范保持不变,下层实现技术的变更不影响上层功能。
    • 这个就好比我们在网购时,整个网购体系中各层的接口就是快递单号以及寄收件的服务流程。只要单号与流程不变,那么不管快递是由何种方式完成的运输、分拣,都不会影响用户取件。
  • ​故障隔离性:当某层出现故障时,系统只需修复该层的实现逻辑,无需修改其他层的代码——前提是故障未破坏接口规范。
    • 运输快递的过程中,当运输工具或运输线路出现了故障时,物流方仅需要及时的通知用户快递延误,并对运输工具进行修复,或者对运输线路进行更改。对于用户而言,他不需要因为物流运输的问题而调整收货地址甚至是取件方式。
  • ​逻辑自治性:每层基于下层提供的服务,自主实现本层功能。
    • 驿站能够进行快递分拣的前提是从物流层接收到了快递;
    • 用户能够接收快递的前提是驿站完成了对快递的分拣与派送;

试想一下,如果各层之间相互协作,就比如物流在运输货物时要根据驿站分拣的喜好进行运输,驿站在分拣与派送时,要根据用户的个人喜好对快递进行二次包装,而用户在取件时,还需要按照摩斯密码的方式报出自己的个人信息才能进行取件,那么这种网购体系是不是就太过复杂了?

各层之间的接口自然清晰,易于理解,相互交流尽可能少

各层之间的交流接口不需要过多花里胡哨的内容,只需要涵盖主要的内容即可,并且在上下层交互的过程中应该能避免无效交互,即能少交互就尽量少交互。

  • 这就好比网购时我们只需要根据服务流程完成下单获取包含商品信息、用户地址、用户联系方式的商品单号、等待货物运输、按照服务流程取件,即可获取商品。整个过程中,我们不需要过多的与物流和驿站进行交流,唯一的交流就是取件时提供取件码;
  • 如果在下单时我们还需要填写一份下单申请表,商品使用表等等信息,等待货物运输的过程中,我们要每天按时更新自己的个人信息,取件时需要填写取件申请表、身份证明表,提交身份证复印件等等,在这种情况下,是不是整个网购的过程就会变的十分繁琐?

各层功能的精确定义独立于具体的实现方法,可采用最合适的技术来实现

前面我们就有提到过,体系结构是抽象的,实现是具体的。这一条原则很好的说明了这个问题:

在计算机体系结构中,各层的功能只是给了一个明确的方向。

  • 这就好比网购体系结构中,用户、驿站和物流的任务各有不同,体系结构只是对各个层次的任务做了个明确的规定,算是一种规则,而各层如何来执行其任务还需要看各层具体的执行方案。
  • 再具体一点就是,用户下单可以通过各种软件下单,可以通过朋友帮忙下单……如何执行下单这个功能,是由用户决定,而非体系结构;
  • 再比如体系结构只规定了物流层需要完成商品的运输,具体如何运输,体系结构不会关注,那么对于距离近的,就比如同城的甚至是同一个区的商品运输,很明显不需要用到飞机,直接小电驴运输即可,对于长距离的商品运输,用小电驴显然不实际,此时我们可以按照货物的需求再具体选择使用飞机还是汽车;

总之,功能的实现需要结合实际情况,选择更加合适的实现方式,体系结构只会规定该层次需要实现的功能,不会关心实现的过程。

保持下层对上层的独立性,上层单向使用下层提供的服务

独立性的问题前面也有说过,这里就不再赘述,这里我们重点理解一下上层单向使用下层提供的服务这一点:

  • 在体系结构中,下层应该是上层的基础,这就好比盖房子,不管我们要盖什么样的房子,我都需要先从最底层的地基开始,有了地基才能进入下一步,有了第一层才能进行第二层的施工;
  • 在网购的体系结构中则是物流层为驿站层提供商品运输的服务,而驿站层不会为物流层提供派送的服务,服务的提供是单向的,下层为上层提供服务,上层使用下层提供的服务;

因此在体系结构中,我们在确保了下层独立性的基础上,才能够保证上层能够单向的使用下层提供的服务。

整个分层结构应能促进标准化工作

计算机网络体系结构就是为了将复杂的工作拆分成若干个容易实现的任务,然后将这些任务分配到各个层次中,因此整个分层结构就是需要能够促进标准化工作的完成。

  • 还是一网购体系结构为例,从用户下单,到驿站对商品的寄出,再到物流对商品的运输,再由驿站对商品的分拣与派送,最后到用户的取件。这一整个过程就是通过用户、驿站、物流这三个层次实现一个标准化的网购工作。

二、分层结构核心术语

2.1 实体(Entity)

  • 定义:在网络分层结构中,第n层的活动元素称为第n层实体
  • 特性
    • 可以是硬件(如网卡)或软件(如TCP协议栈)。
    • 示例:传输层的TCP实体负责建立端到端连接,网络层的IP实体处理路由逻辑。
代码语言:javascript
代码运行次数:0
运行
复制
graph TD
A[应用层实体] -->|调用| B[传输层实体]
B -->|封装| C[网络层实体]
style A fill:#E1F5FE,stroke:#039BE5
style B fill:#F0F4C3,stroke:#827717
style C fill:#FFCDD2,stroke:#D32F2F

2.2 对等层(Peer Layer)

  • 定义:不同网络设备上的同一层级
  • 通信逻辑
    • 对等层通过协议规范实现逻辑直连。
    • 示例:计算机A的应用层与服务器B的应用层通过HTTP协议通信。
代码语言:javascript
代码运行次数:0
运行
复制
graph LR
A[设备A 应用层] -->|HTTP请求| B[设备B 应用层]
B -->|HTTP响应| A

2.3 对等实体(Peer Entity)

  • 定义:不同设备上同一层级的实体
  • 交互机制
    • 通过n-PDU直接交换数据。
    • 示例:两台路由器的OSPF实体交换链路状态更新报文。
代码语言:javascript
代码运行次数:0
运行
复制
graph LR
A[路由器A 网络层实体] -->|OSPF LSU| B[路由器B 网络层实体]
B -->|OSPF LSAck| A

2.4 服务提供者(Service Provider)

  • 定位:第n层实体。
  • 核心职责
    • 通过**服务访问点(SAP)**向上层提供服务。
    • 示例:数据链路层实体为网络层提供MAC地址寻址服务
代码语言:javascript
代码运行次数:0
运行
复制
graph TD
A[传输层实体] -->|调用SEND原语| B[网络层实体]
B -->|返回ACK| A

2.5 服务用户(Service User)

  • 定位*:第(n+1)层实体。
  • 交互方式
    • 通过**原语(Primitives)**调用下层功能。
    • 示例:应用层调用传输层的CONNECT()原语建立TCP连接。
代码语言:javascript
代码运行次数:0
运行
复制
graph LR
A[应用层实体] -->|CONNECT| B[传输层实体]
B -->|CONFIRM| A

2.6 协议数据单元(PDU, Protocol Data Unit)

定义:对等层之间传送的数据单位。 • 层级标识n-PDU(如2-PDU=帧,3-PDU=分组)。 • 结构解析

代码语言:javascript
代码运行次数:0
运行
复制
┌──────────────┬──────────────┐
│   n-PCI      │    n-SDU     │
└──────────────┴──────────────┘

示例: • 数据链路层的以太网帧(2-PDU)包含MAC地址和FCS校验。

代码语言:javascript
代码运行次数:0
运行
复制
graph TB
subgraph 第n层
A[n-SDU] --> B[添加n-PCI]
B --> C[n-PDU]
end

2.7 服务数据单元(SDU, Service Data Unit)

  • 定义:层与层之间交换的数据单位。
  • 层级标识n-SDU
  • 数据流规则:
(n+1)\text{-}PDU = n\text{-}SDU
  • 示例:传输层的TCP段(4-PDU)成为网络层的3-SDU。
代码语言:javascript
代码运行次数:0
运行
复制
graph LR
A[HTTP报文] -->|4-SDU| B[TCP实体]
B -->|3-SDU| C[IP实体]

2.8 协议控制信息(PCI, Protocol Control Information)

  • 定义:控制协议操作的信息。
  • 层级标识n-PCI
  • 核心功能
    • 实现协议状态机(如TCP序列号、IP TTL)。
    • 示例:IP包头中的TTL字段防止数据报无限循环。
代码语言:javascript
代码运行次数:0
运行
复制
graph LR
A[数据载荷] -->|n-SDU| B[添加n-PCI]
B -->|n-PDU| C[发送至对等实体]

2.9 综合数据封装流程

每层协议数据单元都有一个特定的名称:

  • 传输层:报文段
  • 网络层:报文分组
  • 数据链路层:帧
  • 物理层:比特流

当各层在传输数据时,将从n+1层收到的PDU作为第n层的SDU,加上第n层的PCI,就封装成了第n层的PDU。

封装好的n-PDU会继续向下传输,作为第(n-1)-SDU发送,接收方在接收时会做相反的处理。

代码语言:javascript
代码运行次数:0
运行
复制
graph TB
subgraph 第n+1层
A[应用数据] -->|n+1-PDU| B(n层入口)
end

subgraph 第n层
B --> C[添加n-PCI]
C --> D[n-PDU]
end

subgraph 第n-1层
D -->|n-1-SDU| E[继续封装]
end

PDU、SDU、PCI这三者的关系为:

n-PDU = n-SDU + n-PCI = (n - 1) - SDU

三、层次结构的含义

了解了分层的原理和一些核心术语之后,下面我们就来看一下层次结构的含义:

  1. 第n层的实体不仅要使用第n-1层的服务来实现自身定义的功能,还要向第n+1层提供本层的服务,该服务是第n层及其下面各层提供的服务总和;
  2. 最低层只提供服务,使整个层次结构的基础;最高层面向用户提供服务;
  3. 上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务;
  4. 通信时,对等层在逻辑上有一个可直接信道,表现为能直接将信息传送到对方;

3.1 个人理解

对于这些含义,我的理解是:

  1. 下层为上层提供服务,上层单向的使用下层提供的服务。第n层在为第n+1层提供服务时,是将本层功能与下层服务相结合,形成更高阶服务,然后向上传递。因此,最上层使用的是其相邻的下层以及其它层次提供的服务的最终形态;
  2. 在最底层,它只能够为上层提供服务,没有最底层提供的服务,其上层就无法正常执行其功能,因此它也是整个层次结构的基础;
  3. 最上层,它直接面向用户,因此最上层需要为用户提供相应的服务;
  4. 层与层之间只能通过对应的接口进行通信,在各个层次中,只会存在于其相邻层次的通信接口,因此上层可以通过接口使用与其相邻的下层提供的服务,而不同夸层次调用其它层的服务;
  5. 在通信时,对等层之间可以通过PDU进行通信,在物理上,该信息的传递需要通过下层完成,但是在逻辑上就好似对等层双方直接完成通信;

结语

在今天的内容中我们介绍了计算机网络分层结构的原则、核心术语以及层次结构的含义。

今天的内容到这里就全部结束了,在下一篇内容中我们将继续介绍计算机网络的层次结构以及协议、接口与服务等内容,大家记得关注哦!

如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
  • 一、分层的基本原则
    • 1.1 原则解读
  • 二、分层结构核心术语
    • 2.1 实体(Entity)
    • 2.2 对等层(Peer Layer)
    • 2.3 对等实体(Peer Entity)
    • 2.4 服务提供者(Service Provider)
    • 2.5 服务用户(Service User)
    • 2.6 协议数据单元(PDU, Protocol Data Unit)
    • 2.7 服务数据单元(SDU, Service Data Unit)
    • 2.8 协议控制信息(PCI, Protocol Control Information)
    • 2.9 综合数据封装流程
  • 三、层次结构的含义
    • 3.1 个人理解
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档