1. <menuitem id="2c3wq"><dfn id="2c3wq"></dfn></menuitem>
      1. <track id="2c3wq"><span id="2c3wq"></span></track>

      2. <option id="2c3wq"></option>
        1. 學術期刊發表網是專業正規學術期刊投稿|學術論文發表網站

          學術期刊發表網

          學術期刊發表網提供理工論文范文、理工論文發表服務
          學術期刊發表網>理工論文免費文獻>基于麒麟系統的即時通訊系統設計與實現

          基于麒麟系統的即時通訊系統設計與實現

          學術期刊發表網 位置:理工論文 時間:2020-12-26 10:05 (12)

          摘要:摘 要: 隨著操作系統國產化的浪潮,麒麟系統已開始應用于各行各業,但是麒麟系統還沒有一個便捷的即時通訊系統。本文旨在設計能在麒麟系統下運行的即時通訊系統。由于麒麟系

            摘 要: 隨著操作系統國產化的浪潮,麒麟系統已開始應用于各行各業,但是麒麟系統還沒有一個便捷的即時通訊系統。本文旨在設計能在麒麟系統下運行的即時通訊系統。由于麒麟系統是基于Linux內核開發的,本文采用QT開發平臺,設計并實現了一套即時通訊系統。此系統采用oracle數據庫和RSA加密技術,既能解決麒麟系統下即時通訊問題,又保證了通訊安全。經測試,系統能夠穩定運行。

            關鍵詞: 麒麟; Linux; 即時通訊; oracle; qt; RAS;

          基于麒麟系統的即時通訊系統設計與實現

            1 、引言

            麒麟系統是在Linux內核基礎上開發出的,具有高安全、高可用、高性能、高可定制的國產操作系統[1]。由于Linux內核開源、操作可控[2],麒麟操作系統一直被國家大力推廣,目前已應用于某些服務器和部分桌面終端,未來將應用于所有桌面終端。隨著在桌面終端的普及,麒麟系統對即時通訊需求就變得尤為迫切。

            由于桌面終端市場主流的通訊軟件都是基于windows平臺開發的,不能直接應用于Linux平臺[3],所以有必要開發一套基于Linux平臺的即時通訊系統。

            隨著操作系統國產化的浪潮,麒麟系統已開始應用于各行各業,但是麒麟系統還沒有一個便捷的即時通訊系統。本文旨在設計能在麒麟系統下運行的即時通訊系統。由于麒麟系統是基于Linux內核開發的,本文采用QT開發平臺,設計并實現了一套即時通訊系統。此系統采用oracle數據庫和RSA加密技術,有效解決Linux系統即時通訊問題。經測試,系統能夠穩定運行。

            2 、Linux簡述

            2.1、 Linux簡介

            Linux是一種開源的類Unix的操作系統內核,自1991年誕生以來,借助于網絡和全世界IT愛好者的努力,Linux內核功能更加完善,在安全性、多線程、多用戶等方面要優于windows系統,發展潛力巨大。

            以Linux內核為基礎形成的完整操作系統都稱為Linux操作系統。目前,Linux操作系統有上百個分支,麒麟系統是其中一個分支[4]。以linux內核為基礎開發出來的軟件可以運行在所有Linux操作系統上。

            Linux操作系統上圖形界面應用程序大多采用QT開發環境。

            2.2、 QT簡介

            QT是一個跨平臺的C++圖形用戶界面開發框架,由TrollTech公司開發,提供給應用程序開發者圖形用戶界面所需的所有功能,采用信號和槽機制[5],支持多線程技術[6]。QT是完全面向對象的,擴展方便,支持組件式編程。

            由于其自身的優勢,QT已成為基于Linux操作系統圖形界面應用程序開發的最佳選擇[7]。本文就是在Linux系統上采用QT開發工具設計并實現了即時網絡通信系統。

            3 、系統總體設計

            本系統是面向企業和單位內部的通訊系統,通過延伸互聯網能力,提高人員之間的溝通和協作能力。系統不僅提供文字、文件通訊功能,還支持點對點通信和分組群通訊。在通訊中加入加密、解密技術,提高信息傳輸的安全性。整個系統采用C/S架構,包含服務端和客戶端兩部分。服務端具備用戶管理、消息通知轉發、通信安全保障、離線信息處理等功能;客戶端具備用戶注冊與登錄、文字傳輸、語音傳輸、文件傳輸、分組通訊等功能。用戶間文件、語音通訊采用P2P技術,提高了通訊效率,降低了服務端開銷。引入模塊化設計思想,將系統劃分為三層結構、多個相互關聯的功能模塊,模塊內聚斂,外耦合,結構如圖1所示。

            接入層主要處理用戶接入,狀態查詢、服務器地址管理,將用戶業務分類轉發給應用層對應的模塊;服務是系統的核心層,為用戶端提供通訊服務,主要包括P2P通訊、群組通訊、用戶管理、安全保障等功能;數據層包含了系統涉及的Oracle數據庫和文件DB模塊,Oracle數據庫存儲了用戶信息、分組群信息、離線信息等內容,文件DB用于用戶存儲通訊相關信息。

            4 、即時通訊系統設計與實現

            4.1 、通信功能設計

            為保證數據可靠性和對多用戶的支持,制定了應用層協議,同時增加緩存機制,提高數據傳輸的效率。

            (1)通信協議

            數據傳輸采用可靠的TCP[8]傳輸方式,支持多個客戶端,并保證數據傳輸的順序性,具體格式如圖2所示,各字段含義如下:

            包長:表示通信協議包總長度。

            源地址和目的地址:數據傳輸的源和目的標識,服務端和每個客戶端都有唯一的標識碼。

            序號:用于協議包的確認和重傳。

            ACK、SYN、ERR:數據傳輸的控制標志。

            命令:服務端與客戶端之間命令標識和相應的參數,格式與具體的命令有關。

            (2)基于緩存的數據傳輸

            為了解決網絡故障造成的數據重傳問題,引入了緩存機制。緩存是一種提高數據傳輸可靠性的方法,良好的緩存可以防止數據丟失保證數據可靠達到,使應用程序更加專注于自身功能實現??紤]到網絡傳輸的特點,傳輸通道內必須設置數據緩沖區來緩和數據達到的突發性,考慮到網絡故障,還需要設置磁盤級的緩存來保存待傳輸的數據。

            本系統的緩存設計思路如下:緩存采用內存和硬盤兩級的緩存。在內存中設置可循環存儲的緩沖區,上層應用傳輸命令僅將數據存入此緩沖區,系統啟動數據發送線程,定時將緩沖區內的數據發送走。系統啟動收發檢測線程,當收發兩端之間出現故障時,就將緩沖區的數據存入硬盤中,待故障修復后,將硬盤中的緩存數據發送走。從功能上看,本系統可分為數據發送和數據接收兩部分,如圖3所示。

            4.2、 數據庫處理功能設計與實現

            從功能上看,系統具備網上存儲個人信息、通信數據等信息。每次登錄,用戶都能自動獲取好友信息、通信記錄等相關信息。

            從實現上看,主要任務是選擇后臺數據庫、在數據庫中建立表、約束等結構和相應的數據庫訪問接口。

            系統后臺數據庫采用oracle,數據庫中的表主要有用戶表、好友表和數據記錄表,其定義如下所示。

            數據庫訪問主要包括連接、查詢、插入、更新等接口,其定義如下所示。

            4.3、 資源同步管理功能設計與實現

            資源同步管理負責同步客戶端需要的系統資源,包括圖片、圖標、音頻、文件、共享信息等資源數據,這些數據存儲在專用服務器上。資源分類存儲,每類資源都用時間戳來標識。當用戶登錄服務器后,客戶端會比對終端資源與服務器資源的時間戳,確定本客戶端需要更新的資源。資源更新算法如下:

            Step1.客戶端向服務端發送資源更新請求,數據中包含客戶端資源時間戳;

            Step2.服務端響應客戶端請求,查詢比請求時間戳新的資源記錄,并將結果返回客戶端;

            Step3.根據記錄,客戶端啟動資源更新進程,直到所有資源更新完畢后結束。單個文件更新算法見Step4-8;

            Step4.客戶端向服務端請求下載某個文件;

            Step5.服務端將該文件屬性信息回傳給客戶端;

            Step6.根據文件大小,確定需要啟動的線程數(相當于把文件分成N份,每個線程負責下載一份);

            Step7.客戶端啟動N+1個線程,N個線程負責下載文件,1個線程記錄N個線程實際下載數據的起始位置、結束位置等信息。

            Step8.若N個線程都下載完畢,則將N個文件合成一個文件,并復原文件屬性信息;若由于網絡故障或其他原因,中間出現中斷,則待網絡恢復后,根據記錄文件下載未完成的任務。

            4.4、 用戶登錄功能設計與實現

            用戶登錄是系統一項基礎功能,在用戶登錄過程中,需要帳號密碼驗證,其過程如圖4所示。

            Step1.用戶登錄客戶端,獲取服務器地址,向服務端接入子層發送登錄請求,接入層將該請求轉發給服務層;

            Step2.服務層向數據層查詢此用戶信息,確認信息無誤后將用戶登錄信息更新到數據庫,并將登錄成功結果返還給用戶;

            Step3.客戶端主動與服務端接入層建立心跳監測鏈路。接入層定期更新有效的心跳監測鏈路,確定客戶端在線或離線狀態。

            4.5、 系統點對點通訊設計與實現

            系統整體采用CS架構,但用戶間通訊采用P2P技術,通訊的內容主要是文字、文件、語音,整個流程如圖5所示。

            Step1.用戶A向服務端接入層發送與用戶B的P2P通訊請求,接入層通過業務分發將此請求轉給服務層。服務層檢測用戶B是否在線,若在線則將獲取用戶B的通訊地址信息,否則啟動離線通訊;

            Step2.用戶A收到用戶B的通訊地址,則與用戶B建立TCP/IP Socket連接,進行正常的通訊。

            Step3.若用戶B不在線,用戶A與服務端建立臨時的Socket,將通訊內容發送到服務端;

            Step4.當用戶B上線時,服務端將離線信息發送給用戶B。

            4.6、 系統安全性設計與實現

            網絡存在諸多不安全因素,如果不對數據進行保護,會導致信息泄露,造成重大損失,因此有必要采取手段保護數據安全。公開密鑰體制加密是一種“由已知加密密鑰導出解密密鑰在計算上是不可行”的密碼體制,具有高安全、數字簽名等能力。在公開密鑰體制中,公鑰與私鑰是通過一種算法得到的一個密鑰對,公鑰是密鑰對中的公開部分,私鑰是非公開部分。在加密算法和解密算法已知的情況下,無法通過公鑰計算出私鑰[9]。本文采用基于公開密鑰體制的RAS算法,RAS算法先生成公鑰和私鑰,再進行加密、解密變換,流程如下所示。

            Step1.隨機生成兩個大質數p、q;

            Step2.計算R=(p-1)*(q-1),N=p*q,n=log2N,n是N的二進制表示所占用位數,也是密鑰長度;

            Step3.e1和e2是一對相關的值,e1是與R互質的任意數,再計算e2,要求(e1*e2)mod(R)=1;(n,e1)與(n,e2)就是密鑰對,其中(n,e1)是公鑰,(n,e2)是私鑰。

            Step4.加密變換:將明文A分塊并且數字化,每塊長度不能超過n,進行加密變換B=Ae1(mod n),得到密文B;

            Step5.解密變換:A=Be2(mod n);還原明文A。

            假設用戶A的公鑰為PA,私鑰為SA,用戶B的公鑰為PB,私鑰為SB,通訊明文M在用戶A和B之間傳送中的加解密過程如圖6所示。

            Step1.用戶A用PB加密明文M得到密文S1,S1只能被SB解密;

            Step2.用戶A用SA加密密文S1得到密文S2,即用戶A對S1進行數字簽名;

            Step3.用戶A將密文S2發送給用戶B;

            Step4.用戶B用PA解密密文S2,得到密文S1;

            Step5.用戶B用SB解密密文S1,得到明文M。

            5、 結束語

            本文采用Qt技術,設計并實現了基于Linux平臺的即時通訊系統。詳細描述了服務端與用戶端實現的主要技術。經過測試,系統能夠穩定運行,用戶端界面效果良好。

            參考文獻

            [1] 趙正旭.麒麟操作系統使用與推廣[M].北京:科學出版社,2015.

            [2]史黎黎.基于Linux系統的即時通信軟件開發[J].無線電工程,2015(8):94-98.

            [3]雷文禮.基于Linux平臺的通信軟件的設計與實現[J].現代電子技術,2015(17):30-33.

            [4]吳慶波.麒麟操作系統層次式內核設計技術[J].國防科技大學學報,2009,31(2):76-80.

            [5]李伊林.Linux環境下即時通信軟件設計與實現[J].軟件導報,2014(6):92-94.

            [6]張志佳.基于多線程的Linux下并發服務器的實現研究[J].微計算機應用,2004(4):368-371.

            [7]苑曉芳,劉志廣.Linux下基于TCP傳輸組件的實現[J].無線電通信技術,2014,40(4):46-49.

            [8] Richard.TCP/IP詳解卷I:協議[M].西安:機械工業出版社,2000.

            [9]李文鋒.基于RSA和Hill密碼體系的文件加密系統的研究和實現[D].贛江:江西理工大學.碩士學位論文,2007.

            作者:李勇

            相關期刊推薦:《自動化學報》(月刊)創刊于1963年,是由中國自動化學會、中國科學院自動化研究所共同主辦的高級學術期刊。


          轉載請注明來自:http://www.tnxsh.com/lglw/20673.html


          與“基于麒麟系統的即時通訊系統設計與實現”相關的學術論文范文推薦

          1、基于GIS地理信息系統的智能城市規劃設計解析
          摘要:摘要:隨著城市化建設進程的不斷推進,城市人口的數量呈大幅度增長,城市社會資源難以滿足如此大規模人口的需...查看詳情

          2、淺析計算機數據庫系統在信息管理中應用
          摘要:摘要:本文首先分析數據庫系統的基本問題,對其特點進行闡述,并且詳細討論了計算機數據庫系統在信息管理中應...查看詳情

          3、水電廠計算機監控系統軟件作業防誤措施
          摘要:摘要:隨著計算機、網絡、通信技術的發展,以及水電廠自動化設備的不斷完善,發電廠形成了機構分層、功能分散...查看詳情

          4、智能化小區的弱電系統設計探討
          摘要:摘要:隨著當前社會經濟的不斷發展與提高,人們的生活水平也有了很大的增長,在人們當前的生活中,已經開始慢慢的...查看詳情

          5、基于國土空間規劃的普通干線公路規劃研究
          摘要:摘要:本文從城市交通完成的情況、發展狀況及存在的問題進行分析,提出城市交通的國土空間規劃過程和資金籌措...查看詳情

          學術期刊發表網提供論文、論文發表、論文修改以及期刊征稿等服務
          理工論文發表熱線
          日本一级婬片A片免费手机版