歡迎您訪問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠(chéng)信通企業(yè)
全國(guó)咨詢熱線:40000-63966
興邦電子,中國(guó)水控機(jī)第一品牌

聯(lián)系興邦電子

全國(guó)咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

基于EEM 的網(wǎng)絡(luò)智能卡研究

文章出處:http://overnightmodel.com 作者:吳俊軍,周方圓   人氣: 發(fā)表時(shí)間:2011年10月07日

[文章內(nèi)容簡(jiǎn)介]:網(wǎng)絡(luò)智能卡是一種可通過(guò)標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議與主機(jī)或者遠(yuǎn)程計(jì)算機(jī)進(jìn)行安全通訊的智能卡。但是,智能卡有限的硬件資源對(duì)于網(wǎng)絡(luò)智能卡的性能有著顯著的約束。為解決此問(wèn)題,本文提出了一種基于EEM 的網(wǎng)絡(luò)智能卡模型,并詳細(xì)描述了內(nèi)嵌的TCP/IP協(xié)議棧的優(yōu)化措施和基于緩存的數(shù)據(jù)交換機(jī)制,旨在從整體上提高網(wǎng)絡(luò)智能卡的時(shí)間和空間效率。

    1 引言

    隨著Internet的發(fā)展和普及,越來(lái)越多的電子設(shè)備可以接入并通過(guò)Internet獲取資源和提供服務(wù)。而互聯(lián)網(wǎng)上欺騙、竊聽(tīng)、病毒、非法入侵等事件的數(shù)量和破壞程度不斷增加,使得網(wǎng)絡(luò)安全越來(lái)越來(lái)受到重視。智能卡因其可安全存儲(chǔ)秘密信息和安全計(jì)算可以在其內(nèi)部安全完成的特點(diǎn),在信息安全領(lǐng)域得到了廣泛的應(yīng)用。將智能卡同網(wǎng)絡(luò)相結(jié)合無(wú)疑可以在增強(qiáng)網(wǎng)絡(luò)安全的同時(shí),使在智能卡上實(shí)現(xiàn)創(chuàng)新應(yīng)用成為可能,因此網(wǎng)絡(luò)智能卡應(yīng)運(yùn)而生。

    網(wǎng)絡(luò)智能卡是一種可以通過(guò)標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議與主機(jī)或者遠(yuǎn)程計(jì)算機(jī)進(jìn)行通訊的智能卡。由于現(xiàn)有智能卡均沒(méi)有45或光纖等以太網(wǎng)常用的物理接口,網(wǎng)絡(luò)智能卡需要通過(guò)計(jì)算機(jī)或者其它終端來(lái)接入Intemet。同普通智能卡相比,網(wǎng)絡(luò)智能卡支持標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議——TCP/IP協(xié)議。通過(guò)對(duì)TCP/IP協(xié)議的支持,可省略傳統(tǒng)智能卡系統(tǒng)中較為復(fù)雜的中間協(xié)議轉(zhuǎn)換部件,從而大大簡(jiǎn)化智能卡系統(tǒng)的結(jié)構(gòu),可以在縮減成本的同時(shí),有效提高智能卡系統(tǒng)的安全性和響應(yīng)速度。但是,由于智能卡的內(nèi)存等硬件資源非常緊張,而且其基于ISO 7816的接口對(duì)于數(shù)據(jù)傳輸速度也是一個(gè)很大的約束,如何在智能卡內(nèi)部實(shí)現(xiàn)高效的TCP/IP協(xié)議棧的同時(shí)解決數(shù)據(jù)接口問(wèn)題,是網(wǎng)絡(luò)智能卡實(shí)現(xiàn)的關(guān)鍵。

    2 網(wǎng)絡(luò)智能卡研究現(xiàn)狀

    雖然智能卡技術(shù)的發(fā)展非常迅速,但它的通訊協(xié)議大體上并未改變,仍然采用傳統(tǒng)的ISO 7816協(xié)議。由于ISO7816協(xié)議的限制,其在速度上與主流的因特網(wǎng)協(xié)議TCP/IP不能很好匹配,因此智能卡在網(wǎng)絡(luò)領(lǐng)域方面的應(yīng)用受到很大限制。

    為了實(shí)現(xiàn)智能卡和Internet的連接,研究人員做了大量的工作,實(shí)現(xiàn)了許多網(wǎng)絡(luò)智能卡的模型和實(shí)例,如UrienP的iSimplify!、密歇根大學(xué)Rees J和Honeyman P的Webcard[ 、微軟的WebCamSIM、Axalto和Gemplus公司的網(wǎng)絡(luò)智能卡等。

     按照有無(wú)內(nèi)嵌的TCP/IP協(xié)議??梢詫⒛壳暗木W(wǎng)絡(luò)智能卡模型分為兩大類(lèi)。一類(lèi)是無(wú)內(nèi)嵌TCP/IP協(xié)議棧的網(wǎng)絡(luò)智能卡模型,如iSimplify!和WebSIM_3]。此方案的特點(diǎn)是不在卡內(nèi)實(shí)現(xiàn)TCP/IP協(xié)議棧,可以節(jié)省卡內(nèi)資源的消耗。不過(guò)由于需要主機(jī)實(shí)現(xiàn)協(xié)議的轉(zhuǎn)換,此類(lèi)網(wǎng)絡(luò)智能卡均需要在主機(jī)上安裝中間件來(lái)進(jìn)行通訊。另一類(lèi)是內(nèi)嵌TCP/IP協(xié)議棧的網(wǎng)絡(luò)智能卡模型,如Webcard、Axalto、Gieseeke& Devrient、Oberthur Card Systems等。與前面的模型相比,此類(lèi)模型需要消耗更多的存儲(chǔ)空間(RAM和EEPR0M)。由于采用標(biāo)準(zhǔn)的TCP/IP協(xié)議,此類(lèi)網(wǎng)絡(luò)智能卡不需要在主機(jī)上安裝中間件來(lái)進(jìn)行協(xié)議的轉(zhuǎn)換,具有較好的易用性。

    隨著智能卡技術(shù)的發(fā)展,智能卡的內(nèi)存容量也越來(lái)越大,內(nèi)嵌TCP//P協(xié)議棧是網(wǎng)絡(luò)智能卡的發(fā)展趨勢(shì)。當(dāng)前采用內(nèi)嵌TCP/IP協(xié)議棧的實(shí)現(xiàn)方式所消耗的系統(tǒng)資源比較巨大,這使網(wǎng)絡(luò)智能卡在進(jìn)行網(wǎng)絡(luò)服務(wù)時(shí)性能非常低下。比如,密歇根大學(xué)CITI的Webcard的實(shí)際傳輸速率只有130字節(jié)每秒。

    本文針對(duì)這一問(wèn)題,提出使用基于EEM 的網(wǎng)絡(luò)智能卡模型并在卡內(nèi)實(shí)現(xiàn)TCP/IP協(xié)議棧,通過(guò)簡(jiǎn)約化非必要協(xié)議及復(fù)雜協(xié)議對(duì)TCP/IP協(xié)議棧進(jìn)行了有效的空間和時(shí)間優(yōu)化,同時(shí)使用基于鏈?zhǔn)骄彌_區(qū)的設(shè)計(jì)進(jìn)一步提升了網(wǎng)絡(luò)智能卡的空間效率和執(zhí)行效率。

    3 基于EEM 的網(wǎng)絡(luò)智能卡模型

    EEM(Ethernet Emulation Model,簡(jiǎn)稱EEM)是基于USB總線的以太網(wǎng)仿真模型,目的在于簡(jiǎn)單、高效地在USB總線上傳輸以太網(wǎng)幀。USB接口因其高速、簡(jiǎn)單、即插即用等良好的特性,廣泛使用于PC及各種終端設(shè)備上。當(dāng)前USB接口已經(jīng)在高端智能卡芯片上成了一種必備的配置,基于EEM模型的網(wǎng)絡(luò)智能卡不僅可以實(shí)現(xiàn)高速的數(shù)據(jù)傳輸,從而從接口上解決了數(shù)據(jù)傳輸?shù)钠款i問(wèn)題;同時(shí),基于EEM 可以不用過(guò)多考慮以太網(wǎng)幀的實(shí)現(xiàn)細(xì)節(jié),有利于網(wǎng)絡(luò)智能卡的快速部署。

    基于EEM的網(wǎng)絡(luò)智能卡EEM-NSC是一個(gè)可在邏輯上獨(dú)立存在的節(jié)點(diǎn)。在其內(nèi)部實(shí)現(xiàn)TCP/IP協(xié)議棧,通過(guò)EEM協(xié)議同H0ST進(jìn)行數(shù)據(jù)包的通信,從而可使應(yīng)用程序通過(guò)高層的應(yīng)用層協(xié)議來(lái)訪問(wèn)智能卡內(nèi)部的資源,同時(shí)結(jié)合智能卡天生所具備的安全性,極大方便了安全應(yīng)用程序的開(kāi)發(fā)?;贓EM的網(wǎng)絡(luò)智能卡的框架如圖1所示。 

基于EEM 的網(wǎng)絡(luò)智能卡模型

    該模型包括主機(jī)和網(wǎng)絡(luò)智能卡兩個(gè)部分。主機(jī)是連接網(wǎng)絡(luò)智能卡和Internet的計(jì)算機(jī)或終端設(shè)備。其工作機(jī)理如下所述:首先,主機(jī)將目的主機(jī)為EEM-NSC的IP數(shù)據(jù)包路由給主機(jī)中的USB虛擬網(wǎng)卡,同時(shí)將USB虛擬網(wǎng)卡接收到的IP包發(fā)送至Internet;接著,USB虛擬網(wǎng)卡將待發(fā)送的IP數(shù)據(jù)包依次打包為以太網(wǎng)數(shù)據(jù)包、EEM數(shù)據(jù)包、USB數(shù)據(jù)包,并將接收到的USB數(shù)據(jù)包依次解包為EEM數(shù)據(jù)包、以太網(wǎng)數(shù)據(jù)包、IP數(shù)據(jù)包;最后,主機(jī)通過(guò)USB總線完成與EEM網(wǎng)絡(luò)智能卡之間的USB數(shù)據(jù)包的傳遞。

    而EEM網(wǎng)絡(luò)智能卡是EEM網(wǎng)絡(luò)智能卡框架的主體。

    主要包括EEM接口、TCP/IP協(xié)議棧、智能卡操作系統(tǒng)、網(wǎng)絡(luò)應(yīng)用程序四個(gè)部分。EEM接El對(duì)接收到的USB數(shù)據(jù)包進(jìn)行校驗(yàn),將USB數(shù)據(jù)包依次解包為EEM數(shù)據(jù)包、以太網(wǎng)數(shù)據(jù)包。同時(shí),將TCP/IP協(xié)議棧傳送的以太網(wǎng)包打包為EEM數(shù)據(jù)包、USB數(shù)據(jù)包,通過(guò)USB總線傳送至主機(jī)。TCP/IP協(xié)議棧是EEM 網(wǎng)絡(luò)智能卡模型的核心,用于實(shí)現(xiàn)TCP/IP層的連接、認(rèn)證、數(shù)據(jù)傳輸、數(shù)據(jù)校驗(yàn)等工作。該模塊為智能卡操作系統(tǒng)提供可靠的數(shù)據(jù)傳輸。智能卡操作系統(tǒng)屏蔽底層的數(shù)據(jù)交換,為網(wǎng)絡(luò)應(yīng)用程序提供數(shù)據(jù)傳輸?shù)慕涌凇>W(wǎng)絡(luò)應(yīng)用程序?yàn)檫\(yùn)行在EEM 網(wǎng)絡(luò)智能卡上的提供網(wǎng)絡(luò)服務(wù)的應(yīng)用程序,這些程序可以通過(guò)智能卡操作系統(tǒng)提供的API實(shí)現(xiàn)安全網(wǎng)絡(luò)應(yīng)用。

    相比傳統(tǒng)智能卡,EEM-NSC有諸多優(yōu)勢(shì)。協(xié)議方面。采用標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議——TCP/IP協(xié)議,消除了傳統(tǒng)智能卡因協(xié)議不兼容需要進(jìn)行協(xié)議轉(zhuǎn)換的問(wèn)題;接I:1方面,采用目前普遍使用的USB接口,不需要讀卡器等硬件中間件。不過(guò),任何外設(shè)均需要驅(qū)動(dòng)程序。在附有EEM 驅(qū)動(dòng)的主機(jī)上,EEM-NSC無(wú)需任何軟硬中間件即可實(shí)現(xiàn)互聯(lián)網(wǎng)接入。

    目前,微軟、蘋(píng)果等操作系統(tǒng)供應(yīng)商都紛紛表示將在其下一代操作系統(tǒng)中集成EEM驅(qū)動(dòng)。

    4 面向智能卡的TCP/IP協(xié)議棧

    智能卡的處理能力和存儲(chǔ)資源都相當(dāng)有限,直接使用標(biāo)準(zhǔn)的TCP/IP協(xié)議棧是不合適的。為了在實(shí)現(xiàn)相應(yīng)的網(wǎng)絡(luò)功能的同時(shí)盡量縮減資源的消耗,必須依據(jù)智能卡的特點(diǎn)有針對(duì)性地對(duì)TCP/IP協(xié)議棧的結(jié)構(gòu)和運(yùn)行機(jī)制進(jìn)行空間和時(shí)間上的優(yōu)化。

    4.1 優(yōu)化策略

    本文主要從兩方面對(duì)智能卡TCP/IP協(xié)議棧進(jìn)行優(yōu)化:(1)對(duì)TCP/IP協(xié)議棧的代碼進(jìn)行裁剪,保證正常使用的同時(shí)有效地縮減代碼量,減少TCP/IP協(xié)議棧本身所占的內(nèi)存空間,即空間上的優(yōu)化;(2)采用鏈?zhǔn)骄彺婧土憧截悪C(jī)制,減少RAM 的消耗及拷貝數(shù)據(jù)帶來(lái)的系統(tǒng)開(kāi)銷(xiāo),從而提高TCP/IP協(xié)議棧的運(yùn)行速度,即時(shí)間上的優(yōu)化。完整實(shí)現(xiàn)TCP/IP協(xié)議棧的代碼量為70KB~150KB,對(duì)于資源有限的智能卡來(lái)說(shuō)是不能承受之重。在網(wǎng)絡(luò)智能卡中,我們只需要實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸和簡(jiǎn)單的地址解析。傳輸層協(xié)議包括TCP和UDP兩種協(xié)議。TCP提供一種面向連接的、可靠的字節(jié)流服務(wù),具有較高的安全性和穩(wěn)定性。UDP是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的傳輸層協(xié)議,提供不可靠的服務(wù)。兩者只需實(shí)現(xiàn)其-lp可。智能卡對(duì)可靠性及安全性要求較高,若選擇UDP,則需在應(yīng)用程序中設(shè)計(jì)相應(yīng)的機(jī)制來(lái)保證數(shù)據(jù)的正確性和完整性,不僅增加了程序設(shè)計(jì)的復(fù)雜度,而且重復(fù)設(shè)計(jì)將造成代碼冗余,浪費(fèi)空間。因此,在網(wǎng)絡(luò)智能卡中,我們選用較為復(fù)雜但具有較高安全性和穩(wěn)定性的TCP協(xié)議。

    網(wǎng)絡(luò)層協(xié)議包括IP、ICMP和IGMP協(xié)議。IP協(xié)議是網(wǎng)絡(luò)層上的主要協(xié)議,所有的TCP/IP數(shù)據(jù)包均通過(guò)IP協(xié)議在互聯(lián)網(wǎng)上進(jìn)行傳播,是TCP/IP協(xié)議的核心,必須予以實(shí)現(xiàn)。ICMP是IP協(xié)議的附屬協(xié)議。IP層用它來(lái)與其他主機(jī)或路由交換錯(cuò)誤報(bào)文和其他重要信息。網(wǎng)絡(luò)智能卡只需要進(jìn)行簡(jiǎn)單的數(shù)據(jù)傳輸即可,因此ICMP協(xié)議的大多內(nèi)容可以不予以實(shí)現(xiàn)。為了方便測(cè)試傳輸層是否正常,實(shí)現(xiàn)ICMP協(xié)議中的ping應(yīng)答即可。ICMP用于把一個(gè)UDP包多播到多個(gè)主機(jī)。由于選用TCP協(xié)議作為傳輸層協(xié)議,所以ICMP不予實(shí)現(xiàn)。

    數(shù)據(jù)鏈路層協(xié)議包括ARP和RARP協(xié)議。以太網(wǎng)上的數(shù)據(jù)幀傳輸是通過(guò)MAC地址來(lái)進(jìn)行識(shí)別的,主機(jī)需要通過(guò)ARP協(xié)議建立IP地址和MAC地址的動(dòng)態(tài)映射,所以ARP協(xié)議必須實(shí)現(xiàn)。RARP為逆向地址解析協(xié)議。無(wú)法存儲(chǔ)IP地址的主機(jī)可以通過(guò)該協(xié)議廣播MAC反向獲取IP,主要用于無(wú)盤(pán)工作站,在網(wǎng)絡(luò)智能卡中可以不予實(shí)現(xiàn)。

    由于采用EEM協(xié)議,EEM-NSC的物理層及以太網(wǎng)數(shù)據(jù)幀的傳輸在EEM規(guī)范和USB規(guī)范中有詳細(xì)描述,本文不再贅述。裁剪后的TCP/IP協(xié)議棧如圖2所示。 

    4.2 基于EEM 的TCP/IP協(xié)議棧實(shí)現(xiàn)

    依據(jù)以上優(yōu)化策略,分別對(duì)ARP協(xié)議、IP協(xié)議和TCP協(xié)議模塊進(jìn)行相應(yīng)的優(yōu)化。首先是ARP協(xié)議模塊的優(yōu)化。當(dāng)一主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺(tái)主機(jī)時(shí),是根據(jù)48 bit的以太網(wǎng)地址來(lái)確定目的接口的l4J。ARP實(shí)現(xiàn)了32bit IP地址和48bit以太網(wǎng)地址之間的轉(zhuǎn)換。具體過(guò)程為:源主機(jī)廣播名為ARP請(qǐng)求的以太網(wǎng)幀。其中,ARP應(yīng)答包內(nèi)包含源主機(jī)的IP地址、MAC地址及目的主機(jī)的IP。目的主機(jī)收到ARP廣播報(bào)文后,識(shí)別出這是發(fā)送端在詢問(wèn)它的IP地址,于是發(fā)送一個(gè)ARP應(yīng)答。這個(gè)應(yīng)答包含IP地址及對(duì)應(yīng)的MAC地址。收到ARP應(yīng)答后即可進(jìn)行IP數(shù)據(jù)包的傳輸。因?yàn)镋EM—NSC工作時(shí)只是被動(dòng)地處理應(yīng)答,而且同時(shí)處理的請(qǐng)求不會(huì)太多,因而可以對(duì)ARP協(xié)議進(jìn)行簡(jiǎn)化。可以定義一個(gè)如圖3所示的固定長(zhǎng)度的結(jié)構(gòu)數(shù)組。

    在此條件下,EEM-NSC不主動(dòng)發(fā)送ARP請(qǐng)求。當(dāng)收到主機(jī)請(qǐng)求時(shí)發(fā)送應(yīng)答,并搜索arp—cache數(shù)組里active不為T(mén)rue的位置。將主機(jī)請(qǐng)求包里的主機(jī)IP地址和物理 

    地址存人數(shù)組arp—cache中,并將active設(shè)置為T(mén)rue。EEM-NSC通過(guò)查找數(shù)組arp—cache獲得MAC地址并與發(fā)出請(qǐng)求的主機(jī)進(jìn)行通訊。當(dāng)通訊結(jié)束后將該主機(jī)對(duì)應(yīng)的記錄的active屬性設(shè)置為False。簡(jiǎn)化后的ARP協(xié)議只實(shí)現(xiàn)了ARP響應(yīng),并且將計(jì)算機(jī)中常用的雙向鏈表結(jié)構(gòu)的arp—cache改為線性數(shù)組結(jié)構(gòu)。不僅可以節(jié)約存儲(chǔ)窄間,而且具有較快的查找速度。

    然后是IP協(xié)議模塊的優(yōu)化。IP協(xié)議是網(wǎng)絡(luò)層的主要協(xié)議,它負(fù)責(zé)為傳輸層提供無(wú)連接的數(shù)據(jù)分組傳送服務(wù),是TCP/IP協(xié)議棧的核心。EEM-NSC作為一個(gè)單純的嵌入式服務(wù)器,不需要實(shí)現(xiàn)IP層中的路由功能,當(dāng)以太網(wǎng)數(shù)據(jù)包中的IP地址跟本機(jī)IP不匹配時(shí)直接丟棄該以太網(wǎng)數(shù)據(jù)包即可。發(fā)送數(shù)據(jù)時(shí)通過(guò)((destip locip)&locmask)=一0是否成立直接判斷出目的地址是否在本地子網(wǎng)內(nèi),若是則直接發(fā)送.否則將數(shù)據(jù)包發(fā)送給默認(rèn)網(wǎng)關(guān)。

    另外,標(biāo)準(zhǔn)IP協(xié)議具有數(shù)據(jù)包的分段和重組功能。數(shù)據(jù)包的分段和重組校 復(fù)雜,會(huì)帶來(lái)較大的系統(tǒng)開(kāi)銷(xiāo)??筛鶕?jù)EEM-NSC的具體應(yīng)用選擇性地實(shí)現(xiàn)IP協(xié)議的分段重組機(jī)制。例如,Web服務(wù)應(yīng)用時(shí),請(qǐng)求數(shù)據(jù)包較小,發(fā)送數(shù)據(jù)包大,只實(shí)現(xiàn)分段機(jī)制即可;身份驗(yàn)證、網(wǎng)絡(luò)授權(quán)應(yīng)用發(fā)送、接受數(shù)據(jù)量都很小,分段重組呵均不實(shí)現(xiàn)。這樣,可在保證正常使用的前提下有效減少I(mǎi)P協(xié)議的代碼量。

    最后是TCP協(xié)議模塊的優(yōu)化。TCP是一種面向連接的協(xié)議,無(wú)論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接。TCP協(xié)議在數(shù)據(jù)傳輸?shù)倪^(guò)程能夠通過(guò)確認(rèn)應(yīng)答機(jī)制來(lái)保證數(shù)據(jù)的可靠傳輸。TCP模塊的優(yōu)化主要從兩個(gè)方面著手:(1)刪除TCP狀態(tài)機(jī)中不必要的狀態(tài);(2)簡(jiǎn)化TCP的數(shù)據(jù)傳輸機(jī)制。

    EEM-NSC運(yùn)行的均是服務(wù)器端的應(yīng)用,不需要主動(dòng)向其它主機(jī)發(fā)出請(qǐng)求。因此,在建立連接過(guò)程中,EEMNSC只需保留被動(dòng)打開(kāi)的連接狀態(tài),SYN—SENT狀態(tài)可以省略。當(dāng)TCP協(xié)議被調(diào)用時(shí),讓TCP協(xié)議直接處于LISTEN狀態(tài)來(lái)監(jiān)聽(tīng)客戶端的連接請(qǐng)求,傳輸完數(shù)據(jù)后主動(dòng)斷開(kāi)連接,這樣可以及時(shí)地釋放套接字,節(jié)約系統(tǒng)資源。

    在計(jì)算資源和存儲(chǔ)資源充足的情況下,TCP/IP協(xié)議棧均采用滑動(dòng)窗口協(xié)議即多個(gè)TCP包的發(fā)送、確認(rèn)、重發(fā)同時(shí)進(jìn)行。數(shù)據(jù)量不大時(shí)可以采用“發(fā)送一停止一等待一確認(rèn)一發(fā)送”的方式。不實(shí)現(xiàn)滑動(dòng)窗口協(xié)議,TCP協(xié)議每次只發(fā)送一個(gè)數(shù)據(jù)包,等待先前的數(shù)據(jù)包被確認(rèn)以后再繼續(xù)發(fā)送。簡(jiǎn)化后的TCP協(xié)議可以在最少計(jì)算資源和存儲(chǔ)資源消耗的前提下完成被動(dòng)連接和正常的數(shù)據(jù)傳輸。

    4.3 基于緩沖區(qū)的數(shù)據(jù)交換

    EEM-NSC的緩沖區(qū)是指其I/O接口和各層之間進(jìn)行數(shù)據(jù)交換時(shí)使用的臨時(shí)存儲(chǔ)區(qū)域。緩沖區(qū)的設(shè)計(jì)直接決定網(wǎng)絡(luò)智能卡的吞吐速度及整體性能。

    EEM-NSC采用鏈表來(lái)存儲(chǔ)需要輸入輸出的數(shù)據(jù),這種機(jī)制被用于各種BSD風(fēng)格的TCP/IP的實(shí)現(xiàn)以及一些嵌入式的開(kāi)發(fā)中。

    根據(jù)局部性原理,在前面幾條指令中使用頻繁的頁(yè)面很可能在后面的幾條指令中也頻繁使用。反過(guò)來(lái)說(shuō),已經(jīng)很久沒(méi)有使用的頁(yè)面很可能在未來(lái)較長(zhǎng)的一段時(shí)間內(nèi)也不會(huì)被用到。因此,我們?cè)O(shè)計(jì)緩沖區(qū)時(shí),找到最近最少使用的那個(gè)頁(yè)面調(diào)出內(nèi)存即可。EEM 網(wǎng)絡(luò)智能卡鏈?zhǔn)骄彌_區(qū)采用數(shù)組與鏈表相結(jié)合的結(jié)構(gòu),不僅可以有效地節(jié)約空間,而且擁有較快的查詢速度,其結(jié)構(gòu)如圖4所示。 

    緩沖區(qū)工作流程分為初始化、數(shù)據(jù)輸人和數(shù)據(jù)輸出。在緩沖區(qū)初始化時(shí),創(chuàng)建數(shù)組index—tables[],并且設(shè)置所有元素的used屬性為False,tmier及l(fā)ength屬性為0,data屬性為null。在數(shù)據(jù)輸入時(shí),查找緩沖Ⅸ中最少使用的頁(yè)面,即used為False,且timer值最大的數(shù)據(jù)頭,分配空問(wèn)并將得到的指針值賦給Heade~‘.data,將數(shù)據(jù)寫(xiě)入Header.data指向的內(nèi)存空間,設(shè)置Header.1ength為數(shù)據(jù)長(zhǎng)度、Header.used的值為T(mén)rue,Header.timer值為0,將數(shù)組中其它所有元素的timer屬性置1。在數(shù)據(jù)輸出階段,根據(jù)數(shù)據(jù)坐標(biāo)z獲取數(shù)據(jù)指針index—table[x].data,取出數(shù)據(jù),釋放數(shù)據(jù)指針?biāo)傅膬?nèi)存空間,設(shè)置數(shù)據(jù)頭的used屬性為False,length屬性為0,data屬性為null。

    N個(gè)長(zhǎng)度為L(zhǎng) n 的數(shù)據(jù)包存放在數(shù)組中需要的空間如Mem array=N*Max(Ln),而采用基于EEM 的鏈?zhǔn)骄彌_區(qū)的方式需要的空間。例如,長(zhǎng)度分別為71、217、52、255、106、59、148、215、124、146的10個(gè)數(shù)據(jù)包Mem array= 255*10=2 550B,MemEEM=1O*16+1 393=1 553B。顯然,采用EEM-N8(2的鏈?zhǔn)骄彌_區(qū)需要的空間只有數(shù)組的61 。在時(shí)間上,查找n個(gè)長(zhǎng)度的鏈表的時(shí)間復(fù)雜度為O(n),查找EEM-NSC的鏈?zhǔn)骄彌_區(qū)的時(shí)間復(fù)雜度為O(1)。

    5 結(jié)束語(yǔ)

    本文所論述的基于EEM 的網(wǎng)絡(luò)智能卡模型及相應(yīng)機(jī)制已經(jīng)在中興公司的智能卡芯片Zi1221上實(shí)現(xiàn)。實(shí)踐表明,通過(guò)優(yōu)化設(shè)計(jì)使得TCP/IP協(xié)議棧能夠在網(wǎng)絡(luò)智能卡內(nèi)穩(wěn)定運(yùn)行,ROM、RAM 占有率及吞吐速度均達(dá)到了預(yù)期的效果。所采用的手段有兩點(diǎn):(1)采用基于EEM 的網(wǎng)絡(luò)智能卡模型,從接口上保證了數(shù)據(jù)的吞吐速率;(2)采用基于對(duì)TCP/IP協(xié)議棧的代碼進(jìn)行裁剪和鏈?zhǔn)骄彺鏅C(jī)制來(lái)實(shí)現(xiàn)空間和時(shí)間上的性能提升。

    (文/華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院,吳俊軍,周方圓)

本文關(guān)鍵詞:網(wǎng)絡(luò)智能卡,EEM,TCP/IP協(xié)議棧,,絡(luò)智能卡,EEM,TCP/IP協(xié)議棧,鏈,智能卡,EEM,TCP/IP協(xié)議棧,鏈?zhǔn)?能卡,EEM,TCP/IP協(xié)議棧,鏈?zhǔn)骄?卡,EEM,TCP/IP協(xié)議棧,鏈?zhǔn)骄彌_,,EEM,TCP/IP協(xié)議棧,鏈?zhǔn)骄彌_區(qū)
回到頂部