首页 / 专利库 / 软件 / 命令行界面 / 阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法

阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法

阅读:621发布:2020-05-15

专利汇可以提供阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法,涉及路由器的CLI命令执行领域。该系统包括CLI命令模 块 、CLI命令代理模块、多个信令模块,CLI命令模块用于实现读线程、写线程和 定时器 并发执行;CLI命令模块包括CLI命令 服务器 ,CLI命令服务器用于VTY和CLI命令代理客户端;CLI命令代理模块包括CLI命令代理服务器,CLI命令代理服务器用于监听CLI命令代理客户端的连接 请求 ,创建连接套接字、CLI命令代理子任务,CLI命令代理子任务与CLI命令代理客户端交互,共同参与处理非阻塞命令。本发明在阻塞CLI命令构架下能够处理非阻塞命令,能够有效提高工程中问题处理的效率,优化用户对设备的 感知 。,下面是阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法专利的具体信息内容。

1.一种阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:该系统包括命令行界面CLI命令模、CLI命令代理模块、多个信令模块,其中:
所述CLI命令模块用于实现读线程、写线程和定时器并发执行;CLI命令模块包括CLI命令服务器,CLI命令服务器用于创建虚拟终端VTY和CLI命令代理客户端;
所述CLI命令代理模块包括CLI命令代理服务器,CLI命令代理服务器用于监听CLI命令代理客户端的连接请求,创建与CLI命令代理客户端之间的连接套接字、CLI命令代理子任务,CLI命令代理子任务与CLI命令代理客户端交互,共同参与处理非阻塞命令。
2.如权利要求1所述的阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:用户在终端向所述系统发起登录请求,CLI命令服务器监听请求,CLI命令服务器收到用户请求后,为该用户创建一个虚拟终端VTY,作为用户的一个虚拟登录的路由器。
3.如权利要求2所述的阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:所述用户在终端通过安全外壳协议ssh或者远程终端协议telnet客户端向所述系统发起登录请求。
4.如权利要求3所述的阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:所述CLI命令服务器监听ssh或者telnet的传输控制协议TCP连接请求。
5.如权利要求4所述的阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:所述CLI命令服务器创建一个CLI命令代理客户端,CLI命令代理客户端向CLI命令代理服务器发起TCP连接请求,CLI命令代理服务器收到TCP连接请求后,创建与CLI命令代理客户端之间的TCP连接套接字,再创建一个CLI命令代理子任务,并将创建好的TCP连接套接字交给该CLI命令代理子任务处理。
6.如权利要求5所述的阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:所述CLI命令代理客户端接收到用户输入的CLI命令时,根据用户注册模式判断该CLI命令是阻塞命令,还是非阻塞命令;如果是阻塞命令,CLI命令代理客户端按照阻塞命令的流程,与信令模块交互完成阻塞命令的处理;如果是非阻塞命令,CLI命令代理客户端将该非阻塞命令发送给CLI命令代理子任务,并返回继续处理其他命令;CLI命令代理子任务接收该非阻塞命令后,判断是否需要信令模块协助完成处理,如果不需要,CLI命令代理子任务自己完成非阻塞命令的处理;如果需要信令模块参与完成该非阻塞命令,则向信令模块发起TCP连接请求,并将非阻塞命令解析成信令模块可识别的数据,然后发送给信令模块;信令模块接收数据并处理,将处理结果反馈给CLI命令代理子任务;CLI命令代理子任务收集信令模块处理的结果和自己处理的结果后,向CLI命令代理客户端返回CLI命令处理的结果;CLI命令代理客户端将结果反馈给用户的终端。
7.如权利要求6所述的阻塞CLI命令构架下处理非阻塞CLI命令的系统,其特征在于:用户在终端设备输入退出命令或者用户登录超时,CLI命令服务器释放已创建的VTY资源,并关闭CLI命令代理客户端及其与CLI命令代理子任务的TCP连接套接字;CLI命令代理子任务感知到CLI命令代理客户端关闭后,释放已申请的资源和TCP连接套接字,CLI命令代理服务器销毁CLI命令代理子任务,并释放CLI命令代理子任务的线程资源。
8.一种基于权利要求1所述系统的阻塞CLI命令构架下处理非阻塞CLI命令的方法,其特征在于,包括以下步骤:
S1、用户在终端向所述系统发起登录请求,CLI命令服务器监听请求,CLI命令服务器收到用户请求后,为该用户创建一个虚拟终端VTY,作为用户的一个虚拟登录的路由器;
S2、CLI命令服务器创建一个CLI命令代理客户端,CLI命令代理客户端向CLI命令代理服务器发起TCP连接请求,CLI命令代理服务器收到TCP连接请求后,创建与CLI命令代理客户端之间的TCP连接套接字,再创建一个CLI命令代理子任务,并将创建好的TCP连接套接字交给该CLI命令代理子任务处理;
S3、CLI命令代理客户端接收到用户输入的CLI命令时,根据用户注册模式判断该CLI命令是阻塞命令,还是非阻塞命令;如果是阻塞命令,CLI命令代理客户端按照阻塞命令的流程,与信令模块交互完成阻塞命令的处理;如果是非阻塞命令,CLI命令代理客户端将该非阻塞命令发送给CLI命令代理子任务,并返回继续处理其他命令;CLI命令代理子任务接收该非阻塞命令后,判断是否需要信令模块协助完成处理,如果不需要,CLI命令代理子任务自己完成非阻塞命令的处理;如果需要信令模块参与完成该非阻塞命令,则向信令模块发起TCP连接请求,并将非阻塞命令解析成信令模块可识别的数据,然后发送给信令模块;信令模块接收数据并处理,将处理结果反馈给CLI命令代理子任务;CLI命令代理子任务收集信令模块处理的结果和自己处理的结果后,向CLI命令代理客户端返回CLI命令处理的结果;CLI命令代理客户端将结果反馈给用户的终端。
9.如权利要求8所述的阻塞CLI命令构架下处理非阻塞CLI命令的方法,其特征在于:步骤S3之后,还包括以下步骤:
用户在终端设备输入退出命令或者用户登录超时,CLI命令服务器释放已创建的VTY资源,并关闭CLI命令代理客户端及其与CLI命令代理子任务的TCP连接套接字;CLI命令代理子任务感知到CLI命令代理客户端关闭后,释放已申请的资源和TCP连接套接字,CLI命令代理服务器销毁CLI命令代理子任务,并释放CLI命令代理子任务的线程资源。
10.如权利要求8所述的阻塞CLI命令构架下处理非阻塞CLI命令的方法,其特征在于:
步骤S1中,用户在终端通过安全外壳协议ssh或者远程终端协议telnet客户端向所述系统发起登录请求,CLI命令服务器监听ssh或者telnet的TCP连接请求。

说明书全文

阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法

技术领域

[0001] 本发明涉及路由器的CLI命令执行领域,具体是涉及一种阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法。

背景技术

[0002] CLI(Command Line Interface,命令行界面)命令应用于路由器、交换、TM(Termination Multiplexer,终端复用器)、CM(Cable Modem,电缆调制解调器)等产品,例如烽火、CISCO、中兴、华为等厂家的设备,它是路由器产品的标准配置方式。某些路由器的CLI命令是通过阻塞(Block)方式实现的。两个用户同时登录到路由器,一个用户执行完命令后,另外一个用户才能执行操作。对于一些需要多人同时使用到一些CLI命令工具,例如ping、traceroute、telnet、ssh等命令功能,可能就存在了使用的局限性,导致阻塞CLI命令构架下多用户无法同时使用非组塞命令。

发明内容

[0003] 本发明的目的是为了克服上述背景技术的不足,提供一种阻塞CLI命令构架下处理非阻塞CLI命令的系统及方法,在阻塞CLI命令构架下能够处理非阻塞命令,能够有效提高工程中问题处理的效率,优化用户对设备的感知
[0004] 本发明提供一种阻塞CLI命令构架下处理非阻塞CLI命令的系统,该系统包括CLI命令模、CLI命令代理模块、多个信令模块,其中:
[0005] 所述CLI命令模块用于实现读线程、写线程和定时器并发执行;CLI命令模块包括CLI命令服务器,CLI命令服务器用于创建虚拟终端VTY和CLI命令代理客户端;
[0006] 所述CLI命令代理模块包括CLI命令代理服务器,CLI命令代理服务器用于监听CLI命令代理客户端的连接请求,创建与CLI命令代理客户端之间的连接套接字、CLI命令代理子任务,CLI命令代理子任务与CLI命令代理客户端交互,共同参与处理非阻塞命令。
[0007] 在上述技术方案的基础上,用户在终端向所述系统发起登录请求,CLI命令服务器监听请求,CLI命令服务器收到用户请求后,为该用户创建一个虚拟终端VTY,作为用户的一个虚拟登录的路由器。
[0008] 在上述技术方案的基础上,所述用户在终端通过安全外壳协议ssh或者远程终端协议telnet客户端向所述系统发起登录请求。
[0009] 在上述技术方案的基础上,所述CLI命令服务器监听ssh或者telnet的TCP连接请求。
[0010] 在上述技术方案的基础上,所述CLI命令服务器创建一个CLI命令代理客户端,CLI命令代理客户端向CLI命令代理服务器发起TCP连接请求,CLI命令代理服务器收到TCP连接请求后,创建与CLI命令代理客户端之间的TCP连接套接字,再创建一个CLI命令代理子任务,并将创建好的TCP连接套接字交给该CLI命令代理子任务处理。
[0011] 在上述技术方案的基础上,所述CLI命令代理客户端接收到用户输入的CLI命令时,根据用户注册模式判断该CLI命令是阻塞命令,还是非阻塞命令;如果是阻塞命令,CLI命令代理客户端按照阻塞命令的流程,与信令模块交互完成阻塞命令的处理;如果是非阻塞命令,CLI命令代理客户端将该非阻塞命令发送给CLI命令代理子任务,并返回继续处理其他命令;CLI命令代理子任务接收该非阻塞命令后,判断是否需要信令模块协助完成处理,如果不需要,CLI命令代理子任务自己完成非阻塞命令的处理;如果需要信令模块参与完成该非阻塞命令,则向信令模块发起TCP连接请求,并将非阻塞命令解析成信令模块可识别的数据,然后发送给信令模块;信令模块接收数据并处理,将处理结果反馈给CLI命令代理子任务;CLI命令代理子任务收集信令模块处理的结果和自己处理的结果后,向CLI命令代理客户端返回CLI命令处理的结果;CLI命令代理客户端将结果反馈给用户的终端。
[0012] 在上述技术方案的基础上,用户在终端设备输入退出命令或者用户登录超时,CLI命令服务器释放已创建的VTY资源,并关闭CLI命令代理客户端及其与CLI命令代理子任务的TCP连接套接字;CLI命令代理子任务感知到CLI命令代理客户端关闭后,释放已申请的资源和TCP连接套接字,CLI命令代理服务器销毁CLI命令代理子任务,并释放CLI命令代理子任务的线程资源。
[0013] 本发明还提供一种基于上述系统的阻塞CLI命令构架下处理非阻塞CLI命令的方法,包括以下步骤:
[0014] S1、用户在终端向所述系统发起登录请求,CLI命令服务器监听请求,CLI命令服务器收到用户请求后,为该用户创建一个虚拟终端VTY,作为用户的一个虚拟登录的路由器;
[0015] S2、CLI命令服务器创建一个CLI命令代理客户端,CLI命令代理客户端向CLI命令代理服务器发起TCP连接请求,CLI命令代理服务器收到TCP连接请求后,创建与CLI命令代理客户端之间的TCP连接套接字,再创建一个CLI命令代理子任务,并将创建好的TCP连接套接字交给该CLI命令代理子任务处理;
[0016] S3、CLI命令代理客户端接收到用户输入的CLI命令时,根据用户注册模式判断该CLI命令是阻塞命令,还是非阻塞命令;如果是阻塞命令,CLI命令代理客户端按照阻塞命令的流程,与信令模块交互完成阻塞命令的处理;如果是非阻塞命令,CLI命令代理客户端将该非阻塞命令发送给CLI命令代理子任务,并返回继续处理其他命令;CLI命令代理子任务接收该非阻塞命令后,判断是否需要信令模块协助完成处理,如果不需要,CLI命令代理子任务自己完成非阻塞命令的处理;如果需要信令模块参与完成该非阻塞命令,则向信令模块发起TCP连接请求,并将非阻塞命令解析成信令模块可识别的数据,然后发送给信令模块;信令模块接收数据并处理,将处理结果反馈给CLI命令代理子任务;CLI命令代理子任务收集信令模块处理的结果和自己处理的结果后,向CLI命令代理客户端返回CLI命令处理的结果;CLI命令代理客户端将结果反馈给用户的终端。
[0017] 在上述技术方案的基础上,步骤S3之后,还包括以下步骤:
[0018] 用户在终端设备输入退出命令或者用户登录超时,CLI命令服务器释放已创建的VTY资源,并关闭CLI命令代理客户端及其与CLI命令代理子任务的TCP连接套接字;CLI命令代理子任务感知到CLI命令代理客户端关闭后,释放已申请的资源和TCP连接套接字,CLI命令代理服务器销毁CLI命令代理子任务,并释放CLI命令代理子任务的线程资源。
[0019] 在上述技术方案的基础上,步骤S1中,用户在终端通过安全外壳协议ssh或者远程终端协议telnet客户端向所述系统发起登录请求,CLI命令服务器监听ssh或者telnet的TCP连接请求。
[0020] 与现有技术相比,本发明的优点如下:
[0021] 本发明中的CLI命令模块收到用户的CLI命令后,甄别阻塞的CLI命令和非阻塞的CLI命令,如果该CLI命令是阻塞命令,则按照阻塞命令的流程,与信令模块交互完成阻塞命令的执行;如果该CLI命令是非阻塞命令,则将该非阻塞命令发给CLI命令代理子任务执行;CLI命令代理子任务处理完该非阻塞命令后,将结果返回给CLI命令模块,CLI命令模块呈显给用户。因此,本发明在阻塞CLI命令构架下能够处理非阻塞命令,让工程人员可以同时进行ping、telnet、traceroute等操作,能够有效提高工程中问题处理的效率,优化用户对设备的感知。
附图说明
[0022] 图1是本发明实施例中阻塞CLI命令构架下处理非阻塞CLI命令的系统的结构框图
[0023] 图2是本发明实施例中终端telnet或者ssh登录的时序图。
[0024] 图3是本发明实施例中阻塞和非阻塞命令处理的时序图。
[0025] 图4是本发明实施例中终端telnet或者ssh退出的时序图。

具体实施方式

[0026] 下面结合附图及具体实施例对本发明作进一步的详细描述。
[0027] 为了解决阻塞CLI命令构架下多用户无法同时使用非组塞命令的问题,本发明实施例提供一种阻塞CLI命令构架下处理非阻塞CLI命令的系统,参见图1所示,该系统包括CLI命令模块、CLI命令代理模块、多个信令模块,其中:
[0028] CLI命令模块用于实现读线程、写线程和定时器并发执行;CLI命令模块包括CLI命令服务器,CLI命令服务器用于创建VTY(Virtual Teletype Terminal,虚拟终端)和CLI命令代理客户端;
[0029] CLI命令代理模块包括CLI命令代理服务器,CLI命令代理服务器用于监听CLI命令代理客户端的连接请求,创建与CLI命令代理客户端之间的连接套接字、CLI命令代理子任务,CLI命令代理子任务与CLI命令代理客户端交互,共同参与处理非阻塞命令。
[0030] 本发明实施例还提供一种基于上述系统的阻塞CLI命令构架下处理非阻塞CLI命令的方法,包括以下步骤:
[0031] S1、用户在终端通过ssh(secure shell,安全外壳协议)或者telnet(远程终端协议)客户端向上述系统发起登录请求,参见图2所示,CLI命令服务器监听ssh或者telnet的TCP连接请求,CLI命令服务器收到用户请求后,为该用户创建一个VTY(Virtual Teletype Terminal,虚拟终端),作为用户的一个虚拟登录的路由器;
[0032] S2、CLI命令服务器创建一个CLI命令代理客户端,CLI命令代理客户端向CLI命令代理服务器发起TCP连接请求,CLI命令代理服务器收到TCP连接请求后,创建与CLI命令代理客户端之间的TCP连接套接字,再创建一个CLI命令代理子任务,并将创建好的TCP连接套接字交给该CLI命令代理子任务处理;
[0033] S3、参见图3所示,CLI命令代理客户端接收到用户输入的CLI命令时,根据用户注册模式判断该CLI命令是阻塞命令,还是非阻塞命令,阻塞和非阻塞命令在注册时就能区分开来;如果是阻塞命令,CLI命令代理客户端按照阻塞命令的流程,与信令模块交互完成阻塞命令的处理;如果是非阻塞命令,例如ping、traceroute、telnet、ssh、FTP(File Transfer Protocol,文件传输协议)等非阻塞命令,CLI命令代理客户端将该非阻塞命令发送给CLI命令代理子任务,并返回继续处理其他命令;CLI命令代理子任务接收该非阻塞命令后,判断是否需要信令模块协助完成处理,如果不需要,CLI命令代理子任务自己完成非阻塞命令的处理;如果需要信令模块参与完成该非阻塞命令,则向信令模块发起TCP连接请求,并将非阻塞命令解析成信令模块可识别的数据,然后发送给信令模块;信令模块接收数据并处理,将处理结果反馈给CLI命令代理子任务;CLI命令代理子任务收集信令模块处理的结果和自己处理的结果后,向CLI命令代理客户端返回CLI命令处理的结果;CLI命令代理客户端将结果反馈给用户的终端;
[0034] S4、参见图4所示,用户在终端设备输入退出命令或者用户登录超时,CLI命令服务器释放已创建的VTY资源,并关闭CLI命令代理客户端及其与CLI命令代理子任务的TCP连接套接字;CLI命令代理子任务感知到CLI命令代理客户端关闭后,释放已申请的资源和TCP连接套接字,CLI命令代理服务器销毁CLI命令代理子任务,并释放CLI命令代理子任务的线程资源。
[0035] 本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
[0036] 说明书中未详细描述的内容为本领域技术人员公知的现有技术。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈