通信系统、节点、控制设备、通信方法以及程序.pdf

上传人:奻奴 文档编号:4329350 上传时间:2018-09-13 格式:PDF 页数:41 大小:8.89MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180022831.3

申请日:

2011.05.26

公开号:

CN102884769A

公开日:

2013.01.16

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/771申请日:20110526|||公开

IPC分类号:

H04L12/771(2013.01)I; H04L12/801(2013.01)I; H04L29/06

主分类号:

H04L12/771

申请人:

日本电气株式会社

发明人:

千叶靖伸

地址:

日本东京都

优先权:

2010.05.28 JP 2010-123054

专利代理机构:

北京东方亿思知识产权代理有限责任公司 11258

代理人:

李晓冬

PDF下载: PDF下载
内容摘要

本发明提供了一种防止非计划处理在数据转发网络中布置的节点中被执行的配置,该非计划处理可以由于设置处理规则(流条目)的延迟而造成。一种通信系统包括:节点,其处理所接收到的数据包;以及控制设备,其设置节点中的处理规则,该处理规则规定比较规则和适于该比较规则的数据包处理。该节点保存处理规则和与处理规则相关联的标识符,并且根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否对所接收到的数据包执行处理,其中所述处理规则与适于所接收到的数据包的比较规则相对应,并且所述处理根据与适于所接收到的数据包的比较规则相对应的处理规则而被执行。

权利要求书

权利要求书一种通信系统,包括:节点,所述节点处理所接收到的数据包;以及控制设备,该控制设备设置所述节点中的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理,其中,所述节点保存与所述处理规则相关联的标识符,并且根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,其中所述处理规则与符合所接收到的数据包的匹配规则相对应,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行。根据权利要求1所述的通信系统,其中所述标识符被用来验证所接收到的数据包与所述处理规则之间的比较结果,所述比较基于所述匹配规则。根据权利要求1或2所述的通信系统,其中,所述节点通过将所接收到的数据包与所述匹配规则相比较来搜索与符合所接收到的数据包的匹配规则相对应的处理规则,并且在所接收到的数据包的标识符对应于与所搜索到的处理规则相关联的标识符的情况下,根据所搜索到的处理规则来执行对所接收到的数据包的处理。根据权利要求1或2所述的通信系统,其中,所述节点搜索与和所接收到的数据包的标识符相对应的标识符相关联的处理规则,并且在与所述处理规则相对应的匹配规则符合所接收到的数据包的情况下,根据所搜索到的处理规则来执行对所接收到的数据包的处理。根据权利要求1至4中任一项所述的通信系统,其中,所述标识符至少在各自与符合所接收到的数据包的多个匹配规则相对应的多个处理规则之间是唯一的。根据权利要求1至4中任一项所述的通信系统,其中,所述标识符在统计上是唯一的。根据权利要求1至6中任一项所述的通信系统,其中,所述节点通过检查存储了所接收到的数据包的标识符的额外头部是否被添加到所接收到的数据包,来确定所接收到的数据包是否包括所述标识符。根据权利要求1至6中任一项所述的通信系统,其中,所述节点通过检查所接收到的数据包的标识符是否被存储在所接收到的数据包的预定字段中,来确定所接收到的数据包是否包括所述标识符。根据权利要求1至6和8中任一项所述的通信系统,其中,所述控制设备控制每个所述节点,使得位于数据包转发路径开始处的节点利用包括标识符的信息来替换所接收到的数据包的预定字段中的信息,然后转发所述数据包;以及位于所述转发路径末尾处的节点将所接收到的数据包的预定字段中的信息恢复为所述替换之前的内容,然后转发所述数据包。根据权利要求1至9中任一项所述的通信系统,其中,所述控制设备在设置在数据包转发路径上的节点中的处理规则中设置不同的标识符,并且控制每个所述节点,使得所述转发路径上的节点顺序地将所接收到的数据包的标识符重写为下一跳节点的标识符。根据权利要求1至7和10中任一项所述的通信系统,其中,所述控制设备控制每个所述节点,使得位于数据包转发路径开始处的节点将包括标识符的额外头部添加到所接收到的数据包,然后转发所述数据包;以及位于所述转发路径末尾处的节点移除所述额外头部,然后转发所述数据包。根据权利要求7或11所述的通信系统,其中,所述额外头部存储多个标识符,每个标识符用于数据包转发路径上的一个节点中的确定。一种节点,该节点保存与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理;以及根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行。一种控制设备,该控制设备生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理,生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行;以及在布置在通信系统中的节点中设置所述处理规则和所述标识符以处理接收到的数据包。一种通信方法,包括以下步骤:保存与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理;以及根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行。一种通信方法,包括以下步骤:生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理;生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行;以及在布置在通信系统中的节点中设置所述处理规则和所述标识符以处理接收到的数据包。一种程序,所述程序使得设于通信系统中的处理接收到的数据包的节点以执行以下处理:存储与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理;以及根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收的数据包的处理,其中所述处理规则与符合所接收到的数据包的匹配规则相对应,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行。一种程序,所述程序使得设于通信系统中的控制设备控制处理接收到的数据包的节点执行以下处理:生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理;生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则而被执行;以及在所述节点中设置所述处理规则和所述标识符。

说明书

说明书通信系统、节点、控制设备、通信方法以及程序
技术领域
(相关申请的描述)
本发明要求日本专利申请2010‑123054(于2010年5月28日提交)的优先权,该专利申请的全部内容因此被通过引用结合到本说明书中。
本发明涉及通信系统、节点、控制设备、通信方法以及程序,并且更具体地涉及用于通过经由布置于网络上的节点来转发数据包而执行通信的通信系统、节点、控制设备、通信方法以及程序。
背景技术
近来,提出了被称作OpenFlow的技术,如在非专利文献1和2中描述。OpenFlow将通信识别为端到端流并且执行路径控制、故障恢复、负载均衡以及在每个流基础上的优化。充当转发节点的OpenFlow交换机具有用于与OpenFlow控制器通信的安全信道,并且根据流表来操作,其中信息被添加到该流表并且其内容根据来自OpenFlow控制器的指令按需被重写。在流表中,对于每个流定义了以下三个的集合:匹配规则(FlowKey/匹配键),根据匹配规则来匹配数据包头部;定义处理内容的动作(Action);以及流统计信息(Stats)(参见图30)。
图31示出了在非专利文献2中定义的动作名称和动作的内容的示例。OUTPUT为用于将数据包输出到规定端口(接口)的动作。SET_VLAN_VID_to_SET_TP_DST为用于修改数据包头部的字段的动作。
例如,当接收到第一个数据包时,OpenFlow交换机搜索流表以得到具有匹配所接收到的数据包的头部信息的匹配规则(FlowKey)的条目。如果匹配所接收到的数据包的条目作为搜索结果而被找到,则OpenFlow交换机对所接收到的数据包执行在该条目的Actions字段中描述的处理内容。另一方面,如果匹配所接收到的数据包的条目并未作为搜索结果而被找到,则OpenFlow交换机经由安全信道将所接收到的数据包转发到OpenFlow控制器,请求OpenFlow控制器基于所接收到的数据包的传输源/目的地来确定数据包路径,接收用于该数据包路径的流条目,以及更新流表。
引用列表
专利文献
[非专利文献1]
Nick McKeown和7个其他作者,“OpenFlow:Enabling Innovation inCampus Networks”,[在线],[2010年2月26日搜索],因特网<URL:http://www.openflowswitch.org//documents/openflow‑wp‑latest.pdf>
[非专利文献2]
“Openflow Switch Specification”版本1.0.0.(线路协议0x01)[2010年4月1日搜索],因特网<URL:http:∥www.openflowswitch.org/documents/openflow‑spec‑v1.0.0.pdf>
发明内容
技术问题
上文给出的非专利文献的公开因此被通过引用结合到本说明书中。
由本发明者给出以下分析。接收用于确定所接收到的数据包(参见在图33中的s2Packet‑In)的路径的上述请求的OpenFlow控制器确定所接收到的数据包的转发路径。为了向主机(B)转发所接收到的数据包和属于相同流的随后的数据包,必须在转发路径上的所有OpenFlow交换机(在图33中的节点#1和节点#2)中设置流条目。此外,基于来自网络管理员的指令,OpenFlow控制器必须有时改变已经设置的流条目的动作并且,在这种情况下,必须改变或者删除该流条目。
当经由OpenFlow协议(参见非专利文献2中的“4.6Flow TableModification Messages”)来设置、改变或者删除上文所述的流条目时,有时在OpenFlow控制器与OpenFlow交换机之间产生通信延迟。而此延迟会造成在OpenFlow交换机的某些中设置、改变或者删除流条目的延迟。因此,在该路径上的OpenFlow交换机中,数据包匹配流表中的非计划流条目有将执行非计划动作的问题。
图32为示出示例的图,其中,当OpenFlow交换机(节点#1)接收要从主机(A)发送到主机(B)的数据包并且请求控制器创建流条目时,在中继交换机(节点#2)中设置具有匹配键X的流条目时造成延迟。在图32中的示例中,节点#2具有含有匹配键B的流条目,该匹配键B与要设置的流条目的匹配键X相冲突(在OpenFlow协议中,允许与任何头部字段的部分匹配作为匹配键,并且根据流条目搜索次序来控制在流条目之间的冲突避免)。因此,在节点#2中,在完成流条目设置之前从主机(A)发送的数据包未被发送到该数据包应该被发送到的端口#2,而被发送到端口#1(图32中的ST8)。以此方式,当使用OpenFlow协议时,可能由于流条目的设置延迟的原因容易造成非计划的转发路径(动作执行)。
在图33中示出了解决这个问题的一个可能的方法。即,(OpenFlow)控制器将流条目发送到节点#1和#2(参见由图33中的s3和s6所指示的FlowMod(Add))并且同时,发送由OpenFlow协议所定义的BarrierRequest(对于Barrier Request,参见在非专利文献2中的“5.3.7BarrierMessage”;由图33中的s4所指示的Barrier Request/Reply)。当接收到Barrier Request请求时,节点完成在接收到该Barrier Request之前已经接收到的处理的执行,并且以“Barrier Reply”来响应(图33中的s5)。此响应允许(OpenFlow)控制器确认已经正确地设置了流条目。此方法的问题在于(OpenFlow)控制器必须与其中设置了流条目的所有节点交换BarrierRequest/Reply,因此增加了在能够发送用户数据包之前的时间(图33中的s1(用户数据包)‑s10(用户数据包))。
另一方法将使用Stats Request/Reply代替上文所述的BarrierRequest/Reply来检查每个节点是否具有相对应的条目。与其中使用了Barrier Request/Reply的方法一样,此方法也要求与其中设置了流条目的所有节点交换消息,以检查是否正确地设置了流条目,因此增加了在能够发送用户数据包之前的时间(图33中的s1(用户数据包)‑s10(用户数据包))。
此外,如果在设置了流条目之后由于节点故障而丢失某些流条目,则其中使用Barrier Request/Reply的方法和其中使用Stats Request/Reply的方法两者都不能够避免非计划动作的执行。
鉴于前文的描述,本发明的目的是提供一种通信系统、节点、控制设备、通信方法以及程序,以用于防止诸如上文所述的那些不正确的处理规则(流条目)在节点中命中并且执行非计划处理的问题。
问题的解决方案
根据本发明的第一方面,提供了一种通信系统,包括:节点,处理所接收到的数据包;以及控制设备,设置节点中的处理规则,该处理规则定义匹配规则和对符合该匹配规则的数据包的处理,其中,该节点保存与处理规则相关联的标识符,并且根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,其中该处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行。
根据本发明的第二方面,提供一种了节点,该节点:保存与标识符相关联的处理规则,处理规则定义匹配规则和对符合匹配规则的数据包的处理;并且根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行。
根据本发明的第三方面,提供一种控制设备,该控制设备生成定义匹配规则和对符合该匹配规则的数据包的处理的处理规则,生成与该处理规则相关联并且允许节点确定是否执行对所接收到的数据包的处理的标识符,所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行;并且在布置于通信系统中的节点中设置处理规则和标识符以处理接收到的数据包。
根据本发明的第四方面,提供一种通信方法,包括以下步骤:保存与标识符相关联的处理规则,该处理规则定义匹配规则和对符合该匹配规则的数据包的处理;并且根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行。此方法被与处理所接收到的数据包的、称作节点的特定机器结合。
根据本发明的第五方面,提供一种通信方法,包括以下步骤:生成处理规则,该处理规则定义匹配规则和对符合匹配规则的数据包的处理;生成标识符,该标识符与处理规则相关联且允许节点确定是否执行对所接收到的数据包的处理,其中所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行;以及在布置于通信系统中的节点中设置处理规则和标识符以处理接收到的数据包。此方法被与在处理接收到的数据包的节点中设置处理规则的、被称作控制设备的特定机器相结合。
根据本发明的第六方面,提供了一种使得设于通信系统中的处理接收到的数据包的节点执行以下处理的程序:存储与标识符相关联的处理规则,该处理规则定义匹配规则和对符合匹配规则的数据包的处理;以及根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,其中处理规则与符合所接收到的数据包的匹配规则相对应,并且处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行。此程序可以被记录在计算机可读记录介质上。即,本发明可被具体化为计算机程序产品。
根据本发明的第七方面,提供一种使得设于通信系统中的控制设备控制处理接收到的数据包的节点执行以下处理的程序:生成处理规则,该处理规则定义匹配规则和对符合匹配规则的数据包的处理;生成标识符,该标识符与处理规则相关联且允许节点确定是否执行对所接收到的数据包的处理,其中该处理根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行;以及在节点中设置处理规则和标识符。此程序可以被记录在计算机可读记录介质上。即,本发明可被具体化为计算机程序产品。
本发明的有利效果
根据本发明,可防止在布置在数据转发网络中的节点中执行非计划处理。
附图说明
图1为示出了本发明的略图的图。
图2为示出了本发明的略图的另一图。
图3为示出了本发明的第一示例性实施例中的通信系统的配置的图。
图4为在发明的第一示例性实施例中的控制设备(控制器)的配置的框图。
图5为示出了图4中所示的控制设备(控制器)的流条目DB中保存的信息的图。
图6为示出了图4中所示的控制设备(控制器)的验证信息DB中保存的信息的图。
图7为示出了本发明的第一示例性实施例中的节点的配置的框图。
图8为示出了在图7中所示的节点的流表中保存的信息的图。
图9为示出了包括验证信息(或向其添加了验证信息)的数据包的示例的图。
图10为示出了图9中所示的添加了验证信息的额外头部的配置的示例的图。
图11为本发明的第一示例性实施例中的控制设备(控制器)的操作的流程图。
图12为本发明的第一示例性实施例中的(一个或多个)节点的操作的流程图。
图13为示出了本发明的第一示例性实施例中的通信系统中的流的系列的参考图。
图14为示出了本发明的第一示例性实施例中的通信系统中的流的序列的顺序图。
图15为示出了在本发明的第二示例性实施例中的控制设备(控制器)的流条目DB中保存的信息的图。
图16为示出了在本发明的第二示例性实施例中的控制设备(控制器)的验证信息DB中保存的信息的框图。
图17为示出了本发明的第二示例性实施例中的节点的配置的框图。
图18为示出了图17中所示的节点的流表中保存的信息的图。
图19为示出了其中包括(嵌入)验证信息的数据包的示例的图。
图20为示出了本发明的第二示例性实施例中的控制设备(控制器)的操作的流程图。
图21为示出了本发明的第二示例性实施例中的节点的操作的流程图。
图22为示出了在本发明的第三示例性实施例中的控制设备(控制器)的流条目DB中保存的信息的图。
图23为示出了在本发明的第三示例性实施例中的控制设备(控制器)的验证信息DB中保存的信息的图。
图24为示出了在本发明的第三示例性实施例中的节点的流表中保存的信息的图。
图25为示出了在本发明的第四示例性实施例中的控制设备(控制器)的流条目DB中保存的信息的图。
图26为示出了在本发明的第四示例性实施例中的控制设备(控制器)的验证信息DB中保存的信息的图。
图27为示出了在本发明的第四示例性实施例中的节点的流表中保存的信息的图。
图28为示出了在本发明的第五示例性实施例中使用的数据包的示例的图。
图29为示出了图28中添加了验证信息的额外头部的配置的示例的图。
图30为示出了在非专利文献2中描述的流条目的配置的图。
图31为示出了在非专利文献2中描述的动作名称和动作内容的图。
图32为在非专利文献2中描述的OpenFlow控制器(控制器)和流交换机(节点)的操作的图。
图33为示出了用于使用在非专利文献2中描述的OpenFlow协议来可靠地设置流条目的操作序列的参考图和顺序图。
具体实施方式
首先,下文描述了本发明的略图。注意,附加到本略图的附图标记仅仅是示例性的以帮助理解,而不旨在将本发明限制于图中所示出的实施方式。如图1中所示,当接收到数据包时,本发明的通信系统的节点10(参见图1中的节点#2)使用在设备自身中保存的处理规则中包括的匹配规则(匹配键)来提取符合所接收到的数据包的处理规则(步骤1)。接下来,节点10(参见图1中的节点#2)检查与所提取的处理规则相关联的标识符是否(是或否)和在所接收到的数据包中包括的标识符完全相同(步骤2)。尽管在上文的描述中节点10检查与处理规则相关联的标识符和在所接收到的数据包中包括的标识符完全相同,但是本发明不限于此方法。例如,本发明包括节点10检查与处理规则相关联的标识符对应于在所接收到的数据包中包括的标识符的情况。这也适用于随后的步骤和示例性实施例中。如果作为该检查的结果确认了与处理规则相关联的标识符匹配所接收到的数据包的标识符,则节点10(参见图1中的节点#2)根据处理规则来执行处理(步骤3)。
上文描述的标识符为由控制设备(控制器)20与处理规则相关联地生成的信息。生成并且和附加标识符使得能够识别可能符合所接收到的数据包的处理规则。因此,如果通过使用匹配规则(匹配键)的搜索来提取处理规则,但是标识符并不匹配所接收到的数据包的标识符,则不执行处理规则的动作。标识符被以各种方式包含在用户数据包中,例如,标识符被添加到如图1和图2中所示的用户数据包中,或者被嵌入在用户数据包的特定区域中(参见图19)。
即使当在本说明书中之前提到的条件发生时,例如,当处理规则的设置被延迟或者当流条目的一部分由于在节点中的错误而丢失时,上文所述的配置避免非计划动作执行。
在图1中的示例中,节点使用匹配规则(匹配键)来提取符合所接收到的数据包的处理规则,之后,检查与所提取的处理规则相关联的标识符是否匹配所接收到的数据包的标识符。作为其替代,如图2中所示的另一方法也是可能的,其中,节点使用标识符来提取符合所接收到的数据包的处理规则,并且之后,检查所提取的处理规则的匹配规则(匹配键)是否匹配所接收到的数据包的内容(要与匹配规则(匹配键)相比较的头部信息)。
在这种情况下,同样地,如果通过使用标识符的搜索提取了处理规则但是匹配规则(匹配键)并不匹配所接收到的数据包的内容(头部信息),则不执行处理规则的动作。如在图1中示出的配置中,例如,当延迟处理规则的设置时,该配置也避免非计划动作执行。
(第一示例性实施例)
接下来,将参照附图来详细地描述本发明的第一示例性实施例。图3为示出了本发明的第一示例性实施例中的通信系统的配置的图。参照图3,通信系统包括三个节点10、控制设备(控制器)20,以及经由节点10彼此通信的主机(A)和主机(B)。尽管在图3中的示例中示出了三个节点10、控制设备(控制器)20以及两个主机(主机(A)、主机(B)),但是可以使用任意多个节点、控制设备(控制器)以及主机。
图4为示出了控制设备(控制器)20的具体配置的图。参照图4,控制设备(控制器)20包括:流条目数据库(流条目DB)21,其存储处理规则(流条目)和与处理规则相关的验证信息;拓扑管理单元22,其基于经由节点通信单元26收集的、节点10的连接关系来构建网络拓扑信息;路径/动作计算单元23,其基于由拓扑管理单元22构建的网络拓扑信息来计算数据包转发路径和要由转发路径上的节点10执行的动作;流条目管理单元24,其建立由路径/动作计算单元23与验证信息生成单元28分别计算的处理规则(流条目)与验证信息之间的关联,将相关联的处理规则(流条目)和验证信息登记在流条目DB 21中,处理从节点10接收到的处理规则(流条目)添加请求,更新处理规则(流条目)和验证信息;控制消息处理单元25;与节点10通信的节点通信单元26;以及验证信息生成单元28,其响应于来自流条目管理单元24的请求,生成要与处理规则相关联的验证信息或者从验证信息数据库(验证信息DB)27中检索验证信息。验证信息指与用来验证所接收到的数据包与基于匹配规则的处理规则之间的比较结果(匹配与否)的标识符相对应的信息。
此外,控制消息处理单元25包括:消息分析/处理单元251,其分析从节点10接收到的控制消息并且执行必要的处理;以及消息生成单元252,其生成要发送到节点10的消息。
图5为示意性地示出了在流条目DB 21(流条目和验证信息)中保存的信息的图。例如,从图5的顶部起的第一至第三条目指示设置在其DPID(节点10的标识符:数据通道标识符)为1至3的节点中的处理规则(流条目)和与处理规则相关联的验证信息(从顶部起的第四至第六条目指示相似内容)。
当接收与匹配键“A”匹配的数据包时,DPID为1的节点(例如,图3中的节点#1)执行由自顶部起的第一条目所指示的处理。也就是说,节点将包括验证信息“CA”的头部添加到数据包,并且根据动作字段(Actions)从第九端口输出该数据包。类似地,当从DPID为1的节点(例如,图3中的节点#1)接收到与匹配键“A”匹配的数据包时,DPID为2的节点(例如,图3中的节点#2)从第六端口输出该数据包。当从DPID为2的节点(例如,图3中的节点#2)接收到与匹配键“A”匹配的数据包时,DPID为3的节点(例如,图3中的节点#3)从该数据包中移除包括验证信息“CA”的头部,并且从第一端口输出该数据包。作为上述处理的结果,在验证信息“CA”被用于匹配期间,控制转发路径使得验证信息“CA”被添加到与匹配键“A”匹配的数据包并且经由规定的路径来转发该数据包。在实际的流条目DB 21中,图5中示出的匹配键“A”、“B”以及“X”中的每一个由规则(FlowKey;可使用通配符)组成,该规则被与诸如图30中所示的接收到的数据包的头部进行比较。
图6为示意性地示出了在验证信息DB 27中保存的信息(验证信息)的图。如图6中所示,验证信息DB 27存储匹配键“A”、“B”、……、“X”与验证信息“CA”、“CB”、……“CX”之间的对应关系。验证信息生成单元28响应于来自流条目管理单元24的请求而生成与处理规则(流条目)相对应的验证信息,并且将所生成的验证信息登记在验证信息DB 27中。这样的验证信息可以由使用匹配规则(在下文中称为“匹配键”)或其它信息作为参数的预定函数(哈希函数等)来生成,由此使得验证信息至少在各个与符合所接收到的数据包的多个匹配规则相对应的多个处理规则之中是唯一的,也就是说,由此使得相同的验证信息至少未被分配给多个处理规则。在统计上唯一的验证信息也可以使用随机数生成(稍后将详细地描述示例)。被提供来防止在可能彼此冲突的多个处理规则(流条目)之中的验证信息的重复的验证信息DB 27无需总是具有图6中所示的格式。此外,通过随机地或统计地避免验证信息的重复可以省略验证信息DB 27。
注意,如果不需要保存控制设备(控制器)20命令节点10添加或者更新的处理规则(流条目)以及与该处理规则相关联的验证信息,则可以省略流条目DB 21。类似地,如果不需要保存与处理规则相关联地生成的验证信息,则可以省略验证信息DB 27。此外,其中流条目DB 21和/或验证信息DB 27被单独地提供在外部服务器中的另一配置也是可能的。
上文描述的控制设备(控制器)20可通过将至少以下两个添加到在非专利文献1和2中描述的OpenFlow控制器中来实施。一个为验证信息生成单元28,而另一个为在节点10中设置处理规则(流条目)和与该处理规则相关联的验证信息的功能。
图7为示出了节点10的具体配置的图。参照图7,节点10包括与控制设备(控制器)20通信的控制设备通信单元11、管理流表13的流表管理单元12、数据包缓冲区14以及转发处理单元15。注意,节点10无需总是包括数据包缓冲区14。
转发处理单元15包括表搜索单元153和动作执行单元154。表搜索单元153包括验证信息匹配单元152,其将与处理规则(流条目)相关联的验证信息与添加到所接收到数据包的验证信息相比较以确定它们是否匹配。表搜索单元153搜索流表13以获得处理规则(流条目),该处理规则具有符合所接收到的数据包的匹配键并且其验证信息匹配所接收到的数据包的验证信息,并且将处理内容(动作)输出到动作执行单元154。动作执行单元154执行从表搜索单元153输出的处理内容(动作)。
上文所述的节点10可通过向OpenFlow交换机添加验证信息匹配单元152并且通过配置流表13使得验证信息可以被与处理规则相关联地保存来实施。节点10的表(流条目)搜索单元153(其包括验证信息匹配单元152)可以通过由配置节点10的计算机所执行的程序来配置。
图8为示意性地示出了在图5中的DPID为2的节点(图3中节点#2)的流表13中保存的信息(流条目和验证信息)的图。如图8中所示,流表13包括流条目和验证信息,其和图5中的具有相对应DPID的流条目DB 21中的条目的那些相同。对于图5中的DPID为1或3的节点(节点#1或#3)中的每一个,流表13以相同方式包括与每一个DPID相对应的流条目和验证信息。
图9为示出了基于由控制设备(控制器)20设置的动作(设置包括“CA”的头部;见图5中具有DPID=1的节点的动作(Actions))由节点10所创建的添加了验证信息的数据包的配置的图。在图9中的示例中,添加了验证信息的数据包32具有下面这样的配置,其中包括验证信息的添加了验证信息的额外头部33被添加到用户数据包31的开始处。
图10为示出了添加了验证信息的额外头部33的配置的示例的图。在图10中的示例中,添加了验证信息的额外头部33具有下面这样的配置,其中验证信息被添加到MAC目的地地址(MAC DA)、MAC源地址(MACSA)、更高层协议类型(Ether Type)以及总头部长度(总长度)。在图10中的示例中,通过以匹配键和随机数作为参数的预定函数(哈希函数等)计算的值(f(匹配键,随机数))被用作验证信息。
接下来,描述上文所述的控制设备(控制器)20和节点10的操作。图11为示出了控制设备(控制器)20的流程图。参照图11,当从节点10接收查询(处理规则创建请求;见图12中的步骤S 111)时(步骤S001;Packet‑In),控制设备(控制器)20检查查询数据包是否包括验证信息(步骤S002)。如果查询数据包包括验证信息(在步骤S002为是),则已经创建与数据包相对应的处理规则,并且因此控制设备(控制器)20从流条目DB21中检索与数据包相对应的处理规则和与处理规则相关联的验证信息(步骤S012),并且将控制转到步骤S008。
另一方面,如果查询数据包不包括验证信息(在步骤S002为否),则控制设备(控制器)20获取由拓扑管理单元22构建的网络拓扑信息并且计算数据包的转发路径(步骤S003)。
除了当从数据包转发路径计算的结果确定因为转发路径不能被创建或者因为路径上的节点已经失效而不能够转发数据包时(在步骤S004中为否)之外,控制设备(控制器)20计算与所计算的转发路径相对应的动作(步骤S005)。接下来,控制设备(控制器)20生成与应用于路径上的节点10中每一个的处理规则(流条目)相关联的验证信息(步骤S006)。此外,控制设备(控制器)20生成应用于路径上的节点10中每一个的处理规则(流条目),其中处理规则(流条目)包括用于标识查询数据包所属于的流的匹配键和动作(步骤S007)。
当完成处理规则(流条目)和验证信息的获取或生成时,控制设备(控制器)20生成用于设置所生成的处理规则(流条目)和验证信息的设置指令(Flow Mod(Add))(步骤S008),并且将用于设置处理规则(流条目)和验证信息的设置指令(Flow Mod(Add))发送到由处理规则(流条目)创建的数据数据包转发路径上的节点10(步骤S009)。
之后,如果节点10还未缓冲数据包(在步骤S010为否),控制设备(控制器)20发送数据包输出指令(Packet‑Out)(步骤S011)。此数据包输出指令通过规定要输出的数据包(在步骤S001中由Packet‑In所接收到的数据包)和要对该数据包执行的动作(添加验证信息和从规定端口输出数据包),或者通过规定要输出的数据包(在步骤S001中由Packet‑In所接收到的数据包)和要对数据包执行的动作(搜索流表)来执行。注意,如果节点10已经缓冲了数据包(在步骤S010为是),则如将稍后描述的那样控制设备(控制器)20能够使节点10输出数据包,并且因此,控制设备(控制器)20省略该处理。
图12为示出节点10的操作的流程图。参照图12,当从主机或另一节点10接收到数据包时(步骤S101),节点10搜索流表13以得到具有符合所接收到的数据包的匹配键的处理规则(流条目)(步骤S102)。
如果在步骤S102中提取了处理规则(流条目)(在步骤S103为是),则节点10检查所接收到的数据包是否包括验证信息(步骤S104)。在此示例性实施例中,节点10检查所接收到的数据包是否具有额外头部以查看是否包括验证信息。
如果所接收到的数据包不包括验证信息,则节点10执行在所提取的处理规则(流条目)中描述的动作(步骤S107)。
另一方面,如果在步骤S104中确定所接收到的数据包包括验证信息,则节点10将在所接收到的数据包中包括的验证信息与和所提取的处理规则(流条目)相关联的验证信息相比较(步骤S105)。
如果两条验证信息匹配,则节点10执行在提取的处理规则(流条目)中描述的动作(步骤S107)。也就是说,为了对包括验证信息的数据包执行动作,要求在使用匹配键的搜索期间找到匹配处理规则(流条目),并且要求与该处理规则(流条目)相关联的验证信息与在所接收的数据包中包括的验证信息匹配。
另一方面,如果在步骤S103未找到符合所接收到的数据包的处理规则(流条目)或者如果找到符合所接收到的数据包的处理规则(流条目)但两条验证信息不匹配,则节点10将控制转到步骤S111而不执行在所提取的处理规则(流条目)中描述的动作,并且将查询发送给控制设备(控制器)20(创建并且发送与所接收到的数据包相对应的处理规则(流条目)和验证信息的请求)。
在步骤S111中,节点10将所接收到数据包保存在数据包缓冲器14中,并且同时,将所接收到的数据包发送给控制设备(控制器)20以请求其创建处理规则和验证信息。之后,响应于此请求,控制设备(控制器)20根据图11中示出的过程来创建并且设置处理规则和验证信息。
当从控制设备(控制器)20接收到设置处理规则(流条目)和验证信息的设置指令(Flow Mod(Add)))时,节点10根据Flow Mod(Add)在其自身的流表13中设置处理规则(流条目)和与处理规则相关联的验证信息(步骤S112)。
接下来,节点10检查所接收到的数据包是否被保存在数据包缓冲区14中(步骤S113)。如果保存了所接收到的数据包(在步骤S113为是),则节点10读取所接收到的数据包(步骤S114)并且执行已经由如上文所述设置的处理规则(流条目)所定义的处理内容(动作;添加验证信息并且从规定端口输出所接收到的数据包)(步骤S107)。这使所接收到的数据包被转发到下一跳节点。
另一方面,如果节点10不保存用户数据包,例如,当节点不具有数据包缓冲区14时(在步骤S113为否),则节点10从控制设备(控制器20)接收数据包输出指令(Packet‑Out)(步骤S116)。
如果提供了数据包缓冲区14,则已经接收到数据包输出指令(Packet‑Out)的节点10检查数据包是否被保存在缓冲区14中(步骤S117)。如果保存了数据包(在步骤S117为是),则节点10读取数据包(步骤S118)并且执行与数据包输出指令(Packet‑Out)一起接收的处理内容(动作;在这种情况下,添加验证信息到所接收到的数据包,从规定端口输出所接收到的数据包,或者搜索流表)(步骤S107)。如果未保存数据包(在步骤S117为否),则对于与数据包输出指令(Packet‑Out)一起接受的数据包,节点10执行与数据包输出指令(Packet‑Out)一起接收的处理内容(动作;在此情况下,添加验证信息到所接收到的数据包,并且从规定端口输出数据包,或者搜索流表)(步骤S107)。这使所接收到的数据包被转发到下一跳节点。
图13和图14为示出已经接收到要从主机(A)发送到主机(B)的数据包的节点#1向控制设备(控制器)20发送查询(创建处理规则和验证信息的请求)的时间点直到数据包被传递到主机(B)的时间点为止的流的序列的参考图和顺序图。
如图13和图14中所示,当主机(A)将要发送到主机(B)的用户数据包发送到节点#1时(ST1;图13和图14中的用户数据包),节点#1在流表13中搜索(流条目)并且因此,确定数据包为不具有匹配所接收到的数据包的处理规则(流条目)的未知数据包(在图12中的步骤S103为否)。节点#1将查询(创建处理规则(流条目)和验证信息的请求)发送给控制设备(控制器)20(ST2;图13和图14中的Packet‑In)。
当接收到查询(创建处理规则(流条目)和验证信息的请求)时,控制设备(控制器)20根据图11中的流程图来创建要在此数据包的转发路径上的节点#1至节点#3中设置的处理规则(流条目)和验证信息(CA),并且将它们发送到节点#1‑#3(ST3‑1至ST5‑1;图13和图14中的Flow Mod(Add)w/CA)。
节点#1‑#3中的每一个将从控制设备(控制器)20发送的处理规则(流条目)和验证信息(CA)添加到其自身设备的流表13,并且如果添加了缓冲区ID,则对数据包执行动作(图13和图14中的ST3‑2至ST5‑2)。在下文的描述中,假定在图13和图14中的ST4‑1中发送的处理规则(流条目)和验证信息(CA)由于某些原因未到达节点#2,并且因此处理规则(流条目)和验证信息(CA)未被添加到节点#2的流表13。
并且然后,节点#1生成添加了包括验证信息(CA)的额外头部的用户数据包(参见图9),并且根据在ST3‑1中接收到的处理规则中包括的动作(参见与DPID=1、匹配键=A以及验证信息=CA相对应的图5中的条目中的动作(Actions))从规定端口(连接到节点#2的端口)输出所生成的数据包(图13和图14中的ST6)。
当接收到添加了包括验证信息(CA)的额外头部的用户数据包时,节点#2在流表13中进行搜索,并且因此确定不存在匹配所接收到的数据包的处理规则(流条目)或存在匹配所接收到的数据包的处理规则(流条目)但验证信息并不匹配所接收到的数据包的验证信息(在图12中在步骤S103为否,或在步骤S106为否)。节点#2将查询(创建处理规则(流条目)和验证信息的请求)发送到控制设备(控制器)20(ST8;图13和图14中Packet‑In)。
当接收到查询(创建处理规则(流条目)和验证信息的请求)时,控制设备(控制器)20获取要在该数据包的路径上的节点#2中设置的处理规则(流条目)和验证信息(CA)(图11中的步骤S012),并且根据图11中的流程图将它们发送到节点#2(ST9;图13和图14中的Flow Mod(Add)w/CA)。
节点#2将从控制设备(控制器)20发送的处理规则(流条目)和验证信息添加到其自己的设备的流表13,并且如果添加了缓冲区ID,则执行动作(图13和图14中的ST10)。
并且然后,节点#2根据在ST10中所接收到的处理规则中的动作(参见图5中的与DPID=2、匹配键=A以及验证信息=CA相对应的条目中的动作(Actions))从规定端口(连接到节点#3的端口)输出添加了包括验证信息(CA)的额外头部的用户数据包(图13和图14中的ST11)。
当接收到添加了包括验证信息(CA)的额外头部的用户数据包时,节点#3在流表13中进行搜索,并且因此确定处理规则(流条目)中的一个符合所接收到的数据包并且验证信息也匹配所接收到的数据包的验证信息(在图12中在步骤S103为是并且在步骤106中为是),并执行在所提取的和所确认的处理规则中定义的动作(图13和图14中的ST12)。
更具体而言,节点#3从用户数据包移除包括验证信息(CA)的额外头部,并且根据在ST12中提取的和确认的处理规则(流条目)中的动作(参见图5中的与DPID=3、匹配键=A以及验证信息=CA相对应的条目中的动作(Actions))从规定端口(连接到主机(B)的端口)输出该数据包(图13和图14中的ST13)。
如上文所述,在不仅处理规则(流条目)的匹配键匹配所接收到的数据包的头部信息而且由控制设备(控制器)20单独地生成的验证信息也匹配所接收到的数据包的验证信息的条件下,在此示例性实施例中执行动作。因此,此示例性实施例可以避免在本说明书的开始处所述的条件,其中执行了在处理规则(流条目)中规定的非计划动作。
在此示例性实施例中,如果在步骤S104中确定验证信息未被包括在所接收到的数据包中,则在没有比较验证信息、考虑无需向其添加验证信息的数据包的情况下执行动作。作为其替代,如果验证信息未被包括在所接收到的数据包中,也能够总是防止动作的执行。
(第二示例性实施例)
接下来,将参照附图来详细地描述本发明的第二示例性实施例。尽管在上文所述的本发明的第一示例性实施例中使用包括验证信息的额外头部将验证信息添加到数据包,但是还可以在不使用额外头部的情况下在数据包中包括验证信息。下文描述了第二示例性实施例,其中验证信息被包括在数据包中而不使用额外头部。因为第二示例性实施例中节点10和控制设备(控制器)20的基本配置与第一示例性实施例中的节点10和控制设备(控制器)20的基本配置类似,所以下文以差异为重点来描述配置。
图15为示意性地示出了在此示例性实施例中的控制设备(控制器)20的流条目DB 21中保存的信息(流条目)的图。此示例性实施例与第一示例性实施例不同在于独立验证信息字段未被包括在流条目DB 21中,而是包括验证信息(CA)的匹配键被存储在流条目的匹配键字段中,以及在于用于将验证信息写入(或者恢复)到MAC DA字段中的处理被定义为动作(更严格地,利用值Dn’(参见图19)来替换MAC DA字段并且恢复MACDA字段)。在下文的描述中,原始MAC DA字段的值被指示为“Dn”,而被转换为包括验证信息(CA)的MAC DA字段的值被指示为“Dn’”。
例如,当接收到与匹配键“A”匹配的数据包时,图15中的DPID为1的节点(例如,图3中的节点#1)根据动作字段(Actions)将包括验证信息(CA)的值D1’设置在数据包的MAC DA字段,并且然后从第九端口输出数据包。当从DPID为1的节点(例如,图3中的节点#1)接收到MAC DA字段包括验证信息(CA)的数据包(与匹配键A’匹配的数据包)时,DPID为2的节点(例如,图3中的节点#2)将数据包从第六端口输出。当从DPID为2的节点(例如,图3中的节点#2)接收到MAC DA字段包括验证信息(CA)的数据包(与匹配键A’匹配的数据包)时,DPID为3的节点(例如,图3中的节点#3)将MAC DA字段恢复为和原始接收到的数据包的MAC DA的字段相同的内容(D1),并且从第一端口输出数据包。作为上文处理的结果,在验证信息“CA”被用于匹配期间,控制转发路径使得验证信息“CA”由转发路径上的第一跳节点来添加并且数据包经由规定路径来转发。
图16为示意性地示出了在此示例性实施例中的控制设备(控制器)20的验证信息DB 27中保存的信息(验证信息)的图。该信息不同于第一示例性实施例中的信息在于添加了用于将MAC DA字段恢复为和原始接收的数据包的MAC DA的那些相同的内容的原始MAC DA字段的内容(与图15中的D1、D2以及DX相对应)以及用于执行该恢复处理的最后跳的节点数量。
图17为示出了此示例性实施例中的节点10a的具体配置的图。该配置不同于示出第一示例性实施例中的节点10的配置的图7中的配置,在于验证信息匹配单元152a、表搜索单元153a以及转发处理单元15a替换对应的单元,因为验证信息以及验证信息匹配单元152a的比较操作在两个示例性实施例之间不同(将稍后描述细节)。
图18为示意性地示出了在图15中的DPID为2的节点(图3中的节点#2)的流表13中保存的信息(流条目)的图。如图18中所示,从图15中的流条目DB 21中检索的对应的DPID的流条目被设置在流表13中。在图15中的DPID为1和3的节点(图3中的节点#1和#3)中,类似地设置了与DPID中的每一个相对应的流条目。
图19为示出由节点10基于由控制设备(控制器)20设置的动作(将MAC DA设置为D1’;参见图15中的节点为DPID=1的节点的动作(Actions))来重写的数据包的配置的图。在图19中的示例中,添加了验证信息的数据包32a具有下面这样的配置,其中在图19的底部示出的48比特信息被写入在用户数据包31的MAC DA字段中。尽管包括指示验证信息的8比特固定数据,但是函数f1(最后跳节点的DPID,原始MAC DA)和函数f2(匹配键,随机数)被写入在图19中的示例中,此配置仅仅是示例性的。可以根据需来改变用于存储验证信息的字段、验证信息的内容以及用于减少原始数据的函数。
接下来,描述此示例性实施例的操作。图20为在本发明的第二示例性实施例中的控制设备(控制器)的操作的流程图。在此图中示出的操作不同于示出了第一示例性实施例中的控制设备(控制器)的图11的操作在于,当控制设备在步骤S002a中检查验证信息是否被包括在查询数据包中时,控制设备并非检查额外头部,而是检查上述固定数据(参见图19)是否写入在MAC DA中。其它步骤类似于第一示例性实施例中的那些步骤,并且因此在这里省略描述。
图21为示出了本发明的第二示例性实施例中的节点10a操作的流程图。该操作不同于示出第一示例性实施例中的节点10的操作的图12中的操作在于,当节点在步骤S104a中检查验证信息是否被包括在所接收的数据包中时,节点并非检查额外头部,而是检查上述固定数据(参见图19)是否被写入在MAC DA中,并且还在于最后跳节点不删除额外头部而是根据转发数据包之前的动作来恢复原始MAC DA。其它步骤类似于第一示例性实施例中的那些步骤并且因此在这里省略描述。
如上文所述,可以以验证信息被包括在现有数据包的特定字段中的模式来实现本发明。
(第三示例性实施例)
接下来,将参照附图来详细地描述本发明的第三示例性实施例。尽管在本发明的第一示例性实施例中通过将验证信息与流表的流条目相关联而将相同验证信息存储在节点中,但是其中节点使用不同的验证信息来进行比较的另一配置也是可能的。下文描述了第三示例性实施例,其中节点使用不同的验证信息来进行比较。因为第三示例性实施例中节点10和控制设备(控制器)20的基本配置与第一示例性实施例中的节点10和控制设备(控制器)20类似,所以下文以差异为重点来描述配置。
图22为示意性地示出了在此示例性实施例中的控制设备(控制器)20的流条目DB中保存的信息(流条目和验证信息)的图。与第一示例性实施例的不同之处在于对于每一个节点执行了用于每一个节点的验证信息的生成处理(图11中步骤S006)一次,并且在于代替在流条目DB 21中提供独立的验证信息字段,处理被添加到动作字段以用于添加包括不同验证信息的额外头部。(包括不同验证信息的头部被添加到每一个节点并且因此与流条目相关联的验证信息在流条目中描述。这意味着验证信息字段不是必需的,因为无需独立地维持验证信息与流条目之间的对应关系。)
例如,当接收到与匹配键“A1”匹配的数据包时,图22中的DPID为1的节点(例如,图3中的节点#1)将存储验证信息(C2A)的额外头部添加到所接收到的数据包,并且根据动作字段(Actions)从第九端口输出该数据包。同样地,当从DPID为1的节点(例如,图3中的节点#1)接收到添加了存储验证信息(C2A)的额外头部的数据包(与匹配键A2匹配的数据包)时,DPID为2的节点(例如,图3中的节点#2)将额外头部的验证信息(C2A)重写为验证信息(C3A),并且然后从第六端口输出该数据包。而且,当从DPID为2的节点(例如,图3中的节点#2)接收到添加了存储验证信息(C3A)的额外头部的数据包(与匹配键A3匹配的数据包)时,DPID为3的节点(例如,图3中的节点#3)从数据包中移除额外头部并且然后从第一端口输出该数据包。作为上文处理的结果,控制在规定路径上的转发路径使得数据包在转发路径上的第一跳节点处开始顺序地转发,在此期间验证信息被重写并且验证信息被用于匹配。
图23为示意性地示出了在此示例性实施例中的控制设备(控制器)20的验证信息DB 27中保存的信息(验证信息)的图。与第一示例性实施例的不同之处在于添加了DPID字段并且对于每一个节点存储了匹配键与验证信息之间的关系。注意,此配置仅仅是示例性的并且可以取决于用于生成验证信息的函数根据需要改变在验证信息DB 27中保存的信息。
图24为示意性地示出了在图22中的DPID为2的节点(图3中的节点#2)的流表13中保存的信息(流条目和验证信息)的图。如图24中所示,对应的DPID的流条目和验证信息被从图22中的流条目DB 21中检索并且设置在流表13中。对于图22中的DPID为1和3的节点(图3中节点#1或#3)中的每一个,分别设置了与DPID相对应的流条目和验证信息。
此示例性实施例不同于第一实施例仅在于控制设备为每一个节点生成验证信息并且在节点中执行的动作不同。基本操作和第一示例性实施例的操作相同并且因此省略描述(参见图11和图12)。
其中每一个节点根据在如上文所述的处理规则中包括的动作来重写验证信息的此示例性实施例不同于第一示例性实施例在于,具有不同匹配键的流条目可以被设置在用于一个通信流的路径上的节点中。
(第四示例性实施例)
接下来,将参照附图来详细地描述本发明的第四示例性实施例。在作为本发明的第二示例性实施例和第三示例性实施例的组合的本发明的第四示例性实施例中,不使用额外头部,并且每一个节点使用不同的验证信息来进行比较。因为第四示例性实施例中节点10和控制设备(控制器)20的基本配置与第一至第三示例性实施例中的节点10和控制设备(控制器)20的基本配置类似,所以下文以差异为重点来描述配置。
图25为示意性地示出了在此示例性实施例中的控制设备(控制器)20的流条目DB 21中保存的信息(流条目)的图。此示例性实施例不同于第三实施例在于,动作字段包括不是用于添加包括不同的验证信息的额外头部的处理,而是用于在每一个节点上将MAC DA字段的值重写为包括验证信息的值以及用于在最后跳恢复该值的处理。
例如,当接收与匹配键“A”匹配的数据包时,图25中的DPID为1的节点(例如,在图3中的节点#1)在数据包的MAC DA字段中设置包括验证信息(C2A))的值D1’,并且然后根据该动作字段(Actions)从第九端口输出该数据包。类似地,当从DPID为1的节点(例如,图3中的节点#1)接收到其MAC DA字段包括验证信息(C2A)的数据包(与匹配键A’匹配的数据包)时,DPID为2的节点(例如,图3中的节点#2)将数据包的MAC DA字段重写为包括验证信息(C3A)的值D1”,并且然后从第六端口输出数据包。当从DPID为2的节点(例如,图3中的节点#2)接收到其MAC DA字段包括验证信息(C3A)的数据包(与匹配键A”匹配的数据包)时,DPID为3的节点(例如,图3中的节点#3)将MAC DA字段恢复为和原始接收的数据包的MAC DA的字段相同的内容(D1)并且从第一端口输出数据包。作为上述处理的结果,控制在规定路径上的转发路径使得验证信息被顺序地重写并且该验证信息被用于转发路径的第一跳节点中的匹配。
图26为示意性地示出了在此示例性实施例中的控制设备(控制器)20的验证信息DB 27中保存的信息(验证信息)的图。该信息不同于第三示例性实施例中的信息在于,添加了用于将MAC DA字段恢复为和原始接收到的数据包(与图25中的D1、D2和DX相对应)的MAC DA相同的内容的的原始MAC DA字段的内容以及执行此恢复处理的最后跳的节点数量。注意,此配置仅仅是示例性的,并且在验证信息DB 27中保存的信息可取决于生成验证信息的函数根据需要而改变。
图27为示意性地示出了在图25中的DPID为2的节点(图3中的节点#2)的流表13中保存的信息(流条目)的图。如图27中所示,对应的DPID的流条目被从图25中的流条目DB 21中检索并且设置在流表13中。对于图25中的DPID为1和3的节点中的每一个(图3中节点#1或#3),分别设置了与DPID相对应的流条目。
此示例性实施例不同于第一实施例仅在于控制设备为每一个节点生成验证信息并且在节点中执行的动作不同。基本操作和第一示例性实施例的操作相同并且因此省略描述(参见图11和图12)。
其中每个节点根据在如上文所述的处理规则中包括的动作来重写验证信息的此示例性实施例不同于第二示例性实施例在于,具有不同匹配键的流条目可以被设置在用于一个通信流的路径上的节点中。
(第五示例性实施例)
接下来,将参照附图来详细地描述本发明的第五示例性实施例。尽管在上文所述的本发明的第三示例性实施例中仅一条验证信息被存储在额外头部中,但是下面这样的另一配置也是可能的:其中用于由转发路径上的节点进行比较的验证信息被存储在额外头部中,每个节点一个。在此配置中,当接收到添加了额外头部的数据包时,节点识别要由节点参考的验证信息以用于在比较操作中使用。下文描述了第五示例性实施例,其中多条验证信息可以被存储在额外头部中。因为第五示例性实施例中的节点10和控制设备(控制器)20的基本配置与上文所述第三示例性实施例中的节点10和控制设备(控制器)20的配置类似,所以下文以差异为重点来描述该配置。
图28为示出了在本发明的第五示例性实施例中使用的数据包的示例的图。在图28中的示例中,添加了验证信息的数据包32b具有下面这样的配置:其中,包括验证信息的添加了验证信息的额外头部33b的配置被添加到用户数据包31的开始处。
图29为示出了上文所述的添加了验证信息的额外头部33b的配置的示例的图。在图29中的示例中,添加了验证信息的额外头33b包括MAC目的地地址(MAC DA)、MAC源地址(MAC SA)、更高协议类型(EtherType)、总头部长度(Total Length)以及多组DPID和验证信息。在图29中的示例中,由使用每个节点的匹配键和随机数作为参数的预定函数(哈希函数等)计算的值(f(匹配键,随机数))被用作为验证信息。
此示例性实施例不同于第一实施例仅在于控制设备为每一个节点生成验证信息,并且每一个节点使用DPID来检索其自己的验证信息以及执行比较操作。基本操作和第一示例性实施例的操作相同并且因此省略描述(参见图11和图12)。
如上文所述,可通过下面的配置来实施本发明:其中添加了存储各个节点上的验证信息的额外头部。此实施例优于第三示例性实施例的优点在于每一个节点能够省略用于重写验证信息的处理。
虽然已经描述了本发明的优选示例性实施例,但是应当理解的是,本发明不限于上文所述的实施例,并且在不偏离本发明的基本技术概念的范围内可以添加另外的修改、替换以及调整。在上文所述的示例性实施例中的控制设备(控制器)20和20a可以由专用服务器来实现,并且节点10、10a以及10b可以由上文所述的OpenFlow交换机以及由在IP网络上的路由器或者MPLS网络上的MPLS(多协议标记交换)交换机来实现。此外,本发明适用于服务器整体地管理网络中节点的网络。
在上文所述的第五示例性实施例中,节点标识符(DPID)被包括在额外头部中,以允许每一个节点识别要在该设备中比较的验证信息。还能够使用下面这样的方法:以额外头部中的第一个或最后一个验证信息开始使用验证信息,并且使用标志(use‑flag)被设置为指示验证信息已经被使用;或者使用下面这样的方法:每一个节点从额外头部顺序地删除其用于比较的验证信息。
尽管在上文所述的示例性实施例中最后跳的节点移除额外头部,或者恢复MAC DA字段,但是主机执行此处理的另一配置也是可以的。
虽然在上述示例性实施例中描述了验证信息,也可以使用由控制器生成以允许唯一地标识流条目的信息,例如在非专利文献2中的FlowCookie。
尽管在上述示例性实施例中,控制设备20包括验证信息生成单元28,但是其中在每个节点中生成验证信息的配置也是可以的,如果每个节点10能够通过建立节点10之中或节点10与控制设备20之间的同步或者通过向每个节点10分配验证信息生成函数和其参数来创建验证信息。
最后,下文总结了本发明的优选实施方式。
(第一实施方式)
(参见上文第一方面中的通信系统)
(第二实施方式)
如在第一实施方式中所描述的通信系统,其中,
标识符被用来验证所接收的数据包与处理规则之间的匹配结果,该匹配结果基于匹配规则。
(第三实施方式)
如在第一实施方式或第二实施方式中所述的通信系统,其中,
节点通过比较(匹配)所接收的数据包与匹配规则来搜索与符合所接收的数据包的匹配规则相对应的处理规则,并且,如果所接收的数据包的标识符对应于与搜索到的处理规则相关联的标识符,则根据所述搜索到的处理规则来对接收到的数据包执行处理。
(第四实施方式)
如在第一实施方式或第二实施方式中所述的通信系统,其中,
节点搜索处理规则,该处理规则与所接收到的数据包的标识符相对应的标识符相关联,并且如果与处理规则相对应的匹配规则符合所接收到的数据包,则根据所搜索到的处理规则来对所接收到的数据包执行处理。
(第五实施方式)
根据第一实施方式至第四实施方式中任一实施方式所述的通信系统,其中,
标识符至少在各自与符合所接收到的数据包的多个匹配规则相对应的多个处理规则之间是唯一的。
(第六实施方式)
根据第一实施方式至第四实施方式中任一实施方式所述的通信系统,其中,
标识符在统计上是唯一的。
(第七实施方式)
根据第一实施方式至第六实施方式中任一实施方式所述的通信系统,其中,
节点通过检查其中存储了标识符的额外头部是否被添加到所接收到的数据包来确定所接收到的数据包是否包括所接收到数据包的标识符。
(第八实施方式)
根据第一实施方式至第六实施方式中任一实施方式所述的通信系统,其中,
节点通过检查标识符是否被存储在所接收到的数据包的预定字段中来确定所接收到的数据包是否包括所接收到数据包的标识符。
(第九实施方式)
根据第一实施方式至第六实施方式和第八实施方式中任一实施方式所述的通信系统,其中,
控制设备控制每个节点使得位于数据包转发路径开始处的节点利用包括标识符的信息来替换所接收到的数据包的预定字段中的信息,之后转发该数据包;以及
位于转发路径末尾处的节点将所接收到的数据包的预定字段中的信息恢复为替换之前的内容,之后转发该数据包。
(第十实施方式)
根据第一实施方式至第九实施方式中任一实施方式所述的通信系统,其中,
控制设备在被设置在数据包转发路径上的节点中的处理规则中设置不同的标识符,并且控制每个节点使得在转发路径上的节点顺序地将所接收到数据包的标识符重写为下一跳节点的标识符。
(第十一实施方式)
根据第一实施方式至第七实施方式和第十实施方式中任一实施方式所述的通信系统,其中,
控制设备控制每个节点使得位于数据包转发路径开始处的节点将包括标识符的额外头部添加到所接收到的数据包,之后转发该数据包;并且位于所述转发路径末尾处的节点移除所述额外头部,之后转发该数据包。
(第十二实施方式)
如在第七实施方式和第十一实施方式中任一实施方式所述的通信系统,其中,
所述额外头部存储多个标识符,每个标识符用于数据包转发路径上的一个节点中的确定。
(第十三实施方式)
(参见上文第二方面中的节点)
(第十四实施方式)
(参见在上文第三方面中的控制)
(第十五实施方式)
(参见在上文第四方面中的通信方法)
(第十六实施方式)
(参见在上文第五方面中的通信方法)
(第十七实施方式)
(参见上文第六方面中的程序)
(第十八实施方式)
(参见上文第七方面中的程序)
上文所述的第十三至第十八实施方式可以上文所述的第一实施方式相同的方式实施到第二至第十二实施方式内。
上文所给出的非专利文献的公开以引用的方式结合到本说明书中。在本发明的整个公开(包括权利要求)的范围内和基于基本技术概念,可改变和调整示例性实施例。在本发明的权利要求的范围内,可以多种方式来组合和选择各种公开的元件。即,显然,本发明包括可由本领域技术人员根据整个公开,包括权利要求和其技术概念可做出的各种修改和变化。
附图标记列表
10,10a,10b节点
11控制设备通信单元
12流表管理单元
13流表
14数据包缓冲区
15,15a转发处理单元
20控制设备
21流条目数据库(流条目DB)
22拓扑管理单元
23路径/动作计算单元
24流条目管理单元
25控制消息处理单元
26节点通信单元
27验证信息数据库(验证信息DB)
28验证信息生成单元
31用户数据包
32,32a,32b添加了验证信息的数据包
33,33b添加了验证信息的额外头部
152,152a验证信息匹配单元
153,153a表搜索单元
154动作执行单元
251消息分析/处理单元
252消息生成单元

通信系统、节点、控制设备、通信方法以及程序.pdf_第1页
第1页 / 共41页
通信系统、节点、控制设备、通信方法以及程序.pdf_第2页
第2页 / 共41页
通信系统、节点、控制设备、通信方法以及程序.pdf_第3页
第3页 / 共41页
点击查看更多>>
资源描述

《通信系统、节点、控制设备、通信方法以及程序.pdf》由会员分享,可在线阅读,更多相关《通信系统、节点、控制设备、通信方法以及程序.pdf(41页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102884769 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 4 7 6 9 A *CN102884769A* (21)申请号 201180022831.3 (22)申请日 2011.05.26 2010-123054 2010.05.28 JP H04L 12/771(2013.01) H04L 12/801(2013.01) H04L 29/06(2006.01) (71)申请人日本电气株式会社 地址日本东京都 (72)发明人千叶靖伸 (74)专利代理机构北京东方亿思知识产权代理 有限责任公司 11258 代理人李晓冬 (54) 发。

2、明名称 通信系统、节点、控制设备、通信方法以及程 序 (57) 摘要 本发明提供了一种防止非计划处理在数据转 发网络中布置的节点中被执行的配置,该非计划 处理可以由于设置处理规则(流条目)的延迟而造 成。一种通信系统包括:节点,其处理所接收到的 数据包;以及控制设备,其设置节点中的处理规 则,该处理规则规定比较规则和适于该比较规则 的数据包处理。该节点保存处理规则和与处理规 则相关联的标识符,并且根据所接收到的数据包 的标识符是否对应于与下述处理规则相关联的标 识符来确定是否对所接收到的数据包执行处理, 其中所述处理规则与适于所接收到的数据包的比 较规则相对应,并且所述处理根据与适于所接收 到。

3、的数据包的比较规则相对应的处理规则而被执 行。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.11.06 (86)PCT申请的申请数据 PCT/JP2011/062046 2011.05.26 (87)PCT申请的公布数据 WO2011/149003 JA 2011.12.01 (51)Int.Cl. 权利要求书3页 说明书18页 附图19页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 18 页 附图 19 页 1/3页 2 1.一种通信系统,包括: 节点,所述节点处理所接收到的数据包;以及 控制设备,该控制设备设置所述节点中的处理。

4、规则,所述处理规则定义匹配规则和对 符合所述匹配规则的数据包的处理,其中, 所述节点保存与所述处理规则相关联的标识符,并且根据所接收到的数据包的标识符 是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理, 其中所述处理规则与符合所接收到的数据包的匹配规则相对应,所述处理根据与符合所接 收到的数据包的所述匹配规则相对应的所述处理规则而被执行。 2.根据权利要求1所述的通信系统,其中 所述标识符被用来验证所接收到的数据包与所述处理规则之间的比较结果,所述比较 基于所述匹配规则。 3.根据权利要求1或2所述的通信系统,其中, 所述节点通过将所接收到的数据包与所述匹配规则相比。

5、较来搜索与符合所接收到的 数据包的匹配规则相对应的处理规则,并且在所接收到的数据包的标识符对应于与所搜索 到的处理规则相关联的标识符的情况下,根据所搜索到的处理规则来执行对所接收到的数 据包的处理。 4.根据权利要求1或2所述的通信系统,其中, 所述节点搜索与和所接收到的数据包的标识符相对应的标识符相关联的处理规则,并 且在与所述处理规则相对应的匹配规则符合所接收到的数据包的情况下,根据所搜索到的 处理规则来执行对所接收到的数据包的处理。 5.根据权利要求1至4中任一项所述的通信系统,其中, 所述标识符至少在各自与符合所接收到的数据包的多个匹配规则相对应的多个处理 规则之间是唯一的。 6.根据。

6、权利要求1至4中任一项所述的通信系统,其中, 所述标识符在统计上是唯一的。 7.根据权利要求1至6中任一项所述的通信系统,其中, 所述节点通过检查存储了所接收到的数据包的标识符的额外头部是否被添加到所接 收到的数据包,来确定所接收到的数据包是否包括所述标识符。 8.根据权利要求1至6中任一项所述的通信系统,其中, 所述节点通过检查所接收到的数据包的标识符是否被存储在所接收到的数据包的预 定字段中,来确定所接收到的数据包是否包括所述标识符。 9.根据权利要求1至6和8中任一项所述的通信系统,其中, 所述控制设备控制每个所述节点,使得位于数据包转发路径开始处的节点利用包括标 识符的信息来替换所接收。

7、到的数据包的预定字段中的信息,然后转发所述数据包;以及 位于所述转发路径末尾处的节点将所接收到的数据包的预定字段中的信息恢复为所 述替换之前的内容,然后转发所述数据包。 10.根据权利要求1至9中任一项所述的通信系统,其中, 所述控制设备在设置在数据包转发路径上的节点中的处理规则中设置不同的标识符, 并且控制每个所述节点,使得所述转发路径上的节点顺序地将所接收到的数据包的标识符 权 利 要 求 书CN 102884769 A 2/3页 3 重写为下一跳节点的标识符。 11.根据权利要求1至7和10中任一项所述的通信系统,其中, 所述控制设备控制每个所述节点,使得位于数据包转发路径开始处的节点将。

8、包括标识 符的额外头部添加到所接收到的数据包,然后转发所述数据包;以及 位于所述转发路径末尾处的节点移除所述额外头部,然后转发所述数据包。 12.根据权利要求7或11所述的通信系统,其中, 所述额外头部存储多个标识符,每个标识符用于数据包转发路径上的一个节点中的确 定。 13.一种节点,该节点 保存与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则 的数据包的处理;以及 根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定 是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规 则与符合所接收到的数据包的匹配规则相对应,并且所述处。

9、理根据与符合所接收到的数据 包的所述匹配规则相对应的所述处理规则而被执行。 14.一种控制设备,该控制设备 生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理, 生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到 的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处 理规则而被执行;以及 在布置在通信系统中的节点中设置所述处理规则和所述标识符以处理接收到的数据 包。 15.一种通信方法,包括以下步骤: 保存与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则 的数据包的处理;以及 根据所接收到的数据包的标。

10、识符是否对应于与下述处理规则相关联的标识符来确定 是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规 则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据 包的所述匹配规则相对应的所述处理规则而被执行。 16.一种通信方法,包括以下步骤: 生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理; 生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到 的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处 理规则而被执行;以及 在布置在通信系统中的节点中设置所述处理规则和所述标识。

11、符以处理接收到的数据 包。 17.一种程序,所述程序使得设于通信系统中的处理接收到的数据包的节点以执行以 下处理: 存储与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则 权 利 要 求 书CN 102884769 A 3/3页 4 的数据包的处理;以及 根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定 是否执行对所接收的数据包的处理,其中所述处理规则与符合所接收到的数据包的匹配规 则相对应,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则 而被执行。 18.一种程序,所述程序使得设于通信系统中的控制设备控制处理接收到的数据包的 。

12、节点执行以下处理: 生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理; 生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到 的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处 理规则而被执行;以及 在所述节点中设置所述处理规则和所述标识符。 权 利 要 求 书CN 102884769 A 1/18页 5 通信系统、 节点、 控制设备、 通信方法以及程序 技术领域 0001 (相关申请的描述) 0002 本发明要求日本专利申请2010-123054(于2010年5月28日提交)的优先权,该 专利申请的全部内容因此被通过引。

13、用结合到本说明书中。 0003 本发明涉及通信系统、节点、控制设备、通信方法以及程序,并且更具体地涉及用 于通过经由布置于网络上的节点来转发数据包而执行通信的通信系统、节点、控制设备、通 信方法以及程序。 背景技术 0004 近来,提出了被称作OpenFlow的技术,如在非专利文献1和2中描述。OpenFlow将 通信识别为端到端流并且执行路径控制、故障恢复、负载均衡以及在每个流基础上的优化。 充当转发节点的OpenFlow交换机具有用于与OpenFlow控制器通信的安全信道,并且根据 流表来操作,其中信息被添加到该流表并且其内容根据来自OpenFlow控制器的指令按需 被重写。在流表中,对于。

14、每个流定义了以下三个的集合:匹配规则(FlowKey/匹配键),根据 匹配规则来匹配数据包头部;定义处理内容的动作(Action);以及流统计信息(Stats)(参 见图30)。 0005 图31示出了在非专利文献2中定义的动作名称和动作的内容的示例。OUTPUT为 用于将数据包输出到规定端口(接口)的动作。SET_VLAN_VID_to_SET_TP_DST为用于修改 数据包头部的字段的动作。 0006 例如,当接收到第一个数据包时,OpenFlow交换机搜索流表以得到具有匹配所 接收到的数据包的头部信息的匹配规则(FlowKey)的条目。如果匹配所接收到的数据包 的条目作为搜索结果而被找到。

15、,则OpenFlow交换机对所接收到的数据包执行在该条目的 Actions字段中描述的处理内容。另一方面,如果匹配所接收到的数据包的条目并未作为搜 索结果而被找到,则OpenFlow交换机经由安全信道将所接收到的数据包转发到OpenFlow 控制器,请求OpenFlow控制器基于所接收到的数据包的传输源/目的地来确定数据包路 径,接收用于该数据包路径的流条目,以及更新流表。 0007 引用列表 0008 专利文献 0009 非专利文献1 0010 Nick McKeown和7个其他作者,“OpenFlow:Enabling Innovation inCampus Networks”,在线,20。

16、10年2月26日搜索,因特网URL:http:/www.openflowswitch. org/documents/openflow-wp-latest.pdf 0011 非专利文献2 0012 “Openflow Switch Specification”版本1.0.0.(线路协议0x01)2010 年4月1日搜索,因特网URL:http:www.openflowswitch.org/documents/ openflow-spec-v1.0.0.pdf 说 明 书CN 102884769 A 2/18页 6 发明内容 0013 技术问题 0014 上文给出的非专利文献的公开因此被通过引用结。

17、合到本说明书中。 0015 由本发明者给出以下分析。接收用于确定所接收到的数据包(参见在图33中的 s2Packet-In)的路径的上述请求的OpenFlow控制器确定所接收到的数据包的转发路径。 为了向主机(B)转发所接收到的数据包和属于相同流的随后的数据包,必须在转发路径上 的所有OpenFlow交换机(在图33中的节点#1和节点#2)中设置流条目。此外,基于来自 网络管理员的指令,OpenFlow控制器必须有时改变已经设置的流条目的动作并且,在这种 情况下,必须改变或者删除该流条目。 0016 当经由OpenFlow协议(参见非专利文献2中的“4.6Flow TableModificat。

18、ion Messages”)来设置、改变或者删除上文所述的流条目时,有时在OpenFlow控制器与 OpenFlow交换机之间产生通信延迟。而此延迟会造成在OpenFlow交换机的某些中设置、改 变或者删除流条目的延迟。因此,在该路径上的OpenFlow交换机中,数据包匹配流表中的 非计划流条目有将执行非计划动作的问题。 0017 图32为示出示例的图,其中,当OpenFlow交换机(节点#1)接收要从主机(A)发 送到主机(B)的数据包并且请求控制器创建流条目时,在中继交换机(节点#2)中设置具有 匹配键X的流条目时造成延迟。在图32中的示例中,节点#2具有含有匹配键B的流条目, 该匹配键B。

19、与要设置的流条目的匹配键X相冲突(在OpenFlow协议中,允许与任何头部字 段的部分匹配作为匹配键,并且根据流条目搜索次序来控制在流条目之间的冲突避免)。因 此,在节点#2中,在完成流条目设置之前从主机(A)发送的数据包未被发送到该数据包应 该被发送到的端口#2,而被发送到端口#1(图32中的ST8)。以此方式,当使用OpenFlow 协议时,可能由于流条目的设置延迟的原因容易造成非计划的转发路径(动作执行)。 0018 在图33中示出了解决这个问题的一个可能的方法。即,(OpenFlow)控制器将流条 目发送到节点#1和#2(参见由图33中的s3和s6所指示的FlowMod(Add)并且同。

20、时,发 送由OpenFlow协议所定义的BarrierRequest(对于Barrier Request,参见在非专利文献 2中的“5.3.7BarrierMessage”;由图33中的s4所指示的Barrier Request/Reply)。当 接收到Barrier Request请求时,节点完成在接收到该Barrier Request之前已经接收到 的处理的执行,并且以“Barrier Reply”来响应(图33中的s5)。此响应允许(OpenFlow) 控制器确认已经正确地设置了流条目。此方法的问题在于(OpenFlow)控制器必须与其中 设置了流条目的所有节点交换BarrierRequ。

21、est/Reply,因此增加了在能够发送用户数据包 之前的时间(图33中的s1(用户数据包)-s10(用户数据包)。 0019 另一方法将使用Stats Request/Reply代替上文所述的BarrierRequest/Reply 来检查每个节点是否具有相对应的条目。与其中使用了Barrier Request/Reply的方法一 样,此方法也要求与其中设置了流条目的所有节点交换消息,以检查是否正确地设置了流 条目,因此增加了在能够发送用户数据包之前的时间(图33中的s1(用户数据包)-s10(用 户数据包)。 0020 此外,如果在设置了流条目之后由于节点故障而丢失某些流条目,则其中使用 。

22、Barrier Request/Reply的方法和其中使用Stats Request/Reply的方法两者都不能够避 说 明 书CN 102884769 A 3/18页 7 免非计划动作的执行。 0021 鉴于前文的描述,本发明的目的是提供一种通信系统、节点、控制设备、通信方法 以及程序,以用于防止诸如上文所述的那些不正确的处理规则(流条目)在节点中命中并且 执行非计划处理的问题。 0022 问题的解决方案 0023 根据本发明的第一方面,提供了一种通信系统,包括:节点,处理所接收到的数据 包;以及控制设备,设置节点中的处理规则,该处理规则定义匹配规则和对符合该匹配规则 的数据包的处理,其中,。

23、该节点保存与处理规则相关联的标识符,并且根据所接收到的数据 包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数 据包的处理,其中该处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理 根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行。 0024 根据本发明的第二方面,提供一种了节点,该节点:保存与标识符相关联的处理规 则,处理规则定义匹配规则和对符合匹配规则的数据包的处理;并且根据所接收到的数据 包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数 据包的处理,并且由此处理所接收到的数据包,其中处理规则与符合所接收到的数据包。

24、的 匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规 则而被执行。 0025 根据本发明的第三方面,提供一种控制设备,该控制设备生成定义匹配规则和对 符合该匹配规则的数据包的处理的处理规则,生成与该处理规则相关联并且允许节点确定 是否执行对所接收到的数据包的处理的标识符,所述处理根据与符合所接收到的数据包的 匹配规则相对应的处理规则而被执行;并且在布置于通信系统中的节点中设置处理规则和 标识符以处理接收到的数据包。 0026 根据本发明的第四方面,提供一种通信方法,包括以下步骤:保存与标识符相关联 的处理规则,该处理规则定义匹配规则和对符合该匹配规则的数据包的处理。

25、;并且根据所 接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对 所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规则与符合所 接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规 则相对应的处理规则而被执行。此方法被与处理所接收到的数据包的、称作节点的特定机 器结合。 0027 根据本发明的第五方面,提供一种通信方法,包括以下步骤:生成处理规则,该处 理规则定义匹配规则和对符合匹配规则的数据包的处理;生成标识符,该标识符与处理规 则相关联且允许节点确定是否执行对所接收到的数据包的处理,其中所述处理根据与符合 所接收到的数据。

26、包的匹配规则相对应的处理规则而被执行;以及在布置于通信系统中的节 点中设置处理规则和标识符以处理接收到的数据包。此方法被与在处理接收到的数据包的 节点中设置处理规则的、被称作控制设备的特定机器相结合。 0028 根据本发明的第六方面,提供了一种使得设于通信系统中的处理接收到的数据包 的节点执行以下处理的程序:存储与标识符相关联的处理规则,该处理规则定义匹配规则 和对符合匹配规则的数据包的处理;以及根据所接收到的数据包的标识符是否对应于与下 述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,其中处理规则与 说 明 书CN 102884769 A 4/18页 8 符合所接收到的数据包。

27、的匹配规则相对应,并且处理根据与符合所接收到的数据包的匹配 规则相对应的处理规则而被执行。此程序可以被记录在计算机可读记录介质上。即,本发 明可被具体化为计算机程序产品。 0029 根据本发明的第七方面,提供一种使得设于通信系统中的控制设备控制处理接收 到的数据包的节点执行以下处理的程序:生成处理规则,该处理规则定义匹配规则和对符 合匹配规则的数据包的处理;生成标识符,该标识符与处理规则相关联且允许节点确定是 否执行对所接收到的数据包的处理,其中该处理根据与符合所接收到的数据包的匹配规则 相对应的处理规则而被执行;以及在节点中设置处理规则和标识符。此程序可以被记录在 计算机可读记录介质上。即,。

28、本发明可被具体化为计算机程序产品。 0030 本发明的有利效果 0031 根据本发明,可防止在布置在数据转发网络中的节点中执行非计划处理。 附图说明 0032 图1为示出了本发明的略图的图。 0033 图2为示出了本发明的略图的另一图。 0034 图3为示出了本发明的第一示例性实施例中的通信系统的配置的图。 0035 图4为在发明的第一示例性实施例中的控制设备(控制器)的配置的框图。 0036 图5为示出了图4中所示的控制设备(控制器)的流条目DB中保存的信息的图。 0037 图6为示出了图4中所示的控制设备(控制器)的验证信息DB中保存的信息的图。 0038 图7为示出了本发明的第一示例性实。

29、施例中的节点的配置的框图。 0039 图8为示出了在图7中所示的节点的流表中保存的信息的图。 0040 图9为示出了包括验证信息(或向其添加了验证信息)的数据包的示例的图。 0041 图10为示出了图9中所示的添加了验证信息的额外头部的配置的示例的图。 0042 图11为本发明的第一示例性实施例中的控制设备(控制器)的操作的流程图。 0043 图12为本发明的第一示例性实施例中的(一个或多个)节点的操作的流程图。 0044 图13为示出了本发明的第一示例性实施例中的通信系统中的流的系列的参考 图。 0045 图14为示出了本发明的第一示例性实施例中的通信系统中的流的序列的顺序 图。 0046 。

30、图15为示出了在本发明的第二示例性实施例中的控制设备(控制器)的流条目DB 中保存的信息的图。 0047 图16为示出了在本发明的第二示例性实施例中的控制设备(控制器)的验证信息 DB中保存的信息的框图。 0048 图17为示出了本发明的第二示例性实施例中的节点的配置的框图。 0049 图18为示出了图17中所示的节点的流表中保存的信息的图。 0050 图19为示出了其中包括(嵌入)验证信息的数据包的示例的图。 0051 图20为示出了本发明的第二示例性实施例中的控制设备(控制器)的操作的流程 图。 0052 图21为示出了本发明的第二示例性实施例中的节点的操作的流程图。 说 明 书CN 10。

31、2884769 A 5/18页 9 0053 图22为示出了在本发明的第三示例性实施例中的控制设备(控制器)的流条目DB 中保存的信息的图。 0054 图23为示出了在本发明的第三示例性实施例中的控制设备(控制器)的验证信息 DB中保存的信息的图。 0055 图24为示出了在本发明的第三示例性实施例中的节点的流表中保存的信息的 图。 0056 图25为示出了在本发明的第四示例性实施例中的控制设备(控制器)的流条目DB 中保存的信息的图。 0057 图26为示出了在本发明的第四示例性实施例中的控制设备(控制器)的验证信息 DB中保存的信息的图。 0058 图27为示出了在本发明的第四示例性实施例。

32、中的节点的流表中保存的信息的 图。 0059 图28为示出了在本发明的第五示例性实施例中使用的数据包的示例的图。 0060 图29为示出了图28中添加了验证信息的额外头部的配置的示例的图。 0061 图30为示出了在非专利文献2中描述的流条目的配置的图。 0062 图31为示出了在非专利文献2中描述的动作名称和动作内容的图。 0063 图32为在非专利文献2中描述的OpenFlow控制器(控制器)和流交换机(节点)的 操作的图。 0064 图33为示出了用于使用在非专利文献2中描述的OpenFlow协议来可靠地设置流 条目的操作序列的参考图和顺序图。 具体实施方式 0065 首先,下文描述了本。

33、发明的略图。注意,附加到本略图的附图标记仅仅是示例性的 以帮助理解,而不旨在将本发明限制于图中所示出的实施方式。如图1中所示,当接收到数 据包时,本发明的通信系统的节点10(参见图1中的节点#2)使用在设备自身中保存的处 理规则中包括的匹配规则(匹配键)来提取符合所接收到的数据包的处理规则(步骤1)。接 下来,节点10(参见图1中的节点#2)检查与所提取的处理规则相关联的标识符是否(是或 否)和在所接收到的数据包中包括的标识符完全相同(步骤2)。尽管在上文的描述中节点 10检查与处理规则相关联的标识符和在所接收到的数据包中包括的标识符完全相同,但是 本发明不限于此方法。例如,本发明包括节点10。

34、检查与处理规则相关联的标识符对应于在 所接收到的数据包中包括的标识符的情况。这也适用于随后的步骤和示例性实施例中。如 果作为该检查的结果确认了与处理规则相关联的标识符匹配所接收到的数据包的标识符, 则节点10(参见图1中的节点#2)根据处理规则来执行处理(步骤3)。 0066 上文描述的标识符为由控制设备(控制器)20与处理规则相关联地生成的信息。生 成并且和附加标识符使得能够识别可能符合所接收到的数据包的处理规则。因此,如果通 过使用匹配规则(匹配键)的搜索来提取处理规则,但是标识符并不匹配所接收到的数据包 的标识符,则不执行处理规则的动作。标识符被以各种方式包含在用户数据包中,例如,标 识。

35、符被添加到如图1和图2中所示的用户数据包中,或者被嵌入在用户数据包的特定区域 中(参见图19)。 说 明 书CN 102884769 A 6/18页 10 0067 即使当在本说明书中之前提到的条件发生时,例如,当处理规则的设置被延迟或 者当流条目的一部分由于在节点中的错误而丢失时,上文所述的配置避免非计划动作执 行。 0068 在图1中的示例中,节点使用匹配规则(匹配键)来提取符合所接收到的数据包 的处理规则,之后,检查与所提取的处理规则相关联的标识符是否匹配所接收到的数据包 的标识符。作为其替代,如图2中所示的另一方法也是可能的,其中,节点使用标识符来提 取符合所接收到的数据包的处理规则,。

36、并且之后,检查所提取的处理规则的匹配规则(匹配 键)是否匹配所接收到的数据包的内容(要与匹配规则(匹配键)相比较的头部信息)。 0069 在这种情况下,同样地,如果通过使用标识符的搜索提取了处理规则但是匹配规 则(匹配键)并不匹配所接收到的数据包的内容(头部信息),则不执行处理规则的动作。如 在图1中示出的配置中,例如,当延迟处理规则的设置时,该配置也避免非计划动作执行。 0070 (第一示例性实施例) 0071 接下来,将参照附图来详细地描述本发明的第一示例性实施例。图3为示出了本 发明的第一示例性实施例中的通信系统的配置的图。参照图3,通信系统包括三个节点10、 控制设备(控制器)20,以。

37、及经由节点10彼此通信的主机(A)和主机(B)。尽管在图3中的 示例中示出了三个节点10、控制设备(控制器)20以及两个主机(主机(A)、主机(B),但是 可以使用任意多个节点、控制设备(控制器)以及主机。 0072 图4为示出了控制设备(控制器)20的具体配置的图。参照图4,控制设备(控制器) 20包括:流条目数据库(流条目DB)21,其存储处理规则(流条目)和与处理规则相关的验证 信息;拓扑管理单元22,其基于经由节点通信单元26收集的、节点10的连接关系来构建网 络拓扑信息;路径/动作计算单元23,其基于由拓扑管理单元22构建的网络拓扑信息来计 算数据包转发路径和要由转发路径上的节点10。

38、执行的动作;流条目管理单元24,其建立由 路径/动作计算单元23与验证信息生成单元28分别计算的处理规则(流条目)与验证信息 之间的关联,将相关联的处理规则(流条目)和验证信息登记在流条目DB 21中,处理从节点 10接收到的处理规则(流条目)添加请求,更新处理规则(流条目)和验证信息;控制消息处 理单元25;与节点10通信的节点通信单元26;以及验证信息生成单元28,其响应于来自流 条目管理单元24的请求,生成要与处理规则相关联的验证信息或者从验证信息数据库(验 证信息DB)27中检索验证信息。验证信息指与用来验证所接收到的数据包与基于匹配规则 的处理规则之间的比较结果(匹配与否)的标识符相。

39、对应的信息。 0073 此外,控制消息处理单元25包括:消息分析/处理单元251,其分析从节点10接 收到的控制消息并且执行必要的处理;以及消息生成单元252,其生成要发送到节点10的 消息。 0074 图5为示意性地示出了在流条目DB 21(流条目和验证信息)中保存的信息的图。 例如,从图5的顶部起的第一至第三条目指示设置在其DPID(节点10的标识符:数据通道 标识符)为1至3的节点中的处理规则(流条目)和与处理规则相关联的验证信息(从顶部 起的第四至第六条目指示相似内容)。 0075 当接收与匹配键“A”匹配的数据包时,DPID为1的节点(例如,图3中的节点#1) 执行由自顶部起的第一条。

40、目所指示的处理。也就是说,节点将包括验证信息“CA”的头部添 加到数据包,并且根据动作字段(Actions)从第九端口输出该数据包。类似地,当从DPID 说 明 书CN 102884769 A 10 7/18页 11 为1的节点(例如,图3中的节点#1)接收到与匹配键“A”匹配的数据包时,DPID为2的节 点(例如,图3中的节点#2)从第六端口输出该数据包。当从DPID为2的节点(例如,图3 中的节点#2)接收到与匹配键“A”匹配的数据包时,DPID为3的节点(例如,图3中的节点 #3)从该数据包中移除包括验证信息“CA”的头部,并且从第一端口输出该数据包。作为上 述处理的结果,在验证信息“C。

41、A”被用于匹配期间,控制转发路径使得验证信息“CA”被添加 到与匹配键“A”匹配的数据包并且经由规定的路径来转发该数据包。在实际的流条目DB 21中,图5中示出的匹配键“A”、“B”以及“X”中的每一个由规则(FlowKey;可使用通配符) 组成,该规则被与诸如图30中所示的接收到的数据包的头部进行比较。 0076 图6为示意性地示出了在验证信息DB 27中保存的信息(验证信息)的图。如图 6中所示,验证信息DB 27存储匹配键“A”、“B”、“X”与验证信息“CA”、“CB”、 “CX”之间的对应关系。验证信息生成单元28响应于来自流条目管理单元24的请求而生成 与处理规则(流条目)相对应的。

42、验证信息,并且将所生成的验证信息登记在验证信息DB 27 中。这样的验证信息可以由使用匹配规则(在下文中称为“匹配键”)或其它信息作为参数 的预定函数(哈希函数等)来生成,由此使得验证信息至少在各个与符合所接收到的数据包 的多个匹配规则相对应的多个处理规则之中是唯一的,也就是说,由此使得相同的验证信 息至少未被分配给多个处理规则。在统计上唯一的验证信息也可以使用随机数生成(稍后 将详细地描述示例)。被提供来防止在可能彼此冲突的多个处理规则(流条目)之中的验证 信息的重复的验证信息DB 27无需总是具有图6中所示的格式。此外,通过随机地或统计 地避免验证信息的重复可以省略验证信息DB 27。 0。

43、077 注意,如果不需要保存控制设备(控制器)20命令节点10添加或者更新的处理规 则(流条目)以及与该处理规则相关联的验证信息,则可以省略流条目DB 21。类似地,如果 不需要保存与处理规则相关联地生成的验证信息,则可以省略验证信息DB 27。此外,其中 流条目DB 21和/或验证信息DB 27被单独地提供在外部服务器中的另一配置也是可能 的。 0078 上文描述的控制设备(控制器)20可通过将至少以下两个添加到在非专利文献1 和2中描述的OpenFlow控制器中来实施。一个为验证信息生成单元28,而另一个为在节点 10中设置处理规则(流条目)和与该处理规则相关联的验证信息的功能。 0079。

44、 图7为示出了节点10的具体配置的图。参照图7,节点10包括与控制设备(控制 器)20通信的控制设备通信单元11、管理流表13的流表管理单元12、数据包缓冲区14以 及转发处理单元15。注意,节点10无需总是包括数据包缓冲区14。 0080 转发处理单元15包括表搜索单元153和动作执行单元154。表搜索单元153包括 验证信息匹配单元152,其将与处理规则(流条目)相关联的验证信息与添加到所接收到数 据包的验证信息相比较以确定它们是否匹配。表搜索单元153搜索流表13以获得处理规 则(流条目),该处理规则具有符合所接收到的数据包的匹配键并且其验证信息匹配所接收 到的数据包的验证信息,并且将处。

45、理内容(动作)输出到动作执行单元154。动作执行单元 154执行从表搜索单元153输出的处理内容(动作)。 0081 上文所述的节点10可通过向OpenFlow交换机添加验证信息匹配单元152并且通 过配置流表13使得验证信息可以被与处理规则相关联地保存来实施。节点10的表(流条 目)搜索单元153(其包括验证信息匹配单元152)可以通过由配置节点10的计算机所执 说 明 书CN 102884769 A 11 8/18页 12 行的程序来配置。 0082 图8为示意性地示出了在图5中的DPID为2的节点(图3中节点#2)的流表13 中保存的信息(流条目和验证信息)的图。如图8中所示,流表13包。

46、括流条目和验证信息, 其和图5中的具有相对应DPID的流条目DB 21中的条目的那些相同。对于图5中的DPID 为1或3的节点(节点#1或#3)中的每一个,流表13以相同方式包括与每一个DPID相对 应的流条目和验证信息。 0083 图9为示出了基于由控制设备(控制器)20设置的动作(设置包括“CA”的头部;见 图5中具有DPID=1的节点的动作(Actions)由节点10所创建的添加了验证信息的数据 包的配置的图。在图9中的示例中,添加了验证信息的数据包32具有下面这样的配置,其 中包括验证信息的添加了验证信息的额外头部33被添加到用户数据包31的开始处。 0084 图10为示出了添加了验证。

47、信息的额外头部33的配置的示例的图。在图10中的 示例中,添加了验证信息的额外头部33具有下面这样的配置,其中验证信息被添加到MAC 目的地地址(MAC DA)、MAC源地址(MACSA)、更高层协议类型(Ether Type)以及总头部长度 (总长度)。在图10中的示例中,通过以匹配键和随机数作为参数的预定函数(哈希函数等) 计算的值(f(匹配键,随机数)被用作验证信息。 0085 接下来,描述上文所述的控制设备(控制器)20和节点10的操作。图11为示出了 控制设备(控制器)20的流程图。参照图11,当从节点10接收查询(处理规则创建请求;见 图12中的步骤S 111)时(步骤S001;P。

48、acket-In),控制设备(控制器)20检查查询数据包 是否包括验证信息(步骤S002)。如果查询数据包包括验证信息(在步骤S002为是),则已经 创建与数据包相对应的处理规则,并且因此控制设备(控制器)20从流条目DB21中检索与 数据包相对应的处理规则和与处理规则相关联的验证信息(步骤S012),并且将控制转到步 骤S008。 0086 另一方面,如果查询数据包不包括验证信息(在步骤S002为否),则控制设备(控 制器)20获取由拓扑管理单元22构建的网络拓扑信息并且计算数据包的转发路径(步骤 S003)。 0087 除了当从数据包转发路径计算的结果确定因为转发路径不能被创建或者因为路 。

49、径上的节点已经失效而不能够转发数据包时(在步骤S004中为否)之外,控制设备(控制器) 20计算与所计算的转发路径相对应的动作(步骤S005)。接下来,控制设备(控制器)20生成 与应用于路径上的节点10中每一个的处理规则(流条目)相关联的验证信息(步骤S006)。 此外,控制设备(控制器)20生成应用于路径上的节点10中每一个的处理规则(流条目),其 中处理规则(流条目)包括用于标识查询数据包所属于的流的匹配键和动作(步骤S007)。 0088 当完成处理规则(流条目)和验证信息的获取或生成时,控制设备(控制器)20生 成用于设置所生成的处理规则(流条目)和验证信息的设置指令(Flow Mod(Add)(步骤 S008),并且将用于设置处理规则(流条目)和验证信息的设置指令(Flow Mod(Add)发送 到由处理规则(流条目)创建的数据数据包转发路径上的节点10(步骤S009)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1