一种网络设备拥塞避免的方法及网络设备的制造方法
【技术领域】
[0001] 本发明涉及通信领域,尤其涉及一种网络设备拥塞避免的方法及网络设备。
【背景技术】
[0002] 在通信网络中,网络设备接收发送端发送的报文,并将所述报文转发给接收端。然 而,当发送端发送的报文数目较多时,所述网络设备就会出现拥塞的情况。网络设备拥塞避 免是通过监视该网络设备中存储空间的使用情况,当拥塞有加剧的趋势时,主动丢弃所述 存储空间中的一些报文,通过调整该网络设备中的数据流量来解除所述网络设备拥塞的问 题。
[0003] 现在技术中,一般采用随机早期检测(RandomEarlyDetection,简称为RED)算 法、加权随机早期检测(Wei曲tedRandomEarlyDetection,简称为WRED)算法等解决上述 问题。示例的,在R邸算法中,为上述存储空间大小设定一低限值和一高限值,若当前已用 存储空间大小介于该低限值和高限值之间,则开始随机丢弃到来的报文。
[0004] 根据上述算法,所述网络设备在接收到发送端发送的一串报文后,采用随机离散 丢包方式对该串报文进行丢包处理,该样网络设备每丢弃一个报文,接收端就会通知发送 端所述网络设备发生了丢包现象,因此发送端就会判定当前所述网络设备出现拥塞现象, 从而减少发送报文的数目,相应的,所述网络设备转发的报文数目也会减少,若所述网络设 备丢弃多个报文,就会导致所述网络设备的吞吐量大大减少。
【发明内容】
[0005] 本发明的实施例提供了一种网络设备拥塞避免的方法及网络设备,用W解决现有 技术中网络设备在接收到一串报文后,采用随机离散丢包方式对该串报文进行丢包处理而 造成的所述网络设备吞吐量减少的问题。
[0006] 为达到上述目的,本发明的实施例采用如下技术方案:
[0007] 第一方面,提供了一种网络设备拥塞避免的方法,该方法包括:
[0008]网络设备根据当前已用存储空间的大小,确定是否需要对所述当前已用存储空间 中同属一个数据流的报文进行丢包处理;其中,所述同属一个数据流的报文为N个,N> 2 ;
[0009] 在需要进行丢包处理的情况下,所述网络设备丢弃所述同属一个数据流中连续的 M个报文,其中1《M《N。
[0010] 结合第一方面,在第一种可能的实现方式中,所述确定是否需要对所述当前已用 存储空间中同属一个数据流中的报文进行丢包处理包括:
[0011] 获取所述同属一个数据流的N个报文的随机数;
[0012] 确定当前的第一阔值;所述第一阔值为判定数据流是否丢包的临界值;
[0013] 根据所述N个报文的随机数W及所述当前的第一阔值确定是否需要对所述当前 已用存储空间中同属一个数据流中的报文进行丢包处理。
[0014] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述网络 设备根据当前已用存储空间的大小,确定是否需要对所述当前已用存储空间中同属一个数 据流的报文进行丢包处理包括:
[0015] 所述网络设备在当前已用存储空间的大小在第一口限和第二口限之间时,确定是 否需要对所述当前已用存储空间中同属一个数据流的报文进行丢包处理;其中,所述第一 口限小于所述第二口限,所述第二口限小于或等于所述网络设备存储空间的容量;
[0016] 所述确定当前的第一阔值包括:
[0017] 根据当前已用存储空间的大小,W及已用存储空间的大小与第一阔值的函数关系 确定当前的第一阔值;其中,在所述已用存储空间的大小与第一阔值的函数关系中,所述第 一口限和所述第二口限中的一个对应最大的第一阔值,另一个对应最小的第一阔值。
[0018] 结合第一方面的第二种可能的实现方式,在第H种可能的实现方式中,在所述已 用存储空间的大小与第一阔值的函数关系中,所述已用存储空间的大小与所述第一阔值负 相关;
[0019] 所述根据所述N个报文的随机数W及当前的第一阔值确定是否需要对所述同属 一个数据流中的报文进行丢包处理包括:
[0020] 若所述N个报文的随机数之和小于当前的第一阔值,则确定不需要对所述同属一 个数据流中的报文进行丢包处理;
[0021] 若所述N个报文的随机数之和大于当前的第一阔值,则确定需要对所述同属一个 数据流中的报文进行丢包处理。
[0022] 结合第一方面,在第四种可能的实现方式中,所述确定是否需要对所述当前已用 存储空间中同属一个数据流中的报文进行丢包处理包括:
[0023] 获取所述数据流的随机数;
[0024] 确定当前的第二阔值;所述第二阔值为判定数据流是否丢包的临界值;
[0025] 根据所述数据流的随机数W及所述当前的第二阔值确定是否需要对所述数据流 中的报文进行丢包处理。
[0026] 结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述网络 设备根据当前已用存储空间的大小,确定是否需要对所述当前已用存储空间中同属一个数 据流的报文进行丢包处理包括:
[0027] 所述网络设备在当前已用存储空间的大小在第一口限和第二口限之间时,确定是 否需要对所述当前已用存储空间中同属一个数据流的报文进行丢包处理;其中,所述第一 口限小于所述第二口限,所述第二口限小于或等于所述网络设备存储空间的容量;
[0028] 所述确定当前的第二阔值包括:
[0029] 根据当前已用存储空间的大小,W及已用存储空间的大小与所述第二阔值的函数 关系确定当前的第二阔值;其中,在已用存储空间的大小与所述第二阔值的函数关系中,所 述第一口限和所述第二口限中的一个对应最小的第二阔值,另一个对应最大的第二阔值。
[0030] 结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述已 用存储空间的大小与所述第二阔值的函数关系中,所述已用存储空间的大小与所述第二阔 值正相关;
[0031] 所述根据所述数据流的随机数W及所述当前的第二阔值确定是否需要对所述数 据流中的报文进行丢包处理包括:
[003引若所述数据流的随机数小于当前的第二阔值,则确定需要对所述数据流中的报文 进行丢包处理;
[0033] 若所述数据流的随机数大于当前的第二阔值,则确定不需要对所述数据流中的报 文进行丢包处理。
[0034] 结合第一方面,在第走种可能的实现方式中,所述数据流为TCP流;
[00巧]所述丢弃所述同属一个数据流中连续的M个报文包括;丢弃同属一个TCP流中TCP序列号连续的M个报文。
[0036] 第二方面,提供了一种网络设备,该网络设备包括:
[0037] 确定模块,用于根据当前已用存储空间的大小,确定是否需要对所述当前已用存 储空间中同属一个数据流的报文进行丢包处理;其中,所述同属一个数据流的报文为N个, N > 2;
[0038] 丢弃模块,用于在所述确定模块确定需要进行丢包处理的情况下,丢弃所述同属 一个数据流中连续的M个报文,其中1《M《N。
[0039] 结合第二方面,在第一种可能的实现方式中,所述确定模块包括:
[0040] 第一获取单元,用于获取所述同属一个数据流的N个报文的随机数;
[0041] 第一确定单元,用于确定当前的第一阔值;所述第一阔值为判定数据流是否丢包 的临界值;
[0042] 第二确定单元,用于根据所述第一获取单元获取的所述N个报文的随机数W及所 述第一确定单元确定的所述当前的第一阔值确定是否需要对所述当前已用存储空间中同 属一个数据流中的报文进行丢包处理。
[0043] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定 模块,用于在当前已用存储空间的大小在第一口限和第二口限之间时,确定是否需要对所 述当前已用存储空间中同属一个数据流的报文进行丢包处理;其中,所述第一口限小于所 述第二口限,所述第二口限小于或等于所述网络设备存储空间的容量;
[0044] 所述第一确定单元,用于根据当前已用存储空间的大小,W及已用存储空间的大 小与第一阔值的函数关系确定当前的第一阔值;其中,在所述已用存储空间的大小与第一 阔值的函数关系中,所述第一口限和所述第二口限中的一个对应最大的第一阔值,另一个 对应最小的第一阔值。
[0045] 结合第二方面的第二种可能的实现方式,在第H种可能的实现方式中,在所述已 用存储空间的大小与第一阔值的函数关系中,所述已用存储空间的大小与所述第一阔值负 相关;
[0046] 所述第二确定单元,用于若所述N个报文的随机数之和小于当前的第一阔值,贝U 确定不需要对所述同属一个数据流中的报文进行丢包处理;若所述N个报文的随机数之和 大于当前的第一阔值,则确定需要对所述同属一个数据流中的报文进行丢包处理。
[0047] 结合第二方面,在第四种可能的实现方式中,所述确定模块包括:
[0048] 第二获取单元,用于获取所述数据流的随机数;
[0049] 第H确定单元,用于确定当前的第二阔值;所述第二阔值为判定数据流是否丢包 的临界值;
[0050] 第四确定单元,用于根据所述第二获取单元获取的所述数据流的随机数W及所述 第H确定单元确定的所述当前的第二阔值确定是否需要对所述数据流中的报文进行丢包 处理。
[0051] 结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述确定 模块,用于在当前已用存储空间的大小在第一口限和第二口限之间时,确定是否需要对所 述当前已用存储空间中同属一个数据流的报文进行丢包处理;其中,所述第一口限小于所 述