虞炳文,龔建澤,丁思煒,王 益,袁化宇
(西昌衛(wèi)星發(fā)射中心,四川 西昌 615000)
0 引言
在測控?cái)?shù)據(jù)傳輸網(wǎng)中,通常使用基于文件交換協(xié)議(file exchange protocol,F(xiàn)XP協(xié)議)開發(fā)的文件傳輸軟件來實(shí)現(xiàn)重要文件的傳輸。隨著國產(chǎn)自主可控平臺,以及通信網(wǎng)絡(luò)的快速發(fā)展,對文件傳輸軟件提出了更多新的要求,為保證測控?cái)?shù)據(jù)在不同軟硬件平臺下的安全運(yùn)行和在不同軟硬件平臺之間文件的快速收發(fā),對所使用的文件傳輸軟件,提出了更高的功能完備及安全可靠運(yùn)行方面的要求。通過對現(xiàn)實(shí)情況的分析,梳理出當(dāng)前傳輸網(wǎng)中使用的文件傳輸軟件存在的如下幾個(gè)問題。
1)通常僅支持在windows平臺下使用,代碼不支持跨平臺編譯使用。此處平臺指不同型號CPU與不同操作系統(tǒng)的搭配。
2)通常以VC6++甚至更早的工具進(jìn)行開發(fā),不利于軟件代碼的維護(hù)。
3)不支持在不同平臺之間傳輸文件。
4)軟件界面的易用性和美觀性較差。
5)軟件運(yùn)行的穩(wěn)定性和可靠性較差,在軟件運(yùn)行及操作過程中,可能會出現(xiàn)報(bào)錯(cuò)而崩潰。
6)當(dāng)網(wǎng)絡(luò)環(huán)境較差(如丟包率高,延時(shí)大)時(shí),傳輸?shù)奈募赡艹霈F(xiàn)不可用的情況。
7)當(dāng)網(wǎng)絡(luò)環(huán)境較好時(shí),傳輸速率受到明顯的限制的情況。
為解決以上問題,實(shí)現(xiàn)國產(chǎn)平臺下文件傳輸?shù)目煽考案咝鬏敚谝韵聨讉€(gè)方面設(shè)計(jì)該軟件。
1)對FXP基于UDP及TCP協(xié)議進(jìn)一步二次封裝,分別實(shí)現(xiàn)基于UDP協(xié)議的快速傳輸和基于TCP協(xié)議的可靠傳輸。
2)設(shè)計(jì)軟件具備自適應(yīng)網(wǎng)絡(luò)狀態(tài),自行決定基于UDP協(xié)議進(jìn)行快速傳輸,還是基于TCP協(xié)議進(jìn)行可靠傳輸?shù)墓δ堋?/p>
3)基于國產(chǎn)硬件和操作系統(tǒng)進(jìn)行開發(fā)。例如龍芯CPU及銀河麒麟操作系統(tǒng)等。
4)利用Qt平臺開發(fā)一套可實(shí)現(xiàn)隨處編譯的文件傳輸工具。
5)將軟件設(shè)計(jì)區(qū)分為聚焦軟件界面操作的軟件功能架構(gòu)設(shè)計(jì)和聚焦軟件后臺運(yùn)行的軟件運(yùn)行設(shè)計(jì)。
6)關(guān)注軟件安全編程,聚焦代碼的安全性、健壯性,確保軟件在運(yùn)行和功能操作過程中的穩(wěn)定性和可靠性。即重點(diǎn)闡述從軟件功能可靠實(shí)現(xiàn)和軟件穩(wěn)定運(yùn)行的兩個(gè)方面。
1 文件交換協(xié)議介紹
文件交換協(xié)議,即FXP協(xié)議,該協(xié)議支持對等的端到端文件交換,基于傳輸層TCP或UDP協(xié)議(基于UDP協(xié)議時(shí),需與RECP協(xié)議配合使用,RECP即傳輸質(zhì)量保障協(xié)議),完成應(yīng)用層數(shù)據(jù)的組包、解包以及應(yīng)用層的協(xié)議控制[1]。
基于TCP協(xié)議時(shí),適合在網(wǎng)絡(luò)環(huán)境較差時(shí)傳輸文件,確保文件的完整性,缺點(diǎn)是傳輸效率較低?;赨DP協(xié)議時(shí),傳輸效率較高,適合在網(wǎng)絡(luò)環(huán)境較好時(shí)實(shí)現(xiàn)盡可能快速的傳輸文件,缺點(diǎn)是可靠性較低。
基于TCP協(xié)議的文件交換協(xié)議包含四種報(bào)文類型,分別為發(fā)送請求包、請求應(yīng)答包、數(shù)據(jù)包和結(jié)束確認(rèn)包。工作流程為:文件發(fā)送方發(fā)送發(fā)送請求包,接收方響應(yīng)請求應(yīng)答包,發(fā)送方發(fā)送數(shù)據(jù)包,接收方根據(jù)數(shù)據(jù)包的長度判斷發(fā)送是否結(jié)束,返回確認(rèn)結(jié)束包,結(jié)束流程。見圖1。

圖1 基于TCP文件收發(fā)流程圖
基于UDP協(xié)議的文件交換協(xié)議包含四種報(bào)文類型,連接包、應(yīng)答包、數(shù)據(jù)包和結(jié)束連接包。工作流程為:文件發(fā)送方發(fā)送連接包,接收方響應(yīng)應(yīng)答包,發(fā)送方發(fā)送數(shù)據(jù)包,接收方對每一幀進(jìn)行響應(yīng),發(fā)送應(yīng)答包,發(fā)送方發(fā)送完畢,發(fā)送結(jié)束連接包,接收方響應(yīng)應(yīng)答包,結(jié)束流程。見圖2。

圖2 基于UDP文件收發(fā)流程圖
2 軟件功能完備性設(shè)計(jì)
文件傳輸軟件主要需要實(shí)現(xiàn)以下五個(gè)部分功能。
1)是重新設(shè)計(jì)軟件界面,力求方便美觀;
2)是實(shí)現(xiàn)對同F(xiàn)XP協(xié)議軟件的無縫銜接;
3)實(shí)現(xiàn)基于UDP協(xié)議在暢通網(wǎng)絡(luò)環(huán)境中的快速盡力傳輸;
4)實(shí)現(xiàn)基于TCP協(xié)議在擁塞網(wǎng)絡(luò)環(huán)境中保證文件傳輸?shù)耐暾?/p>
5)基于模塊化實(shí)現(xiàn)上述功能,方便二次調(diào)用和擴(kuò)展。
2.1 軟件界面及使用流程設(shè)計(jì)
設(shè)計(jì)軟件界面時(shí),應(yīng)當(dāng)充分考慮用戶的操作便捷,盡量減少操作步驟及按鈕。
軟件使用流程設(shè)計(jì)[4]見圖3。

圖3 軟件使用流程
2.2 網(wǎng)絡(luò)編程分層結(jié)構(gòu)
TCP/IP分層模型是最常見的網(wǎng)絡(luò)分層模型之一,該模型將網(wǎng)絡(luò)劃分為五個(gè)層次,由上到下依次為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層[2]?!坝缮系较隆钡拿枋?,其含義可理解為數(shù)據(jù)的發(fā)送方向,從應(yīng)用軟件至操作系統(tǒng)至網(wǎng)卡至物理鏈路(如網(wǎng)線、光纖等線纜)的一個(gè)數(shù)據(jù)傳輸方向。
TCP及UDP協(xié)議屬于五層結(jié)構(gòu)中的傳輸層,而自定義的文件傳輸協(xié)議,便是基于TCP及UDP傳輸協(xié)議的應(yīng)用層的網(wǎng)絡(luò)傳輸協(xié)議。換言之,從封裝網(wǎng)絡(luò)報(bào)文的角度分析,文件傳輸協(xié)議的報(bào)文,便是TCP或者UDP協(xié)議中的數(shù)據(jù)域內(nèi)容。
2.3 軟件功能分析及設(shè)計(jì)
文件傳輸軟件應(yīng)當(dāng)具備以下特點(diǎn)。一是可靠傳輸,即便在較差網(wǎng)絡(luò)狀態(tài)下進(jìn)行文件傳輸,也能保證文件接收完整;二是高效傳輸,盡可能多地設(shè)計(jì)并行傳輸機(jī)制,減少數(shù)據(jù)包排隊(duì)等待的時(shí)間;三是模塊化,封裝成函數(shù)庫,以便在其它軟件開發(fā)調(diào)用時(shí)盡量減少代碼的重寫,提高開發(fā)效率;四是部署簡單,盡量減少對運(yùn)行環(huán)境的依賴,做到隨處部署;五是使用簡單,人機(jī)交互合理,實(shí)現(xiàn)同一功能,盡可能減少鼠標(biāo)點(diǎn)擊次數(shù),顯示盡可能多的提示信息,并且通過后臺托盤等設(shè)計(jì),實(shí)現(xiàn)無感化運(yùn)行;六是部分參數(shù)可預(yù)配置,避免每次啟動軟件需要重新設(shè)置參數(shù)值。
2.3.1 傳輸可靠性設(shè)計(jì)
為保證軟件可靠性,主要采用了四個(gè)方面的設(shè)計(jì),一是基于TCP網(wǎng)絡(luò)協(xié)議傳輸機(jī)制,二是應(yīng)答機(jī)制,三是隊(duì)列及超時(shí)重傳機(jī)制,四是自適應(yīng)網(wǎng)絡(luò)狀態(tài)機(jī)制。
2.3.1.1 基于TCP網(wǎng)絡(luò)協(xié)議傳輸機(jī)制
軟件應(yīng)當(dāng)具備TCP網(wǎng)絡(luò)傳輸機(jī)制。TCP協(xié)議是面向連接的協(xié)議,在TCP網(wǎng)絡(luò)傳輸中,包含以下設(shè)計(jì)。
1)區(qū)分客戶端和服務(wù)器端設(shè)計(jì)。由服務(wù)器端啟動監(jiān)聽,等待連接,由客戶端發(fā)起連接。
2)兩端等權(quán)設(shè)計(jì)。雖然在網(wǎng)絡(luò)傳輸層中區(qū)分服務(wù)器與客戶端,但在應(yīng)用層文件傳輸中,無論是客戶端還是服務(wù)器,都可以發(fā)起文件傳輸和接收。
3)采用功能、角色、身份三層設(shè)計(jì)。身份包含客戶端、服務(wù)器兩種身份,角色包含文件的發(fā)送者和文件的接收者兩種,功能包括發(fā)送、處理、接收各類型報(bào)文等操作。一個(gè)身份可以包含有不同的角色,一個(gè)角色可以包含有不同的功能,最終一個(gè)身份根據(jù)其所含角色及角色所含功能,形成一個(gè)身份集合,以此實(shí)現(xiàn)客戶端和服務(wù)器的區(qū)分及等權(quán)。 見圖4所示。

圖4 三層關(guān)系示意圖
2.3.1.2 應(yīng)答機(jī)制
為保證在文件傳輸?shù)倪^程中,不丟包、不重包,并且軟件發(fā)送或者接收過程中數(shù)據(jù)處理有序,設(shè)計(jì)收發(fā)流程。收發(fā)流程是指在發(fā)送者或者接受者角色中,在發(fā)送文件或者接收文件的過程中,對每一個(gè)步驟進(jìn)行編號,逐步推進(jìn),如在某個(gè)步驟內(nèi)收到非本步驟的報(bào)文,則不予處理。采用了以下設(shè)計(jì)。
1)基于TCP協(xié)議的發(fā)送流程設(shè)計(jì)值,0代表新建進(jìn)程,1表示發(fā)送請求包階段,2表示收到請求應(yīng)答包階段,3表示在數(shù)據(jù)發(fā)送階段,4表示收到結(jié)束確認(rèn)包。見表1。

表1 基于TCP協(xié)議的發(fā)送流程設(shè)計(jì)
2)基于TCP協(xié)議的接收流程設(shè)計(jì)值,0為客戶端與服務(wù)器建立連接階段,1為接收到發(fā)送請求包階段,2為發(fā)送請求應(yīng)答包階段,3為接收數(shù)據(jù)包階段,4為發(fā)送結(jié)束確認(rèn)包階段。見表2。

表2 基于TCP協(xié)議的接收流程設(shè)計(jì)
3)基于UDP協(xié)議的發(fā)送流程設(shè)計(jì)值,0代表新建進(jìn)程,1表示已發(fā)送請求包階段,2表示收到請求應(yīng)答包階段,3表示發(fā)送數(shù)據(jù)包ASK數(shù)據(jù)階段,4表示收到數(shù)據(jù)包響應(yīng)包階段,5為發(fā)送數(shù)據(jù)包DATA數(shù)據(jù)階段,6為已發(fā)送結(jié)束確認(rèn)包階段,7為收到確認(rèn)響應(yīng)包階段。見表3。

表3 基于UDP協(xié)議的發(fā)送流程設(shè)計(jì)
4)UDP協(xié)議的接收流程設(shè)計(jì)值,0為無文件傳輸狀態(tài),1為接收到SYN發(fā)送請求包階段,2為發(fā)送SYN應(yīng)答包階段,3為接收DATA數(shù)據(jù)包中的發(fā)送請求包階段,4為響應(yīng)階段,5為接收DATA數(shù)據(jù)包階段,6為接收到確認(rèn)結(jié)束包階段,7為發(fā)送確認(rèn)結(jié)束包階段。見表4。

表4 UDP協(xié)議的接收流程設(shè)計(jì)
5)發(fā)送者,根據(jù)接受者的響應(yīng)報(bào)文,決定是否進(jìn)入下一發(fā)送流程。
6)接受者收到報(bào)文后,根據(jù)對報(bào)文進(jìn)行報(bào)文類型、包序號等內(nèi)容進(jìn)行判斷,決定是否進(jìn)入下一流程。
2.3.1.3 隊(duì)列及超時(shí)重傳機(jī)制
文件發(fā)送者讀取并傳輸文件做如下設(shè)計(jì)。
1)將文件讀入緩存區(qū),每次讀取指定報(bào)文長度,如4 096個(gè)字節(jié)長度的數(shù)據(jù),讀取之后單獨(dú)開辟緩存區(qū),在文件數(shù)據(jù)發(fā)送階段,寫入發(fā)送報(bào)文并發(fā)送。
2)在TCP協(xié)議文件傳輸階段中間過程中,無響應(yīng)報(bào)文僅在發(fā)送請求和發(fā)送結(jié)束階段進(jìn)行報(bào)文響應(yīng)。但是在文件傳輸?shù)倪^程中,每一個(gè)數(shù)據(jù)報(bào)文,都攜帶該部分?jǐn)?shù)據(jù)內(nèi)容在整個(gè)文件中所處的偏移位置。
3)在UDP協(xié)議中,接收者會對發(fā)送者的每一個(gè)報(bào)文進(jìn)行響應(yīng),發(fā)送者會根據(jù)響應(yīng)報(bào)文信息,決定是否改變所處發(fā)送流程的階段,在此做一些超時(shí)設(shè)計(jì),如果在指定的時(shí)間內(nèi)未收到響應(yīng)報(bào)文,或者響應(yīng)報(bào)文內(nèi)容檢查(主要為包序號的檢查)不通過,則會將此報(bào)文掛起,啟動定時(shí)器,進(jìn)行該報(bào)文的定時(shí)重傳,而流程也不會進(jìn)入下一階段。直到收到指定包序號的響應(yīng)報(bào)文,才會繼續(xù)發(fā)送下一報(bào)文。見圖5。

圖5 響應(yīng)流程圖
4)在TCP協(xié)議中,如網(wǎng)絡(luò)傳輸中斷,導(dǎo)致客戶端與服務(wù)器重連,并重傳文件,發(fā)送者發(fā)起傳輸請求報(bào)文后,接受者回傳的響應(yīng)會攜帶文件傳輸中斷位置信息,發(fā)送者根據(jù)此信息,從文件該位置開始重傳此文件。
2.3.1.4 自適應(yīng)網(wǎng)絡(luò)狀態(tài)機(jī)制
自適應(yīng)網(wǎng)絡(luò)狀態(tài)機(jī)制,主要針對當(dāng)網(wǎng)絡(luò)狀態(tài)出現(xiàn)異常,報(bào)文傳輸在一定程度上受阻時(shí)軟件的應(yīng)對機(jī)制,該部分內(nèi)容設(shè)計(jì)專用于基于UDP進(jìn)行文件傳輸?shù)倪^程,做如下設(shè)計(jì)。
1)記錄網(wǎng)絡(luò)延時(shí)、丟包率兩個(gè)參數(shù)指標(biāo)?;赨DP進(jìn)行文件傳輸時(shí),根據(jù)報(bào)文發(fā)送時(shí)間及接收到相應(yīng)響應(yīng)報(bào)文的時(shí)間差,作為網(wǎng)絡(luò)延時(shí),根據(jù)發(fā)包數(shù)累計(jì)值與收包數(shù)累計(jì)值之差為丟包數(shù),除以發(fā)包累計(jì)值,作為丟包率。每次接收報(bào)文時(shí),將計(jì)算相應(yīng)的網(wǎng)絡(luò)延時(shí)和丟包率并連同計(jì)算時(shí)間及接收方地址存入數(shù)據(jù)庫。
2)外推下一時(shí)刻的網(wǎng)絡(luò)延時(shí)和丟包率,作為網(wǎng)絡(luò)狀態(tài)的判別依據(jù)。在此提及的下一時(shí)刻,以設(shè)定的超時(shí)重傳界限值作為時(shí)間長度。選取最近的6次記錄數(shù)據(jù),根據(jù)最小二乘法,進(jìn)行曲線擬合,可選用二階、三階、四階等進(jìn)行擬合。
3)計(jì)算時(shí)延抖動。選取最近的6次網(wǎng)絡(luò)延時(shí)值,計(jì)算方差,作為時(shí)延抖動。
4)根據(jù)網(wǎng)絡(luò)延時(shí)、丟包率、時(shí)延抖動三個(gè)指標(biāo)綜合判斷[3]網(wǎng)絡(luò)狀態(tài)。將網(wǎng)絡(luò)狀態(tài)分為正常、干擾、阻塞、穩(wěn)定四個(gè)狀態(tài)。正常狀態(tài)時(shí),將超時(shí)重傳等待時(shí)間值減去10毫秒,但必須大于0值,干擾狀態(tài)時(shí),將超時(shí)重傳等待時(shí)間值加上10毫秒,阻塞狀態(tài)時(shí),將超時(shí)重傳等待時(shí)間增加一倍,穩(wěn)定狀態(tài)時(shí),不作操作。
2.3.2 效率設(shè)計(jì)
為保證軟件的文件傳輸效率,采用了三個(gè)方面的設(shè)計(jì),一是自適應(yīng)網(wǎng)絡(luò)狀態(tài)機(jī)制,二是數(shù)據(jù)處理多線程機(jī)制,三是數(shù)據(jù)驅(qū)動處理數(shù)據(jù)報(bào)文機(jī)制。
1)自適應(yīng)網(wǎng)絡(luò)狀態(tài)機(jī)制。滑動窗口[5]設(shè)計(jì),自適應(yīng)網(wǎng)絡(luò)狀態(tài)機(jī)制在可靠性設(shè)計(jì)中已陳述主要內(nèi)容,在效率設(shè)計(jì)方面的考慮,即當(dāng)網(wǎng)絡(luò)狀態(tài)恢復(fù)時(shí),會適當(dāng)減少超時(shí)重傳時(shí)間,以加快網(wǎng)絡(luò)報(bào)文傳輸效率。
2)數(shù)據(jù)處理多線程機(jī)制。多線程機(jī)制主要針對兩種情況做處理,一是在TCP服務(wù)器端設(shè)計(jì)可同時(shí)接收多個(gè)客戶端的連接,接收處理不同數(shù)據(jù)發(fā)送者發(fā)來的數(shù)據(jù),二是將數(shù)據(jù)處理線程獨(dú)立出來,加快效率。
3)數(shù)據(jù)驅(qū)動處理數(shù)據(jù)報(bào)文機(jī)制。在多線程的基礎(chǔ)上,定義一個(gè)全局的數(shù)據(jù)容器。當(dāng)數(shù)據(jù)接受者從主線程接收到數(shù)據(jù)后,將數(shù)據(jù)放入數(shù)據(jù)容器,在數(shù)據(jù)處理線程利用while函數(shù)無限循環(huán),不斷判斷數(shù)據(jù)容器是否為空,非空則處理數(shù)據(jù),處理完則將該部分?jǐn)?shù)據(jù)扔出容器。
2.3.3 模塊化設(shè)計(jì)
在軟件中,根據(jù)功能,角色,身份三層管理的設(shè)計(jì),將三個(gè)方面的內(nèi)容逐層實(shí)現(xiàn)模塊化,在別處可根據(jù)需求通過接口調(diào)用即可方便使用。
2.3.3.1 發(fā)送者和接受者角色模塊化
根據(jù)發(fā)送者和接受者的角色區(qū)分,以及TCP和UDP的功能區(qū)分,可以設(shè)計(jì)為TCP發(fā)送者類、TCP接受者類、UDP發(fā)送者類、UDP接受者類四個(gè)模塊,實(shí)現(xiàn)數(shù)據(jù)報(bào)文的發(fā)送、處理、接收功能。
2.3.3.2 客戶端和服務(wù)器的身份模塊化
根據(jù)客戶端和服務(wù)器的身份區(qū)分,并根據(jù)發(fā)送者和接受者角色區(qū)分,可以分為客戶端類、服務(wù)器類、UDP收發(fā)類三個(gè)模塊,分別實(shí)現(xiàn)客戶端、服務(wù)器及UDP收發(fā)的功能。
2.3.3.3 重寫界面顯示類
為實(shí)時(shí)顯示文件發(fā)送和接收進(jìn)度,實(shí)現(xiàn)文件拖曳上傳等輔助性功能,重寫一個(gè)繼承自QTableWidget的類,作為顯示模塊,在調(diào)用時(shí),只需要將控件提升為自定義類即可。
2.3.3.4 集成工具類
為方便調(diào)用,設(shè)計(jì)一系列自定義工具類,實(shí)現(xiàn)數(shù)據(jù)庫相關(guān)操作的數(shù)據(jù)庫類、實(shí)現(xiàn)自適應(yīng)網(wǎng)絡(luò)狀態(tài)的網(wǎng)絡(luò)質(zhì)量保障控制類以及實(shí)現(xiàn)讀取XML預(yù)配置參數(shù)的讀取類。
2.3.4 兼容性設(shè)計(jì)
為實(shí)現(xiàn)軟件部署方便,提高可移植性,需要盡量減少對環(huán)境因素的依賴,做以下三方面設(shè)計(jì)。
1)部署簡單。最后發(fā)布的軟件版本應(yīng)該將其依賴庫統(tǒng)一發(fā)布。
2)輕量級數(shù)據(jù)庫。為避免對環(huán)境數(shù)據(jù)庫的依賴,不采用mysql等需要安裝部署的數(shù)據(jù)庫,采用Qsqlite數(shù)據(jù)庫。
3)區(qū)分系統(tǒng)加入不同的庫。在調(diào)用系統(tǒng)自帶的庫實(shí)現(xiàn)一些功能時(shí),可能會出現(xiàn)適配的問題,因此需要采用#if defined(Q_OS_WIN32),#else,#endif語句,對庫的調(diào)用加上限制條件。
2.3.5 易用性設(shè)計(jì)
為實(shí)現(xiàn)交互界面的優(yōu)化,有以下三方面設(shè)計(jì)。
1)精簡界面按鈕。盡量減少界面中的點(diǎn)擊按鈕,僅保留選擇文件、發(fā)送、啟動監(jiān)聽、連接服務(wù)器四種類型按鈕。
2)設(shè)置預(yù)配置項(xiàng)。將部分不常修改的配置內(nèi)容,作為預(yù)配置項(xiàng),通過修改xml文件進(jìn)行修改,如本地監(jiān)聽端口,報(bào)文長度等配置。
3)無感化運(yùn)行??蓪④浖钚』镣斜P,并在后臺運(yùn)行,接收文件。
3 軟件運(yùn)行安全穩(wěn)定性設(shè)計(jì)
為保證軟件穩(wěn)定可靠運(yùn)行,避免因代碼編寫或邏輯上錯(cuò)誤導(dǎo)致軟件崩潰,對軟件安全編程內(nèi)容做一些設(shè)計(jì),以進(jìn)一步提升軟件運(yùn)行可靠。
3.1 安全編程概念
應(yīng)用軟件安全編程,是從提升軟件安全性的角度,依照《GB-T 38674-2020 信息安全技術(shù) 應(yīng)用軟件安全編程指南》等應(yīng)用軟件安全編程規(guī)范性引用文件,針對應(yīng)用軟件編程過程進(jìn)行規(guī)范,實(shí)現(xiàn)軟件開發(fā)全過程的指導(dǎo),以達(dá)到有效降低軟件安全風(fēng)險(xiǎn)的目的。
3.2 安全編程設(shè)計(jì)
3.2.1 報(bào)文組幀拆幀設(shè)計(jì)
在軟件中,涉及到大量的報(bào)文的組幀和拆幀,在此類操作中,應(yīng)當(dāng)先將所有報(bào)文根據(jù)其報(bào)文類型及報(bào)文中不同字段的數(shù)據(jù)類型和含義,先設(shè)計(jì)成一個(gè)結(jié)構(gòu)體,當(dāng)處理到報(bào)文的組幀或者拆幀時(shí),只需將指定長度的數(shù)據(jù)賦值給同樣長度的結(jié)構(gòu)體即可。結(jié)構(gòu)體主要可分為兩種類型,一是定長結(jié)構(gòu)體,二是不定長結(jié)構(gòu)體。在軟件中,傳輸文件數(shù)據(jù)的報(bào)文設(shè)計(jì)為不定長結(jié)構(gòu)體,因其最后一幀不一定為完整的一幀,除此之外的報(bào)文,都是定長結(jié)構(gòu)體。
3.2.2 報(bào)文賦值操作設(shè)計(jì)
在軟件中,涉及到大量的數(shù)據(jù)內(nèi)容賦值,主要涉及到將接收到的數(shù)據(jù)賦值給相應(yīng)結(jié)構(gòu)體,將結(jié)構(gòu)體中的數(shù)據(jù)賦值給報(bào)文以發(fā)送兩個(gè)操作,在此過程中,如涉及到指針的賦值,避免使用strcpy()等不能指定賦值長度的函數(shù),因?yàn)榇祟惡瘮?shù)通常認(rèn)為“
一级毛片我不卡|
国产又色又爽无遮挡免|
国产精品不卡视频一区二区|
91午夜精品亚洲一区二区三区|
久久精品国产自在天天线|
18禁在线播放成人免费|
97精品久久久久久久久久精品|
中文字幕制服av|
国产精品人妻久久久久久|
久久99一区二区三区|
日韩精品有码人妻一区|
大片免费播放器 马上看|
中文字幕制服av|
欧美激情国产日韩精品一区|
亚洲精品亚洲一区二区|
久久久久人妻精品一区果冻|
韩国av在线不卡|
久久这里有精品视频免费|
最近中文字幕2019免费版|
视频区图区小说|
国产黄片视频在线免费观看|
国产精品伦人一区二区|
99re6热这里在线精品视频|
国产黄色免费在线视频|
亚洲精品国产色婷婷电影|
√禁漫天堂资源中文www|
国产亚洲午夜精品一区二区久久|
国产中年淑女户外野战色|
精品亚洲成a人片在线观看|
看十八女毛片水多多多|
国产成人免费观看mmmm|
一级a做视频免费观看|
99久久中文字幕三级久久日本|
又爽又黄a免费视频|
亚洲人成网站在线播|
老熟女久久久|
国产亚洲av片在线观看秒播厂|
欧美3d第一页|
精品一区二区三区视频在线|
美女xxoo啪啪120秒动态图|
a级毛片免费高清观看在线播放|
久久久久人妻精品一区果冻|
99热6这里只有精品|
日韩精品免费视频一区二区三区
|
少妇人妻精品综合一区二区|
秋霞伦理黄片|
国产极品天堂在线|
嫩草影院新地址|
妹子高潮喷水视频|
亚洲av二区三区四区|
少妇被粗大猛烈的视频|
卡戴珊不雅视频在线播放|
亚洲av不卡在线观看|
久久久久久久久久成人|
久久精品久久久久久噜噜老黄|
日本爱情动作片www.在线观看|
妹子高潮喷水视频|
欧美日本中文国产一区发布|
日本wwww免费看|
卡戴珊不雅视频在线播放|
自线自在国产av|
伦理电影大哥的女人|
免费播放大片免费观看视频在线观看|
一区二区三区乱码不卡18|
av黄色大香蕉|
两个人的视频大全免费|
九色成人免费人妻av|
亚洲国产精品成人久久小说|
国产伦在线观看视频一区|
国产精品偷伦视频观看了|
国产精品女同一区二区软件|
99热这里只有精品一区|
国产有黄有色有爽视频|
日韩av免费高清视频|
亚洲国产色片|
亚洲,欧美,日韩|
国产真实伦视频高清在线观看|
欧美日韩视频高清一区二区三区二|
亚洲精品456在线播放app|
色5月婷婷丁香|
边亲边吃奶的免费视频|
久久久久久伊人网av|
极品人妻少妇av视频|
中文字幕精品免费在线观看视频
|
日韩免费高清中文字幕av|
av卡一久久|
下体分泌物呈黄色|
欧美精品亚洲一区二区|
国产欧美日韩一区二区三区在线
|
人妻制服诱惑在线中文字幕|
午夜日本视频在线|
亚洲av男天堂|
少妇裸体淫交视频免费看高清|
亚洲,一卡二卡三卡|
下体分泌物呈黄色|
久久6这里有精品|
多毛熟女@视频|
亚洲国产av新网站|
国产精品三级大全|
亚洲欧美日韩卡通动漫|
在线 av 中文字幕|
国产精品伦人一区二区|
高清视频免费观看一区二区|
99精国产麻豆久久婷婷|
大话2 男鬼变身卡|
少妇人妻一区二区三区视频|
中国三级夫妇交换|
国产高清国产精品国产三级|
91精品国产国语对白视频|
亚洲综合精品二区|
丝袜脚勾引网站|
日韩一区二区三区影片|
高清在线视频一区二区三区|
蜜桃在线观看..|
国产伦理片在线播放av一区|
国产成人一区二区在线|
国产黄频视频在线观看|
av又黄又爽大尺度在线免费看|
久久午夜综合久久蜜桃|
在线观看免费高清a一片|
日韩亚洲欧美综合|
如何舔出高潮|
97在线人人人人妻|
少妇的逼水好多|
av.在线天堂|
国产精品福利在线免费观看|
自拍欧美九色日韩亚洲蝌蚪91
|
99国产精品免费福利视频|
99精国产麻豆久久婷婷|
精华霜和精华液先用哪个|
亚洲av福利一区|
校园人妻丝袜中文字幕|
亚洲va在线va天堂va国产|
自线自在国产av|
欧美老熟妇乱子伦牲交|
三级经典国产精品|
久久国产精品大桥未久av
|
男人爽女人下面视频在线观看|
亚洲av免费高清在线观看|
久久午夜福利片|
久久国内精品自在自线图片|
日韩欧美精品免费久久|
熟女人妻精品中文字幕|
五月伊人婷婷丁香|
中文字幕人妻熟人妻熟丝袜美|
美女视频免费永久观看网站|
欧美丝袜亚洲另类|
久久久a久久爽久久v久久|
国产精品99久久久久久久久|
一区在线观看完整版|
亚洲成人手机|
中国美白少妇内射xxxbb|
视频区图区小说|
国产精品熟女久久久久浪|
国产成人午夜福利电影在线观看|
极品人妻少妇av视频|
久久久久精品性色|
国产精品.久久久|
五月玫瑰六月丁香|
亚洲av不卡在线观看|
熟女电影av网|
黄色怎么调成土黄色|
日日啪夜夜爽|
久久99精品国语久久久|
日韩免费高清中文字幕av|
少妇的逼水好多|
少妇丰满av|
女性被躁到高潮视频|
97超碰精品成人国产|
69精品国产乱码久久久|
国产精品嫩草影院av在线观看|
午夜免费男女啪啪视频观看|
日韩大片免费观看网站|
免费在线观看成人毛片|
亚洲成色77777|
午夜激情久久久久久久|
中文字幕制服av|
永久网站在线|
亚洲欧美日韩卡通动漫|
国产午夜精品一二区理论片|
99热网站在线观看|
久久久久精品性色|
久久久久久久久久久免费av|
激情五月婷婷亚洲|
老熟女久久久|
91aial.com中文字幕在线观看|
丰满少妇做爰视频|
亚洲,欧美,日韩|
最近最新中文字幕免费大全7|
精品一区二区三区视频在线|
夫妻性生交免费视频一级片|
国产亚洲午夜精品一区二区久久|
乱人伦中国视频|
日韩一本色道免费dvd|
午夜免费鲁丝|
午夜免费观看性视频|
国产 一区精品|
99久国产av精品国产电影|
欧美+日韩+精品|
亚洲av男天堂|
18禁动态无遮挡网站|
成年美女黄网站色视频大全免费
|
国产午夜精品久久久久久一区二区三区|
美女内射精品一级片tv|
秋霞伦理黄片|
亚洲精品乱久久久久久|
纯流量卡能插随身wifi吗|
国产精品一区二区性色av|
少妇裸体淫交视频免费看高清|
丝袜喷水一区|
精华霜和精华液先用哪个|
精品一区二区三区视频在线|
欧美区成人在线视频|
a级毛片免费高清观看在线播放|
黑人巨大精品欧美一区二区蜜桃
|
午夜福利在线观看免费完整高清在|
国产精品一区二区在线不卡|
精品一区二区三卡|
亚洲国产精品专区欧美|
嘟嘟电影网在线观看|
成年美女黄网站色视频大全免费
|
午夜精品国产一区二区电影|
一区二区三区精品91|
丰满少妇做爰视频|
国产成人精品福利久久|
亚洲情色 制服丝袜|
老女人水多毛片|
亚洲真实伦在线观看|
国产在视频线精品|
欧美激情极品国产一区二区三区
|
最近最新中文字幕免费大全7|
色视频www国产|
夜夜看夜夜爽夜夜摸|
18禁在线播放成人免费|
av视频免费观看在线观看|
日韩精品有码人妻一区|
欧美丝袜亚洲另类|
午夜日本视频在线|
国产精品久久久久久精品电影小说|
黄色一级大片看看|
成人漫画全彩无遮挡|
亚洲第一av免费看|
日韩制服骚丝袜av|
女的被弄到高潮叫床怎么办|
2022亚洲国产成人精品|
亚洲国产精品成人久久小说|
亚洲第一区二区三区不卡|
精品少妇久久久久久888优播|
青春草视频在线免费观看|
少妇被粗大猛烈的视频|
亚洲av综合色区一区|
亚洲欧美一区二区三区黑人
|
一级毛片黄色毛片免费观看视频|
久久 成人 亚洲|
免费看不卡的av|
黑人高潮一二区|
亚洲国产欧美日韩在线播放
|
一级av片app|
两个人的视频大全免费|
亚洲精品国产av成人精品|
国产一区二区三区综合在线观看
|
国产精品国产三级国产av玫瑰|
国产精品久久久久久精品古装|
寂寞人妻少妇视频99o|
久久国产亚洲av麻豆专区|
80岁老熟妇乱子伦牲交|
啦啦啦在线观看免费高清www|
久久久久久久大尺度免费视频|
日韩av在线免费看完整版不卡|
午夜91福利影院|
伊人久久精品亚洲午夜|
99九九线精品视频在线观看视频|
18+在线观看网站|
97超视频在线观看视频|
精品亚洲成a人片在线观看|
一区在线观看完整版|
国产 精品1|
99精国产麻豆久久婷婷|
好男人视频免费观看在线|
内射极品少妇av片p|
一边亲一边摸免费视频|
99热这里只有是精品50|
国产成人免费观看mmmm|
纯流量卡能插随身wifi吗|
男的添女的下面高潮视频|
一本久久精品|
女人久久www免费人成看片|
亚洲欧洲精品一区二区精品久久久
|
成人毛片60女人毛片免费|
国产成人精品久久久久久|
精品人妻偷拍中文字幕|
xxx大片免费视频|
久久国内精品自在自线图片|
男人添女人高潮全过程视频|
久久久国产精品麻豆|
少妇丰满av|
91精品伊人久久大香线蕉|
狂野欧美激情性xxxx在线观看|
精品卡一卡二卡四卡免费|
在线观看一区二区三区激情|
国产探花极品一区二区|
亚洲综合色惰|
亚洲精品国产av成人精品|
免费人成在线观看视频色|
日韩一本色道免费dvd|
亚洲精品久久午夜乱码|
天堂俺去俺来也www色官网|
亚洲精品国产av蜜桃|
国产欧美亚洲国产|
国产亚洲5aaaaa淫片|
美女xxoo啪啪120秒动态图|
欧美日韩av久久|
国产日韩欧美在线精品|
亚洲精品乱码久久久久久按摩|
嫩草影院新地址|
91精品一卡2卡3卡4卡|
日本猛色少妇xxxxx猛交久久|
tube8黄色片|
草草在线视频免费看|
男人狂女人下面高潮的视频|
街头女战士在线观看网站|
水蜜桃什么品种好|
欧美精品人与动牲交sv欧美|
人妻少妇偷人精品九色|
一级,二级,三级黄色视频|
男人爽女人下面视频在线观看|
夜夜看夜夜爽夜夜摸|
99九九在线精品视频
|
少妇猛男粗大的猛烈进出视频|
在线精品无人区一区二区三|
亚洲内射少妇av|
日本欧美视频一区|
国产精品人妻久久久影院|
久久精品国产鲁丝片午夜精品|
国产极品粉嫩免费观看在线
|
亚洲精品成人av观看孕妇|
国产成人精品无人区|
亚洲va在线va天堂va国产|
欧美最新免费一区二区三区|
卡戴珊不雅视频在线播放|
久久久久国产网址|
亚洲,一卡二卡三卡|
一个人看视频在线观看www免费|
av天堂久久9|
两个人免费观看高清视频
|
免费看光身美女|
久久综合国产亚洲精品|
伊人久久精品亚洲午夜|
校园人妻丝袜中文字幕|
国产精品一区二区三区四区免费观看|
国产精品久久久久久av不卡|
亚洲经典国产精华液单|
一区二区三区免费毛片|
成人亚洲欧美一区二区av|
国产成人a∨麻豆精品|
www.av在线官网国产|
久久综合国产亚洲精品|
免费看不卡的av|
亚洲精品国产成人久久av|
国产精品国产av在线观看|
成人特级av手机在线观看|
两个人免费观看高清视频
|
国产成人精品福利久久|
99久久综合免费|
女人久久www免费人成看片|
日日摸夜夜添夜夜爱|
国产探花极品一区二区|
国产成人免费无遮挡视频|
亚洲国产日韩一区二区|
久久精品久久精品一区二区三区|
看十八女毛片水多多多|
王馨瑶露胸无遮挡在线观看|
波野结衣二区三区在线|
嫩草影院入口|
九草在线视频观看|
国产免费一区二区三区四区乱码|
中文字幕人妻丝袜制服|
亚洲欧美中文字幕日韩二区|
亚洲精品亚洲一区二区|
丰满饥渴人妻一区二区三|
永久网站在线|
少妇猛男粗大的猛烈进出视频|
中国三级夫妇交换|
av不卡在线播放|
亚洲经典国产精华液单|
欧美日韩视频高清一区二区三区二|
赤兔流量卡办理|
啦啦啦在线观看免费高清www|
日日啪夜夜爽|
av福利片在线|
啦啦啦啦在线视频资源|
插逼视频在线观看|
国产国拍精品亚洲av在线观看|
成年av动漫网址|
a级毛片在线看网站|
啦啦啦中文免费视频观看日本|
国产伦精品一区二区三区四那|
美女国产视频在线观看|
日韩一区二区三区影片|
纵有疾风起免费观看全集完整版|
偷拍熟女少妇极品色|
欧美高清成人免费视频www|
日本猛色少妇xxxxx猛交久久|
少妇精品久久久久久久|
久久精品久久久久久噜噜老黄|
人妻少妇偷人精品九色|
我的老师免费观看完整版|
午夜91福利影院|
看十八女毛片水多多多|
少妇裸体淫交视频免费看高清|
日韩视频在线欧美|
国产伦精品一区二区三区视频9|
久久精品久久久久久久性|
我的老师免费观看完整版|
好男人视频免费观看在线|
人妻 亚洲 视频|
亚洲欧美成人综合另类久久久|
麻豆精品久久久久久蜜桃|
不卡视频在线观看欧美|
一本色道久久久久久精品综合|
嘟嘟电影网在线观看|
伊人亚洲综合成人网|
精品国产国语对白av|
欧美人与善性xxx|
久久97久久精品|
久久女婷五月综合色啪小说|
热99国产精品久久久久久7|
国内少妇人妻偷人精品xxx网站|
秋霞在线观看毛片|
最黄视频免费看|
久久精品国产鲁丝片午夜精品|
亚州av有码|
欧美97在线视频|
成人影院久久|
日韩,欧美,国产一区二区三区|
91久久精品国产一区二区成人|
美女cb高潮喷水在线观看|
青春草视频在线免费观看|
丰满乱子伦码专区|
国产探花极品一区二区|
一级毛片我不卡|
永久网站在线|
国产国拍精品亚洲av在线观看|
内地一区二区视频在线|
亚洲人成网站在线播|
全区人妻精品视频|
国产免费视频播放在线视频|
日韩一区二区视频免费看|
精品一区二区免费观看|
在线免费观看不下载黄p国产|
中文字幕人妻丝袜制服|
亚洲高清免费不卡视频|
日韩,欧美,国产一区二区三区|
国产精品一区二区在线不卡|
亚洲三级黄色毛片|
亚洲一级一片aⅴ在线观看|
亚洲av在线观看美女高潮|
免费不卡的大黄色大毛片视频在线观看|
国产欧美日韩精品一区二区|
国产精品女同一区二区软件|
国产高清不卡午夜福利|
国产精品99久久99久久久不卡
|
亚洲伊人久久精品综合|
99热这里只有是精品50|
青春草亚洲视频在线观看|
大香蕉久久网|
av不卡在线播放|
国产黄色免费在线视频|
蜜桃久久精品国产亚洲av|
国产一区亚洲一区在线观看|
日韩成人伦理影院|
王馨瑶露胸无遮挡在线观看|
伊人亚洲综合成人网|
午夜免费男女啪啪视频观看|
国产高清有码在线观看视频|
全区人妻精品视频|
少妇熟女欧美另类|
亚洲av成人精品一二三区|
国产免费又黄又爽又色|
18禁在线播放成人免费|
99精国产麻豆久久婷婷|
亚洲欧美日韩另类电影网站|
视频区图区小说|
欧美97在线视频|
久久综合国产亚洲精品|
99视频精品全部免费 在线|
狂野欧美激情性bbbbbb|
观看av在线不卡|
观看免费一级毛片|
噜噜噜噜噜久久久久久91|
国产精品.久久久|
日韩亚洲欧美综合|
欧美日韩视频精品一区|
精品亚洲成国产av|
在线观看国产h片|
国产精品.久久久|
中文乱码字字幕精品一区二区三区|
久久久久久久久久人人人人人人|
亚洲欧美中文字幕日韩二区|
3wmmmm亚洲av在线观看|
成人综合一区亚洲|
午夜免费鲁丝|
亚洲欧美一区二区三区黑人
|
一区二区av电影网|
男人添女人高潮全过程视频|
精品少妇久久久久久888优播|
一级毛片黄色毛片免费观看视频|
国产美女午夜福利|
国内揄拍国产精品人妻在线|
久久狼人影院|
国产高清有码在线观看视频|
成人毛片60女人毛片免费|
成人二区视频|
五月玫瑰六月丁香|
国产探花极品一区二区|
国产精品熟女久久久久浪|
亚洲欧美精品专区久久|
av在线老鸭窝|
青青草视频在线视频观看|
一级毛片黄色毛片免费观看视频|
av女优亚洲男人天堂|
国产永久视频网站|
黄色视频在线播放观看不卡|
丰满少妇做爰视频|
久久久久国产网址|
91久久精品国产一区二区三区|
中文字幕人妻熟人妻熟丝袜美|
国产 一区精品|
中文字幕亚洲精品专区|
99久久精品热视频|
免费黄网站久久成人精品|
欧美日韩精品成人综合77777|
国产精品久久久久久久久免|
少妇丰满av|
三上悠亚av全集在线观看
|
狂野欧美白嫩少妇大欣赏|
人妻制服诱惑在线中文字幕|
偷拍熟女少妇极品色|
亚洲无线观看免费|
国产精品一区二区在线观看99|
成人特级av手机在线观看|
男人添女人高潮全过程视频|
国产男女内射视频|
国产淫语在线视频|
高清av免费在线|
美女中出高潮动态图|
国产亚洲91精品色在线|
久久狼人影院|
色哟哟·www|
亚洲丝袜综合中文字幕|
成人特级av手机在线观看|
a级片在线免费高清观看视频|
我要看日韩黄色一级片|
亚洲精品一二三|
精品国产国语对白av|
亚洲真实伦在线观看|
国产色爽女视频免费观看|
久久人人爽av亚洲精品天堂|
国产免费福利视频在线观看|
中文字幕制服av|
欧美国产精品一级二级三级
|
在线观看免费高清a一片|
一级,二级,三级黄色视频|
97在线人人人人妻|
免费大片18禁|
日本-黄色视频高清免费观看|
成人二区视频|
日本猛色少妇xxxxx猛交久久|
h日本视频在线播放|
久久精品夜色国产|
色吧在线观看|
不卡视频在线观看欧美|
人妻少妇偷人精品九色|
国产成人91sexporn|
麻豆成人av视频|
国产片特级美女逼逼视频|
日韩不卡一区二区三区视频在线|
97超碰精品成人国产|
久久国内精品自在自线图片|
欧美bdsm另类|
亚洲精华国产精华液的使用体验|
插阴视频在线观看视频|
日本午夜av视频|
午夜视频国产福利|
一本久久精品|
av福利片在线|
18+在线观看网站|
大香蕉97超碰在线|
精品国产乱码久久久久久小说|
另类亚洲欧美激情|
精品久久久精品久久久|
一区在线观看完整版|
a级一级毛片免费在线观看|
最后的刺客免费高清国语|
日本av免费视频播放|
av专区在线播放|
亚洲婷婷狠狠爱综合网|
91aial.com中文字幕在线观看|
日韩精品免费视频一区二区三区
|
一本色道久久久久久精品综合|
欧美老熟妇乱子伦牲交|
日韩亚洲欧美综合|
少妇人妻 视频|
亚洲精华国产精华液的使用体验|
欧美 亚洲 国产 日韩一|
又大又黄又爽视频免费|
欧美高清成人免费视频www|
国产精品熟女久久久久浪|
亚洲av成人精品一二三区|
色5月婷婷丁香|
a 毛片基地|
一级毛片 在线播放|
欧美激情极品国产一区二区三区
|
水蜜桃什么品种好|
日韩大片免费观看网站|