亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

阻塞cli命令構(gòu)架下處理非阻塞cli命令的系統(tǒng)及方法

文檔序號:10597140閱讀:260來源:國知局
阻塞cli命令構(gòu)架下處理非阻塞cli命令的系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng)及方法,涉及路由器的CLI命令執(zhí)行領域。該系統(tǒng)包括CLI命令模塊、CLI命令代理模塊、多個信令模塊,CLI命令模塊用于實現(xiàn)讀線程、寫線程和定時器并發(fā)執(zhí)行;CLI命令模塊包括CLI命令服務器,CLI命令服務器用于VTY和CLI命令代理客戶端;CLI命令代理模塊包括CLI命令代理服務器,CLI命令代理服務器用于監(jiān)聽CLI命令代理客戶端的連接請求,創(chuàng)建連接套接字、CLI命令代理子任務,CLI命令代理子任務與CLI命令代理客戶端交互,共同參與處理非阻塞命令。本發(fā)明在阻塞CLI命令構(gòu)架下能夠處理非阻塞命令,能夠有效提高工程中問題處理的效率,優(yōu)化用戶對設備的感知。
【專利說明】
阻塞CL I命令構(gòu)架下處理非阻塞CL I命令的系統(tǒng)及方法
技術領域
[0001]本發(fā)明涉及路由器的CLI命令執(zhí)行領域,具體是涉及一種阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng)及方法。【背景技術】
[0002]CLI(Command Line Interface,命令行界面)命令應用于路由器、交換、TM (Terminat1n Multiplexer,終端復用器)、CM(Cable Modem,電纜調(diào)制解調(diào)器)等產(chǎn)品,例如烽火、CISCO、中興、華為等廠家的設備,它是路由器產(chǎn)品的標準配置方式。某些路由器的 CLI命令是通過阻塞(Block)方式實現(xiàn)的。兩個用戶同時登錄到路由器,一個用戶執(zhí)行完命令后,另外一個用戶才能執(zhí)行操作。對于一些需要多人同時使用到一些CLI命令工具,例如 ping、traceroute、telnet、ssh等命令功能,可能就存在了使用的局限性,導致阻塞CLI命令構(gòu)架下多用戶無法同時使用非組塞命令。
【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的是為了克服上述【背景技術】的不足,提供一種阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng)及方法,在阻塞CLI命令構(gòu)架下能夠處理非阻塞命令,能夠有效提高工程中問題處理的效率,優(yōu)化用戶對設備的感知。
[0004]本發(fā)明提供一種阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),該系統(tǒng)包括CLI 命令模塊、CLI命令代理模塊、多個信令模塊,其中:
[0005]所述CLI命令模塊用于實現(xiàn)讀線程、寫線程和定時器并發(fā)執(zhí)行;CLI命令模塊包括 CLI命令服務器,CLI命令服務器用于創(chuàng)建虛擬終端VTY和CLI命令代理客戶端;
[0006]所述CLI命令代理模塊包括CLI命令代理服務器,CLI命令代理服務器用于監(jiān)聽CLI 命令代理客戶端的連接請求,創(chuàng)建與CLI命令代理客戶端之間的連接套接字、CLI命令代理子任務,CLI命令代理子任務與CLI命令代理客戶端交互,共同參與處理非阻塞命令。
[0007]在上述技術方案的基礎上,用戶在終端向所述系統(tǒng)發(fā)起登錄請求,CLI命令服務器監(jiān)聽請求,CLI命令服務器收到用戶請求后,為該用戶創(chuàng)建一個虛擬終端VTY,作為用戶的一個虛擬登錄的路由器。
[0008]在上述技術方案的基礎上,所述用戶在終端通過安全外殼協(xié)議ssh或者遠程終端協(xié)議telnet客戶端向所述系統(tǒng)發(fā)起登錄請求。
[0009]在上述技術方案的基礎上,所述CLI命令服務器監(jiān)聽ssh或者telnet的TCP連接請求。
[0010]在上述技術方案的基礎上,所述CLI命令服務器創(chuàng)建一個CLI命令代理客戶端,CLI 命令代理客戶端向CLI命令代理服務器發(fā)起TCP連接請求,CLI命令代理服務器收到TCP連接請求后,創(chuàng)建與CLI命令代理客戶端之間的TCP連接套接字,再創(chuàng)建一個CLI命令代理子任務,并將創(chuàng)建好的TCP連接套接字交給該CLI命令代理子任務處理。
[0011]在上述技術方案的基礎上,所述CLI命令代理客戶端接收到用戶輸入的CLI命令時,根據(jù)用戶注冊模式判斷該CLI命令是阻塞命令,還是非阻塞命令;如果是阻塞命令,CLI命令代理客戶端按照阻塞命令的流程,與信令模塊交互完成阻塞命令的處理;如果是非阻塞命令,CLI命令代理客戶端將該非阻塞命令發(fā)送給CLI命令代理子任務,并返回繼續(xù)處理其他命令;CLI命令代理子任務接收該非阻塞命令后,判斷是否需要信令模塊協(xié)助完成處理,如果不需要,CLI命令代理子任務自己完成非阻塞命令的處理;如果需要信令模塊參與完成該非阻塞命令,則向信令模塊發(fā)起TCP連接請求,并將非阻塞命令解析成信令模塊可識別的數(shù)據(jù),然后發(fā)送給信令模塊;信令模塊接收數(shù)據(jù)并處理,將處理結(jié)果反饋給CLI命令代理子任務;CLI命令代理子任務收集信令模塊處理的結(jié)果和自己處理的結(jié)果后,向CLI命令代理客戶端返回CLI命令處理的結(jié)果;CLI命令代理客戶端將結(jié)果反饋給用戶的終端。
[0012]在上述技術方案的基礎上,用戶在終端設備輸入退出命令或者用戶登錄超時,CLI命令服務器釋放已創(chuàng)建的VTY資源,并關閉CLI命令代理客戶端及其與CLI命令代理子任務的TCP連接套接字;CLI命令代理子任務感知到CLI命令代理客戶端關閉后,釋放已申請的資源和TCP連接套接字,CLI命令代理服務器銷毀CLI命令代理子任務,并釋放CLI命令代理子任務的線程資源。
[0013]本發(fā)明還提供一種基于上述系統(tǒng)的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的方法,包括以下步驟:
[0014]S1、用戶在終端向所述系統(tǒng)發(fā)起登錄請求,CLI命令服務器監(jiān)聽請求,CLI命令服務器收到用戶請求后,為該用戶創(chuàng)建一個虛擬終端VTY,作為用戶的一個虛擬登錄的路由器;
[0015]S2、CLI命令服務器創(chuàng)建一個CLI命令代理客戶端,CLI命令代理客戶端向CLI命令代理服務器發(fā)起TCP連接請求,CLI命令代理服務器收到TCP連接請求后,創(chuàng)建與CLI命令代理客戶端之間的TCP連接套接字,再創(chuàng)建一個CLI命令代理子任務,并將創(chuàng)建好的TCP連接套接字交給該CLI命令代理子任務處理;
[0016]S3、CLI命令代理客戶端接收到用戶輸入的CLI命令時,根據(jù)用戶注冊模式判斷該CLI命令是阻塞命令,還是非阻塞命令;如果是阻塞命令,CLI命令代理客戶端按照阻塞命令的流程,與信令模塊交互完成阻塞命令的處理;如果是非阻塞命令,CLI命令代理客戶端將該非阻塞命令發(fā)送給CLI命令代理子任務,并返回繼續(xù)處理其他命令;CLI命令代理子任務接收該非阻塞命令后,判斷是否需要信令模塊協(xié)助完成處理,如果不需要,CLI命令代理子任務自己完成非阻塞命令的處理;如果需要信令模塊參與完成該非阻塞命令,則向信令模塊發(fā)起TCP連接請求,并將非阻塞命令解析成信令模塊可識別的數(shù)據(jù),然后發(fā)送給信令模塊;信令模塊接收數(shù)據(jù)并處理,將處理結(jié)果反饋給CLI命令代理子任務;CLI命令代理子任務收集信令模塊處理的結(jié)果和自己處理的結(jié)果后,向CLI命令代理客戶端返回CLI命令處理的結(jié)果;CLI命令代理客戶端將結(jié)果反饋給用戶的終端。
[0017]在上述技術方案的基礎上,步驟S3之后,還包括以下步驟:
[0018]用戶在終端設備輸入退出命令或者用戶登錄超時,CLI命令服務器釋放已創(chuàng)建的VTY資源,并關閉CLI命令代理客戶端及其與CLI命令代理子任務的TCP連接套接字;CLI命令代理子任務感知到CLI命令代理客戶端關閉后,釋放已申請的資源和TCP連接套接字,CLI命令代理服務器銷毀CLI命令代理子任務,并釋放CLI命令代理子任務的線程資源。
[0019]在上述技術方案的基礎上,步驟SI中,用戶在終端通過安全外殼協(xié)議ssh或者遠程終端協(xié)議telnet客戶端向所述系統(tǒng)發(fā)起登錄請求,CLI命令服務器監(jiān)聽ssh或者telnet的TCP連接請求。
[0020]與現(xiàn)有技術相比,本發(fā)明的優(yōu)點如下:[〇〇21]本發(fā)明中的CLI命令模塊收到用戶的CLI命令后,甄別阻塞的CLI命令和非阻塞的 CLI命令,如果該CLI命令是阻塞命令,則按照阻塞命令的流程,與信令模塊交互完成阻塞命令的執(zhí)行;如果該CLI命令是非阻塞命令,則將該非阻塞命令發(fā)給CLI命令代理子任務執(zhí)行; CLI命令代理子任務處理完該非阻塞命令后,將結(jié)果返回給CLI命令模塊,CLI命令模塊呈顯給用戶。因此,本發(fā)明在阻塞CLI命令構(gòu)架下能夠處理非阻塞命令,讓工程人員可以同時進行ping、telnet、traceroute等操作,能夠有效提高工程中問題處理的效率,優(yōu)化用戶對設備的感知?!靖綀D說明】[〇〇22]圖1是本發(fā)明實施例中阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng)的結(jié)構(gòu)框圖。[〇〇23]圖2是本發(fā)明實施例中終端telnet或者ssh登錄的時序圖。[〇〇24]圖3是本發(fā)明實施例中阻塞和非阻塞命令處理的時序圖。[〇〇25]圖4是本發(fā)明實施例中終端telnet或者ssh退出的時序圖?!揪唧w實施方式】
[0026]下面結(jié)合附圖及具體實施例對本發(fā)明作進一步的詳細描述。
[0027]為了解決阻塞CLI命令構(gòu)架下多用戶無法同時使用非組塞命令的問題,本發(fā)明實施例提供一種阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),參見圖1所示,該系統(tǒng)包括 CLI命令模塊、CLI命令代理模塊、多個信令模塊,其中:
[0028]CLI命令模塊用于實現(xiàn)讀線程、寫線程和定時器并發(fā)執(zhí)行;CLI命令模塊包括CLI命令服務器,CLI命令服務器用于創(chuàng)建VTY(Virtual Teletype Terminal,虛擬終端)和CLI命令代理客戶端;[〇〇29] CLI命令代理模塊包括CLI命令代理服務器,CLI命令代理服務器用于監(jiān)聽CLI命令代理客戶端的連接請求,創(chuàng)建與CLI命令代理客戶端之間的連接套接字、CLI命令代理子任務,CLI命令代理子任務與CLI命令代理客戶端交互,共同參與處理非阻塞命令。
[0030]本發(fā)明實施例還提供一種基于上述系統(tǒng)的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的方法,包括以下步驟:[0031 ] S1、用戶在終端通過ssh(secure shell,安全外殼協(xié)議)或者telnet(遠程終端協(xié)議)客戶端向上述系統(tǒng)發(fā)起登錄請求,參見圖2所示,CLI命令服務器監(jiān)聽ssh或者telnet的 TCP連接請求,CLI命令服務器收到用戶請求后,為該用戶創(chuàng)建一個VTY(Virtual Teletype Terminal,虛擬終端),作為用戶的一個虛擬登錄的路由器;[〇〇32] S2、CLI命令服務器創(chuàng)建一個CLI命令代理客戶端,CLI命令代理客戶端向CLI命令代理服務器發(fā)起TCP連接請求,CLI命令代理服務器收到TCP連接請求后,創(chuàng)建與CLI命令代理客戶端之間的TCP連接套接字,再創(chuàng)建一個CLI命令代理子任務,并將創(chuàng)建好的TCP連接套接字交給該CLI命令代理子任務處理;[〇〇33]S3、參見圖3所示,CLI命令代理客戶端接收到用戶輸入的CLI命令時,根據(jù)用戶注冊模式判斷該CLI命令是阻塞命令,還是非阻塞命令,阻塞和非阻塞命令在注冊時就能區(qū)分開來;如果是阻塞命令,CLI命令代理客戶端按照阻塞命令的流程,與信令模塊交互完成阻塞命令的處理;如果是非阻塞命令,例如口1叫、1:^061'011丨6、丨611161:、8811、?1?(?;[16Transfer Protocol,文件傳輸協(xié)議)等非阻塞命令,CLI命令代理客戶端將該非阻塞命令發(fā)送給CLI命令代理子任務,并返回繼續(xù)處理其他命令;CLI命令代理子任務接收該非阻塞命令后,判斷是否需要信令模塊協(xié)助完成處理,如果不需要,CLI命令代理子任務自己完成非阻塞命令的處理;如果需要信令模塊參與完成該非阻塞命令,則向信令模塊發(fā)起TCP連接請求,并將非阻塞命令解析成信令模塊可識別的數(shù)據(jù),然后發(fā)送給信令模塊;信令模塊接收數(shù)據(jù)并處理,將處理結(jié)果反饋給CLI命令代理子任務;CLI命令代理子任務收集信令模塊處理的結(jié)果和自己處理的結(jié)果后,向CLI命令代理客戶端返回CLI命令處理的結(jié)果;CLI命令代理客戶端將結(jié)果反饋給用戶的終端;
[0034]S4、參見圖4所示,用戶在終端設備輸入退出命令或者用戶登錄超時,CLI命令服務器釋放已創(chuàng)建的VTY資源,并關閉CLI命令代理客戶端及其與CLI命令代理子任務的TCP連接套接字;CLI命令代理子任務感知到CLI命令代理客戶端關閉后,釋放已申請的資源和TCP連接套接字,CLI命令代理服務器銷毀CLI命令代理子任務,并釋放CLI命令代理子任務的線程資源。
[0035]本領域的技術人員可以對本發(fā)明實施例進行各種修改和變型,倘若這些修改和變型在本發(fā)明權利要求及其等同技術的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護范圍之內(nèi)。
[0036]說明書中未詳細描述的內(nèi)容為本領域技術人員公知的現(xiàn)有技術。
【主權項】
1.一種阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:該系統(tǒng)包括CLI命令模塊、CLI命令代理模塊、多個信令模塊,其中: 所述CLI命令模塊用于實現(xiàn)讀線程、寫線程和定時器并發(fā)執(zhí)行;CLI命令模塊包括CLI命令服務器,CLI命令服務器用于創(chuàng)建虛擬終端VTY和CLI命令代理客戶端; 所述CLI命令代理模塊包括CLI命令代理服務器,CLI命令代理服務器用于監(jiān)聽CLI命令代理客戶端的連接請求,創(chuàng)建與CLI命令代理客戶端之間的連接套接字、CLI命令代理子任務,CLI命令代理子任務與CLI命令代理客戶端交互,共同參與處理非阻塞命令。2.如權利要求1所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:用戶在終端向所述系統(tǒng)發(fā)起登錄請求,CLI命令服務器監(jiān)聽請求,CLI命令服務器收到用戶請求后,為該用戶創(chuàng)建一個虛擬終端VTY,作為用戶的一個虛擬登錄的路由器。3.如權利要求2所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:所述用戶在終端通過安全外殼協(xié)議ssh或者遠程終端協(xié)議telnet客戶端向所述系統(tǒng)發(fā)起登錄請求。4.如權利要求3所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:所述CLI命令服務器監(jiān)聽ssh或者telnet的TCP連接請求。5.如權利要求4所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:所述CLI命令服務器創(chuàng)建一個CLI命令代理客戶端,CLI命令代理客戶端向CLI命令代理服務器發(fā)起TCP連接請求,CLI命令代理服務器收到TCP連接請求后,創(chuàng)建與CLI命令代理客戶端之間的TCP連接套接字,再創(chuàng)建一個CLI命令代理子任務,并將創(chuàng)建好的TCP連接套接字交給該CLI命令代理子任務處理。6.如權利要求5所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:所述CLI命令代理客戶端接收到用戶輸入的CLI命令時,根據(jù)用戶注冊模式判斷該CLI命令是阻塞命令,還是非阻塞命令;如果是阻塞命令,CLI命令代理客戶端按照阻塞命令的流程,與信令模塊交互完成阻塞命令的處理;如果是非阻塞命令,CLI命令代理客戶端將該非阻塞命令發(fā)送給CLI命令代理子任務,并返回繼續(xù)處理其他命令;CLI命令代理子任務接收該非阻塞命令后,判斷是否需要信令模塊協(xié)助完成處理,如果不需要,CLI命令代理子任務自己完成非阻塞命令的處理;如果需要信令模塊參與完成該非阻塞命令,則向信令模塊發(fā)起TCP連接請求,并將非阻塞命令解析成信令模塊可識別的數(shù)據(jù),然后發(fā)送給信令模塊;信令模塊接收數(shù)據(jù)并處理,將處理結(jié)果反饋給CLI命令代理子任務;CLI命令代理子任務收集信令模塊處理的結(jié)果和自己處理的結(jié)果后,向CLI命令代理客戶端返回CLI命令處理的結(jié)果;CLI命令代理客戶端將結(jié)果反饋給用戶的終端。7.如權利要求6所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:用戶在終端設備輸入退出命令或者用戶登錄超時,CLI命令服務器釋放已創(chuàng)建的VTY資源,并關閉CLI命令代理客戶端及其與CLI命令代理子任務的TCP連接套接字;CLI命令代理子任務感知到CLI命令代理客戶端關閉后,釋放已申請的資源和TCP連接套接字,CLI命令代理服務器銷毀CLI命令代理子任務,并釋放CLI命令代理子任務的線程資源。8.—種基于權利要求1所述系統(tǒng)的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的方法,其特征在于,包括以下步驟: S1、用戶在終端向所述系統(tǒng)發(fā)起登錄請求,CLI命令服務器監(jiān)聽請求,CLI命令服務器收到用戶請求后,為該用戶創(chuàng)建一個虛擬終端VTY,作為用戶的一個虛擬登錄的路由器;52、CLI命令服務器創(chuàng)建一個CLI命令代理客戶端,CLI命令代理客戶端向CLI命令代理 服務器發(fā)起TCP連接請求,CLI命令代理服務器收到TCP連接請求后,創(chuàng)建與CLI命令代理客 戶端之間的TCP連接套接字,再創(chuàng)建一個CLI命令代理子任務,并將創(chuàng)建好的TCP連接套接字 交給該CLI命令代理子任務處理;53、CLI命令代理客戶端接收到用戶輸入的CLI命令時,根據(jù)用戶注冊模式判斷該CLI命 令是阻塞命令,還是非阻塞命令;如果是阻塞命令,CLI命令代理客戶端按照阻塞命令的流 程,與信令模塊交互完成阻塞命令的處理;如果是非阻塞命令,CLI命令代理客戶端將該非 阻塞命令發(fā)送給CLI命令代理子任務,并返回繼續(xù)處理其他命令;CLI命令代理子任務接收 該非阻塞命令后,判斷是否需要信令模塊協(xié)助完成處理,如果不需要,CLI命令代理子任務 自己完成非阻塞命令的處理;如果需要信令模塊參與完成該非阻塞命令,則向信令模塊發(fā) 起TCP連接請求,并將非阻塞命令解析成信令模塊可識別的數(shù)據(jù),然后發(fā)送給信令模塊;信 令模塊接收數(shù)據(jù)并處理,將處理結(jié)果反饋給CLI命令代理子任務;CLI命令代理子任務收集 信令模塊處理的結(jié)果和自己處理的結(jié)果后,向CLI命令代理客戶端返回CLI命令處理的結(jié) 果;CLI命令代理客戶端將結(jié)果反饋給用戶的終端。9.如權利要求8所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于:步 驟S3之后,還包括以下步驟:用戶在終端設備輸入退出命令或者用戶登錄超時,CLI命令服務器釋放已創(chuàng)建的VTY資 源,并關閉CLI命令代理客戶端及其與CLI命令代理子任務的TCP連接套接字;CLI命令代理 子任務感知到CLI命令代理客戶端關閉后,釋放已申請的資源和TCP連接套接字,CLI命令代 理服務器銷毀CLI命令代理子任務,并釋放CLI命令代理子任務的線程資源。10.如權利要求8所述的阻塞CLI命令構(gòu)架下處理非阻塞CLI命令的系統(tǒng),其特征在于: 步驟S1中,用戶在終端通過安全外殼協(xié)議ssh或者遠程終端協(xié)議telnet客戶端向所述系統(tǒng) 發(fā)起登錄請求,CLI命令服務器監(jiān)聽ssh或者telnet的TCP連接請求。
【文檔編號】H04L29/06GK105959256SQ201610235234
【公開日】2016年9月21日
【申請日】2016年4月15日
【發(fā)明人】董賢偉
【申請人】烽火通信科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1