CN112367265B - 一种适用于窄带弱连接网络的可靠数据传输方法和装置 - Google Patents
一种适用于窄带弱连接网络的可靠数据传输方法和装置 Download PDFInfo
- Publication number
- CN112367265B CN112367265B CN202011166076.3A CN202011166076A CN112367265B CN 112367265 B CN112367265 B CN 112367265B CN 202011166076 A CN202011166076 A CN 202011166076A CN 112367265 B CN112367265 B CN 112367265B
- Authority
- CN
- China
- Prior art keywords
- sending
- state
- message
- task
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种适用于窄带弱连接网络的可靠数据传输方法和装置。其中方法通过综合利用等待超时机制免去了源端和目的端绝大部分控制信令的交互,通过采用保守的发送窗口增长策略保证了信道的通畅,尽可能快地实现对信道的满载使用,并适应抖动剧烈的网络,实现了窄带、高往返时延、时断时续的弱连接网络环境下数据的可靠传输。本发明设计了一种可串行执行的操作步骤,不需要设置专门的定时器,易于实现且占用资源小,适合低配置终端。
Description
技术领域
本发明涉及窄带传输领域,特别是涉及一种适用于窄带弱连接网络的可靠数据传输方法和装置。
背景技术
信息技术构成了现代社会组织运行的基础,部分野外活动例如地质勘探、测绘、生态保护乃至军事作战等面临着复杂的地形环境,参与人员处于时快时慢的机动状态,随身携带的设备电量有限,且缺乏可靠、宽带和低时延的网络基础设施。上述环境要求关键数据的及时可靠传递且尽可能降低资源占用。目前针对上述要求开展的技术研究主要集中在以下方面:
(1)数据压缩技术。针对不同的数据类型提供了不同的数据压缩算法,例如适用于音频和视频的有损压缩技术和适用于通用数据的无损压缩技术等。
(2)数据分级分类。针对不同类型的数据进行分类,并标定不同的优先级,根据报文的优先级对数据采用不同的传输策略进行传输。
(3)网络协议优化。针对现有的传输协议,例如TCP协议和FTP协议等进行优化设计,加入网络带宽估计、协议压缩和信令精简等设计,提高协议自身的性能。
现有技术成果主要针对窄带稳定的网络环境,对网络抖动严重、高往返时延、时断时续等弱连接网络环境考虑不足;针对面向连接传输协议研究成果较多,针对不具备拥塞控制和可靠机制的无连接传输协议研究成果较少。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种适用于窄带弱连接网络的可靠数据传输方法和装置。
第一方面,本发明实施例提供了一种适用于窄带弱连接网络的可靠数据传输方法,所述方法包括:
步骤1:从任务队列中取任务,并判断任务类型;所述任务类型包括数据发送任务和应答任务;所述数据发送任务用于将发送消息从发送方发送至接收方,所述发送消息为应用软件提交的发送数据;所述应答任务用于发送方处理接收方发回的应答消息,所述应答消息为接收确认报文;如果是数据发送任务,那么执行步骤2;如果是应答任务,那么执行步骤5;
在所述步骤1中,如果任务队列为空,处理流程将阻塞,直到等到新的任务到来。
步骤2:根据所述数据发送任务中发送消息的状态以及发送消息的有效性确定发送内容;
步骤3:分析目的地址可达性和网络状况,索取待发送消息的全局发送令牌,确定发送消息的发送数据量;
步骤4:发送方根据所述发送内容和发送数据量发送数据,发送完成后发送方等待接收方发回的应答消息;
步骤5:处理应答任务,如果所述数据发送任务的发送消息已接收完毕,移除任务队列中所述数据发送任务;如果所述数据发送任务的发送消息未完全接收,将所述数据发送任务中发送消息的发送次数置0,避免网络轻微异常就导致数据发送失败;
步骤6:根据发送消息接收情况,调整目的地址的发送窗口。
结合第一方面,在一种实现方式中,发送消息在发送过程中涉及未发送、正在发送、等待确认、发送完和发送失败五种状态;发送消息被应用软件提交后处于未发送状态;发送消息被发送方发送至接收方后,处于未发送状态的消息会变更为正在发送状态;发送消息的部分数据或者全部数据被发送后,发送方等待接收方发回的应答消息,此时进入等待确认状态;发送方收到应答消息后,如果发送消息未发送完成,此时转换为正在发送状态,并增加发送窗口;如果发送消息已发送完成,那么进入发送成功状态;如果发送方未收到应答消息或者发送过程中出现不可恢复的异常,那么发送消息的状态转换为发送失败状态,并减小发送窗口。
结合第一方面,在一种实现方式中,所述步骤2包括:
步骤2.1:所述数据发送任务中发送消息的状态处于未发送状态,那么直接执行步骤3;
步骤2.2:所述数据发送任务中发送消息的状态处于正在发送状态,执行步骤2.3检查消息是否失效;
步骤2.3:检查所述数据发送任务中发送消息的发送时间和当前时间间隔,如果时间间隔超过消息保留时间,判定消息失效,从任务队列中移除所述数据发送任务,重新执行步骤1;否则执行步骤2.4;消息保留时间默认设置为网络平均往返时延的3倍或者为应用设定的消息保留时间。
步骤2.4:检查所述数据发送任务中发送消息的发送次数,如果发送次数超过最大重传次数,判定发送消息失效,从任务队列中移除所述数据发送任务,重新执行步骤1;否则执行步骤2.5;最大重传次数一般设定为3次。
步骤2.5:检查所述数据发送任务中发送消息上次发送时间和当前时间间隔,如果时间间隔超过消息重传时间,那么将发送内容替换为发送消息接收状态查询信令。消息重传时间可设置为网络平均往返时延。
在所述步骤2中,通过发送消息的发送时间间隔是否超过消息保留时间和发送消息的发送次数是否超过最大重传次数两个标准判断消息的有效性,在发送消息过程中对消息状态进行检验,不需要单独的线程执行该任务,保证任务的串行执行。
结合第一方面,在一种实现方式中,所述步骤3中,所述目的地址可达性根据发送方是否收到接收方的应答消息进行判断,发往同一个目的地址的发送消息通过发送-应答的串行方式发送;
如果发送方没有收到接收方的应答消息,目的地址处于锁定状态,检查处于锁定状态的目的地址的状态保持时间,如果状态保持时间小于等于状态保持最长时间,则判定目的地址不可达,暂停将发送消息发往此目的地址,执行步骤1;如果状态保持时间超过状态保持最长时间,那么将目的地址的状态设置为未锁定;超时解锁设计避免某目的地址被长时间锁定;如果发送方收到接收方的应答消息,目的地址处于未锁定状态,判定目的地址可达。状态保持最长时间根据实际网络条件设置,默认和消息保留时间一致。
结合第一方面,在一种实现方式中,所述步骤3中,所述网络状况由目的地址的发送窗口进行限制,考虑到网络可能存在严重的抖动,为防止目的地址的发送窗口失效,检查目的地址对应的发送窗口的最近一次更新时间,如果最近一次更新时间距离当前时间超过发送窗口保鲜时间,判定网络状况未知,将发送窗口重置为初始状态,更新最近一次更新时间。发送窗口的超时重置在查询时发生,保证流程的串行执行。发送窗口保鲜时间根据实际网络抖动情况进行设置,默认设置为120秒。发送窗口的初始状态可根据网络条件进行设置。
结合第一方面,在一种实现方式中,所述步骤3中,所述全局发送令牌用于限制发送方单位时间内发送的数据量,避免发送数据速率超出网络带宽限制。根据公式(当前时间-上次索取令牌时间)*令牌恢复速率即可计算出待发送消息的全局发送令牌;在索取待发送消息的全局令牌时触发全局发送令牌的恢复,不需要定时处理,保证流程的串行执行。令牌恢复速率根据当前设备支持的最大上行带宽确定,上行带宽可根据实际网络条件和使用场景提前配置,窄带条件下一般不超过2Mbps。
所述发送消息的发送数据量取所述网络状况、所述上行带宽使用情况和网络最大传输单元三者的较小值。
结合第一方面,在一种实现方式中,所述步骤4包括:
步骤4.1:发送数据时,更新所述数据发送任务中发送消息的发送次数和上次发送时间,将目的地址状态置为锁定,将所述数据发送任务中发送消息的状态置为正在发送,将待发送数据进行合理分包后使用UDP协议发送;
步骤4.2:发送完成后发送方等待接收方发回的应答消息,将所述数据发送任务中发送消息的状态置为等待确认;若发送方在时间T内收到接收方发回的应答消息,执行步骤5处理应答任务,如果发送消息未发送完成,那么消息状态转换为正在发送,继续发送剩余数据;若发送方在时间T内未接收到接收方发回的应答消息,那么消息仍处于等待确认状态,发送方将向接收方发送确认请求。所述时间T一般设置为网络平均往返时延。
结合第一方面,在一种实现方式中,所述步骤6中,目的地址的发送窗口调整采用保守的窗口增长策略:
策略6.1:发送方在时间T内未接收到接收方发回的应答消息,发送窗口重置为初始状态;
策略6.2:发送数据量等于调整前发送窗口,且未发生数据丢失,且当前发送窗口小于指数增长门限,那么发送窗口指数增长;
策略6.3:发送数据量等于调整前发送窗口,发生少量数据丢失,那么发送窗口按比例线性减少;
策略6.4:发送数据量等于调整前发送窗口,发生大量数据丢失,那么发送窗口指数减小;
策略6.5:发送数据量小于调整前发送窗口,且未发生数据丢失,那么发送窗口根据发送数据量按比例线性增长。
策略6.6:发送数据量小于调整前发送窗口,且发生数据丢失,发送窗口指数减小。
所述目的地址的发送窗口调整完成后,修改发送窗口的最近一次更新时间,将目的地址状态修改为未锁定,并更新状态保持时间,执行所述步骤1。
发送窗口的更新在收到应答消息或者索取发送窗口大小时触发,不需要定时处理。应答消息的处理优先级高于发送任务,保证发送窗口得到及时调整。
在所述步骤6中,设计的发送窗口调整策略采用保守的窗口增长策略,避免单次发送较大数据量导致信道拥塞。收到应答消息后再解锁地址,保证目的地址无法连接时阻塞向此目的地址再次发送数据。
第二方面,本发明实施例提供了一种适用于窄带弱连接网络的数据可靠传输装置,包括发送控制模块、任务队列模块、任务状态管理模块、地址状态管理模块、全局令牌管理模块和发送窗口管理模块;
发送控制模块,用于调用其他模块获取必要信息,并根据获取的信息确定发送的数据及发送策略;
任务队列模块,用于管理所有任务信息,包括数据发送任务和应答任务;任务队列可以采用优先级队列,保证高优先消息优先出队。优先级策略可以和任务有效期或者任务提交时间相结合,例如同优先级情况下提交时间越早越优先,同优先级和同提交时间情况下失效时间越近越优先等。
任务状态管理模块,用于管理任务队列中任务的发送状态信息,例如是否正在发送、上次发送时间、消息有效期和已发送次数等。当发送控制模块发送数据或者收到了应答消息,更新相应的任务状态;从任务队列中取消息时触发消息失效和是否需要重发的判断,不需要单独的定时器。
地址状态管理模块,用于管理目的地址锁定状态,发送方向接收方发送数据后,目的地址状态置为锁定;发送方收到接收方发回的应答消息后,将目的地址状态置为未锁定;为了避免发送过程中数据丢失导致目的地址无法解锁,设计目的地址超时自动解锁机制。目的地址超时自动解锁机制在检查目的地址的状态保持时间超过状态保持最长时间时触发,不需要单独的定时器。
全局令牌管理模块,用于为发送数据提供令牌许可,总令牌数和令牌恢复速率根据当前设备支持的最大上行带宽确定;当索取令牌时触发令牌数的恢复,不需设置单独的定时器。
发送窗口管理模块,用于管理目的地址的发送窗口,发送窗口采取保守的增长策略,适应不稳定的网络环境;发送窗口的调整在发送任务重传或者收到应答消息后触发;
结合第二方面,在一种实现方式中,所述发送控制模块调用以下模块获取必要信息:
(1)调用任务队列模块索取待处理的任务,如果任务队列为空,那么发送控制模块将处于阻塞等待状态;
(2)调用任务状态管理模块获取当前任务的发送状态、失效信息和重发信息,并根据消息发送情况对任务状态进行修改;
(3)调用地址状态管理模块获取当前目的地址的锁定状态,发送数据时设置目的地址状态为锁定;收到应答消息后,设置目的地址状态为未锁定;
(4)调用全局令牌管理模块索取发送令牌;
(5)调用发送窗口管理模块索取当前目的地址的发送窗口,收到应答消息或者等待应答消息超时后,调整目的地址发送窗口。
有益效果:本发明针对弱连接网络环境所设计的传输步骤,免去了源端和目的端绝大部分控制信令的交互,通过采用保守的发送窗口增长策略保证了信道的通畅,尽可能快地实现对信道的满载使用,并适应抖动剧烈的网络,实现了窄带、抖动严重、高往返时延和时断时续的弱连接网络环境下数据的可靠传输。本发明设计的操作步骤可串行执行,易于实现且占用资源小,适合低配置终端。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明实施例提供的一种适用于窄带弱连接网络的可靠数据传输方法的实现步骤流程图。
图2是本发明实施例提供的发送消息在发送过程中涉及状态的状态图。
图3是本发明实施例提供的一种适用于窄带弱连接网络的数据可靠传输装置的组件图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种适用于窄带弱连接网络的可靠数据传输方法的实现步骤流程图,所述方法包括:
步骤1:从任务队列中取任务,并判断任务类型;所述任务类型包括数据发送任务和应答任务;所述数据发送任务用于将发送消息从发送方发送至接收方,所述发送消息为应用软件提交的发送数据;所述应答任务用于发送方处理接收方发回的应答消息,所述应答消息为接收确认报文;如果是数据发送任务,那么执行步骤2;如果是应答任务,那么执行步骤5;
在一种实现方式中,在所述步骤1中,如果任务队列为空,处理流程将阻塞,直到等到新的任务到来。
步骤2、根据所述数据发送任务中发送消息的状态以及发送消息的有效性确定发送内容;
步骤3、分析目的地址可达性和网络状况,索取待发送消息的全局发送令牌,确定发送消息的发送数据量;
步骤4、发送方根据所述发送内容和发送数据量发送数据,发送完成后发送方等待接收方发回的应答消息;
步骤5、处理应答任务,如果所述数据发送任务的发送消息已接收完毕,移除任务队列中所述数据发送任务;如果所述数据发送任务的发送消息未完全接收,将所述数据发送任务中发送消息的发送次数置0;
步骤6、根据发送消息接收情况,调整目的地址的发送窗口。
图2是发送消息在发送过程中涉及状态的状态图。发送消息共有未发送、正在发送、等待确认、发送完成和发送失败五种状态。消息被应用软件提交后处于未发送状态。如果目的地址未锁定,处于未发送状态的消息会变更为正在发送状态。发送消息发送部分数据或者全部数据后,需要等待接收方发回的应答消息,此时进入等待确认状态。收到应答消息后,如果消息未发送完成,此时转换为正在发送状态,并增加发送窗口;如果消息已发送完成,那么进入发送成功状态;如果消息未收到应答消息或者发送过程中出现不可恢复的异常,那么转换为发送失败状态,并减小发送窗口。
在一种实现方式中,所述步骤2包括:
步骤2.1:所述数据发送任务中发送消息的状态处于未发送状态,那么直接执行步骤3;
步骤2.2:所述数据发送任务中发送消息的状态处于正在发送状态,执行步骤2.3检查消息是否失效;
步骤2.3:检查所述数据发送任务中发送消息的发送时间和当前时间间隔,如果时间间隔超过消息保留时间,判定消息失效,从任务队列中移除所述数据发送任务,重新执行步骤1;否则执行步骤2.4;消息保留时间默认设置为网络平均往返时延的3倍或者为应用设定的消息保留时间。
步骤2.4:检查所述数据发送任务中发送消息的发送次数,如果发送次数超过最大重传次数,判定发送消息失效,从任务队列中移除所述数据发送任务,重新执行步骤1;否则执行步骤2.5;最大重传次数一般设定为3次。
步骤2.5:检查所述数据发送任务中发送消息上次发送时间和当前时间间隔,如果时间间隔超过消息重传时间,那么将发送内容替换为发送消息接收状态查询信令。消息重传时间可设置为网络平均往返时延。
在所述步骤2中,通过发送消息的发送时间间隔是否超过消息保留时间和发送消息的发送次数是否超过最大重传次数两个标准判断消息的有效性,在发送消息过程中对消息状态进行检验,不需要单独的线程执行该任务,保证任务的串行执行。
在一种实现方式中,所述步骤3中,所述目的地址可达性根据发送方是否收到接收方的应答消息进行判断,发往同一个目的地址的发送消息通过发送-应答的串行方式发送;
如果发送方没有收到接收方的应答消息,目的地址处于锁定状态,检查处于锁定状态的目的地址的状态保持时间,如果状态保持时间小于等于状态保持最长时间,则判定目的地址不可达,暂停将发送消息发往此目的地址,执行步骤1;如果状态保持时间超过状态保持最长时间,那么将目的地址的状态设置为未锁定;超时解锁设计避免某目的地址被长时间锁定;如果发送方收到接收方的应答消息,目的地址处于未锁定状态,判定目的地址可达。状态保持最长时间根据实际网络条件设置,默认和消息保留时间一致。
在一种实现方式中,所述步骤3中,所述网络状况由目的地址的发送窗口进行限制,考虑到网络可能存在严重的抖动,为防止目的地址的发送窗口失效,检查目的地址对应的发送窗口的最近一次更新时间,如果最近一次更新时间距离当前时间超过发送窗口保鲜时间,判定网络状况未知,将发送窗口重置为初始状态,将最近一次更新时间设置为当前时间。发送窗口的超时重置在查询时发生,保证流程的串行执行。发送窗口保鲜时间根据实际网络抖动情况进行设置,默认设置为120秒。
在一种实现方式中,所述步骤3中,所述全局发送令牌用于限制发送方单位时间内发送的数据量,避免发送数据速率超出网络带宽限制。,根据上次索取令牌时间、当前时间和令牌恢复速率,索取待发送消息的全局发送令牌;在索取待发送消息的全局令牌时触发全局发送令牌的恢复,不需要定时处理,保证流程的串行执行。令牌恢复速率根据当前设备支持的最大上行带宽确定,上行带宽可根据实际网络条件和使用场景提前配置,窄带条件下一般不超过2Mbps。
所述发送消息的发送数据量根据所述网络状况、所述上行带宽使用情况和网络最大传输单元计算获得。
在一种实现方式中,所述步骤4包括:
步骤4.1:发送数据时,将所述数据发送任务中发送消息的发送次数加1并将上次发送时间更新为当前时间,将目的地址状态置为锁定,将所述数据发送任务中发送消息的状态置为正在发送,将待发送数据进行合理分包后使用UDP协议发送;
步骤4.2:发送完成后发送方等待接收方发回的应答消息,将所述数据发送任务中发送消息的状态置为等待确认;若发送方在时间T内收到接收方发回的应答消息,执行步骤5处理应答任务,如果发送消息未发送完成,那么消息状态转换为正在发送,继续发送剩余数据;若发送方在时间T内未接收到接收方发回的应答消息,那么消息仍处于等待确认状态,发送方将向接收方发送确认请求。所述时间T一般设置为网络平均往返时延。
在一种实现方式中,所述步骤6中,目的地址的发送窗口调整采用保守的窗口增长策略:
策略6.1:发送方在时间T内未接收到接收方发回的应答消息,发送窗口重置为初始状态,一般可设置为L,L表示1次发送数据包的最大长度,例如1500字节;
策略6.2:发送数据量等于调整前发送窗口,且未发生数据丢失,且当前发送窗口小于指数增长门限,那么发送窗口指数增长,一般可按照乘以2的速率增长;
策略6.3:发送数据量等于调整前发送窗口,发生少量数据丢失,那么发送窗口按比例线性减少,一般可按照减去4*L的速率减少;
策略6.4:发送数据量等于调整前发送窗口,发生大量数据丢失,那么发送窗口指数减小,一般可按照除以2的速率减小;
策略6.5:发送数据量小于调整前发送窗口,且未发生数据丢失,那么发送窗口根据发送数据量按比例线性增长,一般可按照加上4*L的速率增长。
策略6.6:发送数据量小于调整前发送窗口,且发生数据丢失,发送窗口指数减小,一般可按照除以2的速率减小。
所述目的地址的发送窗口调整完成后,修改发送窗口的最近一次更新时间为当前时间,将目的地址状态修改为未锁定,并更新状态保持时间为当前时间,执行所述步骤1。
发送窗口的更新在收到应答消息或者索取发送窗口大小时触发,不需要定时处理。应答消息的处理优先级高于发送任务,保证发送窗口得到及时调整。
以下为本发明实施例的装置实施例,对于装置实施例中未详细描述的细节,请参考上述对应的方法实施例。
图3是本发明实施例提供的一种适用于窄带弱连接网络的数据可靠传输装置的组件图,所述装置包括:
发送控制模块,用于调用其他模块获取必要信息,并根据获取的信息确定发送的数据及发送策略;
任务队列模块,用于管理所有任务信息,包括数据发送任务和应答任务。任务队列可以采用优先级队列,保证高优先消息优先出队。优先级策略可以和任务有效期或者任务提交时间相结合,例如同优先级情况下提交时间越早越优先,同优先级和同提交时间情况下失效时间越近越优先等。
任务状态管理模块,用于管理任务队列中任务的发送状态信息,例如是否正在发送、上次发送时间、消息有效期和已发送次数等。当发送控制模块发送数据分段或者收到了应答消息后,相应的任务状态需要进行更新。从任务队列中取消息时触发消息失效和是否需要重发的判断,不需要单独的定时器。
地址状态管理模块,用于管理目的地址锁定状态,发送方向接收方发送数据后,目的地址状态置为锁定。发送方收到接收方发回的应答消息后,将目的地址状态置为未锁定。为了避免发送过程中数据丢失导致目的地址无法解锁,设计目的地址超时自动解锁机制。目的地址超时自动解锁机制在检查目的地址的状态保持时间超过状态保持最长时间时触发,不需要单独的定时器。
全局令牌管理模块为发送数据提供令牌许可。总令牌数和令牌恢复速率根据当前设备支持的最大上行带宽确定。当索取令牌时触发令牌数的恢复,不需设置单独的定时器。
发送窗口管理模块管理目的地址的发送窗口。发送窗口采取保守的增长策略,适应不稳定的网络环境。发送窗口的调整在发送任务重传或者收到应答消息后触发,调整策略可参见发明内容章节中的策略6.1~策略6.6。
在一种实现方式中,所述发送控制模块依次调用以下模块获取必要信息:
(1)调用任务队列模块索取待处理的任务。如果任务队列为空,那么发送控制模块将处于阻塞等待状态。
(2)调用任务状态管理模块获取当前任务的发送状态、失效信息和重发信息,并根据消息发送情况对任务状态进行修改。
(3)调用地址状态管理模块获取当前地址的锁定状态。发送数据时需要设置目的地址状态为锁定;收到应答消息后,需要设置目的地址状态为未锁定。
(4)调用全局令牌管理模块索取发送令牌,用以控制全局发送速度,避免超过本机发送设备的上行带宽。上行带宽可根据实际网络条件和使用场景提前配置,窄带条件下一般不超过2Mbps。
(5)调用发送窗口管理模块索取当前目的地址的发送窗口。收到应答消息或者应答消息等待超时后,需要相应地调整目的地址发送窗口,以适配当前网络条件。
本发明提供了一种适用于窄带弱连接网络的可靠数据传输方法和装置的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,包括以下步骤:
步骤1:从数据传输任务队列中取任务,并判断任务类型;所述任务类型包括数据发送任务和应答任务;所述数据发送任务用于将发送消息从发送方发送至接收方,所述发送消息为应用软件提交的发送数据;所述应答任务用于发送方处理接收方发回的应答消息,所述应答消息为接收确认报文;如果是数据发送任务,执行步骤2,如果是应答任务,执行步骤5;
步骤2:根据所述数据发送任务中发送消息的状态以及发送消息的有效性确定发送内容;
步骤3:分析目的地址可达性和网络状况,索取待发送消息的全局发送令牌,确定发送消息的发送数据量;
步骤4:发送方根据所述发送内容和发送数据量发送数据,发送完成后发送方等待接收方发回的应答消息;
步骤5:处理应答任务,如果所述数据发送任务的发送消息已接收完毕,移除任务队列中所述数据发送任务;如果所述数据发送任务的发送消息未完全接收,将所述数据发送任务中发送消息的发送次数置0;
步骤6:根据发送消息接收情况,调整目的地址的发送窗口。
2.根据权利要求1所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,所述发送消息在发送过程中涉及未发送、正在发送、等待确认、发送完成和发送失败五种状态;发送消息被应用软件提交后处于未发送状态;发送消息被发送方发送至接收方后,处于未发送状态的发送消息会变更为正在发送状态;发送消息的部分数据或者全部数据被发送后,发送方等待接收方发回的应答消息,此时进入等待确认状态;发送方收到应答消息后,如果发送消息未发送完成,其状态转换为正在发送状态,并增加发送窗口;如果发送消息已发送完成,那么进入发送成功状态;如果发送方未收到应答消息或者发送过程中出现不可恢复的异常,那么发送消息的状态转换为发送失败状态,并减小发送窗口。
3.根据权利要求2所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,所述步骤2包括:
步骤2.1:所述数据发送任务中发送消息的状态处于未发送状态,直接执行步骤3;
步骤2.2:所述数据发送任务中发送消息的状态处于正在发送状态,执行步骤2.3检查发送消息是否失效;
步骤2.3:检查所述数据发送任务中发送消息的发送时间和当前时间间隔,如果时间间隔超过消息保留时间,判定发送消息失效,从任务队列中移除所述数据发送任务,重新执行步骤1;否则执行步骤2.4;
步骤2.4:检查所述数据发送任务中发送消息的发送次数,如果发送次数超过最大重传次数,判定发送消息失效,从任务队列中移除所述数据发送任务,重新执行步骤1;否则执行步骤2.5;
步骤2.5:检查所述数据发送任务中发送消息的上次发送时间和当前时间间隔,如果时间间隔超过消息重传时间,将发送内容替换为发送消息接收状态查询信令。
4.根据权利要求3所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,所述步骤3中,所述目的地址可达性根据发送方是否收到接收方的应答消息进行判断,发往同一个目的地址的发送消息通过发送-应答的串行方式发送;
如果发送方没有收到接收方的应答消息,目的地址处于锁定状态,检查处于锁定状态的目的地址的状态保持时间,如果状态保持时间小于等于状态保持最长时间,则判定目的地址不可达,暂停将发送消息发往此目的地址,执行步骤1;如果状态保持时间超过状态保持最长时间,将目的地址的状态设置为未锁定状态;如果发送方收到接收方的应答消息,目的地址处于未锁定状态,判定目的地址可达。
5.根据权利要求4所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,所述步骤3中,所述网络状况由目的地址的发送窗口进行限制,检查目的地址对应的发送窗口的最近一次更新时间,如果最近一次更新时间距离当前时间超过发送窗口保鲜时间,判定网络状况未知,将发送窗口重置为初始状态,更新最近一次更新时间;如果最近一次更新时间距离当前时间小于等于发送窗口保鲜时间,判定网络状况正常。
6.根据权利要求5所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,所述步骤3中,所述全局发送令牌用于限制发送方单位时间内发送的数据量,根据上次索取令牌时间、当前时间和令牌恢复速率,索取待发送消息的全局发送令牌;在索取待发送消息的全局令牌时触发全局发送令牌的恢复;所述发送消息的发送数据量根据所述网络状况、上行带宽使用情况和网络最大传输单元获得。
7.根据权利要求6所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,所述步骤4包括:
步骤4.1:发送数据时,更新所述数据发送任务中发送消息的发送次数和上次发送时间,将目的地址状态置为锁定,将所述数据发送任务中发送消息的状态置为正在发送,将待发送数据进行合理分包后使用UDP协议进行发送;
步骤4.2:发送完成后发送方等待接收方发回的应答消息,将所述数据发送任务中发送消息的状态置为等待确认;若发送方在时间T内收到接收方发回的应答消息,执行步骤5处理应答任务,如果发送消息未发送完成,那么消息状态转换为正在发送,继续发送剩余数据;若发送方在时间T内未接收到接收方发回的应答消息,那么消息仍处于等待确认状态,发送方将向接收方发送确认请求。
8.根据权利要求7所述的一种适用于窄带弱连接网络的可靠数据传输方法,其特征在于,在所述步骤6中,目的地址的发送窗口调整采用保守的窗口增长策略:
策略6.1:发送方等待接收方发回的应答消息超时,发送窗口重置为初始状态;
策略6.2:发送数据量等于调整前发送窗口,且未发生数据丢失,且当前发送窗口小于指数增长门限,那么发送窗口指数增长;
策略6.3:发送数据量等于调整前发送窗口,发生少量数据丢失,那么发送窗口按比例线性减少;
策略6.4:发送数据量等于调整前发送窗口,发生大量数据丢失,那么发送窗口指数减小;
策略6.5:发送数据量小于调整前发送窗口,且未发生数据丢失,那么发送窗口根据发送数据量按比例线性增长;
策略6.6:发送数据量小于调整前发送窗口,且发生数据丢失,发送窗口指数减小;
所述目的地址的发送窗口调整完成后,修改发送窗口的最近一次更新时间,将目的地址的状态修改为未锁定,更新目的地址的状态保持时间,执行所述步骤1。
9.一种适用于窄带弱连接网络的可靠数据传输装置,其特征在于,包括发送控制模块、任务队列模块、任务状态管理模块、地址状态管理模块、全局令牌管理模块和发送窗口管理模块;
发送控制模块,用于调用其他模块获取信息,并根据获取的信息确定发送的数据及发送策略;
任务队列模块,用于管理所有任务信息,包括数据发送任务和应答任务;
任务状态管理模块,用于管理任务队列中任务的发送状态信息,当发送控制模块发送数据或者收到了应答消息,更新相应的任务状态;
地址状态管理模块,用于管理目的地址锁定状态,发送方向接收方发送数据后,目的地址状态置为锁定;发送方收到接收方发回的应答消息后,将目的地址状态置为未锁定;
全局令牌管理模块,用于为发送数据提供令牌许可,总令牌数和令牌恢复速率根据当前设备支持的最大上行带宽确定;
发送窗口管理模块,用于管理目的地址的发送窗口,发送窗口采取保守的增长策略;发送窗口的调整在发送任务重传或者收到应答消息后触发。
10.根据权利要求9所述的一种适用于窄带弱连接网络的可靠数据传输装置,其特征在于,所述发送控制模块调用以下模块获取信息:
(1)调用任务队列模块索取待处理的任务,如果任务队列为空,那么发送控制模块将处于阻塞等待状态;
(2)调用任务状态管理模块获取当前任务的发送状态、失效信息和重发信息,并根据消息发送情况对任务状态进行修改;
(3)调用地址状态管理模块获取当前目的地址的锁定状态,发送数据时设置目的地址状态为锁定;收到应答消息后,设置目的地址状态为未锁定;
(4)调用全局令牌管理模块索取发送令牌;
(5)调用发送窗口管理模块索取当前目的地址的发送窗口,收到应答消息或者等待应答消息超时后,调整目的地址发送窗口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011166076.3A CN112367265B (zh) | 2020-10-27 | 2020-10-27 | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011166076.3A CN112367265B (zh) | 2020-10-27 | 2020-10-27 | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112367265A CN112367265A (zh) | 2021-02-12 |
CN112367265B true CN112367265B (zh) | 2023-04-07 |
Family
ID=74510821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011166076.3A Active CN112367265B (zh) | 2020-10-27 | 2020-10-27 | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367265B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824635B (zh) * | 2021-11-24 | 2022-02-22 | 中国电子科技集团公司第二十八研究所 | 一种城市窄带弱连接环境下冗余多径数据可靠传输方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247853A (zh) * | 2018-03-09 | 2019-09-17 | 网宿科技股份有限公司 | Tcp拥塞控制方法、系统、存储介质及网络服务器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257620C (zh) * | 2003-05-30 | 2006-05-24 | 中兴通讯股份有限公司 | 无线链路层发送窗口控制信息的触发方法 |
CN102377631B (zh) * | 2010-08-06 | 2015-08-05 | 北京乾唐视联网络科技有限公司 | 一种基于流量控制的数据传输方法及通信系统 |
CN105847179B (zh) * | 2016-03-23 | 2019-07-26 | 武汉绿色网络信息服务有限责任公司 | 一种dpi系统中数据并发上报的方法及装置 |
CN109905329B (zh) * | 2019-01-04 | 2021-06-08 | 东南大学 | 一种虚拟化环境下任务类型感知的流队列自适应管理方法 |
CN111314229B (zh) * | 2020-02-18 | 2022-04-05 | 中国电子科技集团公司第五十四研究所 | 一种适用于窄带应急通信网络的通信方法 |
-
2020
- 2020-10-27 CN CN202011166076.3A patent/CN112367265B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247853A (zh) * | 2018-03-09 | 2019-09-17 | 网宿科技股份有限公司 | Tcp拥塞控制方法、系统、存储介质及网络服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112367265A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102474463B (zh) | 通信装置以及通信方法 | |
JP5816718B2 (ja) | 通信装置、通信システム、およびデータ通信の中継方法 | |
KR100599920B1 (ko) | 동기식 디지털 계층 전송 네트워크 상에서의 이더넷데이터 흐름을 제어하는 방법 | |
EP0905950A1 (en) | Communication method and data communications terminal with data communication protocol for inter-layer flow control | |
US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
CN101189840A (zh) | 数据单元中继设备和控制该数据单元中继设备的方法 | |
AU2006336276A1 (en) | Efficient loss recovery architecture for loss-decoupled TCP | |
JPWO2008023656A1 (ja) | 通信装置 | |
CN108234087B (zh) | 数据传输方法及发送端 | |
CN104093170A (zh) | 基于tcp的数据传输方法和tcp代理装置 | |
CN114024914A (zh) | 视频数据传输方法、装置及电子设备 | |
US20020120730A1 (en) | Reliability for simple network management protocol trap messages | |
WO2020134755A1 (zh) | 数据传输方法和装置 | |
US6990073B1 (en) | Data packet congestion management technique | |
WO2016173155A1 (zh) | 一种tcp ack报文处理方法及装置 | |
CN110875887A (zh) | 一种基于mqtt协议的通信交互方法及通信交互系统 | |
CN112367265B (zh) | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 | |
CN112995048A (zh) | 数据中心网络的阻塞控制与调度融合方法及终端设备 | |
CN109560897B (zh) | 一种tcp重传方法和装置 | |
CN111163362B (zh) | 一种自适应重传等待时间的视频接收方法及系统 | |
CN117278484A (zh) | 基于令牌桶算法的流量控制方法、装置、设备及存储介质 | |
WO2021212438A1 (zh) | 数据传输方法、装置、系统、终端设备和存储介质 | |
CN115514709B (zh) | 拥塞控制事件队列调度方法、装置、设备和存储介质 | |
CN110022218B (zh) | 组播通讯方法、终端设备及存储介质 | |
KR20030030892A (ko) | 서버와 이동 터미널 사이에 패킷들의 시퀀스들을 전송하는시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |