一种分发资源数据的方法、系统及存储介质与流程

文档序号:16312893发布日期:2018-12-19 05:21阅读:184来源:国知局
一种分发资源数据的方法、系统及存储介质与流程

本申请涉及通信领域,尤其涉及一种分发资源数据的方法、系统及存储介质。

背景技术

peer-to-peer(p2p)是一种分布式网络,p2p网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些资源数据需要由网络提供服务和内容,能被其它对等节点(peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(server),又是资源(服务和内容)获取者(client)。

p2p模式常常被用在共享视频或音频资料的场景(例如优酷等网站的视频资源获取)。各网络节点资源数据时,通常将资源以文件的形式存储在各网络节点上,并将文件拆分成若干个子文件传输给对端节点。由于子文件的格式是与特定的视频编解码协议高度匹配的,因此只能依赖单个的文件cdn服务器(cdn服务器),一旦cdn服务器出现问题就无法保证传输的稳定性。



技术实现要素:

有鉴于此,本申请提供一种分发资源数据的方法、系统及存储介质。

本申请实施例的第一方面,提供一种分发资源数据的方法,所述方法包括步骤:

在资源数据被拆分成若干数据包后,服务器将数据包按照自定义的格式封装,所述自定义的格式中包括第一标识,所述第一标识用于描述每个封装后的数据包的唯一性;

至少两个服务器分别将指定的封装后的数据包分发给各客户端,所述指定的封装后的数据包由传输策略确定。

在一些例子中,所述至少两个服务器分别将指定的封装后的数据包分发给各客户端之后,所述方法还包括:使各客户端建立p2p网络,以使所述客户端向其他客户端基于所述第一标识获取或发送封装后的数据包。

在一些例子中,所述使各客户端建立p2p网络,在所述各服务器向所述客户端分发封装后的数据包的时间或封装后的数据包长度达到预设条件时执行。

在一些例子中,所述方法还包括:

当客户端接收封装后的数据包存在丢包时,客户端基于获取的封装后的数据包的第一标识向所在p2p网络中的客户端获取丢失的数据包。

在一些例子中,所述数据包的大小为1kb。

在一些例子中,所述传输策略包括:

不同服务器向客户端分发不同的指定的封装后的数据包。

在一些例子中,所述第一标识为预定位数的编号,基于所述编号取余后确定各服务器分发的封装后的数据包。

在一些例子中,所述方法还包括步骤:

当客户端接收封装后的数据包存在丢包时,客户端基于接收到的封装后的数据包的第一标识向所述服务器请求所丢失的数据包。

在一些例子中,所述方法还包括步骤:

当客户端接收封装后的数据包存在丢包时,客户端基于接收到的封装后的数据包的第一标识向指定的服务器获取丢失的数据包,指定的服务器基于客户端与各个服务器的传输时延确定。

在一些例子中,所述资源数据包括流媒体数据。

在本申请的第二方面,提供一种分发资源数据的系统,所述系统包括:

至少两个服务器,

所述服务器,用于在资源数据被拆分成若干数据包后,将数据包按照自定义的格式封装;将指定的封装后的数据包分发给各客户端,所述指定的封装后的数据包由传输策略确定,其中,所述自定义的格式中包括第一标识,所述第一标识用于描述每个封装后的数据包的唯一性。

在本申请的第三方面,提供一种计算机存储介质,所述程序被处理器执行时实现如上述第一方面任意一项所述方法的步骤。

本申请通过将资源数据切割成数据包而不是子文件,相比于由于格式与特定的视频编解码协议高度匹配,所以只能依赖单个的文件cdn服务器的子文件,本申请提出的切割后的数据包由自定义格式封装,每个封装后的数据包拥有表征数据包唯一性的第一标识,所述封装后的数据包仅依赖第一标识组合还原成资源数据,所以可以通过至少两个服务器分别向客户端进行数据包的分发数据包,以此提高了数据分发效率,更重要的是,多服务器进行数据分发,在面对存在服务器故障时可以表现出更好的稳定性。

附图说明

图1是本申请实施例提出的一种网络架构;

图2a是本申请实施例提出的一种分发资源数据的方法的流程图;

图2b是本申请实施例提出的一种自定义的封装格式的示意图;

图3a-图3c为本申请实施例中三种不同的服务器架构下搭建的网络;

图4为本申请一应用场景中的网络架构图;

图5为图4应用场景下网络设备的信令交互图;

图6为本申请实施例中的一分发资源数据的系统的示意图;

图7为本申请实施例中的另一分发资源数据的系统的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是本申请实施例提出的一种网络架构,网络架构中包括至少两个服务器设备(111及112)和客户端设备(121、122、123),客户端设备借助服务器设备相互搭建成p2p网络。由于不同的应用环境下,用户对网络设备的功能需求可能不同,因此,每个应用场景中服务器和客户端设备的数量以及功能可以不同。

本申请提出以下技术方案,图2a,为本申请实施例示例性示出的一种分发资源数据的方法的流程图,所述方法包括:

服务器设备(例如图1中的服务器设备111及服务器设备112)在资源数据被拆分成若干数据包后,将所述数据包按照自定义的格式封装(步骤s210),所述自定义的格式中包括第一标识,第一标识用于描述每个数据包唯一性;

至少两个服务器设备(例如图1中的服务器设备111及服务器设备112)分别将指定的封装后的数据包分发给指定的客户端。所述指定的封装后的数据包由传输策略确定(步骤s220);所述客户端可以被运行在所述的客户端设备(例如图1中的客户端设备121、122、123中的至少一个)上。

所述资源数据是指需要分发给客户端的资源,值得说明,资源数据并不局限于以文件形式存在的文件数据(例如常见的音频/视频文件、图片文件、各种office文档等等),对于流媒体数据同样适用,例如直播场景下直播数据等。若所述资源数据为可以为流媒体数据,所述“资源数据被拆分成若干数据包”是实时发生的,无需等待服务器接收到整个资源数据再进行拆分,服务器收到部分资源数据后,可以将部分资源数据拆分成若干数据包。

传统的数据分发的方法中,是将资源数据分成若干子文件(文件块)进行分发,但是文件块的格式是与特定的视频编解码协议高度匹配,并且每个文件块与前后的文件块具有高的关联性,只能由一个服务器进行数据分发,若由多个服务器进行分发,可能导致接收到文件块的客户端无法成功打开/播放所述资源数据。本申请实施例将资源数据拆分成若干“数据包”。所述拆分的过程在执行所述步骤s210之前,首先将资源数据切割成数据包而不是文件块,文件块的大小可能在上百kb,而相对于文件块来说,数据包的可拆分粒度更小,可以作为更小的传输单元在网络中传输,例如在考虑切割后的数据包的大小时,可以结合互联网链路层的传输特性来设计。

在s210的将所述数据包按照自定义的格式封装阶段,为了使拆分后的数据包能够被客户端接收后有序组装,服务器可以为每个数据包编号,作为描述每个数据包唯一标识的字段,所述唯一标识被称为第一标识,一些例子中,所述第一标识可以是同一资源数据中用于区分其他数据包的唯一标识。某些例子中,可以自定义数据包的格式来实现此目的,自定义的封装格式中可以规定特定字段作为此唯一标识。例如,参照图2b,为本申请实施例示例性示出的一种自定义数据包的格式,所述第一字段231用于描述数据包的长度,所述第二字段232写入数据包的第一标识,所述第三字段233为数据包的内容,其中,所述第一标识可以为预定位数的编号,例如32位或64位等,并且所述编号具有连续且自增一的特点,例如:编号为10002的数据包的前一数据包的编号为10001,后一数据包的编号为10003。当然,并不排除其他方式来实现表征数据包唯一性的目的。

本申请实施例所述的服务器具有向客户端分发数据包的功能。所述服务器可以由一种或多种实体承担,这取决于设计者对不同网络设备的角色划分。在一些例子中,若所述服务器由一种实体承担,所述的服务器具有向客户端分发数据包的功能,且至少存在一台服务器还具有收集资源数据以及将资源数据拆分成数据包的功能。例如参照图3a,所述第一服务器311及第一服务器312集成了收集资源数据、拆分数据包及分发资源数据的功能。在一些例子中,所述服务器由多种实体承担。一些例子中,参照图3b,第二服务器集成了收集资源数据和拆分数据包的功能,第一服务器321及322作为分发数据包的服务器,图3b所述的网络架构中包括至少两台第一服务器。一些例子中,参照图3c,第三服务器承担收集资源数据的角色(可以相当于传统技术中的直播服务器),第二服务器承担拆分数据包的角色(可以被称为切片服务器),第一服务器331及332作为向对等节点分发数据包的角色(可以相当于传统技术中的cdn服务器),图3c所述的网络架构中包括至少两台第一服务器。需要指出,除了图3a、图3b、图3c所列举的示例以外,并不排除有其他形式的网络架构或服务器功能。需要说明的是,本申请实施例提出的至少两个服务器,可以指所有服务器属于同一个服务商,或属于不同服务商,以属于不同服务商为例,其中一个承担数据分发任务的服务器是a服务商的,另一个承担数据分发任务的服务器是b服务器商的。

在s220阶段,一些例子中,各服务器可以将指定的封装后的数据包发送给每个客户端。当然,设计者也可以针对不同的业务场景设置不同的传输策略,例如,各服务器可以只发送给指定的其中一些客户端。在一个例子中,客户端可以向服务器主动请求资源数据,并告知服务器表征资源数据唯一性的第二标识。以直播场景为例,所述第二标识可以包括直播场景中的直播间的标识(例如频道号、直播流标识及直播间主播标识等)或/和客户端标识(例如客户端账号或id)。服务器根据第二标识来确定将数据包发送给哪些客户端。例如,以直播场景为例,可以是服务器接收到观众客户端向服务器发送获取资源数据的指令后,执行步骤s220,所述获取资源数据的指令可以携带观众客户端的直播间标识,服务器根据观众客户端所在直播间标识来确定将数据包发送给哪些观众客户端。需要说明的是,若上述指令中携带的是观众客户端的客户端标识,服务器可以通过所述客户端标识确定所述观众客户端所在的直播间。

在一些例子中,s220阶段,各服务器向客户端分发的数据包可以相同也可以不同。各服务器向客户端分发的数据包不同的情况,可以如图1中的服务器111分发第一标识为1-10的数据包,服务器112分发第一标识为11-20的数据包。一些例子中,可以基于传输策略确定各服务器分发哪些数据包。当各服务器向客户端分发不同的指定数据包时,分发效率会大大提高。

具体的,s220阶段,在一些例子中,所述传输策略可以是:服务器可以客户端的状态信息(包括设备配置等状态信息)、网络状态信息以及服务器自身的状态信息(包括设备配置等状态信息),调整每个服务器分发数据包的情况。需要说明的是,本申请实施例提出的网络状态信息可以包括服务器与客户端之间的网络时延迟或/和客户端所在设备的网络环境等信息,其中,所述网络环境可以包括网络运营商或/和网络连接方式等,其中,所述网络连接方式包括:网线、wifi和/或移动网络等;本申请实施例提出的设备配置信息可以指客户端所在设备或服务器设备的硬件配置信息,硬件配置越高的服务器设备可以分担更多的数据分发任务。以状态信息为网络信息中的时延为例,若客户端a与服务器1的网络时延大于客户端a与服务器2的网络时延,则服务器2分担更多的给客户端a分发数据的任务,以达到最优的数据分发效果。

具体的,s220阶段,在一些例子中,各按照自定义格式封装的数据包均包括用于描述每个数据包唯一性的第一标识,所述第一标识可以是预定位数的编号,所述传输策略还可以是:根据cdn服务器的数量,对每个数据包的编号对cdn服务器的数据进行求余后,确定各cdn服务器将分发的数据包。例如:一资源数据被拆分成了编号为1-20的数据包,cdn服务器共5个,对各cdn服务器进行编号分别是cdn服务器1-5,用每个数据包的编号对cdn服务器的数据进行求余,根据余数将各数据包分组,1/5的余数是1,为第1组,编号为1的数据包由cdn服务器1进行分发;2/5的余数是2,为第2组,编号为2的数据包由cdn服务器2进行分发;5/5的余数是0,为第0组,编号为5的数据包由cdn服务器5进行分发;以此类推,可以确定各数据包的分组,及各cdn服务器分发的数据。当然可以理解,本申请不一定用每个数据包的编号对cdn服务器的数据进行求余,也可以用每个数据包的编号对一个预设的数字求余,所述预设的数字可以根据资源数据的码率或分辨率或清晰度确定,所述预设的数字也可以是分组的组数,具体求余的策略不做限定。通过上述使各服务器分发求余的数据包的方式,可以进一步提高数据分发效率,使客户端更快的打开/播放所述资源数据。以所述资源数据为视频数据为例,所述视频数据由多帧图像帧组成,而本申请将每帧图像帧拆分成若干数据包,当多个服务器向同一客户端分发每帧图像的不同数据包时,客户端可以快速组装得到每一帧图像,以提高客户端播放资源数据的效率,尤其对于视频数据,获得第一帧图像的速率远远高于各服务器分别分发连续几帧图像帧拆分成的数据包,如此可以明显提高起播速度,减少延时。需要说明的是,各服务器分发的数据包的组数可以不限,各服务器分发的数据包的组数可以相同也可以不同,例如a服务器分发余数为0、1、2及3共4组数据包;b服务器分发余数为4及5共2组数据包。

在一些例子中,当多个服务器分发数据时,若其中一服务器发生异常,可以紧急从其他服务器获取发生异常的服务器本该分发的数据包。例如:将数据包的编号对10进行求余,数据包被分为10组,余数为0-2的数据包从a服务商的服务器获取,余数为3-5的数据包从b服务商的服务器获取,余数为6-10的数据包从c服务商获取,当b服务器发生故障时,客户端可以紧急从a服务商或c服务商的服务器获取余数为3-5的数据包。

在s220阶段,各服务器分别将指定的封装后的数据包分发给各客户端数据包的传输时,不可能百分之百的能够完成,因为物理线路故障、设备故障、病毒攻击、路由信息错误等原因,总会有一定的损失,客户端接收所述数据包失败的情况,被称为“丢包”。当客户端发现数据包丢失时,可以向所述服务器请求丢失的数据包。

在一些例子中,当客户端接收所述数据包失败时,客户端可以基于所述第一标识向任一服务器获取相应的数据包。具体的,客户端可以基于获取的数据包的第一标识,判断丢失的数据包的第一标识,向任一服务器获取丢失的数据包。例如,所述第一标识为预定位数的编号,当客户端接收到的数据包的编号为:10000、10002及10003时,由于数据包的编号是连续增一的,可以判断出编号为10001的数据包丢失,并向任一服务器请求编号为10001的数据包。在一些例子中,当客户端接收所述数据包失败时,客户端可以基于所述第一标识向指定的服务器获取相应的数据包,指定的服务器基于所述编号取余后确定。例如:客户端接收所述数据包时,发现第一标识为20的数据包丢失,以用编号对服务器数量进行求余,且服务器数据量为5为例,20/5的余数是0,则可以向分发余数为0的数据包的服务器请求数据包。

在一些例子中,当客户端接收所述数据包失败时,客户端可以基于所述第一标识向指定的服务器获取相应的数据包。一些例子中,所述指定的服务器基于客户端与各个服务器的网络状态确定,例如:所述指定服务器可以是与客户端之间传输时延最小的服务器。具体的,可以计算每个服务器与客户端之间的时延,选择与客户端之间传输时延最小的服务器为指定服务器。以两个服务器为例,客户端a与服务器1的传输时延大于客户端a与服务器2的的传输时延,则可以向服务器2请求丢失的数据包。一些例子中,所述指定的服务器可以是设备配置信息最佳的服务器。需要说明的是,本申请并不限制确定指定服务器的方式。

在一些例子中,图2a所述数据分发的方法可以应用在作为p2p网络中对等节点(客户端)获取资源数据的方式。具体的,步骤s220之后,各客户端可以构建p2p网络,并在各客户端之间交互所述资源数据拆分的数据包。作为例子,客户端之间交互所述资源数据拆分的数据包可以是指,一些客户端在发出请求某第一标识的消息后,已获取这些第一标识的数据包的客户端可以响应该请求,将数据包发送给请求方。由于各个客户端在p2p网络中处于地位均等的角色,因此某个时刻的请求方可以在下一时刻成为响应方,因此,p2p网络中的客户端之间的数据包交互可以是双向的,而并非一定是单向传输。本申请实施例中,可以由服务器通知各客户端构建p2p网络,也可以由客户端向服务器发出构建p2p网络的请求。

所述构建p2p网络的时机本申请并不作限定。在一些例子中,可以是在服务器收到第二标识即通知各客户端,也可以是在向客户端传输一段时间数据包后再通知各客户端,也可以是在所述服务器向所述客户端发送数据包的时间或数据包长度达到预设条件时,通知各客户端建立p2p网络,例如,一客户端进入一直播间后,可以先向服务器请求数据包,当服务器向该客户端发送的数据包的时间或数据包长度达到预设条件时(例如:客户端缓存的数据包支持播放的时间达到预定条件),通知该客户端与其他客户端建立p2p网络,以使该客户端通过p2p网络向其他客户端请求数据包,或该客户端通过p2p网络向其他客户端发送数据包。作为例子,相关的控制构建p2p网络的控制策略可以在服务器向客户端下发配置信息时下发给客户端,当然,也可以提前在客户端中设置好相关的控制策略。仍以直播场景为例,一些例子中,客户端进入某一频道(直播间),向服务器请求频道相关的配置信息时将建立p2p网络的控制策略发送给客户端、一些例子中,客户端向服务器注册时,服务器将建立p2p网络的控制策略发送给客户端。

在构建p2p网络时,不同的应用实例中,建立连接通道的方式可以有所不同。例如,一些例子中可以参照现有技术的p2p网络中对等节点建立udp通道的方式来实现;另一些例子中,可以针对实际的场景设计新的流程。例如,所有的客户端向服务器发起注册请求,将资源数据有关的一些信息以及建立连接所必须的信息(例如网络连接地址、端口号等)通知给服务器,这些信息可以携带在注册请求中、也可以以在其他消息中发送给服务器。服务器基于这些与资源数据有关的信息,通知哪些客户端之间需要建立网络连接,形成对等节点。

在一些例子中,数据包的大小可以与p2p网络中各连接通道的传输带宽匹配。举例来说,p2p网络中各对等节点之间建立的通道可以是udp通道,每个数据包的大小可以是1kb左右,约等于mtu(互联网链路层最大传输单元),这样,每个数据包可以由1个udp包传输,不需要出现基于udp包拆包,因此比拆分文件的方式效率更高,从而使得具有更广泛的适用场景。

在一些例子中,在客户端建立p2p网络后,p2p网络中的一些客户端可以仅向p2p网络中的其他客户端请求数据包;也可以从服务器请求部分数据包,从p2p网络中的其他客户端请求另外一部分数据包,本申请实施例不限制客户端建立p2p网络后,请求数据包的对象。以客户端建立p2p网络后,客户端请求数据包的对象为服务器和p2p网络中的其他客户端为例,参照图3c,若第一标识为编号,且将数据包求余后分成10组,客户端342及客户端343从cdn服务器331及332获取数据包;客户端341与客户端342及客户端343建立p2p网络后,其中客户端342及客户端343为客户端341的其他客户端。客户端341从cdn服务器331获取余数为0-2的数据包,从cdn服务器332获取余数为3-5的数据包,并根据自身已向cdn服务器请求余数0-5的数据包,则客户端341从其他客户端342和/或343获取余下的数据包,即余数为6-10的数据包。需要说明的是,客户端具体从服务器获取数据包和/或从p2p网络中的其他客户端获取数据包的数量,可以依据各客户端之间及客户端与服务器之间的网络状态,或/和各设备的配置信息确定,本申请并不做限制。

在一些例子中,在客户端建立p2p网络后,所述客户端接收服务器分发的封装后的数据包存在丢包时,客户端可以基于获取的封装后的数据包的第一标识向所在p2p网络中的客户端获取丢失的数据包。例如:所述第一标识为预定位数的编号,当客户端接收到的数据包的编号为:10000、10002及10003时,由于数据包的编号是连续增一的,可以判断出编号为10001的数据包丢失,则向p2p网络中的指定或任一客户端请求所述丢失的数据包。可以是同一p2p网络中网络状态信息最佳的其他客户端,例如网络状态信息为网络时延,所述指定客户端可以是同一p2p网络中与所述客户端网络时延最小的其他客户端,也可以是同一p2p网络中设备配置最佳的其他客户端,还可以是以上因素的综合考虑;本申请并不限制确定指定客户端的方式。

在一些例子中,以流媒体数据为直播场景中的直播视频流为例。图4是一个直播场景下的网络环境。图4的网络中主播客户端与直播服务器建立tcp连接通道,直播服务器与切片服务器相连,切片服务器与两个cdn服务器411及412相连。参照图5,为本申请示例性示出的一种直播中进行数据分发的方法的流程图。

s500,为观众客户端注册阶段。

观众客户端向直播服务器注册时,将本端设备的ip地址、客户端的端口号、所在直播间的标识发送给直播服务器。

s501,主播客户端将直播视频流发送给直播服务器,直播视频流携带相应的第二标识。

s502,直播服务器在收到主播客户端发送的直播视频流后,转发给切片服务器。

s503,切片服务器将直播视频流切割成1kb大小的数据包,并将每个数据包编号后按照自定义的格式封装。

s504a,封装后的数据包被切片服务器发送给cdn服务器411。

s504a,封装后的数据包被切片服务器发送给cdn服务器412。

观众客户端向cdn服务器411/412请求所需要获取的直播视频流后,

s505a,cdn服务器411将指定的封装后的第一类数据包发送给观众客户端。

s505b,cdn服务器412将指定的封装后的第二类数据包发送给观众客户端。

具体的,在一个例子中,所述观众客户端可以同时从cdn服务器411获取第一类数据包,及从cdn服务器412获取第二类数据包,并根据所述第一类数据包及第二类数据包的第一标识,组装得到资源数据。所述第一类数据包不同于所述第二类数据包,一些例子中,可以是根据上述实施例示出的求余的方式,根据余数将数据包分为第一类数据包和第二数据包。

在一些例子中,观众客户端从cdn服务器411及cdn服务器412获得数据包后,还可以执行s506,建立p2p网络阶段。

为了保证直播视频流播放的及时性,cdn服务器411及cdn服务器412在将数据包发送给客户端一段时间后,直播服务器根据第二标识,例如直播间标识,通知在同一直播间的观众客户端建立p2p连接通道。本例中,为了保证直播视频流的观看效果,可以在cdn服务器411及cdn服务器412向各客户端发送一段时间数据包后,各观众客户端再建立p2p网络。

s507,在建立p2p网络后,观众客户端根据预先约定的策略与其他所述p2p网络中的客户端交互数据包。

与前述分发资源数据的方法的实施例相对应,本申请还提供了分发资源数据的系统600的实施例。

参见图6,所述系统600包括:

第一服务器601,用于在资源数据被拆分成若干数据包后,将数据包按照自定义的格式封装,所述自定义的格式中包括第一标识,所述第一标识用于描述每个封装后的数据包的唯一性;将指定的封装后的数据包分发给各客户端,所述指定的封装后的数据包由传输策略确定。

第二服务器602,用于在资源数据被拆分成若干数据包后,将数据包按照自定义的格式封装,所述自定义的格式中包括第一标识,所述第一标识用于描述每个封装后的数据包的唯一性;将指定的封装后的数据包分发给各客户端,所述指定的封装后的数据包由传输策略确定。

参照图7,在一些例子中,所述系统600还包括客户端603,所述客户端用于与其他客户端建立p2p网络,所述客户端可以向其他客户端基于所述第一标识获取或发送封装后的数据包。

在一些例子中,所述各客户端建立p2p网络,在所述各服务器向所述客户端分发封装后的数据包的时间或封装后的数据包长度达到预设条件时执行。

在一些例子中,当客户端603接收封装后的数据包存在丢包时,客户端基于获取的封装后的数据包的第一标识向所在p2p网络中的客户端获取丢失的数据包。

在一些例子中,所述数据包的大小为1kb。

在一些例子中,所述传输策略包括:不同服务器向客户端分发不同的指定的封装后的数据包。

在一些例子中,所述第一标识为预定位数的编号,基于所述编号取余后确定各服务器分发的封装后的数据包。

在一些例子中,当客户端603接收封装后的数据包存在丢包时,客户端基于接收到的封装后的数据包的第一标识向所述服务器请求所丢失的数据包。

在一些例子中,当客户端603接收封装后的数据包存在丢包时,客户端基于基于接收到的封装后的数据包的第一标识向指定的服务器获取丢失的数据包,指定的服务器基于客户端与各个服务器的传输时延确定。

在一些例子中,所述资源数据包括流媒体数据。

在本申请实施例中,计算机可读存储介质可以是多种形式,比如,在不同的例子中,所述机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。特殊的,所述的计算机可读介质还可以是纸张或者其他合适的能够打印程序的介质。使用这些介质,这些程序可以被通过电学的方式获取到(例如,光学扫描)、可以被以合适的方式编译、解释和处理,然后可以被存储到计算机介质中。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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