多媒体和 QoS
多媒体与服务质量保证
多媒体信息特征
多媒体信息包括声音与图像,具有两个核心特征:
| 特征 | 说明 |
|---|---|
| 信息量大 | 标准语音 64 kbit/s;高质量立体声 1.4 Mbit/s;彩色电视 250 Mbit/s |
| 时延敏感 | 对传输时延与时延抖动均有严格要求 |
| 丢失容忍 | 少量分组丢失对播放效果影响有限,可被人耳/人眼容忍 |
互联网的非等时性
模拟多媒体信号经采样与模数转换后,组装成分组并以恒定速率(等时)发送。但互联网本身为非等时网络,分组经过互联网后变为非恒定速率到达。
解决机制:接收端设置播放缓存(FIFO 队列)
- 分组到达后暂存于缓存,待数量达到阈值后以恒定速率读出播放
- 引入播放时延 ,以非恒定速率到达的分组经缓存后以恒定速率读出,消除时延抖动
- 代价:所有分组均经受额外迟延,早到达分组停留时间更长
实时数据传输需求:
| 需求 | 说明 |
|---|---|
| 序号 | 分组可能乱序到达,需编号以保证按序还原播放 |
| 时间戳 | 标识分组应在何时播放,区分正常停顿与迟延停顿 |
流式存储音频/视频
服务类型
| 类型 | 特征 |
|---|---|
| 流式存储 | 边下载边播放,不保留文件(如 YouTube、Netflix) |
| 流式实况 | 边录制边发送 |
| 交互式 | 实时双向通信(如 IP 电话) |
传统下载 vs 流式播放
传统下载:浏览器通过 HTTP 请求完整文件,下载完成后传送给媒体播放器解压缩播放。
流式播放架构:
┌─────────┐ HTTP ┌─────────┐ 元文件 ┌─────────┐
│ 浏览器 │ ─────────────→ │ 万维网 │ ───────────────→ │ 媒体 │
│ │ ←───────────── │ 服务器 │ │ 播放器 │
└─────────┘ └─────────┘ └─────────┘
↓ URL
┌─────────┐
│ 媒体 │
│ 服务器 │
└─────────┘
元文件:极小的描述文件,包含实际音频/视频文件的 URL。
媒体服务器
使用双服务器架构:
- 万维网服务器:提供元文件与网页内容
- 媒体服务器(流式服务器):专门支持流式音频/视频传送,与媒体播放器通过专用协议(如 RTP)交互
TCP vs UDP 选择
| 协议 | 适用场景 | 特点 |
|---|---|---|
| TCP | 流式存储(YouTube、Netflix) | 可靠传输,通过应用层缓存平滑抖动;防火墙友好 |
| UDP | 实况转播 | 低时延,少量丢包优于卡顿暂停;需配合 RTP/RTSP |
TCP 流式播放步骤:
- HTTP 获取视频文件,送入 TCP 发送缓存
- 通过互联网传输至 TCP 接收缓存
- 再送入应用程序缓存(播放器缓存),达到阈值后开始播放(通常 min)
- 播放时等时地按帧读出、解压缩、显示
实时流式协议 RTSP
RTSP (Real-Time Streaming Protocol) 是多媒体播放控制协议,本身不传送数据,工作在客户-服务器模式。
功能:暂停/继续、后退、前进等控制操作,又称”互联网录像机遥控协议”。
特点:
- 有状态协议:记录客户机状态(初始化/播放/暂停)
- 控制分组可在 TCP 或 UDP 上传送
- 不定义压缩方案、封装方式或缓存策略
工作过程:
| 步骤 | 操作 |
|---|---|
| 1 | 浏览器请求音频/视频文件 |
| 2 | 万维网服务器返回元文件 |
| 3 | 浏览器将元文件传送给媒体播放器 |
| 4 | RTSP 客户与媒体服务器建立连接 |
| 5 | 发送 PLAY 报文开始下载 |
| 6 | 发送 TEARDOWN 报文断开连接 |
交互式音频/视频
IP 电话
狭义:在 IP 网络(分组交换网)上打电话。
广义:IP 网络上的交互式多媒体实时通信(话音、视像、即时传信 IM)。
IP 电话网关:公用电话网与 IP 网络的接口设备,负责:
- 呼叫阶段与释放阶段的信令转换
- 通话期间的话音编码转换
通话质量决定因素:
| 因素 | 要求 |
|---|---|
| 端到端时延 | 不应超过 250 ms,否则交谈者感到不自然 |
| 时延抖动 | 必须受限制 |
| 分组丢失率 | 取决于网络通信量 |
低速率话音编码标准:
| 标准 | 比特率 | 帧大小 | 处理时延 | 帧长 |
|---|---|---|---|---|
| G.729 | 8 kbit/s | 10 ms | 10 ms | 10 B |
| G.723.1 | 5.3/6.3 kbit/s | 30 ms | 30 ms | 20/24 B |
实时运输协议 RTP
RTP (Real-time Transport Protocol) 为实时应用提供端到端运输,但不提供服务质量保证。
协议定位:
- 从应用开发者角度:属于应用层
- 从服务角度:可视为 UDP 之上的运输层子层,提供时间戳与序号服务
RTP 分组首部(12 字节):
┌─────┬─────┬─────┬─────┬────────┬────────┬────────┬────────┐
│ V │ P │ X │ CC │ M │ PT │ 序号 │ 时间戳 │
│ 2b │ 1b │ 1b │ 4b │ 1b │ 7b │ 16b │ 32b │
├─────┴─────┴─────┴─────┴────────┴────────┴────────┴────────┤
│ 同步源标识符 SSRC (32b) │
├────────────────────────────────────────────────────────────┤
│ 参与源标识符 CSRC [0..15] × 32b │
└────────────────────────────────────────────────────────────┘
封装层次:
┌─────────┬─────────┬─────────┬─────────────┐
│ IP 首部 │ UDP首部 │ RTP首部 │ RTP 数据 │
│ │ 8B │ 12B │ (应用层数据) │
└─────────┴─────────┴─────────┴─────────────┘
实时运输控制协议 RTCP
RTCP 与 RTP 配合使用,主要功能:
- 服务质量监视与反馈
- 媒体间同步
- 多播组成员标识
特点:不封装声音/视像分组,多个 RTCP 分组可封装在一个 UDP 数据报中,周期性传送统计信息报告。
五种分组类型:
| 类型值 | 缩写 | 意义 |
|---|---|---|
| 200 | SR | 发送端报告 |
| 201 | RR | 接收端报告 |
| 202 | SDES | 源点描述 |
| 203 | BYE | 结束 |
| 204 | APP | 特定应用 |
H.323
ITU-T 制订的基于分组的多媒体通信系统标准,是互联网端系统间实时声音/视频会议的标准。
注意:H.323 不是单一协议,而是一组协议,涵盖系统描述、呼叫模型、信令、控制报文、复用、编解码器、数据协议等,但不保证 QoS。
四种构件:
| 构件 | 功能 |
|---|---|
| H.323 终端 | 使用 H.323 协议进行多媒体通信 |
| 网关 | 连接 H.323 网络与非 H.323 网络(如公用电话网) |
| 网闸 (Gatekeeper) | 所有呼叫通过网闸,提供地址转换、授权、带宽管理、计费 |
| MCU | 多点控制单元,支持 个终端的音频/视频会议 |
会话发起协议 SIP
SIP (Session Initiation Protocol) 为互联网建议标准,比 H.323 更简单实用。
特点:
- 以互联网为基础,将 IP 电话视为互联网新应用
- 只涉及信令与服务质量,功能少于 H.323
- 使用文本方式的客户-服务器协议
- 与 HTTP 相似,使用 HTTP 的首部、编码规则、差错码、鉴别机制
- 可扩缩性优于 H.323
系统构件:
| 构件 | 角色 |
|---|---|
| 用户代理客户 | 发起呼叫 |
| 用户代理服务器 | 接受呼叫 |
| 代理服务器 | 接受呼叫请求并转发给下一跳 |
| 重定向服务器 | 不接受呼叫,告知客户下一跳地址 |
| SIP 登记器 | 跟踪被叫方 IP 地址,实现用户定位 |
地址格式:sip:用户名@主机
- 电话号码:
sip:zhangsan@8625-87654321 - IPv4 地址:
sip:zhangsan@201.12.34.56 - 电子邮件:
sip:zhangsan@public1.ptt.js.cn
会话三阶段:建立会话 通信 终止会话
会话描述协议 SDP
SDP (Session Description Protocol) 用于详细指明:
- 媒体编码
- 协议端口号
- 多播地址
在电话会议中尤为重要,因为参与者动态加入/退出。
服务质量保证 QoS
使互联网提供服务质量
QoS 是服务性能的总效果,决定用户满意程度。基本性能指标包括:可用性、差错率、响应时间、吞吐量、分组丢失率、连接建立时间、故障检测与改正时间等。
核心机制需求:
| 机制 | 功能 | 示例 |
|---|---|---|
| 分类 | 根据准则对输入分组分类,给予不同优先级 | 实时数据高优先级,FTP 低优先级 |
| 管制 | 限制数据流速率,防止影响其他流 | 将 H1 数据率限定为 1 Mbit/s,超限时丢弃 |
| 调度 | 为不同应用分配带宽,保证服务质量 | 音频分配 1.0 Mbit/s,文件传送 0.5 Mbit/s |
| 呼叫接纳 | 数据流预先声明 QoS 需求,获准或拒绝进入 | 总数据率超链路带宽时,阻止另一数据流 |
调度机制
默认规则:先进先出 FIFO
- 缺点:不能区分时间敏感分组与一般数据,不公平
优先级排队:高优先级分组优先服务
- 缺点:高优先级队列始终有分组时,低优先级长期得不到服务
公平排队 FQ (Fair Queuing):
- 长分组服务时间长,短分组吃亏
- 未区分优先级
加权公平排队 WFQ (Weighted Fair Queuing):
- 给队列指派权重
- 队列 得到的平均服务时间为 , 为所有非空队列权重之和
- 队列 得到的带宽:
WFQ 算法: 设 分别为第 个分组的到达时刻、长度及发送结束时刻,则:
选择最小 队列的分组发送。
管制机制
管制三个核心指标:
| 指标 | 定义 |
|---|---|
| 平均速率 | 一定时间间隔内通过的分组数 |
| 峰值速率 | 极短时间间隔内的流量上限 |
| 突发长度 | 极短时间间隔内连续注入的分组数 |
令牌桶管制器:
- 令牌桶参数:桶容量 (令牌数),产生速率
- 若 ,即为漏桶 (leaky bucket)
与 WFQ 结合控制最大时延: 设 个分组流输入路由器,各流令牌桶参数为 。桶满时 个分组可立即输出,队列 带宽由 WFQ 公式给出。最大时延为传输 个分组所需时间:
综合服务 IntServ
IntServ (Integrated Services) 对单个应用会话提供服务质量保证。
两个主要特点:
- 资源预留:路由器记录会话已预留的链路带宽与缓存空间
- 呼叫建立:需在源到目的路径的每个路由器预留足够资源
两类服务:
| 服务 | 特征 |
|---|---|
| 有保证的服务 | 分组通过路由器时的排队时延有严格上限 |
| 受控负载的服务 | 比”尽最大努力”更可靠 |
四个组成部分:
| 组件 | 功能 |
|---|---|
| RSVP | 资源预留信令协议 |
| 接纳控制 | 决定是否同意资源请求 |
| 分类器 | 将进入分组分类并放入特定队列 |
| 调度器 | 根据 QoS 要求决定分组发送顺序 |
流 (flow):具有相同源 IP、源端口、目的 IP、目的端口、协议标识符及 QoS 需求的一连串分组。
资源预留协议 RSVP:
- 会话首先声明所需 QoS,路由器确定资源是否满足
- 请求被接受时,链路带宽与缓存空间分配给该分组流
- 采用多播树方式,使用软状态(soft state),需定期更新
- RSVP 是网络层控制协议,不携带应用数据
IntServ 主要问题:
- 状态信息数量与流的数目成正比,大型网络开销大
- 体系结构复杂,所有路由器必须装有 RSVP、接纳控制、分类器、调度器
- 服务质量等级数量太少,不够灵活
区分服务 DiffServ
DiffServ (Differentiated Services) 力图不改变网络基础结构,在路由器中增加区分服务功能。
核心要点:
| 要点 | 说明 |
|---|---|
| DS 字段 | IPv4 服务类型字段 / IPv6 通信量类字段,现使用前 6 bit 作为 DSCP (Differentiated Services CodePoint) |
| DS 域 | 网络划分为多个 DS 域,复杂性放在边界结点,内部路由器尽量简单 |
| 边界路由器功能 | 分类器 + 通信量调节器(标记器、整形器、测定器) |
| 聚合 | 将若干流根据 DS 值聚合成少量流,相同 DS 值按相同优先级转发,无需 RSVP |
服务等级协定 SLA:ISP 与用户商定支持的服务类别与容许通信量。
每跳行为 PHB (Per-Hop Behavior):只涉及本路由器转发这一跳的处理,与下一跳无关。
两种 PHB:
| PHB | 特征 | 服务 |
|---|---|---|
| EF (Expedited Forwarding) | 离开路由器的通信量数据率 某一数值;低丢失率、低时延、低抖动、确保带宽 | Premium(优质)服务,类似虚拟租用线 |
| AF (Assured Forwarding) | DSCP 比特 0~2 分 4 个等级,各等级提供最低带宽与缓存;比特 3~5 分 3 个丢弃优先级 | 拥塞时优先丢弃高丢弃优先级分组 |
DiffServ 优势:灵活性高,未定义特定服务类别,新旧服务类别均可适应。