CN112737964A - 一种融合推拉语义的传输控制方法及*** - Google Patents

一种融合推拉语义的传输控制方法及*** Download PDF

Info

Publication number
CN112737964A
CN112737964A CN202011564773.4A CN202011564773A CN112737964A CN 112737964 A CN112737964 A CN 112737964A CN 202011564773 A CN202011564773 A CN 202011564773A CN 112737964 A CN112737964 A CN 112737964A
Authority
CN
China
Prior art keywords
packet
congestion
flow
pull
queue
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.)
Granted
Application number
CN202011564773.4A
Other languages
English (en)
Other versions
CN112737964B (zh
Inventor
李挥
白鹤
韦国华
阙建明
国宏宇
张华宇
李文军
谢鑫
杨昕
王菡
马化军
汪子煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN202011564773.4A priority Critical patent/CN112737964B/zh
Publication of CN112737964A publication Critical patent/CN112737964A/zh
Application granted granted Critical
Publication of CN112737964B publication Critical patent/CN112737964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种融合推拉语义的传输控制方法及***,所述传输控制方法包括:步骤S1,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;步骤S2,检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端;步骤S3,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率;步骤S4,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以适应当前的网络状况。本发明能够保证不同通信场景下数据传输的高效可靠性能,实现网络资源的有效利用。

Description

一种融合推拉语义的传输控制方法及***
技术领域
本发明涉及一种网络传输控制方法,尤其涉及一种融合推拉语义的传输控制方法,并涉及采用了该融合推拉语义的传输控制方法的传输控制***。
背景技术
传统TCP/IP网络的设计初衷是实现两台主机之间的通信,使用基于推式语义(push semantic)的端到端通信模式,数据的发送方主动推送数据到接收方,数据的接收方只需接收数据,并回复相应的数据确认信息即可。然而,经过半个多世纪的迅速发展,互联网在规模和应用上已经发生了巨大的变化,网络中的用户量和数据量指数型增长,网络的主要应用场景也从文字通信转变为信息访问和分发。用户更多的是关心如何获取到内容,而不关心内容生产者的具***置,从而诞生了一种以内容为中心的拉式语义(pullsemantic)通信模式,以解决网络通信模式和用户通信需求之间不兼容的问题。在拉式语义下,数据的接收方通过不断发出请求来获取不同的数据块,直到完成数据的传输,请求命中的内容源会回复该请求对应的数据块给接收方。考虑到下一代互联网的设计需求和不同通信场景下的应用,需设计兼容两种通信模式的传输控制方法。
在TCP/IP网络中,基于推式语义的传输控制方法主要是集中在传输层的传输控制协议TCP(Transmission Control Protocol)设计。由于IP网络是端到端连接,大多数算法都是根据RTT(Round-Trip Time)测量值来估计RTO(Retransmission Time-Out),再通过RTO判断包是否超时来进行控制;服务端通过RTO判断实时网络状况,调整发送窗口的大小从而控制网络中发送数据分组的多少,典型算法有TCP Tahoe、TCP Reno、TCP NewReno、TCPVegas、CUBIC等。这些算法大多在发送端用AIMD(Additive Increase MultiplicativeDecrease)的方式对发送窗口进行调整。同时,还有在网络层利用路由器节点的队列管理来进行拥塞控制的算法,通过对发送队列进行主动或者被动的管理,从而实现在中间节点的快速检测与拥塞状态反馈,例如RED(Random Early Detection)、CoDel(ControlledDelay)等检测算法。而RCP(Rate Control Protocol)以及XCP(eXplicit ControlProtocol)等则采用基于速率的控制机制。在该机制下,路由器根据当前的网络状态计算数据包的发送速率并反馈给发送端,从而更好的利用路由器节点的功能,分布式的反馈也使得发送端能够快速准确的找到适应传输路径的发送速率。
以信息中心网络(ICN,Information-Centric Networking)为代表的下一代网络架构采用基于拉式语义的通信模式,并引入了网内缓存和多路径转发等特性。根据传输控制方法执行的位置的不同,基于拉式语义的传输控制研究工作可以分为以下三类:
(1)客户端传输控制,客户端驱动的传输控制主要通过调整兴趣包发送窗口的大小来控制客户端的发送速率。ICP(Interest Control Protocol)协议使用类似TCP中的AIMD算法调节兴趣包的拥塞控制窗口大小,并采用RTO作为拥塞发生信号,当收到正常返回且没有超时的数据包时,加性增加发送窗口的大小;当RTO计时器发出兴趣包的超时指示时,乘性减小发送窗口的大小。然而,该算法并没有讨论RTO计算值的准确性。CCTCP(Content Centric TCP)协议采用了一种数据块位置预测机制,在真正发出请求前预测数据块的位置,并且对每个预测到的源都维护单独的超时计时器。然而,这种算法存在扩展性问题。CCS(Congestion Control Scheme)协议使用RED(Random Early Detection)算法检测拥塞级别并在返回的数据包中标记拥塞信息,客户端根据反馈的拥塞信息,使用AIAD(Additive Increase Additive Decrease)算法调整兴趣包的发送速率,即每当成功接收到数据时,此算法都会增加发送窗口,而当未接收到数据包时,该算法会减小发送窗口。ECP(Explicit Control Protocol)协议将拥塞程度划分成三个级别,并明确反馈具体的拥塞级别信息给接收端,之后客户端相应的通过MIAIMD(Multiplicative Increase AdditiveIncrease Multiplicative Decrease)算法调整兴趣包发送速率。
(2)路由器逐跳传输控制,由于包在网络中是逐跳进行转发的,中间路由器可以对接收到的包进行处理,这为路由器直接参与传输控制带来的便利。与客户端传输控制方法不同,路由器根据包的逐跳转发特性,通过监测和分析路由器的缓存队列长度来判断网络的拥塞状态,进而对包的转发速率进行调节,从而实现速率控制的目的。典型算法HoBHIS(Hop-by-hop Interest Shaping)通过监视数据包队列的长度来检测拥塞,一旦收到数据包,路由器就会根据传输队列的占用情况、链路带宽、时延等指标计算兴趣包的转发速率;当有多个流经过同一个路由器节点时,将缓冲区容量公平分配给每个流。CMTB(Cooperative and Memory-efficient Token Bucket)算法通过检测缓冲区的大小来预防拥塞,当缓冲区到达预设的某个阈值时,将通知下游节点将兴趣包转发给其他可用端口,从而调整拥塞端口的发送速率。IRNA(Hop-By-Hop Interest Rate Notification andAdjustment)算法利用上一跳来辅助逐跳控制,通过检测路由器发送队列的长度来判断拥塞,同时将调整后的速率通过提示包反馈到下游,通过下游来控制包的发送速率以缓解拥塞。
(3)混合传输控制,考虑到客户端传输控制和路由器逐跳传输控制这两种机制各自的优势,研究者考虑将二者的特性结合,设计混合传输控制机制。HR-ICP(Hop-by-hopand Receiver-Driven Interest Control Protocol)是一个较为简单的混合传输控制算法,在客户端采用ICP中的窗口控制策略,并且在中间路由器节点内为每一个流引入了一个计数器,计数器的值随着兴趣包的发出而减小,随着数据包的返回而增大,当计数器减为0时判断发生了拥塞,此时对兴趣包的发送速率进行整形。CHoPCoP(Chunk-switched HopPull Control Protocol)算法则更自然的将两种传输控制机制进行了融合,在接收端采用AIMD算法调节兴趣包的拥塞控制窗口,在中间路由器节点采用主动队列管理算法RED(Random Early Detection)管理数据包队列,路由器节点选择性的转发或者选择性的延时转发兴趣包来进行拥塞控制,从而减轻了路由器的负担。
尽管目前的研究工作已经在传输控制协议上有了一些,但是仍然存在着不少问题。其中主流的问题有以下几点:如何提高网络拥塞检测算法的准确度;如何提高传输控制协议的可扩展性以适应不同的应用场景;如何充分利用不同通信模式的特性来设计更合理的传输控制机制,如何有效缓解网络拥塞并提高网络资源的利用率;如何保障不同流之间对网络资源的公平占用。如果能够解决这些问题中的任意一个或几个,则有利于实现不同通信场景下高效可靠的数据传输。
发明内容
本发明所要解决的技术问题是需要提供一种能够保证不同通信场景下数据传输的高效可靠性能,实现网络资源的有效利用的融合推拉语义的传输控制方法,并进一步提供采用了该融合推拉语义的传输控制方法的传输控制***。
对此,本发明提供一种融合推拉语义的传输控制方法,包括以下步骤:
步骤S1,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;
步骤S2,采用CoDel算法检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端,其中,CoDel算法为一种主动队列管理算法,该CoDel算法通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞;
步骤S3,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率;
步骤S4,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以适应当前的网络状况。
本发明的进一步改进在于,所述步骤S1中,推式流由发送方到接收方的单向传输的网络包组成,以服务标识名作为识别流的唯一属性;拉式流由接收方对某个内容的所有请求包和对应的回复包组成,以所请求内容标识名作为识别流的唯一属性;推式流和拉式流根据其标识名字关联至对应的虚拟队列。
本发明的进一步改进在于,所述步骤S2包括以下子步骤:
步骤S201,每个路由器节点利用CoDel算法来检测拥塞,其过程为:推式流通过检测每条流维护的虚拟队列的拥塞来判断当前路由器节点的拥塞状态;拉式流通过检测输出缓冲区处回复包输出队列的拥塞来判断当前路由器节点的拥塞状态;
步骤S202,在检测到拥塞后,路由器节点对转发的包进行标记,其过程为:推式流对从虚拟队列转发到实际发送队列的网络包进行标记;拉式流对从输出队列转发到链路上的回复包进行标记;在标记完成后显式通知客户端当前的网络拥塞状态。
本发明的进一步改进在于,所述步骤S201中,利用CoDel算法来检测拥塞的过程为在一个检测周期内,判断检测到的最小的逗留时间是否超过预设阈值,若是则认为输出队列对应的链路发生了拥塞。
本发明的进一步改进在于,所述步骤S202中,对于推式流,当路由器检测到某条流维护的虚拟队列发生拥塞时,对虚拟队列第一个转发出的包设置拥塞标记,然后每隔一个预设的标记间隔周期对虚拟队列转发出的网络包设置拥塞标记,直到在一个检测周期内检测到该虚拟队列不再拥塞时,路由器停止对该虚拟队列转发的网络包进行标记;对于拉式流,当路由器检测到输出缓冲区处的回复包输出队列发生拥塞时,对回复包输出队列第一个转发出的包设置拥塞标记,然后每隔一个预设的标记间隔周期对回复包输出队列转发出的包设置拥塞标记,直到在一个检测周期内检测到该回复包输出队列不再拥塞时,路由器停止对该队列转发的网络包进行标记。
本发明的进一步改进在于,所述步骤S3中,在第t个监测上下行链路数据传输能力差别的统计周期内,通过公式
Figure BDA0002860286860000051
计算实际从端口i转发出的属于流j的包的总字节数与收到的要从端口i转发的属于流j的包的总字节数的比率
Figure BDA0002860286860000052
Figure BDA0002860286860000053
时,判定为当前的网络状况良好;当
Figure BDA0002860286860000054
时,判定为当前的网络即将或已经发生了拥塞,则根据比率
Figure BDA0002860286860000055
对路由器转发包的速率进行整形;α为预设的拥塞阈值,α∈(0,1];j表示流,包括推式流和拉式流;对于推式流,
Figure BDA0002860286860000056
表示在第t个统计周期内,从端口i向下游转发出的属于推式流的网络包的总字节数,
Figure BDA0002860286860000057
表示在第t个统计周期内,路由器自上游收到的要从端口i转发的属于推式流的网络包的总字节数;对于拉式流,
Figure BDA0002860286860000058
表示在第t个统计周期内,从端口i向下游转发出的属于拉式流的回复包的总字节数,
Figure BDA0002860286860000059
表示在第t个统计周期内,路由器自上游收到的要从端口i转发的属于拉式流的回复包的总字节数;t表示统计周期的序号。
本发明的进一步改进在于,所述步骤S3中,为路由器每个输出端口处的每条流引入一个计数器credit,基于计算出的比率
Figure BDA00028602868600000510
通过管理每条流维护的虚拟队列的出队速率来动态调节转发包的速率,具体过程如下:
对于推式流,当路由器收到一个要从端口i转发出的属于推式流的包时,如果
Figure BDA00028602868600000511
或者推式流在端口i维护的虚拟队列中至少有一个包在排队,则将这个包***到推式流在端口i维护的虚拟队列的尾部,同时,与推式流相关联的计数器credit会增加所述比率
Figure BDA00028602868600000512
与入队的包的字节数的乘积值;当计数器credit的值大于在队首排队的包的大小时,这个先入先出的虚拟队列将转发队首排队的包至输出缓冲区,同时计数器credit会减去这个包的字节数,直到计数器credit的值小于在队首排队的包的大小,则继续等待新的包;
对于拉式流,当路由器收到一个要从端口i转发出的属于拉式流的请求包时,如果
Figure BDA00028602868600000513
或者拉式流在端口i维护的虚拟队列中至少有一个包在排队,则将这个包***到拉式流在端口i维护的虚拟队列的尾部,同时,与拉式流相关联的计数器credit会增加所述比率
Figure BDA00028602868600000514
与入队的请求包对应的回复包的字节数的乘积值;当计数器credit的值大于在队首排队的请求包对应的回复包的字节数时,这个先入先出的虚拟队列将转发队首排队的请求包至输出缓冲区,同时计数器credit会减去这个请求包对应的回复包的字节数,直到计数器credit的值小于在队首排队的请求包对应的回复包的字节数,则继续等待新的包。
本发明的进一步改进在于,所述步骤S3中,当某条流停止发包时,路由器检测这条流维护的虚拟队列是否为空,如果不为空,则以这条流维护的虚拟队列最后一次转发出包的速率来发送虚拟队列中剩余的包。
本发明的进一步改进在于,所述步骤S4中,当收到未标记的包的时候则增大拥塞窗口;当收到携带拥塞标记的包或者客户端定时器超时的时候则缩小拥塞窗口。
本发明还提供一种融合推拉语义的传输控制***,采用了如上所述的融合推拉语义的传输控制方法,并包括:
虚拟队列管理模块,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;
拥塞检测模块,采用CoDel算法检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端,其中,CoDel算法为一种主动队列管理算法,该CoDel算法通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞;
路由器速率整形模块,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率;
客户端窗口调整模块,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以适应当前的网络状况。
与现有技术相比,本发明的有益效果在于:在支持推式语义和拉式语义这两种通信模式的基础上,还将路由器逐跳整形拥塞控制和客户端基于显式反馈的窗口调整算法进行了结合,进而提出了一种融合推式语义和拉式语义的新的传输控制方法,保证不同通信场景下数据传输的高效可靠性能,实时动态地调整转发效率,以便实现网络资源的有效利用。
附图说明
图1是本发明一种实施例的工作流程示意图;
图2是本发明一种实施例的推式语义通信模式示意图;
图3是本发明一种实施例的拉式语义通信模式示意图;
图4是本发明一种实施例的总体框架图;
图5是本发明一种实施例的显式拥塞通告原理示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
传统TCP/IP网络架构的通信模式定义为基于推式语义(push semantic)的端到端通信,然而随着互联网的普及和数据量的指数型增长,用户更多的是关心如何获取到内容,而不关心内容生产者的具***置,从而诞生了一种以内容为中心的拉式语义(pullsemantic)通信模式,以解决网络通信模式和用户通信需求之间不兼容的问题。考虑到下一代互联网的设计和不同场景下的应用,需设计兼容两种通信模式的传输控制方法。除此之外,传统TCP下基于客户端的拥塞控制算法存在固有的RTT估算不准确以及拥塞控制滞后问题,还存在由于网络链路不可靠引起的拥塞误判等问题,需设计更加可靠高效的传输控制方法。
如果单纯把客户端传输控制与路由器逐跳传输控制都用于控制当中,但是没有很好的利用两者的特性进行融合,且混合算法在客户端处采用隐式拥塞检测,而客户端所请求的数据包的分布往往不确定,则对往返时延进行准确估计是十分困难的,导致了超时的标准难以确定,不适用于多内容源和多路径转发等场景。只是简单地根据队列长度去计算一定时间的报文标记概率,其参数需要配置,则无法自适应调整,对网络负载变化敏感。
为此,如图1至图5所示,本例提供一种融合推拉语义的传输控制方法,包括以下步骤:
步骤S1,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;
步骤S2,采用CoDel算法检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端,其中,CoDel算法为一种主动队列管理算法,该CoDel算法通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞;
步骤S3,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率,以便及时缓解路由器节点的拥塞;
步骤S4,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以便适应当前的网络状况。
本例所述包为数据包的简称,包括请求包、回复包和转发的数据包等;所述流包括推式流和拉式流;本例结合推式语义和拉式语义这两种通信模式各自不同的特点,针对性的设计了一种融合推式语义和拉式语义的传输控制机制,通过客户端和路由器的协同拥塞控制,保证了在不同通信场景下数据传输的高效可靠性能,实现了网络资源的有效利用。
值得一提的是,本例采用路由器和客户端协同参与网络拥塞控制的融合设计理念,支持多种通信语义下的数据传输,并不是单纯地将两种协议进行简单叠加,还通过显式拥塞通知将网络节点当前的拥塞状态告知客户端,解决了传统基于超时估计来间接检测拥塞的算法中存在的RTT估算不精确以及网络链路不可靠引起的拥塞误判问题;本例通过路由器逐跳速率整形的方式,可以实时调整每条流的转发速率,有效防止带宽被持续以恒定速率发包的贪婪客户端长期占用;所述客户端基于收到的包是否携带拥塞标记来自适应的调整窗口大小,能够保持最优的发送速率,有效适应网络环境的动态变化,提高网络资源的利用率。
更为具体的,首先,为了适应多种通信场景下的业务需求,本例引入推式语义和拉式语义,分别用于即时通讯场景和内容分发场景下的数据通信。推式语义(push semantic)常用于TCP下发送方驱动的传输控制,即数据的发送方主动推送数据,数据的接收方只需接收数据,并向发送方回复相应的数据确认信息。拉式语义(pull semantic)常用于接收方驱动的传输控制,即数据的接收方主动发出请求来拉取数据,内容源会回复请求所对应的内容给数据的接收方。
本例对这两种语义下的通信进行如下定义:推式语义下的数据传输,推式语义(push semantic)是一种面向主机的端到端通信模式,通信的一方通过将数据主动推送至另一方实现数据传输。整个数据传输过程由发送方主导,想要发送数据的一方在产生数据后可以即刻发送,且发送方发送的数据不会在网络的中间节点缓存。接收方在收到发送方发来的数据后,如果确认无误,会向原发送方回复一个ACK报文,通知发送方自己已经成功接收到数据。推式语义下的传输控制以TCP为代表,通信的时效性强,适用于即时通讯(Instant Messaging)类服务,例如多方视频会议、网上聊天、网络电话等交互式场景。
拉式语义下的数据传输,拉式语义(pull semantic)是一种近年来兴起的面向内容的由接收方驱动的通信模式,其报文分为请求包(Request Packet)和回复包(ResponsePacket)两类,接收方通过发送请求包来请求需要的内容,请求包中包含所请求内容的名字。转发过程中的任何中间节点,如果缓存有请求包所请求的内容,就向接收方回复一个包含该内容的回复包;如果请求包在中间节点未命中,就继续转发,直至到达内容的生产者。回复包沿请求包到来的相反路径返回,并根据缓存策略有选择的在网络中间节点缓存内容。请求包和回复包成对出现,一个请求包至多只能获取一个回复包。接收方可以一次发送多个请求包,不必等待前一个请求包收到相应的回复包。如果接收方发送的请求包丢失,或者回复包丢失,都由接收方通过再次发送对该内容的请求包来恢复。拉式语义下的传输控制可扩展性强,多用于内容分发,可实现网络资源的高效复用。
基于上述推式语义和拉式语义的定义,本例进一步的定义这两种通信模式下的流。
本例所述步骤S1中,推式流由发送方到接收方的单向传输的网络包组成,以服务标识名作为识别流的唯一属性;拉式流由接收方对某个内容的所有请求包和对应的回复包组成,以所请求内容标识名作为识别流的唯一属性;推式流和拉式流根据其标识名字关联至对应的虚拟队列。
即,在推式语义下,推式流由发送方到接收方的单向传输的网络包组成,以服务标识名(标识名字为服务标识名)作为识别流的唯一属性。如图2所示,以客户端Client1与客户端Client2的一次通信会话(Conversation)为例,由客户端Client1发往客户端Client2的数据是一条流,客户端Client2发往客户端Client1的数据是另外一条流,两者完全独立,互不相关。流的方向是从源到目的,上游和下游根据流的流向定义。
在拉式语义下,拉式流由接收方对某个内容的所有请求包和对应的回复包组成,以所请求内容标识名作为识别流的唯一属性。如图3所示,接收方Consumer发出内容请求,该请求会在内容源Producer命中,定义接收方的方向为下游,内容源的方向为上游,请求包自下游的接收方向上游转发,在命中内容源后,发送包含内容数据的回复包给下游的接收方。
本例提出的传输控制方法包括客户端和路由器两个层面的控制。为实现路由器逐跳速率整形,以流为粒度划分到来的网络包,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,每个队列通过所关联的流的标识名字来确定。fj i表示经过输出端口i的流j,
Figure BDA0002860286860000092
表示在输出端口i为流j维护的虚拟队列。不同的推式流和不同的拉式流会根据其不同的标识名字关联到不同的虚拟队列。
然后,在总体上,如图4所示,本例主要还包括以下几部分:(1)主动拥塞检测;(2)显式拥塞通告;(3)路由器速率整形以及(4)客户端窗口调整;第(1)和(2)部分的主动拥塞检测和显式拥塞通告通过步骤S2/拥塞检测模块来实现;第(3)部分的路由器速率整形通过步骤S3/路由器速率整形模块来实现;第(4)部分的客户端窗口调整通过步骤S4/客户端窗口调整模块来实现:
本例所述步骤S201用于实现主动拥塞检测:每个路由器节点利用CoDel算法来检测拥塞。对于推式流,通过检测每条流维护的虚拟队列的拥塞来判断当前路由器节点的拥塞状态;对于拉式流,通过检测输出缓冲区处回复包输出队列的拥塞来判断当前路由器节点的拥塞状态。
本例在中间路由器节点使用CoDel算法主动检测节点的拥塞状态,针对推式语义与拉式语义的不同特性,采用不同的拥塞检测机制。
Codel算法是一种主动队列管理(AQM,Active Queue Management)机制,通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞。如果在一个预设的检测周期T(默认为100ms)内,检测到的最小的逗留时间超过了预设阈值(默认为5ms),若是则认为输出队列对应的链路发生了拥塞。当路由器的缓冲区大小设置在一个合理的范围时,CoDel算法可以有效避免流量突增引起的队列大小振荡问题,同时可以保证队列占用率维持在一个较小值。由于推式语义和拉式语义不同的传输机制,利用CoDel算法拥塞检测的位置也要进行相应的区分。所述检测周期为预先设定的拥塞检测时间长度,本例优选采用T表示所述检测周期,该检测周期是CoDel算法用于实现拥塞检测的周期;所述预设阈值为预先设置的拥塞阈值,所述检测周期和拥塞阈值可以根据实际情况进行自定义设置和调整。
对于推式流,由于发送方推送的网络包中携带数据,因此推式语义下的节点拥塞由网络包的堆积造成。因此,针对推式语义的通信模式,本例利用CoDel算法在每条推式流维护的虚拟队列检测拥塞。
对于拉式流,由于携带数据的回复包通常远大于请求包,且请求包与回复包是一一对应的,可以认为拉式语义下的节点拥塞主要是由回复包堆积造成的。因此,针对拉式语义的通信模式,本例利用CoDel算法在路由器输出缓冲区处的回复包输出队列检测拥塞。
本例所述步骤S202用于实现显式拥塞通告:在检测到拥塞后,路由器节点对转发的包进行标记,以便显式通知客户端当前的网络拥塞状态。对于推式流,对从虚拟队列转发到实际发送队列的网络包进行标记;对于拉式流,对从输出队列转发到链路上的回复包进行标记;在标记完成后显式通知客户端当前的网络拥塞状态。
网络拥塞的本质主要是由于客户端的发送速率过快,使得链路上传输的数据量超过了当前网络状况下链路的容量导致的。因此,在路由器检测到网络拥塞后,需要一种机制将当前网络的拥塞状态通告给客户端,期望其降低发送速率以从根源上缓解网络拥塞。在TCP/IP网络的传输控制设计中,具有一种显式拥塞通告(ECN,Explicit CongestionNotification)机制,基本原理为中间路由器检测到拥塞发生时,将通过报文头部的特定字段记录拥塞状态,当携带拥塞标记的报文到达客户端时,客户端会相应的采取一些措施来降低发送包的速率,从而缓解网络拥塞。
本例通过显式拥塞通告来告知客户端当前的网络状况,要求在包头部扩展一个可选的拥塞标记字段CongestionTag(默认值为FALSE),用来记录网络的拥塞状态信息。如果路由器检测到拥塞发生,会在转发包时启用包头部的拥塞标记字段CongestionTag,并将其设置为TRUE。客户端根据收到的包的头部的拥塞标记字段信息来判断网络是否发生了拥塞。具体拥塞标记流程如下:
对于推式流,当路由器在检测周期内检测到某条流维护的虚拟队列发生拥塞时,会对虚拟队列第一个转发出的包设置拥塞标记;然后,每隔一个预设的标记间隔周期(默认设置为110ms),对虚拟队列转发出的网络包设置拥塞标记。直到之后的某个检测周期内,检测到该虚拟队列不再拥塞时,路由器停止对该虚拟队列转发的网络包进行标记。所述预设的标记间隔周期为预先设定的用于实现标记的间隔周期,该间隔周期可以根据实际需要进行自定义设置和调整。
对于拉式流,当路由器在检测周期内检测到输出缓冲区处的回复包输出队列发生拥塞时,会对回复包输出队列第一个转发出的包设置拥塞标记;然后,每隔一个预设的标记间隔周期(默认设置为110ms),对回复包输出队列转发出的包设置拥塞标记。直到之后的某个检测周期,检测到该回复包输出队列不再拥塞时,路由器停止对该队列转发的包进行标记。
通过显式拥塞通告,包中携带的拥塞信息会反馈给客户端。对于推式流,携带拥塞标记的网络包在到达接收方后,接收方会根据收到的网络包中的拥塞信息,对回复给原发送方的ACK报文头部的拥塞标记字段进行相应置位,使当前网络的拥塞状态借助ACK报文反馈给原发送方。对于拉式流,携带拥塞标记的回复包继续向下游转发,直至到达接收方。
本例所述步骤S3用于实现路由器速率整形,即路由器节点根据当前上下行链路传输能力的差别,借助虚拟队列的管理动态调整转发速率,实现逐跳速率整形。
本例通过所述步骤S2的主动拥塞检测和显式拥塞通告机制,客户端会根据收到的携带拥塞标记的包来动态调节发送窗口的大小,以适应当前网络状况,但这种拥塞控制机制会存在一定的延时,并且无法应对持续以恒定的较大速率发包的贪婪客户端。因此,本例在之前的基础上引入中间路由器速率整形机制来辅助客户端进行拥塞控制,基于上下行链路传输能力的差别,通过虚拟队列的管理来动态调节路由器转发包的速率。
本例路由器定期统计在一定时间间隔内每条流实际转发出的包的总字节数和收到的包的总字节数,据此判断上下行链路当前的传输状况。在所述步骤S3中,对于流j,设在第t个监测上下行链路数据传输能力差别的统计周期(默认值100ms)内,通过公式
Figure BDA0002860286860000121
计算实际从端口i转发出的属于流j的包的总字节数与收到的要从端口i转发的属于流j的包的总字节数的比率
Figure BDA0002860286860000122
Figure BDA0002860286860000123
时,判定为当前的网络状况良好,会在一段时间内保持相对稳定;当
Figure BDA0002860286860000124
时,判定为当前的网络即将或已经发生了拥塞,则根据比率
Figure BDA0002860286860000125
对路由器转发包的速率进行整形;α为预设的拥塞阈值,α∈(0,1],默认的优选值为0.9;j表示流,包括推式流和拉式流;统计周期是监测上下行链路数据传输能力差别的周期,本例优选采用t来表示所述统计周期的序号,用于在第t个统计周期内计算上下游传输能力比率Ratio。
本例根据通信语义的不同,推式语义和拉式语义下式(1)表示的意义分别如下:对于推式流,
Figure BDA0002860286860000126
表示在第t个统计周期内,从端口i向下游转发出的属于推式流(流j)的网络包的总字节数,
Figure BDA0002860286860000127
表示在第t个统计周期内,路由器自上游收到的要从端口i转发的属于推式流(流j)的网络包的总字节数;对于拉式流,
Figure BDA0002860286860000128
表示在第t个统计周期内,从端口i向下游转发出的属于拉式流(流j)的回复包的总字节数,
Figure BDA0002860286860000129
表示在第t个统计周期内,路由器自上游收到的要从端口i转发的属于拉式流(流j)的回复包的总字节数,t为统计周期的序号。
事实上,公式
Figure BDA00028602868600001210
反映的是一段时间内路由器下游链路处理某条流的包的速率与上游链路某条流的包进入的速率之比。例如,如果路由器计算得到
Figure BDA0002860286860000131
则可以认为此时包自上游链路进入路由器的速率是向下游转发出的速率的两倍。此时,对于推式流,可以借助虚拟队列的管理,设置虚拟队列向输出缓冲区转发网络包的速率为从上游链路接收到属于该流的网络包的速率的0.5倍,从而适应下游链路的网络状况;对于拉式流,结合拉式语义下请求包与回复包一一对应的传输模式,可以借助虚拟队列的管理来减慢请求包转发的速率,即以下游链路请求包到达速率的0.5倍来向上游转发请求包,就会使得上游链路响应回复包的速率减慢0.5倍,从而适应下游链路的传输能力。当比率
Figure BDA0002860286860000132
计算出来是其他数值的时候,路由器速率整形的原理一样,即基于计算出的比率
Figure BDA0002860286860000133
通过管理每条流维护的虚拟队列的出队速率来动态调节转发包的速率。
在此基础上,由于上下游链路传输能力的不匹配,
Figure BDA0002860286860000134
的值通常为小数,而数据传输是以字节为基本单位的。因此,本例所述步骤S3中,为路由器每个输出端口处的每条流引入一个计数器credit,基于计算出的比率
Figure BDA0002860286860000135
通过管理每条流维护的虚拟队列的出队速率来动态调节转发包的速率,具体过程如下:
对于推式流,当路由器收到一个要从端口i转发出的属于推式流(流j)的包时,如果
Figure BDA0002860286860000136
或者推式流(流j)在端口i维护的虚拟队列中至少有一个包在排队,则将这个包***到推式流(流j)在端口i维护的虚拟队列的尾部,同时,与推式流(流j)相关联的计数器credit会增加所述比率
Figure BDA0002860286860000137
与入队的包的字节数的乘积值;当计数器credit的值大于在队首排队的包的大小时,这个先入先出的虚拟队列将转发队首排队的包至输出缓冲区,同时计数器credit会减去这个包的字节数,直到计数器credit的值小于在队首排队的包的大小,此后将继续等待新的包;
对于拉式流,当路由器收到一个要从端口i转发出的属于拉式流(流j)的请求包时,如果
Figure BDA0002860286860000138
或者拉式流(流j)在端口i维护的虚拟队列中至少有一个包在排队,则将这个包***到拉式流(流j)在端口i维护的虚拟队列的尾部,同时,与拉式流(流j)相关联的计数器credit会增加所述比率
Figure BDA0002860286860000139
与入队的请求包对应的回复包的字节数的乘积值;当计数器credit的值大于在队首排队的请求包对应的回复包的字节数时,这个先入先出的虚拟队列将转发队首排队的请求包至输出缓冲区,同时计数器credit会减去这个请求包对应的回复包的字节数,直到计数器credit的值小于在队首排队的请求包对应的回复包的字节数,此后将继续等待新的包。
本例通过该机制,路由器每隔统计周期T,计算并更新每个端口处每条流的上下行链路传输能力的比率
Figure BDA0002860286860000141
当计算出的
Figure BDA0002860286860000142
时,虚拟队列出队的速率小于入队的速率,虚拟队列中的包会开始堆积,但通过客户端发送速率的下调,虚拟队列入队的速率会逐渐减小,合理容量设置下的虚拟队列不会溢出;当计算出的
Figure BDA0002860286860000143
时,虚拟队列出队的速率大于或等于入队的速率,虚拟队列中堆积的包会开始减少,并迅速排空。事实上,借助虚拟队列对路由器转发速率整形,对于推式流而言,就是通过虚拟队列对网络包转发速率的整形使网络包进入输出缓冲区的速率接近输出端口分配给该流的带宽大小;对于拉式流而言,就是通过虚拟队列对请求包转发速率的整形使回复包的到来速率接近输出端口分配给该流的带宽大小,并通过客户端的窗口速率调整使路由器接收包的速率与转发包的速率达到平衡。
值得一提的是,利用路由器中包的收发比来动态调节转发速率以缓解链路拥塞,因此,当客户端停止发送包时,虚拟队列中可能还会有包尚未被转发。为解决这个问题,本例所述步骤S3中,当某条流停止发包时,路由器检测这条流维护的虚拟队列是否为空,如果不为空,则以这条流维护的虚拟队列最近一次转发包的速率来发送虚拟队列中剩余的包。
对于流j,为得到其虚拟队列最近一次转发包的速率,为每个虚拟队列维护一个变量lastVj,在每个检测周期T,通过公式
Figure BDA0002860286860000144
计算并更新在检测周期T内流j维护的虚拟队列转发包的平均速率,将计算结果保存在变量lastVj中,作为该虚拟队列最近一次转发包的速率,其中,totalByteNum为在检测周期T内虚拟队列出队的所有包的总字节数,checkcount为修正因子。当某条流停止发包时,取此时该虚拟队列维护的变量lastVj的值作为转发包的速率来发送虚拟队列中剩余的包。
上述路由器速率调整机制能够在带宽未知的前提下,利用虚拟队列的管理,动态调节路由器转发包的速率,有效缓解拥塞,并抑制持续以恒定速率发包的贪婪流对链路带宽的不合理占用。
本例所述步骤S4用于实现客户端窗口调整,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包后,降低发送速率以适应当前的网络状况。
在客户端为每条流维护一个拥塞窗口来发送包,根据网络状态实时调整窗口大小。每当收到未标记的包时拥塞窗口就增大;每当收到携带拥塞标记的包或者客户端定时器超时的时候拥塞窗口就缩小,以达到最优的发送速率,实现较高的吞吐率。可以选用多种TCP下经典的拥塞窗口调整算法来对客户端的拥塞窗口进行调整,例如Reno、New Reno、HTCP、BIC和CUBIC等,经过仿真实验,选用CUBIC算法用于本发明专利所提出的传输控制方法中的客户端窗口调整策略。
另外,为避免由于网络流量突增导致的拥塞窗口急剧缩小,在客户端还引入了TCP中经典的保守丢包恢复算法(TCP SACK-based Conservative Loss RecoveryAlgorithm)。当客户端计时器发生超时的时候,采用保守丢包恢复算法来限制窗口的下调,使在每个RTT内客户端拥塞窗口仅下降一次,防止由于突发流导致缓冲区溢出时,拥塞窗口急剧下降引起的网络振荡。当客户端收到携带拥塞标记的包时,由于步骤S2中采用的拥塞标记机制在网络流量突增时能有效避免过多包被标记,因此,对于携带拥塞标记的包,无需采用保守丢包恢复算法限制窗口的调整,以便客户端能够迅速对网络拥塞作出反应。
本例还提供一种融合推拉语义的传输控制***,采用了如上所述的融合推拉语义的传输控制方法,并包括:
虚拟队列管理模块,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;
拥塞检测模块,采用CoDel算法检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端,其中,CoDel算法为一种主动队列管理算法,该CoDel算法通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞;
路由器速率整形模块,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率;
客户端窗口调整模块,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以适应当前的网络状况。
综上所述,本例支持推式语义和拉式语义这两种通信模式,可用于推式语义和拉式语义两种通信模式下可靠高效的数据传输服务,适用于即时通讯、内容分发等多种不同的应用场景;采用路由器和客户端协同参与网络拥塞控制的设计理念,结合推式语义和拉式语义不同的特性进行传输控制方法的设计,弥补了传统基于客户端的拥塞控制算法存在的缺陷;还将路由器逐跳整形拥塞控制和客户端基于显式反馈的窗口调整算法进行了结合,解决了传统基于超时估计来间接检测拥塞的算法中存在的RTT估算不精确以及网络链路不可靠引起的拥塞误判问题,可以实时调整每条流的转发速率,及时缓解网络节点的拥塞,有效防止带宽被持续以恒定速率发包的贪婪客户端长期占用;客户端基于收到的包是否携带拥塞标记来自适应的调整窗口大小,能够保持最优的发送速率,有效适应网络环境的动态变化,提高网络资源的利用率;进而提出了一种融合推式语义和拉式语义的新的传输控制方法,能够保证不同通信场景下数据传输的高效可靠性能,并实时动态地调整转发效率,兼容性强,以便实现网络资源的有效利用。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种融合推拉语义的传输控制方法,其特征在于,包括以下步骤:
步骤S1,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;
步骤S2,采用CoDel算法检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端,其中,CoDel算法为一种主动队列管理算法,该CoDel算法通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞;
步骤S3,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率;
步骤S4,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以适应当前的网络状况。
2.根据权利要求1所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S1中,推式流由发送方到接收方的单向传输的网络包组成,以服务标识名作为识别流的唯一属性;拉式流由接收方对某个内容的所有请求包和对应的回复包组成,以所请求内容标识名作为识别流的唯一属性;推式流和拉式流根据其标识名字关联至对应的虚拟队列。
3.根据权利要求1或2所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S2包括以下子步骤:
步骤S201,每个路由器节点利用CoDel算法来检测拥塞,其过程为:推式流通过检测每条流维护的虚拟队列的拥塞来判断当前路由器节点的拥塞状态;拉式流通过检测输出缓冲区处回复包输出队列的拥塞来判断当前路由器节点的拥塞状态;
步骤S202,在检测到拥塞后,路由器节点对转发的包进行标记,其过程为:推式流对从虚拟队列转发到实际发送队列的网络包进行标记;拉式流对从输出队列转发到链路上的回复包进行标记;在标记完成后显式通知客户端当前的网络拥塞状态。
4.根据权利要求3所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S201中,利用CoDel算法来检测拥塞的过程为在一个检测周期内,判断检测到的最小的逗留时间是否超过预设阈值,若是则认为输出队列对应的链路发生了拥塞。
5.根据权利要求3所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S202中,对于推式流,当路由器检测到某条流维护的虚拟队列发生拥塞时,对虚拟队列第一个转发出的包设置拥塞标记,然后每隔一个预设的标记间隔周期对虚拟队列转发出的网络包设置拥塞标记,直到在一个检测周期内检测到该虚拟队列不再拥塞时,路由器停止对该虚拟队列转发的网络包进行标记;对于拉式流,当路由器检测到输出缓冲区处的回复包输出队列发生拥塞时,对回复包输出队列第一个转发出的包设置拥塞标记,然后每隔一个预设的标记间隔周期对回复包输出队列转发出的包设置拥塞标记,直到在一个检测周期内检测到该回复包输出队列不再拥塞时,路由器停止对该队列转发的网络包进行标记。
6.根据权利要求1或2所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S3中,在第t个监测上下行链路数据传输能力差别的统计周期内,通过公式
Figure FDA0002860286850000021
计算实际从端口i转发出的属于流j的包的总字节数与收到的要从端口i转发的属于流j的包的总字节数的比率
Figure FDA0002860286850000022
Figure FDA0002860286850000023
时,判定为当前的网络状况良好;当
Figure FDA0002860286850000024
时,判定为当前的网络即将或已经发生了拥塞,则根据比率
Figure FDA0002860286850000025
对路由器转发包的速率进行整形;α为预设的拥塞阈值,α∈(0,1];j表示流,包括推式流和拉式流;对于推式流,
Figure FDA0002860286850000026
表示在第t个统计周期内,从端口i向下游转发出的属于推式流的网络包的总字节数,
Figure FDA0002860286850000027
表示在第t个统计周期内,路由器自上游收到的要从端口i转发的属于推式流的网络包的总字节数;对于拉式流,
Figure FDA0002860286850000028
表示在第t个统计周期内,从端口i向下游转发出的属于拉式流的回复包的总字节数,
Figure FDA0002860286850000029
表示在第t个统计周期内,路由器自上游收到的要从端口i转发的属于拉式流的回复包的总字节数;t表示统计周期的序号。
7.根据权利要求6所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S3中,为路由器每个输出端口处的每条流引入一个计数器credit,基于计算出的比率
Figure FDA00028602868500000210
通过管理每条流维护的虚拟队列的出队速率来动态调节转发包的速率,具体过程如下:
对于推式流,当路由器收到一个要从端口i转发出的属于推式流的包时,如果
Figure FDA00028602868500000211
或者推式流在端口i维护的虚拟队列中至少有一个包在排队,则将这个包***到推式流在端口i维护的虚拟队列的尾部,同时,与推式流相关联的计数器credit会增加所述比率
Figure FDA00028602868500000212
与入队的包的字节数的乘积值;当计数器credit的值大于在队首排队的包的大小时,这个先入先出的虚拟队列将转发队首排队的包至输出缓冲区,同时计数器credit会减去这个包的字节数,直到计数器credit的值小于在队首排队的包的大小,则继续等待新的包;
对于拉式流,当路由器收到一个要从端口i转发出的属于拉式流的请求包时,如果
Figure FDA0002860286850000031
或者拉式流在端口i维护的虚拟队列中至少有一个包在排队,则将这个包***到拉式流在端口i维护的虚拟队列的尾部,同时,与拉式流相关联的计数器credit会增加所述比率
Figure FDA0002860286850000032
与入队的请求包对应的回复包的字节数的乘积值;当计数器credit的值大于在队首排队的请求包对应的回复包的字节数时,这个先入先出的虚拟队列将转发队首排队的请求包至输出缓冲区,同时计数器credit会减去这个请求包对应的回复包的字节数,直到计数器credit的值小于在队首排队的请求包对应的回复包的字节数,则继续等待新的包。
8.根据权利要求1或2所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S3中,当某条流停止发包时,路由器检测这条流维护的虚拟队列是否为空,如果不为空,则以这条流维护的虚拟队列最后一次转发出包的速率来发送虚拟队列中剩余的包。
9.根据权利要求1或2所述的融合推拉语义的传输控制方法,其特征在于,所述步骤S4中,当收到未标记的包的时候则增大拥塞窗口;当收到携带拥塞标记的包或者客户端定时器超时的时候则缩小拥塞窗口。
10.一种融合推拉语义的传输控制***,其特征在于,采用了如权利要求1至9任意一项所述的融合推拉语义的传输控制方法,并包括:
虚拟队列管理模块,在路由器的每个输出端口处,为每条流维护一个先入先出的虚拟队列,通过所关联的流的标识名字来确定每个虚拟队列;
拥塞检测模块,采用CoDel算法检测拥塞,根据节点的拥塞状态对转发包进行标记,显式反馈当前的网络状态信息给客户端,其中,CoDel算法为主动队列管理机制算法,该CoDel算法通过测量路由器每个输出队列中各个网络包的逗留时间来判断拥塞;
路由器速率整形模块,路由器节点根据当前上下行链路数据传输能力的差别,通过虚拟队列对每条流的速率进行整形,动态调整转发速率;
客户端窗口调整模块,客户端采用CUBIC算法实时对发送窗口的大小进行调整,并在接收到携带拥塞标记的网络包时降低发送速率以适应当前的网络状况。
CN202011564773.4A 2020-12-25 2020-12-25 一种融合推拉语义的传输控制方法及*** Active CN112737964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011564773.4A CN112737964B (zh) 2020-12-25 2020-12-25 一种融合推拉语义的传输控制方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011564773.4A CN112737964B (zh) 2020-12-25 2020-12-25 一种融合推拉语义的传输控制方法及***

Publications (2)

Publication Number Publication Date
CN112737964A true CN112737964A (zh) 2021-04-30
CN112737964B CN112737964B (zh) 2022-10-14

Family

ID=75616192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011564773.4A Active CN112737964B (zh) 2020-12-25 2020-12-25 一种融合推拉语义的传输控制方法及***

Country Status (1)

Country Link
CN (1) CN112737964B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113839750A (zh) * 2021-11-25 2021-12-24 之江实验室 一种语义通信***中的信息传输方法
CN114866469A (zh) * 2022-07-11 2022-08-05 佛山赛思禅科技有限公司 一种支持并行转发的多标识路由器架构实现方法及***
WO2023272532A1 (zh) * 2021-06-29 2023-01-05 新华三技术有限公司 一种拥塞处理方法、装置、网络设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958833A (zh) * 2010-09-20 2011-01-26 云南省科学技术情报研究院 一种基于red的网络拥塞控制算法
US20150029887A1 (en) * 2012-03-09 2015-01-29 British Telecommunications Public Limited Company Signalling congestion
CN111526096A (zh) * 2020-03-13 2020-08-11 北京交通大学 智融标识网络状态预测与拥塞控制***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958833A (zh) * 2010-09-20 2011-01-26 云南省科学技术情报研究院 一种基于red的网络拥塞控制算法
US20150029887A1 (en) * 2012-03-09 2015-01-29 British Telecommunications Public Limited Company Signalling congestion
CN111526096A (zh) * 2020-03-13 2020-08-11 北京交通大学 智融标识网络状态预测与拥塞控制***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贡越等: "ATM网中ABR业务的拥塞控制机制", 《通信技术》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023272532A1 (zh) * 2021-06-29 2023-01-05 新华三技术有限公司 一种拥塞处理方法、装置、网络设备以及存储介质
CN113839750A (zh) * 2021-11-25 2021-12-24 之江实验室 一种语义通信***中的信息传输方法
CN114866469A (zh) * 2022-07-11 2022-08-05 佛山赛思禅科技有限公司 一种支持并行转发的多标识路由器架构实现方法及***
CN114866469B (zh) * 2022-07-11 2022-09-30 佛山赛思禅科技有限公司 一种支持并行转发的多标识路由器架构实现方法及***

Also Published As

Publication number Publication date
CN112737964B (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
CN112737964B (zh) 一种融合推拉语义的传输控制方法及***
Ren et al. Congestion control in named data networking–a survey
US6839767B1 (en) Admission control for aggregate data flows based on a threshold adjusted according to the frequency of traffic congestion notification
EP2772028B1 (en) Control system, gateway and method for selectively delaying network data flows
Carofiglio et al. Joint hop-by-hop and receiver-driven interest control protocol for content-centric networks
CN102859950B (zh) 估计拥塞的方法
CN107852371B (zh) 数据分组网络
JP6523260B2 (ja) マルチキャストクライアントからのストリームに加入する方法
Rozhnova et al. An extended hop-by-hop interest shaping mechanism for content-centric networking
Ren et al. An explicit congestion control algorithm for named data networking
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
CN114500394B (zh) 一种区分服务的拥塞控制方法
Albuquerque et al. Network border patrol: Preventing congestion collapse and promoting fairness in the internet
JP4772053B2 (ja) 送信装置および送信レート制御方法
Wang et al. WinCM: A window based congestion control mechanism for NDN
Abu et al. Inferring and controlling congestion in CCN via the pending interest table occupancy
Zhao et al. BCTCP: A feedback-based congestion control method
Socrates et al. Congestion control for packet switched networks: A survey
Ahmad et al. Comparative study of congestion control techniques in high speed networks
Hsiao et al. Streaming video over TCP with receiver-based delay control
Szilágyi et al. Efficient LTE PDCP buffer management
Curran et al. The effects of badly behaved routers on Internet congestion
Shy et al. Router active queue management for both multimedia and best-effort traffic flows
WO2023130744A1 (zh) 报文调度方法、网络设备、存储介质及计算机程序产品
Li PFECC: a precise feedback-based explicit congestion control algorithm in nameddata networking

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant