实现对网络逻辑实体的操作方法、客户端及代理端的制作方法

文档序号:9600888阅读:240来源:国知局
实现对网络逻辑实体的操作方法、客户端及代理端的制作方法
【技术领域】
[0001] 本发明涉及通信领域,特别是指一种基于RPC(利用远程过程调用)实现SDN(软 件定义网络)中网络逻辑实体的操作方法、客户端及代理端。
【背景技术】
[0002] 软件定义网络(SDN)是目前正在蓬勃发展的新的网络架构,其本质是通过软件定 义的方式实现网络的智能化、自动化,达到更好的网络可管理性。
[0003] 目前SDN的主要实现方式有以下几种:
[0004]Openflow协议,Openflow协议发源于2008年斯坦福教授nickMcKeown写的一 篇论文,目前已经发展到了 1.4版本。是整个SDN领域最为著名的实现协议。其本质思想 是解耦控制面和转发面,把控制面从网络设备中剥离出来,使用通用的openflow协议去控 制转发面。该协议的优势是可以解除厂商锁定,网络设备沦为通用转发设备,由此可以降低 用户的成本(因为通用转发设备价格低廉)和提升用户控制管理网络的能力(可以使用 openflow改变设备的转发行为)。但其缺点在于控制面和转发面解耦不能保护用户原有投 资,实现通用转发的技术难度也比较大(因为各个厂商的转发表项结构不一致、可能只能 使用软件来处理适配问题,而无法使用ASIC,这样会导致转发效率低下)。
[0005]I2RS,I2RS是IETF提出的另一种SDN实现。其本质是保留网络设备的控制面,但 是可以开放接口给用户,用户可以使用该接口来改变主机的路由行为。该协议的优势是在 现有设备上只要实现了I2RS接口,即可以使用软件定义,保护了用户的投资。但是目前进 展存在几个问题。第一、领域仅限于路由领域,其他领域无法通过I2RS开放接口。第二、目 前还处在概念阶段,尚未提出I2RS的具体实现协议。
[0006]NETC0NF,NETC0NF是IETF提出的解决网络配置的协议,其提出的背景是当时还 不存在一个有效的、通用的网络配置协议,期望通过NETC0NF完成网络配置的自动化、标准 化。在SDN领域,NETC0NF可以用来作为网络接口进行网络配置和信息获取(由于协议的 特点非常适合网络自动化)。但是NETC0NF的领域仅在配置领域,而SDN还包括网络操作领 域(如修改路由表项、转发表项等),因此使用NETC0NF作为SDN实现协议是不充分的。
[0007] 综上所述,现有的SDN实现协议均不能完善的解决SDN场景和现有网络的冲突问 题,如openflow支持现有网络平滑演进方面存在不足,I2RS尚未有可实现的协议,NETC0NF 在网络操作层面支持不足。

【发明内容】

[0008] 本发明要解决的技术问题是提供一种基于RPC(利用远程过程调用)实现SDN(软 件定义网络)中网络逻辑实体的操作方法、客户端及代理端;可以让使用者方便地对网络 逻辑实体进行操作。
[0009] 为解决上述技术问题,本发明的实施例提供一种实现对网络逻辑实体的操作方 法,包括:
[0010] 所述客户端与代理端的连接建立时,与代理端进行能力交换;
[0011] 所述客户端在与代理端的连接建立后,发现所述代理端提供的功能;
[0012] 所述客户端调用其利用远程过程调用RPC接口,向所述代理端发送RPC调用请 求;
[0013] 所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及所述 代理端的功能,实现对网络操作的执行。
[0014] 其中,所述客户端与代理端的连接建立时,与代理端进行能力交换的步骤包括:
[0015] 客户端向所述代理端发送第一Hello报文;所述第一Hello报文包括:客户端自 身支持的协议版本号和支持的编码格式;
[0016] 所述客户端接收所述代理端发送的第二hello报文,并解析,得到解析结果;
[0017] 若所述解析结果表明:如果所述代理端不支持客户端的承载协议类型,或者代理 端不支持客户端的协议版本和封装类型,则关闭连接;否则,连接建立。
[0018] 其中,所述客户端在与代理端的连接建立后,发现所述代理端提供的功能的步骤 包括:
[0019] 所述客户端在与代理端的连接建立后,使用一协议规定的操作 get-function-sets来获取代理端提供的功能。
[0020] 其中,所述客户端使用一协议规定的操作get-function-sets来获取代理端提供 的功能的步骤包括:
[0021] 所述客户端向所述代理端发起get-function-sets请求;
[0022] 所述客户端接收所述代理端根据get-function-sets请求回应的该代理端当前 支持的功能集;
[0023] 所述客户端向所述代理端请求一功能集的功能清单;
[0024] 所述客户端接收所述代理端向所述客户端返回该客户端请求的功能集支持的功 能清单。
[0025] 其中,所述客户端根据所述代理端根据所述RPC调用请求对过程的执行结果以及 所述代理端的功能,实现对网络操作的执行的步骤包括:
[0026] 所述客户端依据所述代理端根据当前的RPC调用请求反馈的对过程的执行结果 以及所述代理端的功能,实现对网络逻辑实体的操作,所述执行结果包括:所述代理端将当 前的RPC调用请求加入到待处理队列或者在处理中出现异常时抛出异常。
[0027] 本发明的实施例还提供一种实现对网络逻辑实体的操作方法,应用于代理端,包 括:
[0028] 所述代理端在与客户端的连接建立时,与客户端进行能力交换;
[0029] 所述代理端与客户端的连接建立时,向客户端提供其提供的功能;
[0030] 所述代理端接收所述客户端通过调用利用远程过程调用RPC接口向所述代理端 发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述执 行结果和所述代理端的功能,实现对网络逻辑实体的操作。
[0031] 其中,所述代理端在与客户端的连接建立时,与客户端进行能力交换的步骤包 括:
[0032] 代理端在承载层连接建立后,代理端向客户端发送第二Hello报文;所述第二 Hello报文包括:代理端自身可以支持的承载协议、自身的协议版本号、支持的报文编码格 式以及为客户端分配的session-id ;
[0033] 所述代理端接收客户端发送的第四Hello报文,并解析,得到解析结果;
[0034] 若所述解析结果表明:客户端通告的协议版本和封装类型代理端不能支持,则关 闭连接;否则代理端判断是否具有足够的资源建立会话,如果没有,则关闭连接,否则会话 建立。
[0035]其中,会话建立后还包括:
[0036] 代理端收到客户端的中断会话请求;
[0037] 代理端判断是否存在正在处理的RPC调用请求,如果存在,把该RPC调用请求加入 到待处理队列;否则,处理中断会话的请求。
[0038] 其中,代理端与客户端进行能力交换后还包括:
[0039] 如果代理端发现客户端和协议版本号和编码格式和自身没有交集,则主动关闭与 客户端建立的会话。
[0040] 其中,所述代理端接收所述客户端通过调用RPC接口向所述代理端发送的RPC调 用请求,并向所述客户端返回对过程的执行结果的步骤包括:
[0041] 代理端收到客户端发送的RPC调用请求后判断当前是否在处理RPC调用请求,如 果是,则将当前的RPC调用请求加入到待处理队列,然后继续判断当前是否在处理RPC调用 请求;如果当前没有处理RPC调用,则处理当前的RPC调用请求,如果处理中出现异常,则需 要抛出异常,将得到RPC调用请求的处理结果封装成回应报文,发送给客户端,使客户端实 现对网络逻辑实体的操作。
[0042] 本发明的实施例还提供一种客户端,包括:
[0043] 能力交换模块,用于在客户端与代理端的连接建立时,与代理端进行能力交换;
[0044] 发现模块,用于在所述客户端在与代理端的连接建立后,发现所述代理端提供的 功能;
[0045] 发送模块,用于调用客户端的利用远程过程调用RPC接口,向所述代理端发送RPC 调用请求;
[0046] 操作模块,用于根据所述代理端根据所述RPC调用请求对过程的执行结果以及所 述代理端的功能,实现对网络操作的执行。
[0047] 本发明的实施例还提供一种代理端,包括:
[0048] 能力交换模块,用于在与客户端的连接建立时,与客户端进行能力交换;
[0049] 提供模块,用于与客户端的连接建立后,向客户端提供其提供的功能;
[0050] 反馈模块,用于接收所述客户端通过调用利用远程过程调用RPC接口向所述代理 端发送的RPC调用请求,并向所述客户端返回对过程的执行结果,使所述客户端根据所述 执行结果和所述代理端的功能,实现对网络逻辑实体的操作。
[0051] 本发明的上述技术方案的有益效果如下:
[0052] 上述方案中,通过客户端与代理端的连接建立时,与代理端进行能力交换;所述客 户端在与代理端的连接建立后,发现所述代
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1