CN103780517A - 一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法 - Google Patents
一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法 Download PDFInfo
- Publication number
- CN103780517A CN103780517A CN201410025745.3A CN201410025745A CN103780517A CN 103780517 A CN103780517 A CN 103780517A CN 201410025745 A CN201410025745 A CN 201410025745A CN 103780517 A CN103780517 A CN 103780517A
- Authority
- CN
- China
- Prior art keywords
- controller
- switch
- openflow
- module
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法。所述驱动***包括通信管理模块、解析模块以及协议处理模块;所述驱动方法包括(1)交换机请求与控制器进行连接,通信管理模块验证后,该交换机与控制器可以进行数据包和消息的传输;(2)交换机和控制器之间互发OFPT_HELLO,解析模块会解析交换机发来的OFPT_HELLO消息包头,获得OpenFlow协议版本号,然后根据OpenFlow协议版本号进入到具体协议处理单元;(3)相应的具体协议处理单元将进入该模块的消息转换成该具体协议处理单元所对应版本协议的消息类型。通过该驱动***及其方法,不同版本的OpenFlow协议下的控制器与交换机之间即可以协同工作。
Description
技术领域
本发明涉及一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法。
背景技术
目前,随着网络设备新技术的不断发展,网络设备已经开始向数据转发和路由控制分离的架构进行转变。其中,OpenFlow便是一个典型的控制和转发相分离的网络设备架构,并已经引起了广泛的关注。OpenFlow主要由控制器和交换机两部分组成。控制器控制着多个交换机,而网络管理员则通过控制器向交换机下发规则从而达到对整个网络进行管理的目的。随着OpenFlow协议的不断完善,不同版本的OpenFlow协议不断地推出。到目前为止,最新版本的OpenFlow已经推出到1.3版本。然而,现阶段,不同版本之间的控制器和交换机之间是无法协同工作的。具体而言,OpenFlow协议1.0版本控制器不能与OpenFlow协议1.2版本交换机相换进行协同工作。
发明内容
发明目的:本发明的目的是针对现有技术的不足而提供一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法,通过该驱动***及其方法,不同版本的OpenFlow控制器与交换机之间即可以协同工作。
技术方案:为了实现发明的目的,本发明公开了一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***,包括通信管理模块、解析模块以及协议处理模块;通信管理模块用于管理控制器与所有交换机之间的通信,包括数据包和消息的传输;协议处理模块包括若干具体协议处理单元,每个具体协议处理单元用于将进入该模块的消息转换成该具体协议处理单元所对应版本协议的消息类型;解析模块用于解析OpenFlow消息的包头获得版本号,并根据版本号进入相应的具体协议处理单元。
为了进一步实现发明的目的,本发明公开了一种用于不同版本OpenFlow控制器与交换机协同工作的驱动方法,包括以下步骤:(1)交换机请求与控制器进行连接,通信管理模块验证后,该交换机与控制器可以进行数据包和消息的传输; (2)交换机和控制器之间互发OFPT_HELLO,解析模块会解析交换机发来的OFPT_HELLO消息包头,并获得交换机的OpenFlow协议版本号,然后根据OpenFlow协议版本号进入到协议处理模块相应的具体协议处理单元;(3)相应的具体协议处理单元将进入该模块的消息转换成该具体协议处理单元所对应版本协议的消息类型。
作为优选,为了满足控制器对大量交换机的操作,支持交换机的扩展,并且提升控制器对交换机操作的效率,所述驱动方法的步骤(1)中交换机与控制器之间的通信采用epoll技术来管理。
作为优选,为了保证交换机与控制器之间通信的稳定性并且进一步提升通信效率,所述驱动方法的步骤(1)中交换机通过通信管理模块验证后,通信管理模块会存储一个对应该交换机的IP,并为该交换机分配一个文件描述符。
作为优选,为了适应OpenFlow协议的不断更新,所述驱动方法的协议处理模块的各具体协议处理单元为不同版本OpenFlow协议的处理与封装。
有益效果:本发明与现有技术相比:通过该驱动***及其方法,不同版本的OpenFlow协议下的控制器与交换机之间即可以协同工作。
附图说明
图1为本发明所述驱动***的结构图;
图2为本发明所述驱动方法的流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示,控制器通过驱动***与交换机通信,驱动***包括通信管理模块、解析模块以及协议处理模块;其中,通信管理模块通过epoll技术管理,协议处理模块包括了OpenFlow1.0模块、OpenFlow1.1模块、OpenFlow1.2模块、OpenFlow1.3模块,驱动***通过chanel与控制器进行通信。
如图2所示,通过epoll机制管理控制器与所有交换机之间的通信,控制器处于监听状态,若有一个新的交换机请求与控制器进行连接时,通信管理模块将会对该交换机进行验证,验证通过,通信管理模块会存储一个该交换机所对应IP,并为之分配一个文件描述符,从而进行数据包和消息的传输,否则控制器处理已建立的连接;控制器与交换机之间建立连接之后,会相互发送OFPT_HELLO消 息进行相互确认,通信管理模块则会对来自交换机的OFPT_HELLO消息进行解析,解析工作通过解析模块来完成,解析模块只解析OFPT_HELLO消息的包头ofp_header,而该包头在所有版本的ofp_header中都是相同的,因此不受协议版本不同的影响,解析模块根据从而ofp_header结构中解析的数据来获取8字节的版本号,然后根据版本号的不同进入到不同的具体协议处理单元;具体协议处理单元位于协议处理模块中,协议处理模块的各个具体协议处理单元的主要功能是将进入该模块的消息转换成该具体协议处理模块所对应协议版本的消息类型,例如,解析模块将信息传递到OpenFlow1.1模块,则该部分会将该消息转换成OpenFlow1.1版本,而在不同版本协议之间进行转换是其关键技术,如表1所示,两种版本协议相同部分即是指除了版本号的不同其他都一样,而可转换部分是指协议1/2可以通过适当的处理进而转换成协议2/1,例如OpenFlow1.0的Flow Table是一张10元组的单表,而OpenFlow1.1的Flow Table是各个表组成的流表流水线的形式,因此,在1.0与1.1版本之间进行转换时可以将单表通过一定的算法拆分成多表的流表流水线形式或者将多表合成一个单表,不可转换部分是指两种协议之间由于新特性的出现而无法进行转换,例如OpenFlow1.3协议新增有meta表,因此包含有meta表的消息无法在OpenFlow1.3以下的版本进行转换;若转换成功,则将该转换后的消息经过channel传递到控制器上层进行处理,否则进入下一个循环。
表1
本发明所述的技术方案在controller上设计了一个新型的驱动层架构,通过该架构可以使一个版本controller可以与其他不同版本的OpenFlow switch进行协同工作;该新型架构采用了模块化的的设计,其可以非常容易进行升级从而支持新的OpenFlow协议版本的加入。
Claims (5)
1.一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***,其特征在于,包括通信管理模块、解析模块以及协议处理模块;
通信管理模块用于管理控制器与所有交换机之间的通信,包括数据包和消息的传输;
协议处理模块包括若干具体协议处理单元,每个具体协议处理单元用于将进入该模块的消息转换成该具体协议处理单元所对应版本协议的消息类型;
解析模块用于解析OpenFlow消息的包头获得版本号,并根据版本号进入相应的具体协议处理单元。
2.一种使用权利要求1所述用于不同版本OpenFlow控制器与交换机协同工作驱动***的驱动方法,其特征在于,包括以下步骤:
(1)交换机请求与控制器进行连接,通信管理模块验证后,该交换机与控制器可以进行数据包和消息的传输;
(2)交换机和控制器之间互发OFPT_HELLO,解析模块会解析交换机发来的OFPT_HELLO消息包头,并获得交换机的OpenFlow协议版本号,然后根据OpenFlow协议版本号进入到协议处理模块相应的具体协议处理单元;
(3)相应的具体协议处理单元将进入该模块的消息转换成该具体协议处理单元所对应版本协议的消息类型。
3.如权利要求2所述的一种用于不同版本OpenFlow控制器与交换机协同工作的驱动方法,其特征在于,步骤(1)中交换机与控制器之间的通信采用epoll技术来管理。
4.如权利要求2所述的一种用于不同版本OpenFlow控制器与交换机协同工作的驱动方法,其特征在于,步骤(1)中交换机通过通信管理模块验证后,通信管理模块会存储一个对应该交换机的IP,并为该交换机分配一个文件描述符。
5.如权利要求2所述的一种用于不同版本OpenFlow控制器与交换机协同工作的驱动方法,其特征在于,协议处理模块的各具体协议处理单元为不同版本OpenFlow协议的处理与封装。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410025745.3A CN103780517A (zh) | 2014-01-20 | 2014-01-20 | 一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410025745.3A CN103780517A (zh) | 2014-01-20 | 2014-01-20 | 一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103780517A true CN103780517A (zh) | 2014-05-07 |
Family
ID=50572360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410025745.3A Pending CN103780517A (zh) | 2014-01-20 | 2014-01-20 | 一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780517A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105379198A (zh) * | 2014-06-11 | 2016-03-02 | 华为技术有限公司 | 转发控制方法、驱动器及sdn网络 |
CN109947581A (zh) * | 2019-03-29 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 高并发的数据传送方法及用于交换机的数据传送方法 |
CN110290092A (zh) * | 2018-03-19 | 2019-09-27 | 中国科学院沈阳自动化研究所 | 一种基于可编程交换机的sdn网络配置管理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308556A (zh) * | 2011-07-14 | 2012-01-04 | 华为技术有限公司 | 一种实现跨域信息处理的方法和*** |
US20130151685A1 (en) * | 2011-12-07 | 2013-06-13 | Citrix Systems, Inc. | Controlling A Network Interface Using Virtual Switch Proxying |
CN103209121A (zh) * | 2013-03-15 | 2013-07-17 | 中兴通讯股份有限公司 | 基于开放流协议的控制面设备的发现处理方法及装置 |
CN103327529A (zh) * | 2013-05-27 | 2013-09-25 | 北京邮电大学 | 针对移动通信网络的OpenFlow协议架构及业务分片处理方法 |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN103401786A (zh) * | 2013-07-12 | 2013-11-20 | 华为技术有限公司 | 网络拓扑建立、路径控制、报文传输方法及装置、*** |
-
2014
- 2014-01-20 CN CN201410025745.3A patent/CN103780517A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308556A (zh) * | 2011-07-14 | 2012-01-04 | 华为技术有限公司 | 一种实现跨域信息处理的方法和*** |
US20130151685A1 (en) * | 2011-12-07 | 2013-06-13 | Citrix Systems, Inc. | Controlling A Network Interface Using Virtual Switch Proxying |
CN103209121A (zh) * | 2013-03-15 | 2013-07-17 | 中兴通讯股份有限公司 | 基于开放流协议的控制面设备的发现处理方法及装置 |
CN103327529A (zh) * | 2013-05-27 | 2013-09-25 | 北京邮电大学 | 针对移动通信网络的OpenFlow协议架构及业务分片处理方法 |
CN103401786A (zh) * | 2013-07-12 | 2013-11-20 | 华为技术有限公司 | 网络拓扑建立、路径控制、报文传输方法及装置、*** |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105379198A (zh) * | 2014-06-11 | 2016-03-02 | 华为技术有限公司 | 转发控制方法、驱动器及sdn网络 |
CN110290092A (zh) * | 2018-03-19 | 2019-09-27 | 中国科学院沈阳自动化研究所 | 一种基于可编程交换机的sdn网络配置管理方法 |
CN110290092B (zh) * | 2018-03-19 | 2021-05-28 | 中国科学院沈阳自动化研究所 | 一种基于可编程交换机的sdn网络配置管理方法 |
CN109947581A (zh) * | 2019-03-29 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 高并发的数据传送方法及用于交换机的数据传送方法 |
CN109947581B (zh) * | 2019-03-29 | 2021-08-27 | 浪潮云信息技术股份公司 | 高并发的数据传送方法及用于交换机的数据传送方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9686383B2 (en) | Synchronization of traffic multiplexing in link aggregation | |
EP2800304A1 (en) | Technique for configuring a Software-Defined Network | |
CN103023826B (zh) | 一种OpenFlow控制器的路由控制方法 | |
CN105745883A (zh) | 转发表同步的方法、网络设备和*** | |
CN103944828A (zh) | 一种协议报文的传输方法和设备 | |
WO2011113394A3 (zh) | 一种路由器、虚拟集群路由器***及建立方法 | |
CN109743595A (zh) | 终端数据同步方法和装置 | |
CN101577711A (zh) | 利用vlan技术实现ip软件路由的网络安全平台的方法 | |
US20180359181A1 (en) | Ethernet frame transmission method in software defined networks (sdn) | |
CN110581975A (zh) | 一种会议终端更新方法和视联网*** | |
EP3182649B1 (en) | A method and a system for sideband server management | |
CN104734949B (zh) | 一种实现流表配置的方法及装置 | |
CN105681490B (zh) | 一种基于软件定义网络的防ip地址冲突方法 | |
CN103780517A (zh) | 一种用于不同版本OpenFlow控制器与交换机协同工作的驱动***及驱动方法 | |
JP2017532875A (ja) | データ交換方法、ベースバンド処理ユニット、無線リモートユニット及びリレーユニット | |
CN102055642A (zh) | 一种数据报文转换方法 | |
CN104796340B (zh) | 一种组播数据传输方法和设备 | |
CN104539539A (zh) | 一种 ac 设备多业务板数据转发方法 | |
CN106656554A (zh) | Mlag环境下实现lacp的方法及装置 | |
WO2016123975A1 (zh) | 数据传输方法及装置 | |
CN101267435A (zh) | 一种地址解析协议实现方法 | |
CN102394878B (zh) | 跨板点对点多链路协议捆绑方法及设备 | |
CN104486119A (zh) | 通过改进openflow协议实现批量管理交换机的方法及*** | |
CN102143157A (zh) | 数据传输方法、设备和通信*** | |
CN102412949A (zh) | 一种分布式***中nat端口资源支持双控制板的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140507 |