一种流表项规模的预测方法及装置的制造方法
【技术领域】
[0001] 本发明涉及软件定义网络(SDN,Software-DefinedNetworking)中流表项规模的 预测技术,尤其涉及一种流表项规模的预测方法及装置。
【背景技术】
[0002] 在SDN中,控制面是由多个控制器构成的,每个控制器控制多个交换机,每个交换 机保存有各自的流表(FlowTable)来决定转发策略。当新流到达时,交换机首先与流表中 的流表项进行匹配,如果匹配成功,则该条流按照流表中的规则进行转发;如果匹配失败, 称为流表的失配(Mismatch),此时交换机通过控制信道将数据包转发给控制器,先由控制 器决定转发策略后再下发给交换机,最后写入流表。
[0003] 流表的失配会导致控制流量的产生,限制网络转发性能,而且流表由价格昂贵的 内容寻址存储器组成,流表项的数目受内容寻址存储器数量的制约,是非常有限的,如果交 换机流表已满,会导致数据包的丢失。在广域网环境中,流的到达具有突发性,这种突发流 量的存在对流表的可用性提出了更高的要求;因此,对流表项规模进行预测,以防止由于流 表项数目超过存储器等物理设备上限而造成流表可用性下降,是目前亟待解决的问题。
【发明内容】
[0004] 有鉴于此,本发明实施例期望提供一种流表项规模的预测方法及装置,使得业务 能够感知流表项规模的动态变化,以减少因交换机设备资源超过其上限而导致的数据包丢 失问题,进而提高流表的利用率。
[0005] 为达到上述目的,本发明的技术方案是这样实现的:
[0006] 本发明实施例提供了一种流表项规模的预测方法,所述方法包括:
[0007] 获取当前tn时刻交换机的流表的平均流表项规模;
[0008] 确定当前tn时刻所述流表中流表项的平均失效速率以及流表项的增加速率的估 计值;
[0009] 依据所述当前tn时刻的平均流表项规模、所述流表项的平均失效速率及所述流表 项的增加速率的估计值,对下一时刻tn+1时的流表项规模进行预测。
[0010] 上述方案中,所述获取当前tn时刻交换机流表的平均流表项规模之前,所述方法 进一步包括:获取当前tn时刻交换机流表的流表项规模,并将所述流表项规模保存至所述 交换机对应的流表项规模队列,当所述队列保存的流表项规模记录的条数超过所述队列的 最大值时,按照先入先出法FIFO删除最早的一条数据记录。
[0011] 上述方案中,所述获取当前tn时刻交换机的流表的平均流表项规模包括:获取当 前tn时刻交换机流表的流表项规模,并通过下述公式获取当前tn时刻交换机流表的平均流 表项规模:
[0012]当η<δ时
[0013]当η>δ时,
[0014] 其中,1^为tn时刻第i个交换机的流表的平均流表项规模;^^为tn时刻第i 个交换机的流表的流表项规模;S为第i个交换机对应的流表项规模队列保存流表项规模 记录的条数的最大值;tn为收到第i个交换机的第η条STATS_REPLY消息的时间。
[0015] 上述方案中,所述确定当前tn时刻所述流表中流表项的平均失效速率包括:获取 tn时刻,单位时间为tn_tni的第i个交换机的流表中流表项失效的速率巧.,并依据下 述公式确定当前tn时刻所述流表中流表项的平均失效速率:
[0016]
[0017]
[0018] 其中,为tn时刻第i个交换机的流表中流表项的平均失效速率;v:;为 tn时刻,单位时间为tn_tni的第i个交换机的流表中流表项失效的速率;tn为收到第i个 交换机的第η条STATS_REPLY消息的时间。
[0019] 上述方案中,所述获取tn时刻,单位时间为tn_tni的第i个交换机的流表中流表 项失效的速率贫,v.Vis之后,所述方法进一步包括:将所述流表项失效的速率j保 存至第i个交换机对应的流表项失效速率队列Fi,当队列Fi中保存的流表项失效速率记录 的条数超过所述G的最大值时,按照FIFO删除R中最早的一条数据记录。
[0020] 上述方案中,所述确定当前tn时刻流表项的增加速率的估计值包括:获取tn时刻, 单位时间为tn-tni的第i个交换机的流表中流表项增加的速率為&<:|;.?并依据如下公式确 定所述流表中流表项的平均增加速率:
[0021]
[0022]
[0023] 其中,次、为tn时刻第i个交换机的流表中流表项的平均增加速率;()为tn 时刻,单位时间为tn_tni的第i个交换机的流表中流表项增加的速率;tn为收到第i个交 换机的第η条STATS_REPLY消息的时间; -----------------女'.j
[0024] 然后依据所述7····-获得满足泊松分布ρ(χ= = 的累积概率 乂......釦? X-?--¥的X的最小值x_,所述X的最小值x_即为流表项的增加速率的估计值;k 为正整数,Ye(0,1)。
[0025] 上述方案中,所述获取tn时刻,单位时间为tn_tni的第i个交换机的流表中流表 项增加的速率之后,所述方法进一步包括:将所述為存至第i个交换机对应 的流表项增加速率队列Gi,当队列Gi中保存的流表项增加速率记录的条数超过所述Gi的最 大值时,按照FIFO删除&中最早的一条数据记录。
[0026] 上述方案中,所述依据所述当前tn时刻的平均流表项规模、所述流表项的平均失 效速率及所述流表项的增加速率的估计值,对下一时刻tn+1时的流表项规模进行预测包 括:
[0027] 依据所述当前tn时刻的平均流表项规模、所述流表项的平均失效速率及所述流表 项的增加速率的估计值,计算所述tn+1时的流表项规模等于所述当前tn时刻的平均流表项 规模与当前tn时刻的流表项的增加速率的估计值的和,再与当前tn时刻所述流表中流表项 的平均失效速率的差。
[0028] 本发明实施例还提供了一种流表项规模的预测装置,所述装置包括:获取模块、确 定模块及预测模块;其中,
[0029] 所述获取模块,用于获取当前tn时刻交换机的流表的平均流表项规模;
[0030] 所述确定模块,用于确定当前tn时刻所述流表中流表项的平均失效速率以及流表 项的增加速率的估计值;
[0031] 所述预测模块,用于依据所述当前tn时刻的平均流表项规模、所述流表项的平均 失效速率及所述流表项的增加速率的估计值,对下一时刻tn+1时的流表项规模进行预测。
[0032] 上述方案中,所述获取模块,进一步用于获取当前tn时刻交换机流表的流表项规 模,并将所述流表项规模保存至所述交换机对应的流表项规模队列,当所述队列保存的流 表项规模记录的条数超过所述队列的最大值时,按照FIFO删除最早的一条数据记录。
[0033] 上述方案中,所述获取模块获取当前tn时刻交换机的流表的平均流表项规模包 括:所述获取模块通过下述公式获取当前tn时刻交换机流表的平均流表项规模:
[0034]
[0035]
[0036] 其中,<为tn时刻第i个交换机的流表的平均流表项规模;为tn时刻第i 个交换机的流表的流表项规模;S为第i个交换机对应的流表项规模队列保存流表项规模 记录的条数的最大值;tn为收到第i个交换机的第η条STATS_REPLY消息的时间。
[0037] 上述方案中,所述确定模块确定当前tn时刻所述流表中流表项的平均失效速率包 括:所述确定模块获取tn时刻,单位时间为tn_tni的第i个交换机的流表中流表项失效的 速率贫#6.4_;),并依据下述公式确定当前tn时刻所述流表中流表项的平均失效速率:
[0038]
[0039]
[0040] 其中,_Λ?为tn时刻第i个交换机的流表中流表项的平均失效速率;?^:νν;)为 tn时刻,单位时间为tn_tni的第i个交换机的流表中流表项失效的速率;tn为收到第i个 交换机的第η条STATS_REPLY消息的时间。
[0041] 上述方案中,所述确定模块,进一步用于将所述流表项失效的速率見(v.Vl)保存 至第i个交换机对应的流表项失效速率队列Fi,当队列Fi中保存的流表项失效速率记录的 条数超过所述G的最大值时,按照FIFO删除R中最早的一条数据记录。
[0042] 上述方案中,所述确定模块确定当前tn时刻流表项的增加速率的估计值包括:所 述确定模块获取tn时刻,单位时间为tn_tni的第i个交换机的流表中流表项增加的速率 4m>并依据如下公式确定所述流表中流表项的平均增加速率:
[0043]
[0044]
[0045] 其中,€为tn时刻第i个交换机的流表中流表项的平均增加速率;為也.心)为tn 时刻,单位时间为tn_tni的第i个交换机的流表中流表项增加的速率;tn为收到第i个交 换机的第η条STATS_REPLY消息的时间; .?;
[0046] 然后依据所述τ一获得满足泊松分布qx::: ::: 上______1的累积概率 ,知> k] "'乂:.....炎' ·:Λ, Y 的X的最小值χ_,所述X的最小值χ_即为流表项的增加速率的估计值;k - y, | 一, 为正整数,Y