服务与服务访问点#
实体、协议、服务、服务访问点 · 第二讲 视频讲解 https://www.bilibili.com/video/BV1x6xK68EMH/
一句话#
协议是横着定的规矩,服务是竖着给的能耐:上一层通过 SAP 这一扇门,使用下一层提供的服务,而完全不用管下一层是怎么实现的。
一、换个方向看#
上一集是从左往右看——两台机器的同层实体之间怎么说话,那叫协议。
这一集从上往下看——相邻两层之间怎么交接,那叫服务。
┌──────────────┐
│ n+1 层实体 │
└──────┬───────┘
│ ← 服务:竖直的,只在相邻两层之间
┌──────┴───────┐
│ n 层实体 │
└──────────────┘
两个方向,两件事:
| 方向 | 管什么 | 叫什么 |
|---|---|---|
| 水平(横向) | 对等实体之间怎么谈 | 协议 |
| 垂直(纵向) | 上层怎么用下层 | 服务 |
二、服务是什么#
服务:由下层向上层通过层间接口提供的功能。
教材的原话是:服务是"垂直的"。
三个要点:
- 上层要办的事,下层替它办——上层只说"我要传这段数据",怎么切、怎么编号、怎么加校验,全归下层管。
- 只在相邻两层之间——服务不能跨层调用。应用层不能直接命令物理层。
- 上一层只管用,不管它怎么实现——这就是后面要说的"透明"。
面向连接 / 无连接(本集只点名)#
下层给上层提供服务,从"要不要先建立连接"这个角度看,分两种:
| 面向连接服务 | 无连接服务 | |
|---|---|---|
| 要不要先握手 | 要,先建立连接 | 不要,直接发 |
| 数据顺序 | 一般按序 | 不保证 |
| 典型例子 | TCP、电话 | UDP、寄信 |
这一对概念后面讲运输层时会详细展开,本集只记名字。
三、服务访问点 SAP#
SAP(Service Access Point,服务访问点):在同一系统中,相邻两层的实体进行交互(交换信息)的地方。
几句话说清它:
- SAP 是一个抽象的逻辑接口,不是一个 RJ45 那种物理插口
- 它是上一层找下一层办事的那扇门
- 同一个 SAP,可以被多个上层实体共用——楼上三个房间,共用一个门牌号
实体 ① 实体 ② 实体 ③ ← 上层
╲ │ ╱
╲ │ ╱
╲ │ ╱
┌──────┴──────┐
│ SAP │ ← 层间接口,一扇门
└──────┬──────┘
│
┌──────┴──────┐
│ 下层实体 │ ← 下层
└─────────────┘
注意:SAP 说的是同一台机器里相邻两层之间的接口。跨机器的那条线不叫 SAP。
补充一点:SAP 在不同层有不同叫法。运输层的 SAP 是端口号,网络层的 SAP 是 IP 地址。名字不同,作用是同一个——上一层来敲的那扇门。
四、服务原语(先认名字)#
SAP 是"门",从这扇门递东西的具体动作,叫服务原语。
下层给上层提供服务,形式上就是用一组原语来描述。四类:
| 原语 | 方向 | 白话 |
|---|---|---|
| 请求 Request | 上层 → 下层 | 我要办件事 |
| 指示 Indication | 下层 → 上层 | 事来了,告诉你 |
| 响应 Response | 上层 → 下层 | 我这边干完了 |
| 证实 Confirm | 下层 → 上层 | 确实干完了 |
四个原语走一轮,一次服务交接就完成了。
本集只认名字。完整的时序(谁先谁后、在哪一侧发出)后面单独讲。
五、透明#
透明:上一层使用下层提供的服务时,不需要知道下层服务的实现细节。
教材举的例子最能说明问题:物理层的传输介质从双绞线换成光纤,再换成无线,只要它向上提供的服务没变,上层一行代码都不用改。
上层 ─────────── 服务不变 ───────────
↑
下层 双绞线 → 光纤 → 无线(换了三次)
这就是"透明"的意思:下层被挡住了,上层看不见。
别把"透明"理解成"看得见"。网络里的"透明"是看不见、不用管,跟日常说的"透明玻璃"不是一回事。
同样的逻辑往上推:
- 上层用网络层的服务,不用管网络层跑的是 IP 还是别的协议
- 网络层用数据链路层的服务,不用管底下是以太网还是 PPP
- 协议怎么实现,上一级管不着——这就是分层最值钱的地方
六、协议和服务,差在哪#
| 协议 | 服务 | |
|---|---|---|
| 方向 | 横的 | 竖的 |
| 谁之间 | 对等实体之间 | 上下相邻两层之间 |
| 看得见吗 | 外面看不见 | 上一层看得见 |
| 给的是什么 | 规则、约定 | 能力、功能 |
| 能不能改 | 改了对上层透明 | 改了上层就得跟着改 |
一句话记住区别:
协议是"我们俩怎么说话",服务是"我替你干什么"。
七、本集结论#
协议(横) ← 对等实体之间怎么谈
│
│ 竖着看
↓
服务(竖) ← 下层给上层能力
│
通过 SAP 这扇门
│
服务原语 ← 递东西的四个动作
│
透明 ← 上层不用管怎么实现
协议横着定规矩,服务竖着给能力;上一层通过 SAP 只用服务,不管实现。 这就是分层的价值。
依据表#
| 片中表述 | 依据 | 备注 |
|---|---|---|
| 服务是"垂直的",由下层向上层通过层间接口提供 | §1.5.4 | 原文(与"协议是水平的"对举) |
| 上层使用下层服务时不需要知道实现细节 | §1.5.4 | 原文表述 |
| 同一系统中相邻两层的实体进行交互的地方称为 SAP | §1.5.4 | 原文定义 |
| SAP 是抽象的逻辑接口,不同于硬件接口 | §1.5.4 | 原文说明 |
| 一个 SAP 可被多个上层实体共用 | §1.5.4 | 教材图示;片中三实体为教学示意,数量不限 |
| 服务在形式上用一组原语来描述 | §1.7.3 | 原文 |
| 四类原语:请求、指示、响应、证实 | §1.7.3 | 原文 |
| 面向连接服务 / 无连接服务 | §1.7.3 | 本集只点名,不展开 |
| 运输层 SAP 是端口号、网络层 SAP 是 IP 地址 | 通识补充 | 教材未在 §1.5.4 展开,属分层对应关系,片中未讲,仅备查 |
| 物理层换介质、上层不用改 | 教学类比 | 教材"透明"举例的通俗化 |
| 「透明」= 看不见、不用管 | 语义澄清 | 与日常"透明玻璃"含义不同 |
| 三个实体汇聚到一个 SAP 的画面 | 教学示意 | 表达"共用一扇门",不代表具体协议实现 |
| 服务原语四类方向 | §1.7.3 简化 | 完整时序涉及两侧、四段传输,片中简化为单向动作 |