一种数据发送方法、接收方法及装置与流程

文档序号:14776376发布日期:2018-06-23 03:28阅读:175来源:国知局
一种数据发送方法、接收方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种数据发送方法、接收方法及装置。



背景技术:

随着网络用户对直播这种新兴娱乐形式的追捧,给直播带来了巨大流量。直播的实现需借助于直播推流的技术手段,即主播的客户端将视频数据流推送给直播平台的服务器,由观众的客户端从直播平台的服务器获取视频数据流,从而实现了直播。

由于直播对数据的时效要求非常高,现有的直播推流技术多在具有较高传输速率的用户数据报协议(User Datagram Protocol,UDP)的基础上实现。然而,UDP是一种不可靠的传输协议,在网络带宽出现波动时,往往会出现视频丢帧等情况,影响了直播效果。与此对应的,现有技术中也存在一些基于传输控制协议(Transmission Control Protocol,TCP)的直播推流技术,然而,这种直播推流技术在网络带宽出现波动时,可能会出现视频卡顿等问题。



技术实现要素:

本发明提供一种数据发送方法、处理方法及装置,用以减少丢包同时提高网络资源的利用率。

本发明实施例提供一种数据发送方法,包括:

第一设备根据待发送的数据流生成数据报文;

所述第一设备按照发包速率向第二设备发送所述数据报文;

所述第一设备记录已发送的所述数据报文的数量;

在已发送的所述数据报文的数量达到一个批次的预设数量时,所述第一设备向所述第二设备发送校验报文;

所述第一设备接收所述第二设备返回的校验应答,确定该批次数据报文的丢包率;

所述第一设备根据多个批次数据报文的丢包率更新所述发包速率。

可选的,所述第一设备根据多个批次数据报文的丢包率更新所述发包速率,包括:

针对所述多个批次数据报文中的每一批次数据报文,所述第一设备根据该批次数据报文对应的校验报文和校验应答确定该批次数据报文对应的往返时延;

所述第一设备根据往返时延差值小于预设范围的若干个批次数据报文的丢包率更新所述发包速率。

可选的,所述数据报文包括发送序号;所述校验应答中包括所述第二设备收到的该批次数据报文的发送序号;

所述第一设备根据多个批次数据报文的丢包率更新所述发包速率,包括:

所述第一设备根据所述校验应答中所述第二设备收到的该批次数据报文的发送序号确定该批次数据报文中所述第二设备未收到的数据报文的数量;

所述第一设备根据所述第二设备未收到的数据报文的数量和所述预设数量确定该批次数据报文的丢包率;

所述第一设备根据多个批次数据报文的丢包率更新所述发包速率。

可选的,还包括:

所述第一设备继续发送下一批次数据报文;所述下一批次数据报文中包括所述第二设备未收到的已发送的数据报文。

可选的,所述第一设备包括发送缓冲区;

所述第一设备接收所述第二设备返回的校验应答之后,还包括:

所述第一设备根据所述校验应答中所述第二设备收到的该批次数据报文的发送序号确定所述第二设备是否完全收到该批次数据报文;

若是,则所述第一设备从所述发送缓冲区中删除所述批次所对应的数据报文。

本发明实施例提供一种数据接收方法,包括:

第二设备接收第一设备发送的数据报文;

所述第二设备在接收到所述第一设备发送的校验报文时,向所述第一设备返回校验应答。

可选的,所述第二设备包括接收缓冲区;所述数据报文包括发送序号;

所述第二设备在接收到所述第一设备发送的校验报文时,向所述第一设备返回校验应答,包括:

所述第二设备确定所述接收缓冲区中的数据报文的发送序号;

所述第二设备生成校验应答,所述校验应答中包括所述接收缓冲区中的数据报文的发送序号。

可选的,所述第二设备还包括处理缓冲区;

所述第二设备生成校验应答,还包括:

在所述接收缓冲区中缓存有预设批次数据报文时,将该预设批次数据报文从所述接收缓冲区转移至所述处理缓冲区;所述预设批次数据报文为所述发送序号连续的预设数量个数据报文;

所述第二设备在所述处理缓冲区中多线程处理所述数据报文。

可选的,所述第二设备为内容分发网络CDN中的节点服务器;所述数据报文中还包括目的节点服务器的IP地址;

所述第二设备将所数据报文发送至应用服务器,包括:

所述第二设备根据所述目的节点服务器的IP地址确定发送域名链;所述发送域名链为所述CDN网络中多个节点服务器构成的一条终点为所述目的节点服务器的路径;

所述第二设备通过所述发送域名链将所述数据报文发送至所述目的节点服务器;所述目的节点服务器用于将所述数据报文发送至所述应用服务器。

本发明实施例提供一种数据发送装置,包括:

处理单元,用于根据待发送的数据流生成数据报文;

收发单元,用于按照发包速率向第二设备发送所述数据报文;

所述处理单元,还用于记录已发送的所述数据报文的数量;

所述处理单元,还用于在已发送的所述数据报文的数量达到一个批次的预设数量时,通过所述收发单元向所述第二设备发送校验报文;

所述处理单元,还用于通过所述收发单元接收所述第二设备返回的校验应答,并确定该批次数据报文的丢包率;

所述处理单元,还用于根据多个批次数据报文的丢包率更新所述发包速率。

可选的,所述处理单元用于:

针对所述多个批次数据报文中的每一批次数据报文,所述处理单元根据该批次数据报文对应的校验报文和校验应答确定该批次数据报文对应的往返时延;

所述处理单元根据往返时延差值小于预设范围的若干个批次数据报文的丢包率更新所述发包速率。

可选的,所述数据报文包括发送序号;所述校验应答中包括所述第二设备收到的该批次数据报文的发送序号;

所述处理单元用于:

根据所述校验应答中所述第二设备收到的该批次数据报文的发送序号确定该批次数据报文中所述第二设备未收到的数据报文的数量;

根据所述第二设备未收到的数据报文的数量和所述预设数量确定该批次数据报文的丢包率;

根据多个批次数据报文的丢包率更新所述发包速率。

可选的,所述处理单元还用于:

通过所述收发单元继续发送下一批次数据报文;所述下一批次数据报文中包括所述第二设备未收到的已发送的数据报文。

可选的,所述处理单元包括发送缓冲区;

所述处理单元还用于:

根据所述校验应答中所述第二设备收到的该批次数据报文的发送序号确定所述第二设备是否完全收到预设批次数据报文;所述预设批次数据报文为发送序号连续的预设数量个数据报文;

若是,则所述处理单元从所述发送缓冲区中删除所述预设批次数据报文。

本发明实施例提供一种数据接收装置,包括:

收发单元,用于接收第一设备发送的数据报文;

处理单元,用于在所述收发单元接收到所述第一设备发送的校验报文时,通过所述收发单元向所述第一设备返回校验应答。

可选的,所述处理单元包括接收缓冲区;所述数据报文包括发送序号;

所述处理单元用于:

确定所述接收缓冲区中的数据报文的发送序号;

生成校验应答,所述校验应答中包括所述接收缓冲区中的数据报文的发送序号。

可选的,所述处理单元还包括处理缓冲区;

处理单元还用于:

在所述接收缓冲区中发送序号连续的数据报文达到一个批次的预设数量时,将该批次数据报文从所述接收缓冲区转移至所述处理缓冲区;

在所述处理缓冲区中多线程处理所述数据报文。

可选的,所述接收装置为内容分发网络中的节点服务器;所述数据报文中还包括目的节点服务器的IP地址;

所述处理单元还用于:

根据所述目的节点服务器的IP地址确定发送域名链;所述发送域名链为所述内容分发网络中多个节点服务器构成的一条终点为所述目的节点服务器的路径;

控制所述收发单元通过所述发送域名链将所述数据报文发送至所述目的节点服务器;所述目的节点服务器用于将所述数据报文发送至所述应用服务器。

本发明实施例提供一种计算设备,包括:至少一个处理器和与所述至少一个处理器通信连接的存储器;

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一项所述的数据发送方法,和/或,如上述任一项所述的数据接收方法。

本发明实施例提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述任一项所述的数据发送方法,和/或,如上述任一项所述的数据接收方法。

综上所述,本发明实施例提供一种数据发送方法、接收方法及装置,其中方法包括:第一设备根据待发送的数据流生成数据报文;第一设备按照发包速率向第二设备发送数据报文;第一设备记录已发送的数据报文的数量;在已发送的数据报文的数量达到一个批次的预设数量时,第一设备向第二设备发送校验报文;第二设备在接收到第一设备发送的校验报文时,向第一设备返回校验应答;第一设备接收第二设备返回的校验应答,确定该批次数据报文的丢包率;第一设备根据多个批次数据报文的丢包率更新发包速率。在本发明实施例中,第一设备根据多个批次数据报文的丢包率更新发包速率,丢包率越低说明网络状态越好,丢包率越高说明网络状态越差,由于丢包率可以在很大程度上反应出当前的网络状态,因此根据丢包率更新发包速率可以使第一设备的发包速率更能适应网络带宽的波动,从而减少丢包现象的发生。而且,第一设备按批次向第二设备进行校验,减少了校验过程对网络资源的占用,提高了网络资源利用率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据收发方法流程示意图;

图2为本发明实施例提供的一种直播推流CDN网络系统架构示意图;

图3为本发明实施例提供的一种直播推流加速方法流程示意图;

图4为本发明实施例提供的一种数据发送装置结构示意图;

图5为本发明实施例提供的一种数据接收装置结构示意图;

图6为本发明实施例提供的一种计算设备结构示意图;

图7为本发明实施例提供的一种计算设备结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种数据收发方法流程示意图,如图1所示,包括以下步骤:

S101:第一设备根据待发送的数据流生成数据报文。

S102:第一设备按照发包速率向第二设备发送数据报文。

S103:第一设备记录已发送的数据报文的数量。

S104:在已发送的数据报文的数量达到一个批次的预设数量时,第一设备向第二设备发送校验报文。

S105:第二设备在接收到第一设备发送的校验报文时,向第一设备返回校验应答。

S106:第一设备接收第二设备返回的校验应答,确定该批次数据报文的丢包率。

S107:第一设备根据多个批次数据报文的丢包率更新发包速率。

具体实施过程中,第一设备可以为数据发送端,第二设备可以为数据接收端,第一设备和第二设备之间可以通过互联网实现数据收发。其中,第一设备向第二设备发送的数据流可以是已知数据量的数据流,如图片合集、录播的视频节目等,也可以是未知数据量的数据流,如直播视频数据。本发明实施例所提供的方法可通过软件开发工具包(Software Development Kit,SDK)嵌入第一设备和/或第二设备的方式实现,第一设备和/或第二设备的操作系统可以是Linux、Windows、Mac OS、IOS、Android等多种主流操作系统。

在S101中,数据流是以数据报文的形式从第一设备发送给第二设备的。具体来说,第一设备将一定量的数据流数据打包为数据包,进而封装为数据报文并发送给第二设备。可选的,第一设备将数据报文中填满数据流数据,使得每一个数据报文都能携带尽可能多的数据流数据,从而减少了数据报文的数量。

在S103和S104中,第一设备会判断已发送的数据报文的数量达到一个批次的预设数量。可选的,已发送的数据报文的数量每达到一个批次的预设数量时,第一设备便会向第二设备发送校验报文,同时,第一设备还会重新开始计数。例如,一个批次的预设数量为128,则当第一设备记录已发送的数据报文数量达到128时,便向第二设备发送校验报文,同时,第一设备会重新从1开始计数。可选的,校验报文也可以携带数据流数据,从而减少一个往返时延(Round-Trip Time,RTT)。此外,第一设备向第二设备发送的其它报文,如建立连接的请求报文等,控制指令在这些报文中所占空间较小,可以充分利用报文的其它空间携带数据流数据。应理解,在校验报文中也携带视频流数据时,校验报文便对应着第一设备重新开始计数时的1。

在S105中,第二设备在接收到校验报文后,会查询自身接收到的数据报文的情况。可选的,第二设备只查询在前一次接收到校验报文至本次接收到校验报文期间所接收的数据报文情况,并根据这期间所接收的数据报文情况生成校验应答返回给第二设备。

在S106中,第一设备接收第二设备返回的校验应答后,会根据校验应答确定第二设备对该批次数据报文的接收情况,进而确定该批次数据报文的丢包率。

在S107中,第一设备根据多个批次数据报文的丢包率更新发包速率,应理解,在S102中的发包速率也是根据S107中所示的方法更新获得的,此处的多个批次数据报文为第一设备连续发送的多个批次数据报文。具体实施过程中,第一设备可以根据多个批次数据报文的丢包率获取平均丢包率,并根据平均丢包率更新发包速率,以排除网络偶然性的抖动所造成的误判。当然,第一设备也可以根据多个批次数据报文的丢包率的中心值更新发包速率等等,具体实现方式可以根据实际应用场景而定,本发明实施例并不多作限制。

可选的,第一设备可以根据多个批次数据报文的丢包率更新发包速率,包括:第一设备针对多个批次数据报文中的每一批次数据报文,第一设备根据该批次数据报文对应的校验报文和校验应答确定该批次数据报文对应的往返时延;第一设备根据往返时延差值小于预设范围的若干个批次数据报文的丢包率更新发包速率。通过对往返时延的判断可以排除一些特殊情况下的丢包率,以排除网络偶然性的抖动所造成的误判,使得更新后的发包速率更加适应网络带宽情况。此外,与传统的通过RTT判断当前网络状态的方法相比,本发明实施例采用丢包率判断可以避免由于第二设备同时接收的数据报文过多而错误的判断网络状态的情况发生,因为RTT只能粗略地判断当前网络的拥塞情况,但无法判断当前带宽的利用率。因此,采用丢包率更新发包速率可以使更新后的发包速率更能适应网络带宽情况。

可选的,第一设备还可以先判断连续多个批次数据报文丢包率,若连续多个批次数据报文的丢包率相差不超过预设阈值,说明该多个批次数据报文的丢包率能够反映当前网络状况,进而获取该多个批次数据报文的平均丢包率。在平均丢包率高于第一门限时,第一设备降低发包速率,在平均丢包率低于第二门限时,第一设备提高发包速率。若连续多个批次数据报文中明显存在少数个批次数据报文的丢包率与其它多数个批次的数据报文的丢包率之间存在较大差值,则仅根据该多数个批次的数据报文的丢包率确定平均丢包率,进而根据平均丢包率更新发包速率,以排除网络偶然性的抖动所造成的误判。例如,第一门限为0.5,三个批次数据报文的丢包率分别为0.1、0.9和0.1,若直接计算平均丢包率,则计算结果为0.55,可见第一设备会降低发包速率。然而,丢包率为0.9的中间批次的数据报文很可能是网络抖动造成的,并不能反映网路状况的恶化,在此情况下降低发包速率会造成带宽资源的浪费。因此,需将丢包率为0.9的中间批次排除,获得平均丢包率为0.1,从而确定第一设备无需降低发包速率,避免了对带宽资源的浪费。

在本发明实施例中,第一设备根据多个批次数据报文的丢包率更新发包速率,丢包率越低说明网络状态越好,丢包率越高说明网络状态越差,由于丢包率可以在很大程度上反应出当前的网络状态,因此根据丢包率更新发包速率可以使第一设备的发包速率更能适应网络带宽的波动,从而减少丢包现象的发生。而且,第一设备按批次向第二设备进行校验,减少了校验过程对网络资源的占用,提高了网络资源利用率。

在本发明实施例提供的数据发送方法中,第一设备需要根据多个批次数据报文的丢包率更新发包速率。可选的,数据报文包括发送序号,连续发送的数据报文的发送序号按数据报文的发送顺序连续变化。第二设备在收到校验报文后,会向第一设备返回校验应答,校验应答中会包括第二设备收到的该批次数据报文的发送序号。第一设备根据多个批次数据报文的丢包率更新发包速率,包括:第一设备根据校验应答中第二设备收到的该批次数据报文的发送序号确定该批次数据报文中第二设备未收到的数据报文的数量;第一设备根据第二设备未收到的数据报文的数量和预设数量确定该批次数据报文的丢包率;第一设备根据多个批次数据报文的丢包率更新发包速率。第一设备在收到校验应答后,根据校验应答确定第二设备已接收的该批次数据报文的发送序号。由于连续发送的各个数据报文的发送序号是连续的,因此第一设备通过查询第二设备已接收的数据报文的发送序号便可确第二设备未接收的该批次数据报文的发送序号,进而便可以确定出第二设备未收到的数据报文的数量,由于第一设备是根据预设数量按批次发送校验报文的,因此,在确定出第二设备未收到的数据报文的数量后,便可以直接根据预设数量确定丢包率。同样的,第二设备在收到校验报文后,也无需查询该校验报文所要校验的确切批次,第二设备查询的是上一次接收校验报文之后至今所收到的数据报文的发送序号并返回给第一设备,从而减少第二设备的查询压力。

可选的,第一设备继续发送下一批次数据报文;下一批次数据报文中包括第二设备未收到的已发送的数据报文。第一设备可以根据校验应答中第二设备已接收的数据报文的发送序号确定第二设备未收到的数据报文的发送序号,因此在下一批次数据报文中重新发送第二设备未收到的数据报文的发送序号。应理解,第一设备在发送校验应答之后,并不会停止发送数据报文,因此在发送某一批次数据报文的校验报文之后到确定第二设备未收到的该批次的数据报文的发送序号之间可能会又发送的了多个批次的数据报文,此处的下一批次指的是确定了第二设备未收到的数据报文的发送序号时所发送批次的下一批次。举例说明,第一设备依次向第二设备发送A、a、B、b、C、c……,其中,A、B、C分别表示一个批次的数据报文,a、b、c分别表示每个批次对应的校验报文。假设,第一设备向第二设备发送了批次A的数据报文后,向第二设备发送校验报文a,之后,继续发送批次B的数据报文。第一设备在收到第二设备返回的校验报文a的校验应答后,确定第二设备未收到的批次A中的数据报文,此时,第一设备正在发送批次B,则第一设备会在批次C中加入批次A中第二设备未收到的数据报文。

可选的,第一设备包括发送缓冲区;第一设备接收第二设备返回的校验应答之后,还包括:第一设备根据校验应答中第二设备收到的该批次数据报文的发送序号确定第二设备是否完全收到预设批次数据报文;若是,则第一设备从所述发送缓冲区中删除所述预设批次数据报文。其中,预设批次数据报文为发送序号连续的预设数量个数据报文,例如,预设数量为128,则第一设备每发送128个数据报文,便进行一次确认,由于第一设备会重新发送部分数据报文,因此第一设备所发送的每个批次中的数据报文的发送序号有可能是不连续的。假设第一设备发送了第一个批次的数据报文,数据报文的发送序号为1~128,并发送了校验报文。第一设备收到的第一个校验应答中所包括的发送序号为1~100,说明第二设备没有收到发送序号为101~128的数据报文,此时,第一设备的发送缓冲区中还缓冲有发送序号为101~128的数据报文,第一设备直接调取发送序号为101~128的数据报文并在下一批次重新发送,假设下一批次为第一设备发送的第三个批次的数据报文,则第三个批次的数据报文的发送序号将会是101~128,以及,257~357。此时,第一设备的发送缓冲区中依旧缓冲着发送序号为1~128的数据报文,直至某一次收到校验应答后,确定发送序号为1~128的数据报文全被第二设备接收后,第一设备才会将发送序号为1~128的数据报文从发送缓冲区删除。在以上具体实例中,预设批次的数据报文便指的是发送序号为1~128的数据报文,发送序号为129~256的数据报文,发送序号为257~384的数据报文等等。

可选的,第二设备包括接收缓冲区;第二设备所接收的数据报文会被先缓存在接收缓冲区中。第二设备在接收到第一设备发送的校验报文时,确定接收缓冲区中数据报文的发送序号,并生成校验应答,校验应答中包括接收缓冲区中的数据报文的发送序号。可选的,第二设备只确定上一次接收校验报文之后至今所收到的数据报文的发送序号,并生成校验应答,从而减少第二设备的运行压力。可选的,第二设备还可以向第一设备返回接收缓冲区中剩余空间的大小,第一设备可以根据接收缓冲区中剩余空间的大小动态调整每条数据报文的大小,从而提高对数据报文和接收缓冲区空间的利用效率,也可以防止接收缓冲区剩余空间过小无法接收全部数据报文的情况。

可选的,在接收缓冲区中缓存有预设批次数据报文时,第二设备将该预设批次数据报文从接收缓冲区转移至处理缓冲区;预设批次数据报文为发送序号连续的预设数量个数据报文;第二设备在处理缓冲区中多线程处理数据报文。与第一设备类似,第二设备也按预设批次从接收缓冲区中移除数据报文,以确保第二设备能够接收全部的数据报文。同时,在处理缓冲区中多线程处理数据报文,提高第二设备对数据报文的处理能力。更进一步地,还可以在第二设备中为数据接收和处理配备专用的处理器,以减少系统调度的开销,提高处理器缓存的命中率。

可选的,第一设备根据丢包率动态调整发送缓冲区的大小,同时,向第二设备发送调节指令,第二设备收到调节指令后,相应调整接收缓冲区的大小,一般,发送缓冲区和接收缓冲区的大小需保持一致。可选的,在丢包率较低时,增大发送缓冲区和接收缓冲区的大小,使第一设备可以连续发送数据报文,第二设备可以连续接收数据报文。具体来说,第一设备会按照发包速率发送发送缓冲区中的数据报文,在发包速率较高时,若发送缓冲区过小,则可能会出现第一设备无数据报文可发的情况,造成带宽资源浪费。基于相同的道理,第二设备的接收缓冲区过小,也会造成带宽资源的浪费。可选的,在丢包率较高时,第一设备根据二分法逐步减小发送缓冲区的大小,同时,向第二设备发送调节指令以指示第二设备对应调整接收缓冲区的大小。逐步减小发送缓冲区和接收缓冲区的大小,可以减少过度缩小发送缓冲区和接收缓冲区对带宽资源造成的浪费。

为了更具体地说明本发明实施例所提供的数据发送及接收方法,本发明实施例提供了一种应用于直播推流内容分发网络(Content Delivery Network,CDN)的具体实现方式。图2为本发明实施例提供的一种直播推流CDN网络系统架构示意图,如图2所示,直播推流CDN网络中包括用户终端、管理服务器、若干个节点服务器、以及应用服务器。其中,用户终端为安装有主播客户端的终端,应用服务器为直播平台的应用服务器,用户终端可以通过图2所示的直播推流CDN网络向应用服务器推流直播视频数据,从而使安装有观众客户端的终端可以从应用服务器获取直播视频数据。

基于图2所示的直播推流CDN网络进行直播推流,本发明实施例提供了一种直播推流加速方法。可选的,数据报文中还包括目的节点服务器的IP地址。第二设备(节点服务器1)接收第一设备(用户终端)发送的数据报文之后,还包括:第二设备根据目的节点服务器的IP地址确定发送域名链;发送域名链为CDN网络中多个节点服务器构成的一条终点为目的节点服务器的路径;第二设备通过发送域名链将数据报文发送至目的节点服务器;目的节点服务器用于将数据报文发送至应用服务器。

图3为本发明实施例提供的一种直播推流加速方法流程示意图,如图3所示,主要包括以下几个步骤:

S301:用户终端向管理服务器发送鉴权请求。

S302:管理服务器接收鉴权请求,对用户终端进行鉴权。在鉴权通过时,向用户终端返回配置单。

S303:用户终端根据配置单向加速域名链发送直播视频数据。

S304:加速域名链对直播视频数据进行直播推流加速。

在S301的具体实施过程中,用户终端可以在客户端启动时便向管理服务器发送鉴权请求,在视频直播的过程中,周期性向管理服务器发送鉴权请求。用户终端在向管理服务器发送的鉴权请求中携带有与用户终端所安装的客户端相对应的唯一标识信息,该唯一标识信息可以使管理服务器确定用户终端所要访问的应用服务器。

在S302的具体实施过程中,管理服务器所进行的鉴权包括判断根据鉴权请求中的标识信息所确定的应用服务器是否有权进行直播推流加速。例如,应用A未购买直播推流加速服务,则管理服务器在通过鉴权请求中的标识信息确定所对应的应用服务器为应用A的应用服务器后,便会拒绝提供直播推流加速服务器,不会向用户终端返回配置单。在鉴权通过时,管理服务器向用户终端返回的配置单中包括节点服务器1的IP地址以及目的节点服务器的IP地址,节点服务器1是管理服务器根据用户终端的位置信息、网络状况等因素为用户终端匹配的优选的节点服务器。目的节点服务器为与应用服务器绑定的节点服务器,如图2中节点服务器5,其与应用服务器之间存在直接的数据通信关系,可以直接将数据发送给应用服务器。可选的,配置单中还可以包括加速认证信息,例如,直播推流加速服务的有效期、直播推流加速服务器的预设要求等,所谓预设要求是指应用的开发商有可能只需要对部分用户终端进行直播推流加速,例如,应用B购买了直播推流加速服务,但应用B的应用服务器位于北方,应用B可以只对南方用户终端的直播推流加速服务。因此在S303中,用户终端在收到配置单后,可以根据配置单中的加速认证信息确定是否需要对用户终端的直播视频数据进行加速。

在S303中,所谓加速域名链指的是由多个节点服务器构成的数据传输路径,其初始的节点服务器为节点服务器1,末尾的节点服务器为目的节点服务器(节点服务器5)。用户终端可以根据配置单中的节点服务器1的IP地址将直播视频数据以及目的节点服务器的IP地址发送给节点服务器1,由节点服务器1确定加速域名链。此时,用户终端为本发明实施例中的第一设备,节点服务器为本发明实施例提供的第二设备,二者之间通过本发明实施例提供的数据发送方法及接收方法进行交互。

在S304的具体实施过程中,加速域名链对直播推流的加速是由多个节点服务器共同完成的。如图2所示,由节点服务器1到节点服务器5共有两条路径,路径一为节点服务器1—节点服务器2—节点服务器3—节点服务器5,路径二为节点服务器1—节点服务器4—节点服务器5,在节点服务器1中会保存有该两条路径的时延信息、运营商信息等,节点服务器1从中选取最优路径作为加速域名链。例如,节点服务器1确定了路径二为加速域名链,则会将用户终端发送来的数据报文转发至节点服务器4,节点服务器4中同样保存到达节点服务器5的路径,最终将数据报文发送至节点服务器5。节点服务器5与应用服务器直接连接,将数据报文发送给应用服务器。应理解,图2仅为简化情况,实际使用过程中节点服务器4与节点服务器5之间也会有多条路径存在的情况,此时,节点服务器4也会从多条路径中挑选最优路径并确定下一跳的节点服务器,继续将数据报文转发给下一跳的节点服务器并最终传递至节点服务器5。

综上所述,本发明实施例提供一种数据发送方法、接收方法,包括:第一设备根据待发送的数据流生成数据报文;第一设备按照发包速率向第二设备发送数据报文;第一设备记录已发送的数据报文的数量;在已发送的数据报文的数量达到一个批次的预设数量时,第一设备向第二设备发送校验报文;第二设备在接收到第一设备发送的校验报文时,向第一设备返回校验应答;第一设备接收第二设备返回的校验应答,确定该批次数据报文的丢包率;第一设备根据多个批次数据报文的丢包率更新发包速率。在本发明实施例中,第一设备根据多个批次数据报文的丢包率更新发包速率,丢包率越低说明网络状态越好,丢包率越高说明网络状态越差,由于丢包率可以在很大程度上反应出当前的网络状态,因此根据丢包率更新发包速率可以使第一设备的发包速率更能适应网络带宽的波动,从而减少丢包现象的发生。而且,第一设备按批次向第二设备进行校验,减少了校验过程对网络资源的占用,提高了网络资源利用率。

基于相同的技术构思,本发明实施例还提供一种数据发送装置,该数据发送装置可以实现上述任一实施例所提供的数据发送方法。图4为本发明实施例提供的一种数据发送装置结构示意图,如图4所示,数据发送装置400包括处理单元401和收发单元402,其中:

处理单元401,用于根据待发送的数据流生成数据报文;

收发单元402,用于按照发包速率向第二设备发送所述数据报文;

所述处理单元401,还用于记录已发送的所述数据报文的数量;

所述处理单元401,还用于在已发送的所述数据报文的数量达到一个批次的预设数量时,通过所述收发单元402向所述第二设备发送校验报文;

所述处理单元401,还用于通过所述收发单元402接收所述第二设备返回的校验应答,并确定该批次数据报文的丢包率;

所述处理单元401,还用于根据多个批次数据报文的丢包率更新所述发包速率。

可选的,所述处理单元401具体用于:

针对所述多个批次数据报文中的每一批次数据报文,所述处理单元401根据该批次数据报文对应的校验报文和校验应答确定该批次数据报文对应的往返时延;

所述处理单元401根据往返时延差值小于预设范围的若干个批次数据报文的丢包率更新所述发包速率。

可选的,所述数据报文包括发送序号;所述校验应答中包括所述第二设备收到的该批次数据报文的发送序号;

所述处理单元401具体用于:

根据所述校验应答中所述第二设备收到的该批次数据报文的发送序号确定该批次数据报文中所述第二设备未收到的数据报文的数量;

根据所述第二设备未收到的数据报文的数量和所述预设数量确定该批次数据报文的丢包率;

根据多个批次数据报文的丢包率更新所述发包速率。

可选的,所述处理单元401还用于:

通过所述收发单元402继续发送下一批次数据报文;所述下一批次数据报文中包括所述第二设备未收到的已发送的数据报文。

可选的,所述处理单元401包括发送缓冲区;

所述处理单元401还用于:

根据所述校验应答中所述第二设备收到的该批次数据报文的发送序号确定所述第二设备是否完全收到预设批次数据报文;预设批次数据报文为发送序号连续的预设数量个数据报文;

若是,则所述处理单元401从所述发送缓冲区中删除所述预设批次数据报文。

基于相同的技术构思,本发明实施例还提供一种数据接收装置,该数据接收装置可以实现上述任一实施例所提供的数据接收方法。图5为本发明实施例提供的一种数据接收装置结构示意图,如图5所示,数据接收装置500包括处理单元501和收发单元502,其中:

收发单元502,用于接收第一设备发送的数据报文;

处理单元501,用于在所述收发单元502接收到所述第一设备发送的校验报文时,通过所述收发单元502向所述第一设备返回校验应答。

可选的,所述处理单元501包括接收缓冲区;所述数据报文包括发送序号;

所述处理单元501具体用于:

确定所述接收缓冲区中的数据报文的发送序号;

生成校验应答,所述校验应答中包括所述接收缓冲区中的数据报文的发送序号。

可选的,所述处理单元501还包括处理缓冲区;

处理单元501还用于:

在所述接收缓冲区中缓存有预设批次数据报文时,将该预设批次数据报文从所述接收缓冲区转移至所述处理缓冲区;所述预设批次数据报文为所述发送序号连续的预设数量个数据报文;

在所述处理缓冲区中多线程处理所述数据报文。

可选的,所述接收装置为内容分发网络中的节点服务器;所述数据报文中还包括目的节点服务器的IP地址;

所述处理单元501还用于:

根据所述目的节点服务器的IP地址确定发送域名链;所述发送域名链为所述内容分发网络中多个节点服务器构成的一条终点为所述目的节点服务器的路径;

控制所述收发单元502通过所述发送域名链将所述数据报文发送至所述目的节点服务器;所述目的节点服务器用于将所述数据报文发送至所述应用服务器。

应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本发明实施例中,收发单元可以由收发器实现,处理单元可以由处理器实现。

基于相同的技术构思,本发明实施例提供一种计算设备,图6为本发明实施例提供的一种计算设备结构示意图。如图6所示,该计算设备对应于上述任一实施例中的第一设备。图6中计算设备包括处理器600,用于读取存储器620中的程序,执行下列过程:

根据待发送的数据流生成数据报文;

按照发包速率通过收发器610向第二设备发送数据报文;

记录已发送的数据报文的数量;

在已发送的数据报文的数量达到一个批次的预设数量时,通过收发器610向第二设备发送校验报文;

通过收发器610接收第二设备返回的校验应答,并确定该批次数据报文的丢包率;

根据多个批次数据报文的丢包率更新发包速率。

可选的,处理器600具体用于:

针对多个批次数据报文中的每一批次数据报文,根据该批次数据报文对应的校验报文和校验应答确定该批次数据报文对应的往返时延;

根据往返时延差值小于预设范围的若干个批次数据报文的丢包率更新发包速率。

可选的,数据报文包括发送序号;校验应答中包括第二设备收到的该批次数据报文的发送序号;

处理器600具体用于:

根据校验应答中第二设备收到的该批次数据报文的发送序号确定该批次数据报文中第二设备未收到的数据报文的数量;

根据第二设备未收到的数据报文的数量和预设数量确定该批次数据报文的丢包率;

根据多个批次数据报文的丢包率更新发包速率。

可选的,处理器600还用于:

通过收发器610继续发送下一批次数据报文;下一批次数据报文中包括第二设备未收到的已发送的数据报文。

可选的,处理器600包括发送缓冲区;

处理器600还用于:

根据校验应答中第二设备收到的该批次数据报文的发送序号确定第二设备是否完全收到预设批次数据报文;预设批次数据报文为发送序号连续的预设数量个数据报文;

若是,则从发送缓冲区中删除该预设批次数据报文。

其中,在图6中,总线接口可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线接口还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器610可以是多个元件,即包括发送器和接收器,提供用于在传输介质上与各种其他装置通信的单元。针对不同的计算设备,用户接口630还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。

处理器600负责管理总线接口和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。

可选的,处理器600可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。

基于相同的技术构思,本发明实施例提供另一种计算设备,图7为本发明实施例提供的一种计算设备结构示意图。如图7所示,该计算设备对应于上述任一实施例中的第二设备。图7中计算设备包括处理器700,用于读取存储器720中的程序,执行下列过程:

通过收发器710接收第一设备发送的数据报文;

在接收到所述第一设备发送的校验报文时,通过收发器710向第一设备返回校验应答。

可选的,处理器700包括接收缓冲区;数据报文包括发送序号;

处理器700具体用于:

确定接收缓冲区中的数据报文的发送序号;

生成校验应答,校验应答中包括接收缓冲区中的数据报文的发送序号。

可选的,处理器700还包括处理缓冲区;

处理器700还用于:

在接收缓冲区中缓存有预设批次数据报文时,将该预设批次数据报文从接收缓冲区转移至处理缓冲区;预设批次数据报文为发送序号连续的预设数量个数据报文;

在处理缓冲区中多线程处理所述数据报文。

可选的,该计算设备为内容分发网络中的节点服务器;数据报文中还包括目的节点服务器的IP地址;

处理器700还用于:

根据目的节点服务器的IP地址确定发送域名链;发送域名链为内容分发网络中多个节点服务器构成的一条终点为所述目的节点服务器的路径;

通过发送域名链将数据报文发送至目的节点服务器;目的节点服务器用于将数据报文发送至应用服务器。

基于相同的技术构思,本发明实施例还提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算设备执行上述任一实施方式中的数据发送方法或数据接收方法。

所述非易失性计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1