一种流表下发方法、系统、sdn控制器及sdn交换机的制作方法_2

文档序号:9600761阅读:来源:国知局
br>[0043]本实施例提供一种流表下发方法、系统、SDN控制器及SDN交换机基于消息队列机制,SDN控制器根据预先设定的流表项阈值,判断流表下发方式,如果生成的流表项数量超过阈值,发送带有流文件标志和流文件名的Experimenter消息给SDN交换机,SDN交换机通过FTP方式获取流文件,按照流文件中的顺序,快速下发流表项,提高整个SDN网络系统的流表下发速度。
[0044]具体地,如图1所示,本实施例提供一种流表下发方法,应用于SDN网路中SDN控制器向SDN交换机下发流表的过程中,所述流表下发方法包括以下步骤。
[0045]步骤S11,检测SDN控制器生成的流表项的数量是否超过预设的阈值,若否,则接着执行步骤S12,若是,则接着执行步骤S13。
[0046]步骤S12,所述SDN控制器向SDN交换机下发包含所述流表项的流表。
[0047]步骤S13,生成包含所述流表项的流文件。
[0048]步骤S14,在生成包含所述流表项的流文件后,向所述SDN交互机发送包含所述流文件信息的流表消息。
[0049]步骤S15,所述SDN交互机根据接收到的所述流表消息以预设的网络访问方式从所述SDN控制器获取所述流文件中的流表项。
[0050]步骤S16,所述SDN交互机根据获取的流表项配置并下发流表。
[0051]以下对步骤S11至步骤S16进行详细说明。
[0052]步骤S11,检测SDN控制器生成的流表项的数量是否超过预设的阈值。流表项的阈值可根据网络负载能力、网络速度等进行设定。本实施例中的流表下发方法根据流表项的阈值确定流表下发的方式。若SDN控制器生成的流表项的数量未超过预设的流表项的阈值,则执行步骤S12,所述SDN控制器向SDN交换机下发包含所述流表项的流表。也就说,若SDN控制器生成的流表项的数量未超过预设的流表项的阈值,SDN控制器继续以传统流表下发方式到SDN交换机,即SDN控制器生成流表并一条条下发给SDN交互机。若SDN控制器生成的流表项的数量超过预设的流表项的阈值,则执行步骤S13,SDN控制器则生成包含所述流表项的流文件。
[0053]在生成包含所述流表项的流文件后,接着执行步骤S14,SDN控制器向所述SDN交互机发送包含所述流文件信息的流表消息,其中所述流表信息中至少包括流文件标识和流文件的名称。
[0054]在本实施例中,SDN控制器具体按照以下方式向所述SDN交互机发送包含所述流文件信息的流表消息:扩展OpenFlow协议标准中的Experimenter消息,在向所述SDN交互机发送包含所述流文件信息的流表消息时,由所述Experimenter消息携带所述流表消息。
[0055]在SDN交换机端,接着执行步骤S15,所述SDN交互机根据接收到的所述流表消息以预设的网络访问方式从所述SDN控制器获取所述流文件中的流表项。其中,在本实施例中,所述预设的网络访问方式为FTP网络访问方式。SDN交互机利用FTP方式可以从SDN控制器一次性获取下发大量流表项,提高了整个SDN网络的流表下发速度。
[0056]在所述SDN控制器获取所述流文件中的流表项后,接着执行步骤S16,所述SDN交互机根据获取的流表项配置并下发流表。
[0057]此外,在本实施例中,在向所述SDN交互机发送包含所述流文件信息的流表消息之后,为确保SDN交互机已经获取流文件中的流表项,所述SDN控制器发送一询问消息(例如Barrier消息)询问所述SDN交换机是否已经获取流文件中的流表项,所以在本实施例中,所述SDN交互机根据获取的流表项配置并下发流表之后,所述SDN交互机向所述SDN控制器反馈用于确认已获取流表项并已下发流表的反馈信息。所述SDN控制器在预设时间内未收到所述SDN交互机反馈的用于确认已获取流表项并已下发流表的反馈信息时,所述SDN控制器向SDN交换机下发包含所述流表项的流表,也就是说,所述SDN控制器在预设时间内未收到所述SDN交互机反馈的用于确认已获取流表项并已下发流表的反馈信息时,SDN控制器继续以传统流表下发方式到SDN交换机,即SDN控制器生成流表并一条条下发给SDN交互机。
[0058]为使本领域技术人员进一步理解本实施例中的流表下发方法,如图2和图3所示,以下将进一步说明本实施例中流表下发方法的实施过程。
[0059]预先设置好流表项的阈值。SDN控制器检查需要生成的流表项是否超过设定阈值,如果没有超过,SDN控制器继续以传统流表下发方式到SDN交换机,即SDN控制器生成流表并一条条下发给SDN交互机。如果超过,SDN控制器把本次生成的流表项写入流文件,SDN控制器发送扩展带有流文件标志和流文件名的Experimenter消息给SDN交换机。SDN交换机接收带有流文件标志和流文件名的Experimenter消息,如果SDN交换机没有收到该Experimenter消息或不支持Experimenter消息,继续传统流表下发方式。如SDN交换机收到该Experimenter消息,SDN交换机通过FTP从SDN控制器获取流文件,如超时,获取不成功,继续传统流表下发方式。如果成功获取,SDN交换机顺序读取流文件中的表项,快速配置流表。
[0060]为确保SDN交换机已获取并下发流文件中的表项,SDN控制器通过发送Barrier消息询问所述SDN交换机是否已经获取流文件中的流表项,所述SDN交互机根据获取的流表项配置并下发流表之后,所述SDN交互机回应SDN控制器的Barrier消息,表明已处理完毕。SDN控制器等待Barrier消息回应,若SDN控制器在预设时间内收到Barrier消息回应,返回步骤SI 1,重复执行本实施例中的流表下发方法。若SDN控制器在规定时间内没有收到Barrier消息回应,提示用户错误,并按传统流表下发流程处理。
[0061]为实现上述目的,本发明还提供一种流表下发系统,具体地,如图4所示,所述流表下发系统1包括:SDN控制器11和SDN交换机12。
[0062]以下对所述流表下发系统1中的SDN控制器11和SDN交换机12进行详细说明。
[0063]所述SDN控制器11用于SDN网路中向SDN交换机12下发流表,具体地,如图4和图5所述,所述SDN控制器11内包含:阈值设置模块111,阈值检测模块112,流文件模块113,流表下发模块114,流表信息发送模块115以及扩展模块116。
[0064]所述阈值设置模块111用于设置流表项的阈值;流表项的阈值可根据网络负载能力、网络速度等进行设定。本实施例根据流表项的阈值确定流表下发的方式。
[0065]所述阈值检测模块112与所述阈值设置模块111相连,用于检测SDN控制器11生成的流表项的数量是否超过预设的阈值。
[0066]所述流文件模块113与所述阈值检测模块112相连,用于在SDN控制器11生成的流表项的数量超过预设的阈值时生成包含所述流表项的流文件。所述流表下发模块114与所述阈值检测模块112相连,用于在SDN控制器11生成的流表项的数量未超过预设的阈值时向SDN交换机12下发包含所述流表项的流表。
[0067]若SDN控制器11生成的流表项的数量未超过预设的流表项的阈值,所述流表下发模块114向SDN交换机12下发包含所述流表项的流表。也就说,若SDN控制器11生成的流表项的数量未超过预设的流表项的阈值,SDN控制器11继续以传统流表下发方式到SDN交换机12,即SDN控制器11生成流表并一条条下发给SDN交互机。若SDN控制器11生成的流表项的数量超过预设的流表项的阈值,则所述流文件模块113生成包含所述流表项的流文件。
[0068]所述流表信息发送模块115与所述流文件模块113相连,用于向SDN交互机发送包含所述流文件信息的流表消息。在生成包含所述流表项的流文件后,所述流表信息发送模块115向所述SDN交互机发送包含所述流文件信息的流表消息,其中所述流表信息中至少包括流文件标识和流文件的名称。
[0069]所述扩展模块116与所述流表信息发送模块115相连,用于扩展OpenFlow协议标准中的Experimenter消息;在所述流表信息发送模块115向所述SDN交互机发送包含所述流文件信息的流表消息时,由所述Experimenter消息携带所述流表消息。
[0070]SDN交换机12所述用于SDN网路中向SDN控制器11获取流表,具体地,如图4和图6所示,所述SDN交换机12内包含:流表信息接收模块121,流表项获取模块122以及配置下发模块123。
[0071]所述流表信息接收模块121用于从SDN控制器11接收包含流文件信息的流表消息;所述流表项获取模块122与所述流表信息接收模块121相连,用于根据接收到的所述流表消息以预设的网络访问方式从所述SDN控制器11获取所述流文件中的流表项。
[0072]其中,在本实施例中,所述预设的网络访问方式为FTP网络访问方式。SDN交互机利用FTP方式可以从SDN控制器11 一次性获取下发大量流表项,
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1