1.一种软件定义网络SDN中的流表发送方法,其特征在于,所述SDN中包括开放流OpenFlow控制器以及多个用于转发数据流的OpenFlow交换机,所述方法由所述SDN网络中的OpenFlow控制器执行,所述方法包括:
根据所述OpenFlow控制器与各OpenFlow交换机之间的链路时延,以及多个OpenFlow交换机之间的链路时延,分别计算待向所述各OpenFlow交换机发送的流修改Flow Mod消息的紧急程度,其中,Flow Mod消息有多个,Flow Mod消息用于向OpenFlow交换机发送流表项;
根据各Flow Mod消息的紧急程度确定所述各Flow Mod消息的发送顺序;
根据确定的所述各Flow Mod消息的发送顺序,分别向所述多个OpenFlow交换机发送Flow Mod消息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述OpenFlow控制器与各OpenFlow交换机之间的链路时延,以及多个OpenFlow交换机之间的链路时延,分别计算待向所述各OpenFlow交换机发送的Flow Mod消息的紧急程度包括:
分别根据E(α)=Max[(E(β)+dcβ),dcβ]+dβα-dcα计算获得待向所述各OpenFlow交换机发送的Flow Mod消息的紧急程度,其中,E(α)用于表示向OpenFlow交换机α发送的Flow Mod消息紧急程度,E(β)用于表示向OpenFlow交换机α的上一跳OpenFlow交换机β发送的Flow Mod消息的紧急程度,dcβ用于表示所述OpenFlow控制器与所述OpenFlow交换机β的链路时延,dβα用于表示所述OpenFlow交换机β到所述OpenFlow交换机α的链路时延,dcα用于表示所述OpenFlow控制器与所述OpenFlow交换机α的链路时延,E(β)+dcβ用于表示所述数据流从第一个OpenFlow交换机开始到达所述OpenFlow交换机β的最早时间,Max[E(β)+dcβ,dcβ]用于表示所述OpenFlow交换机β开始转发所述数据流的最早时间。
3.根据权利要求1或2所述的方法,其特征在于,所述根据各Flow Mod消息的紧急程度确定所述各Flow Mod消息的发送顺序包括:
按照所述各Flow Mod消息的紧急程度由高到低的顺序确定所述各Flow Mod消息的发送顺序。
4.根据权利要求1或2所述的方法,其特征在于,当所述待转发的数据流为至少两条数据流时,所述根据各Flow Mod消息的紧急程度确定所述各Flow Mod消息的发送顺序,包括:
根据计算的至少两条数据流的各Flow Mod消息的紧急程度以及所述至少两条数据流的优先级获取全局调度队列,所述全局调度队列用于确定所述各Flow Mod消息的发送顺序。
5.根据权利要求4所述的方法,其特征在于,所述根据计算的至少两条数据流的各Flow Mod消息的紧急程度以及所述至少两条数据流的优先级获取全局调度队列,包括:
将所述至少两条数据流的Flow Mod消息排列成第一队列,其中,在所述第一队列中,所述各Flow Mod消息按照其所属的数据流的优先级从高到低的顺序排列,且属于同一优先级的数据流中的Flow Mod消息按照紧急程度从高到低的顺序排列,同一个数据流中的Flow Mod消息的优先级相同;
创建初始全局调度队列,所述初始全局调度队列为空队列;
将所述第一队列中的所述至少两条数据流的Flow Mod消息依次分别插入所述初始全局调度队列以获得所述全局调度队列。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一队列中的所述至少两条数据流的Flow Mod消息依次分别插入所述初始全局调度队列以获得所述全局调度队列包括:
对所述第一队列中的每一个Flow Mod消息分别执行如下操作直到将所述第一队列中的所有Flow Mod消息依次插入所述初始全局调度队列为止:
遍历所述初始全局调度队列,将第一Flow Mod消息插入第一个紧急程度值大于所述第一Flow Mod消息的紧急程度值的Flow Mod消息之前,其中,Flow Mod消息的紧急程度值越大该Flow Mod消息的紧急程度越低,所述第一Flow Mod消息为所述第一队列中的任意一个Flow Mod消息;
更新插入所述第一Flow Mod消息后的初始全局调度队列中的Flow Mod消息的紧急程度值。
7.根据权利要求6所述的方法,其特征在于,所述更新插入所述第一Flow Mod消息后的初始全局调度队列中的Flow Mod消息的紧急程度值包括:
若所述第一Flow Mod消息对应的OpenFlow交换机为所述第一Flow Mod消息所属的数据流的转发路径上的第一个OpenFlow交换机,则将所述初始全局调度队列中排在所述第一Flow Mod消息之前的所有Flow Mod消息的紧急程度值更新为最低值,并将所述全局调度队列中位于所述第一Flow Mod消息之后的所有Flow Mod消息的紧急程度值降低预设值;或
若所述第一Flow Mod消息对应的OpenFlow交换机不是所述第一Flow Mod消息所属的数据流的转发路径上的第一个OpenFlow交换机,则根据所述初始全局调度队列中已插入的第二Flow Mod消息与所述第一Flow Mod消息之间的所有数据流的Flow Mod消息的个数降低所述第一Flow Mod消息的紧急程度值,并将所述初始全局调度队列中位于所述第一Flow Mod消息之后的所有Flow Mod消息的紧急程度值降低预设值,其中,所述第二Flow Mod消息与所述第一Flow Mod消息属于同一个数据流,且所述第二Flow Mod消息为所述第一Flow Mod消息所属的数据流中已插入所述初始全局调度队列中的第一个Flow Mod消息。
8.一种开放流OpenFlow控制器,其特征在于,包括:
计算模块,用于根据所述OpenFlow控制器与各OpenFlow交换机之间的链路时延,以及多个OpenFlow交换机之间的链路时延,分别计算待向所述各OpenFlow交换机发送的流修改Flow Mod消息的紧急程度,其中,Flow Mod消息有多个,Flow Mod消息用于向OpenFlow交换机发送流表项;
处理模块,用于根据各Flow Mod消息的紧急程度确定所述各Flow Mod消息的发送顺序;
发送模块,用于根据确定的所述各Flow Mod消息的发送顺序,分别向所述多个OpenFlow交换机发送Flow Mod消息。
9.根据权利要求8所述的OpenFlow控制器,其特征在于,所述计算模块具体用于:
分别根据E(α)=Max[(E(β)+dcβ),dcβ]+dβα-dcα计算获得待向所述各OpenFlow交换机发送的Flow Mod消息的紧急程度,其中,E(α)用于表示向OpenFlow交换机α发送的Flow Mod消息紧急程度,E(β)用于表示向OpenFlow交换机α的上一跳OpenFlow交换机β发送的Flow Mod消息的紧急程度,dcβ用于表示所述OpenFlow控制器与所述OpenFlow交换机β的链路时 延,dβα用于表示所述OpenFlow交换机β到所述OpenFlow交换机α的链路时延,dcα用于表示所述OpenFlow控制器与所述OpenFlow交换机α的链路时延,E(β)+dcβ用于表示所述数据流从第一个OpenFlow交换机开始到达所述OpenFlow交换机β的最早时间,Max[E(β)+dcβ,dcβ]用于表示所述OpenFlow交换机β开始转发所述数据流的最早时间。
10.根据权利要求8或9所述的OpenFlow控制器,其特征在于,所述处理模块具体用于按照所述各Flow Mod消息的紧急程度由高到低的顺序确定所述各Flow Mod消息的发送顺序。
11.根据权利要求8或9所述的OpenFlow控制器,其特征在于,当所述待转发的数据流为至少两条数据流时,所述处理模块具体用于:
根据计算的至少两条数据流的各Flow Mod消息的紧急程度以及所述至少两条数据流的优先级获取全局调度队列,所述全局调度队列用于确定所述各Flow Mod消息的发送顺序。
12.根据权利要求11所述的OpenFlow控制器,其特征在于,所述处理模块具体用于:
将所述至少两条数据流的Flow Mod消息排列成第一队列,其中,在所述第一队列中,所述各Flow Mod消息按照其所属的数据流的优先级从高到低的顺序排列,且属于同一优先级的数据流中的Flow Mod消息按照紧急程度从高到低的顺序排列,同一个数据流中的所述各Flow Mod消息的优先级相同;
创建初始全局调度队列,所述初始全局调度队列为空队列;
将所述第一队列中的所述至少两条数据流的Flow Mod消息依次分别插入所述初始全局调度队列以获得所述全局调度队列。
13.根据权利要求12所述的OpenFlow控制器,其特征在于,所述处理模块具体用于:
对所述第一队列中的每一个Flow Mod消息分别执行如下操作直到将所述第一队列中的所有Flow Mod消息依次插入所述初始全局调度队列为止:
遍历所述初始全局调度队列,将第一Flow Mod消息插入第一个紧急程度值大于所述第一Flow Mod消息的紧急程度值的Flow Mod消息之前,其中,Flow Mod消息的紧急程度值越大该Flow Mod消息的紧急程度越低,其中,所述第一Flow Mod消息为所述第一队列中的任意一个Flow Mod消息;
更新插入所述第一Flow Mod消息后的初始全局调度队列中的Flow Mod消息的紧急程度值。
14.根据权利要求13所述的OpenFlow控制器,其特征在于,所述处理模块具体用于:
若所述第一Flow Mod消息对应的OpenFlow交换机为所述第一Flow Mod消息所属的数据流的转发路径上的第一个OpenFlow交换机,则将所述初始全局调度队列中排在所述第一Flow Mod消息之前的所有Flow Mod消息的紧急程度值更新为最低值,并将所述全局调度队列中位于所述第一Flow Mod消息之后的所有Flow Mod消息的紧急程度值降低预设值;或
若所述第一Flow Mod消息对应的OpenFlow交换机不是所述第一Flow Mod消息所属的数据流的转发路径上的第一个OpenFlow交换机,则根据所述初始全局调度队列中已插入的第二Flow Mod消息与所述第一Flow Mod消息之间的所有数据流的Flow Mod消息的个数降低所述第一Flow Mod消息的紧急程度值,并将所述初始全局调度队列中位于所述第一Flow Mod消息之后的所有Flow Mod消息的紧急程度值降低预设值,其中,所述第二Flow Mod消息与所述第一Flow Mod消息属于同一个数据流,且所述第二Flow Mod消息为所述第一Flow Mod消息所属的数据流中已插入所述初始全局调度队列中的第一个Flow Mod消息。