数据传输方法、装置、服务器及可读存储介质与流程

文档序号:14324916阅读:192来源:国知局

本发明涉及通信技术领域,具体而言,涉及一种数据传输方法、装置、服务器及可读存储介质。



背景技术:

现有的服务器与用户终端之间一般通过tcp协议或者udp协议进行数据传输,经发明人研究发现,如果网络出现丢包、延迟的情况,如果用户终端没有反馈,则会一直发送同一数据包,从而导致数据包下载缓慢,耗时长,效率不高。



技术实现要素:

为了克服现有技术中的上述不足,本发明的目的在于提供一种数据传输方法、装置、服务器及可读存储介质,能够有效降低公网丢包延迟的几率,提高数据下载速度。

为了实现上述目的,本发明较佳实施例采用的技术方案如下:

本发明较佳实施例提供一种数据传输方法,应用于与用户终端通信连接的服务器,所述方法包括:

检测所述用户终端的网络环境数据,所述网络环境数据包括网络延迟数据和/或网络丢包率;

判断所述网络环境数据是否大于预设阈值;

若是,则根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端。

在本发明较佳实施例中,所述检测所述用户终端的网络环境数据包括:

向所述用户终端发送携带有网络检测数据包的检测请求,以使所述用户终端返回携带有所述网络检测数据包的检测响应消息以对所述检测请求进行响应;

根据所述检测请求和所述检测响应信息获取所述用户终端的网络环境数据。

在本发明较佳实施例中,所述根据所述检测请求和所述检测响应信息获取所述用户终端的网络环境数据,包括:

根据所述检测请求和所述检测响应信息获取所述用户终端的网络延迟数据;和/或

根据所述检测请求和所述检测响应信息获取所述用户终端的网络丢包率;

根据所述网络延迟数据和/或所述网络丢包率确定所述用户终端的网络环境数据。

在本发明较佳实施例中,所述网络检测数据包包含第一时间戳,所述第一时间戳用于表示所述检测请求的发送时间;

所述根据所述检测请求和所述检测响应信息获取所述用户终端的网络延迟数据,包括:

获取接收到所述检测请求对应的检测响应消息时的第二时间戳以及所述检测响应消息中所述网络检测数据包包含的所述第一时间戳,并根据所述第一时间戳和所述第二时间戳计算所述网络检测数据包的收发时间间隔;

根据至少一个收发时间间隔计算所述用户终端的网络延迟数据。

在本发明较佳实施例中,所述根据所述检测请求和所述检测响应信息获取所述用户终端的网络丢包率,包括:

统计所述检测请求的发送个数以及所述检测响应消息的接收个数;

根据所述发送个数和所述接收个数计算所述用户终端的网络丢包率。

在本发明较佳实施例中,所述待发送的数据包包括基于预设先后顺序的多个数据包,所述根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端,包括:

基于所述预设先后顺序分别将同一数据包在一预设时间间隔内多次发送给所述用户终端;或者

在检测数据包丢包时,同时向所述用户终端发送所述数据包以及与所述数据包相邻顺序的下一数据包,以此类推,直到在检测到所述用户终端反馈的接收信息时,向所述用户终端发送检测到所述用户终端反馈的接收信息前发送的最后一个数据包。

在本发明较佳实施例中,所述服务器中配置有所述网络丢包率与数据包发送次数的对应关系,或者所述网络延迟数据与数据包发送次数的对应关系,或者所述网络丢包率和所述网络延迟数据的加权数据与数据包发送次数的对应关系。所述基于所述预设先后顺序分别将同一数据包在一预设时间间隔内多次发送给所述用户终端,包括:

根据当前的网络丢包率获取对应的数据包发送次数,或者根据当前的网络延迟数据获取对应的数据包发送次数,或者根据所述网络丢包率和所述网络延迟数据的加权数据获得对应的数据包发送次数;

基于所述预设先后顺序分别将同一数据包在一预设时间间隔内按照所述数据包发送次数发送给所述用户终端。

本发明较佳实施例还提供一种数据传输装置,应用于与用户终端通信连接的服务器,所述装置包括:

检测模块,用于检测所述用户终端的网络环境数据,所述网络环境数据包括网络延迟数据和/或网络丢包率。

判断模块,用于判断所述网络环境数据是否大于预设阈值。

调整发送模块,用于若是,则根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端。

本发明较佳实施例还提供一种服务器,所述服务器包括:

存储介质;

处理器;以及

数据传输装置,所述装置存储于所述存储介质中并包括有由所述处理器执行的软件功能模块,所述装置包括:

检测模块,用于检测用户终端的网络环境数据,所述网络环境数据包括网络延迟数据和/或网络丢包率。

判断模块,用于判断所述网络环境数据是否大于预设阈值。

调整发送模块,用于若是,则根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端。

本发明较佳实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序运行时实现上述的数据传输方法。

相对于现有技术而言,本发明具有以下有益效果:

本发明实施例提供一种数据传输方法、装置、服务器及可读存储介质,通过服务器检测用户终端的网络环境数据,并在所述网络环境数据大于预设阈值时,根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端。由此,能够有效降低公网丢包延迟的几率,提高数据下载速度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本发明较佳实施例提供的数据传输方法的一种应用场景示意图;

图2为本发明较佳实施例提供的数据传输方法的一种流程示意图;

图3为图2中所示的步骤s210包括的各个子步骤的一种流程示意图;

图4为本发明较佳实施例提供的数据传输装置的一种功能模块图;

图5为本发明较佳实施例提供的服务器的一种结构示意框图。

图标:100-服务器;110-总线;120-处理器;130-存储介质;140-总线接口;150-网络适配器;160-用户接口;200-数据传输装置;210-检测模块;220-判断模块;230-调整发送模块;300-用户终端。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参阅图1,为本发明较佳实施例提供的数据传输方法的一种应用场景示意图。本实施例中,所述数据传输方法应用于与用户终端300通信连接的服务器100。

所述用户终端300可以通过诸如有线或无线网络等方式发送或接收信号,或可以在诸如存储器中将信号处理或存储为物理存储状态。每个用户终端300可以是包括硬体、软体或内嵌逻辑元件或者两个或多个此类元件的组合的电子装置,并能够执行由用户终端300实施或支援的合适的功能。可选地,所述用户终端300可以是一种具有无线收发功能的设备,包括室内或室外、手持、穿戴或车载设备。例如,所述用户终端300可以是手机(mobilephone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtualreality,vr)终端设备、增强现实(augmentedreality,ar)终端设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端、智慧家庭(smarthome)中的无线终端等等。本申请的实施例对应用场景不做限定。

根据本发明的一些实施例,用户终端300可以包括:包含应用处理部和射频/数位讯号处理器的处理装置;显示幕;可包含物理键、覆盖在显示幕上的触摸键或它们的组合的袖珍键盘;用户识别模组卡;可以包含rom、ram、快闪存储器或它们的任意组合的存储器装置;wi-fi和/或蓝牙接口;无线电话接口;带有关联电池的电源管理电路;usb接口和连接器;带有关联麦克风、扬声器和耳机插孔的音讯管理系统;以及各种诸如照相机、全球定位系统、加速器等的可选择的附属部件。

在本发明实施例中,所述服务器100应被理解为提供处理、资料库、通讯设施的业务点。举例而言,服务器100可以指具有相关通信和资料存储和资料库设施的单个的物理处理器,或它可以指联网或集聚的处理器、相关网路和存放装置的集合体,并且对软体和一个或多个资料库系统和支援服务器100所提供的服务的应用软体进行操作。服务器100可以在配置或性能上差异很大,但是服务器100一般可以包括一个或多个中央处理单元和存储单元。服务器100还可以包括一个或多个大型存放区设备、一个或多个电源、一个或多个有线或无线网络组件、一个或多个输入/输出组件、或一个或多个作业系统,诸如,windowsserver、macosx、unix、linux、freebsd。

请参阅图2,为本发明较佳实施例提供的数据传输方法的一种流程示意图,所述方法由图1中所示的服务器100执行。所应说明的是,本发明实施例提供的数据传输方法不以图2及以下所述的具体顺序为限制。所述方法的具体流程如下:

步骤s210,检测用户终端300的网络环境数据。

本实施例中,所述网络环境数据可包括网络延迟数据和/或网络丢包率。具体地,请参阅图3,作为一种实施方式,所述步骤s210可包括以下子步骤:

子步骤s211,向所述用户终端300发送携带有网络检测数据包的检测请求。

本实施例中,所述服务器100可以实时或者每隔预设时间段向所述用户终端300发送检测请求,所述检测请求携带有用于检测所述用户终端300的网络环境数据的网络检测数据包。所述用户终端300在接收到所述网络检测数据包后向所述服务器100返回携带有所述网络检测数据包的检测响应消息以对所述检测请求进行响应。

子步骤s212,根据所述检测请求和所述检测响应信息获取所述用户终端300的网络环境数据。

详细地,所述服务器100可以根据所述检测请求和所述检测响应信息获取所述用户终端300的网络延迟数据和/或根据所述检测请求和所述检测响应信息获取所述用户终端300的网络丢包率,并根据所述网络延迟数据和/或所述网络丢包率确定所述用户终端300的网络环境数据。

其中,所述网络检测数据包包含第一时间戳,所述第一时间戳用于表示所述检测请求的发送时间,所述网络延迟数据的获取方式可以是,服务器100获取接收到所述检测请求对应的检测响应消息时的第二时间戳以及所述检测响应消息中所述网络检测数据包包含的所述第一时间戳,并根据所述第一时间戳和所述第二时间戳计算所述网络检测数据包的收发时间间隔,再根据至少一个收发时间间隔计算所述用户终端300的网络延迟数据。例如,所述第一时间戳为12:00:00:00,所述第二时间戳为12:00:00:03,那么所述网络延迟数据则为30毫秒。

进一步地,所述网络丢包率的获取方式可以是,服务器100统计所述检测请求的发送个数以及所述检测响应消息的接收个数,然后根据所述发送个数和所述接收个数计算所述用户终端300的网络丢包率。例如,所述服务器100发送了100个所述检测请求,而接收到的所述检测响应消息的个数为50个,那么所述网络丢包率则为50/100=50%。

步骤s220,判断所述网络环境数据是否大于预设阈值。

本实施例中,所述网络环境数据可以仅采用所述网络丢包率,也可以仅采用所述网络延迟数据,或者还可以同时采用所述网络丢包率和所述网络延迟数据,具体可以根据实际需求进行选择。如果所述网络环境数据仅采用所述网络丢包率,那么则判断所述网络丢包率是否大于预设阈值(例如50%);如果所述网络环境数据仅采用所述网络延迟数据,则判断所述网络延迟数据是否大于预设阈值(例如100ms),如果所述网络环境数据同时采用所述网络丢包率和所述网络延迟数据,那么则同时判断判断所述网络丢包率是否大于预设阈值(例如50%),且所述网络延迟数据是否大于预设阈值(例如100ms)。

步骤s230,若是,则根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端300。

本实施例中,所述待发送的数据包可包括基于预设先后顺序的多个数据包,例如,按照先后顺序,可包括数据包a,数据包b,数据包c,数据包d......也就是说,最先发送的是数据包a,接着是数据包b、数据包c、数据包d......以此类推。

作为一种实施方式,如果所述网络丢包率大于预设阈值,或者所述网络延迟数据大于预设阈值,又或者所述网络丢包率和所述网络延迟数据都大于预设阈值时,所述服务器100基于所述预设先后顺序分别将同一数据包在一预设时间间隔内多次发送给所述用户终端300。例如,首先向所述所述用户终端300发送数据包a,如果在预设时间内没有接收到所述用户终端300反馈的接收信息,则连续将所述数据包a发送两次给所用户终端300,如果依然没有接收到用户终端300的反馈,则连续将所述数据包a发送三次给所用户终端300,以此类推,从而减小丢包的概率。

可选地,所述服务器100中还可以配置有所述网络丢包率与数据包发送次数的对应关系,例如,所述网络丢包率为50%时,所述数据包发送次数为2,之后所述网络丢包率每增加10%,所述数据包发送次数增加1,或者所述网络延迟数据与数据包发送次数的对应关系,例如,所述网络延迟数据为100ms时,所述数据包发送次数为2,之后所述网络延迟数据每增加10ms,所述数据包发送次数增加1,又或者所述网络丢包率和所述网络延迟数据的加权数据与数据包发送次数的对应关系,例如,所述网络丢包率和所述网络延迟数据的加权因子各为0.5,所述网络丢包率为50%的加权值为1,所述网络延迟数据为100ms时的加权值为1,之后所述网络延迟数据每增加10ms,对应的加权值增加1,所述网络丢包率每增加10%,对应的加权值增加1,也即所述网络丢包率为50%,所述网络延迟数据为100m时的加权数据为2,加权数据2对应的数据包发送次数为4,此后加权数据每增加1,所述数据包发送次数增加1。

基于上述对应关系,所述服务器100可根据当前的网络丢包率获取对应的数据包发送次数,或者根据当前的网络延迟数据获取对应的数据包发送次数,或者根据所述网络丢包率和所述网络延迟数据的加权数据获得对应的数据包发送次数,并基于所述预设先后顺序分别将同一数据包在一预设时间间隔内按照所述数据包发送次数发送给所述用户终端300,从而实现了根据网络丢包率和/或网络延迟数据动态调整数据包发送次数,从而能够有效降低公网丢包延迟的几率,提高数据下载速度。

作为另一种实施方式,如果在检测数据包丢包时,可同时向所述用户终端300发送所述数据包以及与所述数据包相邻顺序的下一数据包,以此类推,直到在检测到所述用户终端300反馈的接收信息时,向所述用户终端300发送检测到所述用户终端300反馈的接收信息前发送的最后一个数据包。例如,服务器100通过公网向所述用户终端300发送数据包a,在限定的时间内(比如50ms),如果收到用户终端300的反馈,则向用户终端300发送数据包b。如果在限定的时间内,依然没有收到用户终端300的反馈,则向用户终端300同时发送数据包a和b,继续在限定时间内等待用户终端300的反馈,如果用户终端300仍然没有反馈,则继续向用户终端300发送数据包a、b、c,如果用户终端300反馈接收信息,则只向用户终端300发送数据包c,以此类推,从而能够有效降低公网丢包延迟的几率,提高数据下载速度。

进一步地,请参阅图4,本发明较佳实施例还提供一种数据传输装置200,所述装置可以包括:

检测模块210,用于检测所述用户终端300的网络环境数据,所述网络环境数据包括网络延迟数据和/或网络丢包率。

判断模块220,用于判断所述网络环境数据是否大于预设阈值。

调整发送模块230,用于若是,则根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端300。

可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。

进一步地,本发明较佳实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序运行时控制所述可读存储介质所在服务器100执行上述的数据传输方法。

进一步地,请参阅图5,为本发明实施较佳实施例提供的服务器100的一种结构示意框图。如图5所示,服务器100可以由总线110作一般性的总线体系结构来实现。根据服务器100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,服务器100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现服务器100中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。

可以替换的,服务器100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。

可替换的,服务器100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的asic(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,服务器100可以使用下述来实现:一个或多个fpga(现场可编程门阵列)、pld(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本发明通篇所描述的各种功能的电路的任意组合。

其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、dsp处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。

在图5中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于服务器100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。

所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述数据传输装置200,所述处理器120可以用于执行所述数据传输装置200。

综上所述,本发明实施例提供一种数据传输方法、装置、服务器100及可读存储介质,通过服务器100检测用户终端300的网络环境数据,并在所述网络环境数据大于预设阈值时,根据所述网络环境数据调整待发送的数据包的发送数目,并基于调整后的发送数目将所述待发送的数据包发送给所述用户终端300。由此,能够有效降低公网丢包延迟的几率,提高数据下载速度。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等

需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

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