拥塞控制方法、设备及系统

文档序号:1524037 发布日期:2020-02-11 浏览:12次 >En<

阅读说明:本技术 拥塞控制方法、设备及系统 (Congestion control method, equipment and system ) 是由 曹政 高山渊 刘兴奎 于 2018-07-31 设计创作,主要内容包括:本申请实施例提供一种拥塞控制方法、设备及系统。在本申请实施例中,网络交换设备对其输出端口的数据流分布情况进行监控,获得引起输出端口拥塞的数据流规模信息,进而根据所获得的数据流规模信息控制引起输出端口拥塞的数据流发送端调整发往该输出端口的数据流的发送速率;引起输出端口拥塞的数据流规模信息可以从整体上更加全面地反应拥塞情况,可促使数据流发送端快速地将发送速率降低到位,加快发送速率的收敛速度,便于快速消除拥塞,提高带宽利用率。(The embodiment of the application provides a congestion control method, equipment and a system. In the embodiment of the application, the network switching equipment monitors the data flow distribution condition of the output port of the network switching equipment, obtains the data flow scale information causing the congestion of the output port, and then controls the data flow sending end causing the congestion of the output port to adjust the sending rate of the data flow sent to the output port according to the obtained data flow scale information; the data flow scale information causing the congestion of the output port can comprehensively reflect the congestion situation on the whole, can promote the data flow sending end to quickly reduce the sending rate in place, quickens the convergence rate of the sending rate, is convenient to quickly eliminate the congestion and improves the bandwidth utilization rate.)

拥塞控制方法、设备及系统

技术领域

本申请涉及通信技术领域,尤其涉及一种拥塞控制方法、设备及系统。

背景技术

在新业务及新技术的驱动下,数据中心将部署更多数量、更多类型的应用程序和服务,例如离线作业,流式作业,Web服务器,数据库等等,其内部流量急剧增长,数据中心对超大规模、超高带宽、低延迟的网络需求不断提升。于是,100Gb/s甚至400Gb/s的网络带宽逐渐在数据中心中得到应用,这使得数据中心网络中的拥塞问题更加严重,而多打一通信(Incast)是数据中心网络中拥塞原因之一。

目前,常用解决Incast拥塞的方法主要是:检测交换机输出端口的缓冲区状态,根据缓冲区状态确定是否需要进行拥塞控制,并在需要进行拥塞控制时随机选择某个发送端,通知该发送端调整自己的发送速率。在该拥塞控制方法中,发送端往往需要经过多次的速率调整,无法快速将发送速率降低到位,拥塞问题的解决速度相对较慢。

发明内容

本申请的多个方面提供一种拥塞控制方法、设备及系统,用以促进发送端快速实现速率收敛,从而快速消除拥塞,提高带宽利用率。

本申请实施例提供一种拥塞控制方法,包括:对网络交换设备输出端口的数据流分布情况进行监控,以获取引起所述输出端口拥塞的数据流规模信息;根据引起所述输出端口拥塞的数据流规模信息,控制引起所述输出端口拥塞的数据流发送端调整发往所述输出端口的数据流的发送速率。

本申请实施例还提供一种拥塞控制方法,包括:接收网络交换设备发送的拥塞通知消息,所述拥塞通知消息携带有引起所述网络交换设备输出端口拥塞的数据流规模信息和数据流标识;根据引起所述输出端口拥塞的数据流规模信息和数据流标识,计算本端引起所述输出端口拥塞的数据流的目标发送速率;根据所述目标发送速率调整本端引起所述输出端口拥塞的数据流的发送速率。

本申请实施例还提供一种网络交换设备,包括:M个输出端口和K个拥塞检测模块,其中,M和K是正整数;所述M个输出端口,用于转发来自数据流发送端的数据流;所述K个拥塞检测模块,用于对所述M个输出端口的数据流分布情况进行监控,以获取引起每个输出端口拥塞的数据流规模信息;以及针对每个输出端口,根据引起所述输出端口拥塞的数据流规模信息,控制引起所述输出端口拥塞的数据流发送端调整发往所述输出端口的数据流的发送速率。

本申请实施例还提供一种主机,包括:通信端口、计算模块和拥塞控制模块;所述通信端口,用于接收网络交换设备发送的拥塞通知消息,所述拥塞通知消息携带有引起所述网络交换设备输出端口拥塞的数据流规模信息和数据流标识;所述计算模块,用于根据引起所述输出端口拥塞的数据流规模信息和数据流标识,计算本端引起所述输出端口拥塞的数据流的目标发送速率;所述拥塞控制模块,用于根据所述目标发送速率调整本端引起所述输出端口拥塞的数据流的发送速率。

本申请实施例还提供一种网络通信系统,包括:网络交换设备以及与所述网络交换设备连接的多台主机;所述多台主机,用于产生数据流并通过所述网络交换设备转发所述数据流,以及在所述网络交换设备的控制下,根据引起所述网络交换设备输出端口拥塞的数据流规模信息调整发往所述输出端口的数据流的发送速率;所述网络交换设备,用于通过其输出端口转发来自所述多台主机的数据流,并统计引起其输出端口拥塞的数据流规模信息,根据所述数据流规模信息控制引起所述输出端口拥塞的主机调整发往所述输出端口的数据流的发送速率。

在本申请实施例中,网络交换设备对其输出端口的数据流分布情况进行监控,获得引起输出端口拥塞的数据流规模信息,进而根据所获得的数据流规模信息控制引起输出端口拥塞的数据流发送端调整发往该输出端口的数据流的发送速率;引起输出端口拥塞的数据流规模信息可以从整体上更加全面地反应拥塞情况,可促使数据流发送端快速地将发送速率降低到位,加快发送速率的收敛速度,便于快速消除拥塞,提高带宽利用率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a为本申请示例性实施例提供的一种网络通信系统的结构示意图;

图1b为本申请示例性实施例提供的一种拥塞通知消息的格式示意图;

图1c为本申请示例性实施例提供的另一种拥塞通知消息的格式示意图;

图2a为本申请示例性实施例提供的一种网络交换设备的硬件结构示意图;

图2b为本申请示例性实施例提供的一种拥塞检测模块的硬件结构示意图;

图2c为本申请示例性实施例提供的另一种网络交换设备的硬件结构示意图;

图3本申请示例性实施例提供的一种主机的硬件结构示意图;

图4a为本申请示例性实施例提供的从网络交换设备角度描述的一种拥塞控制方法的流程示意图;

图4b为本申请示例性实施例提供的步骤401的一种实施方法的流程示意图;

图5为本申请示例性实施例提供的从主机角度描述的一种拥塞控制方法的流程示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有拥塞控制方法中,发送端往往需要经过多次的速率调整,无法快速将发送速率降低到位,拥塞问题的解决速度相对较慢。针对该技术问题,在本申请一些实施例中,通过获取引起网络交换设备输出端口拥塞的数据流规模信息,根据所获得的数据流规模信息控制引起输出端口拥塞的数据流发送端调整发往该输出端口的数据流的发送速率,由于引起输出端口拥塞的数据流规模信息可以从整体上更加全面地反应拥塞情况,可促使数据流发送端快速地将发送速率降低到位,加快发送速率的收敛速度,便于快速消除拥塞,提高带宽利用率。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1a为本申请示例性实施例提供的一种网络通信系统100的结构示意图。如图1a所示,网络通信系统100包括:网络交换设备101和多台主机102。网络交换设备101可以是一台,也可以是多台。如图1a所示,主机102之间通过网络交换设备101互联,完成通信过程。如图1a所示,若网络交换设备101为多台,则网络交换设备101除了与主机102连接之外,网络交换设备101之间也相互连接。网络交换设备101之间的互联方式以及网络交换设备101与主机102之间的连接,均可根据应用需求适应性部署。

值得说明的是,根据互联范围的不同,本实施例的网络通信系统100可以是局域网、城域网或广域网。另外,本实施例的网络通信系统100可应用于各业务场景中,例如可应用于数据中心作为数据中心的通信网络,但不限于此。

在本实施例中,主机102主要用于产生数据流并通过网络交换设备101将数据流转发出去,例如可能是转发给其它主机或下一网络交换设备。数据流是指一组有顺序的数据包的集合,产生数据流主要是指有序地产生数据流中各个数据包的过程。当然,主机102除了可以产生数据流之外,还可以负责数据流的消费,数据流的消费是指接收网络交换设备101转发的该数据流中各数据包并对接收到的数据包进行处理的过程。值得说明的是,根据应用或业务场景的不同,主机102对数据包进行处理的方式会有所不同,例如主机102可以对接收到的数据包进行查询、分析、虚拟化、展示等各种处理。

在本实施例中,网络交换设备101的主要功能是通过其输出端口对来自各主机102的数据流进行转发。可选地,网络交换设备101可以将来自某台主机102的数据流转发给另一台主机102,也可以将来自某台主机102的数据流转发给下一网络交换设备。

在一些业务场景中,网络通信系统100中可能存在多对一(many-to-one)的通信模式。例如,在云计算数据中心,尤其是以hadoop,Mapreduce,HDFS等横向扩展(scale out)方式部署实现的分布式数据处理业务,经常出现多对一的通信模式。

在多对一的通信模式中,当一台主机102向多台其它主机102发起一个请求时,多台其它主机102同时收到该请求,并且几乎同时做出响应,这些主机102几乎同时向发起请求的主机102返回数据流,这会产生一个“微突发流”。这种情况反映到网络交换设备101上就是,网络交换设备101的一个输出端口需要转发来自多台主机102的数据流,这很容易造成该输出端口的输出缓冲区溢出,从而导致丢包及随后的重传,即出现多打一的拥塞问题。若网络通信系统100采用传输控制协议(Transmission Control Protocol,TCP),则这种多打一的拥塞问题通常被称为Incast拥塞问题。

在本实施例中,网络交换设备101除了负责对来自主机102的数据流进行转发之外,还负责检测其输出端口是否发生拥塞,并可获取引起其输出端口拥塞的数据流规模信息,进而,可以根据引起输出端口拥塞的数据流规模信息控制引起该输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率,以解决拥塞问题。

值得说明的是,网络交换设备101一般具有多个输出端口,每个输出端口都有可能发生拥塞,网络交换设备101可以采用相同或类似的方式对每个输出端口分别进行拥塞控制。为便于描述,在下面描述中以对网络交换设备101某个输出端口进行拥塞控制为例进行说明。

对网络交换设备101的输出端口来说,可以负责转发一个或多个数据流,不同数据流的流信息不同,流信息是可唯一标识一个数据流的信息。假设流信息为五元组,即源IP地址、源端口、目的IP地址、目的端口和传输层协议,则不同数据流对应的五元组不完全相同,通常是源IP地址和目的IP地址不完全相同。不同数据流在网络交换设备101的输出端口上的分布情况一般不同。有些数据流的数据量较大,持续时间较长,其数据包会频繁出现在输出端口上;另一些数据流的数据量相对较小,持续时间较短,其数据包会突发性出现在输出端口上。可选地,网络交换设备101可以对其输出端口上的数据流分布情况进行监控,根据输出端口上各数据流的分布情况,确定引起该输出端口拥塞的数据流并获取引起该输出端口拥塞的数据流规模信息;之后,可以根据引起输出端口拥塞的数据流规模信息,控制引起该输出端口拥塞的主机调整发往该输出端口的数据流的发送速率。

对主机102来说,除了产生数据流和消费数据流之外,还可以在网络交换设备101的控制下,根据网络交换设备101获取的引起其输出端口拥塞的数据流规模信息调整发往该输出端口的数据流的发送速率。其中,引起网络交换设备101输出端口拥塞的数据流规模信息可以从整体上更加全面地反应该输出端口的拥塞情况,属于一种全局拥塞Incast信息。主机102根据该全局拥塞Incast信息可以快速将相应数据流的发送速率降低到位,可减少速率调整的次数,加快相应数据流发送速率的收敛速度,便于快速消除拥塞,进而提高带宽利用率。

另外,在网络交换系统100中,由网络交换设备101向引起输出端口拥塞的主机102反馈全局拥塞Incast信息,相比于由数据流接收端反馈,可缩短全局拥塞Incast信息的反馈距离,减少反馈时间,有利于提高拥塞控制的实时性,可解决全局拥塞同步的问题。

在本实施例中,不对“引起输出端口拥塞的数据流规模信息”的内容做限定,凡是能够从整体上更加全面地反应该输出端口的拥塞情况的信息均适用于本申请实施例。例如,引起输出端口拥塞的数据流规模信息可以是引起输出端口拥塞的数据流数量,也可以是引起输出端口拥塞的总数据流量,当然,还可以是引起输出端口拥塞的数据流数量以及每个数据流在该输出端口上累积的数据流量等信息的组合,等等。

在实际业务场景中,大多数据流在持续一段时间后就会结束,一般不会永久持续下去。基于这种考虑,可以预先设定监控周期,以便周期性地进行拥塞控制。该监控周期可配置,一般可根据业务场景中数据流的持续时长确定,例如可以取业务场景中各数据流的平均持续时长,也可以取数据流中的最大持续时长等。对网络交换设备101而言,可以按照监控周期,周期性地监控其输出端口的数据流分布情况,进而根据在每个监控周期内监控到的数据流分布情况,获取每个监控周期内引起该输出端口拥塞的数据流规模信息。简单来说,就是周期性地获取引起输出端口拥塞的数据流规模信息,即每当一个监控周期开始时,重新获取引起输出端口拥塞的数据流规模信息。

其中,在每个监控周期,输出端口的数据流分布情况可以通过多种信息来体现。例如,在每个监控周期内,可以监控输出端口上各数据流的持续总时长,各数据流的总数量,各数据流的出现时间等一种或几种信息来体现该输出端口的数据流分布情况。在一可选实施方式中,在每个监控周期内,可以监控输出端口上各数据流以小于设定时间间隔连续出现的次数来体现该输出端口的数据流分布情况。其中,设定时间间隔可根据实际业务场景灵活设定,本实施例并不限定其取值。

在一个监控周期内,若某数据流以小于设定时间间隔连续出现的次数越多,说明该数据流需要通过该输出端口转发的数据包数量越多,该数据流引起该输出端口拥塞的可能性就越大。基于此,可以根据在每个监控周期内监控到的输出端口上各数据流以小于设定时间间隔连续出现的次数,获取相应监控周期内引起该输出端口拥塞的数据流数量,作为引起该输出端口拥塞的数据流规模信息。其中,可以采用但不限于下述方式来确定每个监控周期内引起输出端口拥塞的数据流数量:

方式1:在每个监控周期内,按照监控到的输出端口上各数据流以小于设定时间间隔连续出现的次数由多到少的顺序,对该输出端口上各数据流进行排序,选择排序最靠前的P个数据流作为引起该输出端口拥塞的数据流,P为引起该输出端口拥塞的数据流数量,P是非负整数。

方式2:可以预先设定一个次数阈值,基于该次数阈值可判断某个数据流是否属于引起输出端口拥塞的数据流。在每个监控周期内,将监控到的输出端口上各数据流以小于设定时间间隔连续出现的次数与该次数阈值进行比较;若某一数据流以小于设定时间间隔连续出现的次数大于设定次数阈值,则确定该数据流属于引起该输出端口拥塞的数据流,以小于设定时间间隔连续出现的次数大于设定次数阈值的数据流数量为引起该输出端口拥塞的数据流数量。

进一步,在方式2中,在每个监控周期内,可以记录每个数据流最近一次到达网络交换设备101输出端口的时间。这样每当有数据流到达该输出端口时,可以计算该数据流此次到达该输出端口的时间与该数据流最近一次到达该输出端口的时间的差值,然后将该差值与设定时间间隔进行比较;若该差值小于设定时间间隔,将该数据流以小于预设时间间隔出现的次数加1;反之,若该差值大于或等于设定时间间隔,说明不再符合“连续”这一要求,可将该数据流以小于预设时间间隔出现的次数置为初始值,以便于重新统计该数据流以小于设定时间间隔到达该输出端口的次数,与此同时,将该数据流最近一次达到输出端口的时间更新为数据流此次到达输出端口的时间。当该数据流以小于预设时间间隔出现的次数大于设定次数阈值时,确定该数据流属于引起该输出端口拥塞的数据流,并将该监控周期内引起该输出端口拥塞的数据流规模信息加1。

相应地,在每个监控周期结束时,可以将该监控周期内获取的各数据流以小于预设时间间隔出现的次数、引起相应输出端口拥塞的数据流规模信息以及各数据流最近一次到达相应输出端口的时间重新复位,以便在下一个监控周期重新计数。本实施例并不限定复位操作的方式,例如,在监控周期结束时,可以将各数据流以小于预设时间间隔出现的次数重新置为0,将引起该输出端口拥塞的数据流规模信息重新置为1,以及将各数据流最近一次到达相应输出端口的时间重置为当前时间。

在本申请实施例中,网络交换设备101一方面获取引起其输出端口拥塞的数据流规模信息,记为操作1;另一方面根据引起其输出端口拥塞的数据流规模信息,控制引起输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率,记为操作2。其中,操作1主要用于为操作2提供基础数据,但是,操作1的执行逻辑与操作2的执行逻辑没有必然关系,两者可以按照各自的执行逻辑并行执行。即,网络交换设备101可以按照操作1的执行逻辑执行操作1,并在执行操作1的过程中,按照操作2的执行逻辑执行操作2。

在一可选实施方式中,网络交换设备101一方面周期性地获取引起其输出端口拥塞的数据流数量(相当于执行操作1);另一方面判断其输出端口是否满足拥塞控制条件,并在判断出满足拥塞控制条件时,根据在当前监控周期内获得的引起该输出端口拥塞的数据流数量,控制引起该输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率(相当于执行操作2)。其中,拥塞控制条件可以根据实际业务场景灵活设定,下面举例说明:

例如,网络交换设备101一方面周期性地获取引起其输出端口拥塞的数据流规模信息;另一方面监控是否有新数据包到达,每当有新数据包到达时,确定输出端口满足拥塞控制条件;然后,根据在当前监控周期内获得的引起输出端口拥塞的数据流规模信息,控制引起输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率。

又例如,网络交换设备101一方面周期性地获取引起其输出端口拥塞的数据流规模信息,另一方面监控其输出端口的输出缓冲区是否溢出,若其输出端口的输出缓冲区溢出,确定输出端口满足拥塞控制条件;然后,根据在当前监控周期内获得的引起输出端口拥塞的数据流规模信息,控制引起输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率。

再例如,网络交换设备101一方面周期性地获取引起其输出端口拥塞的数据流规模信息;另一方面监控是否有新数据包到达,每当有新数据包到达时,可以判断该新数据包所属的数据流是否属于引起其输出端口拥塞的数据流,并判断该输出端口的输出缓冲区是否达到拥塞通知阈值,当两个判断操作的结果均为是时,确定输出端口满足拥塞控制条件;然后,根据在当前监控周期中得到的引起该输出端口拥塞的数据流规模信息,控制引起该输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率。

在本申请实施例中,网络交换设备101可以采用多种实施方式,达到根据引起输出端口拥塞的数据流规模信息控制引起输出端口拥塞的主机102调整发往该输出端口的数据流的发送速率的目的。下面列举几种实施方式:

在实施方式A中,网络交换设备101可以向引起其输出端口拥塞的主机102发送拥塞控制指令;主机102接收到拥塞控制指令后向网络交换设备101发送数据请求,以请求引起输出端口拥塞的数据流规模信息;网络交换设备101根据接收到的数据请求,将引起输出端口拥塞的数据流规模信息发送给主机102;主机102接收到网络交换设备101发送的引起输出端口拥塞的数据流规模信息后,根据该数据流规模信息调整发往输出端口的数据流的发送速率。

在实施方式B中,网络交换设备101可以将引起其输出端口拥塞的数据流规模信息发送给引起其输出端口拥塞的主机102,以控制主机102根据该数据流规模信息调整发往输出端口的数据流的发送速率;主机102接收到网络交换设备101发送的引起输出端口拥塞的数据流规模信息后,根据该数据流规模信息调整发往输出端口的数据流的发送速率。

在实施方式C中,网络交换设备101可以在输出端口满足拥塞控制条件时,根据引起输出端口拥塞的数据流规模信息生成拥塞通知消息,将拥塞通知消息发送给引起该输出端口拥塞的主机102,以供该主机102基于引起该输出端口拥塞的数据流规模信息调整发往该输出端口的数据流的发送速率。

可选地,网络交换设备101与主机102之间可以采用专用的拥塞通知消息,并预先约定专用拥塞通知消息的格式。基于此,网络交换设备101可以将引起其输出端口拥塞的数据流规模信息作为专用拥塞通知消息的负载填充至专用拥塞通知消息中,并在专用拥塞通知消息中携带引起其输出端口拥塞的数据流标识,发送给引起其输出端口拥塞的主机102。一种专用拥塞通知消息的格式如图1b所示,包括但不限于:源地址域(SRC)、目的地址域(DST)、类型域(Type)以及消息负载域(Payload)。

可选地,网络交换设备101也可以采用现有拥塞通知消息,并对现有拥塞通知消息进行扩展,以便通过扩展后的拥塞通知消息将引起其输出端口拥塞的数据流规模信息和引起其输出端口拥塞的数据流标识发送给引起其输出端口拥塞的主机102。值得说明的是,扩展后的拥塞通知消息中还可以采用现有拥塞控制机制得到的拥塞反馈信息,例如Fb信息。一种扩展后的拥塞通知消息的格式如图1c所示,包括但不限于:源地址域(SRC)、目的地址域(DST)、类型域(Type)、Fb域以及消息负载域(Payload)。

若网络交换设备101在有新数据包到达时,判断其输出端口是否满足拥塞控制条件,并在其输出端口满足拥塞控制条件时,根据引起其输出端口拥塞的数据流规模信息生成拥塞通知消息,则无论生成的是专用拥塞通知消息,还是扩展后的拥塞通知消息,网络交换设备101可以提取新数据包的包头,将包头中的源地址信息和目的地址信息交换,并将包头中的类型域重置为拥塞通知类型值,将引起其输出端口拥塞的数据流规模信息作为消息负载,结合调整后的包头构成出拥塞通知消息。在该实施方式中,网络交换设备101在新数据包的包头的基础上直接构造拥塞通知消息,相对简单,易于实现。可选地,包头中的源地址信息包括源IP地址和源端口号,目的地址信息包括目的IP地址和目的端口。

在实施方式C中,主机102可接收网络交换设备101发送的拥塞通知消息,该拥塞通知消息携带有引起网络交换设备101输出端口拥塞的数据流规模信息和数据流标识。可选地,若网络通信系统100中采用TCP/IP协议,则这里的数据流标识可以包括数据流的源IP地址和目的IP地址,但不限于此。然后,主机102根据引起输出端口拥塞的数据流规模信息和数据流标识,计算本端引起输出端口拥塞的数据流的目标发送速率;根据目标发送速率调整本端引起输出端口拥塞的数据流的发送速率。

其中,拥塞通知消息中携带的引起输出端口拥塞的数据流规模信息,一定程度上反映了分享该输出端口的网络带宽的数据流规模信息。可选地,为了避免发生拥塞,这些数据流可以平分该输出端口的网络带宽,每个数据流占用平分到的带宽资源。基于此,可以根据拥塞通知消息中携带的引起输出端口拥塞的数据流规模信息和数据流标识,计算本端引起该输出端口拥塞的数据流本次对应的带宽平分数;然后,根据该输出端口的网络带宽和计算出的本次对应的带宽平分数,计算本端引起该输出端口拥塞的数据流的目标发送速率;进而,根据该目标发送速率调整本端引起该输出端口拥塞的数据流的发送速率。例如,可以逐渐将本端引起该输出端口拥塞的数据流的发送速率调整至目标发送速率,或者直接将本端引起该输出端口拥塞的数据流的发送速率调整为目标发送速率。

进一步可选地,主机一侧可以针对每个数据流记录最近一次对应的带宽平分数。基于此,在引起输出端口拥塞的数据流规模信息为引起输出端口拥塞的数据流数量的情况下,可以根据下述公式(1)计算本端引起输出端口拥塞的数据流本次对应的带宽平分数。

在公式(1)中,Rflow表示之前对应的带宽平分数,

Figure BDA0001749045510000122

是预设的权重系数,是一个可配置参数;CIncast表示引起输出端口拥塞的数据流数量,Rnew-flow表示本次对应的带宽平分数。

在一可选实施方式中,拥塞通知消息的Fb域中携带有输出端口的输出缓冲区的拥塞度指示信息,该拥塞度指示信息可以是采用QCN或DCQCN等拥塞控制方式获取的。基于此,一种计算目标发送速率的方式包括:根据拥塞通知消息中携带的输出端口的输出缓冲区的拥塞度指示信息,计算第一发送速率,例如可以采用QCN或DCQCN等拥塞控制方式支持的速率计算方法f(),计算第一发送速率,可表示为f(Fb);并根据输出端口的网络带宽BW和本次对应的带宽平分数,计算第二发送速率,可表示为BW/Rnew-flow;从第一发送速率和第二发送速率中,选择较小的发送速率作为目标发送速率。

值得说明的是,在上述实施方式A-C中,输出端口可以是网络交换设备101的任一输出端口,主机102可以是任何一台引起该输出端口拥塞的主机。

在本实施例中,在拥塞控制过程中,引入引起网络交换设备输出端口拥塞的数据流规模信息这一信息,该信息可以从整体上更加全面地反应该输出端口的拥塞情况,属于一种全局拥塞Incast信息,主机根据该全局拥塞Incast信息调节相应数据流的发送速率,可以快速将相应数据流的发送速率降低到位,可减少速率调整的次数,加快相应数据流发送速率的收敛速度,便于快速消除拥塞,进而提高带宽利用率。

另外,当出现Incast拥塞时,由网络交换设备主动向引起该拥塞的主机102发送拥塞通知消息,有利于缩短拥塞通知的延迟,提高拥塞解决的效率。再者,对引起网络交换设备输出端口拥塞的各主机来说,均根据全局拥塞Incast信息对相应数据流进行速率调整,可快速将相应数据流的发送速率降低到位,无需以探测的方式尝试调速(例如可能增加或降低速率),这样各主机之间可避免以探测方式调速而出现调速同步的情况,可降低导致网络颠簸的概率,也就是可降低网络出现过载或欠载的概率。

对网络交换设备来说,关于检测其输出端口是否发生拥塞、获取引起其输出端口拥塞的数据流规模信息以及向引起其输出端口拥塞的数据流发送端反馈数据流规模信息等操作可以采用软件方式实现,当然,也可以采用硬件实现。在采用硬件方式实现时,本申请实施例并不限定网络交换设备的硬件实现结构,凡是可以实施上述操作的硬件结构均适用本申请实施例。本申请一些示例性实施例提供一种网络交换设备,该网络交换设备采用硬件方式实现上述操作。关于该网络交换设备的硬件实现结构可参见下述实施例。

如图2a所示,本申请实施例提供的网络交换设备的硬件结构包括:M个输出端口和K个拥塞检测模块,其中,M和K是正整数。M个输出端口,用于转发来自数据流发送端的数据流。数据流发送端可以是主机,也可以是上游网络交换设备。K个拥塞检测模块,用于对M个输出端口的数据流分布情况进行监控,以获取引起每个输出端口拥塞的数据流规模信息;以及针对每个输出端口,根据引起该输出端口拥塞的数据流规模信息,控制引起该输出端口拥塞的数据流发送端调整发往该输出端口的数据流的发送速率。

在本实施例中,并不限定M与K的数量,相应地,也不限定M个输出端口和K个拥塞检测模块之间的对应关系。在图2a中,用“虚线”表示输出端口和拥塞检测模块之间的对应关系,“虚线”也表示对应关系不限于此。例如,可以是一个拥塞检测模块负责对多个输出端口进行拥塞检测,也可以是一个拥塞检测模块负责对一个输出端口进行拥塞检测,还可以是多个拥塞检测模块共同对一个输出端口进行拥塞检测。

无论M个输出端口和K个拥塞检测模块之间的对应关系如何,对每个拥塞检测模块来说,其实现结构和功能基本相同。对不同拥塞检测模块来说,其主要区别在于所负责的输出端口的数据量可能会有所不同。故本实施例以单个拥塞检测模块为例,对拥塞检测模块的实现结构进行详细说明。

在本实施例中,不对“引起输出端口拥塞的数据流规模信息”的内容做限定,凡是能够从整体上更加全面地反应该输出端口的拥塞情况的信息均适用于本申请实施例。例如,引起输出端口拥塞的数据流规模信息可以是引起输出端口拥塞的数据流数量,也可以是引起输出端口拥塞的总数据流量,当然,还可以是引起输出端口拥塞的数据流数量以及每个数据流在该输出端口上累积的数据流量等信息的组合,等等。

如图2b所示,每个拥塞检测模块包括:拥塞检测子模块和拥塞通知子模块。其中,拥塞检测子模块,用于针对其所属拥塞检测模块所负责的Mx个输出端口中的每个输出端口,周期性地监控该输出端口上各数据流以小于设定时间间隔连续出现的次数,以获取每个监控周期内引起该输出端口拥塞的数据流数量,作为引起该输出端口拥塞的数据流规模信息。相应地,拥塞通知子模块,用于针对Mx个输出端口中的每个输出端口,根据引起该输出端口拥塞的数据流数量,控制引起该输出端口拥塞的数据流发送端调整发往该输出端口的数据流的发送速率。其中,Mx是正整数,Mx且≤M;另外,对于不同拥塞检测模块而言,Mx的取值可以相同,也可以不同。

进一步,如图2b所示,每个拥塞检测模块还包括:周期性复位计时器、映射子模块、拥塞信息表和计数器。

其中,周期性复位计时器,用于对监控周期进行重复计时。计数器,用于针对Mx个输出端口中的每个输出端口,记录每个监控周期内引起该输出端口拥塞的数据流数量。可选地,计数器的数量可以是Mx个,这样一个计数器可以针对一个输出端口计数。

拥塞信息表,用于记录Mx个输出端口中每个输出端口上各数据流以小于设定时间间隔连续出现的次数和最近一次到达该输出端口的时间。

可选地,本申请并不限定拥塞信息表的实现样式,凡是可以存储上述信息的表格式均适用于本申请实施例。例如,一种拥塞信息表的格式如图2c所示,包括但不限于:命中域(Hit),用于记录命中该表项的数据流是否属于引起该表项对应的输出端口Incast的数据流;时间戳域(TS),用于记录命中该表项的数据流最近一次命中该表项的时间戳;计数域(Counter),用于记录命中该表项的数据流以小于预设时间间隔出现的次数,即该表项被命中的次数。

映射子模块,用于针对Mx个输出端口中的每个输出端口,每当有数据流到达该输出端口时,根据到达该输出端口的数据流的流信息确定该数据流在拥塞信息表中对应的表项。可选地,映射子模块可以对数据流的流信息进行哈希(Hash)运算,根据Hash结果确定数据流在拥塞信息表中对应的表项。基于此,映射子模块也可以称为Hash子模块。

基于上述周期性复位计时器、映射子模块、拥塞信息表和计数器,拥塞检测子模块具体用于:针对Mx个输出端口中的每个输出端口,在每个监控周期内,每当有数据流到达该输出端口时,从映射子模块输出的表项中获取该数据流最近一次到达该输出端口的时间,计算该数据流此次到达该输出端口的时间与该数据流最近一次到达该输出端口的时间的差值,并在差值小于设定时间间隔时,将表项中记录的数据流以小于预设时间间隔出现的次数加1;以及在数据流以小于预设时间间隔出现的次数大于设定次数阈值时,确定数据流属于引起该输出端口拥塞的数据流,并将计数器的值加1。

拥塞检测子模块还用于:在上述差值大于或等于设定时间间隔时,将拥塞信息表重新复位操作,即拥塞信息表中被命中表项中记录的数据流以小于预设时间间隔出现的次数重置为0,并将被命中表项中记录的数据流最近一次到达输出端口的时间更新为数据流此次到达输出端口的时间。

进一步,拥塞检测子模块还用于:在周期性复位计时器计时结束,即每个监控周期结束时,将拥塞信息表中记录的各数据流以小于预设时间间隔出现的次数置为0,将计数器的值置为1,以及将拥塞信息表中记录的各数据流最近一次到达相应输出端口的时间重置为当前时间。

在一可选实施方式中,拥塞通知子模块具体用于:在输出端口满足拥塞控制条件时,根据引起输出端口拥塞的数据流规模信息生成拥塞通知消息;将拥塞通知消息发送给引起输出端口拥塞的数据流发送端,以供数据流发送端基于数据流规模信息调整发往输出端口的数据流的发送速率。

其中,拥塞控制条件可以根据实际业务场景灵活设定。可选地,拥塞通知子模块具体用于:每当有新数据包到达网络交换设备时,若新数据包所属的数据流属于引起输出端口拥塞的数据流,且输出端口的输出缓冲区达到拥塞通知阈值,则确定输出端口满足拥塞控制条件。

进一步,如图2c所示,本申请实施例提供的网络交换设备还包括:N个输入端口和交叉开关。其中,N个输入端口通过交叉开关与M个输出端口互联,N是正整数。其中,M和N可以相同,也可以不相同;优选地,M=N。

N个输入端口,主要用于接收与网络交换设备101连接的数据流发送端或其他网络交换设备发来的数据包,并通过交叉开关转发至相应输出端口。

交叉开关,主要负责从输入端口到输出端口的数据转发,即从输入端口获取数据包,识别数据包所属的数据流,将该数据包转发至该数据流对应的输出端口。

M个输出端口,主要用于接收来自交叉开关的数据包,将数据包发送到与网络交换设备连接的接收端主机或其他网络交换设备。

在一可选实施例中,网络交换设备中输出端口的数量与拥塞检测模块的数量相同,即M=K,且拥塞检测模块与输出端口一一对应,即一个拥塞检测模块负责对一个输出端口进行拥塞检测。

可选地,如图2c所示,拥塞检测模块可设置在与其对应的输出端口上,这样,每个输出端口包括:输出缓冲区和拥塞控制模块。输出缓冲区,用于缓存交叉开关转发过来的数据包;拥塞控制模块负责获取引起其隶属的输出端口拥塞的数据流规模信息,即全局拥塞Incast信息,记录全局拥塞Incast信息,在输出缓冲区达到拥塞控制条件时,根据全局拥塞Incast信息产生拥塞通知消息,通过输入端口将拥塞通知消息发送给与该输入端口连接的数据流发送端,以控制该数据流发送端根据全局拥塞Incast信息调整发往该输出端口的数据流的发送速率。

进一步,每个输出端口上的拥塞检测模块可以包括以下硬件模块:周期性复位计时器、Hash子模块、拥塞信息表、计数器、拥塞检测子模块以及拥塞通知子模块。为简化图示,在图2c中仅示出一个拥塞检测模块的硬件结构。下面结合图2c所示拥塞检测模块的硬件结构,对网络交换设备进行拥塞检测的工作原理进行说明:

将网络交换设备上的某个输出端口记为第一输出端口。第一输出端口的周期性复位计时器对监控周期T进行重复计时。监控周期T可配置,其可以是固定值,也可以是根据网络状态计算的动态值。

在周期性复位计时器对监控周期T进行计时期间,拥塞检测子模块监听是否有数据包到达网络交换设备的输入端口;如果监听到有数据包到达,则触发Hash子模块对数据包的流信息进行Hash映射,将流信息映射为查询拥塞信息表的地址;拥塞检测子模块根据Hash子模块输出的地址访问拥塞信息表中相应表项,读取该表项中TS域记录的时间,计算所读取的时间与数据包此次到达的时间的差值;若差值小于设定时间间隔,则将该表项中Counter域的值加1,将该表项中TS域记录的时间更新为数据包此次到达的时间,然后判断该表项中Hit域是否无效,并判断Counter域的值是否大于设定次数阈值;若该表项中Hit域无效,且Counter域的值大于设定次数阈值,则将表项中Hit域置为有效,并触发计数器加1;若差值大于或等于设定时间间隔,将该表项中Counter域的值重置为0,将该表项中TS域记录的时间更新为数据包此次到达的时间。可选地,数据包的流信息可以是五元组。这里并不限定采用的Hash算法,Hash算法的冲突概率越低,效果越好。

每当周期性复位计时器计时结束时,触发拥塞检测子模块对拥塞信息表和计数器进行复位操作,例如将计数器的值置为1,将拥塞信息表中各表项中TS域记录的时间更新为当前时间,将各表项中Hit域重置为无效,将各表项中Counter域的值重置为0。

在上述各模块工作过程中,第一输出端口的拥塞通知子模块会检测第一输出端口是否满足拥塞通知条件。例如,拥塞通知子模块会监听是否有新数据包到达第一输出端口,当有新数据包到达第一输出端口时,一方面查询拥塞信息表中与该新数据包对应的表项中的Hit域,判断该Hit域是否为有效,另一方面查询第一输出端口的输出缓冲区是否达到拥塞通知阈值;若所查询的Hit域为有效,且第一输出端口的输出缓冲区达到拥塞通知阈值,则读取计数器的计数值并将其携带在拥塞通知消息中通过相应输入端口发送给引起第一输出端口拥塞的数据流发送端,以供该数据流发送端根据计数器的计数值,即全局拥塞Incast信息对发往第一输出端口的数据流进行限速。其中,全局拥塞Incast信息可以从整体上更加全面地反应拥塞情况,可促使数据流发送端快速地将发送速率降低到位,加快发送速率的收敛速度,便于快速消除拥塞,提高带宽利用率。

除了网络通信系统以及网络交换设备之外,本申请一些示例性实施例还提供一种主机。本申请实施例提供的主机具有产生数据流、消费数据流以及通过网络交换设备收发数据流等功能,除此之外,还可以根据网络交换设备发送的拥塞通知消息对相应数据流进行限速,以解决网络拥塞问题。其中,主机根据网络交换设备发送的拥塞通知消息对相应数据流进行限速的功能可采用软件方式实现,也可以采用硬件方式实现。本申请实施例提供的主机采用硬件方式实现上述功能。关于主机的硬件实现结构可参见下述实施例。

如图3所示,本申请实施例提供的主机的硬件结构包括:通信端口31、计算模块32和拥塞控制模块33。

通信端口31,用于接收网络交换设备发送的拥塞通知消息,拥塞通知消息携带有引起网络交换设备输出端口拥塞的数据流规模信息和数据流标识。

计算模块32,与通信端口31连接,用于根据通信端口31接收到的引起输出端口拥塞的数据流规模信息和数据流标识,计算本端引起输出端口拥塞的数据流的目标发送速率。

拥塞控制模块33,与计算模块32连接,用于根据计算模块32计算出的目标发送速率调整本端引起输出端口拥塞的数据流的发送速率。

进一步,计算模块32具体用于:根据引起输出端口拥塞的数据流规模信息和数据流标识,计算本端引起输出端口拥塞的数据流本次对应的带宽平分数;根据输出端口的网络带宽和本次对应的带宽平分数,计算目标数据流的目标发送速率。

更进一步,本申请实施例提供的主机还可以包括寄存器,该寄存器用于记录本端引起输出端口拥塞的数据流之前对应的带宽平分数。基于此,计算模块32在获得本次对应的带宽平分数时,具体用于:根据引起输出端口拥塞的数据流标识,获取本端引起输出端口拥塞的数据流之前对应的带宽平分数;根据引起输出端口拥塞的数据流规模信息,对之前对应的带宽平分数进行更新,以获得本次对应的带宽平分数。

可选地,在引起输出端口拥塞的数据流规模信息为引起输出端口拥塞的数据流数量的情况下,计算模块32可以根据公式(1)获取本端引起输出端口拥塞的数据流之前对应的带宽平分数。关于公式(1)参见前述实施例的描述,在此不再赘述。

进一步,拥塞控制模块33还可用于执行传统的速率恢复流程,当速率恢复到PR或超过时间阈值T’后,寄存器中的值重置为1,以供计算模块32重新计算新的带宽平分数,从而结束此次限流操作。

本实施例提供的主机,根据全局拥塞Incast信息对相应数据流进行速率调整,可以快速将相应数据流的发送速率降低到位,可减少速率调整的次数,加快相应数据流发送速率的收敛速度,便于快速消除拥塞,进而提高带宽利用率。

图4a为本申请示例性实施例提供的从网络交换设备角度描述的一种拥塞控制方法的流程示意图。如图4a所示,该方法包括:

401、对网络交换设备输出端口的数据流分布情况进行监控,以获取引起输出端口拥塞的数据流规模信息。

402、根据引起输出端口拥塞的数据流规模信息,控制引起输出端口拥塞的数据流发送端调整发往输出端口的数据流的发送速率。

在本实施例中,不对“引起输出端口拥塞的数据流规模信息”的内容做限定,凡是能够从整体上更加全面地反应该输出端口的拥塞情况的信息均适用于本申请实施例。例如,引起输出端口拥塞的数据流规模信息可以是引起输出端口拥塞的数据流数量,也可以是引起输出端口拥塞的总数据流量,当然,还可以是引起输出端口拥塞的数据流数量以及每个数据流在该输出端口上累积的数据流量等信息的组合,等等。

在本实施例中,网络交换设备对其输出端口的数据流分布情况进行监控,获得引起输出端口拥塞的数据流规模信息,即全局拥塞Incast信息,进而根据所获得的数据流规模信息控制引起输出端口拥塞的数据流发送端调整发往该输出端口的数据流的发送速率。其中,引起输出端口拥塞的数据流规模信息可以从整体上更加全面地反应拥塞情况,可促使数据流发送端快速地将发送速率降低到位,加快发送速率的收敛速度,便于快速消除拥塞,提高带宽利用率。

在一可选实施方式中,步骤401包括:周期性地监控输出端口上各数据流以小于设定时间间隔连续出现的次数,以获取每个监控周期内引起输出端口拥塞的数据流数量,作为引起该输出端口拥塞的数据流规模信息。

在一可选实施方式中,如图4b所示,上述步骤401的实施方式包括:

4011、在当前监控周期内,每当有数据流到达输出端口时,计算数据流此次到达输出端口的时间与数据流最近一次到达输出端口的时间的差值。

4012、判断上述差值是否小于设定时间间隔;若判断结果为是,进入步骤4013;若判断结果为否,进入步骤4016。

4013、将数据流以小于预设时间间隔出现的次数加1,并进入步骤4014。

4014、判断数据流以小于预设时间间隔出现的次数是否大于设定次数阈值;若判断结果为是,进入步骤4015;若判断结果为否,进入步骤4017。

4015、确定数据流属于引起输出端口拥塞的数据流,并将监控周期内引起输出端口拥塞的数据流数量加1,并进入步骤4017。

4016、将数据流以小于预设时间间隔出现的次数置为0,并将数据流最近一次到达输出端口的时间更新为数据流此次到达输出端口的时间,并进入步骤4017。

4017、判断当前监控周期是否结束;若判断结果为否,返回步骤4011;若判断结果为是,进入步骤4018。

4018、将当前监控周期内获取的各数据流以小于预设时间间隔出现的次数、引起相应输出端口拥塞的数据流数量以及各数据流最近一次到达相应输出端口的时间重新复位,进入下一监控周期,并返回步骤4011。

可选地,在每个监控周期结束时,可以将监控周期内获取的各数据流以小于预设时间间隔出现的次数置为0,将监控周期内获取的引起相应输出端口拥塞的数据流数量置为1,以及将监控周期内记录的各数据流最近一次到达相应输出端口的时间重置为当前时间。

在一可选实施方式中,步骤402包括:在输出端口满足拥塞控制条件时,根据引起输出端口拥塞的数据流规模信息生成拥塞通知消息;将拥塞通知消息发送给引起输出端口拥塞的数据流发送端,以供数据流发送端基于数据流规模信息调整发往输出端口的数据流的发送速率。

进一步,在上述步骤402中,每当有新数据包到达时,若新数据包所属的数据流属于引起输出端口拥塞的数据流,且输出端口的输出缓冲区达到拥塞通知阈值,则确定输出端口满足拥塞控制条件。相应地,生成拥塞通知消息包括:提取新数据包的包头,将包头中的源地址信息和目的地址信息交换,并将包头中的类型域重置为拥塞通知类型值;将数据流规模信息作为消息负载,结合包头构造出拥塞通知消息。

图5为本申请示例性实施例提供的从主机角度描述的一种拥塞控制方法的流程示意图。如图5所示,该方法包括:

501、接收网络交换设备发送的拥塞通知消息,该拥塞通知消息携带有引起网络交换设备输出端口拥塞的数据流规模信息和数据流标识。

502、根据引起输出端口拥塞的数据流规模信息和数据流标识,计算本端引起输出端口拥塞的数据流的目标发送速率。

503、根据目标发送速率调整本端引起输出端口拥塞的数据流的发送速率。

可选地,步骤502的一种实施方式包括:根据引起输出端口拥塞的数据流规模信息和数据流标识,计算本端引起输出端口拥塞的数据流本次对应的带宽平分数;根据输出端口的网络带宽和本次对应的带宽平分数,计算本端引起输出端口拥塞的数据流的目标发送速率。

进一步可选地,上述计算本端引起输出端口拥塞的数据流本次对应的带宽平分数包括:根据引起输出端口拥塞的数据流标识,获取本端引起输出端口拥塞的数据流之前对应的带宽平分数;根据引起输出端口拥塞的数据流规模信息,对之前对应的带宽平分数进行更新,以获得本次对应的带宽平分数。

可选地,步骤503的一种实施方式包括:根据拥塞通知消息中携带的输出端口的输出缓冲区的拥塞度指示信息,计算第一发送速率;根据输出端口的网络带宽和本次对应的带宽平分数,计算第二发送速率;从第一发送速率和第二发送速率中,选择较小的发送速率作为目标发送速率。

在本申请实施例中,根据引起输出端口拥塞的数据流规模信息,即全局拥塞Incast信息对相应数据流进行速率调整,可以快速将相应数据流的发送速率降低到位,可减少速率调整的次数,加快相应数据流发送速率的收敛速度,便于快速消除拥塞,进而提高带宽利用率。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤402的执行主体可以为设备A;又比如,步骤401的执行主体可以为设备A,步骤402的执行主体可以为设备B;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于时延约束的数据发送方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!