国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

以任務為中心的網絡控制系統(tǒng)的研究與開發(fā)

2018-02-27 20:22:37龍恒
計算機時代 2018年2期
關鍵詞:多線程

龍恒

摘 要: 介紹了一套將網絡日常維護工作劃分成任務的網絡控制系統(tǒng)的工作原理和實現(xiàn)過程,該控制系統(tǒng)由與設備打交道的控制器和用戶操作系統(tǒng)兩部分組成。文章介紹了系統(tǒng)的結構并且給出了拓撲圖,介紹了控制器的結構以及控制器和用戶操作系統(tǒng)的實現(xiàn)過程,并通過一個使用案例,介紹了該系統(tǒng)的功能。

關鍵詞: 網絡控制; 任務劃分; 多線程; 套接字

中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2018)02-32-03

Abstract: This paper introduces the working principle and realization process of the network control system which divides the daily network maintenance work into tasks. The control system mainly consists of the controller which deals with the equipment and the user operating system. This paper introduces the structure of the system and gives the topology. It introduces the structure of the controller and the realization process of the controller and the user operation system, and introduces the function of the system through a case study.

Key words: network control; task dividing; multi-thread; socket

0 引言

隨著計算機和網絡技術的飛速發(fā)展,各單位使用的與網絡相關的設備也越來越多,每種設備的用途各不相同,理論基礎也各異,要熟練掌握這些設備的使用方法非常不容易,通常需要經過較長時間的培訓和實踐上的積累。

本文將研究一種與網絡設備進行交互的機制,將日常的工作劃分成容易理解的任務,通過可視化界面進行操作,即可生成控制網絡設備的命令并發(fā)送給設備,其效果與直接在設備上輸入命令是一樣的。該系統(tǒng)降低了使用門檻,節(jié)省了人員的培訓成本,使用者不需要了解網絡設備的命令以及相關的理論細節(jié)就能完成任務。

該機制還有助于提高安全性:用戶不需要直接與設備交互,不需要知道設備的帳號和密碼,減少了帳號、密碼泄漏的問題;工作以任務的形式組織,設備只能運行經過驗證的命令,降低了誤操作的幾率,并且對操作過程記錄了詳細的日志,即使出現(xiàn)異常操作,也很容易通過逆操作進行恢復;該系統(tǒng)通過一個服務器軟件與設備進行交互,設備只要對運行該服務器軟件所需的IP地址開放訪問權限即可,這降低了設備被入侵的可能性。

1 系統(tǒng)結構

該系統(tǒng)由一個用戶使用的操作系統(tǒng)(以下簡稱操作系統(tǒng))和一個與設備交互的服務器系統(tǒng)(以下簡稱控制器)組成。用戶在操作系統(tǒng)上執(zhí)行任務,執(zhí)行結束后會生成相應的命令,經過編碼后發(fā)送給控制器,控制器負責接收操作系統(tǒng)生成的命令,解碼后發(fā)送到設備上執(zhí)行。系統(tǒng)的拓撲圖如圖1所示。

圖1 系統(tǒng)拓撲圖

2 控制器的設計

控制器是一個服務器軟件,用來接收操作系統(tǒng)發(fā)過來的命令并且與指定的設備進行交互,控制器與操作系統(tǒng)之間使用TCP協(xié)議進行通信。

控制器使用多線程技術實現(xiàn),由一個主線程和多個子線程組成,工作時每個子線程對應一個控制器與設備的連接,主線程在控制器啟動的時候開始運行,一直到控制器關閉的時候才結束運行;子線程以線程池的方式組織,也是在控制器啟動的時候全部啟動,在控制器退出的時候才終止,子線程啟動后立刻轉入休眠方式,在工作時才被喚醒,使用線程池技術,可以節(jié)省線程啟動和結束的時間,提高性能[1]。

2.1 主線程

主線程只負責建立連接和啟動子線程的工作,啟動后以阻塞的方式調用套接字在指定的接口上監(jiān)聽,控制器接收到一個操作系統(tǒng)發(fā)起的連接后,就隨機啟動一個休眠的子線程,之后就由該子線程與操作系統(tǒng)進行交互,如果主線程發(fā)現(xiàn)線程池中沒有空閑的子線程,就給操作系統(tǒng)返回一個超出最大連接的錯誤提示。

2.2 子線程

控制器的主要業(yè)務邏輯在子線程中實現(xiàn),子線程有三個地方可能會造成阻塞。第一是與設備建立連接的時候,第二是將命令發(fā)送給設備的過程,第三是等待設備返回運行結果的時候。為了能靈活地配置子線程在每個阻塞點的等待時間,子線程使用套接字編程的時候采用了非阻塞工作模式。

子線程接收到操作系統(tǒng)發(fā)送的命令后,對命令進行base64解碼[2],解碼后將命令進行分解,每條命令都攜帶有身份驗證信息,首先進行身份驗證,如果不能通過驗證,則給操作系統(tǒng)返回一個身份驗證錯誤信息,身份驗證成功后,通過相應的協(xié)議(例如telnet、ssh)將命令發(fā)送到設備上運行,最后將運行結果反饋給操作系統(tǒng)。

由于操作系統(tǒng)一般都是采用B/S結構設計的,而B/S結構通常需要等待一次請求處理完成后才能給用戶返回處理結果,為了避免等待時間過長,控制器是先接收完操作系統(tǒng)一次需要運行的所有命令才開始與設備進行交互的,命令接收完成后立刻就會給操作系統(tǒng)返回一個響應。

2.3 穩(wěn)定性及安全性考慮

在服務器軟件設計時,安全性和穩(wěn)定性非常重要,主要考慮以下幾方面。

⑴ 每條命令都帶有身份驗證信息,以進行合法性驗證。

⑵ 命令長度要有限制,避免接收到太長的命令而導致資源過度消耗以及發(fā)生緩沖區(qū)溢出攻擊。

⑶ 固定分配一個接收命令的緩沖區(qū),避免多次動態(tài)分配內存造成內存碎片,從而影響性能。

⑷ 命令的語法檢查,例如命令的格式、最小長度、特殊符號等,以防止出現(xiàn)惡意構造的命令繞過檢查的情況。

3 操作系統(tǒng)的設計

操作系統(tǒng)的是一套B/S結構的系統(tǒng),開發(fā)語言為PHP,采用了MVC模式[3]。使用PDO建立數(shù)據(jù)模型,使用自主研發(fā)的一套名為“solar”應用框架作為控制器,視圖使用一套自主研發(fā)的模板引擎“saturn”來實現(xiàn)。

開發(fā)這套網絡控制系統(tǒng)最重要的一個目的是可以根據(jù)事先設定好的任務來簡化日常的網絡維護的工作,任務劃分的工作就是在操作系統(tǒng)這里完成的,執(zhí)行一個任務就會生成一批在某個網絡設備上運行的命令,然后提交給控制器。

為了實現(xiàn)任務到命令的轉換,每臺設備需要實現(xiàn)一個Device類,該類的每個成員函數(shù)對應一個任務,例如禁止一個IP地址上網,這個任務對應的成員函數(shù)為DenyIP。在同一個網絡環(huán)境中,每個設備完成的任務是不同的,例如在某臺防火墻上禁止某個IP地址上網,在某臺交換機上限制某個機房上網,而且不同的設備的命令可能也是不同的,因此每個Device類之間沒有繼承關系,需要針對設備進行編寫。

操作系統(tǒng)支持多用戶同時使用,因此有用戶管理、權限控制的功能,用戶完成某個任務必須先獲得授權,操作系統(tǒng)還有詳細的日志系統(tǒng),詳細記錄了用戶工作的整個過程,使得管理員對系統(tǒng)的使用情況有一個全面的了解,還有一個用處就是當發(fā)現(xiàn)操作失誤導致網絡異常的時候,可以根據(jù)日志進行逆操作。

操作系統(tǒng)的開發(fā)不算復雜,基本與普通的B/S結構的軟件設計沒太大區(qū)別。本系統(tǒng)使用PDO技術訪問數(shù)據(jù)庫,具有通用性強、避免出現(xiàn)SQL注入安全漏洞等優(yōu)點[4]?!皊olar”應用框架本身有對用戶提交的字符串進行過濾的功能,默認情況下將過濾后的數(shù)據(jù)提交給用戶使用,過濾后的數(shù)據(jù)可以防止出現(xiàn)XSS等通過提交非法字符而產生的安全漏洞,當然用戶也可以選擇對原始數(shù)據(jù)進行自主過濾后再使用?!皊aturn”模板引擎則實現(xiàn)了代碼和美工設計的分離,美工設計人員只要設計好靜態(tài)的HTML格式的模板,然后在正確的位置上放上saturn的數(shù)據(jù)訪問標簽,根據(jù)目錄結構放置在saturn指定的目錄中即可[5]。

4 部署

該系統(tǒng)部署方式比較靈活,圖1是一個典型的部署方式,操作系統(tǒng)和控制器可以部署在同一臺服務器上,也可以部署在不同的服務器上,出于安全考慮,操作系統(tǒng)和控制器通常都部署在同一個子網內,避免它們之間交互的命令數(shù)據(jù)被截獲或被篡改。而用戶可以根據(jù)需要從局域網或互聯(lián)網訪問操作系統(tǒng)。

考慮到安全性和穩(wěn)定性,一個控制器對應一臺設備,也就是說是一個進程對應一個設備。這種設計可以避免某一個進程發(fā)生安全問題或者意外崩潰,進而導致與所有的設備交互都出現(xiàn)問題。如果需要使用到多個設備來完成任務,則部署多個控制器,而操作系統(tǒng)只需要部署一套即可,只需要針對每臺設備編寫一個Device類。

5 應用案例

以該系統(tǒng)在本校的使用情況作為案例進行分析,我校有兩個網絡出口,每個網絡出口都部署了一臺防火墻,根據(jù)本校的網絡使用情況,經常需要對網絡進行配置以實現(xiàn)某些功能,如果將這些需求以任務形式進行組織,通過圖形界面執(zhí)行,將會大幅度減輕網絡管理員的工作量。下面舉幾個應用例子。

⑴ 計算機機房網絡管理:教師在機房上課,經常需要開放或關閉整個機房網絡,或針對某一個IP地址開放或關閉網絡,每節(jié)課都需要多次使用這個功能。使用該系統(tǒng)后,教師自行登錄系統(tǒng)后即可完成這項工作,而不需要網絡管理員協(xié)助。

⑵ 上網控制功能:在日常的工作中經常會檢測到一些IP地址流量出現(xiàn)異常,管理員希望禁止這些IP地址上網,由于我校有兩個出口,因此需要在多臺設備上進行控制。使用該系統(tǒng)后,網絡管理員只要輸入IP地址就可完成工作,而不用考慮應該在哪臺設備上控制這些IP地址。

⑶ 流量級別調整:在日常工作中,每一個上網的賬號都分配了額定的帶寬,在日常工作中有時候需要增大或減小某個賬號的帶寬,使用這套系統(tǒng)后除了不用考慮與哪臺設備打交道外,常用的帶寬也已經設置好,而且進行過調整的IP地址也在系統(tǒng)中進行了記錄,絕大部分情況下網絡管理員只需要點擊幾下鼠標即可完成工作。

6 結束語

本文介紹的網絡控制系統(tǒng)在本校投入使用后在很大程度上減輕了網絡維護人員的工作量,同時為在機房上課的老師帶來了方便,具有實用價值。下一個版本我們將考慮通過后臺配置實現(xiàn)目前Device類的功能,配置完成后就可以在特定的網絡環(huán)境中部署,從而提高該系統(tǒng)的通用性。

參考文獻(References):

[1] 游雙.Linux高性能服務器編程[M].機械工業(yè)出版社,2013.

[2] N. Freed, N. Borenstein. RFC2045 Multipurpose Internet Mail Extensions (MIME) Part One:Format of Internet Message Bodies[OL].(1996-11).http://www.ietf.org/rfc/rfc2045.txt

[3] 李開涌.PHP MVC 開發(fā)實戰(zhàn)[M].機械工業(yè)出版社,2013.

[4] The PHP Group.PHP手冊[OL].(2017-11-26)[2017-11-26].http://php.net/manual/zh/index.php

[5] New Digital Group, Inc. Smarty3手冊[OL]. (2017-11-26)[2017-11-26].https://www.smarty.net/docs/zh_CN/endprint

猜你喜歡
多線程
Java多線程同步機制在網絡售票系統(tǒng)中的應用
科技資訊(2016年29期)2017-02-28 09:30:34
Java并發(fā)工具包對并發(fā)編程的優(yōu)化
基于多線程文件傳輸關鍵技術研究與實現(xiàn)
網頁爬蟲技術的關鍵技術研究探索
一種基于多線程的高速磁盤鏡像算法
iOS并發(fā)程序設計中幾種方法的特點及使用技巧研究
HTM L5 Web WOrker技術及應用研究
電站鍋爐煤粉參數(shù)遠程監(jiān)控系統(tǒng)的軟件設計與實現(xiàn)
一種高并發(fā)認證服務器的實現(xiàn)
一種低開銷的并行重復數(shù)據(jù)刪除算法
軟件導刊(2015年8期)2015-09-18 12:59:11
镇远县| 盖州市| 南郑县| 张家港市| 喜德县| 油尖旺区| 阿鲁科尔沁旗| 汝阳县| 通辽市| SHOW| 海安县| 绵阳市| 修文县| 云林县| 同德县| 弥渡县| 罗城| 墨竹工卡县| 明水县| 松原市| 榆社县| 南和县| 娱乐| 洞头县| 大港区| 大竹县| 邳州市| 贵定县| 浮山县| 罗山县| 吉木萨尔县| 大埔县| 德惠市| 揭东县| 沙河市| 丹寨县| 米林县| 商洛市| 新化县| 南部县| 台江县|