一种减少无线通信丢包率的方法和设备技术

技术编号:9436153 阅读:147 留言:0更新日期:2013-12-12 01:37
本发明专利技术公开了一种减少无线通信丢包率的方法和设备,该方法步骤包括:a)发送程序将待发送的数据块送入发送队列,所述发送队列为发送程序所构建;b)发送程序从发送队列中取出数据块,并且把取出的数据块保存到发送缓冲区,所述发送缓冲区由发送程序所构建,并且由配置文件中的缓冲区大小参数所限定,配置文件为发送程序所构建;c)发送程序将所述发送缓冲区中的数据块合并成一个大数据包,并发送给接收程序;d)当大数据包发送失败的情况下,将发送缓冲区中的部分数据块丢弃,从发送队列中补充数据块,返回步骤c)。该设备包括:配置模块、生成模块和处理模块。采用本发明专利技术有效地提高了数据传输的可靠性,减少了数据的丢包率。

【技术实现步骤摘要】
一种减少无线通信丢包率的方法和设备
本专利技术涉及无线网络中的数据传输技术,尤其涉及一种减少无线通信丢包率的方法和设备。
技术介绍
当前,无所不在的移动通信和无线网络技术正引领新的时代。与有线网络不同,由于受地理环境和电磁干扰等因素的影响,无线网络具有不稳定、不可靠的特性,在无线网络中传输数据会导致数据包的丢失;在一些异常复杂的恶劣气候环境下,数据包的丢包率会较大。通过无线网络进行通信的上层应用系统来自不同的领域,具有不同的用途。很多应用系统需要尽可能地降低数据包的丢包率。研究如何减少无线网络中的数据丢包率具有重要意义。减少无线网络中的数据丢包率可以从两方面进行研究,一方面是目前比较普遍的研究方法,即从无线网络技术本身进行研究,研究的对象包括硬件网络设备、网络的数据链路层、TCP/UDP协议、数据路由方法、组播/广播等;另一方面可以从运行在无线网络之上的应用系统进行研究,这方面的研究相对较少。对于同一套无线网络而言,可以运行不同的应用系统,但不同的应用系统对于网络丢包率的要求不尽相同,例如军事应用系统明显要比其他应用系统的要求高。一个应用系统由多个程序组成,应用系统中的数据通信其实可以简化为两个程序之间的数据通信。
技术实现思路
本专利技术的目的是为了减少两个程序之间所要传输的数据包的丢包率,从而提高应用系统通过无线网络进行数据通信的可靠性。为实现上述目的,一方面,本专利技术提供了一种减少无线通信丢包率的方法,该方法步骤包括:a)发送程序将待发送的数据块送入发送队列,所述发送队列为发送程序所构建;b)发送程序从发送队列中取出数据块,并且把取出的数据块保存到发送缓冲区,所述发送缓冲区由发送程序所构建,并且由配置文件中的缓冲区大小参数所限定,配置文件为发送程序所构建;c)发送程序将所述发送缓冲区中的数据块合并成一个大数据包,并发送给接收程序;d)当大数据包发送失败的情况下,将发送缓冲区中的部分数据块丢弃,从发送队列中补充数据块,返回步骤c)。另一方面,本专利技术提供了一种减少无线通信丢包率的设备,该设备包括:配置模块,用于构建参数配置文件,所述参数配置文件包括缓冲区大小;生成模块,用于构建发送队列和发送缓冲区,所述发送缓冲区由所述缓冲区大小参数所限定;处理模块,用于将待发送的数据块送入发送队列;从发送队列中取出数据块,并且把取出的数据块保存到发送缓冲区;将所述发送缓冲区中的数据块合并成一个大数据包,并发送给接收程序;当大数据包发送失败的情况下,将发送缓冲区中的部分数据块丢弃,从发送队列中补充数据块后再重新发送。本专利技术有效地提高了无线网络中数据传输的可靠性,减少了数据的丢包率。附图说明图1示例了两个程序传输不同大小的数据包所花费的时间及效率比;图2为本专利技术实施例提供的一种减少无线通信丢包率的方法流程图;图3为图2第四步压缩、打包和发送数据的示例图;图4为图2第四步压缩、打包和发送数据的流程图;图5为本专利技术实施例提供的一种减少无线通信丢包率的设备结构框图。具体实施方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。图1示例了两个程序传输不同大小的数据包所花费的时间及效率比。图1显示了两个测试程序,在千兆网上发送不同大小的数据包所花费的时间及效率之比。该示例不是用来限制本专利技术的范围。在图1(a)中,发送程序将长度为100和1000个字节的数据包发送到接收程序的时间分别为244.536和268.593微秒。如果将1000个字节的数据包拆成10个小包分别传输,每个小包含有100个字节,则10个小包需要花费244.536*10微秒,打成大包的效率比为244.536*10/268.593≈9倍。图1(b)显示了不同大小的数据包相对于100个字节的小包的传输效率比值;通常数据包越大,提高的效率也就越大。图1表明本专利技术实施例采用压缩和合并策略能够有效地提高数据传输的效率。图2为本专利技术实施例提供的一种减少无线通信丢包率的方法流程图。如图2所示,该方法包括以下步骤:第一步,当数据由发送程序通过无线网络传输给接收程序时,为发送程序构建参数配置文件。该文件包含3个变量:repeatTimes、bufferSize、timeout。这三个变量均为大于0的整数,其中:repeatTimes表示数据包发送失败时可重复发送的次数;bufferSize表示存放数据包的缓冲区的大小(字节数);timeout表示发送超时时间,如果发送程序在timeout时间内没有将数据发送到接收程序,则认为本次发送失败。第二步,为发送程序构建发送队列,用来保存发给接收程序的数据块。发送程序在运行的过程中,将每次产生的要发给接收程序的数据块保存到发送队列的队尾。第三步,为发送程序构建发送缓冲区。发送程序会将整个发送缓冲区中的数据作为一个大数据包发送给接收程序。参数文件中的bufferSize即指发送缓冲区的大小。第四步,压缩、打包和发送数据。将发送队列中的数据块进行压缩,把压缩包保存到发送缓冲区;将发送缓冲区中的所有压缩包合并成一个大数据包,发送给接收程序。第四步的流程如下:4.1如果程序执行完成,则转第五步;否则转4.2。4.2令numOfSentTimes为1。numOfSentTimes为大于0的整数,表示发送次数。4.3压缩和打包4.3.1如果发送队列中没有数据块,则转4.4,否则转4.3.2。4.3.2计算bigPacketSize。bigPacketSize为整数,表示发送缓冲区中已有数据的长度(字节数)。4.3.3构建压缩包。4.3.3.1拷贝发送队列中的第一个数据块(队首元素)。4.3.3.2采用一定的压缩算法对拷贝数据块进行压缩。本专利实施例对采用何种压缩算法没有特别要求,将数据块压缩后进行传输可以获得更高的传输效率。4.3.3.3在压缩后的数据块前附加该数据块的长度,从而构成一个压缩包,所附加的长度占4个字节。因此,一个压缩包由压缩数据块长度与压缩数据块两部分组成。压缩包本身的长度用firstDataSize表示,firstDataSize为大于0的整数,其值等于“压缩数据块的长度+4”。4.3.4如果firstDataSize大于bufferSize,则表示发送缓冲区放不下一个压缩包,程序报错后转第五步;否则转4.3.5。4.3.5如果(firstDataSize+bigPacketSize)>bufferSize,则转4.4;否则:4.3.5.1bigPacketSize赋值为bigPacketSize+firstDataSize。4.3.5.2将压缩包存放到发送缓冲区。如果已有其他压缩包,则紧挨着放到其他压缩包的后面。4.3.5.3删除发送队列中的第一个数据块。4.4如果发送缓冲区中没有压缩包,则转4.1;否则转4.5。4.5发送数据包。4.5.1将保存在发送缓冲区中的所有压缩包,作为一个大的数据包,其长度为bigPacketSize。通过调用系统函数将大数据包发送给接收程序。4.5.2如果发送时间超过参数文件中的变量timeout,则认为数据发送失败,否则表示数据发送成功。4.5.2.1数据发送失败。如果numOfSentTimes等于repeatTimes,则丢弃发送缓冲区中的第一个压缩包,转4.2;否则将numOfSe本文档来自技高网...
一种减少无线通信丢包率的方法和设备

【技术保护点】
一种减少无线通信丢包率的方法,其特征在于:a)发送程序将待发送的数据块送入发送队列,所述发送队列为发送程序所构建;b)发送程序从发送队列中取出数据块,并且把取出的数据块保存到发送缓冲区,所述发送缓冲区由发送程序所构建,并且由配置文件中的缓冲区大小参数所限定,配置文件为发送程序所构建;c)发送程序将所述发送缓冲区中的数据块合并成一个大数据包,并发送给接收程序;d)当大数据包发送失败的情况下,将发送缓冲区中的部分数据块丢弃,从发送队列中补充数据块,返回步骤c)。

【技术特征摘要】
1.一种减少无线通信丢包率的方法,其特征在于:a)发送程序将待发送的数据块送入发送队列,所述发送队列为发送程序所构建;b)发送程序从发送队列中取出数据块,并且把取出的数据块保存到发送缓冲区,所述发送缓冲区由发送程序所构建,并且由配置文件中的缓冲区大小参数所限定,配置文件为发送程序所构建;c)发送程序将所述发送缓冲区中的数据块合并成一个大数据包,并发送给接收程序;d)当大数据包发送失败时,将发送缓冲区中的部分数据块丢弃,从发送队列中补充数据块,返回步骤c);其中,设置一个参数repeatTimes表示大数据包发送失败时可重复发送的次数,在大数据包发送成功时,其中的一个数据块发送的次数大于该repeatTimes值。2.根据权利要求1所述的方法,其特征在于:所述发送程序从发送队列中取出数据块,并且把取出的数据块保存到发送缓冲区的步骤包括:将发送队列中的数据块进行压缩,并把压缩包保存到发送缓冲区。3.根据权利要求1所述的方法,其特征在于:所述配置文件包括数据包发送失败时可重复发送次数参数,所述发送程序将所述发送缓冲区中的数据块合并成一个大数据包,并发送给接收程序的步骤包括根据所述数据包发送失败时可重复发送次数参数重复发送所述大数据包。4.根据权利要求1所述的方法,其特征在于:所述配置文件包括发送超时参数,所述发送程序将所述发送缓冲区中的数据块合并成一个大数...

【专利技术属性】
技术研发人员:刘步权王怀民党岗鞠儒生朱敏彭绍亮左晓亮李猛
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1