999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

智能網絡磁盤通信協議研究與設計

2007-12-31 00:00:00李成藝趙躍龍
計算機應用研究 2007年8期

摘要:智能網絡磁盤(IND)是一種基于ARM+uClinux的新型網絡存儲結構,它具有成本低、易管理、高可靠性、可擴展性等優點。探討了IND系統結構,并在此基礎上分析和研究了IND實現TCP/IP協議的若干問題。提出了一種實現方案,在實際局域網運行中取得了較理想的效果。

關鍵詞:智能網絡磁盤;傳輸控制協議/因特網協議;網絡存儲

中圖分類號:TP393文獻標志碼:A

文章編號:1001-3695(2007)08-0312-04

目前SCSI技術、光纖通道技術的引入為網絡存儲領域提供了更快的磁盤存取速度和更高效的傳輸速度,但其高昂的成本是中小企業所不能承擔的;并且目前存儲系統仍然作為服務器的附屬設備,沒有擺脫服務器/存儲系統的模式,服務器單點失效及數據傳輸的瓶頸問題依然存在。智能網絡磁盤不再依賴于計算機,而是通過網絡接口直接連接在局域網上,用戶可能通過文件屬性來訪問掛接在IND上的數據。IND的內核進行過特別的優化,非常適合于處理來自網絡的I/O請求,不僅響應快,而且數據傳輸率高。其成本低、易于安裝、易于管理和使用、可靠性高、具有良好的擴展性,為中小企業網絡存儲提供了一個新的解決方案。

1IND存儲系統概述

IND以ARM S3C44B0X微處理器為核心,以RTL8019AS為以太網控制芯片,通過IDE接口直接連接40 pin硬盤。運行經過精簡只保留網絡功能和文件系統的uClinux,以盡可能地減輕操作系統的負擔,使系統中的CPU、內存和I/O總線等系統資源能充分用于數據處理。除S3C44B0X本身具有的片上設備外,本文在片外增加了2 MB flash、8 MB SDRAM、一個IDE接口和一個RTL8019AS以太網控制芯片。其中,SDRAM安排于第六個或第七個bank,地址分別從0x0c000000或0x0c800000開始;ATA接口位于第二個bank內;以太網接口位于第一個bank內。S3C44B0X微處理器提供了26 bit的地址總線Addr0~Addr25, 16 bit的數據總路線data0~data15,因此其支持的最大存儲體空間為32 MB。IND系統采用的是數據傳輸速率為133 Mbps的普通IDE硬盤作為終端存儲設備,數據傳輸量大。IDE硬盤與內存之間采用DMA方式通過嵌入式系統完成數據的數據傳送,而以太網卡與內存之間采用中斷方式完成數據的接收與發送。單個IND功能原理如圖1 所示。

IND存儲器由多個IND組成,一個或多個IND可以同時連接在同一個局域網上供不同用戶同時訪問。其硬件連接如圖2所示。

IND軟件系統主要分為以下幾個部分:ARM底層驅動、IDE接口驅動、RTL8019AS初始化、嵌入式uClinux操作系統優化、TCP/IP協議棧設計和上層應用程序等,以實現客戶請求、任務調度、數據分布、數據定位和數據存儲等功能。軟件接口結構如圖3所示。其中:IND文件系統包括邏輯文件系統ROMFS和Ext2、虛擬文件系統VFS;VFS為不同的邏輯文件系統提供統一的接口;塊設備驅動程序為不同的塊設備提供一個統一的接口,并負責塊設備數據緩存功能;IDE接口驅動程序提供標準的ATA總線接口驅動程序;TCP/IP協議和802.3協議組成一個協議棧,將IND智能存儲設備經過8019AS接入以太網,數據傳輸遵循TCP/IP協議。本文詳細討論了IND系統的網絡接入模塊設計與實現。

2IND網絡通信協議設計

合適的網絡通信協議是保證IND存儲系統穩定運行與快速安全傳輸的前提,而精簡與優化后的嵌入式TCP/IP協議才能在資源非常有限的存儲平臺上正常運行。IND是一個實時存儲系統,提高系統的實時性以提高整個存儲系統的存儲效率。IND的通信系統大致分為系統軟件構件和協議軟件構件兩類。其中系統軟件主要包括一個精簡的操作系統和硬件管理軟件,而協議軟件則主要實現協議規范。網絡協議通常分不同層次進行開發,每一層負責不同的通信功能。TCP/IP協議通常被認為是一個四層協議系統,包括數據鏈路層、網絡層、傳輸層和應用層。按照協議分層的設計思想,采用模塊化設計的方法形成了一組從上到下單向依賴的一個協議棧,也稱之為協議族。在IND中要實現運行在以太網上的TCP/IP協議棧,TCP棧在IP棧之上,而IP棧又在以太網驅動器之上。IND的TCP/IP協議??傮w設計如圖4所示。

2.1數據鏈路層

數據鏈路層也就是網絡接口層,通常包括操作系統中的設備驅動程序和網絡接口卡。

以太網控制芯片RTL8019AS是性價比高且帶即插即用功能的全雙工以太網控制器,符合Ethernet II和IEEE 802.3標準。內置16 KB的SRAM,收發速度可同時達到10 Mbps。內部有兩塊RAM區。其中一塊16 KB,地址為0x40000~0x7fff; 另一塊為32 Byte,地址為0x0000~0x001f。RAM按頁存儲,每256 Byte為一頁,共占用64頁。在IND中發送緩沖區不要求太大,只要能存儲一個最大的以太網包就夠了;而接收緩沖區則要大些,以緩存隨時接收到的數據包。將RTL8019AS的前6頁(0x40000~0x45ff)作為發送緩沖區,后58頁(0x4600~0x7ffff)作為接收緩沖區,而第0頁的32 Byte用于存儲以太網的物理地址。

RTL8019AS的初始化是指設置相關寄存器的工作模式、分配且初始化接收和發送緩沖區以及初始化網卡的接收地址等。它可以采用輪詢的方式從硬件控制器接收幀數據,也可以根據硬件控制器在收到幀時所產生的中斷來接收數據幀。在IND中能采用更為有效的中斷方式。數據包發送是指在RAM內開辟兩個以太網數據包的發送緩沖區,然后把數據寫入該緩沖區,啟動執行命令后由網絡控制芯片RTL8019AS自行發送。數據包的發送校驗、總線的碰撞檢測與避免也由網控芯片自動完成。在這部分只需配置發送數據的物理層地址、源地址、目的地址、數據包類型及所發送的數據就可以了。數據包的接收是指RTL8019AS接收到來自以太網的數據包存入接收緩沖區并向S3C44B0X發出中斷信號。S3C44B0X在中斷程序中通過遠程DMA方式把數據從RTL8019AS的RAM中取回,并重新設置相關寄存器。IND數據幀的發送/接收過程如圖5所示。

2.2網絡層

網絡層主要處理分組在網絡中的活動。在TCP/IP協議族中,網絡層協議包括IP協議、ICMP以及IGMP;在IND中,網絡層只實現優化的ARP、ICMP和IP協議,不處理除這三個協議外的任何協議。

1)ARP模塊地址解析協議(ARP)完成用戶IP地址到IND網絡控制器MAC地址的映射。當IP數據包發往以太網時,首先在ARP的高速地址緩沖區中查詢目的MAC地址。如果沒有,再從類ARP表中查詢該IP包的目的IP地址所對應的目的MAC地址。ARP緩存是IND系統維護的一個IP地址到相應以太網地址的映射表,將該路由表與文件分配表共同組成一張表,稱之為IND類ARP表。當表中沒有給定的IP地址,就發送一個ARP廣播請求包,含有包中給定IP地址的主機會發送一個ARP應答;ARP接收到這個應答包后將IP數據包發送出去并立即更新這張表。

在實時性要求較高的IND系統中,在設計ARP高速緩存表時采用了線性數組的緩存結構,擯棄了傳統計算機系統的雙向數據鏈形式,極大地減輕了系統負擔、縮短了查找時間,且把動態的緩沖設計成固定大小。ARP緩存表由生存狀態、生存時間、IP地址和MAC地址四個字段組成。由于用于緩存的存儲空間非常有限,緩存表的替換策略也是很重要的。首先查找生存狀態字段,如果存在失效字段則將新的表項替換當前失效表項;如果表中存在有相同表項,則將其生存時間修改成最大;如果找不到失效的表項則將表中生存時間最小的表項供新表項替換。

2)ICMP模塊主要用來實現IND的網絡診斷功能。在這里只實現一種類型的ICMP消息,即ICMP回應消息。當收到一個ICMP消息后,ICMP協議立即調整ICMP校驗和,把回應消息改為應答消息,并交換IP包的源、目的地址,再發送回源地址。

3)IP模塊IP是TCP/IP協議族中最核心的協議。它提供的是不可靠的和無連接的數據包傳送服務。在IND系統中不僅有多個客戶端而且同時有多個IND設備連入。因此,IND系統必須具有路由功能,也必須緩存那些等待對目標地址解析的數據包,但同時也增加了系統的負擔。IND系統主要針對的是企業用戶,所傳輸數據的大小必然存在不確定性。鏈路層允許最大傳輸單元MTU是1500,它限制了數據幀的最大長度,因此對超過IND硬件系統所允許的最大值的數據包在傳輸時必須分段,在接收方再進行重組。這個分段再重組的過程不但消耗系統時間也需要大量的存儲空間,因此是以犧牲系統性能為代價的。目前,很多嵌入式系統是不支持數據包的分段和重組的,考慮到系統的性能,將系統的發送緩沖區設計成最多支持兩個分段,將任務封裝在幀1和幀2中,并填寫每個分段的以太網頭和IP頭,設置相應的標志字段。至于IP報文的重組必須有一個合理的算法,通過創建一個分段緩沖區來緩存等待重新組裝的分片。分段重組函數檢測緩沖區中匹配的項。如果有匹配則返回完整的數據包,根據包頭中的protocol字段將完整的IP包傳遞到相應的ICMP或上層的UDP、TCP進行處理;否則把進入的IP分段加入分段緩沖區中等待匹配。本文暫時設置其不支持多IP地址,只支持32 bit地址的IPv4版本的IP數據包。

2.3傳輸層

傳輸層主要為客戶機和IND 系統提供端到端的通信,為整個網絡存儲系統提供高可靠性的數據通信。其主要工作包括把客戶端需要存儲的數據交給網絡層處理,確認接收到的分組與超時設置等。傳輸層包括TCP和UDP,用TCP傳輸數據流中的段,而用UDP傳輸數據包。

1)UDP模塊UDP被認為是上層應用程序和IP間的接口,但它在傳輸過程中沒有提供確認消息,也存在數據包順序混亂或丟失的現象,因此它不提供可靠性保證,需要應用層來實現錯誤恢復和重傳等。TCP傳輸的可靠性以其自身的復雜性為代價,筆者在設計IND的UDP時增加了簡單的重試機制,以比TCP占用更少的系統資源增強UDP的可靠性,提高系統數據傳輸速率。

UDP數據包的發送是UDP模塊把上層應用程序傳來的數據包加上源端口和目的端口后計算校驗和并填充字段,然后發給IP模塊,通過IP模塊發送出去;當UDP接收到IP模塊送來的數據包進行檢驗無誤后,根據接收到UDP數據包的目的端口號向上層傳輸即可。

2)TCP模塊在IND系統中,TCP的實現是最復雜的。它提供了一種基于連接的、帶確認的、可靠的數據流傳輸方式,增強了網絡的服務質量,但對處理器的存儲能力和運算能力要求較高。因此在IND中,筆者對TCP進行了全面優化和重設計:

a)建立連接機制。本系統是面向客戶端數據存取的,因此將其主動連接部分裁掉,只保留被動連接部分。

b)斷開連接機制。轉換TCP/IP狀態機的被動連接斷開為主動斷開,當IND系統向用戶傳送完所需數據后直接調用close_tcp()函數主動斷開連接。這樣大大節省了系統時鐘,及時釋放套接字,節約系統資源。

c)流量控制與擁塞控制機制。待發送TCP數據長度取決于發送方要發送數據的大小、發送窗口的大小和所允許發送數據的大小。在本系統中簡化了擁塞窗口的計算,將發送窗口值與通知窗口值設成相等,因此IND系統TCP發送窗口的大小計算如下:

發送窗口=min(當前要發送數據長度,所允許TCP最大長度,發送窗口大小-發送緩沖區已發送但未確認的數據長度)

d)重發機制。通過套接字來重新生成最近發送的TCP報文段,在發送緩存區中將已發送但沒有收到確認的數據指針改成已發送且已收到確認信息的數據指針,重新生成要重發的TCP數據段。

e)多TCP連接。通過套接字來存儲或指向與鏈路有關的所有信息。每個套接字支持一個連接,多個套接字支持多個連接。因此在本系統中,采用預分配一定數量的套接字組織成靜態數組的形式,實現同時支持多個TCP連接。當釋放某個套接字時也就達到釋放某條連接的目的。

由于網絡中數據塊的不確定性,設置合適的滑動窗口的大小非常關鍵,會直接影響緩沖區的溢出和整個系統的性能。在該協議中規定了一個確認機制和窗口機制,通過一個循環緩沖區來實現;在協議中設置了一個狀態機,主要通過TCP控制塊和對應于狀態的處理例程來實現。

3IND網絡訪問接口設計

IND是依賴于局域網工作的,為每個IND設置一個網內IP地址,用戶根據IP地址來訪問不同的IND。用戶端訪問IND采用的是完全本地化的磁盤操作方式,用戶端只需利用IND分配的賬號空間在本地直接生成一個網絡磁盤。用戶可以在該IND虛擬的驅動器上直接利用鼠標進行權限范圍內的復制、粘貼、刪除、創建新文件夾等操作,同時也可以對存儲的文件進行在線編輯,操作簡單而方便。文件則存放在IND的同一或不同IDE硬盤上。IDE硬盤之間通過磁盤陣列和相適應的磁盤備份與容錯算法,實現數據的快速存取及數據的一致性等。只要用戶端與IND處在同一局域網內,且擁有一定的權限就可以利用分配的賬號通過資源管理器像使用本地磁盤一樣便捷、快速、安全地訪問IND。

4IND整體性能與可靠性評價

IND是連接在局域網上直接供用戶存取數據信息的,系統的整體性能由多個因素共同決定,如IND的處理速度、局域網的網絡帶寬、ATA總線帶寬、文件系統和客戶端的緩存機制及整體的可靠性參數等。在此僅分析系統的數據讀寫速率,以此對IND的網絡性能進行一個初步評價。硬件測試平臺由一個IND、一臺10/100 Mbps交換機和六臺客戶機組成;測試軟件采用ATTO公司的磁盤/網絡性能測試工具disk benchmark。該軟件使用4 MB的測試包,數據包按0.5、1.0、2.0直到1 024 KB分別進行讀寫測試。讀寫速率如圖6所示。從實際測試結果可以得出:IND存儲系統對小文件的讀寫速度較快;隨著文件的增大,讀寫速度明顯減慢,在穩定狀態下大約是本地磁盤讀寫速度的1/4左右,但基本可以滿足局域網內訪問文件的要求。

IND的可靠性將對整個存儲系統性能和用戶對數據的安全操作構成主要影響。例如:a)IND的處理性能。如果連接的用戶數過多或要求處理的數據量過大,則有可能造成緩沖區溢出或處理器的淹沒,使整個系統癱瘓。b)網絡的穩定狀況,如網絡的意外中斷或延時過大等。c)可能遭受非法用戶的攻擊或者病毒感染等。這些都有可能威脅IND存儲系統的正常運行。

5結束語

IND適用于數據流量不是很大,但存儲總量卻非常大的客戶需求,支持對存儲空間的區域劃分。目前IND存儲系統已正常運行,下一步需要進一步提高各協議的可靠性,在傳輸速率和嵌入式CPU性能間找到一個更好的平衡點。從用戶數據的安全性著手,設計安全策略,確保用戶數據在傳輸過程及IDE硬盤上的安全性;對客戶端的請求調度策略和磁盤的調度策略仍需深一步的研究;完善上層服務接口,為中小企業的數據存儲提供更便捷的服務。

參考文獻:

[1]史軍勇,趙躍龍.智能網絡磁盤IND軟件設計與實現[J].單片機與嵌入式系統應用,2006,2(2):1719,52.

[2]方捷磊,朱杰.在嵌入式網絡應用中實現TCP/IP協議[J].微電子學與計算機,2002,19(5):28-30,17.

[3]李明,廖靜秋.嵌入式TCP/IP協議棧的研究與開發[J].計算機工程與應用,2002,38(16):118121.

[4]項敏,王學軍.嵌入式工業以太網控制方案的研究[J].現代電子技術,2004,27(6):49-51,62.

[5]THOMAS F.An introduction toTCP/IP for embedded engineers[C]//Proc of the Embedded System Conference.San Francisco:[s.n.],2000:350-370.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 六月婷婷精品视频在线观看 | 日本免费新一区视频| 亚洲精品你懂的| 97视频在线精品国自产拍| 91免费精品国偷自产在线在线| 亚洲永久视频| 97亚洲色综久久精品| 成人毛片在线播放| 一级成人a毛片免费播放| 一级爆乳无码av| 国产人免费人成免费视频| 亚洲第一在线播放| 日本成人不卡视频| 91成人试看福利体验区| 亚洲国产日韩在线观看| 亚洲AV无码一区二区三区牲色| 丁香五月婷婷激情基地| 精品伊人久久久香线蕉| 亚洲欧美精品日韩欧美| 国产成人综合日韩精品无码首页| 91网在线| 亚洲欧洲一区二区三区| 怡红院美国分院一区二区| 国内精品视频| 在线色国产| 好紧太爽了视频免费无码| 黑人巨大精品欧美一区二区区| 国产不卡一级毛片视频| 久久一本日韩精品中文字幕屁孩| 福利姬国产精品一区在线| 欧美日韩va| 奇米影视狠狠精品7777| 国产欧美日韩另类| 久久频这里精品99香蕉久网址| 91麻豆精品视频| 久青草网站| 中日韩一区二区三区中文免费视频 | 国产成人av一区二区三区| 91久久偷偷做嫩草影院精品| 日本中文字幕久久网站| 日本免费a视频| 99热在线只有精品| 91麻豆国产在线| 欧美日韩第三页| 毛片免费在线| 青草视频在线观看国产| 欧美视频在线第一页| 久久99国产乱子伦精品免| 91久久国产热精品免费| 人妻中文久热无码丝袜| 色婷婷在线播放| 国产精品露脸视频| 亚洲91在线精品| 亚洲二三区| 国产AV无码专区亚洲A∨毛片| 综合五月天网| 亚洲欧美一区二区三区麻豆| 欧美一级专区免费大片| 91精品亚洲| 国产幂在线无码精品| 精品视频一区在线观看| 中文字幕亚洲乱码熟女1区2区| 亚洲人成在线免费观看| 国产午夜精品一区二区三区软件| 最新国产你懂的在线网址| 国产18在线播放| AV不卡在线永久免费观看| 欧美狠狠干| 欧美性爱精品一区二区三区| 日本精品影院| 亚洲成人免费在线| 精品无码专区亚洲| 国产伦片中文免费观看| 国产精品亚洲一区二区三区z| 欧美色视频在线| 又大又硬又爽免费视频| 成人午夜在线播放| 黄色免费在线网址| av手机版在线播放| 成人福利在线视频| 色精品视频| 91麻豆国产精品91久久久|