
文章插图
(4) 在读取数据入队之前,Cache 模块会将数据打上时间戳,时间戳的计算方法模拟令牌桶原理,每一个数据包的时间戳计算公式如下:

文章插图
T 为当前数据包的 RTC 时间戳,size 为当前数据包的大小,TS 格式下的媒体元数据单位是 1316 字节,speed 为当前流媒体文件码率,t 为上一个数据包的 RTC 时间戳 。从公式可以看出,计算单位时间 1 秒内发送的报文数 n,可利用如下公式:

文章插图
即给 n 个数据包打上时间戳 。即在 time 秒内理论发送数据可以达到如下公式:

文章插图
从上面的步骤可以看出,通过给数据包打 RTC 时戳的方式,可以计算单位时间内的发包个数,从而对其进行精确控制,实现均匀控制码率的效果,与传统令牌桶的实现方式相比,这种时间戳控制方式,在保证速率控制的同时,减少了发送模块对令牌结构出队入队(保证一定的数据包个数),申请内存等操作,提升了系统性能 。
3.发送模块设计
Shaper 模块即数据发送模块,主要负责将 Cache 模块入队的数据进行发送,并计算发送结果,根据单位时间内发送的字节数 B 计算出当前的链路带宽 b,实时更新每一个发送对端的链路速度,针对每一路用户的数据流进行数据降速或者升速 。上面和下面这些公式就说明怎样去控制发送速率,非常重要 。
3.1Shaper 模块模型架构
流媒体服务器发送模块的结构如下图所示,图中说明了数据的流程 。

文章插图
(1)本系统结合具体的业务场景增加了桶水位线的优化:如果当前媒体文件的码率为 s,流媒体服务器数据缓存模块以每 1/s 的精度,从当前 RTC 时钟自加,给每个数据包作时戳标记 。数据发送模块预先开辟大小为 m 的队列,将做好时间戳标记且需要发送出去的数据入队,当数据包到达发送时间后,获得令牌,出队发送,每个队列有一条上水位线 H 和下水位线 L,当网络阻塞时,若队列内的数据大于等于 H,则新到的数据不入队,队列中的每个数据时戳向后移动 d 个精度,这样降低了发送速率,减少了网络拥塞 。降低后的速率为 如下计算公式:

文章插图
当网络状况良好,无发送失败记录,并且队列中的数据量在[L,H]之间,则将令牌生成间隔相对提高%d,按缓慢升速发送,如下计算公式:

文章插图
直到队列水位线下降到 L 处,为了保留缓存,数据发送速率恢复到媒体文件码率 s,当数据发送成功后,该数据的令牌被销毁 。所以令牌桶的原理就是通过控制令牌产生的速度,将数据发送码率平稳在 s 左右,对于每一个连接,令牌桶的数据流量为 B,计算公式如下:

文章插图

文章插图
3.2 Shaper 模块运行机制
Shaper 模块设计采用异步多线程运行机制,应用添加线程包中的数据来自于本地磁盘或是 Cache 模块中的数据文件 。Shaper 模块中创建若干个发包线程,这些线程采用异步方式可以对应用添加包中的数据同时进行操作,这样做的好处就是,当多个请求发来且访问同一资源时,无需等待资源访问结束,在空闲等待时同时可以访问其他资源,提高了服务器的发送效率 。如下图所示:

文章插图
3.3 令牌桶在 Shaper 模块中的应用
将具体叙述如何将令牌桶算法应用在 Shaper 模块中以及应用令牌桶算法对流量整形产生的影响 。在服务器的内部存储池中设计令牌产生模块,实现以一定速率产生令牌 。这些令牌在代码中的具体实现是一些虚拟的数据包,当流媒体服务器接收数据时,会根据系统设定的匹配规则对接收的数据进行分类,符合规则的数据交由令牌桶处理,而不符合规则的数据包,直接拒之门外 。Shaper 模块的数据来源有两处,一处是来自 Cache 模块,一处是来自本地磁盘 。不论数据来自哪里,Shaper 模块都会将收到的数据打包并作时戳标记之后放入队列 。数据包根据时戳会决定何时出队发送,出队后的数据包会在内部存储池中求取令牌,只有拿到令牌的数据包才可发送给客户端 。当数据包没有获得令牌(通常是令牌桶中的令牌不足的原因造成),服务器为队列设置阻塞模式,数据包无法出队,阻塞在队列中 。若阻塞数据包超过了队列的上线,则新的数据包无法入队 。因此,我们可以通过控制令牌的产生速率来控制数据包的出队入队速率,从而达到对流量的控制 。令牌桶在 Shaper 模块中的应用如下图所示:
推荐阅读
- 绿茶功效与作用,绿茶粉的功效与作用,1
- 与王阳明齐名的人 王阳明最好的朋友
- 曼松茶的功效与作用,杨聘号祥凤曼松王子茶全面上市
- 白茶的功效与作用,茉莉毛尖属于什么茶茉莉花茶毛尖的功效与作用
- 龙桑茶的功效与作用,茉莉毛尖属于什么茶茉莉花茶毛尖的功效与作用
- 高考英语听力应试技巧与策略
- 绿茶粉怎么制作面膜,绿茶粉的功效与作用,1
- 碧螺春和龙井功效对比,西湖龙井的功效与禁忌
- 碧螺春茶的功效与作用,碧螺春的功效,喝碧螺春的好处
- 百合枣仁茶的功效,百合花茶的功效作用与泡法
