前言

那么这里博主先安利一些干货满满的专栏了!

首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。

高质量博客汇总https://blog.csdn.net/yu_cblog/category_12379430.html?spm=1001.2014.3001.5482


Intelligent Multi-Path TCP Congestion Control for video streaming in Internet of Deep Space Things communication

摘要

文献分析和学习

今天给大家讲解一下这篇文献,深空物联网通信中视频流的智能多路TCP拥塞控制。然后我也看到了前面很多同学都在讲拥塞控制算法,然后其实我这个也是拥塞控制算法,但是这个背景是不一样的。

首先我们为了后面大家能更好地理解我接下来要讲的内容。我们先明确一下,这篇文章,是在TCP的基础上做拥塞 控制算法的一篇文章。所以,他是在传输层做操作。其次他用的是MPTCP,即多路TCP,再其次,他是针对于视 频流传输的,再其次,他是针对于深空通信的。可能上面的这些名词,在那本《自顶向下》里面可能都没有涉及到,所以,在这我先给大家铺垫一些背景知识。

背景知识铺垫

什么是深空通信?

深空通信是指在太空中进行的通信方式,主要应用于太阳系外的深空探测任务,例如火星探测、木星探测等。深空 通信所涉及到的距离非常遥远,比如,⻢斯克的星舰去到火星之后,要和地球取得 联系,此时就要用到深空通信。

深空通信遇到了什么困难?

基于窗口和ACK,TCP协议(也就是我们上课学习的TCP)在深空链路上的性能很差,具有极高的传播延迟和链路错误。 那么为了解决这个问题,在此之前已经有很多的相关研究去解决这个问题了。但是,这些方法存在以下局限性:

(1)基于规则的方法使用一组固定的规则来处理每种情况,有时候不能灵活处理各种状况。 (3)单路径TCP导致⻓RRT,链路利用率降低。

(2)当经历⻓RRT之后,在源处接收到有关链路条件的旧信息,基于这些过去信息的拥塞处理决策可能不是最优决策。

文章的Solution

所以作者就在本文提出了他的方法,就是DQN for SVC-based CC in MPTCP这个个东⻄,那这个东⻄是什么意思

呢?DQN代表深度Q网络,SVC就是一种视频处理方式,MPTCP就是多路TCP协议。总之就是,

首先发现TCP不太行,所以为了解决问题,首先作者采用MPTCP去替代TCP,然后在此基础上使用SVC对视频做处 理,然后在此基础上,再加上深度Q网络,这样就能很好的保证深空视频传送的拥塞控制效果。然后一下是作者提 出的方法的完整模型图,然后接下来我开始详细讲解这里面的每一个模块,和他们的作用。

SVC可伸缩视频编码技术

可伸缩视频编码 SVC 是一种视频编码技术,它允许在不同的传输网络和接收端设备上进行动态适应视频的清晰度 和帧率。SVC 可以将原始视频流分成多个编码层,每个编码层具有不同的比特率和解析度,这使得接收端设备可以 选择最适合其带宽和处理能力的编码层来解码视频。

首先,SVC技术先将一部分块数据(也就是一段时间内的视频帧)分成了M部分,其中 M-1 部分是 Enhancement layer ,其中 1 块是 base layer 然后我们就来定义权重函数。

其中 Chi,t 是缓冲器中在t时隙处的第i个块。L(·)是输出块的层编号的函数。W是块的权重,默认值设置为 100,M是总的层数,设置为3,所以L越大的话,(M-L)是越小的,所以这是一个递减的函数。这样定义的话:重量 随着层的减少而增加。(我看前面有些组没有讲这个,不讲也行)

然后,SVC技术被应用到这个领域,是为了解决HoL阻塞的(这个我记得上周也有一个组提到了)。HoL阻塞 (Head-of-Line Blocking)是指,在一个队列中,如果正在处理某一个数据包时,后续的数据包无法立即被处 理,形成了阻塞。

如果我们使用SVC,则可以在数据包中包含有多个不同的分层信息。接收方设备可以根据需要选择不同的分层进行 解码,如果高分辨率层次的数据包遭遇延迟和阻塞,接收方设备可以立即切换到低分辨率层次,从而避免了HoL阻 塞问题。但是如果是没有进行SVC编码,那么接收方主机就只能等着,就阻塞在accept那里了。

关于MPTCP的拥塞控制

即这一部分就是MPTCP。

什么是MPTCP?
MPTCP(Multipath TCP)是一种多路径传输控制协议,他和tcp的区别其实就是mptcp将多条网络路径结合起来。

那么MPTCP本质上,是怎么实现的呢?

MPTCP本质上是将一个上层的报文分成多份,(我们知道,IP报文在如果⻓度超过MTU之后是会分片的,这里也是同一个道理,虽然细节实现可能不一样)然后将这些分割后的数据在不同的TCP子连接上传输。

那么MPTCP优越在哪呢?

TCP的拥塞控制算法我们大家都很熟悉了,即加性递增、乘性减小。当网络出现拥塞时,TCP会将拥塞窗口减半,然后重新进行慢启动,逐渐增大发送窗口。

诶!但是MPTCP的拥塞控制就不一样啦!当MPTCP检测到某个路径出现拥塞时,它会通过弱化该路径的窗口来减 少在该路径上的传输速率,而不是像TCP那样直接将窗口减半。同时,MPTCP支持多路径传输,因此可以在其他 路径上增加传输速率,利用多条路径实现更高的带宽利用率。举一个例子,假设MPTCP同时使用了两个传输路 径,当其中一个路径出现拥塞时,MPTCP可以选择增加另一个路径上的传输速率,从而实现更高的总体传输速 率,而TCP就不行了,他只能把拥塞窗口减半,然后再慢启动!

那么到现在,最后的问题就是,这个MPTCP到底应该怎么在拥塞的时候去调整每个路径上的传输速率呢?

比如说 这里弱化多少,这里增加多少呢?那么这个定量的问题,作者使用强化学习(RL)去解决的。

首先,强化学习是需要一个奖励函数的,也就是我们经常说的 reward function ,需要定义奖励函数,我们首先要 定义状态。

在这个项目中,我们每隔时间t来计算一次状态。 状态的定义如下。

其中sit表示在t时刻开始的时间间隔内的第i条TCP路径上的状态,Cwti表示当前路径在当前时间下的拥塞窗口大 小,第二个表示丢包率,第三个表示可用带宽,第四个表示时延。

所有路径的总状态,可以如上所示了。 等一会儿,我们期望的是,把这个状态丢进强化学习网络里面之后,强化学习网络能告诉我,我这个MPTCP具体

应该怎么调整?所以我们定义 “动作” -- 表示具体应该怎么调整 接下来,我们可以定义,在t开始的特定时间段内,MPTCP和SVC的动作为Ai。

紧接着,我们再定义奖励函数。

其中W(Ch,t)表示层权重函数,Lri,t是第i个子流的损失率,并且Thi,t是实现的吞吐量,所以,吞吐量越大 奖励函数值越大的,而层权重函数和丢包率的积其实可以理解成数据包到达对面主机的一个成功率,当然,这个增 大,奖励函数也是要增大的。

接下来,我们利用上面定义好的一系列变量,来分析算法运行的过程。

首先,我们要明确,送进网络里面的,是[si,ai,ri,si],即状态+动作+奖励

(行1-3)算法随机初始化Q和重放缓冲器的值,这个缓冲区是什么意思呢,其实可以理解成重复训练,我们将一 个状态送进网络之后,这个状态可能发生了改变,相对应的他的奖励也会变,这时候我们把这个进入过网络的状态 再次放到等待队列(不完全是队列,它是随机采样进去的,不是先进先出的)里面继续,这样就能通过多次送进网 络,找到每种状态的最大化奖励所对应的动作。(行5-9)系统收集拥塞窗口的大小、每个子流的丢失率、带宽利 用率以及从环境接收的每个子流的RTT。然后,通过选择动作返回的最大奖励,系统执行动作以改变拥塞窗口的大 小(行11-13)<具体怎么改的,我找了很久但是文章中没有提到>。在执行动作之后,系统将状态、动作、奖励和 下一状态存储在重放缓冲器中,并执行随机采样(第14-15行)。最后,对每个学习步骤执行梯度下降(按照我的 理解这里是一个反向传播)以更新网络参数(行16-19)。

到这里,其实就已经可以得到,每一种状态,(即那个1*4的矩阵),所对应的最优的处理动作是什么,也就是 说,MPTCP应该怎么设置每条路的传输速率?都得到了解决。

性能分析

那么作者具体的模型就是上面所说的内容了,那么他的性能到底怎么样呢? 由于深空环境的特殊性,本次实验的通信环境是通过计算机模拟实现的,而不是通过真实的实验或仿真测试。

为了评估提出的基于 dqn 的 MPTCP CC 方案的性能,我们设置两个具有不同 RRT和损失率的非对称链路。详细的链路设置如表 1 所示。

现在我们来开始分析这个 DQN for SVC-based CC in MPTCP 的性能。

我们直接看图分析。

这个fig4展示了,流数据通过模拟的星际回程链路发送时,成功接收和播放的层的百分比。

我们可以看到 Proposed 就是作者提出的方法,后面的这些是作者用来做对比的方法。

我们可以看到,无论是SVC的BL层的接受概率,还是EL层的接受概率,还是BL+EL的总接受概率,作者提出的这个 方法都远远的超过其他对比的模型。我们可以看这个图,作者提出的方法,EL+BL加起来其实就可以理解成整个完 整的视频数据包到达对方主机的概率。我们可以看到,都接近100%了,我感觉这个有点夸张了其实。

然后前面我们提到,作者引入SVC是为了解决HoL阻塞问题,现在我们看看,解决的效果怎么样。

在这个图里面,纵坐标就是HoL阻塞的概率。横坐标就是网络的各链路 rtt 的不对称性。不对称性的定义如下。

根据各链路 rtt 的不对称性也进行了性能评价。连杆的不对称性根据给出的相对误差来定义。

如图 5(a)所示,很明显,随着上述不对称性的增加,HoL 阻塞也会增加。当最大不对称度为 60%时,模型表示出 HoL 阻塞只有 12%,而其他模型基本在 50%以上。

蓝色这个是作者提出的模型,这是遥遥领先于其他模型了。

然后还有一个图,它是测量了传输一个完整的流文件所花费的时间。

显然,作者的这个方法太有优势了
可以看到,他这个方案的性能分别比 TCP BBR、DRL-TCP 和 QLE-DS 提高 20%、21%和 19%。

我认为可以改进的地方

虽然,看似,刚才看这些作者给出的这些图,好像感觉这个模型已经完全SOTA了,已经没有上升空间了,其实我认为,这个模型还是有很多要等待改进的地方的。

在这里,我主要对MPTCP提出了一些我的改进的想法。

MPTCP本身已经是一种支持多路径传输的协议,然而在深空网络环境中,由于传输路径的复杂性和不稳定性,MPTCP仍然需要进一步改进以适应不同的传输场景。以下是一些MPTCP进一步改进的方法:首先我是想对安全保障的方面说。

1. 加强安全保障:如前所述,深空网络传输具有重要的安全保障需求,需要提供数据的加密、认证和防篡改等 安全措施。因此,在MPTCP中,进一步封装,加强数据的安全保护,以确保数据传输的安全性和完整性。

2. 感觉这篇文章的实验部分内容有点少,其实可以探究一下SVCM的值对效果的影响。

3. 另外,目前他这里所做的这些实验,只有两条链路去模拟,因此我认为还没有很好的模拟了深空通信的状态,因为深空通信状态太复杂了,因此我认为这个文章还需要补实验,更好模拟深空通信的状态。

深空物联网通信中视频流的智能多路TCP拥塞控制|文献阅读|文献分析和学习|拥塞控制|MPTCP|SVC的更多相关文章

  1. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...

  2. Android IOS WebRTC 音视频开发总结(七五)-- WebRTC视频通信中的错误恢复机制

    本文主要介绍WebRTC视频通信中的错误恢复机制(我们翻译和整理的,译者:jiangpeng),最早发表在[这里] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blac ...

  3. 物联网通信 - RESTDemo示例程序(C#版本)

    技术:wcf+http post+json(.net4.0 + jdk1.8) 运行环境:vs2010+java 概述Server开放RESTful API接口,供应用程序/移动App/嵌入式qt通过 ...

  4. 物联网应用中实时定位与轨迹回放的解决方案 – Redis的典型运用(转载)

    物联网应用中实时定位与轨迹回放的解决方案 – Redis的典型运用(转载)   2015年11月14日|    by: nbboy|    Category: 系统设计, 缓存设计, 高性能系统 摘要 ...

  5. 使用SSL确保通信中的数据安全

    #region Server /// <summary> /// 用于保存非对称加密(数字证书)的公钥 /// </summary> private string public ...

  6. iOS: 消息通信中的Notification&KVO

    iOS: 消息通信中的Notification&KVO 在 iOS: MVC 中,我贴了张经典图: 其中的Model向Controller通信的Noification&KVO为何物呢? ...

  7. 你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ?

    你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ? 长沙戴维营教育将为你解开这个巨大的谜团大BUG! http://www.ubuntucollege.cn/course/29/ ...

  8. TCP通信中的大文件传送

    TCP通信中的大文件传送 源码   (为节省空间,不包含通信框架源码,通信框架源码请另行下载) 文件传送在TCP通信中是经常用到的,本文针对文件传送进行探讨 经过测试,可以发送比较大的文件,比如1个G ...

  9. 串口通信中ReadFile和WriteFile的超时详解!

    源:串口通信中ReadFile和WriteFile的超时详解! 在用ReadFile和WriteFile读写串行口时,需要考虑超时问题.如果在指定的时间内没有读出或写入指定数量的字符,那么ReadFi ...

  10. 谈谈语音通信中的各种tone

    今天谈的这个主题(tone)存在于我们的日常打电话过程中.先举两个场景:1,你拿起固话话筒准备打电话,按电话号码前先从话筒里听到"嗡"的连续音,这叫dial tone(拨号音,表示 ...

随机推荐

  1. 题解 CF1550C. Manhattan Subarrays (思维)

    来源:Educational Codeforces Round 111 (Rated for Div. 2) 不难但很好的思维题 设 \(d(p,q)\) 为 \(p,q\) 两点之间的曼哈顿距离 给 ...

  2. Educational Codeforces Round 82 (Rated for Div. 2) A. Erasing Zeroes(超简单的写法)

    题意: 统计间隔在1中0的个数 思路: 超简单写法,直接利用string的find.rfind函数即可 #include<bits/stdc++.h> using namespace st ...

  3. Python 在VSCode中使用

    PyCharm到期了,所以打算换成VS Code(宇宙最好用编辑器?)试一试.但是下载之后不太会配置,网上不少的文章也比较旧了,所以打算自己看着官方教程配置一下.(VSCode版本:1.49.2,Py ...

  4. 三、docker容器的常用命令

    系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...

  5. C#排序算法6:快速排序

    快速排序由C. A. R. Hoare在1960年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 ...

  6. java基础-数组-day06

    1. 引入数组 录入10个学生的成绩 求和 求平均 import java.util.Scanner; public class TestArray01{ public static void mai ...

  7. Redis 集群模式搭建

    本文为博主原创,未经允许不得转载: 目录: 1. 哨兵模式与集群模式对比 2. Redis 集群架构搭建 3. 集群原理分析 4. 集群元数据维护方式对比 5. redis 分布式寻址 6. 集群选举 ...

  8. 基于java+springboot的租房网站、房屋出租管理系统

    该系统是基于java+springboot+vue开发的租房管理系统.是给师弟开发的课程作业.学习过程中,遇到问题可以留言咨询. 演示地址 前台地址: http://zf.gitapp.cn 后台地址 ...

  9. 解决windows系统电脑内存占用过高,一开机就是60%70%80%90%?

    1.问题 windows系统电脑内存占用过高,一开机就是60%70%80%90%? 2.解决方式 主要是虚拟内存一直没有及时释放导致的 先贴上B站视频链接:解决windows系统电脑内存占用过高 这里 ...

  10. [转帖]Fluentd 的优缺点

    https://zhuanlan.zhihu.com/p/129375187   以前在不少场合浅度使用过 Fluentd,将日志汇聚到一个地方.它给我的大体印象是 简单且能解决问题 直到最近遇到一个 ...