黨增江,宋永立,高 玫,尹麗云
(中國(guó)航天科工集團(tuán)第二研究院 七〇六所,北京 100854)
為解決企業(yè)內(nèi)網(wǎng)與互聯(lián)網(wǎng)聯(lián)通帶來(lái)的信息安全問(wèn)題,抓住市場(chǎng)機(jī)遇,近幾年來(lái),各大信息安全廠商都推出了自己的安全解決方案,其中最核心的就是單向數(shù)據(jù)傳輸設(shè)備[1-4]。單向數(shù)據(jù)傳輸設(shè)備是新型的網(wǎng)絡(luò)安全隔離產(chǎn)品,其基本思想是從本質(zhì)上將傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)雙向通信的硬件和通信協(xié)議設(shè)計(jì)為單向發(fā)送和單向接收,數(shù)據(jù)只能從低安全等級(jí)的網(wǎng)絡(luò)單向傳輸?shù)礁甙踩燃?jí)的網(wǎng)絡(luò)中,能夠有效防止高等級(jí)網(wǎng)絡(luò)中的敏感信息泄露[5,6]。由于單向傳輸中沒(méi)有反向通道,攻擊者無(wú)法在線獲取攻擊必需的相關(guān)信息,即使向高安全等級(jí)網(wǎng)絡(luò)中“盲”注入了病毒或者木馬,由于底層硬件并沒(méi)有從高安全等級(jí)網(wǎng)絡(luò)中反向傳輸數(shù)據(jù)到低安全等級(jí)網(wǎng)絡(luò)的能力,在一定程度上,絕大部分的網(wǎng)絡(luò)安全攻擊行為也將失去意義[5]。
目前,大部分的單向數(shù)據(jù)傳輸設(shè)備硬件上使用的還是X86平臺(tái)芯片,單向傳輸使用單向光卡實(shí)現(xiàn)[4,5,7],軟件協(xié)議上仍然使用IP協(xié)議進(jìn)行數(shù)據(jù)通信[5,7,8],IP協(xié)議是公開(kāi)的標(biāo)準(zhǔn)以太網(wǎng)通信協(xié)議,其通信數(shù)據(jù)容易被惡意攻擊者嗅探和破解,存在信息安全隱患。本文提出一種用于單向數(shù)據(jù)通信的私有協(xié)議,該私有協(xié)議運(yùn)行于網(wǎng)絡(luò)層,是非IP協(xié)議,能夠有效避免惡意攻擊者的嗅探和破解,基于該私有協(xié)議設(shè)計(jì)了一款國(guó)產(chǎn)化申威平臺(tái)上的單向數(shù)據(jù)傳輸設(shè)備,搭建了測(cè)試驗(yàn)證環(huán)境,并通過(guò)數(shù)據(jù)包捕獲和分析驗(yàn)證了私有協(xié)議的封裝結(jié)構(gòu)和傳輸性能。
在計(jì)算機(jī)學(xué)科概念中,協(xié)議即網(wǎng)絡(luò)協(xié)議,是通信計(jì)算機(jī)雙方必須共同遵從的一組約定,如怎么建立連接、如何相互識(shí)別等,只有遵守這個(gè)約定,計(jì)算機(jī)之間才能相互通信交流,協(xié)議的三要素是語(yǔ)法、語(yǔ)義和時(shí)序。TCP/IP協(xié)議是以太網(wǎng)中最重要的協(xié)議體系,是所有計(jì)算機(jī)網(wǎng)絡(luò)的標(biāo)準(zhǔn)。
私有協(xié)議是企業(yè)或團(tuán)體內(nèi)部制定并執(zhí)行的某種規(guī)范約定,對(duì)外不公開(kāi)規(guī)范細(xì)節(jié)。本文中所提出的私有協(xié)議是專(zhuān)門(mén)為單向數(shù)據(jù)安全傳輸系統(tǒng)中數(shù)據(jù)單向發(fā)送和接收而制定的,在一定程度上解決了通信安全問(wèn)題,同時(shí)由于減少了TCP/IP協(xié)議的開(kāi)銷(xiāo),在一定程度上也提高了網(wǎng)絡(luò)傳輸性能。
本文設(shè)計(jì)了一套單向代理傳輸協(xié)議OPTP,該協(xié)議主要用于單向數(shù)據(jù)傳輸設(shè)備外端機(jī)與內(nèi)端機(jī)之間的單向通信,OPTP協(xié)議報(bào)文格式結(jié)構(gòu)如圖1所示。
圖1 OPTP協(xié)議報(bào)文結(jié)構(gòu)
報(bào)文中各協(xié)議字段詳細(xì)描述如下:
協(xié)議頭:4個(gè)字節(jié),表示使用OPTP協(xié)議頭封裝數(shù)據(jù),固定為0xFF-0x55-0xFF-0x55;
通道號(hào):4個(gè)字節(jié),數(shù)據(jù)傳輸使用的邏輯通道標(biāo)識(shí),為實(shí)現(xiàn)多通道傳輸而設(shè)計(jì),發(fā)送端和接收端通道一一對(duì)應(yīng);
會(huì)話號(hào):8個(gè)字節(jié),通道中數(shù)據(jù)傳輸會(huì)話標(biāo)識(shí),為一個(gè)通道實(shí)現(xiàn)多路會(huì)話而設(shè)計(jì);
源系統(tǒng)標(biāo)識(shí):4個(gè)字節(jié),發(fā)送數(shù)據(jù)的業(yè)務(wù)系統(tǒng)標(biāo)識(shí);
目的系統(tǒng)標(biāo)識(shí):4個(gè)字節(jié),接收數(shù)據(jù)的業(yè)務(wù)系統(tǒng)標(biāo)識(shí);
數(shù)據(jù)包序列號(hào):8個(gè)字節(jié),數(shù)據(jù)包的編號(hào),默認(rèn)從0開(kāi)始循環(huán)使用;
數(shù)據(jù)安全標(biāo)識(shí):4個(gè)字節(jié),發(fā)送數(shù)據(jù)的安全等級(jí);
數(shù)據(jù)包總幀數(shù):4個(gè)字節(jié),應(yīng)用數(shù)據(jù)需要的總數(shù)據(jù)幀數(shù),如果應(yīng)用數(shù)據(jù)為文件數(shù)據(jù),表示文件內(nèi)容需要的總幀數(shù);
數(shù)據(jù)包總長(zhǎng)度:8個(gè)字節(jié),應(yīng)用數(shù)據(jù)的總大小,單位字節(jié);
幀序號(hào):4個(gè)字節(jié),當(dāng)前數(shù)據(jù)幀的序號(hào),從0開(kāi)始;
幀長(zhǎng)度:4個(gè)字節(jié),當(dāng)前數(shù)據(jù)幀中有效數(shù)據(jù)長(zhǎng)度;
數(shù)據(jù)包類(lèi)型:2個(gè)字節(jié),業(yè)務(wù)數(shù)據(jù)類(lèi)型,1-文件數(shù)據(jù),2-TCP報(bào)文,3-UDP數(shù)據(jù),4-反饋確認(rèn)信息(僅在雙單向傳輸模式下可用);
反饋標(biāo)識(shí):2個(gè)字節(jié),表示接收端收到業(yè)務(wù)數(shù)據(jù)后是否需要從反向的單向通路進(jìn)行反饋確認(rèn),僅在雙單向傳輸模式下有效,0-不需要反饋確認(rèn),1-需要反饋確認(rèn);
反饋端口:4個(gè)字節(jié),僅在雙單向傳輸模式下有效,業(yè)務(wù)系統(tǒng)發(fā)送的數(shù)據(jù)需要反饋確認(rèn)時(shí),用于接收確認(rèn)信息的端口號(hào);
數(shù)據(jù)區(qū):應(yīng)用數(shù)據(jù),在以太網(wǎng)MTU為9000時(shí),最大長(zhǎng)度可達(dá)8192字節(jié),可根據(jù)不同業(yè)務(wù)場(chǎng)景進(jìn)行調(diào)整,有效長(zhǎng)度由幀長(zhǎng)度字節(jié)確定。
OPTP協(xié)議報(bào)文數(shù)據(jù)結(jié)構(gòu)如下:
#defineMAX_DATA_LEN8192
typedefstruct_OPTP_pkt_
{
unsignedcharhead[4];
unsignedintchannel_id;
unsignedlonglongsession_id;
unsignedcharsrc_sys[4];
unsignedchardst_sys[4];
unsignedlonglongseq_number;
unsignedchardata_level[4];
unsignedinttotal_frame;
unsignedlonglongtotal_len;
unsignedintframe_number;
unsignedintframe_len;
unsignedshortpkt_type;
unsignedshortpkt_flag;
unsignedintack_port;
chardata[MAX_DATA_LEN];
}OPTP_PKT, *OPTP_PKT_PTR;
OPTP協(xié)議運(yùn)行在計(jì)算機(jī)網(wǎng)絡(luò)體系中的網(wǎng)絡(luò)層,是一種非IP私有協(xié)議,協(xié)議的網(wǎng)絡(luò)模型如圖2所示,由原來(lái)的五層協(xié)議模型變成了四層協(xié)議模型,最上層是應(yīng)用層,應(yīng)用數(shù)據(jù)直接封裝成OPTP協(xié)議數(shù)據(jù)包,下層直接使用以太網(wǎng)數(shù)據(jù)幀封裝,而后在物理層上進(jìn)行傳輸。
圖2 OPTP協(xié)議網(wǎng)絡(luò)模型
(1)以太網(wǎng)數(shù)據(jù)幀封裝
為充分提高單向傳輸通道的網(wǎng)絡(luò)效率,可以將單向網(wǎng)卡的MTU設(shè)置為9000,即以太網(wǎng)數(shù)據(jù)幀的最大載荷可達(dá)到9000字節(jié),封裝OPTP協(xié)議數(shù)據(jù)包的以太網(wǎng)幀結(jié)構(gòu)如圖3所示,前同步碼7個(gè)字節(jié),幀定界符1個(gè)字節(jié),以太網(wǎng)協(xié)議頭14個(gè)字節(jié),幀末尾有4個(gè)字節(jié)的CRC校驗(yàn)碼。
圖3 以太網(wǎng)數(shù)據(jù)幀封裝
前同步碼:實(shí)現(xiàn)物理層輸入/輸出同步,7個(gè)字節(jié),0和1交替,即0x55-0x55-0x55-0x55-0x55-0x55-0x55;
SFD:以太網(wǎng)幀定界符,標(biāo)識(shí)幀的開(kāi)始,1個(gè)字節(jié),固定為10101011;
通過(guò)清除淤泥、修砌塘埂等,可有效擴(kuò)大魚(yú)塘容量,增強(qiáng)抗旱保水能力。高產(chǎn)魚(yú)塘至少3年清一次淤泥,雖然清淤費(fèi)用較高,但可降低餌料系數(shù)與魚(yú)病防治費(fèi)用以及暴發(fā)性疾病發(fā)生的概率,故利大于弊。一般老池塘每年都要清除池底淤泥,只保留底泥10~15cm即可。也有養(yǎng)殖戶將魚(yú)塘水排干后,保持有10cm厚淤泥,再種上黑麥草、蠶豆、油菜及蔬菜等,實(shí)行種養(yǎng)有機(jī)結(jié)合,用農(nóng)作物根系來(lái)通氣,吸收和轉(zhuǎn)化土壤中的各種營(yíng)養(yǎng)物質(zhì),起到改良土壤、破壞水生病菌生活環(huán)境的效果,能顯著減少魚(yú)病的發(fā)生,這種種養(yǎng)結(jié)合的輪作方式,可互惠互利,共同促進(jìn),并且十分符合現(xiàn)代綠色健康養(yǎng)殖要求。
目的MAC地址:接收端網(wǎng)卡的MAC地址,6個(gè)字節(jié);
源MAC地址:發(fā)送端網(wǎng)卡的MAC地址,6個(gè)字節(jié);
類(lèi)型:以太網(wǎng)幀封裝的協(xié)議類(lèi)型,2個(gè)字節(jié),取值0x0800的幀代表是IP協(xié)議幀,取值為0x0806的幀代表是ARP協(xié)議幀。OPTP協(xié)議是私有定制協(xié)議,使用保留數(shù)值0x08 d5;
OPTP數(shù)據(jù)包:以太網(wǎng)幀的有效數(shù)據(jù),最大8256字節(jié),OPTP首部64字節(jié),數(shù)據(jù)區(qū)最大8192字節(jié);
幀校驗(yàn)序列FCS:循環(huán)冗余校驗(yàn)CRC值,4個(gè)字節(jié),用于驗(yàn)證該以太網(wǎng)幀是否被損壞。
(2)應(yīng)用數(shù)據(jù)封裝過(guò)程
應(yīng)用數(shù)據(jù)從上到下經(jīng)過(guò)OPTP協(xié)議和以太網(wǎng)幀兩層封裝后,在實(shí)際的物理鏈路上進(jìn)行數(shù)據(jù)傳輸,封裝過(guò)程如圖4所示。
圖4 應(yīng)用數(shù)據(jù)封裝過(guò)程
本文提出的單向數(shù)據(jù)傳輸設(shè)備是基于國(guó)產(chǎn)化申威平臺(tái)設(shè)計(jì)的,采用“2+1”雙主機(jī)架構(gòu),設(shè)備部署在不同等級(jí)的網(wǎng)絡(luò)之間,通過(guò)構(gòu)建單向傳輸通道[9],實(shí)現(xiàn)內(nèi)網(wǎng)和外網(wǎng)之間的業(yè)務(wù)邏輯互聯(lián)和數(shù)據(jù)單向傳輸,設(shè)備內(nèi)部的單向傳輸使用上文提出的OPTP協(xié)議,而非使用IP協(xié)議實(shí)現(xiàn)。
圖5 單向數(shù)據(jù)傳輸設(shè)備總體架構(gòu)
硬件層包括內(nèi)端機(jī)、外端機(jī)和單向隔離交換模塊,內(nèi)端機(jī)和外端機(jī)由主板、硬盤(pán)和電源組成,均采用申威421國(guó)產(chǎn)化處理器,通過(guò)網(wǎng)絡(luò)接口與用戶的內(nèi)外網(wǎng)絡(luò)進(jìn)行通信,完成數(shù)據(jù)傳輸和配置管理審計(jì),串口用于進(jìn)行單向數(shù)據(jù)傳輸設(shè)備相關(guān)參數(shù)策略的配置功能。單向隔離交換模塊有單向發(fā)送卡和單向接收卡組成,中間使用單向光纖連接,與內(nèi)端機(jī)和外端機(jī)之間使用PCIE接口連接,單向發(fā)送卡與單向接收卡之間使用OPTP協(xié)議進(jìn)行數(shù)據(jù)通信。
基礎(chǔ)軟件層包括操作系統(tǒng)、數(shù)據(jù)庫(kù)、設(shè)備驅(qū)動(dòng)、WEB服務(wù)和中間件等,為單向數(shù)據(jù)傳輸設(shè)備的應(yīng)用軟件運(yùn)行提供基礎(chǔ)支撐環(huán)境,操作系統(tǒng)使用國(guó)產(chǎn)深度操作系統(tǒng)Deepin 15.2,數(shù)據(jù)庫(kù)使用MySQL 5.6,WEB服務(wù)使用Tomcat 7.0,中間件使用JDK 1.8。
應(yīng)用軟件層包括配置管理審計(jì)系統(tǒng)、殺毒引擎、內(nèi)端機(jī)主程序和外端機(jī)主程序等。其中,內(nèi)端機(jī)主程序和外端機(jī)主程序相互配合,完成數(shù)據(jù)安全交換這一核心業(yè)務(wù)邏輯;配置管理審計(jì)系統(tǒng)實(shí)現(xiàn)對(duì)單向數(shù)據(jù)傳輸設(shè)備的參數(shù)設(shè)置、安全策略配置、日志審計(jì)、狀態(tài)監(jiān)控和系統(tǒng)維護(hù)等操作;殺毒引擎,用于對(duì)傳輸?shù)奈募?shù)據(jù)進(jìn)行病毒查殺。
單向數(shù)據(jù)傳輸設(shè)備的軟硬件配置詳細(xì)信息見(jiàn)表1。
表1 單向數(shù)據(jù)傳輸設(shè)備配置
單向數(shù)據(jù)傳輸設(shè)備部署在不同安全等級(jí)的網(wǎng)絡(luò)之間[2],提供數(shù)據(jù)的單向傳輸,具備數(shù)據(jù)交換管控功能,提供對(duì)傳輸信息的安全檢查,包括文件類(lèi)型檢測(cè)、數(shù)據(jù)安全標(biāo)識(shí)檢查、關(guān)鍵詞過(guò)濾、病毒查殺等,將檢查合法的信息從外網(wǎng)單向發(fā)送到內(nèi)網(wǎng),及時(shí)阻止非法數(shù)據(jù)的傳輸[5,7]。主要的業(yè)務(wù)場(chǎng)景包括文件單向傳輸、TCP報(bào)文轉(zhuǎn)發(fā)和UDP數(shù)據(jù)轉(zhuǎn)發(fā)。
(1)文件單向傳輸
單向數(shù)據(jù)傳輸設(shè)備文件單向傳輸業(yè)務(wù)流程如圖6所示。當(dāng)外網(wǎng)用戶需要將文件導(dǎo)入內(nèi)網(wǎng)時(shí),首先在外網(wǎng)用戶終端1上生產(chǎn)待導(dǎo)入的文件,然后用戶終端1登錄專(zhuān)用的文件擺渡工具,創(chuàng)建并提交文件單向?qū)肴蝿?wù);然后發(fā)起文件傳輸,在單向數(shù)據(jù)傳輸設(shè)備完成用戶終端1的授權(quán)認(rèn)證后,文件擺渡工具將文件傳輸至外端機(jī),外端機(jī)按照設(shè)備配置的安全管控策略對(duì)文件進(jìn)行安全審查,包括文件類(lèi)型檢查、文件內(nèi)容關(guān)鍵詞檢查等,確認(rèn)傳輸數(shù)據(jù)合法后,將文件內(nèi)容通過(guò)OPTP協(xié)議封裝后傳輸至內(nèi)端機(jī);內(nèi)端機(jī)接收到數(shù)據(jù)后,從OPTP協(xié)議中解析出文件內(nèi)容。根據(jù)傳輸通道上的路由信息創(chuàng)建下載任務(wù),內(nèi)網(wǎng)相應(yīng)的用戶登錄專(zhuān)用的文件擺渡工具后,將文件下載到本地使用。管理員可以在文件擺渡工具中將文件單向傳輸設(shè)置成自動(dòng)模式,實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的文件目錄單向同步,支持實(shí)時(shí)同步和定時(shí)同步。
圖6 文件單向傳輸業(yè)務(wù)
(2)TCP報(bào)文轉(zhuǎn)發(fā)業(yè)務(wù)
單向數(shù)據(jù)傳輸設(shè)備TCP報(bào)文轉(zhuǎn)發(fā)業(yè)務(wù)流程如圖7所示。當(dāng)外網(wǎng)的業(yè)務(wù)系統(tǒng)需要向內(nèi)網(wǎng)發(fā)送TCP數(shù)據(jù)時(shí),首先向單向數(shù)據(jù)傳輸設(shè)備發(fā)起連接請(qǐng)求,設(shè)備認(rèn)證完成后建立連接,業(yè)務(wù)系統(tǒng)通過(guò)TCP協(xié)議將數(shù)據(jù)發(fā)送到設(shè)備,外端機(jī)接收到TCP數(shù)據(jù)后,從TCP報(bào)文中剝離出應(yīng)用數(shù)據(jù),按照安全管控策略對(duì)報(bào)文進(jìn)行安全檢查,確認(rèn)數(shù)據(jù)合法后,將報(bào)文通過(guò)OPTP協(xié)議封裝后傳輸至內(nèi)端機(jī);內(nèi)端機(jī)收到報(bào)文后,從OPTP協(xié)議中解析出原始的應(yīng)用數(shù)據(jù),根據(jù)傳輸通道上的路由信息將應(yīng)用數(shù)據(jù)通過(guò)TCP協(xié)議封裝后轉(zhuǎn)發(fā)到指定的內(nèi)網(wǎng)業(yè)務(wù)系統(tǒng)中。
圖7 TCP報(bào)文轉(zhuǎn)發(fā)業(yè)務(wù)
(3)UDP數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務(wù)
單向數(shù)據(jù)傳輸設(shè)備UDP數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務(wù)流程如圖8所示。當(dāng)外網(wǎng)的業(yè)務(wù)系統(tǒng)需要向內(nèi)網(wǎng)發(fā)送UDP數(shù)據(jù)時(shí),首先通過(guò)UDP協(xié)議將數(shù)據(jù)發(fā)送到單向數(shù)據(jù)傳輸設(shè)備,外端機(jī)接收到UDP數(shù)據(jù)后,對(duì)數(shù)據(jù)來(lái)源進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后從UDP數(shù)據(jù)報(bào)中剝離出應(yīng)用數(shù)據(jù),按照安全管控策略對(duì)報(bào)文進(jìn)行安全檢查,確認(rèn)數(shù)據(jù)合法后,將報(bào)文通過(guò)OPTP協(xié)議封裝后傳輸至內(nèi)端機(jī);內(nèi)端機(jī)收到報(bào)文后,從OPTP協(xié)議中解析出原始的應(yīng)用數(shù)據(jù),根據(jù)傳輸通道上的路由信息將應(yīng)用數(shù)據(jù)通過(guò)UDP協(xié)議封裝后轉(zhuǎn)發(fā)到指定的內(nèi)網(wǎng)業(yè)務(wù)系統(tǒng)中。
圖8 UDP數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務(wù)
本節(jié)主要對(duì)基于OPTP私有協(xié)議通信的國(guó)產(chǎn)化單向數(shù)據(jù)傳輸設(shè)備進(jìn)行性能測(cè)試,包括文件傳輸帶寬測(cè)試、文件丟失率測(cè)、TCP報(bào)文傳輸時(shí)延測(cè)試和UDP數(shù)據(jù)傳輸時(shí)延測(cè)試,用于驗(yàn)證OPTP協(xié)議的網(wǎng)絡(luò)傳輸性能。
設(shè)備性能測(cè)試所需要的軟硬件見(jiàn)表2,包括管理主機(jī)、業(yè)務(wù)主機(jī)、專(zhuān)用的文件擺渡工具以及其它輔助測(cè)試工具軟件。
表2 軟硬件測(cè)試環(huán)境
(1)文件傳輸性能測(cè)試
使用外網(wǎng)管理主機(jī)和內(nèi)網(wǎng)管理主機(jī)在單向數(shù)據(jù)傳輸設(shè)備上配置一條文件傳輸通道,外網(wǎng)業(yè)務(wù)主機(jī)運(yùn)行文件擺渡工具的發(fā)送端,與單向網(wǎng)閘外網(wǎng)主機(jī)單元使用可靠的TCP通信,內(nèi)網(wǎng)業(yè)務(wù)主機(jī)運(yùn)行文件擺渡工具的接收端,與單向網(wǎng)閘內(nèi)網(wǎng)主機(jī)單元使用可靠的TCP通信,單向數(shù)據(jù)傳輸設(shè)備的外端機(jī)和內(nèi)端機(jī)之間使用私有的OPTP協(xié)議通信,并在設(shè)備內(nèi)部使用Tcpdump工具捕獲網(wǎng)絡(luò)報(bào)文,驗(yàn)證OPTP協(xié)議的文件傳輸能力,測(cè)試網(wǎng)絡(luò)環(huán)境如圖9所示。
圖9 文件傳輸測(cè)試網(wǎng)絡(luò)拓?fù)?/p>
為避免頻繁進(jìn)行磁盤(pán)IO對(duì)文件傳輸性能的影響,在外網(wǎng)業(yè)務(wù)主機(jī)和內(nèi)網(wǎng)業(yè)務(wù)主機(jī)上使用vsuite.ramdisk軟件創(chuàng)建一個(gè)16 GB的虛擬硬盤(pán),將待發(fā)送的文件先放置在虛擬硬盤(pán)中再進(jìn)行發(fā)送操作,在內(nèi)網(wǎng)業(yè)務(wù)主機(jī)接收的文件直接保存在虛擬磁盤(pán)中。
文件傳輸帶寬測(cè)試:測(cè)試前,先對(duì)外網(wǎng)業(yè)務(wù)主機(jī)和內(nèi)網(wǎng)業(yè)務(wù)主機(jī)進(jìn)行時(shí)間同步,OPTP協(xié)議的數(shù)據(jù)區(qū)最大長(zhǎng)度設(shè)置為8192,使用文件擺渡工具進(jìn)行文件發(fā)送和接收,將發(fā)送主機(jī)和接收主機(jī)的收發(fā)目錄設(shè)置為虛擬磁盤(pán),通過(guò)配置的通道傳輸4 GB的文件數(shù)據(jù),連續(xù)測(cè)試3次,計(jì)算3次傳輸帶寬的平均值,具體測(cè)試數(shù)據(jù)見(jiàn)表3。
表3 文件傳輸帶寬測(cè)試數(shù)據(jù)
從表3中的測(cè)試數(shù)據(jù)可以看出,單向數(shù)據(jù)傳輸設(shè)備在進(jìn)行文件傳輸時(shí)帶寬可達(dá)到815 Mbps,與市面上主流的單向傳輸設(shè)備性能相當(dāng),能夠滿足大部分的文件傳輸業(yè)務(wù)性能需求。
文件丟失率測(cè)試:使用文件擺渡工具同時(shí)傳輸10 000個(gè)1 MB文件,統(tǒng)計(jì)文件丟失數(shù),并通過(guò)MD5的方式驗(yàn)證已接收文件的完整性,執(zhí)行10次測(cè)試,均完整接收所有文件,1 MB文件傳輸丟失率≤0.01%,在一定程度上能夠保證文件的可靠傳輸。
(2)TCP報(bào)文傳輸時(shí)延
使用外網(wǎng)管理主機(jī)和內(nèi)網(wǎng)管理主機(jī)在單向網(wǎng)閘上配置一條TCP報(bào)文傳輸通道,OPTP協(xié)議的數(shù)據(jù)區(qū)最大長(zhǎng)度設(shè)置為1024。為方便計(jì)算傳輸時(shí)延,報(bào)文發(fā)送和接收共用一臺(tái)業(yè)務(wù)主機(jī),在業(yè)務(wù)主機(jī)上運(yùn)行兩個(gè)TCP&UDP測(cè)試工具軟件,用于報(bào)文的發(fā)送和接收,且業(yè)務(wù)主機(jī)具備兩個(gè)網(wǎng)卡,分別連接到單向數(shù)據(jù)傳輸設(shè)備的外網(wǎng)業(yè)務(wù)口和內(nèi)網(wǎng)業(yè)務(wù)口,并在設(shè)備內(nèi)部使用Tcpdump工具捕獲網(wǎng)絡(luò)報(bào)文[10,11],驗(yàn)證OPTP協(xié)議的TCP報(bào)文傳輸能力,測(cè)試網(wǎng)絡(luò)環(huán)境如圖10所示。
圖10 TCP報(bào)文傳輸測(cè)試網(wǎng)絡(luò)拓?fù)?/p>
使用TCP&UDP測(cè)試工具發(fā)送50次1 KB大小的TCP報(bào)文,根據(jù)捕獲報(bào)文內(nèi)的時(shí)間戳信息(自1970-01-01經(jīng)過(guò)的秒數(shù),精確到微秒),計(jì)算出50次報(bào)文傳輸?shù)钠骄鶗r(shí)延,重復(fù)3輪測(cè)試操作,計(jì)算出最終報(bào)文傳輸時(shí)延,具體測(cè)試數(shù)據(jù)見(jiàn)表4。
表4 TCP報(bào)文傳輸時(shí)延測(cè)試數(shù)據(jù)
從表4中的測(cè)試數(shù)據(jù)可以看出,1 KB大小的TCP報(bào)文傳輸時(shí)延在2.6 ms左右,能夠滿足毫秒級(jí)時(shí)延要求的業(yè)務(wù)系統(tǒng)TCP報(bào)文傳輸需求。
(3)UDP數(shù)據(jù)傳輸時(shí)延
使用外網(wǎng)管理主機(jī)和內(nèi)網(wǎng)管理主機(jī)在單向網(wǎng)閘上配置一條UDP數(shù)據(jù)傳輸通道,OPTP協(xié)議的數(shù)據(jù)區(qū)最大長(zhǎng)度設(shè)置為1024。為方便計(jì)算傳輸時(shí)延,報(bào)文發(fā)送和接收共用一臺(tái)業(yè)務(wù)主機(jī),在業(yè)務(wù)主機(jī)上運(yùn)行兩個(gè)TCP&UDP 測(cè)試工具軟件,用于UDP數(shù)據(jù)的發(fā)送和接收,且業(yè)務(wù)主機(jī)具備兩個(gè)網(wǎng)卡,分別連接到單向數(shù)據(jù)傳輸設(shè)備的外網(wǎng)業(yè)務(wù)口和內(nèi)網(wǎng)業(yè)務(wù)口,并在設(shè)備內(nèi)部使用Tcpdump工具捕獲網(wǎng)絡(luò)報(bào)文,驗(yàn)證OPTP協(xié)議的UDP數(shù)據(jù)傳輸能力[10,11],測(cè)試網(wǎng)絡(luò)環(huán)境如圖11所示。
圖11 UDP數(shù)據(jù)傳輸測(cè)試網(wǎng)絡(luò)拓?fù)?/p>
使用TCP&UDP測(cè)試工具發(fā)送100條0.5 KB大小的UDP數(shù)據(jù),根據(jù)捕獲報(bào)文內(nèi)的時(shí)間戳信息(自1970-01-01經(jīng)過(guò)的秒數(shù),精確到微秒),計(jì)算出100次數(shù)據(jù)傳輸?shù)钠骄鶗r(shí)延,重復(fù)3輪測(cè)試操作,計(jì)算出最終UDP數(shù)據(jù)傳輸時(shí)延,具體測(cè)試數(shù)據(jù)見(jiàn)表5。
表5 UDP數(shù)據(jù)傳輸時(shí)延測(cè)試
從表5中的測(cè)試數(shù)據(jù)可以看出,0.5 KB大小的UDP數(shù)據(jù)傳輸時(shí)延在1.5 ms左右,能夠滿足毫秒級(jí)時(shí)延要求的業(yè)務(wù)系統(tǒng)UDP數(shù)據(jù)代理轉(zhuǎn)發(fā)需求。
本文針對(duì)不同安全等級(jí)網(wǎng)絡(luò)之間數(shù)據(jù)單向傳輸需求,提出了一種私有的單向代理傳輸協(xié)議OPTP,介紹了協(xié)議的報(bào)文格式和封裝過(guò)程。基于該私有協(xié)議在國(guó)產(chǎn)化申威平臺(tái)上設(shè)計(jì)了一款單向數(shù)據(jù)傳輸設(shè)備,并在不同的業(yè)務(wù)場(chǎng)景下進(jìn)行了設(shè)備的性能測(cè)試,從獲得的測(cè)試數(shù)據(jù)可以看出,基于OPTP協(xié)議的國(guó)產(chǎn)化單向數(shù)據(jù)傳輸設(shè)備能夠滿足不同業(yè)務(wù)傳輸?shù)男阅芤?。未?lái),可以針對(duì)不同的業(yè)務(wù)場(chǎng)景,對(duì)單向數(shù)據(jù)傳輸設(shè)備做進(jìn)一步的優(yōu)化設(shè)計(jì)。