1.本发明属于金融数据传输技术领域,尤其涉及一种自适应带宽的数据传输机制。
背景技术:2.在金融行业,金融数据传输有数据量大、可靠性高、低时延、安全性要求高等特点。
3.基于以上特点,金融数据传输对网络环境和资源要求比较高。由于互联网环境的不安全性,金融机构一般通过专线进行数据传输,而专线成本较高,因而很多机构会存在多个业务系统复用同一条专线情况,造成多个业务系统相互挤占带宽,造成数据传输不稳定现象。当用户多个业务系统对网络带宽要求超过网络承载能力,而数据持续从系统中按照指定速率发送到网络时,物理线路容量不足出现拥塞现象,导致时延增大、数据丢失等问题。为了解决以上问题,要求系统能够发现带宽拥塞情况,并能够调整发送速度以适应网络带宽变化情况,软件系统具有自适应机制在数据传输领域至关重要。本发明提供了一种自适应网络带宽的数据传输机制,通过拥塞发现机制后能够自动调节发送速率,避免拥塞,提高传输的灵活性及自适应能力。
4.在进行数据传输时,大多数的应用场景需经过多个应用层节点路由到对端,例如银行业务系统通过前置系统路由到通信机构系统,再从通信机构系统路由到券商前置系统,中间涉及3个系统。而网络传输层tcp的拥塞控制机制只能解决 2个主机之间传输问题,对于跨多个节点(多个应用层主机)、各个节点间线路带宽不一致的场景则无法处理。本发明旨在解决涉及多个应用层路由的复杂通信场景。
5.现有软件系统中的数据传输模块我们称为传输组件,它实现通信过程中发送端与接收端之间数据传输功能,位于网络传输层之上,应用层包含传输组件,网络通信模型参考图7。当应用层有数据传输时,发送端调用传输组件将数据传入传输层,之后通过物理链路到接收端网络传输层,接收端从网络传输层接收数据后,递交给传输组件处理,之后再把数据递送到应用层。传输组件的设计可简化两端应用层逻辑,应用层进行数据传输时只需调用传输组件,获取结果即可。传输组件包括握手机制(版本协商,传输速率协商)、滑动窗口、断点续传、非完整文件传输(边上传边下载)、并发控制、流量控制、压缩等功能,现有传输组件处理流程参考图8。现有传输组件通信收发双方首先协商版本和收发速率,之后由接收端发送获取数据块请求。接收端根据自己窗口大小,发送未接收的数据块请求。发送端根据双方协商的发送速率将数据发送到网络。
6.双方协商的发送速率是根据双方配置的带宽取两者最小值换算的速率,这个双方最小带宽我们称为逻辑带宽,一般与线路实际带宽相等。当该专线被其它系统复用时,实际分配给传输组件的带宽(称为物理带宽)就会降低。当物理带宽和用户配置的逻辑带宽不一致,网络容量无法满足逻辑带宽设定的发送数据量时,就会发生拥塞(数据堵在网络途中,暂时无法到达接收端,如上图中红色箭头部分,数据在途堵塞中)。接收端在限定时间内收不到数据块会再次发送请求,发送端收到请求会再次以逻辑带宽换算的速率将数据块发送到网络,如此反复,从而使堵塞越来越严重。
7.在金融数据传输领域,数据需要实时可靠传输,所以重传机制应用相当广泛,当发生数据丢失情况,传输组件无法识别是因为堵塞造成延时收不到数据,还是数据已在中间丢失,所以接收端收不到数据块会不断的发送重复的数据块请求,发送端也会重复应答相同的请求。如果网络堵塞造成数据不可达,触发多次的请求和重传,会加重网络的拥塞情况。所以拥塞发现和拥塞控制是解决问题的关键,本发明可在应用层跨多节点进行通信时,能够具有拥塞发现和拥塞控制机制来自动调节发送速率来适应带宽情况,确保数据可靠、有序的传输。
技术实现要素:8.本发明的目的在于:为了解决1、传输过程出现物理带宽和逻辑带宽不匹配时,无法探测到网络实际可用容量;2、传输过程出现拥塞后仍旧按原有速率发送数据,引发更严重的堵塞;3、传输过程无法识别数据块是否丢失,重复的数据请求导致重复发送,造成数据冗余的的问题,而提出的一种自适应带宽的数据传输机制。
9.为了实现上述目的,本发明采用了如下技术方案:
10.一种自适应带宽的数据传输机制,其特征在于,具体包括以下步骤:
11.s1、对发送的数据块进行编号,如一个10m的数据,每次传输1m,则要分 10次传输完成;
12.s2、接收端收到每个数据块后,需回复一个应答,该应答内容包含当前收到的数据块编号和已收到的连续块的最大编号;
13.s301、接收端根据自己窗口大小(比如窗口大小为50),为了防止并发量大时初始请求数过大,首先发前5个块的请求:获取数据块请求(1,2,3,4,5),之后再根据收到的数据块数目逐渐右移窗口;
14.s302、发送端发送第一个数据块(1);
15.s303、发送端继续按自己的速率发送第二个数据块(2);
16.s304、接收端收到第一个数据块后,回复应答:收到的块编号为1,目前已收到的连续块最大编号为1,即[1,1];
[0017]
s305、接收端收到第二个数据块后,回复应答[2,2]:假设该应答丢失;
[0018]
s306、发送端继续按自己的速率发送第三个数据块(3);
[0019]
s307、发送端继续按自己的速率发送第四个数据块(4),假设该数据块丢失;
[0020]
s308、发送端继续按自己的速率发送第五个数据块(5);
[0021]
s309、接收端收到第五个数据块后,回复应答:收到的块编号为5,目前已收到的连续块最大编号为3(因为4丢失未收到),即[5,3];
[0022]
s4、根据s301-s309,可从收到的数据块应答确认数据包的3种异常情况;
[0023]
s5、当发生拥塞后,降低发送方速率来解决拥塞问题,首先降低到一个很低的带宽,如64kbps(即8kb/s的速率)发送数据,之后再根据网络恢复情况逐渐升速,逐渐探测到实际可用带宽;
[0024]
s6、为保证数据传输的正确性,可通过快速重传或被动重传的方式进行数据重传。
[0025]
作为上述技术方案的进一步描述:
[0026]
所述s4中,第一,应答丢失:第二块的确认应答丢失,但是根据收到的应答[5,3],
可以确定目前接收端收到的最大连续块是3,说明1,2,3都已收到,这种情况无需进行异常处理;第二,数据块丢失:从收到的应答[5,3]来看,发送端得知接收端1,2,3,5数据块已收到,但是发的第4块数据接收端没收到, 4发生了丢包,这种情况需要重传,第三,出现堵塞:发送端在一定时间内未收到任何应答,如图6中第6,7,8,9,10块数据的请求,发送端已发第6,7,8,9,10数据块,但是一段时间内没收到任何应答,之后又收到对重复数据块的请求,直到超时时间后仍旧未收到应答,则判定为网络堵塞,这种情况就需要进行拥塞处理来缓解堵塞。
[0027]
作为上述技术方案的进一步描述:
[0028]
所述s5中,降速:发生拥塞后,速率直接降低到64kbps(取一个低带宽为起点);升速:设t为从发送一个数据块开始,到收到对方数据块应答的实际用时,又设t为以当前速率传输一个数据块所需的理论用时,当t《t+(2-5s)时,则认为传输比较快,然后以倍数方式升速,如:下降到64kbps后, t=1m/64kbps=128s,如果确认应答的回复时间在133s内,则将速率调整到 64*2=128kbps,当基于该速率仍比较快,则再次翻倍.直到稳定在达不到升速条件(t≥t+(2-5s))的速率。
[0029]
作为上述技术方案的进一步描述:
[0030]
所述升速条件为:当上升到某个速率后,再次在一定时间内未收到任何数据块应答,则将速率再次降到64kbps,当翻倍后速率大于逻辑带宽,则最大值取逻辑带宽。
[0031]
作为上述技术方案的进一步描述:
[0032]
所述s6中,快速重传:在拥塞发现过程的第2点数据块丢失判断中,我们从收到的应答可知接收端未收到第4块数据,当收到3个“最大连续块编号”相同的应答时,立即重传,如收到[5,3],[6,3],[7,3]应答,立即重传第4块数据。
[0033]
作为上述技术方案的进一步描述:
[0034]
所述s6中,被动重传:接收端发完最后一个块请求后,会再次扫描,重新发送未收到的漏洞块请求,发送端只按照收到的请求驱动重传机制。
[0035]
本方案中:
[0036]
1、在接收端增加对已收到数据块的应答,发送端通过收到的应答信息发现拥塞,无论中间经过多少应用层节点,发送端总能根据接收端的应答进行拥塞发现;
[0037]
2、应用可根据实际使用情况选择合适的重传机制,因本发明在数据传输过程中支持并发机制,即:数据无需有序到达接收端。所以本发明以被动重传为主,先依次向后滑动窗口发送请求块,待发送完后再重新检测数据完整性,重新请求漏洞数据块。发送端收到漏洞请求后根据发送端拥塞控制模块内标记的数据块状态再重传需要重传的数据。相对于快速重传机制,被动重传更优,根据接收端接收位图重传数据,避免数据重复接收。
[0038]
综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0039]
1、本发明中,拥塞发现机制可以检测到网络发生拥塞,之后通过拥塞控制机制主动降低发送速率,缓解拥塞,降速后,能根据实际传输情况通过慢启动策略逐渐恢复传输速率,逐渐试探实际容量,最终稳定到实际可支持的速率进行数据传输。
[0040]
2、本发明中,数据最终以稳定的速率传输,若长期保持该速率,则用户也可感知该实际传输速率和配置逻辑带宽不匹配,能够发现物理带宽不足的情况,重传机制通过接收端接收位图告知发送端未收到的数据块,发送端只重传丢失的数据,减少数据重复接收概
率。
附图说明
[0041]
图1为本发明提出的一种自适应带宽的数据传输机制的发送端和接收端带宽协商流程示意图;
[0042]
图2为本发明提出的一种自适应带宽的数据传输机制的发送端和接收端数据传输交互流程示意图;
[0043]
图3为本发明提出的一种自适应带宽的数据传输机制的拥塞处理模块原理图;
[0044]
图4为本发明提出的一种自适应带宽的数据传输机制的数据块的记录参数示意图;
[0045]
图5为本发明提出的一种自适应带宽的数据传输机制的数据分块算法示意图;
[0046]
图6为本发明提出的一种自适应带宽的数据传输机制的传输流程示意图;
[0047]
图7为本发明提出的一种自适应带宽的数据传输机制的现有网络通信模型示意图;
[0048]
图8为本发明提出的一种自适应带宽的数据传输机制的现有传输流程示意图。
具体实施方式
[0049]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0050]
请参阅图1-8,本发明提供一种技术方案:一种自适应带宽的数据传输机制,具体包括以下步骤:
[0051]
s1、对发送的数据块进行编号,如一个10m的数据,每次传输1m,则要分 10次传输完成;
[0052]
s2、接收端收到每个数据块后,需回复一个应答,该应答内容包含当前收到的数据块编号和已收到的连续块的最大编号,参考图6,表示方式为[收到的块编号,最大连续块编号];
[0053]
s301、接收端根据自己窗口大小(比如窗口大小为50),为了防止并发量大时初始请求数过大,首先发前5个块的请求:获取数据块请求(1,2,3,4,5),之后再根据收到的数据块数目逐渐右移窗口;
[0054]
s302、发送端发送第一个数据块(1);
[0055]
s303、发送端继续按自己的速率发送第二个数据块(2);
[0056]
s304、接收端收到第一个数据块后,回复应答:收到的块编号为1,目前已收到的连续块最大编号为1,即[1,1];
[0057]
s305、接收端收到第二个数据块后,回复应答[2,2]:假设该应答丢失;
[0058]
s306、发送端继续按自己的速率发送第三个数据块(3);
[0059]
s307、发送端继续按自己的速率发送第四个数据块(4),假设该数据块丢失;
[0060]
s308、发送端继续按自己的速率发送第五个数据块(5);
[0061]
s309、接收端收到第五个数据块后,回复应答:收到的块编号为5,目前已收到的连续块最大编号为3(因为4丢失未收到),即[5,3];
[0062]
s4、根据s301-s309,可从收到的数据块应答确认数据包的3种异常情况;第一,应答丢失:第二块的确认应答丢失,但是根据收到的应答[5,3],可以确定目前接收端收到的最大连续块是3,说明1,2,3都已收到,这种情况无需进行异常处理;第二,数据块丢失:从收到的应答[5,3]来看,发送端得知接收端 1,2,3,5数据块已收到,但是发的第4块数据接收端没收到,4发生了丢包,这种情况需要重传,第三,出现堵塞:发送端在一定时间内未收到任何应答,如图6中第6,7,8,9,10块数据的请求,发送端已发第6,7,8,9,10数据块,但是一段时间内没收到任何应答,之后又收到对重复数据块的请求,直到超时时间后仍旧未收到应答,则判定为网络堵塞,这种情况就需要进行拥塞处理来缓解堵塞;
[0063]
s5、当发生拥塞后,降低发送方速率来解决拥塞问题,首先降低到一个很低的带宽,如64kbps(即8kb/s的速率)发送数据,之后再根据网络恢复情况逐渐升速,逐渐探测到实际可用带宽,降速:发生拥塞后,速率直接降低到64kbps (取一个低带宽为起点);升速:设t为从发送一个数据块开始,到收到对方数据块应答的实际用时,又设t为以当前速率传输一个数据块所需的理论用时,当 t《t+(2-5s)时,则认为传输比较快,然后以倍数方式升速,如:下降到64kbps 后,t=1m/64kbps=128s,如果确认应答的回复时间在133s内,则将速率调整到 64*2=128kbps,当基于该速率仍比较快,则再次翻倍.直到稳定在达不到升速条件(t≥t+(2-5s))的速率,所述升速条件为:当上升到某个速率后,再次在一定时间内未收到任何数据块应答,则将速率再次降到64kbps,当翻倍后速率大于逻辑带宽,则最大值取逻辑带宽;
[0064]
s6、为保证数据传输的正确性,可通过快速重传或被动重传的方式进行数据重传,快速重传:在拥塞发现过程的第2点数据块丢失判断中,我们从收到的应答可知接收端未收到第4块数据,当收到3个“最大连续块编号”相同的应答时,立即重传,如收到[5,3],[6,3],[7,3]应答,立即重传第4块数据,被动重传:接收端发完最后一个块请求后,会再次扫描,重新发送未收到的漏洞块请求,发送端只按照收到的请求驱动重传机制。
[0065]
本发明在传输组件上通过拥塞处理模块使软件能发现拥塞,自适应带宽进行数据传输,具体实施方式如下:
[0066]
拥塞处理模块关于数据块的记录参数字段有(参考图4):“索引号”唯一确定块编号;“状态”即图3中的5种状态;“发送时间”即按照发送速率发送完整块数据时的时间点;“按发送时的速率计算的超时时间”字段的计算算法如下:
[0067]
参考图5,假设有n块数据需要传输,t:数据传输理论时间。表示理论上传输一个数据块需要的时间,即块大小除以发送该块时的速率,正常情况下发送速率是按照逻辑带宽换算的速率,假设逻辑带宽为2mbps,换算为发送速率为 256kb/s。如上图所示,假设一块数据为1m,则发送该块到接收端所需时间为4s。当降速或升速导致速率变化时,按照实际发送速率计算。
[0068]
t:数据传输实际时间。初始值为发送第一个数据块到收到该数据块的应答所花费的时间;之后为此次收到应答时间与上次收到应答时间差。
[0069]“按发送时速率计算的超时时间”算法为:max(3s,3t)+min(接收端处理时延,60s),如果t大于该值则超时。
[0070]
其中接收端处理时延表示接收端收到数据块到将该数据块写磁盘这段时间的时延。该处理时延通过接收端设置进传输的数据信息结构体内,发送端从数据信息结构体内获取。本发明考虑数据块传输过程中所有处理环节的用时来调整发送速率,使其更精准。
[0071]
max(3s,3t)表示取两者最大值:如果3t《3s(s:秒),则取3s。这个设计是防止带宽比较大时计算出来的t过小,假设有20m,则发送1m数据逻辑上只需要t=0.4s,则3t=1.2s《3s,我们就将最小超时时间设置为3s。min(接收端处理时延,60s)表示取两者最小值:如果接收端处理时延超过60s,则最多考虑60s (因接收端60s没有收到任何数据则会终止数据传输,故最多考虑60s)。
[0072]
如图3所示,拥塞处理模块会定时检查每个发送过的数据块是否超时还未收到应答。判断标准为:
[0073]
当前时间-(发送时间+按发送时速率计算的超时时间)》=0;
[0074]
如果当前时间已经到了逻辑上的超时时间点,并且有3块都超时未确认,则降速,降速后将现有的拥塞处理模块内的数据块的“是否降速过”标记都置为“是
”ꢀ
(收到新的数据块请求后的初始值为“否”),防止下次定时器检测时,再次触发降速。
[0075]
实施流程如下:
[0076]
第一步,接收端发送获取数据块请求,该请求带的数据块索引号,可唯一确定数据块编号。发送端收到请求后加入拥塞处理模块的发送队列。
[0077]
第二步,拥塞处理模块将数据块置为“初始状态”。发送端发送数据前先通过拥塞处理模块检查该数据块是否需要发送,防止该块被多次请求重复发送,若已被接收方确认,状态为“确认应答”,则不再发送。
[0078]
第三步,若需要发送,则发送端先按照协商的发送速率将数据块发出后,记录发送时间,并根据发送的数据量和发送速率计算出逻辑上需要的传输时间t,进而计算出超时时间并记录,标记该块状态为“等待应答”。
[0079]
第三步,接收端收到数据块后,回复应答,应答包含的内容为[收到的块编号,最大连续块编号]。
[0080]
第四步,发送端在超时时间内收到应答后就将该数据块及最大连续编号之前的数据块状态都置为“确认应答”(因为最大连续块前面的都是接收方已确认收到了,只是可能应答丢失)。如果连续收到3个应答的最大连续编号一样,则将最大连续编号之后及确认应答块之前的已超时数据块状态置为“等待重传”(如连续收到的3个应答为[5,3],[6,3],[7,3],若第4块数据状态已超时,则将第4块数据置为“等待重传”)。
[0081]
第五步,发送端定时检查发送队列中标记“等待应答”的数据块,如果超时,则将该数据块状态置为“超时”。如果超过3个还未被标记降速过的数据块都超时,则降速。
[0082]
第六步,当收到应答的时间t《t+(2-5s)时,则认为网络传输比较快,就以慢启动策略升速,直到达不到该升速条件后,则稳定在该速率上。
[0083]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
技术特征:1.一种自适应带宽的数据传输机制,其特征在于,具体包括以下步骤:s1、对发送的数据块进行编号,如一个10m的数据,每次传输1m,则要分10次传输完成;s2、接收端收到每个数据块后,需回复一个应答,该应答内容包含当前收到的数据块编号和已收到的连续块的最大编号;s301、接收端根据自己窗口大小,为了防止并发量大时初始请求数过大,首先发前5个块的请求:获取数据块请求(1,2,3,4,5),之后再根据收到的数据块数目逐渐右移窗口;s302、发送端发送第一个数据块(1);s303、发送端继续按自己的速率发送第二个数据块(2);s304、接收端收到第一个数据块后,回复应答:收到的块编号为1,目前已收到的连续块最大编号为1,即[1,1];s305、接收端收到第二个数据块后,回复应答[2,2]:假设该应答丢失;s306、发送端继续按自己的速率发送第三个数据块(3);s307、发送端继续按自己的速率发送第四个数据块(4),假设该数据块丢失;s308、发送端继续按自己的速率发送第五个数据块(5);s309、接收端收到第五个数据块后,回复应答:收到的块编号为5,目前已收到的连续块最大编号为3,即[5,3];s4、根据s301-s309,可从收到的数据块应答确认数据包的3种异常情况;s5、当发生拥塞后,降低发送方速率来解决拥塞问题,首先降低到一个很低的带宽,如64kbps发送数据,之后再根据网络恢复情况逐渐升速,逐渐探测到实际可用带宽;s6、为保证数据传输的正确性,可通过快速重传或被动重传的方式进行数据重传。2.根据权利要求1所述的一种自适应带宽的数据传输机制,其特征在于,所述s4中,第一,应答丢失:第二块的确认应答丢失,但是根据收到的应答[5,3],可以确定目前接收端收到的最大连续块是3,说明1,2,3都已收到,这种情况无需进行异常处理;第二,数据块丢失:从收到的应答[5,3]来看,发送端得知接收端1,2,3,5数据块已收到,但是发的第4块数据接收端没收到,4发生了丢包,这种情况需要重传,第三,出现堵塞:发送端在一定时间内未收到任何应答,如图六中第6,7,8,9,10块数据的请求,发送端已发第6,7,8,9,10数据块,但是一段时间内没收到任何应答,之后又收到对重复数据块的请求,直到超时时间后仍旧未收到应答,则判定为网络堵塞,这种情况就需要进行拥塞处理来缓解堵塞。3.根据权利要求1所述的一种自适应带宽的数据传输机制,其特征在于,所述s5中,降速:发生拥塞后,速率直接降低到64kbps;升速:设t为从发送一个数据块开始,到收到对方数据块应答的实际用时,又设t为以当前速率传输一个数据块所需的理论用时,当t<t+(2-5s)时,则认为传输比较快,然后以倍数方式升速,如:下降到64kbps后,t=1m/64kbps=128s,如果确认应答的回复时间在133s内,则将速率调整到64*2=128kbps,当基于该速率仍比较快,则再次翻倍.直到稳定在达不到升速条件的速率。4.根据权利要求3所述的一种自适应带宽的数据传输机制,其特征在于,所述升速条件为:当上升到某个速率后,再次在一定时间内未收到任何数据块应答,则将速率再次降到64kbps,当翻倍后速率大于逻辑带宽,则最大值取逻辑带宽。5.根据权利要求1所述的一种自适应带宽的数据传输机制,其特征在于,所述s6中,快速重传:在拥塞发现过程的第2点数据块丢失判断中,我们从收到的应答可知接收端未收到
第4块数据,当收到3个“最大连续块编号”相同的应答时,立即重传,如收到[5,3],[6,3],[7,3]应答,立即重传第4块数据。6.根据权利要求1所述的一种自适应带宽的数据传输机制,其特征在于,所述s6中,被动重传:接收端发完最后一个块请求后,会再次扫描,重新发送未收到的漏洞块请求,发送端只按照收到的请求驱动重传机制。
技术总结本发明公开了一种自适应带宽的数据传输机制,属于金融数据传输技术领域,对发送的数据块进行编号,如一个10M的数据,每次传输1M,则要分10次传输完成;接收端收到每个数据块后,需回复一个应答。本发明中,拥塞发现机制可以检测到网络发生拥塞,之后通过拥塞控制机制主动降低发送速率,缓解拥塞,降速后,能根据实际传输情况通过慢启动策略逐渐恢复传输速率,逐渐试探实际容量,最终稳定到实际可支持的速率进行数据传输,数据最终以稳定的速率传输,若长期保持该速率,则用户也可感知该实际传输速率和配置逻辑带宽不匹配,能够发现物理带宽不足的情况,发送端只重传丢失的数据,减少数据重复接收概率。据重复接收概率。据重复接收概率。
技术研发人员:林国彪 徐莹莹 利驿飞 陈仲恒 谢檾
受保护的技术使用者:深圳证券通信有限公司
技术研发日:2022.07.21
技术公布日:2022/11/1