一种基于储存端口的二层交换机储存方法与流程

文档序号:11156420阅读:437来源:国知局
一种基于储存端口的二层交换机储存方法与制造工艺

本发明涉及交换机转发层储存领域,尤其涉及一种基于储存端口的二层交换机储存方法。



背景技术:

2009年,美国斯坦福大学clean state研究组提出一种新型的网络架构体系,软件定义网络(SDN),通过将网络的转发层与控制层实现分离,提高网络的可编程性,为核心网络及应用的创新提供了良好的平台。近年来OpenFlow与POF(协议无感知)等技术相继对SDN的思想进行了实现,尤为一提的是POF技术不仅对已有网络协议具有良好的支持,还支持用户自定义的任意的新协议。目前POF软交换机与POF硬件交换机均已经发布,开发人员可以很方便利用POF技术进行一些新应用的设计。POF交换机对接收到的每一个报文都将进行匹配流表项里面所规定的指令,而流表的生成完全由控制器进行控制,开发人员只需对控制器进行编程,便能实现对接收到的帧的任意层执行POF的指令集。

未来网络将从现在的以IP为中心向以内容为中心进行转移,然而当前的路由交换节点并不能支持对内容的长久缓存。由于路由交换节点并未对经过的内容进行缓存,用户每一次都需从内容源提供商获取感兴趣的内容服务,无疑会造成带宽等资源的巨大浪费。通过在转发层支持数据的存取,交换节点可以通过可配置的缓存策略,将网络中经过的流行度高的内容缓存在本地,为以后的用户提供就近服务,从而大大降低对网络带宽的占用以及内容源节点的压力。

本发明针对交换机不能对储存设备进行访问控制的问题,提供了一种基于扩展储存端口支持二层交换机储存的方法。



技术实现要素:

本发明的目的是为了解决现有技术存在的上述不足,提供了一种基于扩展储存端口的二层交换机转发层支持储存的方法,使交换机在转发层面实现了对储存设备的访问控制。

为实现上述目的,本发明实施例提供了一种基于储存端口的二层交换机储存方法,所述方法包括:

步骤1、具有储存端口的交换机启动时,预先建立一个环形缓冲区;

步骤2、交换机接收储存报文,提取储存报文的净荷部分,根据环形缓冲区储存容量,确定是否将储存报文的净荷部分写入缓存区;

步骤3、当环形缓冲区储存容量未满,将储存报文的净荷部分写入缓存区,并将环形缓冲区中的写指针后移;

步骤4、交换机生成一个请求报文,储存端口根据请求报文转化为协议报文数据,储存设备进入储存准备状态;

步骤5、交换机根据储存设备发送的反馈报文,确定环形缓冲区是否为空;

步骤6、当环形缓冲区为不空,将环形缓冲区中的读指针所指向的缓冲区的净荷部分提取出来,并放置在反馈报文的数据部分,将环形缓冲区的读指针后移。

优选地,当环形缓冲区储存容量已满,反馈至交换机的控制单元,丢弃储存报文。

优选地,当环形缓冲区为空,反馈至交换机的控制单元,丢弃储存报文。

优选地,环形缓冲区具有固定储存容量。

优选地,写指针指向可输入数据的空缓冲区。

优选地,读指针指向可提取数据的第一个满缓存区。

优选地,请求报文为读请求、写请求或删除请求中的一种。

优选地,交换机生成一个请求报文的方法具体包括:进入交换机的二层帧,通过流表匹配后执行流表项中的动作,生成一个请求报文或控制器发送一个扩展OpenFlow消息。

优选地,基于储存端口的二层交换机读取方法,具体包括:

步骤1、交换机接收读取报文,储存端口根据请求报文转化为协议报文数据,储存设备进入储存准备状态;

步骤2、交换机根据储存设备发送的反馈报文,为储存设备从储存端口发送的包含内容净荷部分的报文加上协议头部;

步骤3、将包含内容净荷部分的报文和协议头部的报文从原来报文的进入端口转发出去。

优选地,协议为二层协议或iSCSI协议。

本发明提供的一种基于储存端口的二层交换机储存方法,通过带储存端口的二层交换机写入数据到储存设备,当交换机接收到一个需要写入的报文时,先将报文的净荷部分放置在环形缓冲区中,然后产生一请求报文,并向储存端口转发,用于通知储存设备就绪。经过交换机与储存设备的报文交互,交换机最终将环形缓存区当前读指针指向的净荷提取出来从储存端口转发给储存设备,完成报文的写入。

附图说明

图1为本发明实施例提供的一种基于储存端口的二层交换机储存方法流程图;

图2为本发明实施例提供的SDN交换机、SDN控制器、储存设备关系示意图;

图3为本发明实施例提供的交换机写入内容到储存设备示意图;

图4为本发明实施例提供的交换机从储存设备读取内容示意图。

具体实施方式

POF交换机相比其他交换机具有更高的灵活性和可编程性,下面以POF交换机为例,现结合附图和具体实施例,对本发明所提供的提供一种基于扩展储存端口实现二层交换机在转发层支持储存的方法作进一步阐述。

图1为本发明实施例提供的一种基于储存端口的二层交换机储存方法流程图。图1所示,该方法包括:

S101、具有储存端口的交换机启动时,预先建立一个环形缓冲区;

具体地,储存端口既可对应逻辑上的端口,也可对应物理上的端口、可以配置,也可以固化;对于可配置的储存端口,既可以支持静态配置,也可以支持动态配置,如对于SDN(软件定义内容网络)交换机可以通过SDN控制器进行配置。带储存端口的交换机在启动时预先建立一个环形缓冲区。

S102、交换机接收储存报文,提取储存报文的净荷部分,根据环形缓冲区储存容量,确定是否将储存报文的净荷部分写入缓存区;

具体地,当交换机收到一个需要写入到储存设备的报文后,提取报文的净荷部分,检查环形缓冲区是否已满。

S103、当环形缓冲区储存容量未满,将储存报文的净荷部分写入缓存区,并将环形缓冲区中的写指针后移;

具体地,环形缓冲区若不满,则将报文的净荷部分写入到缓存区中,同时将环形缓冲区中的写指针后移;环形缓冲区若满,则将通知控制器(对于SDN交换机来说),环形缓存区已满,丢弃该报文。

S104、交换机生成一个请求报文,储存端口根据请求报文转化为协议报文数据,储存设备进入储存准备状态;

具体地,交换机产生一个报文,指明请求操作类型(读、写、删除等,这 里为写请求),然后向储存端口转发,储存端口的驱动将写请求报文转化为约定的协议报文数据(如采用自定义的二层协议或iSCSI协议等),用于通知储存设备进入写准备状态。另外,进入交换机的二层帧,通过流表匹配后执行流表项中的动作(即生成一个请求报文)或控制器发送一个扩展OpenFlow消息,交换机调用此方法生成一个请求报文等。

S105、交换机根据储存设备发送的反馈报文,确定环形缓冲区是否为空;

S106、当环形缓冲区为不空,将环形缓冲区中的读指针所指向的缓冲区的净荷部分提取出来,并放置在反馈报文的数据部分,将环形缓冲区的读指针后移。

具体地,交换机收到储存设备的“写就绪”报文后,检查环形缓冲区是否为空,若不为空,则将环形缓冲区的读指针所指向的缓冲区的净荷部分提取出来,并将提取出来的净荷部分放置在“写就绪”报文的数据部分,操作完成后将环形缓存区的读指针后移;若为空,则将通知控制器(对于SDN交换机来说),环形缓存区为空,丢弃该报文。

优选地,环形缓冲区具有固定储存容量。

具体地,环形缓冲区是在交换机启动时预先分配的,具有固定大小。

优选地,写指针指向可输入数据的空缓冲区。

优选地,读指针指向可提取数据的第一个满缓存区。

具体地,环形缓冲区维护2个指针,读指针与写指针,其中读指针始终指向可以提取数据的第一个满缓存区,写指针始终指向可以输入数据的一个空缓冲区。

图2为本发明实施例提供的SDN交换机、SDN控制器、储存设备关系示意图。如图2所示,首先要确定交换机需要对网络中哪一种类型的数据包进行缓存,这可以通过对控制器进行编程来实现。在本场景中,假定交换机与储存设备之间的通信协议为SSCP协议,假定交换机采用以太网报文,在以太网 报文中CCN(内容中心网络)对应的EtherType为0x0011,EtherType后1个字节表示数据包的类型字段Type,其中类型Type字段0x01字段代表兴趣包,类型Type字段0x02代表内容包,控制器在下发给交换机的流表中配置类型为EtherType为0x0011,Type为0x02的内容包需要写入到储存设备中,EtherType为0x0011,Type为0x01的兴趣包需要从储存设备中读取内容。

图3为本发明实施例提供的交换机写入内容到储存设备示意图。如图3所示,在一个例子中,交换机接收到EtherType为0x0011,Type为0x02的内容包。交换机将执行匹配流表中的指令,这些指令包括:(1)对环形缓冲区操作的指令:将会提取内容包中的净荷部分写入到缓存区中;(2)向储存设备发起初始请求(包括读,写,删除等操作)的指令:通知储存设备进入写请求阶段。储存设备的请求分发线程收到类型为写请求的SSCP报文后将报文放入到写请求队列中。储存设备的请求处理线程将从写请求队列中取出一个请求,同时将储存设备的当前状态从WAIT_REQUEST状态更改为Prepare_Write状态,经过一组报文的交互后,交换机最终收到储存设备的“写就绪”报文,此时交换机将从环形缓冲区中取出报文净荷放置在“写就绪”报文的数据部分,并通过储存端口转发给储存设备,储存设备收到该报文后完成报文的真正写入。

图4为本发明实施例提供的交换机从储存设备读取内容示意图。如图4所示,在一个例子中,交换机接收到EtherType为0x0011,Type为0x01的兴趣包。交换机将执行匹配流表中的指令,这些指令包括,向储存设备发起初始请求(包括读、写、删除等操作)的指令:通知储存设备进入读请求阶段。储存设备的请求分发线程将收到类型为读请求的SSCP报文后将报文放入到读请求队列中。储存设备的请求处理线程将从读请求队列中取出一个请求,同时将储存设备的状态的当前状态从WAIT_REQUEST状态更改为Prepare_Read状态,经过一组报文的交互后,储存设备将读取的内容放入到“读完成”报文的数据部分,交换机收到此报文后加上CCN协议头部,然后从兴趣包进入 端口转发出去。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器(RAM)、内存、只读储存器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的储存介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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