软件定义网络中避免网络拥塞的方法和控制器的制造方法_2

文档序号:8301550阅读:来源:国知局
端口信息的拥塞端口流量查询报文给步骤201中发生端口拥塞的SDN交换设备,并接收该SDN交换设备根据拥塞端口流量查询报文返回的携带拥塞端口当前转发的各条流量所需带宽的拥塞端口流量应答报文,SDN控制器根据拥塞端口流量应答报文中携带的拥塞端口当前转发的各条流量所需带宽,判断该拥塞端口当前转发的各条流量所需带宽之和叠加切换流量所需的带宽后是否不大于拥塞端口的总带宽,如果是,回切切换流量至该SDN交换设备的拥塞端口,否则更新更新流表的老化时间。
[0045]这么做的原因是,一般SDN控制器首次为流量确定转发路径时选择的都是最优路径,最优路径上某个出端口发生拥塞时SDN控制器利用本发明的方法将流量临时切换到其他路径,当最优路径上的拥塞端口解除了拥塞情况时仍将流量回切至原来的最优链路,能实现整个网络的效率最大化。
[0046]步骤206:SDN控制器发送更新流表给上游SDN交换设备,使上游SDN交换设备更新自身流表后,将切换流量从更新出端口转发。
[0047]为使本发明的目的、技术方案和优点表达的更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0048]下面结合具体实施例对上述SDN网络中避免网络拥塞的方法进行详细说明。
[0049]目前,SDN技术中最为流行的是OpenFlow协议,以下将以OpenFlow进行举例进行说明,需要说明的是,本申请并不排除其他能够实现SDN功能的协议。
[0050]图3为本方法实施例的OpenFlow网络结构图,如图3所示,用户I发送流量SI给用户3,由Switch I发送给Switch 3,再通过Switch 3的出端口 P35转发给Switch 5,最后发送给用户3 ;用户2发送流量S2给用户3,由Switch 2发送至Switch 3,再通过Switch3的出端口 P35转发给Switch 5,最后发送给用户3。即Switch 3的出端口 P35同时承担了流量SI和流量S2的转发。本实施例以Switch 3的出端口 P35出现拥塞为例对本发明技术方案进行详细说明,假设出端口 P35的总带宽为100M,流量SI所需带宽为55M,流量S2所需带宽为60M。图4为本实施例的流程图,如图4所示,包括以下步骤:
[0051]步骤401:Switch 3发送端口拥塞通知报文给OpenFlow控制器。
[0052]本步骤中,Switch 3发送端口拥塞通知报文给OpenFlow控制器,该拥塞通知报文中携带发生端口拥塞的出端口 P35的端口信息,以及通过出端口 P35转发的流量SI和S2所需的带宽,本实施例假设流量SI所需带宽为55M,S2所需带宽为60M。
[0053]步骤402:OpenFlow控制确定出端口 P35上需要切换的流量。
[0054]本步骤中,OpenFlow控制器上预先保存了 OpenFlow网络中各个Switch设备上每个出端口的总带宽,本实施例假设出端口 P35的总带宽为100M,则OpenFlow控制器将流量S2确定为切换流量,如果将流量S2从出端口 P35上移除,则出端口 P35仅转发流量SI,流量SI所需带宽为55M,小于出端口 P35的总带宽。
[0055]步骤403:OpenF1w控制器确定流量S2的上游Switch设备。
[0056]本步骤中,OpenFlow控制器根据网络拓扑确定出的流量S2的上游Switch设备为Switch 2o
[0057]步骤404:0penFlow控制器发送端口流量查询报文给Switch 2。
[0058]本步骤中,OpenFlow控制器发送端口流量查询报文给Switch 2,以确定Switch 2上各个出端口转发的流量所需的带宽值。
[0059]步骤405:OpenFlow控制器接收Switch 2返回的端口流量应答报文。
[0060]本步骤中,OpenFlow控制器接收Switch 2根据端口流量查询报文返回的端口流量应答报文,该端口流量应答报文中携带Switch 2的各个出端口中转发的流量所需带宽值,假设出端口 P21转发流量S3,流量S3所需带宽为50M ;出端口 P23转发流量S2,流量S2所需带宽为60M ;出端口 P24上没有转发流量。
[0061]步骤406:0penFlow控制器确定流量S2在Switch 2上的更新出端口。
[0062]假设OpenFlow控制器根据拓扑计算出的流量S2在网络中的最优链路为Switch2-Switch 3-Switch 5,并且流量 S2 还存在等价链路 Switch 2-Switch 4-Switch 5,则OpenFlow控制器优先考虑Switch 2上在流量S2的等价链路上的端口是否满足更新出端口的条件,Switch 2在转发流量S2的等价链路上的端口为出端口 P24,步骤405接收到的端口流量应答报文携带的Switch 2上出端口 P24无转发流量。OpenFlow控制器上预先保存了各个Switch设备的每个出端口的总带宽,假设出端口 P24的总带宽为110M,流量S2所需带宽为60M,则出端口 P24叠加流量S2所需带宽后小于出端口 P24的总带宽,因此OpenFlow控制器确定出端口 P24为更新出端口。
[0063]如果流量S2在网络中不存在等价链路,则OpenFlow控制器还可以判断是否存在次优链路,如果存在,进一步判断Switch 2在次优链路上的端口是否满足更新出端口的条件,如果存在满足条件的更新出端口,则将Switch 2在次优链路上的端口确定为更新出端口,否则OpenFlow控制器判断Switch 2上在任意一条可达目的端的链路上的端口是否满足更新出端口的条件。
[0064]如果Switch 2上不存在满足条件的更新出端口,则OpenFlow控制器重新选择切换流量,例如将流量SI确定为切换流量,进而确定转发流量SI的上游Switch设备,以及确定该上游Switch设备上的更新出端口,在此不再详述。
[0065]步骤407: OpenF I ow控制器创建更新流表,并为更新流表设置老化时间,发送更新流表给Switch 2。
[0066]本步骤中,OpenFlow控制器创建更新流表,更新流表的出端口为更新出端口 P24,更新流表匹配的报文流为流量S2,OpenFlow控制器为该更新流表设置老化时间,并将更新流表发送给Switch 2。
[0067]步骤408:Switch 2接收到OpenFlow控制器发送来的更新流表,将自身保存的与流量S2匹配的流表更新为更新流表。
[0068]此后,Switch 2将流量S2从出端口 P24转发给Switch 4,Switch 4查询匹配的流表未果,则向OpenFlow控制器请求下发流表以进行流量转发,此后为现有技术,在此不再详述。
[0069]步骤409:0penFlow控制器上的更新流表老化时间超时,判断出端口 P35当前转发的流量所需带宽之和叠加上流量S2后是否大于出端口 P35的总带宽。如果是,执行步骤410,否则执行步骤411。
[0070]步骤410: OpenF I ow控制器更新更新流表的老化时间。
[0071]基于步骤409的判断结果,出端口 P35当前转发的流量所需带宽之和叠加流量S2所需带宽后大于出端口 P35的总带宽,即如果流量S2仍从Switch 3的出端口 P35转发,仍会使得出端口 P35发生端口拥塞,因此OpenFlow控制器更新更新流表的老化时间,使得流量S2仍从Switch 2上的出端口 P24转发。
[0072]步骤411:0penFlow控制器删除更新流表,下发携带出端口为P23的与流量S2匹配的转发流表给Switch 2。
[0073]基于步骤409的判断结果,出端口 P35当前转发的流量所需带宽之和叠加流量S2所需带宽之后,不大于出端口 P35的总带宽,则OpenFlow控制器删除更新流表,下发携带出端口为P23的与流量S2匹配的转发流表给Switch 2,使得Switch 2更新与流量S2匹配的流表后,将流量S2通过出端口 P23发送至Switch 3,即将流量S2回切至原转发路径。
[0074]针对上述方法,本发明还公开一种SDN控制器,图5为本发明SDN控制器的结构图,如图5所示,该控制器包括:
[0075]接收1?块501,用于接收SDN父换设备发送来的?而口拥塞通知报文,该?而口拥塞通知报文携带SDN交换设备上拥塞端口的端口信息。
[0076]处理模块502,用于确定拥塞端口上需要切换的流量为切换流量;根据网络拓扑确定转发切换流量的上游SDN交换设备;确定上游SDN交换设备上的更新出端口,更新出端口为异于所述切换流量在所述上游SDN交换设备上的原出端口、并且能够将切换流量转发至目的端的链路上的端口。
[0077]流表创建模块503,用于为上游SDN交换设备创建与切换流量匹配的更新流表,该更新流表中的出端口为更新出端口。
[0078]发送模块504,用于发送更新流表给上游SDN交换设备,使上游SDN交换设备更新自身流表后,将切换流量从更新出端口转发。
[0079]接收模块501接收到的端口拥塞通知报文还携带所述拥塞端口转发的每条流量所需的带宽。
[0080]处理模块502进一步用于:
[0081]将通过拥塞端口转发的所有流量中的至少一条流量确定为切换流量;其中,端口拥塞通知报文携
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1