CN105721333B - 一种数据传输装置及方法 - Google Patents
一种数据传输装置及方法 Download PDFInfo
- Publication number
- CN105721333B CN105721333B CN201610039213.4A CN201610039213A CN105721333B CN 105721333 B CN105721333 B CN 105721333B CN 201610039213 A CN201610039213 A CN 201610039213A CN 105721333 B CN105721333 B CN 105721333B
- Authority
- CN
- China
- Prior art keywords
- communication terminal
- data packet
- data
- round
- packet
- 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
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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- 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
- H04L47/263—Rate modification at the source after receiving feedback
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供的数据传输装置及方法,涉及数据传输领域。在数据传输的过程中,检测往返时延的变化情况,估算网络状态,对数据包的发送进行流量控制。通过估算网络的抖动来避免拥塞,来提高数据传输***中数据的传输效率。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种数据传输装置及方法。
背景技术
目前现有的互联网多媒体通信技术中,大多通过TCP或者UDP进行数据传输。用户接入互联网时,接入地点、接入设备、数据信号强度等因素对传输的效率产生影响。在TCP或者UDP技术中,大多数都是通过反馈的方式来保证信息的可靠性,但是这种形式对多媒体实时通信来说,实时性、传输效率低了很多。单纯的通过UDP、TCP技术很难满足实时流媒体应用场景。因此,如何在保证信息可靠性的前提下,提高数据传输的实时性、传输效率是目前面临的一大课题。
发明内容
有鉴于此,本发明实施例的目的在于提供一种数据传输装置及方法。
本发明实施例提供的一种数据传输装置,应用于第一通信终端,所述第一通信终端与至少一个第二通信终端通信连接,所述数据传输装置包括:
数据发送模块,用于向所述第二通信终端发送第一数据包;
反馈接收模块,用于接收所述第二通信终端在接收到所述第一数据包后反馈的带有确认标志的第二数据包;
往返时延计算模块,用于根据发送所述第一数据包的时间和接收所述第二数据包的时间计算往返时延;
平滑往返时延计算模块,用于对预设的时间段内计算得到的多个往返时延进行统计,根据往返时延的变化率计算平滑往返时延,以衡量该时间段内的网络实际延时情况;
网络状态估算模块,用于根据所述往返时延以及所述平滑往返时延估算网络状态;
发送流量调整模块,用于根据估算出的网络状态调整所述数据发送模块向所述第二通信终端发送所述第一数据包的流量大小。
优选地,所述数据传输装置还包括:
变化率检测模块,用于对计算出的所述往返时延和所述平滑往返时延的变化率进行检测;
往返时延标志发送模块,用于当所述往返时延或所述平滑往返时延的变化率超过预设的变化率阈值时,向所述第二通信终端发送带有往返时延标志的第三数据包;
所述发送流量调整模块还用于接收所述第二通信终端发送的带有往返时延标志的第三数据包,并在接收到第二通信终端发送的第三数据包时,调整发送所述第一数据包的流量大小。
优选地,所述数据传输装置还包括:
丢包检测模块,用于检测接收所述第二通信终端发送的第一数据包时的丢包情况,检测到丢包时,向所述第二通信终端反馈带有未确认标志的第四数据包;
所述数据发送模块还用于接收所述第二通信终端反馈的带有未确认标志的第四数据包,并在接收到第二通信终端发送的第四数据包时,重新向所述第二通信终端发送所述第一数据包。
优选地,所述数据传输装置还包括:
丢包检测模块还用于检测到由于丢包导致与所述第二通信终端无法通信时,向所述第二通信终端发送带有结束标志的第五数据包;
连接重置模块,用于接收所述第二通信终端发送的带有结束标志的第五数据包,并在接收到第二通信终端发送的第五数据包时,重新建立与所述第二通信终端的通信连接。
优选地,所述发送流量调整模块根据估算出的网络状态调整发送所述第一数据包的流量大小方式为:
按照预设的增长参数控制发送窗口的大小呈线性增长以增大所述流量大小;或者
按照预设的减小参数控制发送窗口的大小呈指数下降以减小所述流量大小。
本发明实施例提供的一种数据传输方法,应用于第一通信终端,所述第一通信终端与至少一个第二通信终端通信连接,所述数据传输方法包括:
向所述第二通信终端通信发送第一数据包;
接收所述第二通信终端在接收到所述第一数据包后反馈的带有确认标志的第二数据包;
根据发送所述第一数据包的时间和接收所述第二数据包的时间计算往返时延;
对预设的时间段内计算得到的多个往返时延进行统计,根据往返时延的变化率计算平滑往返时延,以衡量该时间段内的网络实际延时情况;
根据所述往返时延以及所述平滑往返时延估算网络状态;
根据估算出的网络状态调整所述数据发送模块向所述第二通信终端发送所述第一数据包的流量大小。
优选地,所述方法还包括:
对计算出的所述往返时延和所述平滑往返时延的变化率进行检测;
当所述往返时延或所述平滑往返时延的变化率超过预设的变化率阈值时,向所述第二通信终端发送带有往返时延标志的第三数据包;
接收所述第二通信终端发送的带有往返时延标志的第三数据包,并在接收到第二通信终端发送的第三数据包时,调整发送所述第一数据包的流量大小。
优选地,所述方法还包括:
检测接收所述第二通信终端发送的第一数据包时的丢包情况,检测到丢包时,向所述第二通信终端反馈带有未确认标志的第四数据包;
接收所述第二通信终端反馈的带有未确认标志的第四数据包,并在接收到第二通信终端发送的第四数据包时,重新向所述第二通信终端发送所述第一数据包。
优选地,所述方法还包括:
检测到由于丢包导致与所述第二通信终端无法通信时,向所述第二通信终端发送带有结束标志的第五数据包;
接收所述第二通信终端发送的带有结束标志的第五数据包,并在接收到第二通信终端发送的第五数据包时,重新建立与所述第二通信终端的通信连接。
优选地,所述根据估算出的网络状态调整发送所述第一数据包的流量大小的步骤包括:
按照预设的增长参数控制数据传输装置的发送窗口的大小呈线性增长以增大所述流量大小;或者
按照预设的减小参数控制数据传输装置的发送窗口的大小呈指数下降以减小所述流量大小。
与现有技术相比,本发明实施例提供的数据传输装置及方法,在数据传输的过程中,检测往返时延的变化情况,估算网络状态,对数据包的发送进行流量控制。通过估算网络的抖动来避免拥塞,来提高数据传输***中数据的传输效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的第一通信终端与第二通信终端之间进行交互的示意图。
图2为本发明较佳实施例提供的图1所示第一通信终端的方框示意图。
图3为本发明较佳实施例提供的图2数据传输装置的功能模块示意图。
图4为本发明较佳实施例提供的应用于数据传输装置的数据传输方法的流程图。
图5为本发明较佳实施例提供的数据传输方法中调整发送流量大小的方法流程图。
图6为本发明较佳实施例提供的数据传输方法中丢包时重新发送数据的方法流程图。
图7为本发明较佳实施例提供的数据传输方法中重新建立通信连接的方法流程图。
主要元件符号说明
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是本发明较佳实施例提供的数据传输***中第一通信终端100与第二通信终端200之间进行交互的示意图。所述第一通信终端100与一个或多个第二通信终端200之间通过网络进行通信连接,以进行数据通信或交互。所述第一通信终端100和第二通信终端200可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。在本实施例中,所述第一通信终端100作为数据发送端,所述第二通信终端200作为数据接收端。但是,所应理解的是,所述第二通信终端200也可作为数据发送端,而所述第一通信终端100相应可作为数据接收端。即,本实施例所述的第一通信终端100和第二通信终端200可以是相同结构的通信终端。使用“第一”和“第二”的术语来区分不同的通信终端仅仅是为了方便描述,而不是对特定通信终端的结构或组成存在任何限定。
如图2所示,是本发明较佳实施例提供的图1所示的第一通信终端100的方框示意图。所述第一通信终端100包括数据传输装置10、存储器20以及处理器30。
所述存储器20以及处理器30各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据传输装置10包括至少一个可以软件或固件(firmware)的形式存储于所述存储器20中或固化在所述第一通信终端100的操作***(operating system,OS)中的软件功能模块。所述处理器30用于执行存储器20中存储的可执行模块,例如所述数据传输装置10包括的软件功能模块或计算机程序。
其中,存储器20可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器20用于存储程序,所述处理器30在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的数据传输装置10所执行的方法可以应用于处理器30中,或者由处理器30实现。
处理器30可能是一种集成电路芯片,具有信号的处理能力。上述的处理器30可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参阅图3,为本发明较佳实施例提供的图2数据传输装置10的功能模块示意图。所述数据传输装置10包括数据发送模块101、反馈接收模块102、往返时延计算模块103、平滑往返时延计算模块104、网络状态估算模块105、变化率检测模块106、往返时延标志发送模块107、丢包检测模块108、发送流量调整模块109以及连接重置模块110。
所述数据发送模块101用于向所述第二通信终端200发送第一数据包。
第一数据包为通信终端之间相互通信的数据部分,如视频会议***中相互发送的视频数据。在本实施例中,数据传输装置10可以向指定的一个或多个所述第二通信终端200发送第一数据包,也可以向与第一通信终端100连接的所有第二通信终端200发送第一数据包。
所述反馈接收模块102用于接收到来自所述第二通信终端200反馈的带有确认标志的第二数据包后,所述第二数据包为自所述第二通信终端200在接收到所述第一数据包后发送的。
在本实施例中,第一通信终端100和第二通信终端200具有相同的功能模块,可执行相同的操作。
当第二通信终端200接收到来自所述第一通信终端100发送的第一数据包时,需要向发送该第一数据包的第一通信终端100反馈带有确认标志的第二数据包,以表示接收到其发送的第一数据包,而且没有发生丢包。同样,当第一通信终端100接收到第二通信终端200发送的第一数据包时,也反馈带有确认标志的第二数据包。
数据传输装置10通过统计发出的第一数据包的数量和接收到的第二数据包的数量,可以对网络状态进行判断。接收到的第二数据包的数量与第一数据包的数量越接近,就说明网络状态越好。
所述往返时延计算模块103用于根据发送所述第一数据包的时间和接收所述第二数据包的时间计算往返时延。
衡量网络状态的参数,除了数据传输的成功率以外,还包数据传输的时间。从发出第一数据包的时间开始计算,到接收到由该第一数据包反馈的第二数据包的时间结束,即为发送第一数据包的第一通信终端100与反馈第二数据包的第二通信终端200之间的往返时延。在数据传输过程中,第一通信终端100与其他的每一个与之连接第二通信终端200之间,由于网络状态的不同,计算出的往返时延可能是不相同的。通过分别计算第一通信终端100与其他各个数第二通信终端200的往返时延,可以得到第一通信终端100与其他的每一个第二通信终端200的网络状态。
所述平滑往返时延计算模块104用于对预设的时间段内计算得到的多个往返时延进行统计,根据往返时延的变化率计算平滑往返时延,以衡量该时间段内的网络实际延时情况。
在数据传输的过程中,每一组对应的第一数据包和第二数据包,都计算出一个往返时延,而该往返时延只能表示某一个时间点的网络状态。在本实施例中,对计算得到的多个往返时延进行统计,根据在一段时间内往返时延的变化趋势、变化率,得到平滑往返时延,平滑往返时延为往返时延的统计平均值、期望值或者估计值,以衡量该时间段内的网络实际延时情况。平滑往返时延表示的是一段时间内的整体网络状态。
所述网络状态估算模块105用于根据所述往返时延以及所述平滑往返时延估算网络状态。
在本实施例中,网络状态包括当前的网络带宽、网络延时等。在计算得到了往返时延以及所述平滑往返时延的基础上,可以对未来一定时间段内的网络状态进行估算,进而可以对数据发送的方式进行预先调试,以适应网络状态可能发生的变化。
所述变化率检测模块106用于对计算出的所述往返时延和所述平滑往返时延的变化率进行检测。
所述往返时延标志发送模块107用于当所述往返时延或所述平滑往返时延的变化率超过预设的变化率阈值时,向所述第二通信终端200发送带有往返时延标志的第三数据包。
往返时延或者平滑往返时延变化的程度也能反映网络的状态,当往返时延或者平滑往返时延变化较为剧烈时,说明网络的波动比较大。通过检测往返时延和所述平滑往返时延的变化率,可以针对网络中突然出现的紧急状态进行处理。
发送带有往返时延标志的第三数据包表示检测到了突发的紧急状态。通过第三数据包,第一通信终端100既可以向第二通信终端200传递信息,使其对发送第一数据包的方式进行调整。也可以接收第二通信终端200传递的信息,对发送第一数据包的方式进行调整。
所述丢包检测模块108用于检测接收所述第二通信终端200发送的第一数据包时的丢包情况,检测到丢包时,向所述第二通信终端200反馈带有未确认标志的第四数据包;
当检测到丢包时,第一通信终端100发送带有未确认标志的第四数据包,以告知发送第一数据包的第二通信终端200。同样,第一通信终端100也可以通过接收第二通信终端200发送的带有未确认标志的第四数据包,或者第二通信终端200接收其发送的第一数据包时出现了丢包。
在数据传输***中,有的通信终端只是接收数据、或者只是发送数据。在这种情况下,发送的第二数据包的数据较少,导致上述的通过第二数据包估计网络状态的方法在使用时,得到的结果不够准确。对丢包进行检测,通过发送第四数据包告知发送第一数据包的通信终端,使其对丢包的第一数据包重新发送。
在本实施例中,如果第一通信终端100以及第二通信终端200所在的数据传输***中为多媒体会议***,对于数据包一定比例的丢失是可以接受的,所以在有少量丢包的情况下,可以不重新发送,继续数据传输,保证传输效率。
所述发送流量调整模块109用于调整所述数据发送模块101向所述第二通信终端200发送所述第一数据包的流量大小。
发送流量调整模块109调整发送所述第一数据包的流量大小的情况包括多种。可以根据估算出的网络状态进行调整。在数据传输的过程中,第一通信终端100不断地发送第一数据包和接收第二数据包,并由此不断的计算出往返时延以及平滑往返时延,基于往返时延以及平滑往返时延对网络状态进行估算后,对发送所述第一数据包的流量大小进行调整。当往返时延或平滑往返时延增大时,减少所述流量大小,当往返时延或平滑往返时延减少时,增大所述流量大小。可以在接收到第三数据包时进行调整,接收到第三数据包时,说明网络中出现了较大的波动,需要针对该波动进行迅速的调整。
在本实施例中,发送流量调整模块109调整发送所述第一数据包的流量大小方式为:按照预设的增长参数控制发送窗口的大小呈线性增长以增大所述流量大小;或者按照预设的减小参数控制发送窗口的大小呈指数下降以减小所述流量大小。
丢包检测模块108还用于丢包检测模块还用于检测到由于丢包导致与所述第二通信终端200无法通信时,向所述第二通信终端200发送带有结束标志的第五数据包。
当网络状态非常恶劣,丢包的严重程度达到第一通信终端100以及第二通信终端200间无法通信时,通过发送带有结束标志的第五数据包,结束当前的通信连接。
所述连接重置模块110用于接收所述第二通信终端200发送的带有结束标志的第五数据包,并在接收到第二通信终端200发送的第五数据包时,重新建立与所述第二通信终端200的通信连接。
当网络质量变差,导致无法继续通信的时候,重新设置第一通信终端100以及第二通信终端200之间的通信连接,保证通信的继续。
在本实施例中,第一通信终端100以及第二通信终端200都包括有上述的数据传输装置10和功能模块。第一通信终端100以及第二通信终端200都可以通过对应的功能模块发送第一数据包、第二数据包、第三数据包、第四数据包以及第五数据包,也可以接收发送的第一数据包、第二数据包、第三数据包、第四数据包以及第五数据包,并通过对应的功能模块执行对应的操作。
请参阅图4,是本发明较佳实施例提供的应用于数据传输装置的软数据传输方法的流程图。下面将对图4所示的具体流程进行详细阐述。
步骤S101,向所述第二通信终端200发送第一数据包。
该步骤S101可由所述数据传输装置10的数据发送模块101执行。关于该步骤S101的描述具体可参对上述对数据发送模块101的描述。
步骤S102,接收所述第二通信终端200在接收到所述第一数据包后反馈的带有确认标志的第二数据包。
该步骤S102可由所述数据传输装置10的反馈接收模块102执行。关于该步骤S102的描述具体可参对上述对反馈接收模块102的描述。
步骤S103,根据发送所述第一数据包的时间和接收所述第二数据包的时间计算往返时延。
该步骤S103可由所述数据传输装置10的往返时延计算模块103执行。关于该步骤S103的描述具体可参对上述对往返时延计算模块103的描述。
步骤S104,对预设的时间段内计算得到的多个往返时延进行统计,根据往返时延的变化率计算平滑往返时延,以衡量该时间段内的网络实际延时情况。
该步骤S104可由所述数据传输装置10的平滑往返时延计算模块104执行。关于该步骤S104的描述具体可参对上述对平滑往返时延计算模块104的描述。
步骤S105,根据所述往返时延以及所述平滑往返时延估算网络状态。
该步骤S105可由所述数据传输装置10的网络状态估算模块105模块执行。关于该步骤S105的描述具体可参对上述对网络状态估算模块105的描述。
步骤S106,根据估算出的网络状态调整发送所述第一数据包的流量大小。
该步骤S106可由所述数据传输装置10的发送流量调整模块109执行。关于该步骤S106的描述具体可参对上述对发送流量调整模块109的描述。
请参阅图5,是本发明较佳实施例提供的数据传输方法中调整发送流量大小的方法流程图。下面将对图5所示的具体流程进行详细阐述。本方法是在图4所示的方法基础上实施的。
步骤S201,对计算出的所述往返时延和所述平滑往返时延的变化率进行检测。
该步骤S201可由所述数据传输装置10的变化率检测模块106执行。关于该步骤S201的描述具体可参对上述对变化率检测模块106的描述。
步骤S202,当所述往返时延或所述平滑往返时延的变化率超过预设的变化率阈值时,向所述第二通信终端200发送带有往返时延标志的第三数据包。
该步骤S202可由所述数据传输装置10的往返时延标志发送模块107执行。关于该步骤S202的描述具体可参对上述对往返时延标志发送模块107的描述。
步骤S203,接收所述第二通信终端200发送的带有往返时延标志的第三数据包,并在接收到第二通信终端200发送的第三数据包时,调整发送所述第一数据包的流量大小。
该步骤S203可由所述数据传输装置10的发送流量调整模块109执行。关于该步骤S203的描述具体可参对上述对发送流量调整模块109的描述。
在本实施例提供方法流程中,执行步骤S202的往返时延标志发送模块107与执行步骤S203的发送流量调整模块109,可以属于第一通信终端100,也可以属于第二通信终端200。
请参阅图6,为本发明较佳实施例提供的数据传输方法中丢包时重新发送数据的方法流程图。下面将对图6所示的具体流程进行详细阐述。本方法是在图4所示的方法基础上实施的。
步骤S301,检测接收所述第二通信终端200发送的第一数据包时的丢包情况,检测到丢包时,向所述第二通信终端200反馈带有未确认标志的第四数据包。
该步骤S301可由所述数据传输装置10的丢包检测模块108执行。关于该步骤S301的描述具体可参对上述对丢包检测模块108的描述。
步骤S302,接收所述第二通信终端200反馈的带有未确认标志的第四数据包,并在接收到第二通信终端200发送的第四数据包时,重新向所述第二通信终端200发送所述第一数据包。
该步骤S302可由所述数据传输装置10的数据发送模块101执行。关于该步骤S302的描述具体可参对上述对数据发送模块101的描述。
在本实施例提供方法流程中,执行步骤S301的丢包检测模块108与执行步骤S302的数据发送模块101,可以属于第一通信终端100,也可以属于第二通信终端200。
请参阅图7,本发明较佳实施例提供的数据传输方法中重新建立数据传输装置10通信连接的方法流程图。下面将对图7所示的具体流程进行详细阐述。本方法是在图4所示的方法基础上实施的。
步骤S401,测到由于丢包导致与所述第二通信终端200无法通信时,向所述第二通信终端200发送带有结束标志的第五数据包。
该步骤S401可由所述数据传输装置10的丢包检测模块108执行。关于该步骤S401的描述具体可参对上述对丢包检测模块108的描述。
步骤S402,接收所述第二通信终端200发送的带有结束标志的第五数据包,并在接收到第二通信终端200发送的第五数据包时,重新建立与所述第二通信终端200的通信连接。
该步骤S402可由所述数据传输装置10的连接重置模块110执行。关于该步骤S402的描述具体可参对上述对连接重置模块110的描述。
在本实施例提供方法流程中,执行步骤S401的丢包检测模块108与执行步骤S402的连接重置模块110,可以属于第一通信终端100,也可以属于第二通信终端200。
综上所述,本发明实施例提供的数据传输装置及方法,在数据传输的过程中,检测往返时延的变化情况,估算网络状态,对数据包的发送进行流量控制。通过估算网络的抖动来避免拥塞,来提高数据传输***中数据的传输效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个的或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据传输装置,应用于第一通信终端,所述第一通信终端与至少一个第二通信终端通信连接,其特征在于,所述数据传输装置包括:
数据发送模块,用于向所述第二通信终端发送第一数据包;
反馈接收模块,用于接收所述第二通信终端在接收到所述第一数据包后反馈的带有确认标志的第二数据包;
往返时延计算模块,用于根据发送所述第一数据包的时间和接收所述第二数据包的时间计算往返时延;
平滑往返时延计算模块,用于对预设的时间段内计算得到的多个往返时延进行统计,根据往返时延的变化率计算平滑往返时延,以衡量该时间段内的网络实际延时情况;
网络状态估算模块,用于根据所述往返时延以及所述平滑往返时延估算网络状态;
发送流量调整模块,用于根据估算出的网络状态调整所述数据发送模块向所述第二通信终端发送所述第一数据包的流量大小。
2.根据权利要求1所述的数据传输装置,其特征在于,所述数据传输装置还包括:
变化率检测模块,用于对计算出的所述往返时延和所述平滑往返时延的变化率进行检测;
往返时延标志发送模块,用于当所述往返时延或所述平滑往返时延的变化率超过预设的变化率阈值时,向所述第二通信终端发送带有往返时延标志的第三数据包;
所述发送流量调整模块还用于接收所述第二通信终端发送的带有往返时延标志的第三数据包,并在接收到第二通信终端发送的第三数据包时,调整发送所述第一数据包的流量大小。
3.根据权利要求1所述的数据传输装置,其特征在于,所述数据传输装置还包括:
丢包检测模块,用于检测接收所述第二通信终端发送的第一数据包时的丢包情况,检测到丢包时,向所述第二通信终端反馈带有未确认标志的第四数据包;
所述数据发送模块还用于接收所述第二通信终端反馈的带有未确认标志的第四数据包,并在接收到第二通信终端发送的第四数据包时,重新向所述第二通信终端发送所述第一数据包。
4.根据权利要求3所述的数据传输装置,其特征在于,所述数据传输装置还包括:
丢包检测模块还用于检测到由于丢包导致与所述第二通信终端无法通信时,向所述第二通信终端发送带有结束标志的第五数据包;
连接重置模块,用于接收所述第二通信终端发送的带有结束标志的第五数据包,并在接收到第二通信终端发送的第五数据包时,重新建立与所述第二通信终端的通信连接。
5.根据权利要求1所述的数据传输装置,其特征在于,所述发送流量调整模块根据估算出的网络状态调整发送所述第一数据包的流量大小方式为:
按照预设的增长参数控制发送窗口的大小呈线性增长以增大所述流量大小;或者
按照预设的减小参数控制发送窗口的大小呈指数下降以减小所述流量大小。
6.一种数据传输方法,应用于第一通信终端,所述第一通信终端与至少一个第二通信终端通信连接,其特征在于,所述数据传输方法包括:
向所述第二通信终端通信发送第一数据包;
接收所述第二通信终端在接收到所述第一数据包后反馈的带有确认标志的第二数据包;
根据发送所述第一数据包的时间和接收所述第二数据包的时间计算往返时延;
对预设的时间段内计算得到的多个往返时延进行统计,根据往返时延的变化率计算平滑往返时延,以衡量该时间段内的网络实际延时情况;
根据所述往返时延以及所述平滑往返时延估算网络状态;
根据估算出的网络状态调整所述数据发送模块向所述第二通信终端发送所述第一数据包的流量大小。
7.根据权利要求6所述的数据传输方法,其特征在于,所述方法还包括:
对计算出的所述往返时延和所述平滑往返时延的变化率进行检测;
当所述往返时延或所述平滑往返时延的变化率超过预设的变化率阈值时,向所述第二通信终端发送带有往返时延标志的第三数据包;
接收所述第二通信终端发送的带有往返时延标志的第三数据包,并在接收到第二通信终端发送的第三数据包时,调整发送所述第一数据包的流量大小。
8.根据权利要求6所述的数据传输方法,其特征在于,所述方法还包括:
检测接收所述第二通信终端发送的第一数据包时的丢包情况,检测到丢包时,向所述第二通信终端反馈带有未确认标志的第四数据包;
接收所述第二通信终端反馈的带有未确认标志的第四数据包,并在接收到第二通信终端发送的第四数据包时,重新向所述第二通信终端发送所述第一数据包。
9.根据权利要求8所述的数据传输方法,其特征在于,所述方法还包括:
检测到由于丢包导致与所述第二通信终端无法通信时,向所述第二通信终端发送带有结束标志的第五数据包;
接收所述第二通信终端发送的带有结束标志的第五数据包,并在接收到第二通信终端发送的第五数据包时,重新建立与所述第二通信终端的通信连接。
10.根据权利要求6所述的数据传输方法,其特征在于,所述根据估算出的网络状态调整发送所述第一数据包的流量大小的步骤包括:
按照预设的增长参数控制数据传输装置的发送窗口的大小呈线性增长以增大所述流量大小;或者
按照预设的减小参数控制数据传输装置的发送窗口的大小呈指数下降以减小所述流量大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610039213.4A CN105721333B (zh) | 2016-01-21 | 2016-01-21 | 一种数据传输装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610039213.4A CN105721333B (zh) | 2016-01-21 | 2016-01-21 | 一种数据传输装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721333A CN105721333A (zh) | 2016-06-29 |
CN105721333B true CN105721333B (zh) | 2019-02-15 |
Family
ID=56153640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610039213.4A Active CN105721333B (zh) | 2016-01-21 | 2016-01-21 | 一种数据传输装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721333B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603432B (zh) * | 2016-12-23 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种报警网络的网络拥塞控制方法及装置 |
CN107770814B (zh) * | 2017-09-29 | 2021-06-15 | 努比亚技术有限公司 | 数据链路均衡方法、移动终端及计算机可读存储介质 |
SE542531C2 (en) | 2017-12-22 | 2020-06-02 | Epiroc Rock Drills Ab | Controlling communication of a mining and / or construction machine |
CN110493298B (zh) * | 2018-05-15 | 2021-10-08 | 阿里巴巴(中国)有限公司 | 信息同步方法及装置 |
CN109474538B (zh) * | 2018-12-29 | 2021-07-30 | 北京达佳互联信息技术有限公司 | 一种数据传输方法、装置、终端设备及存储介质 |
CN111601177B (zh) * | 2020-04-13 | 2021-03-23 | 北京创享苑科技文化有限公司 | 一种基于数据包往返时延分布的在线连续检验方法 |
CN111818231B (zh) * | 2020-07-06 | 2021-02-09 | 全时云商务服务股份有限公司 | 丢包补偿方法、装置、数据报文传输***和存储介质 |
CN111880952A (zh) * | 2020-07-31 | 2020-11-03 | 全时云商务服务股份有限公司 | 应用程序跳转方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545277A (zh) * | 2003-11-19 | 2004-11-10 | 北京邮电大学 | 一种端到端的网络瓶颈带宽测量方法 |
CN1725760A (zh) * | 2004-07-22 | 2006-01-25 | Lg电子株式会社 | 测量可变位速率多媒体数据的往返延迟时间的设备与方法 |
CN102468941A (zh) * | 2010-11-18 | 2012-05-23 | 华为技术有限公司 | 网络丢包处理方法及装置 |
CN104584493A (zh) * | 2012-08-27 | 2015-04-29 | 高通股份有限公司 | 用于无线网络上的自适应速率多媒体通信的装置和方法 |
CN105264843A (zh) * | 2013-06-07 | 2016-01-20 | 苹果公司 | 在通信设备中管理待发送的确认数据包 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613976B2 (en) * | 2003-07-01 | 2009-11-03 | Telefonaktiebolaget L M Ericsson (Publ) | Method for setting the retransmission timeout period in a packet switched communication network |
US7760633B2 (en) * | 2005-11-30 | 2010-07-20 | Cisco Technology, Inc. | Transmission control protocol (TCP) congestion control using transmission delay components |
CN102388584B (zh) * | 2011-09-22 | 2014-07-16 | 华为技术有限公司 | 拥塞控制方法及设备 |
CN103152278B (zh) * | 2013-01-31 | 2016-03-30 | 北京星网锐捷网络技术有限公司 | 拥塞确定方法、装置和网络设备 |
CN103269260A (zh) * | 2013-06-03 | 2013-08-28 | 腾讯科技(深圳)有限公司 | 数据传输方法、数据接收端、数据发送端和数据传输*** |
CN104767591B (zh) * | 2015-04-29 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 一种数据发送方法及装置 |
CN105141542B (zh) * | 2015-09-18 | 2019-04-02 | 北京百度网讯科技有限公司 | 基于tcp通信协议的拥塞窗口的控制算法和*** |
-
2016
- 2016-01-21 CN CN201610039213.4A patent/CN105721333B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545277A (zh) * | 2003-11-19 | 2004-11-10 | 北京邮电大学 | 一种端到端的网络瓶颈带宽测量方法 |
CN1725760A (zh) * | 2004-07-22 | 2006-01-25 | Lg电子株式会社 | 测量可变位速率多媒体数据的往返延迟时间的设备与方法 |
CN102468941A (zh) * | 2010-11-18 | 2012-05-23 | 华为技术有限公司 | 网络丢包处理方法及装置 |
CN104584493A (zh) * | 2012-08-27 | 2015-04-29 | 高通股份有限公司 | 用于无线网络上的自适应速率多媒体通信的装置和方法 |
CN105264843A (zh) * | 2013-06-07 | 2016-01-20 | 苹果公司 | 在通信设备中管理待发送的确认数据包 |
Also Published As
Publication number | Publication date |
---|---|
CN105721333A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721333B (zh) | 一种数据传输装置及方法 | |
CN112217686B (zh) | 一种评估往返时延的***、方法及装置 | |
CN105359461B (zh) | 分组交换通信网络的链路的性能测量 | |
US7436772B2 (en) | Available bandwidth estimation | |
US7894367B2 (en) | Methods and systems for bandwidth protection | |
EP2396943B1 (en) | Controlling bandwidth share | |
CN109286813A (zh) | 一种视频通信质量检测方法和装置 | |
WO2011040006A1 (ja) | 送信装置、受信装置、送受信システム、及び送受信方法 | |
CN103269260A (zh) | 数据传输方法、数据接收端、数据发送端和数据传输*** | |
CN106301684A (zh) | 一种媒体数据传输方法及装置 | |
CN103873479B (zh) | 一种基于跨层评估的平行数据传输算法 | |
US10243825B2 (en) | Available bandwidth estimation system, available bandwidth estimation method, reception apparatus, and reception apparatus program storage medium | |
CN109167734A (zh) | 识别传输控制协议状态的方法和装置 | |
CN108390797A (zh) | 一种基于芯片实现主动测量协议的方法 | |
CN104780117B (zh) | 一种网络拥塞信息的获取方法和装置 | |
US20170064489A1 (en) | Network system, method for determining communication quality, and analysis apparatus | |
CN109218122B (zh) | 一种实现传输性能检测的方法、装置和*** | |
CN105406915A (zh) | 一种面向星地链路的文件传输方法 | |
US9363696B2 (en) | Analyzing device, analyzing method, and analyzing program | |
CN104506383A (zh) | 衡量服务器在tcp传输中对数据处理效率的方法及*** | |
CN105611406A (zh) | 一种接入网服务商监测用户到视频服务器延迟特性方法 | |
CN114629826A (zh) | 一种网络最大带宽估计方法、装置、电子设备及存储介质 | |
CN106341289B (zh) | 一种网络包抓包过程的丢包比率估计方法及装置 | |
CN109039900A (zh) | 一种发送credit包的停止信号的方法和装置 | |
Pötsch | Future Mobile Transport Protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 203-35, 2 / F, building 2, No.1 and 3, Qinglong Hutong, Dongcheng District, Beijing Patentee after: G-NET CLOUD SERVICE Co.,Ltd. Address before: 100085 room 1102, 9th floor, Penghuan international building, building 4, yard 1, Shangdi East Road, Haidian District, Beijing Patentee before: G-NET CLOUD SERVICE Co.,Ltd. |