第八章、互联网上的音频/视频服务
本章的习题
-
视频数据在因特网上传送所用的协议有哪些影响?既然现有的电信网能够传送音频/视频数据,并且能够保证质量,为什么还要用因特网来传送音频/视频数据呢?
区别:
第一,多音频/视频数据信息的信息量往往很大,
第二,在传输音频/视频数据时,对时延和时延抖动均有较高的要求。
影响:
如果利用 TCP 协议对这些出错或丢失的分组进行重传,那么时延就会大大增加。因此实时数据的传输在传输层就应采用用户数据报协议 UDP 而不使用 TCP 协议。
电信网的通信质量主要由通话双方端到端的时延和时延抖动以及通话分组的丢失率决定。这两个因素都是不确定的,因而取决于当时网上的通信量,有网络上的通信量非常大以至于发生了网络拥塞,那么端到端的网络时延和时延抖动以及分组丢失率都会很高,这就导致电信网的通信质量下降。 -
端到端时延与时延抖动有什么区别?产生时延抖动的原因时什么?为什么说在传送音频/视频数据时对时延和时延抖动都有较高的要求?
端到端的时延是指按照固定长度打包进 IP 分组送入网络中进行传送;接收端再从收到的 IP 包中恢复出语音信号,由解码器将其还原成模拟信号。时延抖动是指时延变化。数据业务对时延抖动不敏感,所以该指标没有出现在 Benchmarking 测试中。由于 IP 上多业务,包括语音、视频业务的出现,该指标才有测试的必要性。
产生时延的原因:
IP 数据包之间由于选择路由不同,而不同路由间存在不同时延等因素,导致同一 voip 的数据包之间会又不同的时延,由此产生了时延抖动。
把传播时延选择的越大,就可以消除更大的时延抖动,但所要分组经受的平均时延也增大了,而对某些实时应用是很不利的。如果传播时延太小,那么消除时延抖动的效果就较差。因此播放时延必须折中考虑。 -
目前有哪几种方案改造因特网使因特网能够适合于传送/音频视频数据?
(1)大量使用光缆,使网络的时延和时延抖动减小,使用具有大量高速缓存的高数路由器,在网上传送实时数据就不会有问题。
(2)将因特网改造为能够对端到端的带宽实现预留,从而根本改变因特网的协议栈— 从无连接的网络变为面向连接的网络。
(3)部分改动因特网的协议,也能够使多媒体信息在因特网上的传输质量得到改进。 -
实时数据和等时数据是一样的意思吗?为什么说因特网是不等时的?实时数据都有哪些特点?试说播放延时的作用?
(1)实时数据和等时数据不是一样的意思。模拟的音频/视频信号只有经过数字化以后才能在因特网上传送。就是对模拟信号要经过采样和模数转换为数字信号,然后将一定数量的比特组组装成分组进行传送。
(2)这些分组在发送时的时间间隔时恒定的,但传统的因特网本身是非等时的。这是因为在时延 IP 协议的因特网中,每一个分组是独立的传送,因而这些分组在到达接收端时就变成非等时的。
(3)消除时延的抖动。 -
流式存储音频/视频,流式实况音频/视频和交互式音频/视频都有何区别?
流式存储音频/视频是边下载边播放,即在文件下载后不久就开始播放。
流式实况音频/视频是发送时边录制边发送,接受时也是能够连续播放。接受方收到的节目时间和节目中事件的发生时间可以认为是同时的。
交互式音频/视频是用户使用因特网和其他人进行交互式通信。 -
媒体播放器和媒体服务器的功能是什么?请用例子说明媒体服务器为什么称为流式服务器?
媒体播放器的主要功能是:管理用户界面,解压缩,消除时延抖动和处理传输带来的差错。媒体服务器的主要功能是使用元文件的 URL 接入到媒体服务器,请求下载浏览器所请求的音频/视频文件,给出响应把该音频/视频文件发送给媒体播放器。
媒体服务器支持流式音频和视频的传送。 -
实时流式协议RTSP的功能是什么?为什么说它是个带外协议?
RTSP 是 IETF 的 MMUSIC 工作组开发的协议,功能是为了给流式过程增加更多的功能而设计的协议。
RTSP 本身并不传送数据,而仅仅是使媒体播放器能够控制多媒体的传送,因此 RTSP 又称为外带协议。 -
狭义的 IP 电话和广义的 IP 电话都有哪些区别?IP 电话都有哪几种连接方式?
狭义的 IP 电话就是指在网络上打电话。广义的 IP 电话不仅仅是电话通信,而且还可以是在 IP 网络上进行交互式多媒体实时通信(包括电话、视像等)甚至还包括即时传信 IM。 IP 电话有 3 种连接方式分别为:(1)2 个 PC 机之间的通话。(2)PC 机到固定用户之间的通话。(3)2 个固定电话之间打 IP 电话。 -
IP 电话的通话质量与那些因素有关?影响 IP 电话话音质量的主要因素有哪些?为什么 IP 电话的通话质量是不确定的?
IP 电话的通话质量主要由两个因素决定。一是通话双方端到端的时延和时延抖动,另一个是话音分组的丢失率。影响 IP 电话话音质量主要因素有:语音编解码技术、包丢失以及时延和时延抖动等。若网络上的通信量非常大以致发生了网络拥堵,那么端到端时延和时延抖动以及分组丢失率都会很高,这就导致 IP 电话的通信质量下降。因此,一个用户使用 IP 电话的通信质量取决于当时其他的许多用户的行为。 -
为什么 RTP 协议同时具有运输层和应用层的特点?
从开发者的角度看,RTP 应当是应用层的一部分。在应用程序的发送端,开发者必须编写用 RTP 封装分组的程序代码,然后把 RTP 分组交给 UDP 套接字接口。在接受端,RTP 分组通过 UDP 套接字接口进入应用层后。还要利用开发者编写的程序代码从分组中把应用数据块提取出来。然而 RTP 的名称又隐含地表示出它是一个运输层协议。这样划分也是可以的,应为 RTP 封装了多媒体应用的数据块,并且由于 RTP 向多媒体应用程序提供了服务(如时间戳和序号)。因此可以把 RTP 看成是在 UDP 之上的一个运输层子层的协议。 -
RTP 协议能否提供应用分组的可靠传输?请说明理由。
不能。因为 RTP 为实时应用提供端到端的运输,但不提供任何服务质量的保证。RTP 是一个协议框架因为它只包含了实时应用的一些共同功能。RTP 并不对多媒体数据块做任何处理而只是向应用层提供一些附加的信息,让应用层知道应当如何进行处理。 -
在 RTP 的分组中为什么要使用序号、时间戳和标记?
序号占 16 位。对每一个发送出的 RTP 分组,其序号加 1。在一次 RTP 会话开始时的初始序号是随机选择的序号使接收端能够发现丢失的分组,同时也能够将失序的 RTP 分组重新按序排列好。时间戳反映了 RTP 分组中的数据的第一字节的采样时刻。接收端使用时间戳克准确的知道应当在什么时间还原哪一个数据块,从而消除时间的抖动。时间戳还可用来使视频应用中声音和图像的同步。标记置 1 表示这个 RTP 分组具有特殊意义。 -
RTCP 协议使用在什么场合?它们各有何主要特点?
RTP 协议分别使用在:结束分组 BYE 表示关闭一个数据流;特定应用分组 APP 时应用程序能够定义新的分组类型;接收端报告分组 RR 用来使接收端周期性地向所有的点用多播方式进行报告;发送端报告分组 SR 用来使发送端周期性地向所有接收端用多播方式进行报告;远点描述分组 SDES 给出会话中参加者的描述。 -
IP 电话的两个主要标准各有何特点?
IP 电话的两个标准分别为:ITU-T 定义的 H.323 协议和 IETF 提出的绘画发起协议 SIP。
H.323 协议的特点:以已有的电路交换电话网为基础,增加了IP电话的功能。H.323的指令沿用原有电话网的信令模式,与原有电话网的连接比较容易。
SIP 协议的特点:以英特网为基础,将 IP 电话视为因特网上的新应用。SIP 使用了 HTTP 的许多首部、编码规则、差错码以及一些鉴别机制。它比 H.323 具有更好的可扩展性。 -
携带实时音频信号的固定长度分组序列发送到因特网。每隔 10 ms 发送一个分组。前 10 个分组通过网络的时延分别为 45 ms,50 ms,53 ms,46 ms,30 ms,40 ms,46 ms,49 ms,55 ms 和 51 ms。
(1)用图表示出这些分组发出时间和到达时间。
(2)若在接收端还原时的端到端时延为 75 ms,试求出每个分组经受的时延。
(3)画出接收端缓存中的分组数与时间的关系。
(1)横坐标的时间单位是毫秒。上面横线是分组发出的时间,下面的横线是分组到达的时间。下图给出了分组发出时间和到达时间。
(2)下表的时间单位都是毫秒(ms):
分组编号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
分组发送时间 | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
分组经受的时延 | 45 | 50 | 53 | 46 | 30 | 40 | 46 | 49 | 55 | 51 |
分组到达时间 | 45 | 60 | 73 | 76 | 70 | 90 | 106 | 119 | 135 | 141 |
经过 75 ms 开始重放,分组的重放时间 | 75 | 85 | 95 | 105 | 115 | 125 | 135 | 145 | 155 | 165 |
分组在接收端缓存中增加的时延 | 30 | 25 | 22 | 29 | 45 | 35 | 29 | 26 | 20 | 24 |
第 1 行是分组的编号。
第 2 行是分组的发送时间,可以看出,分组是等时的发送出去。
第 3 行是分组在互联网中实际经受的时延。这些时延并不都是一样的。
第 4 行是分组到达的时间。
如果分组在接收端重放开始时间选择在第 1 个分组发送的 75 ms 之后,也就是在第 1 个分组到达接收端 30 ms 之后,那么各分组在接收端应当重放的时间如表中第五行所示。
第 6 行是分组在接收端缓存中应增加的时延。这些时延分别为(单位为 ms): 30、 25 、 22 、 29 、45 、35 、29 、 26 、20 、24。
【我的理解:还原,还原为原来的顺序;重放,重新放置为原来的位置。相隔 10 秒,与发送间隔保持一致。从缓存中读取。】
(3)下图,画出了缓存中的分组数和时间的关系。
t
<
45
,
N
=
0
;
t<45,N=0;
t<45,N=0;
45
≤
t
<
60
,
N
=
1
45\leq t<60,N=1
45≤t<60,N=1
60
≤
t
<
70
,
N
=
2
60\leq t<70,N=2
60≤t<70,N=2
70
≤
t
<
73
,
N
=
3
70\leq t<73,N=3
70≤t<73,N=3
73
≤
t
<
75
,
N
=
4
73\leq t<75,N=4
73≤t<75,N=4
75
≤
t
<
76
,
N
=
3
75\leq t<76,N=3
75≤t<76,N=3
76
≤
t
<
85
,
N
=
4
76\leq t<85,N=4
76≤t<85,N=4
85
≤
t
<
90
,
N
=
3
85\leq t<90,N=3
85≤t<90,N=3
90
≤
t
<
95
,
N
=
4
90\leq t<95,N=4
90≤t<95,N=4
95
≤
t
<
105
,
N
=
3
95\leq t<105,N=3
95≤t<105,N=3
105
≤
t
<
106
,
N
=
2
105\leq t<106,N=2
105≤t<106,N=2
106
≤
t
<
115
,
N
=
3
106\leq t<115,N=3
106≤t<115,N=3
115
≤
t
<
119
,
N
=
2
115\leq t<119,N=2
115≤t<119,N=2
119
≤
t
<
125
,
N
=
3
119\leq t<125,N=3
119≤t<125,N=3
125
≤
t
<
135
,
N
=
2
125\leq t<135,N=2
125≤t<135,N=2
t
=
135
t=135
t=135 很特殊。正好同时发生了到达缓存和从缓存读取。
135
≤
t
<
141
,
N
=
2
135\leq t<141,N=2
135≤t<141,N=2
141
≤
t
<
145
,
N
=
3
141\leq t<145,N=3
141≤t<145,N=3
145
≤
t
<
155
,
N
=
2
145\leq t<155,N=2
145≤t<155,N=2
155
≤
t
<
165
,
N
=
1
155\leq t<165,N=1
155≤t<165,N=1
t
>
165
,
N
=
0
;
t>165,N=0;
t>165,N=0;
16. 话音信号的采样速率为 8000
H
z
H_z
Hz,每隔 10 ms 将已编码的话音采样装配为话音分组。每一个话音分组在发送之前要加上一个时间戳。假定时间戳是从一个时钟得到的,该时钟每隔
△
△
△ 秒将计时器加 1。试问能否将
△
△
△ 取为 9 ms?如果行,请说明理由。如果不行,你认为
△
△
△ 应取为多少?
显然, △ △ △ 应小于话音分组长度 10 ms。如果将 △ △ △ 取为 9 ms,则有:
时钟时间(ms) | 0 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 | 99 | 108 | … |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
计数器值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | … |
话音分组每隔 10 ms 产生一个,对应的时间戳值(即计数器值)为:
话音分组产生的时间(ms) | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | … |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
应加上的时间戳值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | … |
上面表格中的时间戳值是这样得到的。
例如:
① 当时间是 9 ms 时计数器值为 1。在 10 ms 产生了话音分组,此计数器值仍然是 1。因此,这是加上的时间戳值就是 1。
② 当时间是 18 ms 时计数器值是 2。在 20 ms 时产生了话音分组,此计数器值是 2。因此这时加上的时间戳就是 2。
③ 当时间是 27 ms 时计数器值是 3。在 30 ms 时产生了话音分组,此计数器值是 3。因此这时加上的时间戳就是 3。
④ 现在看当时间是 72 ms 时计数器值是 8。在 80 ms 时产生了话音分组,此计数器值是 8。因此这时加上的时间戳就是 8。
⑤ 当时间是 81 ms 时计数器值是 9。但在时间是 90 ms 时计数器值更新为 10。在时间小于 90 ms 时没有话音分组产生。因此计数器值 9 并没有被任何话音分组读取。
⑥ 正好在 90 ms 时产生了话音分组,而计数器值也更新为 10。因此这时加上的时间戳值就是 10。话音分组的时间戳在 8 到 10 之间缺了一个 “9”。
可见将
△
△
△ 取为略小于话音分组长度 10 ms 是不行的。
正确的做法是使
2
△
2△
2△ 或
3
△
3△
3△ 等于话音分组长度。当话音分组丢失时,时间戳会相差
4
△
4△
4△ 或
5
△
5△
5△ ,由此来判定是否发生了分组丢失。
【每到一定时钟时间,将最新的时钟时间对应的计数器值取代话音分组产生时间对应的应加上的时间戳值。】
-
在传送音频/视频数据时,接收端的缓存空间的上限由什么因素决定?实时数据流的数据率和时延抖动对缓存空间上限的确定有何影响?
接收端的缓存空间的上限取决于还原播放时所容许的时延,当还原播放时所用需的时延已经确定时,缓存空间的上限与实时数据流的数据率成正比。时延抖动越大,缓存空间也应越大。 -
什么是服务质量 QoS?为什么说 “因特网根本没有服务质量可言”?
服务质量 QoS 是服务性能的总效果,此效果决定了一个用户对服务的满意程度。因特网的网络本身提供的服务是不可靠的,它不能保证服务质量。实际上 “尽最大努力交付” 的服务就是没有质量保证的服务,根本没有服务质量可言。 -
在讨论服务质量时,管制、调度、呼叫接纳表示什么意思?
管制:使某个数据流不影响其他正常数据流在网络中通过的一种机制。
调度:路由器的队列所采用的排队规则。
呼叫接纳:数据流要事先声明它所需要的服务质量,然后或者被准许进入网络,或者被拒绝进入网络。 -
试比较先进先出(FIFO)排队、公平排队(FQ)和加权公平排队(WFQ)的优缺点。
① 先进先出(FIFO)排队的优点:实施简单;其缺点:不能区分时间敏感分组和一般数据分组,并且对排在长分组的短分组也不公平。
② 公平排队(FQ)的优点:在高优先级队列中总是有分组时,克服优先排队的局限,避免了低优先级队列的分组长期得不到服务的现象出现;其缺点:长分组得到的服务时间长,而短分组得到的服务时间短,并且没有区分分组的优先级。
③ 加权公平排队(WFO)的优点:通过为每个队列分配一个与所需带宽百分比相对应的权重,使高优先级队列中的分组有更多的机会得到服务;其缺点:实施起来很复杂。 -
假定有一个支持三种类别的缓存运行加权公平排队 WFQ 调度算法,并假定这三种类别的权重分别是 0.5, 0.25, 0.25。如果是采用循环调度,那第这三个类别接受服务的顺序是123123123…。
(1)如果每种类别在缓存中都有大量的分组,试问这三种类别的分组可能以何种顺序接受服务?
(2)如果第 1 类和第 3 类在缓存中有大量的分组,但缓存中没有第 2 类的分组,试问这两类分组可能以何种顺序接受服务?
答案一:
(1)如果每种类别在缓存中都有大量的分组,这三种类别的分组接受服务的顺序有:112311231123…、113211321132…、211321132113…、311231123112… 、231123112311…、321132113211…。
(2)如果 1 类和第 3 类在缓存中有大量的分组,但缓存中没有第 2 类的分组,则这两类分组接受服务的顺序有:113113113…、311311311…。
答案二:
(1)对三个类别接受服务的顺序时:123123123…
根据权重的不同,第一个类别接受服务的时间占总时间的 1 2 \frac{1}{2} 21,第二和第三个类别接受服务的时间各占总时间的 1 4 \frac{1}{4} 41。
因此,接受服务的顺序可能是:121312131213… 也可能是:1123112311231123…
(2)缓存中没有第二类的分组,因此就跳过去,接受分组的顺序是:113113113113…
第一和第三个类别接受服务的时间分别占总时间的 2 3 \frac{2}{3} 32 和 1 3 \frac{1}{3} 31,都比相应的权重要大一些。
【缺少一种,权重相应的增加一些】 -
漏桶管制器的工作原理是怎样的?数据流的平均速率、峰值速率和突发长度各表示什
么意思?
漏桶管制器简称漏桶,它是一种抽象的机制。在漏桶中可装许多权标,但最多装入 b 个权标,只要漏桶中的权标数小于 b 个,新的权标就以每秒 r 个权标的恒定速率加入到漏桶中。但若漏桶已装了 b 个权标,则新的权标就不再装入,而漏桶的权标数达到最大值 b。 漏桶管制分组流进入网络的过程如下。分组进入网络前先要进入一个队列中等候漏桶中的权标,就可从漏桶取走一个权标,然后就准许一个分组从队列进入网络。若漏桶已无权标,就要等新的权标注入漏桶后,再把这个权标拿走后才能准许下一个分组进入网络。假定在时间间隔 t 中把漏桶中的全部 b 个权标都取走。但在这个时间间隔内漏桶又装入了 rt 个新权标,因此在任何时间间隔 t 内准许进入网络的分组数的最大值为 rt + b。控制权标进入漏桶的速率 r 就可对分组进入网络的速率进行管制。
平均速率 网络需要控制一个数据流的平均速率。这里的平均速率指的是在一定的时间间隔内通过的分组数。
峰值速率 峰值速率限制了数据流在非常短的时间间隔内的流量。
突发长度 网络限制在非常的时间间隔内连续注入到网络中的分组数。 -
采用漏桶机制可以控制达到某一数值的、进入网络的数据率的持续时间。设漏桶最多可容纳 b 个权标。当漏桶中的权标小于 b 个时,新的权标就以每秒 r 个权标的恒定速率加入漏桶中。设分组进入网络的速率为 N pkt/s (pkt代表分组),试推导以此速率进入网络所能持续的时间 T。讨论为什么改变权标加入到漏桶中的速率就可以控制分组进入网络的速率。
在时间 T 内进入漏桶的权标数为 rT,假定桶内有 b 个权标(最大值),则在时间 T 内准许进入网络的分组数 = rT + b。
分组到达速率为 N pkt/s,在时间 T 内到达的分组数为 NT。再平衡时,这个数值应当等于在时间 T 内准许进入网络的分组数,即时间 T 内到达的分组数 = 在时间 T 内准许进入网络的分组数:
N T = r T + b NT = rT +b NT=rT+b
因此,在分组到达速率为 N pkt/s 时,以此速率进入网络所能持续的时间是:
T = b N − r T = \frac{b}{N-r} T=N−rb
请注意,N 和 r 的单位看似不同,一个是 “权标/秒”,一个是 “分组/秒”。但实际上它们是一样的。这是因为,从漏桶中拿走一个权标就可以进入网络一个分组,因此 N 和 r 的单位都是 “个/秒”。我们写成 “pkt/s” 主要是为了强调这个单位是每秒多少分组,而 “token/s” 主要是为了强调这个单位是每秒多少个权标。
从 N T = r T + b NT=rT+b NT=rT+b 可以看出,分组进入网络的速率是:
N = r + b T N = r+\frac{b}{T} N=r+Tb
因此,当 b = 0 时,分组进入网络的速率 N 等于权标加入到漏桶中的速率 r。
但当 b > 0,分组进入网络的速率 N 将大于权标加入到漏桶中的速率 r。不过究竟大多少,还取决于时间 T 和桶内的最大权标数 b 的大小。如果时间 T 取得很大(因而 b T \frac{b}{T} Tb 远小于 r),那么分组进入网络的速率 N 基本上等于权标加入到漏桶中的速率 r(仅略大一些)。这种情况和 b = 0 的情况差不多。换言之,从长期的角度看(即时间 T 取得非常之大),分组进入网络的速率 N 等于权标加入到漏桶中的速率 r。但若时间 T 取得很小(因而 b T \frac{b}{T} Tb 远大于 r),分组进入网络的速率 N 远远大于权标加入到漏桶中的速率 r。 -
在上题中,设 b = 250 token,r = 5000 token/s,N = 25000 pkt/s。试求分组用这样的速率进入网络持续多长时间。若 N = 2500 pkt/s,重新计算本题。
当 N = 25000 pkt/s 时, T = 250 25000 − 5000 = 250 20000 = 12.5 m s T = \frac{250}{25000-5000}=\frac{250}{20000}=12.5 ms T=25000−5000250=20000250=12.5ms。分组用这样的速率进入网络能够持续 12.5 ms。
当 N = 2500 pkt/s 时, T = 250 2500 − 5000 = 250 − 2500 = − 0.1 m s T = \frac{250}{2500-5000}=\frac{250}{-2500}=-0.1 ms T=2500−5000250=−2500250=−0.1ms。我们看到,计算 T 的分式中分母为负值。这表示分组用这样的速率进入网络能够持续任意长的时间。
从物理概念上看,当 r = 5000 token/s,而 N = 2500 pkt/s 时,由于分组进入网络的速率 N 小于权标加入到漏桶的速率 r,在这种情况下,当漏桶被权标装满后就不再增加权标,后到的权标被简单地丢弃掉。而分组用这样的速率可以不受限制的进入网络。 -
试推导公式(8-2)。
教材中式子如下:
d m a x = b i ∑ w j R ∗ W i d_{max}=\frac{b_i\sum w_j}{R*W_i} dmax=R∗Wibi∑wj
公式中的符号:
R = 路由器输出链路的数据率(即带宽)
w i w_i wi = 队列中 i 的权重
∑ w j \sum w_j ∑wj = 所有的队列权重求和
b i b_i bi = 漏桶 i 已经装满的权标数
d m a x d_{max} dmax = 传输 b i b_i bi 个分组所需的时间
假定漏桶 i 已经装满了 b i b_i bi 个权标。这就表示分组流 i 不需要就可从漏桶中拿走 b i b_i bi 个权标,因此 b i b_i bi 个分组可以马上从路由器输出。在教材上已经导出了分组流 i 得到的数据率是:
R i = R ∗ w i ∑ w j R_i=\frac{R*w_i}{\sum w_j} Ri=∑wjR∗wi
这 b i b_i bi 个分组中的最后一个分组所经受的时延最大,它等于传输这 b i b_i bi 个分组所需的时间 d m a x d_{max} dmax。可见 d m a x = b i R i d_{max} = \frac{b_i}{R_i} dmax=Ribi 。把上面的公式中的 R i R_i Ri 代入,即导出了教材中的式子。 -
假定图 8-23 中分组流 1 的漏桶权标装入速率 r 1 < R w 1 ∑ w i r_1<\frac{Rw_1}{\sum w_i} r1<∑wiRw1,试证明:(8-2) 式给出的 d m a x d_{max} dmax 实际上是分组流 1 中任何分组 WFQ 队列中所经受的最大时延。
教材上的图如下所示,我们观察分组流 1。假定分组流 1 的漏桶的权标装入速率 r 1 < R w 1 ∑ w i r_1<\frac{Rw_1}{\sum w_i} r1<∑wiRw1。
分组流 1 的发送速率 ≥ w 1 R ∑ w i \geq \frac{w_1R}{\sum w_i} ≥∑wiw1R。如果所有的流的队列中都有分组,那么前面公式中的 “ ≥ \geq ≥” 就应当取为 “=” 。如果有的队列没有分组,WFQ 就跳过这个队列,因此这个流得到的服务时间就会多一些。
现在设:
t 0 t_0 t0 = 队列刚刚积累了分组需要排队等待的时刻(从这时起到达的分组就要排队了);
t = 分组流 1 的队列处于忙状态, t > t 0 t>t_0 t>t0(队列忙就是队列中有排队的分组);
T 1 ( T 0 , t ) T_1(T_0,t) T1(T0,t) = 在时间间隔 [ t 0 t_0 t0, t] 内,分组流 1 发送到网络的分组数。
显然,
T 1 ( T 0 , t ) ≥ w 1 R ( t − t 0 ) ∑ w i T_1(T_0,t) \geq \frac{w_1R(t-t_0)}{\sum w_i} T1(T0,t)≥∑wiw1R(t−t0),
另 Q 1 ( t ) Q_1(t) Q1(t) = 在时间 t 时分组流 1 在 WFQ 队列中排队的分组数。
显然,
Q 1 ( t ) = b 1 + r 1 ( t − t 0 ) − T 1 ( t 0 , t ) Q_1(t)=b_1+r_1(t-t_0)-T_1(t_0,t) Q1(t)=b1+r1(t−t0)−T1(t0,t)
Q 1 ( t ) ≤ b 1 + r 1 ( t − t 0 ) − w 1 R ( t − t 0 ) ∑ w i Q_1(t)\leq b_1+r_1(t-t_0)- \frac{w_1R(t-t_0)}{\sum w_i} Q1(t)≤b1+r1(t−t0)−∑wiw1R(t−t0)
Q 1 ( t ) ≤ b 1 + ( t − t 0 ) [ r 1 − w 1 R ∑ w i ] Q_1(t)\leq b_1+(t-t_0)[r_1- \frac{w_1R}{\sum w_i}] Q1(t)≤b1+(t−t0)[r1−∑wiw1R]
因为 r 1 < R w 1 ∑ w i r_1<\frac{Rw_1}{\sum w_i} r1<∑wiRw1, Q 1 ( t ) ≤ b 1 Q_1(t)\leq b_1 Q1(t)≤b1,因此分组流 1 在 WFQ 队列中排队的最大分组数是 b 1 b_1 b1。
这些分组被服务的速率的最小值是 R w 1 ∑ w i \frac{Rw_1}{\sum w_i} ∑wiRw1,因此分组流 1 中任何分组的最大时延是: b 1 ∑ w i w 1 R = d m a x \frac{b_1\sum w_i}{w_1R}=d_{max} w1Rb1∑wi=dmax -
考虑 8.4.2 节讨论的管制分组流的平均速率和突发长度的漏桶管制器。现在我们限制其峰值速率 p 分组/秒。试说明怎样把一个漏桶管制器的输出流入到第二个漏桶管制器的输入,以便用这样串接的两个漏桶能够管制分组的平均速率、峰值速率以及突发长度。第二个漏桶的大小和权标产生的速率应当是怎样的?
从下图看出,第二个漏桶的大小为 1,权标产生的速率是 p/s
先看第二个漏桶。第二个漏桶的权标注入率是 p/s,因此,从长时间来看,进入网络的分组流的最高速率为 p pkt/s。这个漏桶最多只能装入一个权标,因此不能有更大的突发分组流产生。
再看第一个漏桶。第一个漏桶的权标注入速率为 r/s,因此,从长时间来看,最后进入第二个漏桶的分组流的最高速率也只能有这样大,即速率为 r pkt/s。
显然,如果 r > p,那么后面的第二个漏桶输入端的队列 2 一定会溢出,即一定会丢失一些分组,而最后进入网络的分组流的速率一定不会超过 p pkt/s。可见使 r > p 是不行的。
正确的做法是使 r < p 。在这种情况下,从长时间来看,最后进入网络的分组流的速率应为 r pkt/s。
因此,在 r < p 的情况下,可以取第一个漏桶的权标注入速率 r/s 等于进入网络的分组流的平均速率,而第二个漏桶的权标注入速率 p/s 等于进入网络的分组的峰值速率。
在时间 T 内,第一个漏桶输出的分组最多应当等于第二个漏桶所能接纳的分组数。用公式写出即: r T + b = p T rT+b=pT rT+b=pT
解出 T = b p − r T=\frac{b}{p-r} T=p−rb,这就是突发长度。
我们用简单的数据说明一下,设第一个漏桶的权标注入量是 2/s,b = 16,第二个漏桶的权标注入速率是 10/s。这样,进入网络的分组流的平均速率是 2 pkt/s,进入网络的分组流的峰值速率为 10 pkt/s,突发长度 T = b p − r = 16 10 − 2 = 2 s T = \frac{b}{p-r}=\frac{16}{10-2}=2s T=p−rb=10−216=2s。
我们演算一下。在 2 秒钟之内,有 4 个权标注入到第一个漏桶。假定第一个漏桶中原来已经有了 16 个权标(最大值)。因此,在 2 秒钟之内,可以拿走 20 个权标,即可以有 20 个分组进入第二个漏桶。但在 2 秒钟之内,可以有 20 个权标注入到第二个漏桶中,这就表明,可以有 20 个分组在 2 秒内进入网络。所以在峰值速率 10 pkt/s 下,突发长度 T = 2s。 -
综合服务 IntServ 由哪几个部分组成在?有保证的服务和受控负载的服务有何区别?
IntServ 共又以下四个组成部分:
(1)资源预留协议 RSVP,它是 IntServ 的信令协议。
(2)接纳控制(admission control),用来决定是否同意对某一资源的请求。
(3)分类器(classifier),用来把进入路由器的分组进行分类,并根据分类的结果把不同的类别的分组放入特定的队列。
(4)调度器(scheduler),根据服务质量要求决定分组发送的前后顺序。
有保证的服务和受控负载的服务的区别:
(1)有保证的服务(guaranteed service),可保证一个分组在通过路由器时的排队时延有一个严格的上限。
(2)受控负载的服务(controlled-load service),可以使应用程序得到比通常的“尽最大努力”更加可靠的服务。 -
试述资源预留协议 RSVP 的工作原理。
① 发送端依据高、低带宽的范围、传输迟延,以及抖动来表征发送业务。RSVP 从含有业务类别 (TSpec) 信息的发送端发送一个路径信息给目的地址(单点广播或多点广播的接收 端)。每一个支持 RSVP 的路由器沿着下行路由建立一个 ‘路径状态表’,其中包括路径信息里先前的源地址 (例如,朝着发送端的上行的下一跳)
为了获得资源预留,接收端发送一个上行的 RESV (预留请求) 消息。除了 TSpec,RESV消息里有 ‘请求类别’ (RSpec),表明所要求的综合服务类型,还有一个 ‘过虑器类别’,表征正在为分组预留资源 (如传输协议和端口号)。 RSpec 和过虑器类别合起来代表一个 ‘流的描述符’ ,路由器就是靠它来识别每一个预留资源的。
② 当每个支持 RSVP 的路由器沿着上行路径接收 RESV 的消息时,它采用输入控制过程证实请求,并且配置所需的资源。如果这个请求得不到满足 (可能由于资源短缺或未通过认证),路由器向接收端返回一个错误消息。如果这个消息被接受,路由器就发送上行 RESV到下一个路由器。
③ 当最后一个路由器接收 RESV,同时接受请求的时候,它再发送一个证实消息给接收端。
④ 当发送端或接收端结束了一个 RSVP 会话时,有一个明显的断开连接的过程。 -
区分服务 DiffServ 与综合服务 IntServ 有何区别?区分服务的工作原理是怎样的 ?
区分服务 DiffServ 与综合服务 IntServ 的区别:
(1)区分服务 DiffServ 层次简单,伸缩性较好:DiffServ 工作范围分为两个层次:
DS 域和 DS 区。DS 标记只是规定了有限数量的业务级别,状态信息的数量正比于业务级别,而不是流的数量。而综合服务 IntServ 伸缩性差,在 WAN 中,各种各样的子网会不断增多,并且随着流数目的增加,状态信息的数量成比例上升,重传 PATH 和 RESV 信息会占用大量的路由器存储空间和处理开销。
(2) 区分服务 DiffServ 便于实现:只在网络的边界上才需要复杂的分类、标记、管制
和整形操作。ISP 核心路由器只需要实现行为聚集(BA)的分类,因此实现和部署区分、分级都比较容易。
(3) 区分服务 DiffServ 不影响路由:DiffServ 的节点提供服务的手段只限于队列调
度和缓冲管理,并不涉及路由选择,而综合服务 Intserv 对现有路由器的改造十分复杂。由于需要进行端到端的资源预留,必须要求从发送到接收之间所有路由器都支持RSVP和许可控制协议,同时每个路由器还要花费大量的资源来维护和更新数据库
区分服务的工作原理:
区分服务体系结构(DiffServ)定义了一种可以在互联网上实施可扩展的服务分类的体系结构。一种“服务”,是由在一个网络内,在同一个传输方向上,通过一条或几条路径传输数据包时的某些重要特征所定义的。这些特征可能包括吞吐率、时延、时延抖动,和/或丢包率的量化值或统计值等,也可能是指其获取网络资源的相对优先权。服务分类要求能适应不同应用程序和用户的需求,并且允许对互联网服务的分类收费。DiffServ 体系结构由许多在网络节点上实现的功能要素组成,包括每一跳转发小集合,数据包归类功能,和交通调节功能。其中,交通调节功能又包含测量、标记、整形、和监察策略四部分。在本体系结构,只在网络的边界节点上实现复杂的分类和调节功能,并且,通过在 IPv4 和 IPv6 包头的 DS 段做适当的标记 [DSFIELD],聚合流量,然后根据所做的标记,采取不同的每一跳转发策略。因此,本体系结构具备可扩展性。“每一跳行为”保证了在互相竞争资源的数据流中为每个网络节点分配缓冲区和带宽资源时,有一个合理的处理力度。在核心网络节点上,无需维护每个应用程序流或每个用户转发状态。 -
在区分服务 DiffServ 中的每跳行为 PHB 是什么意思?EF PHB 和 AF PHB有何区别? 它们个试用于什么样的通信量?
DiffServ 定义了在转发分组时体现服务水平的每跳行为 PHB。所谓“行为“就是指在转发分组时路由器对分组是怎样处理的。”每跳“是强调这里所说的行为只涉及到本路由器转发的这一跳的行为,而下一个路由器再怎样处理则与本路由器的处理无关。
EF PHB 和 AF PHB的区别:
(1)EF 指明离开一个路由器的通信量的数据率必须等于或大于某一数值。因此 EF PHB
用来构造通过 DS 域的一个低丢失率、低时延、低时延抖动、确保带宽的端到端服务。
(2)AF 用 DSCP 的第 0~2 位把通信量划分为四个等级,并给每一种等级提供最低数量的带宽和缓存空间。对其中的每一个等级在用 DSCP 的第 3~5 位划分出三个“丢弃优先级“。当发生网络拥塞时,对于每一个等级的 AF,路由器就首先把”丢弃优先级“较高的分组丢弃。 -
假定一个发送端向 2 n 2^n 2n 接收端发送多播数据流,而数据流的路径是一个完全的二叉树,在此二叉树的没有一个节点上都有一个路由器。若使用 RSVP 协议进行资源预留,问总共要产生多少个资源预留报文 RESV(有的在接收端产生,也有的在网络中的路由器产生)?
按题意,此二叉树的叶节点有 2 n 2^n 2n 个,故二叉树的深度为 n + 1 n+1 n+1。每一个节点向其上游节点发送一个 RESV 报文,故总发送 2 n + 1 − 1 2^{n+1}-1 2n+1−1 个RESV报文.
【一个箭头代表一个 RESV 报文,一个节点 n = 0,二个节点 n = 1,四个节点 n = 2 以此类推】 -
假定 IP 电话的发送方在讲话时,每秒钟后产生 8000 字节的话音数据。每隔 20 ms 把得到的数据块加上 RTP 首部和 UDP 首部后,交给 IP 层发送出去。假定 RTP 首部和 IP 首部都没有选项,试计算发送方在发送这种 IP 数据报时的数据率 (kbit/s) 。这个数据率比原始的话音数据率增加了百分之多少?
每秒钟产生 8000 B 的话音数据。20 ms (即 0.02 s)所产生的数据是:
8000 ( B / s ) ∗ 0.02 ( s ) = 160 B 8000(B/s)*0.02(s)=160 B 8000(B/s)∗0.02(s)=160B
RTP 首部 12 B,UDP 首部 8 B,IP 首部 20 B,总计 40 B。
三个首部加上数据所构成的 IP 数据报共有 160 + 40 = 200 B = 1600 bit,这些都要在 20 ms 发送出去,因此发送这种 IP 数据报的数据率是 1600 20 = 80 k b i t / s \frac{1600}{20}=80kbit/s 201600=80kbit/s。
这个数据率高于原来的数据率,是因为增加了三个首部 40 B,话音数据部分 160 B 增加了 1 4 \frac{1}{4} 41 。因此这个数据率比原始的话音数据率增加了 25 %。 -
发送方在 t = 1 发送话音分组 8 个(等时发送,时间间隔是一个时间单位)。在第 1 个分组在 t = 8 到达接收方,后续的话音分组的到达时间见图所示。
(1)分组 2 到分组 8 的时延(从发送方到接收方)各为多少?
(2)如果接收方在 t = 8 就开始播放,问这 8 个分组有哪几个未能按时到达赶上播放。
(3)如果接收方在 t = 9 就开始播放,问这 8 个分组中有哪几个未能按时到达赶上播放。
(4)如果要所有的 8 个分组都能按时赶上播放,那么接收方应在什么时间开始播放?
(1)分组 2 到达的时间为 9,时延为 7。
分组 3 到达的时间为 12,时延为 9。
分组 4 到达的时间为 12,时延为 8。
分组 5 到达的时间为 12,时延为 7。
分组 6 到达的时间为 15,时延为 9。
分组 7 到达的时间为 15,时延为 8。
分组 8 到达的时间为 16,时延为 8。
(2)未能按时到达赶上播放的分组是:3、4、6、7、8。
(3)未能按时到达赶上播放的分组是:3、6
(4)要所有的 8 个分组都能按时赶上播放,那么接收方应在 t = 10 开始播放
【到达时间,看平台部分,向右边延伸至触碰点处的时间;时延,到达时间减去左边平台最后面那端对应的时间;赶上播放,看时延值,t < 播放时间的时延,是赶上播放的分组】 -
有一个 RTP 会话包括四个用户,他们都和同一个多播地址进行通信:发送和接受分组。每个用户发送视频的速率是 100 kbit/s。
(1)RTCP 的通信量将被限制在多少(kbit/s)?
(2)每一个用户能够分配到的 RTCP 带宽是多少?
(1)通常是使 RTCP 分组的通信量不超过网络中数据分组的通信量的 5 %。四个用户的会话带宽是 400 kbit/s,其 5 %是 20 kbit/s。
(2)每个用户能够分配到的带宽是 20 kbit/s 的四分之一,即 5 kbit/s,用来接收报告和发送报告。
部分答案转自:计算机网络(第五版)谢希仁_课后答案第八章
转载自 《计算机网络(第7版)》著者:谢希仁
点我回顶部 ☚
Fin.