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

iSCSI協議一致性測試研究與實現

2014-07-07 01:49:22易奇賈婧路楊張玉胡懷湘
計算機工程與應用 2014年6期
關鍵詞:一致性

易奇,賈婧,路楊,張玉,胡懷湘

華北計算技術研究所,北京 100083

iSCSI協議一致性測試研究與實現

易奇,賈婧,路楊,張玉,胡懷湘

華北計算技術研究所,北京 100083

不同iSCSI協議實現之間能否互聯互通取決于協議實現是否與iSCSI協議規范相一致。針對這個問題,研究了iSCSI協議一致性測試的測試原理和測試流程,設計了適合于iSCSI協議一致性測試的測試系統以及基于XML描述的iSCSI協議一致性測試套,給出了較為完整的iSCSI協議一致性測試例。使用該測試例對某產品的iSCSI協議實現進行一致性測試,發現了被測實現存在與協議規范不一致的地方。

Internet小型計算機系統接口(iSCSI)協議;一致性測試;測試系統;可擴展標記語言(XML);測試套;測試例

1 引言

隨著計算機網絡和通信技術的快速發展,眾多網絡應用需要存儲和處理的信息量爆炸性地增長??焖僭鲩L的存儲容量、可靠性和可擴展性需求使得企業越來越重視網絡存儲解決方案。目前網絡存儲技術采用的連接方式主要有光纖通道和TCP/IP兩種。iSCSI協議是IP存儲網絡協議之一,它融合了目前廣泛應用的兩種標準SCSI和TCP/IP,使得SCSI命令、數據和狀態可以在傳統的IP網絡上傳輸。該協議在構建異構的存儲網絡、解決傳輸距離問題以及提供相對廉價的解決方案方面有著其他數據訪問協議無法比擬的優勢。

iSCSI協議是由IBM公司、Cisco公司共同提出,并由因特網工程工作小組(IETF)制定并通過的協議標準,主要標準文檔是IETF RFC 3720[1]和IETF RFC 5048[2]。由于標準文檔定義的iSCSI協議是以自然語言描述的文本,實現者對于協議文本的不同理解以及實現過程中的非形式化因素都會導致不同的協議實現,有時甚至是錯誤的協議實現。所以必須進行協議一致性測試以保證協議的各種實現版本之間能夠互通并進行可靠的通信。iSCSI協議一致性測試的作用在于驗證iSCSI協議實現的準確性,判斷iSCSI存儲產品的協議實現是否符合協議的標準規范。目前,國外已有iSWAT,iSCT等一些測試軟件聚焦iSCSI協議測試,并且新罕布什爾大學互操作實驗室作為中立的第三方實驗室,能夠提供iSCSI一致性測試的測試套件。但是上述測試工具或者測試套件均為國外的商業測試軟件,購買價格或者測試服務收費昂貴。國內的存儲產品測試工作剛剛起步,尚未見有介紹類似測試工具的文獻。本文參考協議一致性測試的國際標準,設計了適合于iSCSI協議一致性測試的測試系統以及基于XML語言的測試套描述方式,給出了設計的較為完整的iSCSI協議一致性測試例并進行了實際測試。本文的研究和設計成果為國內的iSCSI協議一致性測試工作提供了一種可借鑒的方法和可行的測試系統。

圖1 iSCSI協議棧結構及PDU的封裝和傳輸

2 iSCSI協議簡介

SCSI協議是點對點的、直接相連的計算機到存儲器的傳輸協議。iSCSI是SCSI協議的延伸,是在傳統的以太網上,借用TCP/IP協議提供的可靠傳輸能力,傳送SCSI命令及塊級存儲數據的規則和方法。

2.1 iSCSI協議結構模型

iSCSI協議采用客戶端/服務器結構,iSCSI的客戶端(通常是文件服務器)和服務器端(通常是各種iSCSI存儲設備)也分別稱為發起端(initiator)和目標端(target)。iSCSI實現了從SCSI協議到TCP/IP協議的映射,其協議棧結構如圖1所示[3]。SCSI層根據應用發出的I/O請求建立SCSI CDB(Command Descriptor Blocks,命令描述符塊),并傳給iSCSI層。iSCSI層對SCSI CDB進行封裝,以便能夠在基于TCP/IP協議的網絡上進行傳輸。SCSI CDB經過iSCSI層的封裝,形成一組iSCSI PDU,并將它傳遞給TCP層。TCP協議能提供端到端的透明可靠傳輸,并具有流量控制、擁塞控制等功能。經過TCP封裝后,iSCSI PDU以路由選擇為基礎在以太網上進行傳輸。iSCSI PDU的產生,封裝和網絡傳輸過程如圖1所示。

Initiator端和target端在TCP層的邏輯連接叫做iSCSI會話。iSCSI會話分為兩個階段:登錄階段和全功能階段。iSCSI登錄階段的任務是為iSCSI會話建立TCP連接,鑒別通訊雙方身份以及協商會話參數等。登錄過程完成后,iSCSI會話進入全功能階段,這時發起端就可以把SCSI命令和數據封裝在iSCSI PDU中,通過iSCSI會話連接傳輸到目標端的不同邏輯單元(LUNs,Logical Units)。在傳輸事務處理結束后,發起端就可以使用注銷命令向目標端申請結束會話。

2.2 iSCSI協議PDU

iSCSI協議的initiator端和target端通過交換協議數據單元(Protocol Data Unit,PDU)進行有效通信。PDU攜帶了iSCSI協議的控制信息、狀態信息、命令和數據等。iSCSI協議的PDU由多個段組成,其中第一個段為48 bit的基本頭(Basic Header Segment,BHS)。BHS包含了CDB、LUN等重要信息,是一個強制的數據段,其他段都是可選段。BHS段也是iSCSI協議PDU的核心部分,BHS的通用格式如圖2所示。

圖2 iSCSI PDU的BHS段結構

由于iSCSI協議涉及到登錄、讀寫、任務管理和注銷等多種操作,因此iSCSI協議規范中定義了多種PDU,表1為iSCSI協議規范定義的主要PDU及其功能。一般來說,每種操作類型的PDU都會自定義和使用BHS段中的“操作碼相關”域,具體定義可以參看文獻[1]和文獻[2]。

表1 iSCSI協議的主要PDU及其功能

3 iSCSI協議一致性測試研究

國際標準ISO/IEC-9646中定義了對OSI參考模型和ITU-T協議進行一致性測試的理論框架和測試方法(Conformance Testing Methodology Framework,CTMF)[4-7],還為測試系統的實現提供了指導。本章借鑒上述標準的框架和方法,研究iSCSI協議一致性測試的原理、測試系統結構和測試流程。

3.1 測試原理

iSCSI協議一致性測試是指針對一個iSCSI協議的具體實現,測試者依據協議標準文本說明,通過一定的測試例對其進行某些方面的測試以檢驗其實現是否與協議標準文本相一致。iSCSI協議一致性測試是一種“黑盒測試”,只關心被測實現(Implementation Under Test,IUT)的外部行為。由于無法對一個IUT進行窮盡測試,所以測試并不能保證IUT的完全正確性。一致性協議測試的基本出發點是只能證明“存在錯誤”,而不能證明“不存在錯誤”。

具體來說,iSCSI協議一致性測試的過程主要就是按照iSCSI協議規范的定義構建各種功能的PDU,然后按照一定順序發送構建好的PDU,并比較接收到的PDU的內容,從而得出協議的運行狀態,并進一步得出一致性測試的結論。測試類型主要包括兩種:第一,做正確的事情,觀察IUT的行為是否正常。即在測試過程中模擬IUT正常工作的情況,并向IUT發送一系列正確的iSCSI PDU,驗證IUT響應了正確的PDU及字段。第二,做錯誤的事情,觀察IUT是否能檢測到錯誤并作相應處理。也就是說在測試過程中要模擬各種異常情況(例如修改發送給IUT的PDU字段或者改變發送順序等),觀察IUT是否能根據協議作出正確反應(如發送Reject PDU、斷開連接等)。

3.2 測試系統設計

iSCSI協議一致性測試系統的主要功能是編輯和執行測試套,即根據測試套定義的測試例和測試步執行測試,發送和接收iSCSI PDU,并形成測試日志供分析和報告使用。本文設計的iSCSI協議一致性測試系統在參考國際標準ISO/IEC-9646的基礎上,結合了iSCSI協議自身的特點設計而成。在保證一定的實現復雜度的前提下,測試系統在設計過程中既考慮了測試覆蓋度的要求,也考慮了測試自動化的需求。本文設計的iSCSI協議一致性測試系統的結構如圖3所示,主要由測試套顯示和編輯,測試執行器以及日志系統等組成。

圖3 iSCSI協議一致性測試系統結構

測試套編輯工具主要用來新建和編輯測試例。設計人員在對iSCSI協議標準的文本描述充分理解的基礎上,根據測試套描述規格,設計出既適合于人理解又適合于機器處理的形式化描述的iSCSI測試套。

測試套顯示工具由測試人員使用,可以顯示已經編輯好的測試例、測試步以及待發送和期望接收的PDU等。

測試執行器使用編輯好的可執行測試集對被測實現IUT進行激勵/響應測試。測試執行器按照測試集定義的順序,執行測試步的激勵;被測實現IUT作出響應并由測試執行器接收響應的協議數據單元;然后測試執行器對接收到的PDU進行解碼,與測試例中預期的PDU進行比較并給出該測試步的執行結果。

測試日志是整個測試系統運行的記錄,它詳細記載了測試集執行的順序,發送和接收的每個PDU的內容以及接收PDU與預期PDU的每個字段的比較結果。測試日志是分析測試過程的重要記錄,也是測試報告的基礎。

3.3 測試流程

參考ISO/IEC-9646中定義的協議一致性測試的理論框架和測試方法,本文研究的iSCSI協議的一致性測試的測試流程如圖4所示。

圖4 iSCSI協議一致性測試流程圖

一方面,測試方在對被測協議實現IUT進行測試之前,協議實現者應向測試方提供協議實現一致性聲明PICS(Protocol Implement Conformance Statements)和協議實現額外信息PIXIT(Protocol Implementation Extra Information for Testing)。其中PICS列出了IUT所有已實現的功能,說明實施的要求、能力及選項實現的情況。PIXIT提供測試時必須的協議參數以及測試環境相關的信息。測試者分析PICS/PIXTI文件并根據協議標準進行靜態測試,檢查IUT參數說明是否符合iSCSI協議標準。

另一方面,測試者研究iSCSI協議規范,得出測試目的。根據測試目的得到一個獨立于所有協議實現的抽象測試套(Abstract Test Suite,ATS)。再對ATS進行相應轉換與底層支持實現,將ATS參數化生成可執行測試集ETS(Executable Test Suite)。然后執行ETS對IUT進行激勵/響應測試,形成測試日志。

最后是測試結果分析和報告,對測試執行產生的測試日志文件進行分析,并將已知的PICS和PIXIT分析與測試結果相綜合,獲得IUT測試的一致性結論,生成一致性測試報告。協議一致性測試報告記錄了所有測試例的測試結果:成功(PASS)、失?。‵AIL)和不確定(INCONCLUSIVE)。

4 基于XML的iSCSI協議一致性測試套

測試套用于描述iSCSI協議一致性測試的測試過程和協議數據單元格式,它在整個協議一致性測試過程中起著極其重要的作用。國際上推薦使用形式化語言例如TTCN(Tree and Tabular Combined Notation)、SDL(Specification and Description Language)、LOTOS(Language of Temporal Ordering Specification)等對自然語言描述的協議標準進行形式化描述。采用上述形式化的語言具有標準化以及通用性等優點,但是往往形式化語言的定義和實現極其繁瑣。XML是一種把數據表示為文本字符串的語言,它是一種跨平臺的語言,可以使用任何文本編輯工具來編輯XML文件。XML在閱讀、修改和共享方面有著其他語言所不具有的優越性[8]。本文設計的iSCSI協議一致性測試系統中,采用XML語言來描述和保存iSCSI協議的測試套,測試套組成部分之間形成樹狀的結構框架,層次清晰、關系明確,既便于機器處理和執行,也便于設計人員和測試人員學習和理解。

4.1 測試套組織結構

iSCSI協議測試套分為5個層次[9]:測試套ITS(iSCSITestSuit)、測試組ITG(iSCSITestGroup)、測試例ITC(iSCSITestCase)、測試步TestStep和協議數據單元(Send-PDU和ExpectReceive)。測試套的每個層次在測試系統中都有特定的內容和作用。

測試套:對應于iSCSI協議。主要內容包括測試套名稱ITSN(iSCSITestSuitName)、測試套描述ITSD(iSCSITestSuitDescription)以及所包含的測試組等。一個測試套中包含多個不同測試目的的測試組。

測試組:對應于iSCSI協議的一個測試目的。主要內容包括測試組名稱ITGN(iSCSITestGroupName)、測試組描述iSCSITestGroupDescription(ITGD)以及所包含的測試例等。一個測試組內包含相同目標的多個不同的測試例。

測試例:對應于iSCSI協議的某一項功能,如iSCSI標準中定義的Login功能、數據讀寫功能或者加密功能等。主要內容包括測試例名ITCN(iSCSITestCaseName)、測試例描述信息ITCD(iSCSITestCaseDescription)以及所包含的測試步TestStep等。一個測試組由一個以上的測試例組成。

測試步:對應于iSCSI協議某項功能的一個具體動作。主要內容包括發送的PDU(SendPDU)和期望接收的PDU(ExpectReceive)等。一個測試例包含一個以上的測試步。

協議數據單元:對應于iSCSI協議中待發送或者需要接收的協議數據單元的具體格式。主要內容包括協議數據單元名稱PDUName、各個字段及內容(如BHS段、DATE段和DATEDIGESRT段)。

4.2 iSCSI協議測試套的XML描述

本文研究的iSCSI協議一致性測試系統中,使用形式化語言XML描述iSCSI協議的測試套。XML文檔的基本組成部分是元素,XML的內容包含在唯一的根元素中,根元素之下再按照層次結構關系定義一些其他元素,這些元素也可以進一步包含各自的子元素。

表2 測試套中使用XML定義的主要標簽

圖6 測試例說明

根據iSCSI協議測試套的層次結構和XML語法,測試套的XML描述分也為5個部分:測試套描述、測試組描述、測試例描述、測試步描述和協議數據單元描述,這5個層次之間逐層遞進形成整個XML文檔的樹狀層次結構,如圖5所示。表2列出了測試套中使用XML定義的主要元素的開始標簽和結束標簽。

圖5 iSCSI協議測試套樹狀層次結構圖

以上就是描述iSCSI協議一致性測試套的XML文件的主要元素和標簽。下面通過一個例子,來具體說明怎樣使用XML語言描述iSCSI協議以及測試iSCSI協議一致性。本處詳細分析一個Login測試組的測試例,測試例說明[8]如圖6所示。

使用XML語言描述該測試例如圖7和圖8所示。其中圖7為測試例描述主文件,該文件的描述主要包含以下內容:測試套名稱和描述信息、測試組名稱和描述信息、測試例名稱和描述信息以及測試步(發送PDU和接收PDU)。主文件中引用了4個iSCSI協議數據單元的XML描述文件,分別為PDULogin1.xml、PUDLogin1rsp. xml、PDULogin2.xml和PUDLogin2rsp.xml。圖8給出了XML描述的PDULogin1協議數據單元文件內容。iSCSI協議PDU格式和iSCSI協議標準密切相關,具體PDU格式可以參看本文2.2節或者進一步的標準文檔,此處不再贅述。測試系統每次接收到IUT響應的PDU后,將其格式和字段與ExpectReceive對比,判定結果為PASS或者FAIL,并在日志文件中詳細記錄發送和接受PDU的內容以及對比結果。經過在市面上某iSCSI存儲產品上的測試,這個測試例能夠正確執行,執行結果與預期結果相符。

圖7 XML描述的測試例主文件圖

圖8 XML描述的PDULogin1協議數據單元

4.3 iSCSI協議一致性測試例設計

本文參考協議標準IETF RFC 3720和IETF RFC 5048中對iSCSI協議功能的描述,根據不同的測試目的設計了完整iSCSI一致性測試例如表3所示。

表3中的測試例雖然涵蓋了iSCSI一致性協議的絕大多數方面,但是應該注意到一致性測試的基本出發點是只能證明“存在錯誤”,而不能證明“不存在錯誤”。在實際測試中如果發現問題仍需進一步補充測試例甚至測試組。

使用表3中的測試例,針對市面上某iSCSI存儲產品的iSCSI協議實現展開了測試。測試結果表明,該產品實現的iSCSI協議在測試例ITC_ErrorHandling_9-11上與協議標準不符合。進一步分析表明,該版本的iSCSI協議對于PDU中DATADIGEST段的錯誤沒有提供相應的錯誤恢復機制。

5 結束語

隨著現代社會信息化的發展,存儲設備在整個信息設施投資中的比例日益增加。iSCSI存儲產品相對于光纖存儲產品來說具有傳輸距離遠以及價格低廉等優勢,越來越受到中小型企業的青睞。市面上眾多iSCSI存儲產品之間的互聯互通性正日益成為存儲廠商研制產品以及用戶選擇產品一個重要參考。本文參考協議一致性測試的國際標準,研究了iSCSI協議一致性測試的測試原理和測試流程,設計了適合于iSCSI協議一致性測試的測試系統;然后研究了iSCSI協議一致性測試套的組織結構,并設計了基于XML語言的測試套描述方式,最后,在上述工作的基礎上,給出了設計的較為完整的iSCSI協議一致性測試例;并使用該測試例以及測試系統對某存儲產品的iSCSI協議實現進行了一致性測試,

表3 iSCSI協議一致性測試例

發現了被測實現在一致性方面的問題。進一步工作包括測試系統和測試例的完善,以及根據測試結果對被測實現不一致地方進行深入分析。

[1]Satran J,Meth K,Sapuntzakis C,et al.RFC3270 Internet Small Computer Systems Interface(iSCSI)[S].2004.

[2]Chadalapaka M.RFC5048 Internet Small Computer System Interface(iSCSI)corrections and clarifications[S].2007.

[3]彭聰,陜振,張淑萍,等.iSCSI Target研究與性能測試[J].計算機工程與設計,2011,31(4):889-892.

[4]International Organization for Standardization.ISO/IEC 9646-1 Information technology-open systems interconnection-conformance testing methodology and framework-part 1:general concepts[S].2nd,Geneva,1994.

[5]International Organization for Standardization.ISO/IEC 9646-2 Information technology-open systems interconnection-conformance testing methodology and framework-part 2:abstract test suite specification[S].1988.

[6]International Organization for Standardization.ISO/IEC 9646-3 Information technology-open systems interconnection-conformance testing methodology and framework-part 3:the Tree and Tabular Combined Notation(TTCN)[S].1994.

[7]International Organization for Standardization.ISO/IEC 9646-4 Information technology-open systems interconnection-conformance testing methodology and framework-part 4:test realization[S].1988.

[8]李華,張濤,葉新銘,等.基于XML的OSPFv3一致性測試研究[J].計算機科學,2007,34(4):59-62.

[9]李華,葉新銘,曾敏,等.基于XML的協議一致性測試系統的設計與實現[J].計算機科學,2006,33(10):275-278.

[10]丁雪蓮.Linux環境下的BGP4+一致性測試研究[J].電子科技,2011,24(6):83-86.

[11]TD-SCDMA協議一致性測試研究及其測試例的實現[D].北京:北京交通大學,2011.

YI Qi,JIA Jing,LU Yang,ZHANG Yu,HU Huaixiang

North China Institute of Computing Technology,Beijing 100083,China

The interconnection of the different iSCSI protocols implementation depends on the conformance between the protocol implementation and the iSCSI protocol specification.In view of this problem,the test principle and processes of the iSCSI protocol conformance testing are proposed in this paper.The test system suitable for iSCSI protocol conformance testing and test suite which is described by XML is designed.A set of relative integrity test cases is provided.Moreover, the iSCSI protocol implementation of a particular product is tested using the test cases.Test result shows that there are some inconsistence existing between the tested implementation and the protocol specification.

Internet Small Computer System Interface(iSCSI)protocol;conformance testing;test system;Extensible Markup Language(XML);test suite;test case

YI Qi,JIA Jing,LU Yang,et al.Research and realization of iSCSI protocol conformance testing.Computer Engineering and Applications,2014,50(6):77-82.

易奇(1984—),男,碩士,主要研究方向為計算機網絡協議和網絡存儲技術;賈婧(1985—),女,碩士,主要研究方向為計算機網絡協議和網絡存儲技術;路楊(1989—),男,工程師,主要研究方向為計算機網絡協議和網絡存儲技術;張玉(1976—),女,工程師,主要研究方向為計算機系統結構;胡懷湘(1965—),男,正研級高工,主要研究方向為計算機系統結構,網絡存儲技術。E-mail:curtis.tju07@yahoo.com.cn

2012-05-03

2012-06-18

1002-8331(2014)06-0077-06

A

TP393.04

10.3778/j.issn.1002-8331.1204-0624

猜你喜歡
一致性
注重整體設計 凸顯數與運算的一致性
遼寧教育(2022年19期)2022-11-18 07:20:42
關注減污降碳協同的一致性和整體性
公民與法治(2022年5期)2022-07-29 00:47:28
商用車CCC認證一致性控制計劃應用
注重教、學、評一致性 提高一輪復習效率
對歷史課堂教、學、評一體化(一致性)的幾點探討
IOl-master 700和Pentacam測量Kappa角一致性分析
基于CFD仿真分析的各缸渦流比一致性研究
ONVIF的全新主張:一致性及最訪問控制的Profile A
方形截面Rogowski線圈的一致性分析
電測與儀表(2016年7期)2016-04-12 00:22:18
基于事件觸發的多智能體輸入飽和一致性控制
主站蜘蛛池模板: 日韩国产综合精选| 国产av一码二码三码无码| 日日碰狠狠添天天爽| 伊人天堂网| 免费全部高H视频无码无遮掩| 色AV色 综合网站| 真人高潮娇喘嗯啊在线观看| 人妻一区二区三区无码精品一区 | 亚洲国产成人综合精品2020 | 中文无码精品a∨在线观看| 青青国产视频| 国产偷国产偷在线高清| www.精品视频| 亚洲不卡影院| 亚洲男人的天堂在线| 中文字幕欧美成人免费| 粗大猛烈进出高潮视频无码| 91久久偷偷做嫩草影院精品| 看你懂的巨臀中文字幕一区二区 | 国产美女丝袜高潮| 色婷婷国产精品视频| 91精品情国产情侣高潮对白蜜| 久久久久国产精品熟女影院| 欧洲高清无码在线| 91精品国产91欠久久久久| 中美日韩在线网免费毛片视频| 国产欧美又粗又猛又爽老| 91精品国产91久久久久久三级| 国产高清又黄又嫩的免费视频网站| 精品国产成人高清在线| 色综合天天视频在线观看| 久久夜色撩人精品国产| 日韩无码黄色网站| 爆操波多野结衣| 亚洲综合色婷婷中文字幕| 国产剧情伊人| 亚洲系列无码专区偷窥无码| 久久这里只精品热免费99| 精品国产欧美精品v| 久精品色妇丰满人妻| 日韩免费成人| 国产一区三区二区中文在线| 国产精品播放| 成年免费在线观看| 色综合五月| 在线看片中文字幕| 欧美精品成人| 老色鬼欧美精品| 日韩欧美国产精品| 日本手机在线视频| 国产黑丝一区| 中文国产成人精品久久| 亚洲精品国产首次亮相| 欧美国产日韩另类| 久久五月天国产自| 99这里精品| 成人福利在线视频免费观看| 亚洲福利片无码最新在线播放| 亚洲三级a| 首页亚洲国产丝袜长腿综合| 国产欧美日韩视频怡春院| 国产精品七七在线播放| 国产00高中生在线播放| 国产欧美日韩视频一区二区三区| 伊人激情综合网| 亚洲第一香蕉视频| 免费三A级毛片视频| 色国产视频| 老司机午夜精品网站在线观看| 亚洲愉拍一区二区精品| 中文字幕日韩欧美| 色悠久久久久久久综合网伊人| 国产高清在线观看| 东京热av无码电影一区二区| 蜜桃视频一区二区| 国产精品分类视频分类一区| 91麻豆精品视频| 天天躁夜夜躁狠狠躁躁88| 99热国产这里只有精品无卡顿"| 色综合色国产热无码一| 久久99国产综合精品女同| 国产久草视频|