【技术实现步骤摘要】
发送流数据的方法及数据发送设备
本申请实施例涉及通信
,尤其涉及一种发送流数据的方法及数据发送设备。
技术介绍
流式传输分为顺序流式(ProgressiveStreaming)传输和实时流式(RealtimeStreaming)传输两种传输方式,流式传输所传输的数据可以称为流数据(datastream),广泛适用于例如音视频、网络监控、网络游戏、金融服务等场景。顺序流式传输是顺序下载,例如在下载一音视频文件的同时,用户可以观看该音视频已经下载完成的部分。实时流式传输总是实时传输,例如实时现场直播,这种情况下,往往音视频需要被实时的观看到。因此实时流式传输不能被延迟或过度缓冲,需要应用程序立即处理接收到的数据并呈现给用户。实时流式传输的使用场景包括:网络视频直播、远程桌面共享、视频监控以及视频电话等等。使用实时流式传输来传输音视频文件,用户可以边下载文件边播放,无需下载完整的音视频文件即可观看或者收听,可以节约数分钟甚至数小时的下载时间,对系统缓存容量的需求也会降低。另一方面,通信领域常用的传输控制协议(TransmissionControlProtocol,TCP)也可以用于传输流数据。使用TCP协议的情况下,发送流数据的应用程序(具体可以指实时流媒体应用)将流数据的数据块下发到内核态缓存后,该数据块就位于内核态缓存中,直到发送端确认接收端成功接收该数据块后,该数据块才被从发送端的内核态缓存中删除。这样的处理方式有较长的排队时延(指报文发送前在内核态的发送队列中排队的时间),也拉长了流数据传输的整体的时延,而流数据显然是一种对传输的实时性要求高,对传 ...
【技术保护点】
1.一种发送流数据的方法,其特征在于,所述方法应用于传输控制协议TCP连接的数据发送端,所述数据发送端的操作系统中运行有应用,所述方法包括:将所述应用下发的数据块存入第一队列,所述数据块为流数据,所述第一队列为所述数据发送端的操作系统的用户态中的队列,所述第一队列用于放置待发送的流数据的数据块;在第二队列中的数据量满足预设条件的情况下,将所述第一队列中的至少一个数据块加入所述第二队列,所述第二队列为所述数据发送端的操作系统的内核态中,TCP协议对应的发送缓存队列;所述数据发送端通过所述第二队列,向所述TCP连接的数据接收端发送数据。
【技术特征摘要】
1.一种发送流数据的方法,其特征在于,所述方法应用于传输控制协议TCP连接的数据发送端,所述数据发送端的操作系统中运行有应用,所述方法包括:将所述应用下发的数据块存入第一队列,所述数据块为流数据,所述第一队列为所述数据发送端的操作系统的用户态中的队列,所述第一队列用于放置待发送的流数据的数据块;在第二队列中的数据量满足预设条件的情况下,将所述第一队列中的至少一个数据块加入所述第二队列,所述第二队列为所述数据发送端的操作系统的内核态中,TCP协议对应的发送缓存队列;所述数据发送端通过所述第二队列,向所述TCP连接的数据接收端发送数据。2.根据权利要求1所述的方法,其特征在于,所述预设条件为:所述第二队列中的数据量不超过第二阈值,或者,所述第二队列中的数据量的占用比不超过第三阈值。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述第二队列中的数据量超过所述第二阈值的情况下,或者,在所述第二队列中的数据量的占用比超过所述第三阈值的情况下,丢弃所述第一队列内优先级较低的数据块。4.根据权利要求2或3所述的方法,其特征在于,在所述第二队列中的数据量超过所述第二阈值的情况下,或者,在所述第二队列中的数据量的占用比超过所述第三阈值的情况下,所述方法还包括:降低将数据块从所述第一队列加入所述第二队列的速率。5.根据权利要求2或3所述的方法,其特征在于,在所述第二队列中的数据量超过所述第二阈值的情况下,所述方法还包括:暂停将所述第一队列中的至少一个数据块加入所述第二队列,直到所述第二队列中的数据量不超过所述第二阈值,继续执行所述将所述第一队列中的至少一个数据块加入所述第二队列。6.根据权利要求2或3所述的方法,其特征在于,在所述第二队列中的数据量的占用比超过所述第三阈值的情况下,所述方法还包括:暂停将所述第一队列中的至少一个数据块加入所述第二队列,直到所述第二队列中的数据量的占用比不超过所述第三阈值,继续执行所述将所述第一队列中的至少一个数据块加入所述第二队列。7.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:在所述第一队列中的数据量超过第一阈值的情况下,丢弃所述第一队列内优先级较低的数据块。8.根据权利要求1至7任意一项所述的方法,其特征在于,所述应用下发的数据块为视频流的数据块,所述视频流的数据块包括双向预测编码B帧,帧间预测编码P帧以及帧内编码I帧;其中,在所述视频流的数据块中,被其他帧引用的次数越多的帧的优先级越高;和/或,在所述视频流的数据块中包括连续多帧未被其他帧引用,则所述连续多帧中的第一帧的优先级最低。9.根据权利要求8所述的方法,其特征在于,在所述B帧、所述P帧和所述I帧被其他帧引用的次数相同的情况下,或者,在所述B帧、所述P帧和所述I帧分别为一组连续多帧中的第一帧的情况下,所述B帧的优先级低于所述P帧的优先级,所述P帧的优先级低于所述I帧的优先级。10.根据权利要求1至9任意一项所述的方法,其特征在于,所述将所述应用下发的数据块存入第一队列包括:通过调用目标应用程序编程接口API将所述应用下发的数据块存入所述第一队列。11.根据权利要求1至9任意一项所述的方法,其特征在于,所述将所述应用下发的数据块存入第一队列包括:通过所述应用的代理将所述应用下发的数据块存入所述第一队列,所述代理为运行在所述操作系统的用户态的一个进程。12.一种数据发送设备,其特征在于,所述数据发送设备为应用传输控制协议TCP的设备,所述数据发送设备的操作系统中运行有应用,所述数据发送设备包括:存入单元,用于将所述应用下发的数据块存入第一队列,所述数据块为流数据,所述第一队列为所述数据发送设备的操作系统的用户态中的队列,所述第一队列用于放置待发送的流数据的数据块;加入单元,用于在所述第二队列中的数据量满足预设条件的情况下,将所述第一队列中的至少一个数据块加入...
【专利技术属性】
技术研发人员:拉胡尔·阿尔温德·贾达夫,曹振,K·安莫尔·曼尼·特杰斯瓦·萨尔玛,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。