著录项信息
专利名称 | 有效降低域内重构过程中网络丢包率的交换机缓存方法 |
申请号 | CN201310742990.1 | 申请日期 | 2013-12-30 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-04-16 | 公开/公告号 | CN103731370A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/861 | IPC分类号 | H;0;4;L;1;2;/;8;6;1;;;H;0;4;L;1;2;/;9;3;1查看分类表>
|
申请人 | 浙江大学 | 申请人地址 | 浙江省杭州市西湖区余杭塘路866号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江大学 | 当前权利人 | 浙江大学 |
发明人 | 吴春明;潘戈;周伯阳;滕超;王滨;高文 |
代理机构 | 杭州求是专利事务所有限公司 | 代理人 | 周烽 |
摘要
本发明公开了一种有效降低域内重构过程中网络丢包率的交换机缓存方法:在域内重构开始前以及重构过程中,交换机缓存网络中正在转发或正在处理的报文;在重构完成后,交换机依照新的流表重新处理已被缓存的报文,并有序转发出。应用该方法可令网络在经历重构期间的各个暂态过程转换时,不丢失数据报、不中断数据流,所有因重构而滞留在网络中的报文在重构完成后依然能被正确转发,且能有效减少重构造成的报文失序,从而提升了重构时的网络可用性,使得重构前后网络平稳运行。
1.一种有效降低域内重构过程中网络丢包率的交换机缓存方法,其特征在于,包括以下步骤:
(1)域内重构开始:控制器发起该控制器所管控域的域内重构,并根据本次重构的需求,找出域内需要更新流表的交换机,最后计算这些交换机的新的流表;
(2)交换机建立缓存,该步骤通过以下子步骤来实现:
(2.1)控制器利用安全通道,向所有需要更新流表的交换机发送Configuration消息,命令这些交换机进入报文缓存状态;所述Configuration消息由OpenFlow协议定义,用于控制器设置或查询交换机上的配置信息;
(2.2)需要更新流表的交换机收到Configuration消息,分别开始执行报文缓存,具体为:
(2.2.1)交换机挂起报文发送进程;
(2.2.2)交换机建立报文缓冲进程;
(2.2.3)报文缓冲进程利用读锁,锁住原有接收缓冲区,使得报文处理进程不可读取接收缓冲区;
(2.2.4)报文缓冲进程建立报文接收缓冲队列;
(2.2.5)报文缓冲进程持续监听原有接收缓冲区,若原有接收缓冲区中有报文,缓冲进程即把缓冲区中的报文转存入报文接收缓冲队列;
(2.2.6)报文缓冲进程建立报文发送缓冲队列;
(2.2.7)报文缓冲进程持续监听原有发送缓冲区,若原有发送缓冲区中有报文,缓冲进程即把缓冲区中的报文转存入报文发送缓冲队列;
(2.2.8)交换机向控制器发送Packet-in消息,表明已开始缓存报文;所述Packet-in消息由OpenFlow协议定义,用于向控制器发送通知;
(3)执行重构:控制器收到所有以上交换机的Packet-in消息后,执行域内重构,通过重构,需要更新流表的交换机的流表被控制器更新;
(4)交换机释放缓存,该步骤通过以下子步骤来实现:
(4.1)控制器利用安全通道,分别向以上交换机发送Configuration消息,命令这些交换机释放缓存;
(4.2)这些交换机收到Configuration消息,分别开始释放缓存,具体为:
(4.2.1)报文缓冲进程停止监听原有发送缓冲区,不再将原有发送缓冲区中的报文转存入报文发送缓冲队列;
(4.2.2)交换机恢复报文发送进程;
(4.2.3)交换机将报文处理进程的输入流重定向至报文发送缓冲队列;
(4.2.4)报文处理进程根据新的流表,重新处理报文发送缓冲队列中的报文;
(4.2.5)交换机监听报文发送缓冲队列,当该缓冲队列为空时,将报文处理进程的输入流重定向至报文接收缓冲队列;
(4.2.6)报文缓冲进程停止监听原有接收缓冲区,不再将原有接收缓冲区中的报文转存入报文接收缓冲队列;
(4.2.7)交换机监听报文接收缓冲队列,当该缓冲队列为空时,将报文处理进程的输入流重定向至原有接收缓冲区;
(4.2.8)交换机结束报文缓冲进程;
(4.2.9)交换机向控制器发送Packet-in消息,表明已释放缓存;
(5)重构结束:控制器收到所有以上交换机的Packet-in消息后,依据具体机制结束重构。
有效降低域内重构过程中网络丢包率的交换机缓存方法\n技术领域\n[0001] 本发明涉软件定义网络技术领域,尤其涉及一种有效降低域内重构过程中网络丢包率的交换机缓存方法。\n背景技术\n[0002] 互联网运行的过程中,网络运营商常会根据需要调整网络的域内拓扑结构,以变更网络基本属性;或者增加、删除、组合、调整网络业务,以配置业务功能,包括:防火墙的防护策略、各类报文的优先级控制、接入速率控制、访问策略、网络用户的接入认证、QoS保证、计费信息的收集、流量工程、网络地址转换NAT、虚拟专用网VPN及RVPN等。这些对网络属性或功能的重新配置称为网络重构。\n[0003] 软件定义网络(SDN)在执行域内重构时,会经历诸多暂态过程。这一期间,已经在网络上进行转发而尚未到达的报文,可能会遇到重构引起的各种暂态问题,如暂态环路(报文在一个网络环中被恶性循环转发)或网络黑洞(出入某一网络区域的报文会被无声地丢弃,源地址不会收到报文未能到达目的地址的通知)等,进而造成数据流中断。当网络处在高度动态的情况下,暂态问题产生的重构开销尤为明显。这严重降低了网络的可用性。为了解决重构期间的暂态问题,使得网络在经历重构时能安全、平稳地运行,本发明对OpenFlow协议进行扩展,提出了一种重构缓存策略。\n[0004] 本发明的内容涉及以下SDN中的已有概念或技术:\n[0005] SDN控制器是根据OpenFlow协议设计的路由控制软件,用于管理数据流、配置网络设备、制定流表(Flow Table)、承担网络业务与网络设备间的通讯。一个域中可以有多个控制器,但一般只有一个控制器处在控制、管理状态。\n[0006] SDN中的交换机也服从OpenFlow协议。OpenFlow交换机由SDN控制器管控,保存有控制器制定的流表,并通过查询流表表项来决定对报文的处理方式,包括转发、缓存、提交控制器或丢弃等。\n[0007] OpenFlow协议下的安全通道用来连接交换机和控制器,以供二者进行通信。\n发明内容\n[0008] 本发明应用在SDN网络域内,且该域内只有单个控制器处在管控状态。本发明包括以下步骤(参见图1交换机缓存方法序列图):\n[0009] 1、域内重构开始:控制器发起该控制器所管控域的域内重构,并根据本次重构的需求,找出域内需要更新流表的交换机,最后计算这些交换机的新的流表;\n[0010] 2、交换机建立缓存,该步骤通过以下子步骤来实现:\n[0011] 2.1、控制器利用安全通道,向所有需要更新流表的交换机发送Configuration消息(该消息由OpenFlow协议定义,用于控制器设置或查询交换机上的配置信息),命令这些交换机进入报文缓存状态;\n[0012] 2.2、需要更新流表的交换机收到Configuration消息,分别开始执行报文缓存(参见图2交换机执行报文缓存流程图),具体为:\n[0013] 2.2.1、交换机挂起报文发送进程;\n[0014] 2.2.2、交换机建立报文缓冲进程;\n[0015] 2.2.3、报文缓冲进程利用读锁,锁住原有接收缓冲区,使得报文处理进程不可读取接收缓冲区;\n[0016] 2.2.4、报文缓冲进程建立报文接收缓冲队列;\n[0017] 2.2.5、报文缓冲进程持续监听原有接收缓冲区,若原有接收缓冲区中有报文,缓冲进程即把缓冲区中的报文转存入报文接收缓冲队列;\n[0018] 2.2.6、报文缓冲进程建立报文发送缓冲队列;\n[0019] 2.2.7、报文缓冲进程持续监听原有发送缓冲区,若原有发送缓冲区中有报文,缓冲进程即把缓冲区中的报文转存入报文发送缓冲队列;\n[0020] 2.2.8、交换机向控制器发送Packet-in消息(该消息由OpenFlow协议定义,可以用于向控制器发送通知),表明已开始缓存报文;\n[0021] 3、执行重构:控制器收到所有以上交换机的Packet-in消息后,执行域内重构;通过重构,需要更新流表的交换机的流表被控制器更新;\n[0022] 4、交换机释放缓存,该步骤通过以下子步骤来实现:\n[0023] 4.1、控制器利用安全通道,分别向以上交换机发送Configuration消息,命令这些交换机释放缓存;\n[0024] 4.2、这些交换机收到Configuration消息,分别开始释放缓存(参见图3交换机释放报文缓存流程图),具体为:\n[0025] 4.2.1、报文缓冲进程停止监听原有发送缓冲区,不再将原有发送缓冲区中的报文转存入报文发送缓冲队列;\n[0026] 4.2.2、交换机恢复报文发送进程;\n[0027] 4.2.3、交换机将报文处理进程的输入流重定向至报文发送缓冲队列;\n[0028] 4.2.4、报文处理进程根据新的流表,重新处理报文发送缓冲队列中的报文;\n[0029] 4.2.5、交换机监听报文发送缓冲队列,当该缓冲队列为空时,将报文处理进程的输入流重定向至报文接收缓冲队列;\n[0030] 4.2.6、报文缓冲进程停止监听原有接收缓冲区,不再将原有接收缓冲区中的报文转存入报文接收缓冲队列;\n[0031] 4.2.7、交换机监听报文接收缓冲队列,当该缓冲队列为空时,将报文处理进程的输入流重定向至原有接收缓冲区;\n[0032] 4.2.8、交换机结束报文缓冲进程;\n[0033] 4.2.9、交换机向控制器发送Packet-in消息,表明已释放缓存;\n[0034] 5、重构结束:控制器收到所有以上交换机的Packet-in消息后,依据具体机制结束重构。\n[0035] 本发明的有益效果是:应用本发明提出的域内重构交换机缓存方法,可令网络在经历重构期间的各个暂态过程转换时,不丢失数据报、不中断数据流,所有因重构而滞留在网络中的报文在重构完成后依然能被正确转发,且能有效减少重构造成的报文失序,从而提升了重构时的网络可用性,使得重构前后网络平稳运行。\n[0036] 现有的SDN控制器,如NOX、Beacon、Maestro,并不保证网络重构时暂态过程下的网络可用性,当控制器配置新的链路参数时,各种暂态问题如暂态环路或网络黑洞均存在。而本技术能够消除这些暂态问题,尽可能减小了网络的域内重构对上层用户的影响;在域内重构时,使用本技术可使网络对上层仅表现为延迟在短时间内增大。因此,与现有技术相比,本发明优势在于利用了较为轻量级的方法完全保证了网络在重构期间的可用性。\n附图说明\n[0037] 图1是交换机缓存方法序列图;\n[0038] 图2是交换机执行报文缓存流程图;\n[0039] 图3是交换机释放报文缓存流程图;\n[0040] 图4是重构前的SDN业务网拓扑结构示例图;\n[0041] 图5是重构后的SDN业务网拓扑结构示例图。\n具体实施方式\n[0042] 下面以控制器改变域内SDN节点连接关系为例,结合图4、图5详细描述本发明。\n[0043] 1、域内重构开始:控制器发起该控制器所管控域的域内重构,并根据本次重构的需求,对比重构前原有的网络拓扑(例如图4)与所欲的新拓扑(例如图5),求得需要更新流表的交换机为:交换机A、B、C、D、E,最后计算这五台交换机的新流表;\n[0044] 2、交换机建立缓存,该步骤通过以下子步骤来实现:\n[0045] 2.1、控制器利用安全通道(在图4、图5中以折线表示),分别向交换机A、B、C、D、E发送Configuration消息,命令这些交换机进入报文缓存状态;\n[0046] 2.2、这些交换机收到Configuration消息,分别开始执行报文缓存(参见图2交换机执行报文缓存流程图):\n[0047] 2.2.1、交换机挂起报文发送进程;\n[0048] 2.2.2、交换机建立报文缓冲进程;\n[0049] 2.2.3、报文缓冲进程利用读锁,锁住原有接收缓冲区,使得报文处理进程不可读取接收缓冲区;\n[0050] 2.2.4、报文缓冲进程建立报文接收缓冲队列;\n[0051] 2.2.5、报文缓冲进程持续监听原有接收缓冲区,若原有接收缓冲区中有报文,缓冲进程即把缓冲区中的报文转存入报文接收缓冲队列;\n[0052] 2.2.6、报文缓冲进程建立报文发送缓冲队列;\n[0053] 2.2.7、报文缓冲进程持续监听原有发送缓冲区,若原有发送缓冲区中有报文,缓冲进程即把缓冲区中的报文转存入报文发送缓冲队列;\n[0054] 2.2.8、交换机向控制器发送Packet-in消息(该消息由OpenFlow协议定义,可以用于向控制器发送通知),表明已开始缓存报文;\n[0055] 3、执行重构:控制器收到交换机A、B、C、D、E的Packet-in消息后,执行域内重构;通过重构,交换机A、B、C、D、E的流表被控制器更新;\n[0056] 4、交换机释放缓存,该步骤通过以下子步骤来实现:\n[0057] 4.1、控制器利用安全通道,分别向交换机A、B、C、D、E发送Configuration消息,命令这些交换机释放缓存;\n[0058] 4.2、这些交换机收到Configuration消息,分别开始释放缓存(参见图3交换机释放报文缓存流程图):\n[0059] 4.2.1、报文缓冲进程停止监听原有发送缓冲区,不再将原有发送缓冲区中的报文转存入报文发送缓冲队列;\n[0060] 4.2.2、交换机恢复报文发送进程;\n[0061] 4.2.3、交换机将报文处理进程的输入流重定向至报文发送缓冲队列;\n[0062] 4.2.4、报文处理进程根据新的流表,重新处理报文发送缓冲队列中的报文;\n[0063] 4.2.5、交换机监听报文发送缓冲队列,当该缓冲队列为空时,将报文处理进程的输入流重定向至报文接收缓冲队列;\n[0064] 4.2.6、报文缓冲进程停止监听原有接收缓冲区,不再将原有接收缓冲区中的报文转存入报文接收缓冲队列;\n[0065] 4.2.7、交换机监听报文接收缓冲队列,当该缓冲队列为空时,将报文处理进程的输入流重定向至原有接收缓冲区;\n[0066] 4.2.8、交换机结束报文缓冲进程;\n[0067] 4.2.9、交换机向控制器发送Packet-in消息,表明已释放缓存;\n[0068] 5、重构结束:控制器收到交换机A、B、C、D、E的Packet-in消息后,依据具体机制结束重构。
法律信息
- 2016-07-13
- 2014-05-14
实质审查的生效
IPC(主分类): H04L 12/861
专利申请号: 201310742990.1
申请日: 2013.12.30
- 2014-04-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-07-07
|
2010-03-01
| | |
2
| |
2013-01-16
|
2012-10-26
| | |
3
| |
2009-04-22
|
2007-10-17
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |