非对称和多并发网络的加速方法

文档序号:7654541阅读:101来源:国知局

专利名称::非对称和多并发网络的加速方法
技术领域
:本发明涉及一种在通信网络中加快数据传输的方法,尤其涉及一种针对非对称和多并发TCP/IP网络应用的特点,灵活利用TCP协议的确认(ACK)分组实现的数据传输加速方法,属于网络拥塞控制(congestioncontrol)
技术领域

背景技术
:目前,传输控制协议/因特网协议(TCP/IP)已成为广泛使用的标准通信协议。其中,因特网协议(IP)作为网络层协议,用于提供"数据包"的递交服务,传输控制协议(TCP)作为传输层协议,在数据包递交服务基础上构建面向连接的传输层服务。基于TCP/IP协议的因特网采用的是无连接的端到端数据包交换,提供"尽力而为"(besteffort)服务模型的设计机制。随着因特网用户数量的急剧膨胀,需要传输的报文数量也在急剧增加。当网络中存在过多的报文时,网络的性能会下降,这种现象称为拥塞。出现网络拥塞时,由于队列溢出等因素的影响,路由器会丢弃约10%的数据包,从而对数据传送的可靠性带来不利的影响。拥塞控制就是网络节点采取措施来避免拥塞的发生或者对拥塞的发生做出反应。据统计,目前因特网上95%的数据流量使用的是TCP/IP协议,因此,针对TCP/IP协议提供专门的拥塞控制机制对控制网络拥塞问题具有特别重要的意义。有关研究表明,网络数据传送的可靠性主要受三个因素影响数据恶化、数据丢失以及数据的重新排序。在现有的TCP协议中,通过超时机制来管理数据丢失;通过在段到达接收方时对它们执行校验和来管理数据恶化;通过确认(ACK)分组等来管理数据的重新排序。由于超时机制也与确认(ACK)分组密切相关,因此确认(ACK)分组的传输状况将会对网络数据的丢失和重新排序产生重大的影响。对于TCP协议而言,确认(ACK)分组的丢弃和拥塞意味着相关的所有数据段要重传,因此,由确认(ACK)分组引起的网络拥塞已经成为了引起全网拥塞的一个主要因素。目前,在专利号为ZL03155730.9的中国发明专利"一种适合有线/无线混合网络的自适应拥塞控制方法"中,根据确认(ACK)分组的相对单向延迟变化趋势来判断链路的拥塞状况,进而区分丢包是因为链路拥塞引起的还是因为无线出错导致,自适应地根据不同的丢包原因采取不同的恢复机制。另外,在申请号为200610005010.X的中国发明专利申请中,提供了使用多个传输控制协议确认的传输控制协议拥塞控制方法。该方法包括当移动节点在接收到的分组中具有分组丢失时,接收从对应节点重发的分组;计算移动节点要发送的确认消息的数目;根据计算的数目产生多个确认消息,并且将多个确认消息发送到发送节点;以及增加与发送节点接收到的多个确认消息相对应的拥塞窗口值,并执行TCP发送。总体而言,现有TCP拥塞控制机制主要是通过确认(ACK)分组本身的收发状况调节发送方数据报文的收发频率,由数据发送方根据所接收到的确认(ACK)分组的情况所采取不同的控制方法以避免或缓解网络拥塞。但是,以交互式对等通信为代表的非对称和多并发网络使得现有的网络拥塞控制机制处于失控状态,其原因主要有以下三点1.现有TCP拥塞控制机制在高速网络中反应性比较差;2.网络非对称性(NetworkAsyraraetry)是造成网络拥塞的主要原因,现有改进TCP性能的方法对于不同的应用仍然是在尽力而为(BestEffort)的原则下先到先服务(FirstInFirstServe),网络非对称性所造成的问题没有得到实质性的解决;3.TCP拥塞控制机制主要是在源端以"预防"和"恢复"为措施的静态方法,对数据传输的追踪能力和对不同网络应用数据属性变化的适应能力差。因此,现有拥塞控制技术并没有充分考虑到因特网中非对称和多并发的技术特点,对解决因非对称和多并发特点导致的网络拥塞问题作用不大。
发明内容鉴于现有技术的不足,本发明的目的是提供一种非对称和多并发网络的加速方法。该方法灵活利用TCP协议中的确认(ACK)分组,可以有效改善基于应用的TCP协议传输拥塞控制性能,提高非对称和多并发网络的传输速度,降低网络拥塞发生的概率。为实现上述的发明目的,本发明采用下述的技术方案一种非对称和多并发网络的加速方法,在基于流量分类的基础上对不同应用的确认(ACK)分组采取差异化的动态管理,其特征在于首先估算网络可承受带宽和实际处理带宽;如果分组丢失或分组重传发生时,网络可承受带宽大于实际处理带宽,则认为分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,赋予确认(ACK)分组较低优先级;如果分组丢失或分组重传发生时,网络可承受带宽大于网络小于实际处理带宽,则认为分组丢失或分组重传是由网络拥塞引起的,赋予确认(ACK)分组较高优先级;按照所述确认(ACK)分组的优先级调整确认(ACK)分组的传送速率。其中,首先建立一个TCP连接,并对该连接的网络可承受带宽和实际处理带宽进行采样,并对多次获得的网络可承受带宽采样值和实际处理带宽采样值进行平滑处理,获得当前网络可承受带宽和实际处理带宽的估计值。如果分组丢失或分组重传发生时,网络可承受带宽大于实际处理带宽与预设的门限值之和,则认为分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,赋予所述确认(ACK)分组第一优先级。如果分组丢失或分组重传发生时,网络可承受带宽小于实际处理带宽与预设的门限值之差,则认为分组丢失或分组重传是由网络拥塞引起的,赋予所述确认(ACK)分组第二优先级。如果分组丢失或分组重传发生时,网络可承受带宽小于等于实际处理带宽与预设的门限值之和,并且大于等于实际处理带宽与预设的门限值之差,则认为分组丢失或分组重传是由网络拥塞和发送端和接收端处理分组缓慢以外的其他原因引起的,赋予所述确认(ACK)分组第三优先级。所述门限值初始为(64*8)/RTT,其中RTT是分组的往返时间。所述第三优先级大于所述第二优先级,所述第二优先级大于所述第一优先级。在出现分组丢失或分组重传时,按照TCP—Reno算法中拥塞控制策略进行拥塞窗口和慢启动门限值的调整。根据所述优先级的高低调度所述所述确认(ACK)分组的分组,保证优先级较高的确认(ACK)分组的传送速率。当处理发送的确认(ACK)分组时,总是最先检査具有较高优先级的队列中是否存在分组报文,如果有分组则将该分组调度出队列,直接发送出去;只有当其为空队列时,再去调度优先级较低的队列。本发明所提供的网络加速方法根据用户的具体需求区分对待全网的确认(ACK)分组和数据报文,区分对待不同应用的确认(ACK)分组,并基于应用为确认(ACK)分组开辟不同级别的绿色通道,使得确认(ACK)分组密集的现象不再发生,从根本上解决了由确认(ACK)分组密集所带来的网络拥塞问题,避免了由确认(ACK)分组失控而引起的网络安全隐串。、o下面结合附图和具体实施方式对本发明作进一步的说明。图1显示了用于实施本发明所述方法的数据处理系统网络的基本结构;图2是作为典型的非对称和多并发应用的PeertoPeer(简称为P2P)应用架构图3为采用TCP/IP协议的4层通信架构的示例;图4为TCP协议工作的基本原理示意图5为TCP协议中确认(ACK)分组的结构示意图6为本发明所述非对称和多并发网络的加速方法的实施步骤流程图。具体实施例方式以下参照附图、并且具体参照图l,描述其中可用于实现本发明的优选实施例的数据处理系统网络。数据处理系统网络100在逻辑上分为传输平面101、服务平面102和应用平面103。其中,传输平面101包括核心传输层104、接入层105、边缘节点106等。该数据处理系统网络IOO的数据传送遵循TCP/IP规范。图2是作为典型的非对称和多并发应用的PeertoPeer(简称为P2P)应用架构图。P2P技术打破了传统的客户机一服务器模型,使网络用户可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。该架构中所有元素处于完全对等的地位,没有客户机、服务器之分,即每个节点既是客户机,又是服务器,既向别人提供服务,也从别人那里获取服务。图3显示了用于执行TCP/IP协议的4层通信架构300,该通信架构包括应用层310、传输层312、网络层314以及链路层316。其中,链路层316(也被称为数据链路层或网络接口层)通常包括操作系统中的设备驱动器、以及计算机中对应的网络接口卡。它们一起处理与正在使用的网络介质(例如以太网线缆等)物理对接的所有硬件细节。网络层314(也被称为因特网层)处理网络各处的数据分组的移动。例如,网络层处理在网络上传送的各种数据分组的路由。TCP协议组中的网络层由几种协议组成,包括IP(因特网协议)、ICMP(因特网控制消息协议)、以及ICMP(因特网组管理协议)。传输层312提供网络层314和应用层310之间的接口,其帮助数据在两个主计算机之间的传递。传输层负责将从应用层传递给它的数据划分为适合于网络层的适当大小的数据块(chunk)、确认所接收的分组等等。在TCP/IP协议组中,存在两种传输协议TCP(传输控制协议)和UDP(用户数据包协议)。TCP提供可靠性服务,以确保在两个主机之间正确地传送数据,该服务包括丢失检测和重新传送服务。相反,UDP仅通过将称为数据包的数据分组从一个主机发送到另一个,不提供用户确保正确地传送数据的任何机制。应用层310处理特定应用的细节,例如(1)用户远程登录Telnet;(2)FTP,即文件传输协议;(3)SMTP,即用户电子邮件的简单邮件传输协议;(4)S蘭P,即简单邮件管理协议等。当应用层310使用TCP/IP协议来发送数据时,首先将数据通过每个层向下发送到协议堆栈,每层通过将报头预先附加到其接收的数据上而将信息添加到数据上。例如在应用层,将应用报头预先附加到用户数据上,以形成应用数据。在传输层,将传输协议报头预先附加到应用数据上。如果传输层是TCP,将TCP报头预先附加到应用数据上,由此形成TCP帧,其被发送到网络层IP。TCP报头包括20个字节。类似地,在网络层,将网络层报头预先附加到传输层数据上。在TCP/IP的情况下,将IP报头预先附加到TCP帧,以形成IP数据包。IP报头也包括20个字节。最后,在链路层,将例如以太网报头的介质报头添加到从网络层接收的数据上,以形成数据帧。图4显示了TCP的基本工作原理。TCP协议是面向连接的。所谓面向连接是指计算机双方通信时,必需首先建立连接,然后再传送数据。TCP协议在建立连接时分三步走第一步是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认;第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。图5是TCP协议中确认(ACK)分组的帧结构示意图。TCP确认(ACK)分组522包括介质报头524、协议报头526、所接收的序列号字段528以及发送列号字段530等。负责接收数据的计算机通过发送确认(ACK)分组(522),可以确认发送或重试消息已经接收完毕。上面介绍了TCP协议和确认(ACK)分组的一些背景性知识。下面详细介绍本发明所提供的利用TCP协议中的确认(ACK)分组实现的数据传输加速方法。本方法的核心思想是在基于流量分类的基础上对不同应用的确认(ACK)分组采取差异化动态管理机制,即通过计算网络中分组的网络延迟、接收和发送延迟、分组的RTT(往返时间)和确认(ACK)分组的速率,然后根据网络延迟、RTT和ACK速率确定是否发生分组丢失或是否存在重传分组和产生网络拥塞的原因,并针对不同的原因采用不同的策略对确认(ACK)分组进行优先级调度和速率调整。在本发明中,利用网络延迟和分组的RTT(往返时间)估算网络可承受带宽BWA(BandWidthAcceptable),同时利用了确认(ACK)分组的速率和平均分组长度估算网络发送端和接收端的实际处理带宽BWR(BandWidthReal)。当估算网络可承受带宽和实际处理带宽后,便可以根据网络可承受带宽BWA和实际处理带宽BWR来判断网络拥塞程度和网络拥塞原因。如果分组丢失或分组重传发生时,网络可承受带宽BWA大于实际处理带宽BWR,则认为分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的;如果分组丢失或分组重传发生时,网络可承受带宽大于网络BWA小于实际处理带宽BWR,则认为分组丢失或分组重传是由网络拥塞引起的。针对基于不同原因导致的分组丢失和分组重传,便可以采取不同策略对确认(ACK)分组优先级队列调度和确认(ACK)分组速率的调整。下面结合图6,并根据网络延迟、分组的RTT(往返时间)和确认(ACK)的速率计算过程对本方法的具体实施步骤作进一步的说明。步骤1:根据分组的IP五元组信息确定一个TCP连接,并对该连接的网络可承受带宽BWA大于实际处理带宽BWR进行采样获得Samp1e—BWA[k]和Samp1e—BWR[k]采样值。Sample—BWA[k]=(Pkt—size—sum*8)/(ACKed—time—last_PSH_ACK—time)Sample—BWR[k]=(wnd*8)/(ACKed—time—last—ACK—time)其中,IP五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号、协议号。Pkt_size_SUm表示在网络节点C处统计该连接的报文长度,单位是字节。ACKed_time表示在网络节点C处统计该连接确认报文到达的时间,单位是秒。last一PSH—ACK—time表示在网络节点C处统计该连接的上一次数据报文(包含psh和ack标志的TCP报文)到达的时间,单位是秒。Wnd表示接收端希望接收的字节数。k表示第k次采样,k=l,2,3……。步骤2:对网络可承受带宽BWA[k]采样值和实际处理带宽BWR[k]采样值进行平滑处理,获得当前网络可承受带宽BWA和实际处理带宽BWR的估计值。BWA[k]=(19/21)*BWA[k—1]+(1/21)*(Sample—BWA[k]+Sample—BWA[k—l])BWR[k]=(19/21)*BWR[k—1]+(1/21)*(Sample—BWR[k]+Sample—BWR[k—l])步骤3:如果分组丢失或分组重传发生时,网络可承受带宽BWA大于实际处理带宽BWR与门限值Beta之和,则认为分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,执行步骤4,否则继续执行步骤3下面的内容。如果分组丢失或分组重传发生时,网络可承受带宽BWA小于实际处理带宽BWR与门限值Beta之差,则认为分组丢失或分组重传是由网络拥塞引起的,则执行步骤5,否则继续执行步骤3下面的内容。如果分组丢失或分组重传发生时,网络可承受带宽BWA小于等于实际处理带宽BWR与门限值Beta之和,并且大于等于实际处理带宽BWR与门限值Beta之差,S卩BWR—Beta=<BWA=<BWR+Beta,则认为分组丢失或分组重传是由网络拥塞和发送端和接收端处理分组缓慢以外的其他原因引起的,则执行步骤6,否则继续执行步骤3下面的内容。所述门限值Beta通常是一个经验值,可以通过实际网络测试获得,初始时门限值Beta=(64*8)/RTT。RTT的计算可按照RFC2681中的方法计算。当网络中存在突发业务或突发网络设备异常时,RTT的值会发生变化,本方法中的RTT值是实时变化值,beta值的使用和RTT测量精度有直接关系,一般为毫秒(ms)级精度。Beta值一般为lkbps10kbps,具体由网络和网络种传输的业务种类决定。步骤4:确认(ACK)分组的优先级P二1,此时,认为网络带宽未饱和,产生分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,并按照现有TCP—Reno的算法中拥塞控制策略进行拥塞窗口和慢启动门限值的调整(详细的调整过程可参阅机械工业出版社2000年4月出版的《TCP/IP详解巻1:协议》(ISBN:7111075668)—书中的第21章,尤其是21.6节拥塞控制算法中的有关说明,此处不予赘述);跳转步骤7。步骤5:确认(ACK)分组的优先级P二2,此时,认为网络带宽未饱和,产生分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,并按照现有TCP—Reno的算法中拥塞控制策略进行拥塞窗口和慢启动门限值的调整;跳转步骤7。步骤6:确认(ACK)分组的优先级P二3,此时,认为网络带宽未饱和,产生分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,并按照现有TCP—Reno的算法中拥塞控制策略进行拥塞窗口和慢启动门限值的调整;跳转步骤7。步骤7:根据优先级P值的大小调度确认(ACK)分组,保证优先级P值大的确认(ACK)分组速率。当存在高优先级的分组时,首先发送优先级P=3队列中的分组,当高优先级队列中的分组发送处理完毕之后,在发送优先级P=2的分组和优先级P=3的分组。当处理发送分组时,总是最先检查优先级P=3的队列中是否存在分组报文,如果有分组则将该分组调度出队列,直接发送出去;当优先级P=3的队列为空队列时,再去调度优先级P=2和P=l的队列。此处优先级高低定义为数值越大优先级越高,如P=3时优先级大于P=2时优先级大于P=l时的优先级。上述步骤1步骤4描述了网络可承受带宽BWA小于实际处理带宽BWR的获取过程,步骤58描述了分析网络分组丢失和重传的方法和确认(ACK)分组调度的方法。由上述本发明的具体实施例可以看出,本发明不仅保留了TCP—Reno的采用拥塞窗口调整来处理网络拥塞和分组丢失重传的算法优点,同时增加了基于网络可承受带宽BWA小于实际处理带宽BWR分析的确认(ACK)分组优先级调度的方法,处理不同原因的网络拥塞,有效地利用了网络带宽估计调度确认(ACK)分组,使网络带宽利用率提高,同时提高了网络使用的公平性,防止网络拥塞和网络崩溃的发生。上面详细介绍了本发明所提供的非对称和多并发网络的加速方法。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。权利要求1.一种非对称和多并发网络的加速方法,在基于流量分类的基础上对不同应用的确认分组采取差异化的动态管理,其特征在于首先估算网络可承受带宽和实际处理带宽;如果分组丢失或分组重传发生时,网络可承受带宽大于实际处理带宽,则认为分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,赋予确认分组较低优先级;如果分组丢失或分组重传发生时,网络可承受带宽大于网络小于实际处理带宽,则认为分组丢失或分组重传是由网络拥塞引起的,赋予确认分组较高优先级;按照所述确认分组的优先级调整确认分组的传送速率。2.如权利要求1所述的非对称和多并发网络的加速方法,其特征在于首先建立一个TCP连接,并对该连接的网络可承受带宽和实际处理带宽进行采样,并对多次获得的网络可承受带宽采样值和实际处理带宽采样值进行平滑处理,获得当前网络可承受带宽和实际处理带宽的估计值。3.如权利要求1所述的非对称和多并发网络的加速方法,其特征在于如果分组丢失或分组重传发生时,网络可承受带宽大于实际处理带宽与预设的门限值之和,则认为分组丢失或分组重传是由发送端和接收端处理分组缓慢引起的,赋予所述确认分组第一优先级。4.如权利要求1所述的非对称和多并发网络的加速方法,其特征在于如果分组丢失或分组重传发生时,网络可承受带宽小于实际处理带宽与预设的门限值之差,则认为分组丢失或分组重传是由网络拥塞引起的,赋予所述确认分组第二优先级。5.如权利要求1所述的非对称和多并发网络的加速方法,其特征在于如果分组丢失或分组重传发生时,网络可承受带宽小于等于实际处理带宽与预设的门限值之和,并且大于等于实际处理带宽与预设的门限值之差,则认为分组丢失或分组重传是由网络拥塞和发送端和接收端处理分组缓慢以外的其他原因引起的,赋予所述确认分组第三优先级。6.如权利要求35中任意一项所述的非对称和多并发网络的加速方法,其特征在于所述门限值初始为64*8/RTT,其中RTT是分组的往返时间。7.如权利要求35中任意一项所述的非对称和多并发网络的加速方法,其特征在于所述第三优先级大于所述第二优先级,所述第二优先级大于所述第一优先级。8.如权利要求35中任意一项所述的非对称和多并发网络的加速方法,其特征在于在出现分组丢失或分组重传时,按照TCP—Reno算法中拥塞控制策略进行拥塞窗口和慢启动门限值的调整。9.如权利要求35中任意一项所述的非对称和多并发网络的加速方法,其特征在于根据所述优先级的高低调度所述所述确认分组,保证优先级较高的确认分组的传送速率。10.如权利要求9所述的非对称和多并发网络的加速方法,其特征在于当处理发送的确认分组时,总是最先检查具有较高优先级的队列中是否存在分组报文,如果有分组则将该分组调度出队列,直接发送出去;只有当其为空队列时,再去调度优先级较低的队列。全文摘要本发明公开了一种非对称和多并发网络的加速方法。该方法中,首先估算网络可承受带宽和实际处理带宽;如果分组丢失或分组重传发生时,网络可承受带宽大于实际处理带宽,则认为是由发送端和接收端处理分组缓慢引起的,赋予确认(ACK)分组较低优先级;如果分组丢失或分组重传发生时,网络可承受带宽大于网络小于实际处理带宽,则认为是由网络拥塞引起的,赋予确认分组较高优先级;按照确认分组的优先级调整确认帧的传送速率。本发明为确认分组开辟不同级别的绿色通道,使得确认分组密集的现象不再发生,从根本上解决了由确认分组密集所带来的网络拥塞问题,避免了由确认分组失控而引起的网络安全隐患。文档编号H04L29/06GK101110767SQ200710111148公开日2008年1月23日申请日期2007年6月14日优先权日2007年4月26日发明者宇伍,刘怡臻,单衍景,孙凌阁,茂徐申请人:北京畅讯信通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1