CN113783794A - 拥塞控制方法和装置 - Google Patents
拥塞控制方法和装置 Download PDFInfo
- Publication number
- CN113783794A CN113783794A CN202011360712.6A CN202011360712A CN113783794A CN 113783794 A CN113783794 A CN 113783794A CN 202011360712 A CN202011360712 A CN 202011360712A CN 113783794 A CN113783794 A CN 113783794A
- Authority
- CN
- China
- Prior art keywords
- message
- forwarded
- determining
- table entry
- flow
- 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.)
- Pending
Links
- 241000406668 Loxodonta cyclotis Species 0.000 claims abstract description 67
- 241000700159 Rattus Species 0.000 claims abstract description 17
- 230000000875 corresponding Effects 0.000 claims description 67
- 230000035945 sensitivity Effects 0.000 claims description 23
- 230000032683 aging Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 238000001514 detection method Methods 0.000 description 5
- 230000003287 optical Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000006011 modification reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000644 propagated Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003666 Nerve Fibers, Myelinated Anatomy 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000003365 glass fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 231100000486 side effect Toxicity 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Abstract
本发明公开了一种拥塞控制方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:确定待转发报文的属性信息和/或数据流速率;根据所述属性信息和/或所述数据流速率,确定所述待转发报文的报文类型;其中,所述报文类型包括:老鼠流或大象流;根据所述待转发报文的报文类型,对所述待转发报文进行拥塞控制。该实施方式能够针对拥塞网络提供较合理有效的拥塞控制。
Description
技术领域 本发明涉及计算机技术领域,尤其涉及一种拥塞控制方法和装置。 背景技术 在数据发送端与接收端之间发生数据拥塞时,数据传输路径发生拥塞的交换机节点会对发生拥塞的报文进行拥塞控制,进而减轻链路拥塞状况。但现有技术中的拥塞控制策略只能简单地丢弃新到的报文,不能提供较为合理有效的拥塞控制。 发明内容 有鉴于此,本发明实施例提供一种拥塞控制方法和装置,能够提供较合理有效的拥塞控制。 第一方面,本发明实施例提供了一种拥塞控制方法,包括: 确定待转发报文的属性信息和/或数据流速率; 根据所述属性信息和/或所述数据流速率,确定所述待转发报文的报文类型;其中,所述报文类型包括:老鼠流或大象流; 根据所述待转发报文的报文类型,对所述待转发报文进行拥塞控制。 可选地,所述属性信息包括:时延敏感程度信息; 根据所述属性信息和/或所述数据流速率,确定所述待转发报文的报文类型,包括: 判断所述时延敏感程度信息是否大于敏感程度阈值; 若是,则确定所述待转发报文的报文类型为老鼠流; 若否,则根据所述数据流速率,确定所述待转发报文的报文类型。 可选地,所述根据所述数据流速率,确定所述待转发报文的报文类型,包括: 判断所述数据流速率是否大于速率阈值; 若是,则确定所述待转发报文的报文类型为大象流; 若否,则确定所述待转发报文的报文类型为老鼠流。 可选地,所述确定待转发报文的数据流速率,包括: 确定待转发报文在流匹配表中对应的目标表项;其中,所述目标表项包括以下至少之一:源IP地址、目的IP地址、协议号、源端口号、目的端口号; 根据所述待转发报文的字节数,更新所述目标表项对应的字节统计值; 根据所述字节统计值在查询周期内的差值,确定所述目标表项对应的数据流速率; 将所述目标表项对应的数据流速率确定为所述待转发报文对应的数据流速率。 可选地,所述确定待转发报文在流匹配表中对应的目标表项,包括: 解析出所述待转发报文的对应表项; 确定所述流匹配表中是否存在所述对应表项,若存在,将存在的表项确定为所述待转发报文对应的目标表项,否则,将所述对应表项添加到所述流匹配表中,并将添加的表项确定为所述待转发报文对应的目标表项。 可选地,所述方法还包括: 针对所述流匹配表中的每个表项:若在老化周期内,所述表项的字节统计值的变化值小于预设差值,则删除所述表项。 可选地,所述根据所述待转发报文的报文类型,对所述待转发报文进行拥塞控制,包括: 对所述报文类型为大象流的待转发报文进行丢弃处理。 可选地,所述对所述报文类型为大象流的待转发报文进行丢弃处理,包括: 确定网络的拥塞程度; 根据所述拥塞程度,确定大象流报文的丢弃概率; 以所述丢弃概率,对所述报文类型为大象流的待转发报文进行丢弃处理。 可选地,所述方法还包括: 若所述拥塞程度大于预设程度且所述大象流报文的丢弃概率大于预设概率,对所述报文类型为老鼠流的待转发报文进行丢弃处理。 第二方面,本发明实施例提供了一种拥塞控制装置,包括: 信息确定模块,用于确定待转发报文的属性信息和/或数据流速率; 类型确定模块,用于根据所述属性信息和/或所述数据流速率,确定所述待转发报文的报文类型;其中,所述报文类型包括:老鼠流或大象流; 拥塞控制模块,用于根据所述待转发报文的报文类型,对所述待转发报文进行拥塞控制。 第三方面,本发明实施例提供了一种电子设备,包括: 一个或多个处理器; 存储装置,用于存储一个或多个程序, 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。 第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。 上述发明中的一个实施例具有如下优点或有益效果:根据待转发报文的属性信息和/或数据流速率,确定待转发报文的报文类型,报文类型包括:老鼠流或大象流;再根据待转发报文的报文类型,对待转发报文进行拥塞控制。如在网络发生拥塞时,可将数据流速率较大的大象流报文进行丢弃,而无需丢弃数据流速率较小或时延敏感程度较高的老鼠流报文,就可有效缓解网络拥塞状况。又如可将大象流报文先丢弃,在网络拥塞状态没有缓解的情况下,再丢弃老鼠流报文。相比对所有报文进行无差别地丢弃的拥塞控制方法,本发明实施例的方法根据报文类型进行拥塞控制,更加合理有效。 上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。 附图说明 附图用于更好地理解本发明,不构成对本发明的不当限定。其中: 图1是本发明实施例可以应用于其中的示例性系统架构图; 图2是本发明的一个实施例提供的一种拥塞控制方法的流程的示意图; 图3是本发明的一个实施例提供的另一种拥塞控制方法的流程的示意图; 图4是本发明的一个实施例提供的一种确定待转发报文的数据流速率方法的流程的示意图; 图5是本发明的一个实施例提供的一种流学习及流老化过程的示意图; 图6是本发明的一个实施例提供的又一种拥塞控制方法的流程的示意图; 图7是本发明的一个实施例提供的一种拥塞控制框架的结构示意图; 图8是本发明的一个实施例提供的一种拥塞控制装置的结构示意图; 图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。 具体实施方式 以下结合附图对本发明的示范性实施例做出说明;其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。 可以通过如下两种拥塞控制方法进行拥塞控制:一种是尾丢弃(Tail Drop)及加权随机早期检测(WRED,Weighted Random Early Detection)。 尾丢弃的原理是当链路发生拥塞时,发生拥塞的交换机的出端口队列会丢弃所有新到的报文,直到链路的拥塞状况得到缓解。 加权随机早期检测的原理是为交换机的出端口队列配置最小、最大队列长度门限及丢弃概率,当交换机的出队列长度超过最小门限时,意味队列发生拥塞,将按照配置的丢弃概率随机丢弃报文。当交换机出端口队列长度超过最大队列门限时,报文开始百分百丢弃。当交换机出端口队列长度介于最小队列与最大队列门限时,按照固定的丢弃概率曲线随机丢弃报文。 尾丢弃的拥塞控制方式的副作用明显,会引发TCP(传输控制协议,TransmissionControl Protocol)全局同步现象,导致网络流量震荡。此外,由于对拥塞的报文没有进行分类,无差别丢弃,对于一些时延敏感业务,这种处理很不友好。 加权随机早期检测算法是尾丢弃算法的改进,由于尾丢弃随机丢弃方式可以防止TCP全局同步,提高了链路的利用率。但是尾丢弃对拥塞队列中的所有流量随机丢弃,由于这种无差别的流量丢弃方式,没有基于流量本身特性做出相应的丢弃调整,导致不能做到最优的网络转发性能。 考虑这样一种情形,交换机在出端口的同一队列同时调度服务器A、B发送的两种数据流,并且在该队列发生拥塞,A发送的数据流量较小,但时延敏感。B发送的数据流量大,时延不敏感。现有拥塞避免的实现方式中,A发送的数据流和B发送的数据流都有可能会被加权随机早期检测算法随机丢弃掉。 假设一种极端情况,A发送的报文被大量丢弃掉,链路拥塞状况未得到缓解,然后开始随机丢弃B发送的流量,链路开始得到缓解,如上假设的情况发生,这中丢弃顺序虽然使得链路拥塞得到缓解,但是服务器A由于数据重传增加了链路延迟,并且重传的流量仍有可能由于链路拥塞而丢弃掉,对时延敏感的流量,发生这种情况是难以接受的。理想的情况下,对于这种情形,服务器A发送的时延敏感的、流量较小的老鼠流报文,在交换机拥塞时不对其进行丢弃,而仅对大象流报文进行丢弃,只有这样才能有效降低网络拥塞状况,同时不影响时延敏感的老鼠流报文。 另一方面,加权随机早期检测算法在队列排队长度超过配置的队列长度上限时会触发报文百分之百丢弃,这种丢弃方式对时延敏感的老鼠流报文不合理,因为丢弃老鼠流报文对缓解链路拥塞意义不大,更有效的方式是首先丢弃大象流报文,大象流报文占据芯片大量带宽,对缓解链路拥塞非常有效。仅当丢弃大象流报文不能缓解拥塞时,才对老鼠流报文进行丢弃。 同时由于5G技术的发展,利用5G技术的一些特殊应用产生的数据报文,比如实时高清音视频远程会诊的数据报文,由于这些数据流流量非常大,并且时延敏感。在传统方法中会将这类特殊应用产生的报文被识别为大象流报文,但实际应用时还是需要按照老鼠报文流进行拥塞控制。 基于此,本发明实施例提供了一种基于待转发报文的报文类型对拥塞进行控制的方案,能够解决上述对时延敏感业务处理不友好的问题。图1示出了可以应用本发明实施例的拥塞控制方法或拥塞控制装置的示例性系统架构100。 如图1所示,系统架构100可以包括通信设备101、102、103、105及106,中转节点104。中转阶段104用以在通信设备101、102、103和105、106之间进行信息中转的设备。中转节点104可以包括各种网络设备,如交换机、路由器等。 终端设备101、102、103可以是各类终端设备或服务器,如手机、笔记本、平板电脑、膝上型便携计算机等等。通信设备101、102、103、105、106通过中转节点104进行交互,以接收或发送消息等。 中转节点104接收通信设备101、102、103、105、106发送的待转发报文的属性信息和/或数据流速率;根据所述属性信息和/或所述数据流速率,确定所述待转发报文的报文类型;其中,所述报文类型包括:老鼠流或大象流;根据所述待转发报文的报文类型,对所述待转发报文进行拥塞控制。 需要说明的是,本发明实施例所提供的拥塞控制方法一般由中转节点104执行,相应地,拥塞控制装置一般设置于中转节点104中。 应该理解,图1中的通信设备、中转节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的通信设备和中转节点。 图2是本发明的一个实施例提供的一种拥塞控制方法的流程的示意图。本发明实施例提供了一种拥塞控制方法,如图2所示,包括: 步骤201:确定待转发报文的属性信息和/或数据流速率。 待转发报文的属性信息用于表征待转发报文的报文属性。属性信息可包括:时延敏感程度信息、报文用途、报文版本、报文长度、目的地址等。 待转发报文的数据流速率为待转发报文所属业务的数据流速率。待转发报文所属业务可通过待转发报文的下列至少一个属性来确定:源IP地址、目的IP地址、协议号、源端口号、目的端口号。 步骤202:根据属性信息和/或数据流速率,确定待转发报文的报文类型;其中,报文类型包括:老鼠流或大象流。 根据属性信息和/或数据流速率,可有多种方式来确定待转发报文的报文类型。比如,待转发报文的时延敏感程度信息大于敏感程度阈值,或待转发报文的数据流速率小于速率阈值,则确定待转发报文的报文类型为老鼠流。又如,待转发报文的数据流速率大于或等于速率阈值,则确定待转发报文的报文类型为大象流。或者,待转发报文的报文用途为网络高清视频或实时网络会议,则确定待转发报文的报文类型为老鼠流。 步骤203:根据待转发报文的报文类型,对待转发报文进行拥塞控制。 在识别出待转发报文的报文类型之后,即可按照待转发报文的报文类型,对待转发报文进行差别话的拥塞控制。例如,在网络的拥塞程度小于第一拥塞程度时,仅对报文类型为大象流的待转发报文进行丢弃处理。在网络的拥塞程度大于第二拥塞程度时,对报文类型为大象流的待转发报文按照第一概率进行丢弃处理,对报文类型为老师流的待转发报文按照第二概率进行丢弃处理,第一概率大于第二概率。 在本发明实施例中,根据待转发报文的属性信息和/或数据流速率,确定待转发报文的报文类型,报文类型包括:老鼠流或大象流;再根据待转发报文的报文类型,对待转发报文进行拥塞控制。如在网络发生拥塞时,可将数据流速率较大的大象流报文进行丢弃,而无需丢弃数据流速率较小或时延敏感程度较高的老鼠流报文,就可有效缓解网络拥塞状况。又如可将大象流报文先丢弃,在网络拥塞状态没有缓解的情况下,再丢弃老鼠流报文。因此,可以解决现有技术中由于对所有报文进行无差别地丢弃,而无法有效进行拥塞控制的问题。 图3是本发明的一个实施例提供的另一种拥塞控制方法的流程的示意图。本发明实施例提供了一种拥塞控制方法,如图3所示,包括: 步骤301:确定待转发报文的属性信息和/或数据流速率。 步骤302:判断时延敏感程度信息是否大于敏感程度阈值。 敏感程度阈值可根据具体需求和网络环境进行设置。判断时延敏感程度信息是否大于敏感程度阈值,若是,则执行步骤303;若否,则执行步骤304。 步骤303:确定待转发报文的报文类型为老鼠流。 时延敏感信息程度较高的待转发报文可来自于一些特殊应用的数据报文,比如来自实时网络通话的待转发报文、来自高清网络会议的待转发报文,由于这些数据报文的流量较大大,但时延敏感程度较高。如果仅通过数据流速率来确定待转发报文的报文类型,将会被识别为大象流。但为了不影响这类时延敏感程度较高应用的正常运行,需将这类应用的待转发报文的报文类型确定为老鼠流。 步骤304:根据数据流速率,确定待转发报文的报文类型。 可基于如下方法确定待转发报文的报文类型: 判断数据流速率是否大于速率阈值; 若是,则确定待转发报文的报文类型为大象流; 若否,则确定待转发报文的报文类型为老鼠流。 速率阈值可根据具体需求和网络环境进行设置。如果速率阈值设置的过大,在网络发生拥塞时,可能无法较好的缓解网络拥塞状况。如果速率阈值设置的过小,在网络发生拥塞时,可能会丢弃较多数目的待转发报文。 步骤305:根据待转发报文的报文类型,对待转发报文进行拥塞控制。 在本发明实施例中,在通过待转发报文的数据流速率,确定报文类型之前,先通过待转发报文的时延敏感程度信息,来确定报文类型。如此,可以将一些来自特殊应用的数据流速率较大,但时延敏感程度又较高的待转发报文标记为老鼠流,以减少后续拥塞控制过程中将这类待转发报文以大象流的丢弃方式进行丢弃,而影响这些特殊应用的正常运行。 图4是本发明的一个实施例提供的一种确定待转发报文的数据流速率方法的流程的示意图。如图4所示,该方法包括: 步骤401:确定待转发报文在流匹配表中对应的目标表项;其中,目标表项包括以下至少之一:源IP地址、目的IP地址、协议号、源端口号、目的端口号。 流匹配表存储于中转节点的存储介质中。流匹配表中保存有多条表项,每条表项对应于以下五元组信息之一:源IP地址、目的IP地址、协议号、源端口号、目的端口号。 读取待转发报文的五元组信息,并根据提取到的五元组信息与流匹配表中的各表项进行匹配,并将匹配到的表项确定待转发报文对应目标表项。 可选地,确定待转发报文在流匹配表中对应的目标表项,包括: 解析出待转发报文的对应表项; 确定流匹配表中是否存在对应表项,若存在,将存在的表项确定为待转发报文对应的目标表项,否则,将对应表项添加到流匹配表中,并将添加的表项确定为待转发报文对应的目标表项。 在流匹配表中不存在与待转发报文匹配的表项,则在流匹配表中添加与待转发报文匹配的表项,并将添加的表项确定为目标表项。 步骤402:根据待转发报文的字节数,更新目标表项对应的字节统计值。 更新后的目标表项的字节统计值为目标表项原有的字节统计值与待转发报文的字节数之和。举例来说,目标表项原有的字节统计值为200比特,待转发报文的字节数为100比特,则更新后的目标表项的字节统计值为300比特。 步骤403:根据字节统计值在查询周期内的差值,确定目标表项对应的数据流速率。 举例来说,查询周期为2秒,某一目标表项在查询周期内字节统计值变化的差值为7200比特,则该目标表项对应的数据流速率为3600比特/秒。 步骤404:将目标表项对应的数据流速率确定为待转发报文对应的数据流速率。 根据待转发报文的字节数更新与其对应的目标表项中的字节统计值,再根据目标表项中字节数的变化值,确定该类待转报文对应的数据流速率。本发明实施例提供了一种简单易于实现的确定待转发报文的数据流速率的方法。 可选地,方法还包括: 针对流匹配表中的每个表项:若在老化周期内,表项的字节统计值的变化值小于预设差值,则删除表项。 可根据实际需求或网络情况设定老化周期。老化周期可以是1秒、3秒、10秒等。如果在老化周期内,表项的字节统计值的变化值小于预设差值,则说明短期内没有对应于该表项的报文通过,删除该表项。一方面,可节省中转节点中的存储空间,减少流匹配表的管理成本。另一方面,及时将老化的表项从流匹配表中清除,可减少流匹配表中存储表项的数目,加快后续在流匹配表中查找待转发报文的目标表项的速度。 图5是本发明的一个实施例提供的一种流学习及流老化过程的实意图。上图中为详细的流学习、流老化过程,圆圈代表交换机的CPU,图框内有交换芯片的流匹配表,及其他硬件逻辑。详细流程如下: 步骤S01:流匹配表包括流匹配域及对应匹配统计计数器。流匹配域与五元组信息相对应。芯片启动时流匹配表为空。待转发报文进入交换机后会查询流匹配表,如果没有查到与待转发报文对应的目标表项,则进入步骤S02指定的流程。如果查到与待转发报文对应的目标表项,则进入步骤S03指定的流程。 步骤S02:如果在流匹配表中未查到与待转发报文对应的五元组表项,待转发报文会通过芯片的拷贝引擎把该报文拷贝一份送到CPU,接着执行下述步骤S06指定的流程。、 步骤S03:如果待转发报文在流匹配表中查到对应的五元组表项,以该待转报文的字节更新对应的五元组表项,执行下述步骤S06指定的流程。 步骤S04:拷贝引擎把复制后的待转发报文拷贝到CPU,供CPU处理。 步骤S05:CPU从报文中抽取出五元组信息,把该信息下发到流匹配表,同时为流匹配表安装对应的数据统计计数器,后续报文进入芯片查询流匹配表后会统计对应的字节数。 步骤S06:对待转发报文进行其它处理,包括二三层查找,拥塞管理、拥塞避免等。 步骤S07:CPU周期性查询流匹配表,如果老化周期内流匹配表中的表项统计计数没有更新,则老化删除掉该表项,如果有更新则不做处理。 图6是本发明的一个实施例提供的又一种拥塞控制方法的流程的示意图。本发明实施例提供了一种拥塞控制方法,如图6所示,包括: 步骤601:确定待转发报文的属性信息和/或数据流速率。 步骤602:根据属性信息和/或数据流速率,确定待转发报文的报文类型;其中,报文类型包括:老鼠流或大象流。 步骤603:对报文类型为大象流的待转发报文进行标记处理。 对报文类型为大象流的待转发报文中的某些比特位进行标记,以表征该待转发报文的报文类型为大象流。例如,对待转发报文的包头中的显示拥塞通知字段(ECN),即对待转发报文的报文头中区分服务字段(DS)的最后两个比特位进行标记,即第6位及第7位。正常状态下,这两位的值是00、01或10,标记后的第6位及第7位变为11。 步骤604:确定网络的拥塞程度;根据拥塞程度,确定大象流报文的丢弃概率。 可在系统中预存拥塞程度与丢弃概率之间的对应关系。一般地,拥塞程度越高,丢弃概率越大;拥塞程度越低,丢弃概率越小。 需要说明的是,可定时周期性地执行步骤604,以及时根据网络的当前状态,调整大象流报文的丢弃概率,以减少在网络拥塞缓解情况下,继续将大量待转发报文进行丢弃,或网络较长时间没有缓解,而继续以较小丢弃概率丢弃大象流报文情况的发生。 步骤605:以丢弃概率,对带有拥塞标记的待转发报文进行丢弃处理。 可选地,方法还包括: 若拥塞程度大于预设程度且大象流报文的丢弃概率大于预设概率,对报文类型为老鼠流的待转发报文进行丢弃处理。 预设程度和丢弃概率可根据实际需求和网络搭建情况进行设定。例如,在拥塞程度较大且大象流报文的丢弃概率大于95%的情况下,对报文类型为老鼠流的待转发报文进行丢弃,进而减少网络拥塞时间,避免造成更大的损失。 在本发明实施例中,根据网络的拥塞程度,可以较合理地调整大象流报文的丢弃概率,以减少网络较长时间拥堵或过多待转发报文被丢弃现象的发生。 图7是本发明的一个实施例提供的一种拥塞控制框架的结构示意图。图7中虚线框部分为交换机CPU运行的软件模块,下面的实线框为交换芯片的硬件逻辑。其中特殊流匹配表和流匹配表是两个单独的表,特殊流匹配表的匹配特征由用户指定,用来匹配一些特殊的流量,由于这些流量很大,但对时延敏感,报文一旦匹配特殊流匹配表,那么就不再查询流匹配表,而是直接标记成老鼠流,经过拥塞控制模块进行处理。 在图7中箭头标注的数字对应软件与硬件的控制流,下面结合控制流详细说明基于报文类型进行拥塞控制的实现细节。报文类型包括:大象流、老鼠流。 步骤S11:待转发报文经交换芯片流匹配逻辑进行匹配,匹配的条件是硬件表项未存在该报文对应的表项,若未匹配到,限速后把报文拷贝到流学习软件模块,流学习模块对报文进行解析。若匹配到,则不作处理。流学习模块请参考图5对应的实施例中的讲解。 步骤S12:流学习模块对来自流匹配的报文进行解析,解析出待转发报文五元组信息,即源IP地址、目的IP地址、协议号、源端口号、目的端口号,基于五元组信息对报文进行分类,这种分类粒度比较细,优点是可以对报文进行精确控制,缺点是耗费硬件表项,增加软件查询表项压力。也可以仅根据报文源IP、目的IP进行分类,优点是节省硬件表项,减轻软件硬件表项压力。对于如何选取匹配项,需要根据具体的业务模型,从五元组中选取合适的匹配项。流学习模块把分析后的表项通过控制流2下发到芯片硬件表,后续再进入交换芯片的该同一种待转发报文,由于在硬件表项中已经存在,匹配逻辑不会把该待转发报文拷贝到流学习模块了。 步骤S13:流学习模块会对每一条下发的表项注册一条表项,针对每一条表项对对应有计数器。每一个待转发报文进入交换机后都会匹配流学习模块下发的硬件表,如果匹配到对应表项,计数器会把待转发报文的字节数统计进对应表项中,供流量查询模块查询。 步骤S14:流量查询模块每隔1秒查询硬件表中的表项,获取每条表项流量统计值,根据本次统计与上一次统计的差值计算出该类报文的速率。 步骤S15:对于查询的表项在两个查询周期内发现流量未发生变化,则认为再无该类流量通过交换机,通知流老化模块对该表项进行删除。 步骤S16:老鼠流、大象流标记模块根据流量查询模块的结果,根据预期设置的判断大象流的标准,选取符合大象流特征的待转发报文作为大象流,其他作为老鼠流。并且仅对大象流的待转发报文做拥塞控制标记,在发生拥塞时可以对标注后的待转发报文其进行随机丢弃或尾部丢弃。 步骤S17:交换芯片流老化模块收到删除硬件表项通知,删除对应表项,同时删除该表项对应的计数装置,为交换芯片释放资源。如果交换机后续再收到与该表项对应的待转发报文,会通过学习模块重新添加该表项。 步骤S18:当交换机出端口队列发生拥塞时,随机丢弃/尾丢弃模块会根据当前队列的长度,计算出对应的丢弃概率,对带有拥塞控制标记的大象流的待转发博文随机进行丢弃。如果所有带标记的大象流的待转发报文都丢弃,链路拥塞状况仍未改善,则开始对老鼠流的待转发报文进行丢弃。如果链路未发生拥塞,则大象流的待转发报文、老鼠流的待转发报文正常转发。 在本发明实施例中,在交换芯片出端口队列发生拥塞的时候,拥塞控制算法根据流的本身特性,即对时延敏感的老鼠流的待转发报文不进行丢弃,正常转发。而对于大象流的待转发报文进行随机丢弃或尾部丢弃。交换芯片随机丢弃概率为百分之百或尾丢弃时,当大象流的待转发报文全部丢弃后拥塞仍未缓解,开始对老鼠流的待转发报文进行丢弃。 图8是本发明的一个实施例提供的一种拥塞控制装置的结构示意图,包括: 信息确定模块801,用于确定待转发报文的属性信息和/或数据流速率; 类型确定模块802,用于根据属性信息和/或数据流速率,确定待转发报文的报文类型;其中,报文类型包括:老鼠流或大象流; 拥塞控制模块803,用于根据待转发报文的报文类型,对待转发报文进行拥塞控制。 可选地,属性信息包括:时延敏感程度信息; 类型确定模块802,具体用于判断时延敏感程度信息是否大于敏感程度阈值; 若是,则确定待转发报文的报文类型为老鼠流; 若否,则根据数据流速率,确定待转发报文的报文类型。 可选地,类型确定模块802,具体用于判断数据流速率是否大于速率阈值; 若是,则确定待转发报文的报文类型为大象流; 若否,则确定待转发报文的报文类型为老鼠流。 可选地,信息确定模块801,具体用于确定待转发报文在流匹配表中对应的目标表项;其中,目标表项包括以下至少之一:源IP地址、目的IP地址、协议号、源端口号、目的端口号; 根据待转发报文的字节数,更新目标表项对应的字节统计值; 根据字节统计值在查询周期内的差值,确定目标表项对应的数据流速率; 将目标表项对应的数据流速率确定为待转发报文对应的数据流速率。 可选地,信息确定模块801,具体用于解析出待转发报文的对应表项; 确定流匹配表中是否存在对应表项,若存在,将存在的表项确定为待转发报文对应的目标表项,否则,将对应表项添加到流匹配表中,并将添加的表项确定为待转发报文对应的目标表项。 可选地,装置还包括: 表项删除单元804,用于针对流匹配表中的每个表项:若在老化周期内,表项的字节统计值的变化值小于预设差值,则删除表项。 可选地,拥塞控制模块803,用于对报文类型为大象流的待转发报文进行丢弃处理。 可选地,拥塞控制模块803,具体用于确定网络的拥塞程度; 根据拥塞程度,确定大象流报文的丢弃概率; 以丢弃概率,对报文类型为大象流的待转发报文进行丢弃处理。 可选地,拥塞控制模块803,具体用于若拥塞程度大于预设程度且大象流报文的丢弃概率大于预设概率,对报文类型为老鼠流的待转发报文进行丢弃处理。 本发明实施例提供了一种电子设备,包括: 一个或多个处理器; 存储装置,用于存储一个或多个程序, 当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一实施例的方法。 下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。 如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。 以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。 特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。 需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括信息确定模块、类型确定单元和拥塞控制模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,信息确定模块还可以被描述为“确定待转发报文的属性信息和/或数据流速率的模块”。 作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括: 确定待转发报文的属性信息和/或数据流速率; 根据所述属性信息和/或所述数据流速率,确定所述待转发报文的报文类型;其中,所述报文类型包括:老鼠流或大象流; 根据所述待转发报文的报文类型,对所述待转发报文进行拥塞控制。 根据本发明实施例的技术方案,确定待转发报文的报文类型,报文类型包括:老鼠流或大象流;再根据待转发报文的报文类型,对待转发报文进行拥塞控制。如在网络发生拥塞时,可将数据流速率较大的大象流进行丢弃,而无需丢弃数据流速率较小或时延敏感程度较高的老鼠流,就可有效缓解网络拥塞状况。又如可将大象流先丢弃,在网络拥塞状态没有缓解的情况下,再丢弃老鼠流。相比对所有报文进行无差别地丢弃的拥塞控制方法,本发明实施例的方法根据报文类型进行拥塞控制,更加合理有效。 上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。