一种低速网络环境下的实时可靠数据传输的方法及系统的制作方法

文档序号:7820686阅读:272来源:国知局
一种低速网络环境下的实时可靠数据传输的方法及系统的制作方法
【专利摘要】本发明提供一种低速网络环境下的实时可靠数据传输的方法,其步骤有:1、终端将数据进行分成N个数据包;2、终端将各数据包与其序号同时发送给服务器;3、服务器接收一数据包并存储至缓存区中,同时记录本次成功接收的数据包序号i;4、服务器在延迟时间内查找缓存区中的已接收的除第i包外的数据包最大序号j;5、若i大于j,则服务器向终端发送j和i;若i不大于j,则不发送应答;6、终端判断数据是否丢包,若i与j的差大于1,则数据丢包,进行补传;否则不进行补传;7、当最后一数据包接收和判断完之后,服务器进行组包。本发明还提供一种低速网络环境下的实时可靠数据传输的系统,既降低数据的丢包率,又提高数据的网络传输速度。
【专利说明】一种低速网络环境下的实时可靠数据传输的方法及系统

【技术领域】
[0001]本发明涉及一种网络数据传输技术,尤其涉及一种低速网络环境下的实时可靠数据传输的方法及系统。

【背景技术】
[0002]无线互联网的迅速发展及其网络覆盖率的迅速提升,为人们能够随时随地享受互联网服务提供了极大的便利,同时也为车联网技术的广泛应用提供了更加可靠的保证。但是,移动互联网又是一个不均衡的网络,在很多实际环境中其网络环境并不是那么理想,如何保证在低速网络环境下数据的实时可靠传输依然是一个比较棘手的问题。
[0003]在低速网路环境中,数据传输效率低下、数据丢包现象严重等问题都会严重影响数据传输的实时性和可靠性。在低速网络环境下(网络实际平均带宽5k/s左右),采用正常的数据传输策略进行测试,其结果是:丢包率大于30%,采集到的一个小时的数据要经过3个小时才能够全部传完。这种数据传输效率在实际应用中是不能容忍的。基于此,本发明提出了一种在低速网络环境下的实时可靠数据传输的方法及系统。


【发明内容】

[0004]本发明要解决的技术问题之一,在于提供一种低速网络环境下的实时可靠数据传输的方法,既降低了数据的丢包率,又提高了数据的网络传输速度。
[0005]本发明的问题之一,是这样实现的:
一种低速网络环境下的实时可靠数据传输的方法,包括如下步骤:
步骤1、终端将数据分成N个数据包,并分别将每个数据包标上序号,该序号为1~N,N为正整数;
步骤2、终端将各数据包与其序号同时发送给服务器;
步骤3、服务器接收某一数据包并存储至缓存区中,将该数据包缓存一限定的时间,在该限定的时间内若服务器没有接收到其他数据包,则将该数据包的序号记为本次成功接收的数据包序号i ;若服务器有接收到其他数据包,每个接收到的数据包均存储至缓存区中缓存一限定的时间,则将最后接收的数据包的序号记为本次成功接收的数据包序号i,i的范围是1~N ;
步骤4、服务器从缓存区中查找已接收的除第i包外的数据包最大序号j,j的范围是0-N-1, j为0表示未成功接收数据包;
步骤5、服务器判断i和j的大小,若i大于j,则服务器向终端发送应答,该应答的内容为已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i ;若i小于j,则服务器不向终端发送应答;不出现i等于j的情况;
步骤6、终端根据应答内容中的已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i的大小判断数据是否丢包,若i减去j的差值大于1,则数据出现丢包现象,终端对j至i之间的序号中的数据包进行补传;否则数据没有出现丢包现象,不需要进行补传,接着再重复步骤3至步骤6对下一成功接收的数据包进行存储与判断,直到最后一数据包接收和判断完毕;
步骤7、当最后一数据包接收和判断完之后,服务器判断成功接收到的数据包的包数与N的大小是否一致,若一致时,则进行组包;若不一致时,则查找出丢失的数据包序号,并向终端发送补传应答,则终端将丢失的数据包重新发送给服务器。
[0006]本发明要解决的技术问题之二,在于提供一种低速网络环境下的实时可靠数据传输的系统,既降低了数据的丢包率,又提高了数据的网络传输速度。
[0007]本发明的问题之二,是这样实现的:
一种低速网络环境下的实时可靠数据传输的系统,包括数据分配模块、数据发送模块、数据存储模块、数据查找模块、应答发送模块、丢包判断模块、数据组包模块;
所述数据分配模块,终端将数据分成N个数据包,并分别将每个数据包标上序号,该序号为1~N,N为正整数;
所述数据发送模块,终端将各数据包与其序号同时发送给服务器;
所述数据存储模块,服务器接收某一数据包并存储至缓存区中,将该数据包缓存一限定的时间,在该限定的时间内若服务器没有接收到其他数据包,则将该数据包的序号记为本次成功接收的数据包序号i ;若服务器有接收到其他数据包,每个接收到数据包均存储至缓存区中缓存一限定的时间,则将最后接收的数据包的序号记为i,i的范围是1~N ;
所述数据查找模块,服务器从缓存区中查找已接收的除第i包外的数据包最大序号j,j的范围是0~N-1,j为O表示未成功接收数据包;
所述应答发送模块,服务器判断i和j的大小,若i大于j,则服务器向终端发送应答,该应答的内容为已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i ;若i小于j,则序号为i的数据包为补传的数据,服务器不向终端发送应答;不出现i等于j的情况;
所述丢包判断模块,终端根据应答内容中的已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i的大小判断数据是否丢包,若i减去j的差值大于1,则数据出现丢包现象,终端对j至i之间的序号中的数据包进行补传;否则数据没有出现丢包现象,不需要进行补传,接着再重复步骤3至步骤6对下一成功接收的数据包进行存储与判断,直到最后一数据包接收和判断完毕;
所述数据组包模块,当最后一数据包接收和判断完之后,服务器判断成功接收到的数据包的包数与N的大小是否一致,若一致时,则进行组包;若不一致时,则查找出丢失的数据包序号,并向终端发送补传应答,则终端将丢失的数据包重新发送给服务器。
[0008]本发明具有如下优点:
本发明为了解决在低速网络环境下丢包、网络延迟现象严重的问题提出了一种解决方案;本发明已经使用在实际的车辆CAN数据采集系统中,测试结果表明:丢包率基本可以控制在1%以下,网络延迟也比之前得到很大提升,原来一个小时数据需要近三个小时才能完成传输,使用本发明后一小时数据可以控制在一小时十分钟之内传完。因此,该发明在低速网络环境下还是有着较为优秀的表现。

【专利附图】

【附图说明】
[0009]下面参照附图结合实施例对本发明作进一步的说明。
[0010]图1为本发明方法执行的程序原理图。

【具体实施方式】
[0011]参阅图1所示,本发明的一种低速网络环境下的实时可靠数据传输的方法,包括如下步骤:
步骤1、终端将数据分成N个数据包,并分别将每个数据包标上序号,该序号为1~N,N为正整数,每个数据包的大小为1KB,假定N为9,则序号包括1、2、3、4、5、6、7、8、9 ;
步骤2、终端将各数据包与其序号同时发送给服务器,不必等到第N包数据应答成功之后再发送第N+1包数据;
步骤3、服务器接收序号为I的数据包并存储至缓存区中,将该数据包缓存5分钟,在这5分钟之内服务器没有接收到其他数据包,则将该数据包的序号I记为本次成功接收的数据包序号i ;i的范围是1~9 ;
步骤4、服务器从缓存区中查找已接收的除第I包外的数据包最大序号j,查找到缓存区中没有已接收完的数据包,此时认为已接收的除第I包外的数据包最大序号j为0,j的范围是0~8 ;
步骤5、在I大于O的情况下,服务器向终端发送应答,该应答的内容为已接收的除第I包外的数据包最大序号O和本次成功接收的数据包序号I ;
步骤6、终端根据应答内容的的本次成功接收的数据包序号I和已接收的除第I包外的数据包最大序号O的大小判断数据是否丢包,此时I减去O的差值不大于1,则数据没有出现丢包现象,不需要进行补传;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为2,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第2包外的数据包最大序号1,此时序号2大于序号1,服务器向终端发送应答,该应答的内容为已接收的除第2包外的数据包最大序号I和本次成功接收的数据包序号2 ;终端根据应答的本次成功接收的数据包序号2和已接收的除第2包外的数据包最大序号I的大小判断数据是否丢包,此时2减去I的差值不大于I,则数据没有出现丢包现象,不需要进行补传;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为5,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第5包外的数据包最大序号2,此时序号5大于序号2,服务器向终端发送应答,该应答的内容为已接收的除第5包外的数据包最大序号2和本次成功接收的数据包序号5 ;终端根据应答的本次成功接收的数据包序号5和已接收的除第5包外的数据包最大序号2的大小判断数据是否丢包,此时5减去2的差值大于1,则数据出现丢包现象,终端对2至5之间的序号3和4中的数据包进行补传;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为3,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第3包外的数据包最大序号5,此时序号3小于序号5,则序号为3的数据包为补传的数据,服务器不向终端发送应答; 接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为4,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第4包外的数据包最大序号5,此时序号4小于序号5,则序号为4的数据包为补传的数据,服务器不向终端发送应答;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为9,将该数据包存储至缓存区中,在缓存的5分钟内服务器有接收到第7包数据,将第7包数据存储至缓存区中缓存5分钟,则此时本次成功接收的数据包序号i为7,查找到已接收的除第7包外的数据包最大序号j为9,此时序号7小于序号9,服务器不向终端发送应答;
步骤7、当第7包数据接收和判断完之后,服务器判断成功接收到的数据包的包数7与总数据包的数量9大小不一致,则查找出丢失的数据包序号6和序号8,并向终端发送补传应答,则终端将丢失的第6包数据与第8包数据重新发送给服务器。
[0012]分包调整的具体步骤有:数据包发送完毕后,服务器延时2s用于判断数据是否丢包,若数据有丢包,则服务器计算出丢包序号,然后根据公式:带宽=网络吞吐量/耗时,计算当前网络实际的带宽;接着根据P=w*0.3计算出分包大小P,然后通知终端调整数据包的大小为P。
[0013]一种低速网络环境下的实时可靠数据传输的系统,包括数据分配模块、数据发送模块、数据存储模块、数据查找模块、应答发送模块、丢包判断模块、数据组包模块;
所述数据分配模块,终端将数据分成N个数据包,并分别将每个数据包标上序号,该序号为1~N,N为正整数,每个数据包的大小为1KB,假定N为9,则序号包括1、2、3、4、5、6、7、8、9 ;
所述数据发送模块,终端将各数据包与其序号同时发送给服务器,不必等到第N包数据应答成功之后再发送第N+1包数据;
所述数据存储模块,服务器接收序号为1的数据包并存储至缓存区中,将该数据包缓存5分钟,在这5分钟之内服务器没有接收到其他数据包,则将该数据包的序号1记为本次成功接收的数据包序号i,i的范围是1~9 ;
所述数据查找模块,服务器从缓存区中查找第1包以外的最大数据包序号j,查找到缓存区中没有已接收完的数据包,此时认为已接收的除第1包外的数据包最大序号j为0,j的范围是0~8 ;
所述应答发送模块,在1大于0的情况下,服务器向终端发送应答,该应答的内容为已接收的除第1包外的数据包最大序号0和本次成功接收的数据包序号1 ;
所述丢包判断模块,终端根据应答内容的的本次成功接收的数据包序号1和已接收的除第1包外的数据包最大序号0的大小判断数据是否丢包,此时1减去0的差值不大于1,则数据没有出现丢包现象,不需要进行补传;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为2,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第2包外的数据包最大序号1,此时序号2大于序号1,服务器向终端发送应答,该应答的内容为已接收的除第2包外的数据包最大序号1和本次成功接收的数据包序号2 ;终端根据应答的本次成功接收的数据包序号2和已接收的除第2包外的数据包最大序号1的大小判断数据是否丢包,此时2减去1的差值不大于1,则数据没有出现丢包现象,不需要进行补传;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为5,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第5包外的数据包最大序号2,此时序号5大于序号2,服务器向终端发送应答,该应答的内容为已接收的除第5包外的数据包最大序号2和本次成功接收的数据包序号5 ;终端根据应答的本次成功接收的数据包序号5和已接收的除第5包外的数据包最大序号2的大小判断数据是否丢包,此时5减去2的差值大于1,则数据出现丢包现象,终端对2至5之间的序号3和4中的数据包进行补传;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为3,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第3包外的数据包最大序号5,此时序号3小于序号5,则序号为3的数据包为补传的数据,服务器不向终端发送应答;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为4,将该数据包存储至缓存区中,在缓存的5分钟内服务器没有接收到其他数据包,则查找到已接收的除第4包外的数据包最大序号5,此时序号4小于序号5,则序号为4的数据包为补传的数据,服务器不向终端发送应答;
接着对下一成功接收的数据包进行存储,假定下一成功接收的数据包的序号为9,将该数据包存储至缓存区中,在缓存的5分钟内服务器有接收到第7包数据,将第7包数据存储至缓存区中缓存5分钟,则此时本次成功接收的数据包序号i为7,查找到已接收的除第7包外的数据包最大序号j为9,此时序号7小于序号9,服务器不向终端发送应答;
所述数据组包模块,当第7包数据接收和判断完之后,服务器判断成功接收到的数据包的包数7与总数据包的数量9大小不一致,则查找出丢失的数据包序号6和序号8,并向终端发送补传应答,则终端将丢失的第6包数据与第8包数据重新发送给服务器。
[0014]分包调整的具体步骤有:数据包发送完毕后,服务器延时2s用于判断数据是否丢包,若数据有丢包,则服务器计算出丢包序号,然后根据公式:带宽=网络吞吐量/耗时,计算当前网络实际的带宽;接着根据P=w*0.3计算出分包大小P,然后通知终端调整数据包的大小为P。
[0015]虽然以上描述了本发明的【具体实施方式】,但是熟悉本【技术领域】的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
【权利要求】
1.一种低速网络环境下的实时可靠数据传输的方法,其特征在于:包括如下步骤: 步骤1、终端将数据分成N个数据包,并分别将每个数据包标上序号,该序号为1~N,N为正整数; 步骤2、终端将各数据包与其序号同时发送给服务器; 步骤3、服务器接收某一数据包并存储至缓存区中,将该数据包缓存一限定的时间,在该限定的时间内若服务器没有接收到其他数据包,则将该数据包的序号记为本次成功接收的数据包序号i ;若服务器有接收到其他数据包,每个接收到的数据包均存储至缓存区中缓存一限定的时间,则将最后接收的数据包的序号记为本次成功接收的数据包序号i,i的范围是1~N ; 步骤4、服务器从缓存区中查找已接收的除第i包外的数据包最大序号j,j的范围是0-N-1, j为O表示未成功接收数据包; 步骤5、服务器判断i和j的大小,若i大于j,则服务器向终端发送应答,该应答的内容为已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i ;若i小于j,则服务器不向终端发送应答;不出现i等于j的情况; 步骤6、终端根据应答内容中的已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i的大小判断数据是否丢包,若i减去j的差值大于1,则数据出现丢包现象,终端对j至i之间的序号中的数据包进行补传;否则数据没有出现丢包现象,不需要进行补传,接着再重复步骤3至步骤6对下一成功接收的数据包进行存储与判断,直到最后一数据包接收和判断完毕; 步骤7、当最后一数据包接收和判断完之后,服务器判断成功接收到的数据包的包数与N的大小是否一致,若一致时,则进行组包;若不一致时,则查找出丢失的数据包序号,并向终端发送补传应答,则终端将丢失的数据包重新发送给服务器。
2.—种低速网络环境下的实时可靠数据传输的系统,其特征在于:包括数据分配模块、数据发送模块、数据存储模块、数据查找模块、应答发送模块、丢包判断模块、数据组包丰吴块; 所述数据分配模块,终端将数据分成N个数据包,并分别将每个数据包标上序号,该序号为1~N,N为正整数; 所述数据发送模块,终端将各数据包与其序号同时发送给服务器; 所述数据存储模块,服务器接收某一数据包并存储至缓存区中,将该数据包缓存一限定的时间,在该限定的时间内若服务器没有接收到其他数据包,则将该数据包的序号记为本次成功接收的数据包序号i ;若服务器有接收到其他数据包,每个接收到数据包均存储至缓存区中缓存一限定的时间,则将最后接收的数据包的序号记为i,i的范围是1~N ; 所述数据查找模块,服务器从缓存区中查找已接收的除第i包外的数据包最大序号j,j的范围是0~N-1,j为O表示未成功接收数据包; 所述应答发送模块,服务器判断i和j的大小,若i大于j,则服务器向终端发送应答,该应答的内容为已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i ;若i小于j,则序号为i的数据包为补传的数据,服务器不向终端发送应答;不出现i等于j的情况; 所述丢包判断模块,终端根据应答内容中的已接收的除第i包外的数据包最大序号j和本次成功接收的数据包序号i的大小判断数据是否丢包,若i减去j的差值大于1,则数据出现丢包现象,终端对j至i之间的序号中的数据包进行补传;否则数据没有出现丢包现象,不需要进行补传,接着再重复步骤3至步骤6对下一成功接收的数据包进行存储与判断,直到最后一数据包接收和判断完毕; 所述数据组包模块,当最后一数据包接收和判断完之后,服务器判断成功接收到的数据包的包数与N的大小是否一致,若一致时,则进行组包;若不一致时,则查找出丢失的数据包序号,并向终端发送补传应答,则终端将丢失的数据包重新发送给服务器。
【文档编号】H04L12/861GK104468061SQ201410684882
【公开日】2015年3月25日 申请日期:2014年11月25日 优先权日:2014年11月25日
【发明者】黄家乾, 涂岩恺, 时宜, 季刚 申请人:厦门雅迅网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1