发明内容
有鉴于此,本发明实施例提供一种网络终端及其数据包的发送方法,避免数据包在未被响应之前因重发而占用大量的网络资源。
本发明采用的一个技术方案是:提供一种数据包的发送方法,包括:建立缓存区,以存储各个应用程序向网络发送的数据包;检测当前缓存区中数据包的第一字节之和,并判断第一字节之和是否大于或等于预置的第一容量阈值;在判定字节之和大于或等于第一容量阈值时,向网络重复发送一个字节最小的数据包,并判断网络对字节最小的数据包的响应时间是否小于或等于预置的时间阈值;若是,则按照存储于缓存区的时间顺序,将缓存区中的数据包依次发送给网络。
其中,将缓存区中的数据包依次发送给网络的步骤之后,还包括:检测当前缓存区中数据包的第二字节之和,并在第二字节之和小于或等于预置的第二容量阈值时,停止向网络重复发送字节最小的数据包,并通知应用程序继续生成数据包,第二容量阈值小于第一容量阈值。
其中,在建立缓存区的步骤之前,所述方法包括:预置应用程序在发送出数据包之后且被网络响应之前禁止再次发送数据包。
其中,向网络重复发送一个字节最小的数据包的步骤之前,所述方法还包括:通知所有应用程序停止向网络发送数据包,或者缓存区停止存储接收到的应用程序发送的数据包。
其中,将缓存区中的数据包依次发送给网络的步骤之后,所述方法还包括:删除已经被网络响应的数据包。
本发明采用的另一个技术方案是:提供一种网络终端,包括:收发模块,用于接收各个应用程序向网络发送的数据包;存储模块,用于存储收发模块接收到的数据包;处理模块,用于检测当前存储模块中数据包的第一字节之和,并判断第一字节之和是否大于或等于预置的第一容量阈值;收发模块还用于在处理模块判定字节之和大于或等于第一容量阈值时,向网络重复发送一个字节最小的数据包;处理模块进一步用于判断网络对字节最小的数据包的响应时间是否小于或等于预置的时间阈值,若是,则处理模块按照数据包存储于存储模块的时间顺序,控制收发模块将存储模块中的数据包依次发送给网络。
其中,在控制收发模块将存储模块中的数据包依次发送给网络之后,处理模块进一步用于检测当前存储模块中数据包的第二字节之和,并在判定第二字节之和小于或等于预置的第二容量阈值时,控制收发模块停止向网络重复发送字节最小的数据包,并控制收发模块通知应用程序继续生成数据包,第二容量阈值小于第一容量阈值。
其中,处理模块还用于控制收发模块在应用程序在发送出数据包之后且被网络响应之前禁止再次发送数据包。
其中,在控制收发模块停止向网络重复发送字节最小的数据包之前,处理模块还用于控制收发模块通知所有应用程序停止向网络发送数据包,或者控制收发模块停止接收应用程序发送的数据包。
其中,在控制收发模块将存储模块中的数据包依次发送给网络之后,处理模块进一步用于控制存储模块删除已经被网络响应的数据包。
本发明实施例通过建立缓存区以存储应用程序向网络发送的数据包,并在检测到缓存区中数据包的字节之和大于或等于预置的容量阈值时向网络重复发送一个字节最小的数据包,而后在网络的响应时间小于或等于预置的时间阈值时,才将数据包按照时间顺序依次发送给网络,能够避免数据包在未被响应之前重发,避免占用大量的网络资源。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例的技术方案进行清楚、完整地描述。
图1是本发明的数据包的发送方法一实施例的流程图。如图1所示,本实施例的数据包的发送方法包括以下步骤:
步骤S11:建立缓存区,以存储各个应用程序向网络发送的数据包。
缓存区可以为移动终端内存的一部分,所述内存既包括物理内存也包括云存储,缓存区的作用是将移动终端发送给网络的数据包进行暂时存储,即网络仅能从缓存区接收应用程序产生的数据包。
对于数据包在缓存区中的存储格式可以为:应用程序的名称--数据包的内容--被存储的时间,例如,对于应用程序为微信,其发送的数据包在缓存区中可保存为:微信--数据包的字符串--时间。
所述移动终端可以为PDA(Personal Digital Assistant,个人数字助理或平板电脑)、便携式通信装置等任何具有网络连接功能的终端,所述网络可以为4G(The 4th Generation mobile communication technology,第四代移动通信技术)网络等远程通信网络,也可以为Wi-Fi网络等无线局域网络,对应地,所述缓存区或者所述内存可以实现为前述任一举例的移动终端的软盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等的一种或多种,当然也并不局限于此。
步骤S12:检测当前缓存区中数据包的字节之和,并判断字节之和是否大于或等于预置的容量阈值。
在判定所述字节之和大于或等于所述第一容量阈值时,表示当前网络不通畅,网络中响应数据包的速度小于应用程序生成数据包的速度,此时若继续接收缓存区转发的应用程序继续生成的数据包,则极易导致网络堵塞且影响网络的正常使用,此时需要通知所有应用程序停止向网络发送数据包,或者所述缓存区停止存储接收到的应用程序发送的数据包,当然,也可以在步骤S11的建立缓存区之前,预置所有应用程序禁止重发数据包,即预置所有应用程序在发送出一个数据包之后且所述数据包被网络响应之前禁止发送下一个数据包,具体实现方式为将所有应用程序接收响应的时间设置成无穷大。
而在判定所述字节之和小于所述第一容量阈值时,表示当前网络相对通畅,可继续执行步骤S12。
步骤S13:向网络重复发送一个字节最小的数据包。
步骤S14:判断网络对所述字节最小的数据包的响应时间是否小于或等于预置的时间阈值。
根据网络反馈的数据包上的标识即可判断是否为网络对所述字节最小的数据包的响应。
若判定网络对所述字节最小的数据包的响应时间大于预置的时间阈值,则继续执行步骤S13。若判定网络对所述字节最小的数据包的响应时间小于或等于预置的时间阈值,则执行步骤S15。
步骤S15:按照存储于缓存区的时间顺序,将缓存区中的数据包依次发送给网络。
若收到网络响应的数据包,则根据响应的数据包上的标识在缓存区中删除对应格式存储的数据包,并根据响应的数据包上的标识将其发送给对应的应用程序,以完成应用程序此次的网络请求。
由上述可知,本实施例在数据包未被响应之前无需重复发送,可避免因字节较大的数据包以及多个数据包的重复发送导致的占用例如内存、处理器、带宽等大量网络资源的问题。
图2是本发明的数据包的发送方法另一实施例的流程图。在上述实施例的描述基础上但与之不同的是,本实施例考虑到将缓存区中的数据包依次发送给网络的之后,何种情况下通知应用程序继续生成数据包。如图2所示,本实施例的数据包的发送方法包括:
步骤S21:预置所有应用程序在发送出一个数据包之后且所述数据包被网络响应之前禁止发送下一个数据包。
步骤S22:建立缓存区,以存储各个应用程序向网络发送的数据包。
步骤S23:检测当前缓存区中数据包的第一字节之和,并判断第一字节之和是否大于或等于预置的第一容量阈值。
若是,则执行步骤S24。若否,则继续执行步骤S23。
步骤S24:向网络重复发送一个字节最小的数据包。
步骤S25:判断网络对所述字节最小的数据包的响应时间是否小于或等于预置的时间阈值。
若否,则继续执行步骤S24。若是,则执行步骤S26。
步骤S26:按照存储于缓存区的时间顺序,将缓存区中的数据包依次发送给网络。
步骤S27:检测当前缓存区中数据包的第二字节之和,并判断第二字节之和是否小于或等于预置的第二容量阈值。
其中,第二容量阈值小于第一容量阈值,例如第二容量阈值可以为5MB(Megabytes,兆字节),第一容量阈值为20MB。
若是,则执行步骤S28。若否,则继续执行步骤S27。
步骤S28:停止向网络重复发送字节最小的数据包,并通知所有应用程序可以继续生成数据包。
图3是本发明的网络终端一实施例的原理框图。如图3所示,所述网络终端30包括收发模块31、存储模块32及处理模块33,其中:
收发模块31用于接收各个应用程序向网络发送的数据包,存储模块32用于存储收发模块31接收到的数据包,处理模块33用于检测当前存储模块32中所存储的所有数据包的第一字节之和,并判断第一字节之和是否大于或等于预置的第一容量阈值。
在处理模块33判定第一字节之和大于或等于第一容量阈值时,表示当前网络不通畅,网络中响应数据包的速度小于应用程序生成数据包的速度,此时若继续接收缓存区转发的应用程序继续生成的数据包,则极易导致网络堵塞且影响网络的正常使用,此时需要处理模块33控制收发模块31通知所有应用程序停止向网络发送数据包,或者控制收发模块31停止接收应用程序发送的数据包,以使得存储模块32停止存储。当然,处理模块33也可以预置所有应用程序禁止重发数据包,即控制收发模块31在发送出应用程序产生的一个数据包之后且被网络响应之前禁止发送下一个数据包,具体实现方式为将收发模块31接收所有应用程序对应的响应时间设置成无穷大。
而后,收发模块31进一步向网络重复发送一个字节最小的数据包,处理模块33判断网络对所述字节最小的数据包的响应时间是否小于或等于预置的时间阈值。若是,则处理模块33按照数据包存储于存储模块32的时间顺序,控制收发模块31将数据包依次发送给网络。在控制收发模块31将存储模块32中的数据包依次发送给网络之后,处理模块33进一步控制存储模块32删除已经被网络响应的数据包。
进一步地,处理模块33检测当前存储模块32中数据包的第二字节之和,并在判定第二字节之和小于或等于预置的第二容量阈值时,控制收发模块31停止向网络重复发送所述字节最小的数据包,并控制收发模块31通知应用程序继续生成数据包,其中第二容量阈值小于第一容量阈值,例如第二容量阈值可以为5MB,第一容量阈值为20MB。
上述网络终端30即为前述移动终端,网络终端30的各个模块的工作过程,可参考前述方法实施例的对应过程,为描述方便和简洁此处不再赘述。各个模块可以单独或集成设置于物理元件中。并且,上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中,即,本发明实施例可以以软件产品的形式体现出来,其包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
本发明实施例的核心目的是:建立缓存区以存储应用程序向网络发送的数据包,并在检测到缓存区中数据包的字节之和大于或等于预先设置的容量阈值时向网络重复发送一个字节最小的数据包,而后在网络的响应时间小于或等于预先设置的时间阈值时,才将数据包按照时间顺序依次发送给网络,从而能够避免数据包在未被响应之前重发,避免占用例如内存、处理器、带宽等大量的网络资源。
基于此,以上所述仅为本发明的部分实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。