CN105357244A - 实现对网络逻辑实体的操作方法、客户端及代理端 - Google Patents
实现对网络逻辑实体的操作方法、客户端及代理端 Download PDFInfo
- Publication number
- CN105357244A CN105357244A CN201410419489.6A CN201410419489A CN105357244A CN 105357244 A CN105357244 A CN 105357244A CN 201410419489 A CN201410419489 A CN 201410419489A CN 105357244 A CN105357244 A CN 105357244A
- Authority
- CN
- China
- Prior art keywords
- client
- agent side
- function
- call request
- rpc
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种实现对网络逻辑实体的操作方法、客户端及代理端,其中方法包括:客户端与代理端的连接建立时,与代理端进行能力交换;客户端在与代理端的连接建立后,发现所述代理端提供的功能;客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。本发明的方案能够实现基于RPC的SDN,可以让使用者方便地对网络逻辑实体进行操作。
Description
技术领域
本发明涉及通信领域,特别是指一种基于RPC(利用远程过程调用)实现SDN(软件定义网络)中网络逻辑实体的操作方法、客户端及代理端。
背景技术
软件定义网络(SDN)是目前正在蓬勃发展的新的网络架构,其本质是通过软件定义的方式实现网络的智能化、自动化,达到更好的网络可管理性。
目前SDN的主要实现方式有以下几种:
Openflow协议,Openflow协议发源于2008年斯坦福教授nickMcKeown写的一篇论文,目前已经发展到了1.4版本。是整个SDN领域最为著名的实现协议。其本质思想是解耦控制面和转发面,把控制面从网络设备中剥离出来,使用通用的openflow协议去控制转发面。该协议的优势是可以解除厂商锁定,网络设备沦为通用转发设备,由此可以降低用户的成本(因为通用转发设备价格低廉)和提升用户控制管理网络的能力(可以使用openflow改变设备的转发行为)。但其缺点在于控制面和转发面解耦不能保护用户原有投资,实现通用转发的技术难度也比较大(因为各个厂商的转发表项结构不一致、可能只能使用软件来处理适配问题,而无法使用ASIC,这样会导致转发效率低下)。
I2RS,I2RS是IETF提出的另一种SDN实现。其本质是保留网络设备的控制面,但是可以开放接口给用户,用户可以使用该接口来改变主机的路由行为。该协议的优势是在现有设备上只要实现了I2RS接口,即可以使用软件定义,保护了用户的投资。但是目前进展存在几个问题。第一、领域仅限于路由领域,其他领域无法通过I2RS开放接口。第二、目前还处在概念阶段,尚未提出I2RS的具体实现协议。
NETCONF,NETCONF是IETF提出的解决网络配置的协议,其提出的背景是当时还不存在一个有效的、通用的网络配置协议,期望通过NETCONF完成网络配置的自动化、标准化。在SDN领域,NETCONF可以用来作为网络接口进行网络配置和信息获取(由于协议的特点非常适合网络自动化)。但是NETCONF的领域仅在配置领域,而SDN还包括网络操作领域(如修改路由表项、转发表项等),因此使用NETCONF作为SDN实现协议是不充分的。
综上所述,现有的SDN实现协议均不能完善的解决SDN场景和现有网络的冲突问题,如openflow支持现有网络平滑演进方面存在不足,I2RS尚未有可实现的协议,NETCONF在网络操作层面支持不足。
发明内容
本发明要解决的技术问题是提供一种基于RPC(利用远程过程调用)实现SDN(软件定义网络)中网络逻辑实体的操作方法、客户端及代理端;可以让使用者方便地对网络逻辑实体进行操作。
为解决上述技术问题,本发明的实施例提供一种实现对网络逻辑实体的操作方法,包括:
所述客户端与代理端的连接建立时,与代理端进行能力交换;
所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
所述客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;
所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。
其中,所述客户端与代理端的连接建立时,与代理端进行能力交换的步骤包括:
客户端向所述代理端发送第一Hello报文;所述第一Hello报文包括:客户端自身支持的协议版本号和支持的编码格式;
所述客户端接收所述代理端发送的第二hello报文,并解析,得到解析结果;
若所述解析结果表明:如果所述代理端不支持客户端的承载协议类型,或者代理端不支持客户端的协议版本和封装类型,则关闭连接;否则,连接建立。
其中,所述客户端在与代理端的连接建立后,发现所述代理端提供的功能的步骤包括:
所述客户端在与代理端的连接建立后,使用一协议规定的操作get-function-sets来获取代理端提供的功能。
其中,所述客户端使用一协议规定的操作get-function-sets来获取代理端提供的功能的步骤包括:
所述客户端向所述代理端发起get-function-sets请求;
所述客户端接收所述代理端根据get-function-sets请求回应的该代理端当前支持的功能集;
所述客户端向所述代理端请求一功能集的功能清单;
所述客户端接收所述代理端向所述客户端返回该客户端请求的功能集支持的功能清单。
其中,所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行的步骤包括:
所述客户端依据所述代理端根据当前的RPC调用请求反馈的对过程的执行结果以及所述代理端的功能,实现对网络逻辑实体的操作,所述执行结果包括:所述代理端将当前的RPC调用请求加入到待处理队列或者在处理中出现异常时抛出异常。
本发明的实施例还提供一种实现对网络逻辑实体的操作方法,应用于代理端,包括:
所述代理端在与客户端的连接建立时,与客户端进行能力交换;
所述代理端与客户端的连接建立时,向客户端提供其提供的功能;
所述代理端接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
其中,所述代理端在与客户端的连接建立时,与客户端进行能力交换的步骤包括:
代理端在承载层连接建立后,代理端向客户端发送第二Hello报文;所述第二Hello报文包括:代理端自身可以支持的承载协议、自身的协议版本号、支持的报文编码格式以及为客户端分配的session-id;
所述代理端接收客户端发送的第四Hello报文,并解析,得到解析结果;
若所述解析结果表明:客户端通告的协议版本和封装类型代理端不能支持,则关闭连接;否则代理端判断是否具有足够的资源建立会话,如果没有,则关闭连接,否则会话建立。
其中,会话建立后还包括:
代理端收到客户端的中断会话请求;
代理端判断是否存在正在处理的RPC调用请求,如果存在,把该RPC调用请求加入到待处理队列;否则,处理中断会话的请求。
其中,代理端与客户端进行能力交换后还包括:
如果代理端发现客户端和协议版本号和编码格式和自身没有交集,则主动关闭与客户端建立的会话。
其中,所述代理端接收所述客户端通过调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果的步骤包括:
代理端收到客户端发送的RPC调用请求后判断当前是否在处理RPC调用请求,如果是,则将当前的RPC调用请求加入到待处理队列,然后继续判断当前是否在处理RPC调用请求;如果当前没有处理RPC调用,则处理当前的RPC调用请求,如果处理中出现异常,则需要抛出异常,将得到RPC调用请求的处理结果封装成回应报文,发送给客户端,使客户端实现对网络逻辑实体的操作。
本发明的实施例还提供一种客户端,包括:
能力交换模块,用于在客户端与代理端的连接建立时,与代理端进行能力交换;
发现模块,用于在所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
发送模块,用于调用客户端的利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;
操作模块,用于根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。
本发明的实施例还提供一种代理端,包括:
能力交换模块,用于在与客户端的连接建立时,与客户端进行能力交换;
提供模块,用于与客户端的连接建立后,向客户端提供其提供的功能;
反馈模块,用于接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
本发明的上述技术方案的有益效果如下:
上述方案中,通过客户端与代理端的连接建立时,与代理端进行能力交换;所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;所述客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。从而可以让使用者方便地对网络逻辑实体进行操作。
附图说明
图1为本发明的系统部署架构示意图;
图2为本发明的实现对网络逻辑实体的操作方法流程示意图;
图3为本发明的客户端连接会话建立流程示意图;
图4为本发明的代理端连接会话建立流程示意图;
图5为本发明的会话中断流程示意图;
图6为本发明的RPC处理流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明所要解决的技术问题是:在SDN领域,通过网络设备提供的可编程接口RPC来完成对网络设备的软件定义的。目前主要的SDN协议均是延续传统网络的思想,通过定义逻辑实体的数据模型,然后通过通用的CRUD(创建、获取、更新、删除)操作对逻辑实体进行修改。但是这种数据模型存在以下问题:
1、由于数据模型直接定义了实体的数据项,使得不同厂商实现时必须按照这些数据项进行实现,增加了不同厂商实现的难度。从这个角度来看,数据模型驱动的网络模型是面向实现的模型而不是面向接口的模型。
2、有些实体仅仅只是定义了一个过程,并没有对应的数据模型。如tracert,ping等操作,本质上只是激发了一个过程。基于数据模型的网络模型对此是很难处理的。
而通过比照现有的一些高级的编程语言,如JAVA,C++等,以及软件设计领域的面向对象的思想,可以发现,面向接口编程而不是面向实现编程是软件领域的方向。通过定义逻辑实体的行为模型而不是数据模型,让网络操作者(如SDN中的controller或app)通过实体提供的功能接口来完成网络操作。
但现有SDN的相关协议对这种基于行为模型的网络操作支持不足,没有一种平滑、可扩展、易于使用的对网络操作提供支持的框架性协议。
鉴于此,本发明提出了一种基于RPC(RemoteProcedureCall,远程过程调用)实现SDN的一种方式,这种方式被称之为网络操作协议。通过该协议,可以让使用者方便地对网络逻辑实体进行操作。
RPC采用一种和具体编程语言无关的形式来描述本计算机提供的可编程接口,接口描述采用某种接口定义语言(IDL)来描述,只有某个计算机上能够解析该接口定义语言,就可以知道对端计算机提供了哪些可编程接口,然后在具体的程序中直接调用该接口。
具体到网络操作协议,网络逻辑实体通过IDL描述自身的行为模型,使用者根据该行为模型转化为对应的网络操作,通过使用网络操作协议来完成该操作的执行。
本发明的实施例提供的具体技术方案如下:
如图1所示,基于RPC(RemoteProcedureCall)实现SDN的网络部署和架构:RPCclient(客户端)部署在网络应用程序上,RPCagent(代理端)部署在网元上。每个client可以和多个agent进行通讯,每个agent也可以和多个client进行通讯。网络应用程序通过RPCclient下发RPC请求给网元上的RPCagent,RPCagent调用网元的功能单元进行处理。
如图2所示,本发明的实施例提供的一种实现对网络逻辑实体的操作方法,包括:
步骤11,所述客户端与代理端的连接建立时,与代理端进行能力交换;
步骤12,所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
步骤13,所述客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;
步骤14,所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。
本发明的该实施例中,客户端和代理端会事先加载代理端的IDL,IDL描述了代理端提供的功能项,如写状态数据的功能,支持PING操作的功能等,客户端和代理端依据代理端的IDL描述的内容作为对接口的约定;客户端与代理端的连接建立时,与代理端进行能力交换;所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;所述客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。从而实现基于RPC(RemoteProcedureCall)实现SDN,使用者根据该行为模型转化为对应的网络操作,通过使用网络操作协议来完成该操作的执行。
在上述实施例中,客户端与代理端建立连接时,是基于承载层的连接,对承载层的要求:承载层必须满足数据加密和用户认证,以保证通过本发明描述的SDN协议对RPC的使用者和提供者是安全的。承载层必须是基于有连接的协议。RPCagent必须实现TLS(传输层安全)承载。
协议能力交换:承载层连接建立时,代理端和客户端必须进行能力交换,以保证双方能够以一致的方式使用本发明的实施例所述的方法。
在能力交换时,客户端向代理端通告自身支持的协议版本号、支持的编码格式(按照优选的顺序进行排序)。
客户端和代理端必须支持XML编码格式,也可以支持其他的编码格式。通告报文必须是XML编码格式。如果代理端发现客户端和协议版本号和编码格式和自身没有交集,则必须主动关闭连接。
具体的,本发明的另一实施例中,上述步骤11可具体包括:
步骤111,所述客户端向所述代理端发送第一Hello报文;所述第一Hello报文包括:客户端自身支持的协议版本号和支持的编码格式;
步骤112,所述客户端接收所述代理端发送的第二hello报文,并解析,得到解析结果;
步骤113,若所述解析结果表明:如果所述代理端不支持客户端的承载协议类型,或者代理端不支持客户端的协议版本和封装类型,则关闭连接;否则,会话建立。
具体的,如图3所示,客户端的连接建立流程包括:
步骤101:客户端向代理端发送第一hello报文,第一hello报文的内容需要符合协议能力交换的规定。
客户端发送的第一hello报文举例:
步骤102:客户端接收代理端发送的第二hello报文。
步骤103:客户端收到代理端发送的第二hello报文,并解析,得到解析结果。
步骤104:如果解析结果表明:代理端不支持客户端的承载协议类型,或者代理端不支持客户端的协议版本和封装类型,则转步骤105。否则,转到步骤106。
步骤105:关闭连接。
步骤106:会话建立。
会话建立后,客户端需要使用代理端功能发现来发现代理端提供了哪些功能。
代理端功能是以功能集为单位提供的,一个功能集包括了一组相关的功能。
客户端可以使用一个协议规定的操作get-function-sets来获取代理端的功能集。也可以使用get-functions操作来获取指定功能集中包含了哪些功能。
功能(RPC)的定义:必须要定义RPC的名称和归属于哪个功能集。如果有必要,还需要定义RPC的输入参数、输出参数和声明可能会抛出的异常。
在本发明的另一具体实施例中,上述步骤12中,所述客户端在与代理端的连接建立后,使用一协议规定的操作get-function-sets来获取代理端提供的功能;且所述客户端使用一协议规定的操作get-function-sets来获取代理端的功能集的步骤包括:
步骤121,所述客户端向所述代理端发起get-function-sets请求;
步骤122,所述客户端接收所述代理端根据get-function-sets请求回应的该代理端当前支持的功能集;
步骤123,所述客户端向所述代理端请求一功能集的功能清单;
步骤124,所述客户端接收所述代理端向所述客户端返回该客户端请求的功能集支持的功能清单。
具体的,步骤121中,客户端向代理端发起get-function-sets请求,
示例报文:
<requestmessage-id=“102”>
<get-function-setsxmlns=”http://example.com/nop”/>
</request>
步骤122中,代理端收到此请求后,向客户端回应当前支持的功能集,
示例报文:
步骤123中,客户端向代理端请求某个功能集的功能清单,
示例报文:
步骤124中,代理端向客户端返回此功能集支持的功能清单,
本发明的另一具体实施例中,上述步骤14包括:
所述客户端依据所述代理端根据当前的RPC调用请求反馈的对过程的执行结果,实现对网络逻辑实体的操作,所述执行结果包括:所述代理端将当前的RPC调用请求加入到待处理队列或者在处理中出现异常时抛出异常。
具体的,如图6所示,客户端与代理端的RPC处理流程包括:
步骤501:应用程序(客户端)调用RPC接口。
步骤502:该调用会触发向代理端发出RPC调用请求。
步骤503:代理端收到RPC调用请求。
步骤504:代理端判断当前是否在处理RPC调用请求,如果是,则转到步骤505,否则转到步骤506。
步骤505:将当前的RPC调用请求加入到待处理队列,然后转到步骤504。
步骤506:处理当前的RPC调用请求,如果处理中出现异常,则需要抛出异常。
步骤507:得到RPC的处理结果,并封装回应报文。
步骤508:客户端处理得到的回应结果。
注:RPC处理必须按照收到的RPC调用请求的先后顺序处理,并在在前一个RPC调用请求未处理完成时,不能处理下一个RPC调用请求。
示例报文:
使用NOP调用代理端的netconf功能完成edit-config操作。
请求报文:
如果成功,回应报文为:
如果失败,则会抛出异常
本发明的上述实施例通过客户端调用RPC接口,触发向代理端发送RPC调用请求,并与代理端通过功能发现,发现代理端的功能,根据所述代理端根据所述RPC调用请求对过程的执行结果,实现对网络逻辑实体的操作,从而可以很好的支持网络可编程,并使用功能定义来取代数据定义,可以屏蔽不同厂商数据定义的差异,能够更好更方便地进行网络功能抽象;并可以支持现有网络向SDN的演进,保护用户投资;可以支持定义不操作具体数据项的处理过程;可以将现有的基于RPC的管理协议,如NETCONF,纳入到统一的框架中,从而最大限度地利用现有的成果。
本发明的实施例还提供一种实现对网络逻辑实体的操作方法,应用于代理端,该方法包括:
步骤21,所述代理端在与客户端的连接建立时,与客户端进行能力交换;
步骤22,所述代理端与客户端的连接建立后,向客户端提供其提供的功能;
步骤23,所述代理端接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
代理端必须向客户端通告自身可以支持的承载协议、自身的协议版本号、支持的报文编码格式以及为该客户端分配的session-id。
其中,步骤21具体可以包括:
步骤221,代理端在承载层连接建立时,代理端向客户端发送第二Hello报文;所述第二Hello报文包括:代理端自身可以支持的承载协议、自身的协议版本号、支持的报文编码格式以及为客户端分配的session-id;
步骤222,所述代理端接收客户端发送的第一Hello报文,并解析,得到解析结果;
步骤223,若所述解析结果表明:客户端通告的协议版本和封装类型代理端不能支持,则关闭连接;否则代理端判断是否具有足够的资源建立会话,如果没有,则关闭连接,否则会话建立。
具体的,如图4所示,代理端会话建立流程如附图3所示:
步骤201:承载层连接建立时,代理端和客户端同时向对端发送hello报文。
代理端发送的第二hello报文举例:
<hello>
<transport>tlsssh</transport>
<version>1.01.1</version>
<encode>xmljson</encode>
<session-id>101</session-id>
</hello>
步骤202:代理端接收客户端发送的第一hello报文。
步骤203:代理端收到客户端的第一hello报文,并解析。
步骤204:如果客户端通告的协议版本和封装类型代理端不能支持,则转步骤205。否则,转步骤206。
步骤205:关闭连接。
步骤206:代理端判断是否具有足够的资源建立会话,如果没有,则转到步骤205,否则转到207。
步骤207:会话建立。
其中,本发明的一具体实施例中,会话建立后还可以包括:
步骤224,代理端收到客户端的中断会话请求;
步骤225,代理端判断是否存在正在处理的RPC调用请求,如果存在,把该RPC调用请求加入到待处理队列;否则,处理中断会话的请求。
具体的,会话中断流程如图5所示,会话中断流程分为主动中断和强制中断两种,包括:
步骤301:客户端发起中断会话请求。
步骤302:代理端收到中断会话请求。
步骤303:代理端判断是否存在正在处理的RPC请求,如果存在,进入步骤304。否则进入步骤305。
步骤304:把该请求加入到待处理队列。
步骤305:处理中断会话的请求。如果中断的是本会话的话,则直接关闭本会话,否则会关闭指定的会话,而不管该会话是否还在处理RPC。
报文举例:
主动中断会话,请求报文:
<requestmessage-id=“101”>
<close-sessionxmlns=”http://example.com/nop”/>
</request>
回应报文:
强制中断其他会话:请求报文:
回应报文:
此外,本发明的上述实施例中,代理端与客户端进行能力交换后还可以包括:如果代理端发现客户端和协议版本号和编码格式和自身没有交集,则主动关闭与客户端建立的会话。
其中,和客户端处理RPC流程相应的,如图6所示,该代理端侧,上述步骤包括:
代理端收到客户端发送的RPC调用请求后判断当前是否在处理RPC调用请求,如果是,则将当前的RPC调用请求加入到待处理队列,然后继续判断当前是否在处理RPC调用请求;如果当前没有处理RPC调用,则处理当前的RPC调用请求,如果处理中出现异常,则需要抛出异常,将得到RPC调用请求的处理结果封装成回应报文,发送给客户端,使客户端实现对网络逻辑实体的操作。
具体的,步骤501:应用程序(客户端)调用RPC接口。
步骤502:该调用会触发向代理端发出RPC调用请求。
步骤503:代理端收到RPC调用请求。
步骤504:代理端判断当前是否在处理RPC调用请求,如果是,则转到步骤505,否则转到步骤506。
步骤505:将当前的RPC调用请求加入到待处理队列,然后转到步骤504。
步骤506:处理当前的RPC调用请求,如果处理中出现异常,则需要抛出异常。
步骤507:得到RPC的处理结果,并封装回应报文。
步骤508:客户端处理得到的回应结果。
需要说明的是:上述客户端侧的实施例中,步骤501-508的具体报文实例同样适用于该实施例中。
与上述客户端实现对网络逻辑实体的操作方法相应对应的,本发明的实施例还提供一种客户端,包括:
能力交换模块,用于在客户端与代理端的连接建立时,与代理端进行能力交换;
发现模块,用于在所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
发送模块,用于调用客户端的利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;
操作模块,用于根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。
且上述客户端实现对网络逻辑实体操作的方法的具体实现方式均适用于该客户端的实施例中,也能达到相同的技术效果。
与上述代理端实现对网络逻辑实体的操作方法相对应的,本发明的实施例还提供一种代理端,包括:
能力交换模块,用于在与客户端的连接建立时,与客户端进行能力交换;
提供模块,用于与客户端的连接建立后,向客户端提供其提供的功能;
反馈模块,用于接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
且上述代理端实现对网络逻辑实体操作的方法的具体实现方式均适用于该客户端的实施例中,也能达到相同的技术效果。
本发明的上述实施例中,使用RPC来完成软件定义网络(SDN)的总体工作流程通过将网络设备需要提供的功能使用RPC的IDL方式描述出来,客户端(一般是控制器)和代理端(网络设备)都加载IDL文件,并解析,客户端和服务器建立链接,双方进行能力交换,客户端发现代理端提供的功能,客户端根据需要调用合适的RPC接口完成软件定义的功能,服务器端收到RPC调用请求后,执行该过程,并向客户端返回执行结果,客户端收到执行结果后,根据执行结果来决定下一步的操作。从而可以很好的支持网络可编程,本发明使用功能定义来取代数据定义,可以屏蔽不同厂商数据定义的差异,能够更好更方便地进行网络功能抽象;本发明可以支持现有网络向SDN的演进,保护用户投资;本发明可以支持定义不操作具体数据项的处理过程;本发明可以将现有的基于RPC的管理协议,如NETCONF,纳入到统一的框架中,从而最大限度地利用现有的成果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种实现对网络逻辑实体的操作方法,应用于客户端,其特征在于,包括:
所述客户端与代理端的连接建立时,与代理端进行能力交换;
所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
所述客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;
所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。
2.根据权利要求1所述的实现对网络逻辑实体的操作方法,其特征在于,所述客户端与代理端的连接建立时,与代理端进行能力交换的步骤包括:
客户端向所述代理端发送第一Hello报文;所述第一Hello报文包括:客户端自身支持的协议版本号和支持的编码格式;
所述客户端接收所述代理端发送的第二hello报文,并解析,得到解析结果;
若所述解析结果表明:如果所述代理端不支持客户端的承载协议类型,或者代理端不支持客户端的协议版本和封装类型,则关闭连接;否则,连接建立。
3.根据权利要求1所述的实现对网络逻辑实体的操作方法,其特征在于,所述客户端在与代理端的连接建立后,发现所述代理端提供的功能的步骤包括:
所述客户端在与代理端的连接建立后,使用一协议规定的操作get-function-sets来获取代理端提供的功能。
4.根据权利要求3所述的实现对网络逻辑实体的操作方法,其特征在于,所述客户端使用一协议规定的操作get-function-sets来获取代理端提供的功能的步骤包括:
所述客户端向所述代理端发起get-function-sets请求;
所述客户端接收所述代理端根据get-function-sets请求回应的该代理端当前支持的功能集;
所述客户端向所述代理端请求一功能集的功能清单;
所述客户端接收所述代理端向所述客户端返回该客户端请求的功能集支持的功能清单。
5.根据权利要求1所述的实现对网络逻辑实体的操作方法,其特征在于,所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行的步骤包括:
所述客户端依据所述代理端根据当前的RPC调用请求反馈的对过程的执行结果以及所述代理端的功能,实现对网络逻辑实体的操作,所述执行结果包括:所述代理端将当前的RPC调用请求加入到待处理队列或者在处理中出现异常时抛出异常。
6.一种实现对网络逻辑实体的操作方法,应用于代理端,其特征在于,包括:
所述代理端在与客户端的连接建立时,与客户端进行能力交换;
所述代理端与客户端的连接建立后,向客户端提供其提供的功能;
所述代理端接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
7.根据权利要求6所述的实现对网络逻辑实体的操作方法,其特征在于,所述代理端在与客户端的连接建立时,与客户端进行能力交换的步骤包括:
代理端在承载层连接建立时,代理端向客户端发送第二Hello报文;所述第二Hello报文包括:代理端自身可以支持的承载协议、自身的协议版本号、支持的报文编码格式以及为客户端分配的session-id;
所述代理端接收客户端发送的第一Hello报文,并解析,得到解析结果;
若所述解析结果表明:客户端通告的协议版本和封装类型代理端不能支持,则关闭连接;否则代理端判断是否具有足够的资源建立会话,如果没有,则关闭连接,否则会话建立。
8.根据权利要求7所述的实现对网络逻辑实体的操作方法,其特征在于,会话建立后还包括:
代理端收到客户端的中断会话请求;
代理端判断是否存在正在处理的RPC调用请求,如果存在,把该RPC调用请求加入到待处理队列;否则,处理中断会话的请求。
9.根据权利要求7所述的实现对网络逻辑实体的操作方法,其特征在于,代理端与客户端进行能力交换后还包括:
如果代理端发现客户端和协议版本号和编码格式和自身没有交集,则主动关闭与客户端建立的会话。
10.根据权利要求6所述的实现对网络逻辑实体的操作方法,其特征在于,所述代理端接收所述客户端通过调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果的步骤包括:
代理端收到客户端发送的RPC调用请求后判断当前是否在处理RPC调用请求,如果是,则将当前的RPC调用请求加入到待处理队列,然后继续判断当前是否在处理RPC调用请求;如果当前没有处理RPC调用,则处理当前的RPC调用请求,如果处理中出现异常,则需要抛出异常,将得到RPC调用请求的处理结果封装成回应报文,发送给客户端,使客户端实现对网络逻辑实体的操作。
11.一种客户端,其特征在于,包括:
能力交换模块,用于在客户端与代理端的连接建立时,与代理端进行能力交换;
发现模块,用于在所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
发送模块,用于调用客户端的利用远程过程调用RPC接口,向所述代理端发送RPC调用请求;
操作模块,用于根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述代理端的功能,实现对网络操作的执行。
12.一种代理端,其特征在于,包括:
能力交换模块,用于在与客户端的连接建立时,与客户端进行能力交换;
提供模块,用于与客户端的连接建立后,向客户端提供其提供的功能;
反馈模块,用于接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410419489.6A CN105357244A (zh) | 2014-08-22 | 2014-08-22 | 实现对网络逻辑实体的操作方法、客户端及代理端 |
PCT/CN2014/089498 WO2015117415A1 (zh) | 2014-08-22 | 2014-10-24 | 实现对网络逻辑实体的操作方法、客户端及代理端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410419489.6A CN105357244A (zh) | 2014-08-22 | 2014-08-22 | 实现对网络逻辑实体的操作方法、客户端及代理端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105357244A true CN105357244A (zh) | 2016-02-24 |
Family
ID=53777232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410419489.6A Pending CN105357244A (zh) | 2014-08-22 | 2014-08-22 | 实现对网络逻辑实体的操作方法、客户端及代理端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105357244A (zh) |
WO (1) | WO2015117415A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107306202A (zh) * | 2016-04-25 | 2017-10-31 | 华为技术有限公司 | 一种网络管理方法、服务器、客户端及系统 |
CN107800595A (zh) * | 2016-09-02 | 2018-03-13 | 姚伟志 | 面向服务的智能设备交互方法 |
CN108289060A (zh) * | 2017-01-09 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种基于rpc服务的数据处理方法以及装置 |
WO2019100819A1 (zh) * | 2017-11-24 | 2019-05-31 | 中兴通讯股份有限公司 | 一种实现远程过程调用的方法及装置 |
CN111654480A (zh) * | 2020-05-24 | 2020-09-11 | 中信银行股份有限公司 | 一种rpc连接建立方法、装置及存储介质 |
CN113472841A (zh) * | 2021-05-13 | 2021-10-01 | 新华三技术有限公司合肥分公司 | 终止远程过程调用请求的实现方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296124A (zh) * | 2008-06-27 | 2008-10-29 | 华为技术有限公司 | 获取设备信息的方法、设备和系统 |
CN101557309A (zh) * | 2009-05-07 | 2009-10-14 | 成都市华为赛门铁克科技有限公司 | 网络配置方法、客户端、服务器及通信系统 |
CN101795289A (zh) * | 2009-12-30 | 2010-08-04 | 华为技术有限公司 | 一种远程过程调用控制方法、装置和系统 |
CN102148817A (zh) * | 2010-12-08 | 2011-08-10 | 华为技术有限公司 | 配置网络设备的方法、客户端、服务器端及网络系统 |
-
2014
- 2014-08-22 CN CN201410419489.6A patent/CN105357244A/zh active Pending
- 2014-10-24 WO PCT/CN2014/089498 patent/WO2015117415A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296124A (zh) * | 2008-06-27 | 2008-10-29 | 华为技术有限公司 | 获取设备信息的方法、设备和系统 |
CN101557309A (zh) * | 2009-05-07 | 2009-10-14 | 成都市华为赛门铁克科技有限公司 | 网络配置方法、客户端、服务器及通信系统 |
CN101795289A (zh) * | 2009-12-30 | 2010-08-04 | 华为技术有限公司 | 一种远程过程调用控制方法、装置和系统 |
CN102148817A (zh) * | 2010-12-08 | 2011-08-10 | 华为技术有限公司 | 配置网络设备的方法、客户端、服务器端及网络系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107306202A (zh) * | 2016-04-25 | 2017-10-31 | 华为技术有限公司 | 一种网络管理方法、服务器、客户端及系统 |
CN107306202B (zh) * | 2016-04-25 | 2020-09-04 | 华为技术有限公司 | 一种网络管理方法、服务器、客户端及系统 |
CN107800595A (zh) * | 2016-09-02 | 2018-03-13 | 姚伟志 | 面向服务的智能设备交互方法 |
CN108289060A (zh) * | 2017-01-09 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种基于rpc服务的数据处理方法以及装置 |
CN108289060B (zh) * | 2017-01-09 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种基于rpc服务的数据处理方法以及装置 |
WO2019100819A1 (zh) * | 2017-11-24 | 2019-05-31 | 中兴通讯股份有限公司 | 一种实现远程过程调用的方法及装置 |
CN109840155A (zh) * | 2017-11-24 | 2019-06-04 | 中兴通讯股份有限公司 | 一种实现远程过程调用的方法及装置 |
CN109840155B (zh) * | 2017-11-24 | 2023-04-07 | 中兴通讯股份有限公司 | 一种实现远程过程调用的方法及装置 |
CN111654480A (zh) * | 2020-05-24 | 2020-09-11 | 中信银行股份有限公司 | 一种rpc连接建立方法、装置及存储介质 |
CN113472841A (zh) * | 2021-05-13 | 2021-10-01 | 新华三技术有限公司合肥分公司 | 终止远程过程调用请求的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015117415A1 (zh) | 2015-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105357244A (zh) | 实现对网络逻辑实体的操作方法、客户端及代理端 | |
CN112799789A (zh) | 一种节点集群管理方法、装置、设备及存储介质 | |
US10148565B2 (en) | OPENFLOW communication method and system, controller, and service gateway | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及系统、消息服务系统 | |
US20120047245A1 (en) | Method for provisioning parameters of terminal, system thereof, and terminal management device | |
US9565218B2 (en) | Resource management for WebRTC | |
EP3662638B1 (en) | Transport method selection for delivery of server notifications | |
US20090113460A1 (en) | Systems and methods for providing a generic interface in a communications environment | |
US20080016157A1 (en) | Method and system for controlling and monitoring an apparatus from a remote computer using session initiation protocol (sip) | |
EP2429150A1 (en) | Apparatus, web service component and method based on web service | |
WO2012122767A1 (zh) | 一种云计算的实现方法、系统及终端 | |
WO2018017171A1 (en) | Efficient transport of encapsulated media traffic over a datagram based transport layer | |
CN114172929A (zh) | 通信方法、装置以及网关 | |
CN104486330A (zh) | 一种基于远程过程调用的双向通信系统 | |
WO2016124115A1 (zh) | 多账号登录、通讯方法、装置和移动终端 | |
WO2015117365A1 (zh) | Hello报文交互的方法、设备和系统 | |
CN106657076B (zh) | 一种网络命名空间的tcp服务实现方法及装置 | |
CN112217845B (zh) | 一种基于Netconf协议的数据传输方法及相关设备 | |
CN113965571B (zh) | 一种分布式嵌入式设备的管理方法、装置、设备及介质 | |
CN105072026A (zh) | 物联网网关通信系统 | |
CN105516097A (zh) | 基于Thrift数据格式的混合架构消息系统及消息传输方法 | |
Puthalath et al. | Negotiating on-demand connectivity between clouds and wide area networks | |
CN110401557B (zh) | 一种终端设备的网络配置方法、装置及服务器 | |
CN112565458A (zh) | 平台远程控制方法和装置、存储介质及电子设备 | |
CN112165529A (zh) | 一种低成本跨网络数据交换的方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160224 |