一种支持POF交换机有状态转发的方法与流程

文档序号:12477876阅读:1444来源:国知局
一种支持POF交换机有状态转发的方法与流程

本发明涉及网络技术领域,特别涉及支持POF交换机有状态转发的方法。



背景技术:

2009年,美国斯坦福大学clean state研究组提出一种新型的网络架构体系,软件定义网络(SDN),通过将网络的转发层与控制层实现分离,提高网络的可编程性,为核心网络及应用的创新提供了良好的平台。近年来OpenFlow与POF(协议无感知)等技术相继对SDN的思想进行了实现,尤为一提的是POF技术不仅对已有网络协议具有良好的支持,还支持用户自定义的任意的新协议。

目前,POF软件交换机与POF硬件交换机均已经发布,开发人员可以很方便利用POF技术进行一些新应用的设计。POF交换机对接收到的每一个报文都将进行匹配流表项里面所规定的指令,而流表的生成完全由控制器进行控制,开发人员只需对控制器进行编程,便能实现对接收到的帧的任意层执行POF的指令集。

交换机的有状态转发是指:报文流的处理存在依赖关系,即后面的报文的处理转发依赖于前面已经转发过的报文。对于MAC来说,交换机每个转发一个报文,需将报文的源MAC以及进入端口号保存到转发表中,当接收到下一个报文,将用提取到的报文的DMAC字段去查询转发表。然而,当前SDN交换机不能对有状态转发提供很好的支持。当一个报文从交换机转发出去后,它的状态也就消失了。

因此,本发明针对SDN交换机不能支持有状态转发的问题,提供了一种POF交换机有状态转发的方法,该方法主要包括将报文的状态字段域保存在流表项的方法和将状态流表项删除的方法。



技术实现要素:

本发明的目的是解决当前SDN交换机不能支持有状态转发的问题。

为实现上述目的,本发明提供了一种支持POF交换机有状态转发的方法,包括以下步骤:

当POF交换机接收到需要保存状态的报文时,将报文的状态字段域信息保存在流表项中;当POF交换机接收到的后续报文的状态字段域信息需要设置时,则将流表项中保存的状态字段域信息设置为后续报文的状态字段域信息。

当POF交换机接收到需要保存状态的报文时,将报文的状态字段域信息保存在流表项中步骤,包括:POF交换机接收到一个报文,判断该报文是否需要保存其状态;若是,则选择一个当前未使用,并且编号最小的流表项;提取所述报文状态字段域信息,并将所述字段域信息保存在所述流表项的缓冲区中。

将流表项中保存的状态字段域信息设置为后续报文的状态字段域信息步骤,包括:根据对后续报文的处理,确定需要设置的状态字段域的偏移、长度,将流表项的缓冲区的偏移、长度字段的值分别设置为后续处理报文的状态字段域的偏移、长度。当POF交换机接收到的报文需要重新设置状态字段域信息时,则将该报文的状态字段域信息进行重新设置,并将该报文指定的原流表项删除。

将报文的状态字段域信息进行重新设置步骤,包括:将与报文指定的状态字段域相匹配的状态流表项提取出来,并将报文的状态域信息设置为当前流表项缓冲区中保存的状态流表项信息。

本发明的有益效果是:本发明针对SDN交换机不能支持有状态转发的问题,提供了一种扩展状态保存及删除指令支持POF交换机有状态转发的方法。同时,对于不能支持有状态转发的SDN交换机,任何关于状态的处理都需要控制器参与进来,这将带来额外的信令负荷和处理延时,本发明不需要控制器的参与,因此缓解了控制器的压力,能够通过实时更新数据平面的流表规则来控制数据平面的转发行为,为一些对时延敏感的网络控制算法提供有力支持。其次,POF交换机比其他交换机(例如:SDN交换机)具有更高的灵活性和可编程性。

附图说明

图1为本发明实施例提供的一种支持POF交换机有状态转发的方法流程图;

图2为本发明实施例提供的另一种支持POF交换机有状态转发的方法流程图;

图3为图1或图2所示方法中兴趣报文处理流程图;

图4为图1或图2所示方法中报文的状态字段域在流表项图中的存储示意图;

图5为图1或图2所示方法中匹配报文特定域的状态表项删除示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例中的POF交换机相比其他交换机具有更高的灵活性和可编程性,现结合附图和具体实施例,对本发明所提供的提供一种基于扩展状态保存及删除指令支持交换机有状态转发的方法作进一步阐述。

图1和图2分别为本发明实施例提供的两种支持POF交换机有状态转发的方法流程图。如图1和图2所示,本发明实施例主要包括将报文的状态字段域保存在流表项的方法和将状态流表项删除的方法。具体过程如下:

当POF交换机接收到需要保存状态的报文时,将报文的状态字段域信息保存在流表项中,具体步骤包括:

(1)、POF交换机接收到一个报文,判断是否是需要保存状态的报文,若是,转向(2);否则结束。

(2)、选择一个当前未使用编号最小的流表项。

(3)、提取需要保存的状态字段域的偏移、长度,并将该偏移长度的字段值保存在流表项的特定指令的缓冲区中,例如SET FIELD指令。

其中,当POF交换机接收到的后续报文的状态字段域信息需要设置时,则将流表项中保存的状态字段域信息设置为后续报文的状态字段域信息。

状态字段域信息包括状态字段域的偏移、长度,并将该偏移长度的字段值保存在流表项的SET FIELD指令的缓冲区中。根据对后续报文的处理,确定需要设置的状态字段域的偏移和长度。

当POF交换机接收到的报文需要重新设置状态字段域信息时,则将该报文的状态字段域信息进行重新设置,并将该报文指定的原流表项删除。

将报文的状态字段域信息进行重新设置步骤,包括:

将与报文指定的状态字段域相匹配的状态流表项提取出来,并将报文的状态域信息设置为当前流表项缓冲区中保存的状态流表项信息。

在此过程中,当报文完成新的状态字段域的设置,通过查询状态表,将与报文指定域相匹配的状态流表项提取出来,并将报文的状态域字段值设置为流表项中的SET FIELD指令中的缓冲区所包含的值。

图3为图1或图2所示方法中兴趣报文处理流程图,如图3所示,本实施例中,POF交换机每收到一个CCN(内容中心网络)的兴趣报文,将往存储端口转发一个新的SSCP协议的报文,CCN的兴趣报文的进入端口状态需要保存下来。假定交换机采用以太网报文,在以太网报文中CCN对应的EtherType为0x0011,EtherType后1个字节表示数据包的类型字段Type,其中类型Type字段0x01字段代表兴趣包。

一个兴趣报文在交换机内部经过处理(例如状态的保存、内容名字的获取等)后将往存储端口转发一个SSCP请求报文,该请求报文被存储设备处理完后将返回一个SSCP响应报文。交换机通过利用已保存的状态和SSCP响应报文重新构造一个内容报文,并从兴趣报文的进入端口转发出去,同时对应的兴趣报文的状态信息将被删除。

图4为图1或图2所示方法中报文的状态字段域在流表项图中的存储示意图,如图4所示实施例中,假定交换机(SW)接收到Ether Type为0x0011,Type为0x01的兴趣包,交换机将执行状态保存指令,首先为该兴趣报文分配一个SSCP_ID_1,代表属于这个兴趣报文的状态,然后将Port信息保存在SET FIELD指令中,并从状态表中找到一个当前未使用的编号最小的流表项,将该流表项的匹配字段值设置为SSCP_ID_1。匹配动作设置为SETFIELD、Goto Table。其中Goto Table指令中的下一个流表ID设置为内容报文与状态流表匹配完之后将要匹配的下一个流表的ID。当兴趣报文的状态保存成功后,交换机(SW)重新封装一个SSCP报文,标识当前兴趣报文状态的SSCP_ID_1也被填充在SSCP报文头部中。

图5为图1或图2所示方法中匹配报文特定域的状态表项删除示意图。如图5所示实施例中,假定交换机(SW)接收到一个SSCP协议的报文,经解析后发现是对CCN的兴趣报文的响应报文,该报文将与状态表进行匹配,匹配字段值为SSCP_ID_1。通过查找状态表,找到匹配域值也为SSCP_ID_1的流表项,执行SET FIELD指令,将该报文的Port信息设置为原兴趣报文的Port信息(最后需要把内容报文从这个端口转发出去);执行Goto Table指令,跳转到下一个流表,执行状态删除指令,将状态表中与SSCP_ID_1匹配的流表项删除。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1