TW201240413A - Lightweight input/output protocol - Google Patents

Lightweight input/output protocol Download PDF

Info

Publication number
TW201240413A
TW201240413A TW101121785A TW101121785A TW201240413A TW 201240413 A TW201240413 A TW 201240413A TW 101121785 A TW101121785 A TW 101121785A TW 101121785 A TW101121785 A TW 101121785A TW 201240413 A TW201240413 A TW 201240413A
Authority
TW
Taiwan
Prior art keywords
server
user
lwio
rdma
message
Prior art date
Application number
TW101121785A
Other languages
English (en)
Inventor
Ahmed H Mohamed
Anthony F Voellm
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW201240413A publication Critical patent/TW201240413A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

201240413 六、發明說明: 【發明所屬之技術領域】 本發明係概括關於遠端檔案存取之系統及方法;特別 是關於利用遠端直接記憶體存取(Rem〇te Direct
Access,RDMA)來卸載輸入/輸出處理程序的技術。 【先前技術】 在計算環境裡’吾人通常會希望能夠節省f貴的cpu 資源。對於如應用程式伺服器網路節點而言,節省資源 的課題尤《重要。由於網路變得愈來愈快速,其對於c p u 在處理封包及執行I/O操作方面的要求隨之提高,因而 降低了應用程式的效能。此種情況特別不利於像是在本 質上需仰賴大量I/O應用的資料庫。 解決此問題的其中一種方法是為cpu解除過多的"Ο 及網路處理工作。在使用諸如NFS或SMB/CIFs等分散 式檔案系統及傳輸協定的網路化環境裡,可以將ι/〇要 求從近端機台傳送到遠端機台。然而,利用此種處理方 式未必能使近端機台在處理工作的經濟效益方面達到顯 著的提升。 在單機操作環境裡,I/O處理工作之負载可藉著將17〇 工作卸載到直接記憶體存取(Direct Memory Access, DMA)控制器而得以減輕。遠端直接記憶體存取(Rem〇te Difeet Memory Access,RDMA)技術是一種新近開發用 201240413 方;夕〇網路化電腦的DMA延伸。RDMA讓資料能夠在 具備RDMA功能之網路介面卡(NIC)的兩台連線機台上 的記憶體緩衝暫存區之間傳輸,而不需要用到來源:台 或目的機台的CPU和作業系統。RDMA可以用來將而 處理工作卸載到遠端機台,以便讓近端機台能夠恢復供 應用程式使用的CPU運算速度(cycle)。RDMA已充分運 用於高速'高頻寬的互連技術,例如虛擬介面架構 (WA)、InfiniBand及iWarp等。這些相互連線是特別為 資料中〜或其它本機檔案共享環境内的伺服器節點叢集 (cluster)之間的高可靠度網路連線而設計。 用來定義本機卸冑節點肖遠端機台之間的協定必須加 以設計,以便能夠充分運用rdma^術所提供的功能, 並有效地獲得其益處。因此,吾人需要本發明之輕量輸 入 /輸出(lightweight input/output,LWIO)協定。 【發明内容】 根據本發明之一技術態樣,其提供一種用於將第一電 腦之輸入/輸出(I/O)工作卸載到第二電腦的系統。上述系 統涵蓋在該第-電腦上執行的用戶α及在該第二電腦上 執行的伺服器。上述系統另包含一個或數個rdma通 道,其連結該第一電腦與該第二電腦。上述用戶與伺服 器之間係藉由LWI0協定進行通訊’該LWI〇協=包含 網路探索階段和I/O處理階段,上述LWI〇協定係連同 5 201240413 另種網路協定(例如SMB/CIFS)來運用,以藉助第二種 協定的安全性及驗證基礎架構。為了提供較佳的安全模 式,上述協定之I/O模式係為非對稱模式:利用rdma 執行讀取動作’但由傳送操作來執行寫入動作。 根據本發明之另一技術態樣,其提供一種用於將第一 電腦之輪入/輸出(1/0)工作卸載到第二電腦的方法。上述 方法利用兩台電腦上的共用RDMA通訊裝置,並盥輕量 輪入/輸出(LWI〇)用戶-伺服器協定產生關連。此種協定 通常包含探索pm緊跟在後的1/0處理階段。在探索 階段’用戶與词服器決定具共享⑽财功能之提供者的 最少列表處理階段,用戶發出將工 二機台的I/O要求。 來索1¾ & ’ S戶料從伺服器取得伺服器要求繼續 鍵值(resume key)。隨後,用戶開啟通往词服器的管道 (PiPe);經由此管道,用戶送出含有第一機台上具麵A 功能之提供者列表㈣商要求1服It透過上述管道送 出協商回應,該回應含有在第二機台上可運用並與第一 機台上之提供者相符的提供者列表。隨後,用戶透過丘 2供=立通往词服器的職A連線。用戶與饲服器 此連線進行㈣。接著1戶登錄一個 或數個在伺服器上使用的樓案。 ⑽處理要求訊息包含有關閉訊息、取消訊息、讀取 訊息、寫入訊息、向量化讀取訊息及向量化寫入訊I 基於安全性的考量,上述協定具有非對稱ι/〇模式的特 201240413 點。資料的讀取是利用RDMA寫入動作而傳送給用戶; 資料的寫入則是利用一般的傳送動作來完成。讀取和寫 入要求可由用戶指定’並由伺服器以輪詢(p〇⑴⑽模式 或岔斷(interrupt)模式完成。若用戶指示不應以輪詢模式 來完成讀取和寫入要求’則㈣器會藉著RDMA傳輸而 將狀態區塊送至第-機台,以完成該項而處理要求。 若用戶指示應以輪詢模式來完成讀取和寫入要求,則該 用戶可藉由岔斷要求訊息來要求在完成ι/〇處理之後被 伺服器喚醒。 根據本發明之另一技術態樣,其提供—種用於管理ι/〇 卸載協;t之緩衝暫存區的m種方法包括緩衝評點 機制。飼服器-用戶評點交易包含由伺服器啟用並完成的 三方交握(handshake)程序。伺服器會將心丨仏評點訊息 傳送給用戶,該訊息包含設有若干評點的資訊欄位。若 該項數值為負數-N,則用戶必須放棄N個評點。 本發明之其它技術態樣涵蓋上述技術特點,並以如電 腦程式和資料結構等電腦可讀媒體來實施。 【實施方式】 以下將參照第i圖至第17E圖來說明本發明之實施 例。然而,熟習相關技術者當能瞭解,在此相對於圖式 所進行的詳細解說僅為舉例說明,實則本發明不限定於 在此描述的實施例。 7 201240413 第1圖概括繪示典型的網路化用戶/伺服器環境;本發 明之技術態樣可在該環境裡實施。第1圖繪示有兩台電 腦’分別標示為主機A 101及主機b 121。在典型情況 下,主機A 1 0 1做為應用程式飼服器機台—例如資料庫 词服器’並負責執行許多I/O工作;然而,本發明可在 包含有多種具不同類型和運用方式的電腦環境裡實施。 主機A 101與主機b 121各具備數個網路介面卡 (NIC)109、111、113、133、135和 137,以便讓兩個機 台之間能夠進行網路資料通訊。上述NIC當中的 NIC109、111、135和137能夠進行RDMA資料傳輸。 如圖所示,在兩台主機101和121之間設有非RDMA網 路連結119與RDMA通道117。 LWIO用戶應用程式103是在主機A 1〇1上執行,其 連結另一個負責處理I/O工作的應用程式;此應用程式 與核〜模式I/O讀取/寫入服務1 〇5之間有互動關係。 LWIO用戶103可將主機A 101的1/〇處理工作卸載到主 機B 121。LWIO伺服器123是在主機B 121上執行。根 據在此說明的LWIO協定,LWIO用戶103是與LWI〇 伺服器123溝通。LWIO用戶1〇3和LWl〇伺服器123 利用指定緩衝器107和127,讓擋案相關資料能夠直接 經由RDMA通道連線117進行傳送。藉由LWi〇協定訊 息,讀取和寫入兩項工作即可卸載到主機B 121❶伺服 器123將I/O要求傳送到檔案系統129,而檔案系統129 則可當作連接硬碟131的介面》 201240413 在典型情況下,RDMA連線11 7伴隨有兩種訊息。第 一種是一般的網路傳送/接收訊息,其在目的機台上形成 岔斷情況。第二種是RDMA讀取/寫入訊息,其中使用 遠端機台上的記憶體空間時不需要遠端CPU的協助,因 而不會造成岔斷情況。遠端CPU會決定供RDMA使用 的記憶體區域,但其通常不會得知何時執行RDMA動 作。 在本發明之實施例中,上述LWIO協定係連同另一種 網路協定(例如SMB/CIFS)來運用,以利用第二種協定的 安全性及驗證基礎架構。如此可以減輕LWIO協定的例 行工作負擔。如第1圖所示,主機B 121上的LWIO伺 服器123是在SMB伺服器125上運作。SMB用戶(未繪 示)同樣在主機A101上執行,並與LWIO用戶應用程式 103相互溝通。 LWIO協定包含兩個階段:探索階段及緊跟在後的I/O 階段。在此說明的資料結構實施例之資料大小如下: BYTE 無正負 CHAR 8位元 UINT16 無正負 UINT32 無正負 UINT64 無正負 INT16 具正負 INT32 具正負 號的8位元整數 ASCII字元 號的16位元整數 號的32位元整數 號的64位元整數 號的1 6位元整數 號的32位元整數 201240413 INT64 具正負號的64位元整數 WCHAR 16 位元 Unicode 字元 PVOID32 32位元指標 PVOID64 64位元指標 第2圖概括繪示本發明的LWIO協定實施例在探索階 段所採取的步驟。在步驟20 1,LWIO伺服器登錄在主機 上執行的SMB/CIFS伺服器,其中LWIO伺服器是在該 主機上執行。在步驟203,SMB/CIFS伺服器根據登錄程 序告知在遠端主機上執行的SMB/CIFS用戶可以使用 LWIO伺服器。在步驟205,LWIO用戶要求一個伺服器 要求繼續鍵值。此繼續鍵值是一種認證機制,其已揭露 於另一專利申請案,且該申請案與本案有相同的專利權 受讓人;該申請案為美國專利申請案第______號,發明 名稱為:” Method and System for Accessing a File (Resume Key)” ,並於2003年10月24日提申。在此參 照併入該案之完整内容。 在步驟207,LWIO伺服器將該伺服器要求繼續鍵值傳 回到用戶。在本發明之實施例中,伺服器要求繼續鍵值 具有下列結構: typedef struct _SRV_RESUME_KEY { UINT64 ResumeKey; UINT64 Timestamp; 10 201240413 UINT64 Pid; } SRV_RESUME_KEY, *PSRV_RESUME_KEY; typedef struct _SRV_REQUEST_RESUME_KEY { SRV_RESUME_KEY Key; UINT16 ContextLength; BYTE Context[l]; } SRV_REQUEST_RESUME_KEY, * P S RV_RE QUE S T_RE S UME_KE Y; 第3圖繪示伺服器要求繼續鍵值2 19之表述式範例。 ResumeKey 221、Timestamp 223 和 Pid 225 是在飼服器 上產生,而且用戶無法存取。Context 229是一個内含 UNC名稱的陣列,而LWI0用戶可利用該陣列來聯繫伺 月艮器。ContextLength 227是Context 229當中的位元組 數目。 網路探索 當用戶應用程式收到伺服器要求繼續鍵值21 9時,用 戶應用程式會從Context欄位229取得伺服器UNC名 稱。再次參照第2圖;在步驟209,用戶開啟通往LWIO 伺服器的管道。此管道可提供網路上具RDMA功能的裝 置進行自動化探索;以下將會解說其運作方式。此為本 發明的一項重要且有用的技術特點;VIA網路和類似網 路通常不具備如ARP之類的位址解析機制。 11 201240413 隨後,用戶查詢伺服器上具RDMA功能的裝置(提供 者)之列表,而此類提供者可搭配LWIO協定來使用。查 詢工作是藉由協商要求而達成。用戶建構協商要求,並 經由在步驟211新開啟的管道而將此項要求傳送到伺服 器。在本發明之實施例中,協商要求具有下列結構: typedef struct { LWIO_CONTROL_HEADER; WCHAR ClientName[LWIO_MAX_HOST_NAME]; UUID Key; UINT16 ResponseLength; UINT16 ProviderCount;
LwioAddressBlkt ProviderList[l]; } LwioNegotiateRequest_t; typedef struct { CHAR ProtocolId[4]; UINT32 Revld; UINT 16 Opcode; UINT 16 Length; } LWIO_CONTROL_HEADER; typedef struct _GUID { UINT32 Datal; UINT 16 Data2; UINT 16 Data3; BYTE Data4[8]; } GUID, UUID; typedef struct { WCHAR UINT 16
Name [LWIO_MAX_PRO VIDER_NAME];
InstanceCount;
LWIO NET ADDRESS RESS InstanceTable[l]; 12 201240413
typedef struct _LWIO_NET_ADDRESS {
UINT16 UINT16 BYTE
HostAddressLen;
DiscriminatorLen;
HostAddressFollowedByDiscriminator[l]; } LWIO_NET_ADDRESS; 第4A圖繪示本發明的協商要求封包23 1之表述式範 例。協商要求含有:控制標題233、長度固定的Unicode 用戶名稱欄位235、當作鍵值的用戶UUID 237、供接收 回應之用的本機緩衝暫存區大小239,以及提供者列表 241。在控制標題 233 内,Protocolld’ LWIO’ 243 儲存 為標題的前四個位元組。
Revld 245 存有目前定義的數值 0x1001 、 LWIO_REV_ID。Opcode 247存有目前定義的數值Oxfe、 LWIO_CONTROL_OPCODE_NEGOTIATE。Length 249 是 傳送到伺服器的完整封包之大小(以位元組為單位),其 中包括所有的特定opcode資料。
ClientName 235是供伺服器辨認用戶之用。Key 237 是用於後續的特定網路認證程序;以下將會解說。 ResponseLength 239是缓衝暫存區的大小,緩衝暫存區 是用來接收伺服器的協商回應;以下將會解說。 Provider Count 251是與用戶機台有關聯的提供者數目; 用戶告知伺服器的即是提供者的數目。提供者列表241 包含ProviderCount個提供者的列表。 13 201240413 提供者列表241的Name元素253即是提供者的名 稱。為了能夠偵測到相容的網路,用戶與伺服器最好對 . 於同一個提供者使用相同名稱。InstanceCount 255是特 定提供者類型的裝置數量。執行個體表(instance • table)257是網路/鑑別器組的列表,其中一組是用來描述 如何以指定裝置的方式建立遠端連線。HostAddressLen 259是指定網路主機位址263的長度。DiscriminatorLen 261是指定網路鑑別器265的長度。跟隨上述長度欄位 之後的是主機位址263的HostAddressLen位元組以及鑑 另1J 器 265 的 DiscriminatorLen 位元組。 參照第2圖。在步驟213,根據用戶的提供者列表接 收到協商要求後,伺服器會判斷其具備哪些與用戶所擁 有相同的RDMA通訊裝置。在步驟2 1 5,伺服器經由管 道將協商回應傳送給欲戶,其中包括共享提供者的列 表。在本發明之實施例中,此協商回應具有下列結構: typedef struct { LWIO_CONTROL_HEADER; • WCHAR SrvName[LWIO_MAX_HOST_NAME]; . UUID Key; UINT16 ProviderCount;
LwioAddressBlkt ProviderList[l]; } LwioNegotiateResponse_t; 第4B圖繪示本發明之實施例中的協商回應267之表 14 201240413 述式範例。除了 Length 27 1現在代表回應訊息267的大 小以外,控制標題269和協商要求相同。SrvName 273 存有伺服器的名稱。Key 275是由伺服器產生並供用戶 使用的GUID。用戶會利用共通的通訊裝置並透過新的 連線,而在認證要求中將Key傳回到伺服器;以下將提 供進一步的說明。ProviderCount 277是提供者列表279 當中的提供者數目。提供者列表279包含有伺服器與用 戶所共用的提供者之列表。在此無法保證用戶確實能夠 連上這些提供者。 參照第2圖。此時,伺服器與用戶具有共用的通訊裝 置資訊,而且已經定出共同提供者的最少列表。在步驟 217,用戶透過一個或一個以上的共用裝置建立起一個或 一個以上通往LWIO伺服器的RDMA連線。在本發明的 實施例中,用戶至伺服器的通訊是以下列程式碼定義: #defineLWIO_OPCODE_READ 0x0 #defineLWIO_OPCODE_WRITE 0x1 #defineLWIO_OPCODE_VEC_READ 0x2 #defineLWIO_OPCODE_VEC_WRITE 0x3 #defineLWIO_OPCODE_CLOSE 0x4 #defineLWIO_OPCODE_CANCEL 0x5 #defineLWIO_OPCODE_AUTH 0x6 #defineLWIO_OPCODE_REGISTER 0x7 #defineLWIO_0PCODE_CREDIT 0x8 #defineLWIO OPCODE INTERRUPT 0x9 15 201240413 以下經過定義的旗標是用來當作欲戶至伺服器通訊的 修飾詞(modifier)。 #defineLWIO_HDR_FLAG_INTERRUPT 0x80 #defineLWIO_HDR_FLAG_CONTROL 0x40 #defineLWIO HDR FLAG COLLAPSE IO 0x20 LWIO協定當中所對應的用戶至伺服器訊息是以共通 標題結構為其特點。在本發明的實施例中,共通標題具 有如下格式: typedef struct { UINT32 Length; union { UINT32 Status; struct { BYTE Opcode; BYTE Flags; BYTE Credits; BYTE Marker; }; }; struct { UINT16 Fid; UINT16 Sequence UINT32 Tid; }; UINT64 Offset; // data buffer block struct { PVOID64 DataVa; 16 201240413 union { UINT32 DataMh; struct { UINT16 NumPages; UINT16 PageSize; } Vec; }; }; // io status block union { struct { UINT32 IosMh; PVOID64 IosVa; }; struct { UINT32 ImmediateCookie; UINT64 Cookie; }; }; } LWIO_COMMON_HEADER; 連線認證 第5圖概括繪示本發明的實施例在LWIO協定之啟始 階段後由用戶與伺服器採取的步驟。如以上所述,在步 驟601,用戶透過共用通訊裝置建立通往伺服器的連 線。此時,用戶與伺服器彼此之間會針對此連線進行認 證。在步驟 603 ,用戶將認證要求訊息 (LWIO_OPCODE_AUTH)傳送到伺月艮器。認證的目的是 防止在伺服器端或用戶端發生詐騙情形。若未及時完成 認證,連線將會終止。 第6A圖繪示本發明的實施例中用戶認證要求訊息之 表述式範例。認證訊息617含有共用標題619,其後緊 17 201240413 接著LWIO—AUTH_PARAMS結構621。在標題619内’ Length 623是設定成傳送到伺服器的位元組數量(共用 標題619的大小加上LWIO_AUTH_PARAMS 621的大 小)。Opcode 625 設定成 LWIO_OPCODE_AUTH (0x6)。 Flags 627 設定成 LWIO_HDR_FLAG_INTERRUPT。在上 述及其它用戶協定訊息内,Cookie 629設定成用戶所選 定的數值,並在伺服器回應中傳回。Cookie數值通常是 用來配合伺服器回應的要求。DataVa 63 1設定成伺服器 必須設定的RDMA伺服器認證參數之位址。DataMh 633 存有與DataVa 631有關的RDMA記憶體控制代碼 (handle)。 在本發明之實施例中,LWIO_AUTH_PARAMS結構具 有下列格式: #define LWIO_AUTH_OPTION_END 0 #define LWIO_AUTH_OPTION_KEY 1 #define LWIO_AUTH_OPTION_SESSION_ID 2 #define LWIO_AUTH_OPTION_SIGNATURE 3 #define LWIO AUTH OPTION KEY LENGTH 16 #define LWIO_AUTH_OPTION_SESSION_ID_LENGTH 8 #define LWIO_AUTH_OPTION_SIGNATUREJLENGTH 16 typedef struct { UCHAR OptionCode; UCHAR OptionLen; BYTE OptionData[l]; } LWI0_AUTH_0PTI0NS, *LPLWIO_AUTH_OPTIONS; typedef struct { CHAR Magic[4]; //'LWIO' UINT16 Revld; UINT16 Endian; 18 201240413 UINT16 UINT16 UINT32 UINT32 UINT32 UINT16 UINT16 UINT16
PageSize;
BaseSequence; MaxRdmaWindowSize; MaxSendBufferSize; MaxRecvBufferSize; HeaderSize;
Credits;
RdmaReadSupported; LWIO_AUTH_OPTIONS Options[l]; } LWIO_AUTH_PARAMS, *LPLWIO_AUTH_PARAMS; 在認證訊息617内’ LWIO_AUTH_PARAMS 621構成 封包的第二個部分。Magic 635設定成‘ LWIO’ 。Revld 637 設定成 LWIO_REV_ID。Endian 639 設定成 sizeof(ULONG_PTR)。PageSize 641 設定成 CPU 分頁大 小(在32位元的機台上是4k’在64位元的機台上是8k)。
BaseSequence 643 設定成 〇。MaxRdmaWindowSize 645 應設定為用戶在RDMA傳輸中所能接受的最大位兀 組;在所述實施例中被設定成64k。MaxSendBufferSiZe 647應設定為用戶在單一要求中所能傳送到伺服器的最 大位元組;在所述實施例令被設定成lk。 MaxRecvBufferSize 049應設定為用戶指定從伺服裔接 收資料的最大位元組;在所述實施例中被設定成16位元 組。HeaderSize 651設定成LWIO標題619内的位元組 數量。Credits 652設定成用戶戶斤要的緩衝暫存區評點之 初始值。以下將進—步說明評點的使用。㈣器或許會 或許不會滿足用戶的要求。若用戶機台不支援RDMA的 讀取功能,則RdmaReadSupported 653設定為〇 ;若用 201240413 戶機台能支援 RDMA 的讀取功能,則 RdmaReadSupported 653 設定為 1 ° 部分的LWIO_AUTH_PARAMS結構是一組選項。這些 選項可以讓認證過程更具運用彈性。除了列表中的最後 一個選項LWIO_AUTH_OPTION_END之外,各選項均有 一個選項碼、長度及資料LWIO_AUTH_OPTION_END選 項只有選項碼,其當作選項列表結尾的空白選項。在認 證訊息當中,用戶機台可傳送下列選項給伺服器機台: 鍵值選項(LWIO_AUTH_OPTION_KEY)和簽名選項 (LWIO_AUTH_OPTION_SIGNATURE)〇 Key 655 設定成 先前由伺服器藉著協商回應所傳回的鍵值。Signature 657 是 LWI〇_AUTH_PARAMS 621 的 MD5 簽署 (signing),但其不包括簽名(signature)。 回到第5圖;在步驟605,若認證訊息所傳送的Key 符合透過管道在協商回應中傳回的鍵值,則認證過程中 伺服器與用戶之間的RDMA會以LWIO_AUTH_PARAMS 結構一其中包括8位元組Sessionld—回應到由用戶在認 證訊息中提供的DataVa位址及相關的DataMh記憶體控 制代碼。在步驟 607 , 伺服器送出 LWIO_MSG_STATUS_RESPONSE 而完成認證。 第6B圖繪示本發明的實施例中,伺服器所傳回的 LWI〇_AUTH_PARAMS 結構 659 之表述式範例。Magic 661 設定成 ‘ LWI0 ’ 。Revld 663 設定成 LWIO REV ID 。 Endian 665 設定成 20 201240413 sizeof(ULONG_PTR)。PageSize 667 設定成 CPU 分頁大 小。BaseSequence 669 應設為(用戶 BaseSequence + 1)。 MaxRdmaWindowSize 671應設定為用戶在RDMA傳輸 中所能接受的最大位元組;在所述實施例中被設定成 512k。MaxSendBufferSize 673應設定為伺服器在單一回 應中所能傳送到用戶的最大位元組;在所述實施例中被 設定成16位元組。MaxRecvBufferSize 675應設定為4司 服器預先指定從用戶接收資料的最大位元組;在所述實 施例中被設定成8k。Header Size 677設定成共同標題内 的位元組數量》Credits 679設定成伺服器可提供給用戶 的評點初始值》若伺服器機台不支援RDMA的讀取功 能,貝RdmaReadSupported 681設定為〇;若伺服器機 台能支援RDMA的讀取功能,則RdmaReadSupported 681 設定為1。伺服器可傳送下列選項:鍵值選項 (LWIO_AUTH_OPTION_KEY) 683、Sessionld 選項 (LWIO_AUTH_OPTION_SESSION_ID) 685 和簽名選項 (LWIO_AUTH_OPTION_SIGNATURE) 687。Key 683 設 定成先前由用戶藉著協商回應所送出的鍵值。用戶是利 用Sessionld 685數值而將用戶檔案登錄到伺服器;關於 此點,以下會有進一步說明》Signature 687 是 LWIO_AUTH_PARAMS的 MD5 簽署,但其不包括 Signature ° 在 本發明 之實施 例 中 , LWIO_MSG_STATUS_RESPONSE結構具有下歹丨J格式: 21 201240413 typedef struct _LWIO_IO_STATUS_BLOCK {
UnSTT32 Information; UINT32 Status; } LWIO_IO_STATUS_BLOCK,*LPLWIO_IO一STATUS一BLOCK; typedef struct _LWIO_MSG_STATUS_RESPONSE { UINT64 Cookie; LWIO_IO_STATUS一BLOCK Ios; }LWIO_MSG_STATUS_RESPONSE, *LPLMO_MSG_STATUS_RESPONSE; 第6C圖繪示本發明的實施例中,伺服器在完成認證 之後所傳回的 LWIO_MSG_STATUS_RESPONSE 689 之 表述式範例。Cookie 691設定成用戶機台在認證訊息標 題内所設定的 cookie值。Information 693設定成 LWIO_AUTH_PARAMS的位元組數量再加上8個位元 組。Status 695設定為0x0(代表成功)或0xC0000022(代 表「拒絕存取」)。 檔案登錄 回到第5圖。在步驟609,在用戶與伺服器彼此之間 的新連線進行認證時,用戶會開始登錄要在伺服器上使 用的檔案。除非用戶將欲使用的檔案登錄到伺服器’否 則不會透過網路連結來處理檔案的操作。 第7A圖繪示本發明的實施例中,用戶傳送到伺服器 的登錄檔案訊息之表述式範例。登錄訊息1含有共用 標題703,其後緊接著LWIO_FID_PARAMS結構705。 22 3 201240413
Length 707是設定成傳送到伺服器的位元組數量(標題 703 的大小加上LWIO—FID—PARAMS 705 的大小)。 Opcode 709 設定成 LWIO_OPCODE_REGISTER (0x7)。 Flags 711 設定成 LWIO_HDR—FLAG_INTERRUPT。在此 用戶訊息和後續的用戶訊息當中,Credits 713設定成在 用戶機台上進行中的I/O要求之數目。Credits欄位是告 知伺服器如何分配更多的評點給連線,進而能夠接受其 它尚未提出的I/O要求;關於此點,以下會有進一步的 說明。在任一時刻,尚未提出的用戶要求數目不可超過 “ Credits”數值。如同先前的作法,Cookie 7 1 5設定成 用戶指定的數值。 在本發明之實施例中,LWIO_FID_PARAMS結構 具有下列格式: typedef struct { SRV_RESUME_KEY ResumeKey; INT64 Sessionld; UINT32 Flags AndAttributes; } LWIO_FID_PARAMS, *LPLWIO_FID_PARAMS; 在登錄檔案訊息701的LWIO_FID_PARAMS 705中, ResumeKey 717是設定成藉由初始檔案存取通道傳回的 伺服器要求繼續鍵值。Sessionld 719設定成在連線認證 階段由祠服器傳回的 Sessionld。FlagsAndAttributes 721 設定成先前用來開啟檔案的[Win32 Create Flags]。 再次參照第 5圖;在步驟 611 ,伺服器以 23 201240413 LWIO_MSG_STATUS_RESPONSE當作回應而完成檔案 登錄作業。第7B圖繪示本發明的實施例中,由伺服器 傳回的 LWIO_MSG_STATUS_RESPONSE 723 之表述式 範例。Information 725設定成傳送I/O要求時所用到的 Fid(檔案識別碼)。Status 727設定為0x0(成功),或是在 失敗時所設定的NTSTATUS碼。Cookie 729設定成用戶 機台在登錄檔案訊息標題内所設定的cookie值。 I/O處理作業 此時已建立用戶連線,並已完成檔案的登錄作業,接 著開始進行LWIO協定的I/O處理階段。此LWIO協定 實施例的其中一項技術特點在於其為一種讀取和寫入的 非對稱I/O模式。讀取動作是利用RDMA來實作,寫入 動作則是利用傳送動作來實作。為了提供較佳的安全模 式,寫入動作不是利用RDMA來執行。若伺服器透露出 其在NIC上進行RDMA的位址空間,則會引發資料遭到 惡意用戶破壞的風險。在此種情況下,惡意的用戶可在 迴圈中針對某個伺服器的虛擬位址發出RDMA寫入動 作。由於伺服器位址空間是有限的,且在某點上伺服器 虛擬位址必須重新使用,使惡意的用戶最後得以在不同 的連線中利用相同的虛擬位址來劫取伺服器,因而造成 資料被寫入不同用戶所使用的伺服器缓衝暫存區。LWIO 協定當中的非對稱I/O模式可針對上述情況進行防護。 此為LWIO協定與別種RDMA型檔案傳輸協定一例如 24 201240413 DAFS—之間最主要的不同點。 返回參照第5圖;在步驟613,用戶開始發出I/O 處理要求。伺服器至用戶的I/O要求是藉由非輪詢模式 或輪詢模式而完成。在非輪詢模式中,完成I/O是以岔 斷作業為基礎,其利用一般的傳送/接收訊息。在輪詢模 式中,I/O完成是利用RDMA,而不是以岔斷作業為基 礎。 第8圖為流程圖,其根據本發明之實施例概括繪 示以LWIO伺服器為觀點、並以輪詢模式及非輪詢模式 完成I/O要求後所採取的步驟;用戶的I/O要求會指出 伺服器是否應傳回一項傳送後(post-send)(岔斷CPU作 業)訊息或RDMA訊息。在步驟 801,伺服器判斷 LWIO_HDR_FLAG_INTERRUPT旗標是否已設定於用戶 I/O要求訊息的共用標題内。若此旗標已被設定,則在 步驟 803伺服器會利用一般的傳送動作來傳送 LWIO_MSG_STATUS_RESPONSE,並藉以完成用戶要 求。若LWIO_HDR_FLAG_INTERRUPT旗標並未被設定 (輪詢模式),則在步驟805伺服器會進行RDMA作業來 傳送LWI0_I0_STATUS_BL0CK給用戶,以完成用戶要 求。 輪詢模式中的喚醒用戶作業 在輪詢模式中,用戶可能希望處於睡眠模式,同時等 待伺服器完成輸入/輸出(I/O)作業。此時,完成訊息是透 25 201240413 過RDMA而傳送到用戶機台;因此,吾人需要一種機制 來喚醒用戶機台,以便告知用戶作業已完成。若用戶機 台希望被喚醒,該用戶會送出伺服器在第8圖之步驟807 接收到的岔斷要求(LWIO_OPCODE_INTERRUPT)訊息 給词服器。在4司服Is上完成I/O要求之前’接收岔斷要 求的伺服器不會送出回應(步驟809)。在步驟811,作業 完成會經由一般傳送而被傳送到用戶,並岔斷用戶機 台。對某一個連線而言,同一時間只能存在一個岔斷訊 息。 第9A圖繪示本發明的實施例中,用戶傳送到伺服器 的岔斷要求訊息之表述式範例。此訊息包含共用標題 815。Opcode 817 設定成 LWIO_OPCODE_REGISTER (0x9)。Flags 819 設定成(LWIO_HDR_FLAG__INTERRUPT I LWIO_HDR_FLAG一CONTROL) (OxCO) 0 Credits 821 設 定成用戶機台上的未定I/O要求,Cookie 823則設定成 用戶指定的數值。 處理完另一個I/O要求之後,伺服器回應岔斷要求訊 息。第9B圖繪示本發明的實施例中,由伺服器送出的 LWIO_MSG_STATUS_RESPONSE 訊息 825 之表述式範 例。Information 827 設定成 0。Status 829 設定為 0x0(成 功),或是在失敗時所設定的NTSTATUS碼。Cookie 83 1 設定成用戶機台在岔斷要求之標題内所設定的c〇okie 值0 26 201240413 評點 如上述内容,所有的用戶至伺服器的1/〇要求均具有 標題内的評點欄位。評點攔位是為伺服器指出關於用戶 所欲傳送給伺服器的未定1/0要求之個數。評點的管理 工作是由伺服器負責《評點能為沖式緩衝暫存區的問題 提供新的解決方案。若用戶目前擁有N個評點,則其必 須發出N+1個接收緩衝暫存區,以便讓伺服器送出評點 訊息給該用戶。在任一時刻,用戶連線上的伺服器只有 一個未定評點要求。評點訊息始終是以岔斷模式進行傳 送。 評點交易包含伺服器在用戶與伺服器之間啟用並完成 的三方交握程序。第10圖概括繪示本發明之實施例中構 成評點交易的步驟。在步驟100 1,伺服器透過用戶連線 送出delta評點要求訊息。 第Π A圖繪示本發明的實施例中伺服器deita評點訊 息之表述式範例。此訊息具有 LWIO—MSG一STATUS—RESPONSE 1011 的格式。Credits 疋對應到緩衝暫存區。Informati〇n 1〇13設定成用戶應該 放棄的評點(為一負數)或伺服器剛分配給用戶使用的評 點(為一正數)(額外緩衝暫存區)。Status 1015設定成 LWIO一N〇TIFY_CREDIT (0x1)。Cookie 1017 設定成 0。 返回參照第10圖,用戶收到來自於伺服器的評點訊 息° 此用戶必須透過相同的連線以 LWI〇_〇pC〇de_creDIT訊息回應伺服器。此訊息會表 27 201240413 示釋出單獨評點,或是告知伺服器用戶已使用剛分配的 評點。若伺服器評點訊息裡的Information攔位含有負數 -N(步驟 1003), 則用戶會送出 N 個 LWIO_〇PCODE_CREDIT訊息(用戶必須放棄的每個評 點均對應一個訊息)一標示為步驟1005。若Informati〇n 攔位為正數,則用戶只會送出一個 LWIO—OPCODE一CREDIT 訊息一標示為步驟 1〇〇7。
第1圖繪示本發明的實施例中,由用戶送出的 LWIO_OPCODE一CREDIT訊息之表述式範例。 LWIO_OPCODE_CREDIT訊息1019包含共用標題 1021。Opcode 1023 設定成 LWIO_〇PC〇DE_CREDIT (0x8) 。 Flags 1025 設定成 LWIO_HDR_FLAG_INTERRUPT (0x80)。Credits 1027 設 定成在用戶機台上進行中的1/0要求之數目。c〇〇kie 1 03 1設定成用戶指定的數值。若用戶接收到正的deha a平點sil息’則Ο ffs et 1029的上層32位元會被設定成伺 服器分配給用戶而用戶並未使用的評點。一旦用戶傳回 到此欄位的數值大於〇,伺服器通常在送出至少一個負 的更新A息之剛不會傳送另一個正的更新訊息。在典型 情況下,用戶會傳回〇。 如上所述,若用戶收到一個負的(_N)delta評點訊息, 則該用戶必須傳送N個評點訊息到伺服器—各訊息對應 用戶所放棄的每個評點。此時,〇ffset 1〇29的上層32 位元設定成·Ν,-(N-1),,..,]。當伺服器接收到〇ffset 28 201240413 1029的上層32位元設定成-1的用戶評點訊息時,該伺 服器會假定用戶已完成伺服器評點訊息的處理工作,並 有資格收到新的評點訊息。 參照第10圖,如步驟1009所示,伺服器送出一個 LWIO—MSG—STATUS—RESPONSE訊息給用戶,以完成三 方交握程序。第11C圖繪示本發明的實施例中,由伺服 器傳回的 LWIO_MSG_STATUS—RESPONSE 1033 之表述 式範例。Information 1037設定成 0。若用戶送出的 LWIO_OPCODE_CREDIT訊息之標題内的Offset的上層 32位元大於或等於0,則Status 1039設定成0x0來表示 成功。若Offset的上層32位元被設為一個負數,則伺 服器會將 Status 1039 設定成 LWIO_CREDIT_NOTIFY, 以便讓用戶能收回評點。Cookie 1035設定成用戶機台在 LWIO—OPCODE—CREDIT訊息之共用標題内所設定的 cookie 值 〇 關閉 關閉訊息是用來終止在登錄階段經過交換的特定Fid 之I/O處理。一旦伺服器有所回應,除非Fid重新再使 用,否則任何要求均會失敗。第12 A圖繪示本發明的實 施例中,由用戶送出的關閉訊息之表述式範例。關閉訊 息1041包含共用標題 1043。Opcode 1045設定成 LWIO_OPCODE_CLOSE (0x4)。Flags 1047 設定成 LWIO_HDR_FLAG_INTERRUPT (0x80)。Credits 1049 設 29 201240413 定成在用戶機台上進行中的I/O要求之數目。Cookie 1053設定成用戶指定的數值。Fid 1051設定成即將要關 閉的檔案File Id。 伺服器以 LWIO_MSG_STATUS_RESPONSE 當作回 應。第12B圖繪示本發明的實施例中,伺服器所傳回的 關閉完成 LWIO_MSG_STATUS_RESPONSE 1055 之表述 式範例。Information 1059 設定成 0。Status 1061 設定成 0以表示成功。Cookie 1057設定成用戶機台在關閉要求 内所設定的cookie值。 取消 取消訊息是用來終止在登錄階段經過交換的特定Fid 之I/O處理。發出取消之後,伺服器即完成要求。然而’ 無法取消的I/O要求仍然可在伺服器上執行。第13 A圖 繪示本發明的實施例中,由用戶送出的取消訊息之表述 式範例。取消訊息1063包含共用標題1065»Opcode 1067 設定成 LWIO_OPCODE_CANCEL (0x5)。Flags 1069 設 定成 LWIO_HDR_FLAG_INTERRUPT (0x80)。Credits 1071設定成在用戶機台上進行中的I/O要求之數目。 Cookie 1075設定成用戶指定的數值。Fid 1073設定成被 取消的檔案File Id。 伺服器以LWIO_MSG_STATUS_RESPONSE訊息當作 回應並完成取消動作。第13B圖繪示本發明的實施例 中 ,伺服 器所傳 回的取 消完成 30 201240413 LWI〇_MSG_STATUS_RESPONSE 1077 之表述式範例。 Information 1081 設定成 0。Status 1083 設定成 0 以表示 成功。Cookie 1079設定成用戶機台在取消要求内所設定 的 cookie 值。 讀取 讀取訊息是用來取得在登錄階段經過交換的特定Fid 之資料。對小於1千位元組的讀取要求而言,若用戶機 台的緩衝暫存區沒有登錄NIC,則資料會收錄在内部預 先登錄的緩衝暫存區,而且在收到伺服器傳送來的資料 之後,一份複本會存入使用者緩衝暫存區。如此進行處 理的原因在於:複製少量的資料會比登錄少量的使用者 緩衝暫存更有效率。讀取大量時會登錄使用者緩衝暫 存’且資料是直接藉由RDMA寫入動作而被接收。根據 單獨一個讀取要求所進行的資料讀取量會受到 MaxRdmaWindowSize 的限制。 第14A圖和第14C圖分別繪示本發明的實施例中,由 用戶送出的讀取訊息之表述式範例’其中第14A圖是採 用非輪詢模式的情況,第14C圖則是採用輪詢模式的情 况°貝取5孔息1401包含共用標題1403。Length 1405設 定成從相關檔案讀取的位元組數量。〇pc〇de 14〇7設定 成 LWl〇_〇pCODE_READ (〇x〇)。〇ffset 1417 設定成開 始進行讀取的位元组位置。Marker 1413設定成〇xFF。 在輪詢模式1427中,Flags 1409和1427是設定成〇XO ; 31 201240413 在非輪詢模式 1409 則 是設定成 LWIO_HDR_FLAG_INTERRUPT (0x80)。Credits 1411 設 定成在用戶機台上進行中的I/O要求之數目。Fid 1415 設定成發出I/O要求的檔案File Id。DataVa 1419設定成 針對資料進行RDMA讀取的位址。DataMh 1421設定成 相關的記憶體控制代碼。 在非輪詢模式裡,ImmediateCookie 1423 和 Cookie 1425是設定成用戶指定的數值。在此種情況下,祠服器 可透過一般的傳輸方 式送出 LWIO_MSG_STATUS_RESPONSE來完成讀取要求’或者 在讀取成功時利用RDMA方式送出即時資料°因此’ RDMA寫入動作的即時資料被設定成讀取要求的
ImmediateCookie數值。在輪詢模式裡’ I〇sVa 143 1疋'«又 定成針對伺服器回應狀態(lwio_i〇_status_block) 進行RDMA的位置。IosMh 1429則是設定成相關的記憶 體控制代碼。 在非輪詢模式裡,伺服器首先會針對讀取的資料進行 RDMA 。隨後,伺 月艮 器可以 LWIO_MSG_STATUS_RESPONSE 當作回應’或者以 RDMA讀取資料送出即時資料;此時’即時資料是設定 成讀取要求的ImmediateCookie數值。第14B圖繪示本 發明之非輪詢模式實施例中,祠服器所傳回的 LWIO_MSG_STATUS_RESPONSE 1433 之表述式範例 ° Information 1437設定成讀取到的位元組數量。Status 32 201240413 M39設定為〇以代表成功,或是在失敗時設定為 NTSTATUS碼。Cookie 1435設定成用戶機台在讀取 標題内所設定的co〇kie值。 在輪詢模式裡’伺服器首先會針對讀取的資料進行 RDMA。隨後,伺服器以RDMa的方式傳= LWIOj〇_STATUS_BLOCK 給用戶 本發明的實施例中,由 機台。第14D圖繪示 伺服器送出的 LWIO_I〇_STATUS BLOCK 1441 之表述式範例。
Infomation 1443設定成讀取到的位元組數量。Su… 1445設定為〇以代表成功,或是在失敗時設定為 NTSTATUS 碼。 寫入 寫入訊息是用來存入在檔案登錄時經過交換的特定 Fid之資料。所有寫入的資料均是利用一般的傳送動作 進行傳輸。寫入資料的量是受到伺服器 MaxRecvBufferSize大小的限制。若用戶送出的資料量大 於此設定值,則連線將會終止。 第15A圖和第15C圖分別繪示本發明的實施例中,由 用戶送出的寫入訊息之表述式範例,其+帛15A圖是採 用非輪詢模式的情況’第15C圖則是採用輪詢模式的情 況。寫入訊息1501包含共用標題15〇3。卜叫讣15〇5設 定成資料被寫入的位元組數量。〇pc〇de 15〇7設定成 LWIO_OPCODE_WRITE (〇xl)e 〇ffset 1517 設定成開始 33 201240413 進行檔案資料寫入的位元組位置。在輪詢模式1529中’ Flags 1509和1529是設定成0x0 ;在非輪詢模式1509 則是設定成 LWIO—HDR—FLAG一INTERRUPT (0x80)。 Marker 1513設定成OxFF。Credits 1511設定成在用戶機 台上進行中的I/O要求之數目。Fid 1515設定成發出I/O 要求的檔案File Id。寫入的資料1527會緊接著寫入訊 息的共用標題1503。 在非輪詢模式裡,Cookie 1525是設定成用戶指定的數 值。在輪詢模式裡,IosVa 1 533是設定成伺服器以RDMA 傳送回應狀態(LWIO_IO_STATUS_BLOCK)的位置; IosMh 1 53 1則是設定成相關的記憶體控制代碼。 在非輪詢模式裡,伺服器是以 LWIO_MSG_STATUS_RESPONSE 來回應寫入訊息。第 15B圖繪示本發明的實施例中,由伺服器傳送的 LWIO_MSG_STATUS_RESPONSE 1535 之表述式範例。 Information 1539是設定成寫入的位元組數量。Status 1541設定為 0以代表成功,或是在失敗時設定為 NTSTATUS碼。Cookie 1537設定成用戶機台在寫入訊息 標題内所設定的cookie值。在輪詢模式裡,伺服器是針 對 LWIO_IO_STATUS_BLOCK 進行 RDMA» 第 15D 圖繪 示本發明的實施例中,由伺服器送出的 LWIO_IO_STATUS_BLOCK 1543 之表述式範例。 Information 1 545是設定成寫入的位元組數量。Status 1547設定為 〇以代表成功,或是在失敗時設定為 34 201240413 NTSTATUS 碼。 向量化讀取 向量化讀取是用來取得在登錄階段經過交換的特定 Fid之資料,並用來將單頁的資料分散成數個在要求者 上的區段。讀取到的全部的資料會經由RDMA寫入動作 而傳送給要求者,其中伺服器會為每個讀取區段執行 RDMA寫入動作。從磁碟讀到的資料均是相互鄰接。讀 取的資料量會受到能以單一要求來描述的目的分頁 (destination page)之最大數目的限制。此限制是祠服器 MaxRecvBufferSize 除 以 sizeof(LWIO_RDMA_REGION)。LWIO_RDMA_REGION 的結構如以下之說明。 第1 6A圖和第16C圖分別繪示本發明的實施例中,由 用戶送出的向量化讀取訊息之表述式範例,其中第1 6 A 圖是採用非輪詢模式的情況,第16C圖則是採用輪詢模 式的情況。讀取訊息1401包含有共用標題1603,其後 緊接著一個或數個LWIO_RDMA_REGION區段1605和 1607。在標題1603内,Length 1609是被設定成從檔案 讀出的資料位元組數目。Opcode 1611 設定成 LWIO_OPCODE_VEC_READ (0x2)。Offset 1621 設定成 開始進行檔案資料讀取的位元組位置。在輪詢模式163 1 中,Flags 1613和1631是設定成0x0;在非輪詢模式1613 則是設定成 LWIO_HDR_FLAG_INTERRUPT (0x80)。 35 201240413
Marker 1617設定成OxFF。Credits 1615設定成在用戶機 台上進行中的I/O要求之數目。Fid 1 6 1 9設定成發出I/O 要求的檔案 File Id。NumPages 1623 是設定成 LWIO_RDMA_REGION的數目,其在共用標題1603之 後。PageSize 1 625設定成本機分頁大小(以位元組為單 位)。 在非輪詢模式裡,ImmediateCookie 1627 和 Cookie 1 629是設定成用戶指定的數值。在此種情況下,伺服器 可透過一般的 傳輸方 式送出 LWIO_MSG_STATUS_RESPONSE來完成向量化讀取要 求,或者在讀取成功時利用RDMA方式送出即時資料。 因此,RDMA寫入動作的即時資料被設定成讀取要求的 ImmediateCookie 1627 數值。在輪詢模式裡,IosVa 1635 是設定成伺服器以 RDMA 傳送回應狀態 (LWIO—IO_STATUS_BLOCK)的位置;IosMh 1633 則是設 定成相關的記憶體控制代碼。 共用標題 1603 之後會緊接著數量足夠的 LWIO—RDMA—REGION區段,以涵蓋要求的長度。所有 的中介區段均必須是一個分頁的大小。最後一個區段可 以小於一個分頁,但其大小必須是後段磁區大小的整數 倍。在本發明之實施例中,LWIO_RDMA_REGION具有 下列格式: typedef volatile struct { 36 201240413 PVOID64 DataVa; UINT32 DataMh; UINT32 Length; } LWIO_RDMA_REGION; 第一個 LWIO_RDMA—REGION 是對應第一個 PageSize 位元組讀取,第二個LWIO_RDMA_REGION是對應第二 個PageSize位元組讀取,其餘依此類推。DataVa 163 7 設定成標示存放讀取資料的分頁之起點位置。DataMh 1639設定成DataVa 1637的記憶體控制代碼。Length 1641設定成所有區段(除最後一個區段之外)的PageSize 1625,其中Length可小於一個分頁,但其大小必須是後 段磁區大小的整數倍。 在非輪詢模式裡,伺服器首先會針對讀取的資料進行 RDMA 。隨 後, 伺 服 器可以 LWIO_MSG_STATUS_RESPONSE 當作回應,或者以 RDMA讀取資料送出即時資料;此時,即時資料是設定 成讀取要求的ImmediateCookie數值。第16B圖繪示本 發明之非輪詢模式實施例中’伺服器所傳回的 LWIO_MSG_STATUS_RESPONSE 1643 之表述式範例。
Information 1647設定成讀取到的位元組數量。Status 1649設定為0以代表成功,或是在失敗時設定為 NTSTATUS碼。Cookie 1645設定成用戶機台在向量化讀 取訊息標題内所設定的cookie值。 在輪詢模式裡,伺服器首先針對讀取資料進行 RDMA,而後再進行 LWIO_IO_STATUS_BLOCK 的 37 201240413 RDMA。第1 6D圖繪示本發明的實施例中,由伺服器送 出的 LWIO—IO一STATUSjbl〇ck 1651 之表述式範例。
Information 1653設定成讀取到的位元組數量。以討以 1655設定為〇以代表成功,或是在失敗時設定為 NTSTATUS 碼。 向量化寫入 向量化寫入訊息是用來集中寫入在檔案登錄時經過交 換的特定Fid之資料。所有寫入的資料均是利用一般的 傳送動作進行傳輸。寫入資料的量是受到伺服器 MaxRecvBufferSize大小的限制。若用戶送出的資料量大 於此設定值’則連線將會終止。 第1 7A圖、第17B圖和第17C圖分別繪示本發明的實 施例令,由用戶送出的向量化讀取訊息之表述式範例, 其中第17A圖是採用非輪詢且非收合模式的情況,第 17B圖疋採用非輪詢且收合模式的情況,第丨圖則是 採用輪詢且收合模式的情況。 寫入訊息1701包含有共用標題17〇3,其後緊接著被 寫入的資料1705。在共用標題1703内,Length 1707是 被設定成寫入資料的位元組數目^ 〇pc〇de 17〇9設定成 LWIO一〇PCODE_WRITE (〇χ3)β ⑽如 1719 設定成開始 進行檔案資料寫入的位元組位置。Marker丨7丨5設定成 OxFF。Credits 1713設定成在用戶機台上進行中的"ο 要求之數目。Fid 1 7 1 7設定成發出ι/〇要求的檔案FHe 38 201240413
Id。
Flags 1711、1721和1727設定成代表輪詢1727的 0x0,否貝|J 設定成 LWIO_HDR_FLAG_INTERRUPT (0x80) 1711。若是設定成 LWIO_HDR_FLAG_INTERRUPT (0x80) 1711 ,貝|J 旗標亦包含 LWIO_HDR_FLAG_COLLAPSE 1721,以表示寫入的所有分頁均含有相同的資料,如此 即可讓只有單一分頁的資料被送出。上述是最佳化處理 程序,其能減少傳送多餘資料的情況。若登錄的檔案旗 標包含 FILE_NO_INTERMEDIATE_BUFFERING (0x8), 且在認證階段相互交換的PageSizes是彼此的偶數倍, 貝J 只能使用 LWIO_HDR_FLAG_COLLAPSE。在收合 I/O 的情況裡,NumPages 1723是設定成由I/O所展開之資 料分頁的數目。由於Length參數的緣故,最後一個分頁 可以是部分分頁。PageSize 1725設定成本機分頁大小(以 位元組為單位)。在輪詢模式裡,IosVa 173 1設定成針對 伺服器回應狀態(LWIO_IO_STATUS_BLOCK)進行 RDMA的位置。IosMh 1729是相關的記憶體控制代碼。 在非輪詢模式裡,對非收合與收合I/O兩者而言’祠 服器是以LWIO_MSG_STATUS_RESPONSE來回應寫入 訊息。 第1 7D圖繪示本發明的實施例中,由伺服器傳送的 LWIO MSG STATUS RESPONSE 1733 之表述式範例。 mmm ·—
Information 1 737是設定成寫入的位元組數量。Status 1739設定為0以代表成功,或是在失敗時設定為 39 201240413 NTSTATUS碼。Cookie 1735設定成用戶機台在寫入訊息 標題内所設定的cookie值。 在輪詢模式裡,對非收合與收合I/O兩者而言,伺服 器會進行 LWIO_IO_STATUS_BLOCK 的 RDMA。第 17E 圖繪示本發明的實施例中,由伺服器送出的 LWIO_IO_STATUS_BLOCK 1741 之表述式範例。 Information 1743是設定成寫入的位元組數量。Status 1745設定為 0以代表成功,或是在失敗時設定為 NTSTATUS 碼。 結論 儘管以上已繪示及說明本發明之實施例,但應瞭解的 是,在不脫離本發明的前提下仍可作許多變更。同樣地, 在此描述的任何處理步驟均可與其它步驟對換而達到相 同的功效。此外,上述實施例並非用以窮舉或限定本發 明如所揭示之確切形式。相反地,本發明實則涵蓋落入 其精神及範圍内的所有變更、替代及等效結構或步驟。 【圖式簡單說明】 雖然本發明之技術特點已詳載於所附之申請專利範 圍,但藉由以下的詳細說明和相關圖式,當能更加明瞭 本發明及其目的和優點;關於圖式: 第1圖概括繪示包含有兩台具備RDMA傳輸功能的用 40 201240413 戶-伺服器S十异環境之實施例,且在該計算環境内可實施 本發明之技術態樣; 第2圖為流程圖,其概括繪示本發明的LWl〇協定之 貫施例在探索階段所採取的起始步驟; 第3圖概括繪示本發明的伺服器要求繼續鍵值之實施 例的表述式; 第4A圖概括繪示本發明的用戶協商要求訊息之實施 例的表述式; 第4B圖概括繪示本發明的伺服器協商回應之實施例 的表述式; 第5圖為流程圖,其概括繪示本發明的lWi〇協定實 施例在探索階段所採取的其它步驟; 第6A圖概括繪示本發明的用戶認證要求訊息之實施 例的表述式; 第6B圖概括繪示本發明的伺服器認證回應之實施例 的表述式; 第6C圖概括繪示根據本發明伺服器完成認證的狀態 回應之實施例的表述式; 第7A圖概括繪示本發明的用戶登錄檔案訊息之實施 例的表述式; 第7B圖概括繪示根據本發明伺服器完成檔案登錄的 狀態回應之實施例的表述式; 第8圖為流程圖,其根據本發明之實施例概括繪示以 輪詢模式及非輪詢模式完成1/〇要求後所採取的步驟; 41 201240413 第9A圖概括繪示本發明的用戶岔斷要求訊息之實施 例的表述式; 第9B圖概括繪示根據本發明伺服器完成岔斷要求的 狀態回應之實施例的表述式; 第10圖為流程圖,其根據本發明之實施例概括繪示在 伺服器-用戶評點交易過程所採取的步驟; 第11A圖概括繪示本發明的伺服器deha評點訊息之 實施例的表述式; 第11B圖概括繪示本發明的用戶對伺服器評點訊息之 實施例的表述式; 第11C圖概括繒示根據本發明伺服器完成用戶-伺服 器評點交易的狀態回應之實施例的表述式; 第1 2 A圖概括續示本發明的用戶關閉要求訊息之實施 例的表述式; 第12B圖概括繪示根據本發明伺服器完成關閉要求的 狀態回應之實施例的表述式; 第13 A圖概括繪示本發明的用戶取消要求訊息之實施 例的表述式; 第13B圖概括繪示根據本發明伺服器完成取消要求的 狀態回應之實施例的表述式; 第14A圖概括繪示本發明在非輪詢模式情況下的用戶 讀取要求訊息之實施例的表述式; 第14B圖概括繪示本發明在非輪詢模式情況下完成讀 取要求的伺服器狀態回應之實施例的表述式; 42 201240413 第mc圖概括繪示本發明在.輪詢模式情況下的用戶讀 取要求訊息之實施例的表述式; 第14D圖概括繪示本發明在輪詢模式情況下完成讀取 要求的伺服器I/O狀態區塊之實施例的表述式; 第i5A圖概括繪示本發明在非輪詢模式情況下的用戶 寫入要求訊息之實施例的表述式; 第15B圖概括繪示本發明在非輪詢模式情況下完成寫 入要求的伺服器狀態回應之實施例的表述式. 第1 5C圖概括繪π本發明在輪詢模式情況下的用戶寫 入要求訊息之實施例的表述式; 第15D圖概括繪示本發明在輪詢模式情況下完成寫入 要求的4司服器I/O狀態區塊之實施例的表述式; 第1 6A圖概括繪示本發明在非輪詢模式情況下的用戶 向量化讀取要求訊息之實施例的表述式; 第1 6B圖概括繪不本發明在非輪詢模式情況下完成向 量化讀取要求的伺服器狀態回應之實施例的表述式; 第16C圖概括繪示本發明在輪詢模式情況下的用戶向 量化讀取要求訊息之實施例的表述式; 第1 6D圖概括繪示本發明在輪詢模式情況下完成向量 化讀取要求的伺服器I/O狀態區塊之實施例的表述式; 第1 7A圖概括繪示本發明在非輪詢模式及非收合 (non-collapsed)情況下的用戶向量化寫入要求訊息之實 施例的表述式; 第1 7B圖概括繪示本發明在非輪詢模式及收合 43 201240413 (collapsed)情況下的用戶向量化寫入要求訊息之實施例 的表述式; 第17C圖概括繪示本發明在輪詢模式及收合情況下的 用戶向量化寫入要求訊息之實施例的表述式; 第1 7D圖概括繪示本發明在非輪詢模式情況下完成向 量化寫入要求的伺服器狀態回應之實施例的表述式;及 第17E圖概括繪示本發明在輪詢模式情況下完成向量 化寫入要求的伺服器I/O狀態區塊之實施例的表述式。 【主要元件符號說明】
101 主機A 103 LWIO用戶應用程式 105 核心模式I/O讀取 107 緩衝暫存區 /寫入服務 109 網路介面卡(NIC) 111 NIC 113 NIC 117 RDMA通道 119 非RDMA網路連 121 主機B 結 123 LWIO伺服器 125 SMB伺服器 127 緩衝暫存區 129 檔案系統 131 硬碟 133 NIC 135 NIC 137 NIC 44

Claims (1)

  1. 201240413 七、中請專利範圍·· 1. 一種用於管理一輸入/輸出卸載協定之緩衝器之方 々法’該 方法包含以下步驟: 由一祠服器將一 delta評點訊息傳送給—用冷 扣尸,该訊 息包含:設有評點之一數目的一資訊櫚位,其十若該數 目為負數_N,則該祠服器要求該用戶收回n個評點; 若評點之該數字為一負數_N,則由該用戶傳送1^個 坪點訊息到該伺服器,否則由該用戶傳送一個評點訊息 到該伺服器;及 為該用戶所傳送的各個評點,由該伺服器將一狀態 回應訊息傳送給該用戶。 45
TW101121785A 2003-12-31 2004-07-21 Lightweight input/output protocol TW201240413A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/749,959 US7698361B2 (en) 2003-12-31 2003-12-31 Lightweight input/output protocol

Publications (1)

Publication Number Publication Date
TW201240413A true TW201240413A (en) 2012-10-01

Family

ID=34701133

Family Applications (2)

Application Number Title Priority Date Filing Date
TW093121799A TW200522630A (en) 2003-12-31 2004-07-21 Lightweight input/output protocol
TW101121785A TW201240413A (en) 2003-12-31 2004-07-21 Lightweight input/output protocol

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW093121799A TW200522630A (en) 2003-12-31 2004-07-21 Lightweight input/output protocol

Country Status (17)

Country Link
US (2) US7698361B2 (zh)
EP (1) EP1700264A4 (zh)
JP (1) JP4564970B2 (zh)
KR (1) KR101084897B1 (zh)
CN (1) CN101375263B (zh)
AU (1) AU2004279182B2 (zh)
BR (1) BRPI0406413A (zh)
CA (1) CA2501521A1 (zh)
IL (1) IL168595A (zh)
MX (1) MXPA05006638A (zh)
MY (2) MY158076A (zh)
NO (1) NO20052054L (zh)
NZ (2) NZ580159A (zh)
RU (2) RU2388039C2 (zh)
TW (2) TW200522630A (zh)
WO (1) WO2005067430A2 (zh)
ZA (1) ZA200503161B (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529778B1 (en) 2001-12-12 2009-05-05 Microsoft Corporation System and method for providing access to consistent point-in-time file versions
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7617256B2 (en) * 2004-07-19 2009-11-10 Microsoft Corporation Remote file updates through remote protocol
US20060168094A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation DIRECT ACCESS OF SCSI BUFFER WITH RDMA ATP MECHANISM BY iSCSI TARGET AND/OR INITIATOR
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US7549037B1 (en) * 2005-09-01 2009-06-16 Symantec Operating Corporation Efficient off-host backup of a file set clone
US8151116B2 (en) * 2006-06-09 2012-04-03 Brigham Young University Multi-channel user authentication apparatus system and method
EP2047379B1 (en) * 2006-07-27 2012-02-08 ConteXtream Ltd. Distributed edge network
US7836143B2 (en) 2007-04-25 2010-11-16 International Business Machines Corporation Message communications of particular message types between compute nodes using DMA shadow buffers
US8325633B2 (en) 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7827024B2 (en) 2007-05-09 2010-11-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7966618B2 (en) * 2007-05-29 2011-06-21 International Business Machines Corporation Controlling data transfers from an origin compute node to a target compute node
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7921428B2 (en) 2007-06-18 2011-04-05 International Business Machines Corporation Multi-registration of software library resources
US8478834B2 (en) 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8959172B2 (en) 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US7805546B2 (en) * 2007-07-27 2010-09-28 International Business Machines Corporation Chaining direct memory access data transfer operations for compute nodes in a parallel computer
US8929372B2 (en) * 2007-10-30 2015-01-06 Contextream Ltd. Grid router
US8467295B2 (en) 2008-08-21 2013-06-18 Contextream Ltd. System and methods for distributed quality of service enforcement
IT1391040B1 (it) * 2008-10-01 2011-10-27 St Microelectronics Srl Procedimento per eseguire operazioni in reti di comunicazione, rete di comunicazione e prodotto informatico relativi
US8521821B2 (en) * 2009-03-17 2013-08-27 Brigham Young University Encrypted email based upon trusted overlays
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8806030B2 (en) * 2010-12-06 2014-08-12 Microsoft Corporation Multichannel connections in file system sessions
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
FR2973185B1 (fr) * 2011-03-22 2013-03-29 Sagem Defense Securite Procede et dispositif de connexion a un reseau de haute securite
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
KR20140065009A (ko) * 2011-10-27 2014-05-28 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 고속 분배 방법 및 장치
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
CN102708062A (zh) * 2012-04-10 2012-10-03 深圳市佳信捷电子有限公司 基于数据块的多媒体存储方法和装置
US9111081B2 (en) 2012-06-26 2015-08-18 International Business Machines Corporation Remote direct memory access authentication of a device
US9251201B2 (en) * 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US9986028B2 (en) * 2013-07-08 2018-05-29 Intel Corporation Techniques to replicate data between storage servers
AU2013245529A1 (en) * 2013-10-18 2015-05-07 Cisco Technology, Inc. Network Interface
US20150326684A1 (en) * 2014-05-07 2015-11-12 Diablo Technologies Inc. System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access
CN104202391B (zh) * 2014-08-28 2018-09-25 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合系统间的rdma通信方法
RU2599937C1 (ru) * 2015-03-26 2016-10-20 Общество с ограниченной ответственностью "Научно-производственное предприятие "Цифровые решения" Способ предотвращения сбоев в локальной компьютерной сети, вызванных возникновением неправильно настроенных узлов
US9952797B2 (en) 2015-07-31 2018-04-24 Netapp, Inc. Systems, methods and devices for addressing data blocks in mass storage filing systems
US10257273B2 (en) * 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
RU2638781C2 (ru) * 2016-09-29 2017-12-15 Общество с ограниченной ответственностью "ГРЭК" Способ организации прямого доступа в память при передаче информации между физическими объектами
JP2019016101A (ja) 2017-07-05 2019-01-31 富士通株式会社 情報処理システム、情報処理装置、および情報処理システムの制御方法
US10523675B2 (en) * 2017-11-08 2019-12-31 Ca, Inc. Remote direct memory access authorization
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
CN109377778B (zh) * 2018-11-15 2021-04-06 浪潮集团有限公司 一种基于多路rdma和v2x的协同自动驾驶系统及方法
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10612A (en) * 1854-03-07 Seaman
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
US6014681A (en) * 1997-07-15 2000-01-11 Microsoft Corporation Method for saving a document using a background save thread
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6219761B1 (en) * 1998-05-06 2001-04-17 International Business Machines Corporation Load/store assist engine
US6356863B1 (en) * 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
AU7624100A (en) * 1999-09-29 2001-04-30 Cyberset Technologies, Inc. Method and apparatus for an active file system
US6718370B1 (en) * 2000-03-31 2004-04-06 Intel Corporation Completion queue management mechanism and method for checking on multiple completion queues and processing completion events
US7103626B1 (en) * 2000-05-24 2006-09-05 Hewlett-Packard Development, L.P. Partitioning in distributed computer system
JP4192416B2 (ja) * 2000-06-08 2008-12-10 株式会社日立製作所 計算機システムおよびそのデータ転送方法
US7313614B2 (en) * 2000-11-02 2007-12-25 Sun Microsystems, Inc. Switching system
WO2002037225A2 (en) * 2000-11-02 2002-05-10 Pirus Networks Switching system
US6891635B2 (en) * 2000-11-30 2005-05-10 International Business Machines Corporation System and method for advertisements in web-based printing
US6976174B2 (en) * 2001-01-04 2005-12-13 Troika Networks, Inc. Secure multiprotocol interface
US6898638B2 (en) * 2001-01-11 2005-05-24 International Business Machines Corporation Method and apparatus for grouping data for transfer according to recipient buffer size
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US6898740B2 (en) * 2001-01-25 2005-05-24 Hewlett-Packard Development Company, L.P. Computer system having configurable core logic chipset for connection to a fault-tolerant accelerated graphics port bus and peripheral component interconnect bus
US7401126B2 (en) * 2001-03-23 2008-07-15 Neteffect, Inc. Transaction switch and network interface adapter incorporating same
US20020144037A1 (en) * 2001-03-29 2002-10-03 Bennett Joseph A. Data fetching mechanism and method for fetching data
US8051212B2 (en) * 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US20020184362A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation System and method for extending server security through monitored load management
US6832297B2 (en) * 2001-08-09 2004-12-14 International Business Machines Corporation Method and apparatus for managing data in a distributed buffer system
US7152128B2 (en) * 2001-08-24 2006-12-19 Intel Corporation General input/output architecture, protocol and related methods to manage data integrity
US6895590B2 (en) * 2001-09-26 2005-05-17 Intel Corporation Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API
US20030065856A1 (en) * 2001-10-03 2003-04-03 Mellanox Technologies Ltd. Network adapter with multiple event queues
US20030145230A1 (en) * 2002-01-31 2003-07-31 Huimin Chiu System for exchanging data utilizing remote direct memory access
US7376755B2 (en) 2002-06-11 2008-05-20 Pandya Ashish A TCP/IP processor and engine using RDMA
US20040003069A1 (en) * 2002-06-28 2004-01-01 Broadcom Corporation Selective early drop method and system
US6760793B2 (en) * 2002-07-29 2004-07-06 Isys Technologies, Inc. Transaction credit control for serial I/O systems
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7051140B2 (en) * 2002-11-13 2006-05-23 International Business Machines Corporation Connector that enables aggregation of independent system resources across PCI/PCI-X bus and interlocked method for aggregating independent system resources across PCI/PCI-X bus
US7366092B2 (en) * 2003-10-14 2008-04-29 Broadcom Corporation Hash and route hardware with parallel routing scheme
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US7457861B1 (en) * 2003-12-05 2008-11-25 Unisys Corporation Optimizing virtual interface architecture (VIA) on multiprocessor servers and physically independent consolidated NICs
US20050137966A1 (en) * 2003-12-19 2005-06-23 Munguia Peter R. Flow control credit synchronization
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol

Also Published As

Publication number Publication date
IL168595A (en) 2011-02-28
NO20052054D0 (no) 2005-04-26
EP1700264A2 (en) 2006-09-13
AU2004279182B2 (en) 2010-03-11
CA2501521A1 (en) 2005-06-30
RU2005120695A (ru) 2006-01-20
NZ580159A (en) 2011-01-28
US20050198113A1 (en) 2005-09-08
US7698361B2 (en) 2010-04-13
AU2004279182A1 (en) 2005-07-14
NO20052054L (no) 2005-06-10
ZA200503161B (en) 2008-01-30
JP2007527057A (ja) 2007-09-20
MXPA05006638A (es) 2006-02-22
MY158076A (en) 2016-08-30
MY143575A (en) 2011-05-31
TW200522630A (en) 2005-07-01
WO2005067430A3 (en) 2008-04-24
US20100161855A1 (en) 2010-06-24
JP4564970B2 (ja) 2010-10-20
RU2009109685A (ru) 2010-09-27
BRPI0406413A (pt) 2005-10-04
KR20060112178A (ko) 2006-10-31
NZ540173A (en) 2009-11-27
WO2005067430A2 (en) 2005-07-28
CN101375263A (zh) 2009-02-25
EP1700264A4 (en) 2011-06-15
CN101375263B (zh) 2012-06-20
RU2388039C2 (ru) 2010-04-27
KR101084897B1 (ko) 2011-11-17

Similar Documents

Publication Publication Date Title
TW201240413A (en) Lightweight input/output protocol
US9438696B2 (en) Data communication protocol
US8180928B2 (en) Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7921240B2 (en) Method and system for supporting hardware acceleration for iSCSI read and write operations and iSCSI chimney
US20030145230A1 (en) System for exchanging data utilizing remote direct memory access
EP1727056B1 (en) Data communication protocol
EP1759317B1 (en) Method and system for supporting read operations for iscsi and iscsi chimney
JP2012018699A (ja) クライアントとサーバ間の接続を管理するためのシステムおよび方法
US20050281261A1 (en) Method and system for supporting write operations for iSCSI and iSCSI chimney
US7895344B2 (en) Method and apparatus for remote management
CN116015892A (zh) 一种基于私有加密协议流量代理的内网远程桌面访问方法
JP2001167059A (ja) サービス要求装置およびデータ変換方法およびクライアントオブジェクトを有する計算機
JP4745287B2 (ja) データ伝送方法及びトランザクション調整方法並びに記録媒体
DeBergalis et al. Keith A. Smith, Sun Microsystems
JP2000341361A (ja) 情報転送方法及び情報転送プログラムを記録した記録媒体
JP2000250821A (ja) ネットワークファイルシステム