控制流以并行接收数据的方法和设备的制作方法

文档序号:7852649阅读:185来源:国知局
专利名称:控制流以并行接收数据的方法和设备的制作方法
技术领域
与示例性实施例一致的设备和方法包括一种控制流以并行接收数据的方法和设备,更具体地讲,涉及这样一种控制流以并行接收数据的方法和设备能够基于网络拥塞率和门限值来控制并行流的连接的数量。
背景技术
随着高效移动装置的使用的快速蔓延,出现了对于大文件的发送速度减小的现象。这是因为在有限的网络带宽内调节移动装置的需求,另外还因为许多移动装置共享有限的网络带宽。其结果是,网络响应时间趋于恶化,特别是对于大的文件发送。一个频繁尝试的解决方案在于对硬件进行升级以便能够更快地发送和接收数据。该方法是有帮助的, 但是是昂贵的O其他解决方案集中在发送数据的方式上。一个文件发送方法在于仅使用单个传输控制协议(TCP)流来发送文件。在此方法中,在基于云的系统中,单个TCP流被建立在服务器和客户机之间。随后,通过单个信道来发送数据。然而,由于这种现有技术文件发送方法通过单个信道来发送数据,因此当网络包丢失率高时或者当用于信道的往返时间(RTT)长时,发送效率突然降低。响应于刚刚提起的问题引发了新的方法。具体地讲,另一现有技术文件发送方法在于使用并行流。然而,在此现有技术的并行流方法中,基于包丢失率和RTT来计算并行流的连接的数量。这使得需要采用复杂的算法来计算应该使用并行流的多少个连接。不幸的是,必须做出系统调用来确定包丢失率和RTT。由于该算法的结果取决于包丢失率和RTT并且由于这两个输入需要系统调用,因此将该算法用于不同系统需要对操作系统(OS)内核进行修改。内核修改当然是可行的,但是这使得难于对这种系统做出更加广泛的开发。

发明内容
示例性实施例的一个或多个方法提供了这样一种用于控制流以并行地接收数据的方法和设备,该方法和设备能够在使用并行流发送数据的同时,能够根据网络状况来自适应地调整流的连接的数量,并且以改进的速度交换数据。示例性实施例的一个或多个方面还提供了这样一种用于控制流以并行地接收数据的方法和设备,该方法和设备能够调整流的连接数量而无需单独地计算包丢失或RTT。根据示例性实施例的一方面,提供了一种用于控制流以并行地接收数据的方法,该方法包括使用多个连接的流并行地接收数据;使用通过多个流的每一个接收的数据的发送速度的改变来计算网络拥塞率;基于计算的网络拥塞率来调整所述多个流的连接的数量;使用调整的流的数量来并行地接收数据。
根据另一示例性实施例的一方面,提供了一种用于数据的并行接收的设备,该设备包括通信单元,使用多个流并行地接收数据;并行连接管理单元,使用通过所述多个流的每一个并行接收的数据的发送速度的改变来计算网络拥塞率,并且基于计算的网络拥塞率来调整所述多个流的连接的数量,其中,通信单元使用通过并行连接管理单元调整了数量的流来并行地接收数据。根据另一示例性实施例的一方面,提供了一种用于接收数据的设备,包括通信单元、连接管理单元、和存储器;其中通信单元通过多个流并行地接收数据,并将接收的数据至少临时地存储在存储器中;连接管理单元基于所述多个流的当前连接数量来动态地计算网络拥塞率;连接管理单元使用计算的网络拥塞率来确定是否调整所述多个流的当前连接数量;当对调整的确定是肯定确定时,通信单元发送指示将被其后使用的所述多个连接的新数量的改变通知。连接管理单元可基于至少针对预定数量的时间样本的当前窗口进行的本地计算,来计算网络拥塞率。 基于在当前窗口的预定数量的时间样本的每一个发生的属于所述多个流的当前连接数量的减小的速度流计数,来进行本地计算。还可针对当前窗口的多个顺序在前窗口进行本地计算。基于在当前窗口的预定数量的时间样本以及多个顺序在前窗口的预定数量的时间样本的每一个发生的属于所述多个流的当前连接数量的减小的速度流计数,来进行本地计算。当连接管理单元确定调整所述多个流的当前连接数量时,将被使用的所述多个连接的新数量基于网络拥塞率与一个或多个门限的比较。将被使用的所述多个连接的新数量与所述多个连接的当前数量具有关系,从而以下中的至少一个是真的所述新数量表示超过当前数量的指数增加;所述新数量表示从当前数量的线性减小;所述新数量表示从当前数量的递增改变。用于接收数据的设备还包括存储器,接收的数据被写入该存储器。根据示例性实施例,可使用双移动平均值算法而不使用根据系统调用获得的包丢失率和RTT来更加容易地计算网络拥塞率。另外,根据示例性实施例,由于根据将网络拥塞率和至少一个门限值进行比较的结果来增加或减少流连接的数量,因此可根据网络状况来自适应地调整流连接的数量。另外,根据示例性实施例,考虑到当前网络状况,在不影响网络状况的情况下设置流的数量,从而可以以最高的速度来并行地发送数据。另外,根据示例性实施例,由于基于使用所述多个流接收的数据的发送速度来控制流连接的数量,因此由于基于网络的应用层的逻辑处理没必要改变OS的内核,或者不需要系统调用(诸如RTT或包丢失率)。因此,可通过简单地将简单的软件安装在用于以高速发送数据的服务器或装置上以及安装在用于接收数据的服务器或装置上,不考虑OS的类型,来实现数据的高速并行发送。在详细描述中将阐述示例性实施例的附加方面和优点,该附加方面和优点通过详细描述将是清楚的或者可通过对示例性实施例的实施而得知。


通过参照附图对示例性实施例的详细描述,以上和其他特征以及优点将变得更加
清楚图I是示出根据示例性实施例的用于数据的并行传输的发送和接收系统的示图;图2是示出根据示例性实施例的用于数据的并行传输的第一数据发送设备和第一数据接收设备的框图;图3是用于解释单位窗口的示例的示图;
图4A是用于解释根据示例性实施例的使用双移动平均值算法来计算网络拥塞率的方法的示例的示图;图4B是示出图4A的第一单位窗口至第三单位窗口的示图;图5是示出根据另一示例性实施例的用于数据的并行传输的第二数据发送设备和第二数据接收设备的框图;图6是示出根据示例性实施例的文件块的配置的示图;图7是用于解释根据示例性实施例的用于控制流以并行接收数据的方法的流程图;图8是用于解释用于计算在图7的操作S770中描述的流连接的数量的方法的流程图;图9是用于解释根据另一示例性实施例的用于控制流以并行接收数据的方法的流程图。
具体实施例方式现在将参照附图对示例性实施例进行更加全面地描述以阐明发明构思的各方面、特征和优点。然而,示例性实施例可以以多种不同形式来实现并且不应被解释为受限于这里阐述的示例性实施例。然而,提供示例性实施例,从而本公开将是彻底和完成的,并将把该申请的范围充分传达给本领域的普通技术人员。将理解,当元件、层或区域被称为在另一元件、层或区域的“上面”时,该元件、层或区域可直接在另一元件、层或区域的上面或者可存在中间元件、层或区域。这里使用的术语仅用于描述特定示例性实施例的目的并且不意于限制。如这里使用的,单数形式意于包括复数形式,除非上下文有明确的相反指示。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,该术语不排除存在或添加一个或多个其他组件。在下文中,将参照附图对示例性实施例进行更加详细地描述。提供在描述中限定的内容(诸如详细构造和元件)以帮助对示例性实施例的全面理解。然而,清楚的是,在不需要那些特别限定的内容的情况本领域的普通技术人员也能够执行示例性实施例。在示例性实施例的描述中,当认为现有技术的某个详细解释可能不必要地模糊发明构思的本质时,将省略该详细解释。图I是示出根据示例性实施例的用于数据的并行传输的发送和接收系统的示图。参照图1,用于数据的并行传输的发送和接收系统包括数据发送设备10和数据接收设备20。数据发送设备10可以是例如根据示例性实施例的第一数据发送设备100或根据另一示例性实施例的第二数据发送设备300,第一数据发送设备100和第二数据发送设备300的特性稍后将进行描述。数据接收设备20同样可以是例如根据示例性实施例的第一数据接收设备200或根据另一示例性实施例的第二数据接收设备400,第一数据接收设备200和第二数据接收设备400也将稍后进行描述。在数据发送设备10和数据接收设备20之间提供用于数据的并行传输的多个流S1、S2、...、SN(这里,N是整数)。可经由至少一个端口提供多个流SI、S2、...、SN,但是
可通过具有不同带宽的多个信道来实现多个流SI、S2.....SN。例如,数据发送设备10和
数据接收设备20可通过传输控制协议(TCP)信道以并行流传输方法彼此交换文件。然而,这不应被认为是限制。根据示例性实施例,可根据发送数据的网络的拥塞率来基本上实时地增加或减少
连接以发送数据的流S1、S2.....SN的数量。也就是说,可基于网络拥塞率来成指数地增加 或线性地减小在数据发送设备10和数据接收设备20之间连接以发送数据的流S1、S2.....
SN的数量。图2是示出根据示例性实施例的用于数据的并行传输的第一数据发送设备和第一数据接收设备的框图。参照图2,第一数据发送设备100包括第一套接字管理单元110、第一控制信息管理单元120、第一通信单元130和第一盘控制单元140。如果接收到对目标数据发送的请求,则第一套接字管理单元110产生套接字以将包括目标数据的属性信息的基本控制信息发送给第一数据接收设备200。这里提到的“套接字”是将第一数据发送设备100和第一数据接收设备200彼此连接以便发送目标数据的软件实现的设备,并且一个套接字对应于一个流。如果产生了多个流,则形成了多个套接字和多个信道,从而可并行地发送目标数据。第一套接字管理单元110可将连接的最大数量初始设置为将被使用的流的连接的数量,其中,连接的最大数量可使用第一通信单元130和第二通信单元210之间的可用带宽。这里,术语“初始”被用于描述目标数据被初始地发送到第一数据接收设备200的时间。当由第一套接字管理单元110产生了套接字时,第一控制信息管理单元120产生相应的基本控制信息。当必须发送目标数据时,基本控制信息是由第一数据发送设备100和第一数据接收设备200初始共享的信息。在示例性实施例中的基本控制信息可包括涉及将被发送的目标数据的文件名、文件大小、流的数量、盘缓冲器大小、块的总数量、套接字缓冲器大小、互联网(IP)地址、端口信息、以及会话识别(ID)。此时,流的数量是由第一套接字管理单元110初始设置的连接的最大数量。盘缓冲器大小是分配给缓冲器以将数据写在盘上的块的大小。套接字缓冲器大小是使用在发送协议的内核端的缓冲器的大小。IP地址是用于发送数据的IP的地址。端口信息是关于用于发送数据的至少一个端口的信息。会话ID是每一个流的ID。第一通信单元130使用由第一套接字管理单元110按照与连接的最大数量相等的数量产生的可用套接字来产生多个流,并且使用产生的流和预定义协议来与第一数据接收设备200通信。第一通信单元130使用套接字的流来将由第一控制信息管理单元120产生的基本控制信息发送给第一数据接收设备200。第一通信单元130可使用多个流来并行地发送在一个示例性实施例中的基本控制信息。在发送基本控制信息之后,第一通信单元130使用多个流来并行地将目标数据发送给第一数据接收设备200。第一盘控制单元140从存储介质(诸如硬盘驱动器(HDD))读出目标数据,并将目标数据提供给第一通信单元130。第一盘控制单元140可通过将目标数据分割为具有与HDD的盘缓冲器大小相应的各大小的部分来读出目标数据。第一通信单元130可使用初始设置的流的最大数量并行地将目标数据发送给第一数据接收设备200。可能发生流的连接的数量被改变,这将在下面进行讨论。在这种情况下,第一数据接收设备200可将该改变通知给第一数据发送设备100。也就是说,第一数据接收设备200可将改变通知消息发送给第一数据发送设备100。如果第一数据发送设备100接收到这种改变通知,同时第一数据发送设备100正处于发送目标数据的过程中,则第一套接字管理单元Iio将流的数量从先前连接的数量改变为由第一数据接收设备200通知的新的数量。例如,假设包括在基本控制信息中由第一数据发送设备100发送的连接的最大数量是5。随 后,第一数据接收设备200将这样的改变通知消息发送给第一数据发送设备100 :可用流的数量为3。作为响应,第一套接字管理单元110将可用流的数量调整为3。因此,第一通信单元130其后使用三个流并行地发送目标数据。第一数据接收设备200包括第二通信单元210、第二控制信息管理单元220、第二套接字管理单元230、第二盘控制单元240、发送速度计算单元250、存储器260和并行连接管理单元270。第二通信单元210从第一数据发送设备100接收基本控制信息,并将基本控制信息提供给第二控制信息管理单元220。第二控制信息管理单元220解析从第二通信单元210提供的基本控制信息并识别包括在基本控制信息中的信息。第二控制信息管理单元220基于识别的信息来设置接收目标数据所需的环境。例如,第二控制信息管理单元220向第二套接字管理单元230通知包括在基本控制信息中的连接的最大数量和套接字缓冲器大小。另外,第二控制信息管理单元220向第二盘控制单元240通知文件名、文件大小、盘缓冲器大小和块的总数量。此外,第二控制信息管理单元220向第二通信单元210通知IP地址、端口信息和会话ID。第二套接字管理单元230基于从第二控制信息管理单元220提供的连接的最大数量以及套接字缓冲器大小来设置将初始连接的流的大小。第二套接字管理单元230另外按照与设置的流的数量相应的数量来产生套接字。第二套接字管理单元230可产生具有与套接字缓冲器大小相应的大小的套接字。因此,第二通信单元210产生与产生的套接字的数量相应的流。第二通信单元210另外使用多个流和预定义协议并行地从第一数据发送设备100接收目标数据。另外,第二通信单元210将接收的目标数据提供给第二盘控制单元240。第二盘控制单元240可根据从第二控制信息管理单元220提供的信息,基于文件名、文件大小、盘缓冲器大小和块的总大小来将接收的目标数据存储在存储介质(诸如HDD)中。具体地讲,第二盘控制单元240可临时地将目标数据存储在缓冲器中,随后以考虑盘缓冲器大小和块的总大小的方式来将目标数据存储在盘上。发送速度计算单元250可计算每一个流中的目标数据的发送速度,其中,使用多个流并行接收该目标数据。发送速度受网络拥塞率影响,其中,网络拥塞率受到多个因素(诸如,网络通信量)的影响。也就是,随着网络拥塞率越高,数据的发送速度越低;随着网络拥塞率越低,数据的发送速度越快。因此,发送速度计算单元250可基于计算的发送速度通过估计来计算网络拥塞率。考虑到改变网络拥塞率,可调整流的连接的数量。为了实现此,发送速度计算单元250可计算在预定义监视时间或在监视时间段内每一个流中的目标数据的发送速度。如图3所示,t、t-l和t-2是监视时间,并且监视时间及其下一监视时间之间的时间间隔对应于监视时间段。由于当监视时间段过去时监视时间到达,因此监视时间段和监视时间可在特定状况下被理解为具有相同含义。因此,下文中,术语“监视时间段”和“监视时间”将被交替地使用。存储器260可以是易失性存储器或非易失性存储器,并且可存储由发送速度计算单元250在每一个监视时间计算的每一个流中的目标数据的发送速度。表I显示了存储在存储器260中的每一个流中的目标数据的发送速度的示例(只是为了简短示出的目的,省略了流S4和S5)
[表 I]
权利要求
1.一种用于控制流以并行地接收数据的方法,该方法包括 通过多个流来并行地接收数据; 使用通过多个流接收的数据的发送速度的改变来计算网络拥塞率; 基于计算的网络拥塞率来调整所述多个流的连接的数量; 通过调整了数量的所述多个流来并行地接收数据。
2.如权利要求I所述的方法,其中,计算网络拥塞率的步骤包括 在定义一个或多个单位窗口的一个或多个监视时间段期间识别通过所述多个流中的每一个接收的数据的发送速度; 在所述一个或多个单位窗口的每一个中执行识别,以识别数据的发送速度已经减小的所述多个流中的流,获得减小的速度流计数; 基于减小的速度流计数来计算网络拥塞率。
3.如权利要求2所述的方法,其中,基于减小的速度流计数来计算网络拥塞率的步骤包括 针对所述一个或多个单位窗口的每一个,计算减小的速度流计数与使用的流的总数的比例作为子网络拥塞率; 将计算的所述一个或多个单位窗口的每一个的子网络拥塞率求平均以获得网络拥塞率。
4.如权利要求2所述的方法,其中,计算网络拥塞率的步骤还包括 在所述一个或多个监视时间段的每一个计算通过所述多个流接收的数据的发送速度; 存储发送速度。
5.如权利要求I所述的方法,其中,计算网络拥塞率的步骤包括 基于在一个或多个单位窗口的每一个中的数据的发送速度的改变来计算各子网络拥塞率,所述一个或多个单位窗口的每一个包括一个或多个监视时间段,在所述一个或多个监视时间段期间,通过所述多个流的每一个接收的数据的发送速度被识别; 计算各子网络拥塞率的每一个的平均值并将该平均值用作网络拥塞率。
6.如权利要求I所述的方法,其中,基于计算的网络拥塞率来调整所述多个流的连接的数量,并且调整所述多个流的连接的数量的步骤包括以下步骤中的至少一个 成指数地增加连接的数量; 线性地减小连接的数量。
7.如权利要求I所述的方法,其中,调整所述多个流的连接的数量的步骤包括 将计算的网络拥塞率与至少一个门限值进行比较; 根据比较的结果来调整连接的数量。
8.如权利要求7所述的方法,其中,当计算的网络拥塞率小于或等于第一门限值时,通过成指数地增加连接的数量来调整连接的数量。
9.如权利要求8所述的方法,其中 当计算的网络拥塞率大于第一门限值而小于或等于第二门限值时,将所述多个流的连接的数量减I, 当计算的网络拥塞率大于第二门限值而小于或等于第三门限值时,与连接的当前数量相比,按照减少所述多个流的连接的数量,其中,所述多个流的连接数量乘以大于
10.如权利要求I所述的方法,其中,允许并行地接收数据的流的连接的初始数量被设置为在当前可用带宽中可使用的连接的最大数量。
11.一种用于数据的并行接收的设备,该设备包括 并行连接管理单元,使用通过多个流的每一个并行地接收的数据的发送速度的改变来计算网络拥塞率,并且基于计算的网络拥塞率来调整所述多个流的连接的数量; 通信单元,使用所述多个流来并行地接收数据,其中,由并行连接管理单元来调整所述多个流的数量。
12.如权利要求11所述的设备,其中 并行连接管理单元包括网络拥塞率计算单元,在多个监视时间段的每一个期间识别通过所述多个流的每一个接收的数据的发送速度, 网络拥塞率计算单元基于采用所述多个监视时间段的一个或多个单位窗口内的减小的速度流计数来计算网络拥塞率。
13.如权利要求12所述的设备,其中,网络拥塞率计算单元 在所述一个或多个单位窗口的每一个中计算减小的速度流计数与在每一个单位窗口中使用的流的总数量的比例; 将所述比例用作每一个单位窗口的子网络拥塞率;通过将子网络拥塞率的总和除以所述一个或多个单位窗口的数量来确定网络拥塞率。
14.如权利要求12所述的设备,还包括 发送速度计算单元,计算在所述一个或多个监视时间段的每一个期间通过所述多个流接收的数据的发送速度; 存储器,存储每一个计算的发送速度。
15.如权利要求11所述的设备,其中,网络拥塞率计算单元 基于一个或多个单位窗口的每一个中的数据的发送速度的改变来计算各子网络拥塞率,所述一个或多个单位窗口的每一个包括一个或多个监视时间段,在所述一个或多个时间段期间,通过所述多个流的每一个接收的数据的发送速度被识别; 计算各子网络拥塞率的每一个的平均值,并将该平均值用作网络拥塞率。
16.如权利要求11所述的设备,其中,并行连接管理单元包括连接数量计算单元,通过执行以下步骤中的至少一个基于计算的网络拥塞率来调整流的数量 成指数地增加连接的数量; 线性地减小连接的数量。
17.如权利要求11所述的设备,其中,并行连接管理单元包括连接数量计算单元 将计算的网络拥塞率与至少一个门限值进行比较; 根据比较的结果来调整连接的数量。
18.如权利要求17所述的设备,其中,如果计算的网络拥塞率小于或等于第一门限值时,连接数量计算单元通过成指数地增加连接的数量来调整连接的数量。
19.如权利要求18所述的设备,其中 当计算的网络拥塞率大于第一门限值而小于或等于第二门限值时,连接数量计算单元将所述多个流的连接的数量减I; 当计算的网络拥塞率大于第二门限值而小于或等于第三门限值时,与连接的当前数量相比,连接数量计算单元按照减少所述多个流的连接的数量,其中,乘以的所述多个流的连接的数量大于I。
20.如权利要求11所述的设备,还包括套接字管理单元,将允许并行地接收数据的流的连接的初始数量设置为可使用在通信单元中当前可用的带宽的连接的最大数量。
全文摘要
本发明提供了一种控制流以并行接收数据的方法和设备。该方法包括使用多个连接的流并行地接收数据;使用通过多个流的每一个接收的数据的发送速度的改变来计算网络拥塞率;基于计算的网络拥塞率来调整所述多个流的连接的数量;使用调整数量的流来并行地接收数据。
文档编号H04L12/56GK102811166SQ201210176929
公开日2012年12月5日 申请日期2012年5月31日 优先权日2011年5月31日
发明者宋性学, 禹庆恩, 李昌勋, 吴圭三 申请人:三星Sds株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1