Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONGESTION CONTROL METHOD, APPARATUS AND DEVICE
Document Type and Number:
WIPO Patent Application WO/2015/123988
Kind Code:
A1
Abstract:
Disclosed are a congestion control method, apparatus and device, which belong to the technical field of communications. The method comprises: when it is detected that congestion occurs in a switching device, acquiring a first packet from a receiving cache of the switching device; when a source MAC address of the first packet is a MAC address of a gateway device, acquiring a source IP address of the first packet; when the source IP address is not an IP address of the gateway device, generating a first congestion control message according to the source IP address of the first packet, wherein the first congestion control message comprises the MAC address of the gateway device, a MAC address of the switching device and the source IP address of the first packet; and sending the first congestion control message to the gateway device. The present invention realizes congestion control of a three-layer SAN, thereby preventing the three-layer SAN from generating phenomena such as packet loss or non-order-preserving of packets, etc.

Inventors:
QIN YU (CN)
LIU SHUMING (CN)
Application Number:
PCT/CN2014/086178
Publication Date:
August 27, 2015
Filing Date:
September 10, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04L12/801
Foreign References:
CN102611620A2012-07-25
CN102006230A2011-04-06
CN101567818A2009-10-28
Download PDF:
Claims:
权利要求

1、 一种拥塞控制方法, 其特征在于, 所述方法包括:

当检测到交换设备发生拥塞时, 从所述交换设备的接收缓存中获取第一报文; 当所述第一报文的源 MAC地址为网关设备的 MAC地址时, 获取所述第一报文的 源 IP地址;

当所述源 IP地址不是所述网关设备的 IP地址时, 根据所述第一报文的源 IP地址, 生成第一拥塞控制消息, 所述第一拥塞控制消息包括所述网关设备 MAC地址、 所述交 换设备的 MAC地址和所述第一报文的源 IP地址;

向所述网关设备发送所述第一拥塞控制消息。

2、 根据权利要求 1所述的方法, 其特征在于, 所述第一报文的源 IP地址位于所述 第一拥塞控制消息的载荷 payload中。

3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述方法还包括:

从所述交换设备的接收缓存中获取第二报文;

当所述第二报文的源 MAC地址不是所述网关设备的 MAC地址时, 生成第二拥塞 控制消息, 所述第二拥塞控制消息包括所述第二报文的源 MAC地址和所述交换设备的 MAC地址。 4、 一种拥塞控制方法, 其特征在于, 包括:

当发生拥塞时, 网关设备接收第一拥塞控制消息, 所述第一拥塞控制消息包括所述 网关设备的 MAC地址、 交换设备的 MAC地址和源设备的 IP地址; 所述源设备为发送 引起拥塞的流量的设备;

根据所述第一拥塞控制消息以及所述源设备的 IP地址, 生成第二拥塞控制消息; 发送所述第二拥塞控制消息,所述第二拥塞控制消息用于使所述源设备控制流量发 送。

5、 根据权利要求 4所述的方法, 其特征在于,

所述第一拥塞控制消息的源 MAC地址为所述交换设备的 MAC地址, 目的 MAC 地址为所述网关设备的 MAC地址,所述源设备的 IP地址携带在所述第一拥塞控制消息 的载荷 payload中。 6、 根据权利要求 4或 5所述的方法, 其特征在于, 所述根据所述第一拥塞控制消 息以及所述源设备的 IP地址, 生成第二拥塞控制消息包括:

根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设备; 如果所述网关设备为所述源设备的网关设备, 所述网关设备根据所述 IP地址获取 所述源设备的 MAC地址, 根据所述第一拥塞控制消息以及所述源设备的 MAC地址, 生成所述第二拥塞控制消息, 所述第二拥塞控制消息的目的 MAC地址为所述源设备的 MAC地址;

所述发送所述第二拥塞控制消息包括:

根据所述目的 MAC地址向所述源设备发送所述第二拥塞控制消息。

7、 根据权利要求 4或 5所述的方法, 其特征在于, 所述根据所述第一拥塞控制消 息以及所述源设备的 IP地址, 生成第二拥塞控制消息包括:

根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设备; 如果所述网关设备不是所述源设备的网关设备,所述网关设备根据所述第一拥塞控 制消息生成第二拥塞控制消息, 所述第二拥塞控制消息的目的 IP地址为所述源设备的 IP地址, 所述第二拥塞控制消息携带所述第一拥塞控制消息; 所述第二拥塞控制消息为 IP报文。 8、 根据权利要求 7所述的方法, 其特征在于, 所述发送所述第二拥塞控制消息包 括包括:

根据所述第二拥塞控制消息的目的 IP地址, 通过路由的方式向所述源设备发送所 述第二拥塞控制消息, 使得目的网关设备接收到所述第二拥塞控制消息后, 从所述第二 拥塞控制消息中获取所述第一拥塞控制消息, 根据所述目的 IP地址获取所述源设备的 MAC地址, 将所述第一拥塞控制消息的源 MAC地址修改为所述目的网关设备的 MAC 地址, 将所述第一拥塞控制消息的目的 MAC地址修改为所述源设备的 MAC地址, 并 向所述源设备发送所述修改后的第一拥塞控制消息, 使得所述源设备控制流量发送; 所 述目的网关设备为所述源设备的网关设备。 9、 根据权利要求 7或 8所述的方法, 其特征在于, 所述第二拥塞控制消息还包括 源端口号和目的端口号, 所述源端口号和目的端口号为预设端口号, 用于表明所述第二 拥塞控制消息的类型。

10、 一种拥塞控制装置, 其特征在于, 所述装置包括:

第一获取模块, 用于当检测到交换设备发生拥塞时, 从所述交换设备的接收缓存中 获取第一报文;

第二获取模块, 用于当所述第一报文的源 MAC地址为网关设备的 MAC地址时, 获取所述第一报文的源 IP地址;

生成模块, 用于当所述源 IP地址不是所述网关设备的 IP地址时, 根据所述第一报 文的源 IP地址,生成第一拥塞控制消息,所述第一拥塞控制消息包括所述网关设备 MAC 地址、 所述交换设备的 MAC地址和所述第一报文的源 IP地址;

发送模块, 用于向所述网关设备发送所述第一拥塞控制消息。

11、 根据权利要求 10所述的装置, 其特征在于, 所述第一报文的源 IP地址位于所 述第一拥塞控制消息的载荷 payload中。

12、 根据权利要求 10所述的装置, 其特征在于,

所述第一获取模块还用于从所述交换设备的接收缓存中获取第二报文;

所述生成模块还用于当所述第二报文的源 MAC地址不是所述网关设备的 MAC地 址时, 生成第二拥塞控制消息, 所述第二拥塞控制消息包括所述第二报文的源 MAC地 址和所述交换设备的 MAC地址。

13、 一种拥塞控制装置, 其特征在于, 包括:

接收模块, 用于当发生拥塞时, 接收第一拥塞控制消息, 所述第一拥塞控制消息包 括所述网关设备的 MAC地址、 交换设备的 MAC地址和源设备的 IP地址; 所述源设备 为发送引起拥塞的流量的设备;

生成模块, 用于根据所述第一拥塞控制消息以及所述源设备的 IP地址, 生成第二 拥塞控制消息;

发送模块, 用于发送所述第二拥塞控制消息, 所述第二拥塞控制消息用于使所述源 设备控制流量发送。

14、 根据权利要求 13所述的装置, 其特征在于, 所述第一拥塞控制消息的源 MAC 地址为所述交换设备的 MAC地址, 目的 MAC地址为所述网关设备的 MAC地址, 所 述源设备的 IP地址携带在所述第一拥塞控制消息的载荷 payload中。

15、 根据权利要求 13或 14所述的装置, 其特征在于, 所述生成模块用于根据所述 源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设备; 如果所述网关设 备为所述源设备的网关设备,所述网关设备根据所述 IP地址获取所述源设备的 MAC地 址, 根据所述第一拥塞控制消息以及所述源设备的 MAC地址, 生成所述第二拥塞控制 消息, 所述第二拥塞控制消息的目的 MAC地址为所述源设备的 MAC地址;

所述发送模块还用于根据所述目的 MAC地址向所述源设备发送所述第二拥塞控制 消息。

16、 根据权利要求 14或 15所述的装置, 其特征在于, 所述生成模块用于根据所述 源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设备;

如果所述网关设备不是所述源设备的网关设备,根据所述第一拥塞控制消息生成第 二拥塞控制消息, 所述第二拥塞控制消息的目的 IP地址为所述源设备的 IP地址, 所述 第二拥塞控制消息携带所述第一拥塞控制消息; 所述第二拥塞控制消息为 IP报文。

17、 根据权利要求 16所述的装置, 其特征在于,

所述发送模块用于根据所述第二拥塞控制消息的目的 IP地址, 通过路由的方式向 所述源设备发送所述第二拥塞控制消息, 使得目的网关设备接收到所述第二拥塞控制消 息后, 从所述第二拥塞控制消息中获取所述第一拥塞控制消息, 根据所述目的 IP地址 获取所述源设备的 MAC地址, 将所述第一拥塞控制消息的源 MAC地址修改为所述目 的网关设备的 MAC地址, 将所述第一拥塞控制消息的目的 MAC地址修改为所述源设 备的 MAC地址, 并向所述源设备发送所述修改后的第一拥塞控制消息, 使得所述源设 备控制流量发送; 所述目的网关设备为所述源设备的网关设备。

18、 根据权利要求 16或 17所述的装置, 其特征在于, 所述第二拥塞控制消息还包 括源端口号和目的端口号, 所述源端口号和目的端口号为预设端口号, 用于表明所述第 二拥塞控制消息的类型。

Description:
拥塞控制方法、 装置及设备 本申请要求于 2014年 2月 19日提交中国专利局、 申请号为 201410055899.7、 发明 名称为 "拥塞控制方法、 装置及设备"的中国专利申请的优先权, 其全部内容通过引用结 合在本申请中。 技术领域 本发明涉及通信技术领域, 特别涉及一种拥塞控制方法、 装置及设备。 背景技术 存储区域网络 (英文: Storage Area Network, 缩写: SAN) 网络是一种高速网络。 由于 SAN主要提供在计算机与存储设备之间的数据传 输, 因此, 对丢包很敏感, 且要 求报文在传输过程中保序。

为了避免丢包, SAN提供了一种拥塞通知机制, 即量化拥塞通知(英文: Quantized Congestion Notification, 缩写: QCN), 当交换机出端口的某个队列发生拥塞时, 所述交 换机随机从该队列中获取一个或几个报文, 通知上游设备停止发送该报文所属的数据 流, 直到拥塞解除。

图 1是 QCN技术的工作原理的示意图。 参见图 1, 服务器 1、 服务器 2通过 SAN 发送流量给服务器 3。 当交换设备检测到发生流量拥塞时, 交换设备从自身的缓存队列 中获取报文, 确定发送所述报文的服务器, 例如为服务器 1, 因此, 交换设备发送 QCN 报文到服务器 1, 通知服务器 1减少流量。

在实现本发明的过程中, 发明人发现现有技术至少存在以下问题:

由于 QCN报文是二层报文, 其目的 MAC地址标识了导致流量拥塞的源设备, 因 此 QCN报文只能发送给同一个二层网络里的设备。 当引起拥塞的流量来自三层网络时, QCN报文都被发送到连接所述交换设备的网关设 备, 而网关设备并不是真正的发送引 起拥塞的流量的源设备, 因此 QCN报文不能到达源设备, 无法进行拥塞控制。 发明内容

为了解决三层 SAN场景下的流量拥塞问题, 本发明提供了一种拥塞控制方法、 装 置及设备。 所述技术方案如下:

第一方面, 提供了一种拥塞控制方法, 所述方法包括: 当检测到交换设备发生拥塞时, 从所述交换设备的接收缓存中获取第一报文; 当所述第一报文的源 MAC地址为网关设备的 MAC地址时, 获取所述第一报文的 源 IP地址;

当所述源 IP地址不是所述网关设备的 IP地址时, 根据所述第一报文的源 IP地址, 生成第一拥塞控制消息, 所述第一拥塞控制消息包括所述网关设备 MAC地址、 所述交 换设备的 MAC地址和所述第一报文的源 IP地址;

向所述网关设备发送所述第一拥塞控制消息。

结合第一方面, 在第一方面提供的第一种可能实现方式中, 所述第一报文的源 IP 地址位于所述第一拥塞控制消息的载荷 payload中。

结合第一方面的上述任一种可能实现方式,在 第一方面提供的第二种可能实现方式 中, 从所述交换设备的接收缓存中获取第二报文; 当所述第二报文的源 MAC地址不是 所述网关设备的 MAC地址时, 生成第二拥塞控制消息, 所述第二拥塞控制消息包括所 述第二报文的源 MAC地址和所述交换设备的 MAC地址。

第二方面, 提供了一种拥塞控制方法, 包括: 当发生拥塞时, 网关设备接收第一拥 塞控制消息,所述第一拥塞控制消息包括所述 网关设备的 MAC地址、交换设备的 MAC 地址和源设备的 IP地址; 所述源设备为发送引起拥塞的流量的设备; 根据所述第一拥 塞控制消息以及所述源设备的 IP地址, 生成第二拥塞控制消息; 发送所述第二拥塞控 制消息, 所述第二拥塞控制消息用于使所述源设备控制 流量发送。

结合第二方面, 在第二方面提供的第一种可能实现方式中, 所述第一拥塞控制消息 的源 MAC地址为所述交换设备的 MAC地址, 目的 MAC地址为所述网关设备的 MAC 地址, 所述源设备的 IP地址携带在所述第一拥塞控制消息的载荷 payload中。

结合第二方面的上述任一种可能实现方式,在 第二方面提供的第二种可能实现方式 中, 所述根据所述第一拥塞控制消息以及所述源设 备的 IP地址, 生成第二拥塞控制消 息包括:

根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设 备; 如 果所述网关设备为所述源设备的网关设备, 所述网关设备根据所述 IP地址获取所述源 设备的 MAC地址, 根据所述第一拥塞控制消息以及所述源设备的 MAC地址, 生成所 述第二拥塞控制消息, 所述第二拥塞控制消息的目的 MAC地址为所述源设备的 MAC 地址; 所述发送所述第二拥塞控制消息包括根据所述 目的 MAC地址向所述源设备发送 所述第二拥塞控制消息。 结合第二方面的上述任一种可能实现方式,在 第二方面提供的第三种可能实现方式 中, 所述根据所述第一拥塞控制消息以及所述源设 备的 IP地址, 生成第二拥塞控制消 息包括: 根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设 备; 如果所述网关设备不是所述源设备的网关设备 ,所述网关设备根据所述第一拥塞控制消 息生成第二拥塞控制消息, 所述第二拥塞控制消息的目的 IP地址为所述源设备的 IP地 址, 所述第二拥塞控制消息携带所述第一拥塞控制 消息; 所述第二拥塞控制消息为 IP 报文。

结合第二方面的上述任一种可能实现方式,在 第二方面提供的第四种可能实现方式 中, 所述发送所述第二拥塞控制消息包括包括:

根据所述第二拥塞控制消息的目的 IP地址, 通过路由的方式向所述源设备发送所 述第二拥塞控制消息, 使得目的网关设备接收到所述第二拥塞控制消 息后, 从所述第二 拥塞控制消息中获取所述第一拥塞控制消息, 根据所述目的 IP地址获取所述源设备的

MAC地址, 将所述第一拥塞控制消息的源 MAC地址修改为所述目的网关设备的 MAC 地址, 将所述第一拥塞控制消息的目的 MAC地址修改为所述源设备的 MAC地址, 并 向所述源设备发送所述修改后的第一拥塞控制 消息, 使得所述源设备控制流量发送; 所 述目的网关设备为所述源设备的网关设备。

结合第二方面的上述任一种可能实现方式,在 第二方面提供的第五种可能实现方式 中, 所述第二拥塞控制消息还包括源端口号和目的 端口号, 所述源端口号和目的端口号 为预设端口号, 用于表明所述第二拥塞控制消息的类型。

第三方面, 提供了一种拥塞控制装置, 所述装置包括:

第一获取模块, 用于当检测到交换设备发生拥塞时, 从所述交换设备的接收缓存中 获取第一报文;

第二获取模块, 用于当所述第一报文的源 MAC地址为网关设备的 MAC地址时, 获取所述第一报文的源 IP地址;

生成模块, 用于当所述源 IP地址不是所述网关设备的 IP地址时, 根据所述第一报 文的源 IP地址,生成第一拥塞控制消息,所述第一拥 控制消息包括所述网关设备 MAC 地址、 所述交换设备的 MAC地址和所述第一报文的源 IP地址;

发送模块, 用于向所述网关设备发送所述第一拥塞控制消 息。

结合第三方面, 在第三方面提供的第一种可能实现方式中, 所述第一报文的源 IP 地址位于所述第一拥塞控制消息的载荷 payload中。 结合第三方面的上述任一种可能实现方式,在 第三方面提供的第二种可能实现方式 中, 所述第一获取模块还用于从所述交换设备的接 收缓存中获取第二报文; 所述生成模 块还用于当所述第二报文的源 MAC地址不是所述网关设备的 MAC地址时, 生成第二 拥塞控制消息, 所述第二拥塞控制消息包括所述第二报文的源 MAC地址和所述交换设 备的 MAC地址。

第四方面, 提供了一种拥塞控制装置, 其特征在于, 包括:

接收模块, 用于当发生拥塞时, 接收第一拥塞控制消息, 所述第一拥塞控制消息包 括所述网关设备的 MAC地址、 交换设备的 MAC地址和源设备的 IP地址; 所述源设备 为发送引起拥塞的流量的设备;

生成模块, 用于根据所述第一拥塞控制消息以及所述源设 备的 IP地址, 生成第二 拥塞控制消息;

发送模块, 用于发送所述第二拥塞控制消息, 所述第二拥塞控制消息用于使所述源 设备控制流量发送。

结合第四方面, 在第四方面提供的第一种可能实现方式中, 所述第一拥塞控制消息 的源 MAC地址为所述交换设备的 MAC地址, 目的 MAC地址为所述网关设备的 MAC 地址, 所述源设备的 IP地址携带在所述第一拥塞控制消息的载荷 payload中。

结合第四方面的上述任一种可能实现方式,在 第四方面提供的第二种可能实现方式 中, 所述生成模块用于根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设 备的网关设备; 如果所述网关设备为所述源设备的网关设备, 所述网关设备根据所述 IP 地址获取所述源设备的 MAC地址,根据所述第一拥塞控制消息以及所述 源设备的 MAC 地址, 生成所述第二拥塞控制消息, 所述第二拥塞控制消息的目的 MAC地址为所述源 设备的 MAC地址; 所述发送模块还用于根据所述目的 MAC地址向所述源设备发送所 述第二拥塞控制消息。

结合第四方面的上述任一种可能实现方式,在 第四方面提供的第三种可能实现方式 中所述生成模块用于根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备 的网关设备;

如果所述网关设备不是所述源设备的网关设备 ,所述网关设备根据所述第一拥塞控 制消息生成第二拥塞控制消息, 所述第二拥塞控制消息的目的 IP地址为所述源设备的 IP地址, 所述第二拥塞控制消息携带所述第一拥塞控制 消息; 所述第二拥塞控制消息为 IP报文。 结合第四方面的上述任一种可能实现方式,在 第四方面提供的第四种可能实现方式 中, 所述发送模块用于根据所述第二拥塞控制消息 的目的 IP地址, 通过路由的方式向 所述源设备发送所述第二拥塞控制消息, 使得目的网关设备接收到所述第二拥塞控制消 息后, 从所述第二拥塞控制消息中获取所述第一拥塞 控制消息, 根据所述目的 IP地址 获取所述源设备的 MAC地址, 将所述第一拥塞控制消息的源 MAC地址修改为所述目 的网关设备的 MAC地址, 将所述第一拥塞控制消息的目的 MAC地址修改为所述源设 备的 MAC地址, 并向所述源设备发送所述修改后的第一拥塞控 制消息, 使得所述源设 备控制流量发送; 所述目的网关设备为所述源设备的网关设备。

结合第四方面的上述任一种可能实现方式,在 第四方面提供的第五种可能实现方式 中, 所述第二拥塞控制消息还包括源端口号和目的 端口号, 所述源端口号和目的端口号 为预设端口号, 用于表明所述第二拥塞控制消息的类型。

本发明实施例提供的技术方案带来的有益效果 是:

通过在拥塞控制消息中添加导致拥塞的源设备 的 IP地址, 使得当所述源设备不处于 当前二层网络中时, 可以将所述拥塞控制消息在三层网络中透传, 以实现对三层 SAN中 的拥塞控制, 避免了三层 SAN发生丢包或者报文不保序等现象。 附图说明 为了更清楚地说明本发明实施例中的技术方案 ,下面将对实施例描述中所需要使用 的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对 于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得 其他的附图。

图 1是 QCN技术的工作原理的示意图;

图 2是本发明实施例提供的一种拥塞控制方法的 程图;

图 3是本发明实施例提供的一种拥塞控制方法的 程图;

图 4是本发明实施例提供的一种三层 SAN架构示意图;

图 5是本发明实施例提供的另一种拥塞控制方法 流程图;

图 6是本发明实施例提供的一种拥塞控制消息结 示意图;

图 7是本发明实施例提供的另一种拥塞控制消息 构示意图;

图 8是本发明实施例提供的又一种拥塞控制消息 构示意图;

图 9是本发明实施例提供的再一种拥塞控制消息 构示意图; 图 10是本发明实施例提供的另一种三层 SAN架构示意图;

图 11是本发明实施例提供的另一种拥塞控制方法 流程图;

图 12是本发明实施例提供的一种拥塞控制装置的 构示意图;

图 13是本发明实施例提供的另一种拥塞控制装置 结构示意图;

图 14是本发明实施例提供的一种交换设备的结构 意图;

图 15是本发明实施例提供的一种网关设备的结构 意图。 具体实施方式 为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式 作进一步地详细描述。

图 2是本发明实施例提供的一种拥塞控制方法的 程图。所述方法应用于三层 SAN 中, 参见图 2, 该方法包括:

201、 当检测到交换设备发生拥塞时, 从所述交换设备的接收缓存中获取第一报文。 所述拥塞可以通过多种方式检测, 具体请参考对步骤 501的说明。

202、 当该第一报文的源 MAC地址为网关设备 MAC地址时, 获取该第一报文的源

IP地址。

203、当所述第一报文的源 IP地址不是所述网关设备的 IP地址时,根据该第一报文 的源 IP地址,生成第一拥塞控制消息,该第一拥塞 制消息包括该网关设备 MAC地址、 该交换设备的 MAC地址和该第一报文的源 IP地址。

204、 向该网关设备的 MAC地址发送该第一拥塞控制消息。

所述第一拥塞控制消息用于使所述网关设备接 收到该第一拥塞控制消息时,将该第 一拥塞控制消息发送至该源 IP地址对应的源设备, 使得该源设备控制流量发送。

其中, 所述第一拥塞控制消息为扩展的 QCN报文。 所述扩展的 QCN报文的载荷 payload中包括了所述第一报文的源 IP地址。

图 3 是本发明实施例提供的另一种拥塞控制方法的 流程图。 所述方法应用于三层

SAN中, 参见图 3, 该方法包括:

301、 当发生拥塞时, 网关设备接收第一拥塞控制消息, 该第一拥塞控制消息包括 所述网关设备的 MAC地址、 交换设备的 MAC地址和源设备的 IP地址; 所述源设备为 发送引起所述拥塞的流量的设备。

302、 根据该第一拥塞控制消息以及所述源设备的 IP地址生成第二拥塞控制消息。 303、 发送所述第二拥塞控制消息, 所述第二拥塞控制消息用于使所述源设备控制 流量发送。

首先, 以三层 SAN包括两个二层网络, 所述两个二层网络之间通过一个三层网络 相连, 三层网络中包括多个路由器或者核心交换设备 为例对本发明实施例进行具体说 明。

参见图 4, 该两个二层网络分别为二层网络 1和二层网络 2, 一个二层网络中设备 的 IP地址均属于同一个 IP地址池。

二层网络 1中包括交换机 E, 以及与交换机 E相连的服务器 A (MAC地址为 MAC A) 和服务器 B (MAC地址为 MAC B), 该二层网络 1具有网关设备 1 (MAC地址为 MAC1 )。

二层网络 2中包括交换机 F (MAC地址为 MAC F)、 以及与交换机 F相连的服务器 C (MAC地址为 MAC C)和服务器 D (MAC地址为 MAC D)、 交换机 G、 以及与该交 换机 G相连的存储器 1和存储器 2,交换机 F和交换机 G相连,该二层网络 1具有网关 设备 2 (MAC地址为 MAC2)。

下面,基于图 4中的网络架构,详细对本发明实施例提供的 塞控制方法进行说明, 参见图 5, 该拥塞控制方法的具体步骤如下:

501、 二层网络 2中的交换机 F实时对自身的接收速率进行检测。

本发明实施例是通过交换机 F对自身的接收速率进行检测,以获知交换机 F是否发 生拥塞, 而在本发明提供的另一实施例中, 还可以由交换机检测接收速率和发送速率, 判断接收速率是否大于发送速率,当接收速率 大于发送速率时,确定交换机 F发生拥塞, 当然,还可以通过交换机检测接收缓存数据量 是否大于发送缓存数据量的方式来确定是 否发生拥塞, 本发明实施例对此不做限定。

502、 当交换机 F检测到自身的接收速率大于预设门限值时, 确认发送拥塞, 从交 换机 F的自身的接收缓存中获取第一报文。

该预设门限值可以由技术人员根据交换机的能 力或网络能力设置, 在此不做限定。 交换机 F可以从自身的接收缓存中获取多个报文, 即除了该第一报文外, 交换机还可以 获取第二报文。 获取的报文的数目可以为预设数值, 其获取过程可以为随机获取, 或是 每隔多个报文获取一个报文, 在此不做限定。

503、 交换机 F确定该第一报文的源 MAC地址是网关设备的 MAC地址。

在本发明一个实施方式中, 以所获取的第一报文的源 MAC地址为网关设备 MAC 地址为例进行说明, 当确定第一报文的源 MAC地址为网关设备的 MAC地址时, 说明 该第一报文的源设备是网关设备或另一个子网 络中的设备, 则交换机 F需要生成能够 寻找到该第一报文的源设备的拥塞控制消息。

在本发明一个实施方式中, 交换机 F从缓存中获取第二报文, 当交换机 F确定该第 二报文的源 MAC地址不是该网关设备的 MAC地址时, 说明该第二报文的源设备是当 前子网络(即二层网络 2)中的设备, 因此, 交换机 F生产的拥塞控制消息即为现有的 QCN报文。该 QCN报文携带包括该第二报文的源 MAC地址和该交换机的 MAC地址, 然后,由交换机 F发送生成的 QCN报文。假设,该第二报文的源 MAC地址为 MAC C, 则确定该第二报文的源设备为服务器 C, 那么, 可以生成如图 6所示的第二拥塞控制 消息。 其中, Flow-ID是该第二报文所属的数据流的标识。

如果在步骤 502中仅获取了第一报文, 则可以对该第一报文的源 MAC地址进行判 断, 而当步骤 502中所获取的报文为多个时, 则可以对每一个报文的源 MAC地址进行 判断, 从而根据不同的判断结果对不同的报文进行处 理。 在本发明实施例中, 仅以对其 中一个报文的处理过程为例进行说明。

该交换机可以通过获取网络管理员在交换机上 设置的网关信息获取该网关设备的

IP地址, 根据该网关设备的 IP地址进行 ARP探测, 得到该网关设备的 MAC地址。

对于如图 4的网络架构来说, 如果获取的第一报文的源 MAC地址为 MAC2, 则可 以确定该报文的源 MAC地址是网关设备的 MAC地址。

504、 交换机 F获取该第一报文的源 IP地址。

如前所述, 对于所获取的第一报文的源 MAC地址为网关设备的 MAC地址的场景 下, 则可以认为造成拥塞的流量(即该第一报文所 属的数据流)来自于网关设备或其他 子网络中的设备, 则对该报文的 IP层进行解析, 以得到报文的源 IP地址。

当然, 如果其中源 IP地址为网关设备的 IP地址, 则可以确认该造成拥塞的流量来 自于网关设备, 如果源 IP地址不是网关设备的 IP地址, 则可以确定该造成拥塞的流量 来自于其他子网络中的设备。 为了便于说明, 在本实施例中, 仅以该报文的源 IP地址 为二层网络 1中的服务器 A的 IP地址 IP A为例进行说明。

505、 当该第一报文的源 IP地址不是网关设备的 IP地址时, 交换机 F根据该第一 报文的源 IP地址, 生成第一拥塞控制消息, 该第一拥塞控制消息包括该网关设备 MAC 地址、 交换机 F的 MAC地址和该第一报文的源 IP地址。

该第一拥塞控制消息为扩展的 QCN报文, 与现有的 QCN相比, 该扩展的 QCN报 文的载荷中携带了该源 IP地址, 该报文的源 IP地址为造成流量拥塞的源设备的 IP地 址。 基于步骤 504中的示例, 可以生成如图 7所示的第一拥塞控制消息。

506、 交换机 F向该网关设备 2发送该第一拥塞控制消息。

此时的第一拥塞控制消息的目的 MAC地址为网关设备 2的 MAC地址, 源 MAC 地址为交换机 F的 MAC地址, 而其载荷部分携带该源设备的 IP地址, 基于步骤 504 中的示例, 该源设备的 IP地址为 IP A。

507、 网关设备 2接收该第一拥塞控制消息, 并确定该网关设备 2不是该源 IP地 址对应的源设备的网关设备。

由于网络架构的复杂度较高, 因此, 接收到第一拥塞控制消息的网关设备不一定是 该源 IP地址对应的源设备所在子网络的网关设备, 因此, 需要进一步判断网关设备是 否为该第一拥塞控制消息所携带的 IP地址对应的源设备的网关设备, 以确定对该第一 拥塞控制消息的处理方式。

具体地, 该如果该第一拥塞控制消息所携带的 IP地址在网关设备的 ARP表中有相 应的 MAC地址,则说明该网关设备为该第一拥塞控制 消息所携带的 IP地址对应的源设 备的网关设备, 该网关设备可以直接与该源设备通信, 而如果该第一拥塞控制消息所携 带的 IP地址在网关设备的 ARP表中没有相应的 MAC地址, 则说明该网关设备不是该 第一拥塞控制消息所携带的 IP地址对应的源设备的网关设备, 该网关设备需要经由路 由与该源设备通信。

508、 根据该第一拥塞控制消息生成 IP报文, 该 IP报文的目的 IP地址为该第一拥 塞控制消息携带的 IP地址, 该 IP报文包括该第一拥塞控制消息。

在确定该网关设备不是该第一拥塞控制消息所 携带的 IP地址对应的源设备的网关 设备后, 网关设备可以根据该第一拥塞控制消息所携带 的 IP地址, 生成 IP报文, 该 IP 报文的目的 IP地址为该第一拥塞控制消息携带的 IP地址,该 IP报文包括该第一拥塞控 制消息。

该网关设备 2需要经由路由, 才能够找到与该 IP地址对应的源设备的网关设备 1, 因此, 需要生成一个 IP报文以便在三层网络中透传。

可选地, 该 IP报文可以为 UDP报文, IP报文的源端口号和目的端口号为预设端 口号, 用于表明该 IP报文的类型, 即表明该 IP报文为用于拥塞控制的消息, 该 IP报文 包括第一拥塞控制消息。

则基于图 4的网络架构, 如果源设备为服务器 A时, 该 IP报文可以为如图 8所示 的结构, 其中, IP报文的目的 IP地址为 IP A, 源端口号和目的端口号均为预设端口号, IP报文的数据包括所述第一拥塞控制消息。

另外, 需要说明的是, 在本发明实施例中并没有对一个网关设备的出 端口和入端口 MAC地址进行区分, 而在现实场景中, 每个网关设备的出端口报文的源 MAC地址和 出端口的 MAC地址保持一致即可。 对于三层转发场景下, 网关设备的入端口和出端口 代表了 2个网络的网关, 各自有个 IP地址, 它们的 MAC地址可以不同。对于需要把第 一拥塞控制消息改成 IP报文转发的场景, 网关设备通过入接口接收第一拥塞控制消息, 该第一拥塞控制消息的目的 MAC地址是入接口的 MAC地址, 然后, 从出接口发送 IP 报文, 这个 IP报文的以太头的源 MAC地址是出接口的 MAC地址。 而对于通过网关设 备就是源设备的网关设备的场景, 网关设备通过入接口接收第一拥塞控制消息, 第一拥 塞控制消息的目的 MAC地址是入接口的 MAC地址, 通过出接口发送的是修改后的第 一拥塞控制消息,该修改后的第一拥塞控制消 息的源 MAC地址是出接口的 MAC地址, 目的 MAC地址为源设备的 MAC地址。

509、 网关设备 2发送该 IP报文。

如果该接收到第一拥塞控制消息的网关设备不 是该 IP地址对应的源设备的网关设 备, 则该网关设备根据该目的 IP地址, 通过路由的方式向该 IP地址对应的源设备发送 该 IP报文,使得目的网关设备接收到 IP报文,根据该 IP报文获取该第一拥塞控制消息, 根据该目的 IP地址获取该源设备的 MAC地址, 将该第一拥塞控制消息的源 MAC地址 修改为该目的网关设备的 MAC地址, 将该第一拥塞控制消息的目的 MAC地址修改为 该源设备的 MAC地址, 并向该源设备发送该修改后的第一拥塞控制消 息, 使得该源设 备控制流量发送, 如停止流量发送或者减小流量发送等, 该目的网关设备为该源设备的 网关设备。

需要说明的是, 在进行三层转发的过程中, 该 IP报文的目的 IP地址和源 IP地址不 变, 变化的仅是 IP报文中的目的 MAC地址和源 MAC地址, 以使得 IP报文能够在三 层网络的设备之间进行透传。

510、当网关设备 1接收到该 IP报文时,确定网络设备 1是该 IP报文对应的源设备 的网关设备。

511、 网关设备 1对从该 IP报文中获取第一拥塞控制消息,根据该目的 IP地址获取 该源设备的 MAC地址,将该第一拥塞控制消息的源 MAC地址修改为该目的网关设备 的 MAC地址,将该第一拥塞控制消息的目的 MAC地址修改为该源设备的 MAC地址。 此时, 修改后的第一拥塞控制消息的目的 MAC地址为服务器 A的 MAC地址, 源 MAC地址为该网关设备 1的 MAC地址。

该修改还包括从该第一拥塞控制消息的载荷中 该源 IP地址, 即删除该服务器 A的 IP地址。

512、 网关设备 1发送该修改后的第一拥塞控制消息。

513、 当服务器 A接收到该修改后的第一拥塞控制消息时, 进行流量控制。

在本发明实施例中, 通过在拥塞控制消息中添加导致拥塞的源设备 的 IP地址, 使 得当源设备不处于当前二层网络中时, 可以将该拥塞控制消息在三层网络中透传, 以实 现对三层 SAN中的拥塞控制, 避免了三层 SAN发生丢包或者报文不保序等现象。

然后, 以三层 SAN包括两个二层网络, 该两个二层网络之间通过一个路由器或者 三层交换机相连为例对本发明实施例进行具体 说明。

参见图 10, 该两个二层网络分别为二层网络 1和二层网络 2, 一个二层网络中设备 的 IP地址均属于同一个 IP地址池。 连接二层网络 1和二层网络 2的网关设备为网关设 备 3, 该网关设备 3与二层网络 2的端口的 MAC地址为 MACi, 该网关设备 3与二层 网络 1的端口的 MAC地址为 MACo。

二层网络 1中包括交换机 E, 以及与交换机 E相连的服务器 A (MAC地址为 MAC A) 和服务器 B (MAC地址为 MAC B)。

二层网络 2中包括交换机 F (MAC地址为 MAC F)、 以及与交换机 F相连的服务器 C (MAC地址为 MAC C)和服务器 D (MAC地址为 MAC D)、 交换机 G、 以及与该交 换机 G相连的存储器 1和存储器 2, 交换机 F和交换机 G相连。

下面, 基于图 10中的网络架构, 详细对本发明实施例提供的拥塞控制方法进行 说 明, 参见图 11, 该拥塞控制方法的具体步骤如下:

1101、 二层网络 2中的交换机 F实时对自身的接收速率进行检测。

1102、 当交换机 F检测到自身的接收速率大于预设门限值时, 确认发生拥塞, 从自 身的接收缓存中获取第三报文。

1103、 交换机 F确定该第三报文的源 MAC地址是网关设备的 MAC地址。

1104、 交换机 F获取该第三报文的源 IP地址。

1105、 当该第三报文的源 IP地址不是网关设备 3的 IP地址时, 交换机 F根据该报 文的源 IP地址, 生成第一拥塞控制消息, 该第一拥塞控制消息包括该网关设备 MAC地 址、 交换机 F的 MAC地址和该报文的源 IP地址。 1106、 交换机 F向该网关设备 3发送该第一拥塞控制消息。

1107、 当网关设备 3接收到第一拥塞控制消息, 确定该网关设备 3是该 IP地址对 应的源设备的网关设备。

上述步骤 1101-1107与步骤 501-507同理, 在此不再赘述。

在本发明实施例中, 由于两个二层网络之间仅具有一个路由器或者 三层交换机如网 关设备 3, 则可以确定该网关设备 3是该 IP地址对应的源设备的网关设备。

1108、 网关设备 3根据所述 IP地址获取所述源设备的 MAC地址, 根据所述第一拥 塞控制消息以及所述源设备的 MAC地址, 生成第二拥塞控制消息, 该第二拥塞控制消 息的目的 MAC地址为所述源设备的 MAC地址。

在确定该网关设备 3为源设备的网关设备后, 网关设备 3可以从 ARP表中获取该 第一拥塞控制消息所包括的 IP地址相应的设备 MAC地址, 生成第二拥塞控制消息。如 果仍以拥塞源为服务器 A为例, 则该生成的第二拥塞控制消息可以如图 9所示的结构, 其中, 生成的第二拥塞控制消息的源 MAC地址为网关设备 3的 MAC地址 MACo, 目 的 MAC地址为服务器 A的 MAC地址 MAC A。

1109、 网关设备 3根据该目的 MAC地址向服务器 A发送该第二拥塞控制消息。

1110、 当服务器 A接收到该目的 MAC地址为 MAC A的第二拥塞控制消息时, 进 行流量控制。

该流量控制包括但不限于停止流量发送或减小 流量发送等。 图 12是本发明实施例提供的一种拥塞控制装置的 构示意图。 参见图 12, 该装置 包括:

第一获取模块 1201,用于当检测到交换设备发生拥塞时,从 述交换设备的接收缓 存中获取第一报文;

第二获取模块 1202,用于当该第一报文的源 MAC地址为网关设备的 MAC地址时, 获取该第一报文的源 IP地址;

生成模块 1203, 用于当该源 IP地址不是该网关设备的 IP地址时, 根据该第一报文 的源 IP地址,生成第一拥塞控制消息,该第一拥塞 制消息包括该网关设备 MAC地址、 该交换设备的 MAC地址和该第一报文的源 IP地址;

发送模块 1204, 用于向该网关设备发送该第一拥塞控制消息。

可选地, 该第一报文的源 IP地址位于该第一拥塞控制消息的载荷 payload中。 可选地, 该第一获取模块 1201还用于从该交换设备的接收缓存中获取第 报文; 该生成模块 1203还用于当该第二报文的源 MAC地址不是该网关设备的 MAC地址 时, 生成第二拥塞控制消息, 该第二拥塞控制消息包括该第二报文的源 MAC地址和该 交换设备的 MAC地址。 图 13是本发明实施例提供的一种拥塞控制装置的 构示意图。 参见图 13, 包括: 接收模块 1301, 用于当发生拥塞时, 接收第一拥塞控制消息, 该第一拥塞控制消息 包括该网关设备的 MAC地址、 交换设备的 MAC地址和源设备的 IP地址; 该源设备为 发送引起拥塞的流量的设备;

生成模块 1302, 用于根据该第一拥塞控制消息以及该源设备的 IP地址, 生成第二 拥塞控制消息;

发送模块 1303,用于发送该第二拥塞控制消息,该第二 塞控制消息用于使该源设 备控制流量发送。

可选地,该第一拥塞控制消息的源 MAC地址为该交换设备的 MAC地址,目的 MAC 地址为该网关设备的 MAC地址,该源设备的 IP地址携带在该第一拥塞控制消息的载荷 payload中。

可选地, 该生成模块用于根据该源设备的 IP地址, 判断该网关设备是否为该源设 备的网关设备; 如果该网关设备为该源设备的网关设备, 该网关设备根据该 IP地址获 取该源设备的 MAC地址, 根据该第一拥塞控制消息以及该源设备的 MAC地址, 生成 该第二拥塞控制消息,该第二拥塞控制消息的 目的 MAC地址为该源设备的 MAC地址; 该发送模块还用于根据该目的 MAC地址向该源设备发送该第二拥塞控制消息。 可选地, 该生成模块用于根据该源设备的 IP地址, 判断该网关设备是否为该源设 备的网关设备;

如果该网关设备不是该源设备的网关设备,根 据该第一拥塞控制消息生成第二拥塞 控制消息, 该第二拥塞控制消息的目的 IP地址为该源设备的 IP地址, 该第二拥塞控制 消息携带该第一拥塞控制消息; 该第二拥塞控制消息为 IP报文。

可选地, 该发送模块用于根据该第二拥塞控制消息的目 的 IP地址, 通过路由的方 式向该源设备发送该第二拥塞控制消息, 使得目的网关设备接收到该第二拥塞控制消息 后, 从该第二拥塞控制消息中获取该第一拥塞控制 消息, 根据该目的 IP地址获取该源 设备的 MAC 地址, 将该第一拥塞控制消息的源 MAC 地址修改为该目的网关设备的 MAC地址, 将该第一拥塞控制消息的目的 MAC地址修改为该源设备的 MAC地址, 并 向该源设备发送该修改后的第一拥塞控制消息 , 使得该源设备控制流量发送; 该目的网 关设备为该源设备的网关设备。

可选地, 该第二拥塞控制消息还包括源端口号和目的端 口号, 该源端口号和目的端 口号为预设端口号, 用于表明该第二拥塞控制消息的类型。

需要说明的是: 上述实施例提供的拥塞控制装置在拥塞控制时 , 仅以上述各功能模 块的划分进行举例说明, 实际应用中, 可以根据需要而将上述功能分配由不同的功能 模 块完成, 即将设备的内部结构划分成不同的功能模块, 以完成以上描述的全部或者部分 功能。 另外, 上述实施例提供的拥塞控制装置与拥塞控制方 法实施例属于同一构思, 其 具体实现过程详见方法实施例, 这里不再赘述。 图 14是本发明实施例所提供的一种交换设备的结 示意图。 如图 14所示, 所述交 换设备包括发射机 1402、 接收机 1401、 存储器 1403 以及分别与发射机 1402、 接收机 1401和存储器 1403连接的处理器 1404; 当然, 该交换设备还可以包括输入输出装置等 一些通用部件, 本发明实施例在此不做任何限制。

其中, 存储器 1403中存储一组程序代码, 且所述处理器 1404用于调用所述存储器 1403中存储的程序代码, 用于执行以下操作:

当检测到交换设备发生拥塞时, 从所述交换设备的接收缓存中获取第一报文; 当所 述第一报文的源 MAC地址为网关设备的 MAC地址时,获取所述第一报文的源 IP地址; 当所述源 IP地址不是所述网关设备的 IP地址时, 根据所述第一报文的源 IP地址, 生成 第一拥塞控制消息, 所述第一拥塞控制消息包括所述网关设备 MAC地址、 所述交换设 备的 MAC地址和所述第一报文的源 IP地址;向所述网关设备发送所述第一拥塞控 消 息。

其中, 所述第一报文的源 IP地址位于所述第一拥塞控制消息的载荷 payload中。 可选地, 还用于执行以下操作:

从所述交换设备的接收缓存中获取第二报文;

当所述第二报文的源 MAC地址不是所述网关设备的 MAC地址时, 生成第二拥塞 控制消息, 所述第二拥塞控制消息包括所述第二报文的源 MAC地址和所述交换设备的 MAC地址。 图 15是本发明实施例所提供的一种网关设备的结 示意图。 如图 15所示, 所述网 关设备包括发射机 1502、 接收机 1501、 存储器 1503 以及分别与发射机 1502、 接收机 1501和存储器 1503连接的处理器 1504; 存储器中 1503存储一组程序代码, 且所述处 理器 1504用于调用所述存储器 1503中存储的程序代码, 用于执行以下操作: 当发生拥 塞时, 网关设备接收第一拥塞控制消息, 所述第一拥塞控制消息包括所述网关设备的 MAC地址、 交换设备的 MAC地址和源设备的 IP地址; 所述源设备为发送引起拥塞的 流量的设备; 根据所述第一拥塞控制消息以及所述源设备的 IP地址, 生成第二拥塞控 制消息; 发送所述第二拥塞控制消息, 所述第二拥塞控制消息用于使所述源设备控制 流 量发送。

可选地, 还用于执行以下操作:

所述第一拥塞控制消息的源 MAC地址为所述交换设备的 MAC地址, 目的 MAC 地址为所述网关设备的 MAC地址,所述源设备的 IP地址携带在所述第一拥塞控制消息 的载荷 payload中。

可选地, 还用于执行以下操作:

根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设 备; 如果所述网关设备为所述源设备的网关设备, 所述网关设备根据所述 IP地址获取 所述源设备的 MAC地址, 根据所述第一拥塞控制消息以及所述源设备的 MAC地址, 生成所述第二拥塞控制消息, 所述第二拥塞控制消息的目的 MAC地址为所述源设备的 MAC地址;

所述发送所述第二拥塞控制消息包括:

根据所述目的 MAC地址向所述源设备发送所述第二拥塞控制消 息。

可选地, 还用于执行以下操作:

根据所述源设备的 IP地址, 判断所述网关设备是否为所述源设备的网关设 备; 如果所述网关设备不是所述源设备的网关设备 ,所述网关设备根据所述第一拥塞控 制消息生成第二拥塞控制消息, 所述第二拥塞控制消息的目的 IP地址为所述源设备的 IP地址, 所述第二拥塞控制消息携带所述第一拥塞控制 消息; 所述第二拥塞控制消息为 IP报文。

可选地, 还用于执行以下操作:

根据所述第二拥塞控制消息的目的 IP地址, 通过路由的方式向所述源设备发送所 述第二拥塞控制消息, 使得目的网关设备接收到所述第二拥塞控制消 息后, 从所述第二 拥塞控制消息中获取所述第一拥塞控制消息, 根据所述目的 IP地址获取所述源设备的 MAC地址, 将所述第一拥塞控制消息的源 MAC地址修改为所述目的网关设备的 MAC 地址, 将所述第一拥塞控制消息的目的 MAC地址修改为所述源设备的 MAC地址, 并 向所述源设备发送所述修改后的第一拥塞控制 消息, 使得所述源设备控制流量发送; 所 述目的网关设备为所述源设备的网关设备。

其中, 所述第二拥塞控制消息还包括源端口号和目的 端口号, 所述源端口号和目的 端口号为预设端口号, 用于表明所述第二拥塞控制消息的类型。 本领域普通技术人员可以理解实现上述实施例 的全部或部分步骤可以通过硬件来 完成, 也可以通过程序来指令相关的硬件完成, 所述的程序可以存储于一种计算机可读 存储介质中, 上述提到的存储介质可以是只读存储器, 磁盘或光盘等。