一种计算机数据传输系统及方法与流程
本发明涉及计算机通信,尤其涉及一种计算机数据传输系统及方法。
背景技术:
1、可靠数据传输通常由发送端维护发送窗口,并根据接收端返回的确认包释放窗口中的发送位置。确认包连续到达时,发送端可据此继续发送数据包,使数据发送节奏随网络状态变化。该方式不需要预先固定链路速率,适用于计算机之间、计算节点之间以及终端与服务器之间的数据传输。
2、数据包和确认包分别经过正向路径与反向路径。正向路径出现排队时,数据包到达接收端的间隔会改变;反向路径出现排队时,原本分散生成的确认包可能在离开排队位置后集中到达发送端。发送端若直接由确认包释放发送节奏,连续到达的确认包便可能连续释放多个发送位置,引起一批数据包在较短时间内进入正向路径。
3、正向路径排队和反向路径确认包集中到达,都可能表现为发送间隔与确认包接收间隔失去原有对应关系,处理方式却不相同。正向路径确有排队时,延长数据包发送间隔可以减少继续进入队列的数据量;若正向路径仍有传输余量,只是确认包在反向路径上被压缩,直接降低数据发送速率会闲置正向路径的传输能力。
4、接收端时间戳能够补充发送端的观察信息,但一次比较仍容易受路径中既有队列影响。发送停止后,正向路径中已发出的数据包仍要继续前行,接收端已生成的确认包也可能尚未通过反向路径。若不先判断正向路径的残留影响是否消退,发送端很难确认当前看到的确认包间隔究竟来自正向数据到达节奏,还是来自反向路径的再次排队和集中释放。
技术实现思路
1、为此,本发明提供一种计算机数据传输方法,以解决正向路径排队与反向路径确认包集中到达容易相互混淆,导致发送端错误降速或过早恢复确认包驱动发送的问题。
2、为实现上述目的,一方面,本发明提供一种计算机数据传输方法,计算机数据传输方法由发送端和接收端配合执行,包括以下步骤:
3、发送端根据确认包发送数据包,在相邻确认包的接收间隔小于对应数据包的发送间隔时暂停发送,并在每次暂停后依次发送长短数据包组和短长数据包组;
4、长短数据包组连续发送长数据包和短数据包,短长数据包组反序发送同类数据量相同的数据包,长数据包的数据量大于短数据包;
5、接收端记录各数据包的接收完成时刻并逐包返回含所述时刻的确认包;
6、发送端确定每组的数据包到达间隔和确认包接收间隔,在短长数据包组的数据包到达间隔不大于长短数据包组的对应间隔时,延长下一次暂停时间并降低数据发送速率,直至短长数据包组的数据包到达间隔首次大于长短数据包组的对应间隔;
7、若此时短长数据包组的确认包接收间隔不大于长短数据包组的对应间隔,则保持发送窗口并按照本地时钟发送后续数据包;
8、发送端以上述首次成立时的暂停时间再次发送两组,在两种间隔均保持前述大于关系时,恢复根据确认包发送数据包。
9、作为计算机数据传输方法的优选技术方案,在短长数据包组的数据包到达间隔首次大于长短数据包组的对应间隔时,发送端保持当前暂停时间,在执行对应控制前交换两个数据包组的发送先后次序并再次发送;
10、若交换前后的数据包到达间隔均保持所述大于关系且确认包接收间隔至少一次不大于长短数据包组的对应间隔,则保持发送窗口并按照本地时钟发送后续数据包;若交换前后的两种间隔均保持所述大于关系,则恢复根据确认包发送数据包;若交换前或交换后的数据包到达间隔未保持所述大于关系,则延长下一次暂停时间并降低数据发送速率。
11、作为计算机数据传输方法的优选技术方案,发送端的首次暂停时间等于触发暂停发送时参与比较的对应数据包的发送间隔;每次短长数据包组的数据包到达间隔不大于长短数据包组的对应间隔时,在当前暂停时间上增加本次短长数据包组的数据包到达间隔,得到下一次暂停时间。
12、作为计算机数据传输方法的优选技术方案,发送端按照本地时钟发送后续数据包时,以交换后短长数据包组的数据包到达间隔确定相邻后续数据包的发送间隔;若用于触发下一数据包发送的确认包不晚于本地时钟确定的发送时刻到达,则在所述发送时刻发送下一数据包;若所述确认包晚于所述发送时刻到达,则在所述确认包到达后发送下一数据包。
13、作为计算机数据传输方法的优选技术方案,所述长短数据包组和短长数据包组中的数据包均取自发送端的待传输数据。
14、作为计算机数据传输方法的优选技术方案,所述数据包到达间隔为同一数据包组中后发送数据包的接收完成时刻与先发送数据包的接收完成时刻之差。
15、作为计算机数据传输方法的优选技术方案,所述确认包接收间隔为对应于后发送数据包的确认包接收时刻与对应于先发送数据包的确认包接收时刻之差。
16、作为计算机数据传输方法的优选技术方案,发送端按照本地时钟发送后续数据包期间保持发送窗口的大小不变,确认包的到达不使数据包早于本地时钟确定的发送时刻发送。
17、作为计算机数据传输方法的优选技术方案,所述降低数据发送速率通过延长后续相邻数据包的发送间隔实现。
18、另一方面,本发明还提供一种计算机数据传输系统,包括发送端和接收端,
19、所述发送端包括发送控制器、发送记录器和确认包接收器,所述接收端包括数据接收器、接收记录器和确认包生成器,其特征在于,发送记录器用于记录数据包的发送时刻和数据量,确认包接收器用于接收确认包并记录确认包接收时刻,接收记录器用于记录数据包的接收完成时刻,确认包生成器用于逐包返回含所述接收完成时刻的确认包;
20、发送控制器用于根据确认包发送数据包,在确认包接收间隔小于对应数据包发送间隔时控制暂停,并在暂停后发送长短数据包组和短长数据包组,所述长短数据包组依次发送长数据包和短数据包,所述短长数据包组依次发送短数据包和长数据包;
21、发送控制器还用于根据发送时刻、接收完成时刻和确认包接收时刻确定两组的数据包到达间隔和确认包接收间隔,在短长数据包组的数据包到达间隔未大于长短数据包组的对应间隔时延长暂停时间并降低发送速率,在数据包到达间隔首次大于所述对应间隔而确认包接收间隔未保持所述大于关系时保持发送窗口并按照本地时钟发送,以及在复测时两种间隔均保持所述大于关系后恢复根据确认包发送数据包。
22、与现有技术相比,本发明的有益效果在于,能够区分路径状态,减少不必要降速和确认包集中到达引起的突发发送。
23、进一步地,本方法的两个数据包组在同一轮中采用相同的长数据量和相同的短数据量,比较时变化的主要因素是组内排列。链路传播时间、两端固定处理时间若在一轮内共同作用于两个组,会同时进入两组记录,不会单独改变哪一组较大的判断方向。系统关注的是间隔关系是否由不成立转为成立,而不是把某个毫秒数直接解释为拥塞程度,因而不必为不同链路逐条标定绝对时延。
24、进一步地,暂停发送改变了路径输入,而不是只在原有流量下被动取样。暂停期间,正向路径不再接收新的数据包,原队列继续释放;接收端已经产生的确认包则沿反向路径继续传输。两个方向都在消退既有排队,但确认包只能在数据包到达接收端以后生成,正向数据关系的恢复天然位于反向确认关系判断之前。先找到接收端侧关系首次恢复的时点,再检查确认包侧关系,可以减少两个方向的残留队列同时参与判断造成的混淆。
25、进一步地,相反的包长排列给路径施加了方向相反而数据量可比的输入。组内后一数据包分别为短数据包和长数据包,经过串行传输位置时,后一数据包的数据量会反映到接收完成时刻之差中。正向队列尚未释放时,队列中原有数据包的离开节奏会掩盖这种差异;队列影响减弱后,短长数据包组的后一长数据包需要较长串行传输时间,所述大于关系重新出现。本方案据间隔关系的方向变化寻找恢复边界,不依赖某个预先标定的带宽值或绝对时延值。
26、进一步地,接收端侧已经恢复而确认包侧尚未恢复时,问题集中在反向确认节奏。此时缩小发送窗口或继续大幅降速,会把反向路径的等待转化为正向路径的空闲。本方案保持窗口,只撤去确认包对发送时刻的直接推动;确认包仍决定窗口位置是否可用,本地时钟则决定何时真正发送。两项条件取较晚者,既不会越过可靠传输限制,也能阻止成批到达的确认包立即释放一批数据包。
27、进一步地,本技术的暂停时间不是机械地按固定步长增加。每轮直接加入短长数据包组的数据包到达间隔,相当于用本轮正向路径实际呈现的时间尺度延长下一轮观察窗口。路径较快时增加量较小,路径较慢或仍有排队时增加量相应变大。找到首次恢复关系后即停止继续延长,可避免为了追求完全空闲而设置过长暂停。
28、进一步地,本方法交换两个数据包组的前后位置,用于区分组内包长排列造成的关系与整组所处先后位置造成的变化。若交换后关系仍随组内排列而不是随整组位置变化,接收端侧的恢复判断更稳定。后续复测继续沿用已找到的暂停时间,可在路径重新排队或反向路径恢复后及时迁移控制方式,不把一次判断长期固定下来。
29、进一步地,本方法的三种控制结果分别对应可观察到的三种状态:接收端侧关系尚未稳定时,继续给正向队列留出释放时间;接收端侧稳定而确认包侧未稳定时,保留正向传输能力,仅限制确认包推动发送的节奏;两侧均稳定时,退出本地时钟接管。状态和动作一一对应,后一次复测还会覆盖前一次结论,因此路径恢复过程中不需要依靠长期有效的人工标志位。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com