專利名稱:文件系統會話中的多信道連接的制作方法
技術領域:
本發明涉及文件系統會話中的多信道連接。
背景技術:
存在用于在網絡上的兩臺計算機之間共享文件、打印機及其他資源的各種技術。 例如,一種用于共享資源的應用層網絡協議是服務器消息塊(SMB)。MICROSOFT TM WINDOWS TM及其他操作系統使用SMB來允許兩臺計算機或其他資源進行通信、請求訪問資源、指定對資源的預期訪問(例如,讀、寫等)、鎖定資源等。MICROSOFT TM WINDOWS TM Vista引入了簡化SMB 1. 0命令集并添加許多其他增強的SMB 2.0。MICROSOFT TM WINDOWS TM 7和服務器2008R2引入了添加伺機鎖定(oplock)及其他增強的SMB 2. 1。用于遠程共享資源的大多數協議假設連接和會話之間的一對一關系。會話表示訪問資源的任何單個請求和在終止連接之前對該資源的后續訪問的生存期。會話還可與特定安全主體和已驗證的安全證書相關聯,該已驗證的安全證書確定在會話期間被授權的動作。連接可包括傳輸控制協議(TCP)、或類似于SMB的較高層協議可經由其通信以執行命令的其他類型的連接。SMB會話通常包括打開請求源和請求目標之間的TCP連接,發送一個或多個SMB命令以訪問目標資源,并且隨后關閉會話。當今,許多計算機以計算機之間存在多個可用連接的方式連接。例如,數據中心服務器通常用兩個或兩個以上網絡接口卡(NIC)來構建,從而如果一個NIC失敗,則可在另一個上發送網絡通信。客戶機計算機可包括無線網絡連接(Wi-Fi)、藍牙連接、有線以太網 (例如,局域網(LAN))連接等。服務器計算機可包括存儲區域網(SAN)、經由光纖信道的連接、有線以太網等。這些連接的部分或全部可提供到相同資源的部分或全部的連接。不幸的是,可用連接信息一般不可用于使用網絡的應用或應用層協議。請求到服務器的連接的應用通常將用于挑選經由其進行連接的設備/協議的所有責任交給較低層的網絡層,并且網絡層將進行單個連接以執行應用的命令。如果連接失敗,則應用或網絡層可通過再次設立會話來嘗試另一連接,或可包括人工干預來這樣做。使用單個連接導致如果連接因任何原因失敗則終止的脆弱連接,并且不能充分利用多個網絡所提供的帶寬。類似于網絡文件系統(NFS)的一些協議包括允許使用到數據的冗余路徑來改進吞吐量的并行化擴展(例如,PNFQ,但是這些路徑未向可用于管理連接的更高層提供任何信息。另一示例是具有保持對更高層不檢測以供向后兼容的具體目標的實驗性多路徑TCP(MPTCP)協議。這些協議的功能完全不受更高層的控制,并且網絡層不可能自己自動地選擇最快連接、 或出于故障恢復、吞吐量、或其他目的提供最有效地使用連接。
發明內容
在本文中描述了一種多連接信息系統,該多連接信息系統使用多個連接來以從傳輸層之上的協議(諸如,SMB應用層協議)可控的方式連接到單個文件系統會話中的資源。 系統還可允許單個連接被多個會話共享。引入信道的概念來表示特定會話到特定連接的綁定。各會話可綁定到多個連接以允許在多個傳輸上通信。在會話的初始協商期間,客戶機和服務器可確定是否支持會話內的客戶機和服務器之間的多個連接。在建立初始連接之后, 可建立附加連接并將其綁定到現有會話。多個連接可用于故障恢復和/或負載均衡。多連接信息系統提供用于發現在會話內建立多個信道的能力的協議。協議提供關于兩個特定資源之間的可用連接、以及連接的服務器側和客戶機側是否支持會話內的多個信道的信息。 由此,多連接信息系統提供一種智能地選擇和使用在傳輸層之上的各層處針對單個會話的多個連接的方式。提供本發明內容以便以簡化的形式介紹將在以下具體實施方式
中進一步描述的一些概念。本發明內容并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。
圖1是示出一個實施例中的多連接信息系統的組件的框圖。圖2是示出一個實施例中的處理多連接信息系統以發起會話并接收傳輸信息的流程圖。圖3是示出一個實施例中的處理多連接信息系統以將附加連接添加到先前建立的會話的流程圖。圖4是示出一個實施例中的使用多連接信息系統來設立多連接的網絡分組示圖。圖5是示出一個實施例中的使用多信道信息系統的會話和連接之間的潛在多對多關系的框圖。
具體實施例方式在本文中描述了一種多連接信息系統,該多連接信息系統使用多個連接來以根據開放式系統互連(OSI)模型中的傳輸層之上的協議(諸如,SMB應用層協議)可控的方式連接到單個文件系統會話中的資源。該系統還可允許單個連接被多個會話共享。引入信道的概念來表示特定會話到特定連接的綁定。各會話可被綁定到多個連接以允許在多個傳輸上通信。在會話的初始協商期間,客戶機和服務器可確定是否支持會話內的客戶機和服務器之間的多個連接。在建立初始連接之后,可建立附加連接并將其綁定到現有會話。多個連接可用于故障恢復和/或負載均衡。多連接信息系統提供用于發現在會話內建立多個信道的能力的協議。該協議提供關于兩個特定資源之間的可用連接、以及連接的服務器側和客戶機側是否支持會話內的多個信道的信息。在建立客戶機和服務器(例如,SMB客戶機和服務器)之間的初始會話期間,進行協商來指示客戶機和服務器兩者都支持會話內的多個連接。這可包括協商提供對多個連接的支持的協議版本。客戶機可調用文件系統控制消息(FSCTL)或其他應用編程接口(API) 來獲得服務器傳輸接口列表。在替換實施例中,客戶機可查詢DNS服務以獲取關于服務器網絡接口的更多信息和能力。客戶機還可找到與每個服務器IP地址相關聯的本地接口,并且收集關于本地接口的附加信息,包括類型和速度。客戶機隨后可選擇用于建立初始連接的接口。在一些實施例中,客戶機首先建立初始連接,并且隨后使用該連接來與服務器協商關于其他可用傳輸的信息。為了建立附加信道,客戶機可根據類型和速度對多個接口排序以確定頂層接口,并且使用頂層接口來建立附加信道。在客戶機已建立多個信道之后,為了使用基于類型和速度而排序更高的信道,不在頂層接口中的一些信道可任選地被卸載(或簡單地不被使用)。由此,多連接信息系統提供一種智能地選擇和使用在傳輸層之上的各層處的單個會話的多個連接的方式。圖1是示出一個實施例中的多連接信息系統的組件的框圖。系統100包括會話發起組件110、信道發現組件120、信道選擇組件130、綁定組件140、命令接收組件150、命令路由組件160和故障恢復處理組件170。此處進一步詳細地描述這些組件中的每一個。會話發起組件110接收發起客戶機和服務器之間的會話的請求,用以共享一個或多個資源。例如,組件110可從在標識應用想要連接的服務器的客戶機上運行的應用接收訪問文件或其他資源的請求。會話發起組件110可接收SMB初始請求,諸如打開客戶機和服務器之間的通信的“協商”消息。會話發起組件110響應于應用請求來創建會話,并且可提供諸如請求用戶的認證信息之類的安全信息,以使服務器可注意對資源的任何受限網絡訪問ο信道發現組件120確定可用于客戶機和服務器之間的通信的一個或多個連接傳輸。可通過諸如以太網和Wi-Fi之類的各種傳輸、以及諸如兩個以太網NIC之類的相同傳輸的冗余連接來連接客戶機和服務器。另外,一些連接傳輸可支持影響一個連接傳輸超過另一個的速度的能力,諸如遠程直接存儲器訪問(RDMA)。信道發現組件120收集這種類型的信息,并且采集客戶機的信息以在選擇適當的傳輸時使用。組件120可使用到服務器的初始連接來標識服務器傳輸接口并協商連接用的多個信道。組件120還可收集客戶機和服務器以外的信息,諸如向DNS服務器查詢關于服務器可用的連接類型的信息。信道選擇組件130從經確定可用的連接傳輸中選擇一個或多個連接傳輸以綁定到客戶機和服務器之間的會話。在一些情況下,客戶機將建立到服務器的第一連接,并且隨后在發現一些情形存在之后,將使用經由第一連接所發現的信息來稍后建立到服務器的附加連接。例如,該情形可包括檢測客戶機正在向將在初始連接上花費較長時間的服務器發送大量的數據。該情形還可包括確定客戶機對客戶機和服務器之間會話的可靠性有較高的期望,以使冗余連接可有助于故障恢復。信道選擇組件130可由系統100的應用或特定實現來修改或配置,以基于對特定實現重要的目標和優先級來選擇連接。例如,一些實現可偏向首先在最快的傳輸連接上進行連接,同時其他實現可為特定類型的網絡通信保留快連接并將較慢或較低優先級連接用于其他類型的通信。綁定組件140使所選連接傳輸與會話相關聯。會話捕獲關于與客戶機和服務器之間的特定系列通信相關聯的安全主體的信息。會話還可包含定義可用于特定系列通信的能力或命令的其他元數據。將所選連接傳輸綁定到會話使得該連接傳輸可用于供該會話使用,并且可協商任何安全憑證或與服務器的其他交換以準備供與會話一起使用的連接。注意,就像單個會話可綁定到多個連接,多個會話也可綁定到特定連接。連接提供通信經由其在客戶機和服務器之間傳播的管道,同時會話在應用層正在努力完成或允許做什么的上下文中給出每個通信語義含義。命令接收組件150接收與客戶機和服務器之間的會話相關的一個或多個命令。能夠在客戶機和服務器之間通信的目的在于,客戶機發送訪問資源的命令。例如,客戶機可發送打開文件的“打開”請求,或防止其他人在客戶機修改文件時訪問文件的“鎖定”請求。命令接收組件150接收這些命令并調用命令路由組件160來確定經由其發送命令的一個或多個傳輸。在一些實施例中,系統100保證將在經由其發送相應請求的相同傳輸連接上發送響應。由此,通過將特定命令路由到特定傳輸連接,客戶機還可選擇如何將與請求相關的數據返回到客戶機。對于大數據和變化的連接速度,適當地選擇可顯著地影響操作的整體持續時間。命令路由組件160選擇綁定到經由其發送特定命令的會話的連接傳輸。命令路由組件160分解命令并且使用多個傳輸來執行命令,諸如用于取回大文件或發送大文件。組件160還可為一些命令選擇快連接傳輸,同時為較低優先級的命令選擇較慢或較低頻率使用的連接傳輸。命令路由組件160還可確定附加可用傳輸連接應當綁定到會話,諸如在接收到在現有綁定連接上將太慢的傳送大文件的請求之后。命令路由組件160還可檢測即將來臨的連接維護或中斷,并且允許進行附加連接以確保可靠性。故障恢復處理組件170處理特定傳輸連接從會話斷開。另外,網絡接線可能被切斷,NIC可能出故障,或者其他情形可能導致先前工作的連接被斷開。故障恢復處理組件 170切斷其他連接是否可用,并且可調用諸如信道發現組件120之類的其他組件來選擇附加信道、以及可調用命令路由組件160來將命令路由到未斷開的連接。故障恢復處理組件 170還可處理在斷開的連接傳輸上排隊的任何命令的回放以及等待經由另一傳輸連接的服務器響應,以使不管是否有故障命令都被可靠地執行。以此方式,系統100提供更高的可靠性。在其上實現多連接信息系統的計算設備可包括中央處理單元、存儲器、輸入設備 (例如,7鍵盤和定點設備)、輸出設備(例如,顯示設備),以及存儲設備(例如,磁盤驅動器或其他非易失性存儲介質)。存儲器和存儲設備是可用實現或啟用該系統的計算機可執行指令(例如,軟件)來編碼的計算機可讀存儲介質。另外,數據結構和消息結構可被存儲或經由諸如通信鏈路上的信號之類的數據傳送介質傳送。可使用各種通信鏈路,諸如因特網、局域網、廣域網、點對點撥號連接、蜂窩電話網絡等。該系統的實施例可在各種操作環境中實現,這些操作環境包括個人計算機、服務器計算機、手持式或膝上型設備、多處理器系統、基于微處理器的系統、可編程消費電子產品、數碼相機、網絡PC、小型計算機、大型計算機、包括以上系統或設備、機頂盒、片上系統 (SOC)等中的任一個的分布式計算環境等。計算機系統可以是蜂窩電話、個人數字助理、智能電話、個人計算機、可編程消費電子設備、數碼相機等。該系統可在由一個或多個計算機或其他設備執行的計算機可執行指令(諸如程序模塊)的通用上下文中描述。一般而言,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等。通常,程序模塊的功能可在各個實施例中按需進行組合或分布。圖2是示出一個實施例中的處理多連接信息系統以發起會話并接收傳輸信息的流程圖。在框210開始,系統從應用接收發起客戶機和服務器之間的會話的請求。應用可包括操作系統組件或其他服務級應用,以及典型客戶機應用。許多類型的應用和服務連接到服務器以共享文件、打印機、或其他資源。在接收到請求之后,系統開始設立會話,并且可將一個或多個分組發送到服務器以協商用于客戶機和服務器之間的通信的網絡協議的可用方言、以及檢測客戶機和服務器的其他能力來確保兼容性。在該過程期間,服務器可指示其支持多連接會話,以使客戶機可充分利用本文中所描述的技術來增加吞吐量、改進故障恢復等。在框220繼續,系統選擇用于在客戶機和服務器之間發送命令的初始傳輸。系統可默認一種類型的傳輸用于第一連接,諸如第一 NIC上的以太網連接,或者可基于應用指定準則來選擇。準則可指示選擇最快的連接、具有最高帶寬的連接、最穩健的連接、或對應用有用的任何其他準則。在框225繼續,客戶機建立到服務器的初始連接。由于客戶機和服務器共享關于可用傳輸的信息,因此客戶機能夠為任何特定會話挑選適當連接。在框230繼續,系統確定用于建立客戶機和服務器之間的第二連接的一個或多個可用傳輸。該系統具有確定可用傳輸的內部和外部手段。外部手段是客戶機/服務器連接外部的那些手段,諸如查詢單獨的DNS服務器、數據中心元數據、或其他信息。內部手段是客戶機和服務器之間的連接內部的手段,諸如發送能力請求或查詢以標識可用設備或傳輸。客戶機可通過查詢客戶機操作系統或通過經由初始連接查詢服務器來標識本地傳輸。 多信道信息系統編譯可用傳輸列表和所發現的關于傳輸的、可幫助確定在什么情形下使用各個傳輸的任何元數據。在框240繼續,系統經由所選傳輸建立第二連接。例如,如果協議是SMB,則客戶機可在設立SMB連接的所選傳輸上發送協商消息。各個連接可如當今其出現在系統中一樣地出現,具有將單個連接組合到單個會話中的綁定步驟。建立該連接可包括若干分組在客戶機和服務器之間往返,以執行任何連接設立并收集使用該連接所需的任何元數據。在框250繼續,系統將所建立的第二連接綁定到初始連接的會話。綁定通知系統會話與連接相關聯,以及系統可使用用于發送命令的連接。系統可跟蹤哪些連接綁定到哪些會話,以使隨著會話臨近或連接斷開,系統可適當地清理。在使用連接的所有會話已結束之后,系統可關閉連接。類似地,在綁定到會話的所有連接已斷開之后,系統可清理會話。在框260繼續,系統通過任一綁定到會話的所建連接發送從應用接收到的命令。 系統可在多個此類連接中選擇以挑選適于當前命令的連接。系統可考慮帶寬、等待時間、當前隊列深度、電池功率(例如,對于移動設備)、優先級、或任何其他因素來選擇用于處理命令的連接。系統還可分解命令以同時使用多個連接來加速操作。在框270繼續,系統經由用于發送命令的相同傳輸來接收對所發送命令的請求。接收到的響應可指示命令是否成功, 可包括所請求數據、或為特定請求所定義的任何其他響應。在判定框280繼續,如果存在更多的命令或會話未被關閉,則系統循環到框沈0以發送更多的命令,否則系統完成。系統以此方式繼續,發送與經由可用連接的會話相關聯的命令。如果在任何點系統確定附加連接可能對執行命令有用,則系統可建立附加連接并將其綁定到會話以供命令使用。在框280之后,這些步驟結束。圖3是示出一個實施例中的處理多連接信息系統以將附加連接添加到先前建立的會話的流程圖。在檢測到特定情形或達到用于將會話從單個連接擴展到多個連接的閾值之后,圖3的步驟可在圖2的步驟之后發生。例如,系統可檢測可能經由多個連接完成得更快的大文件傳輸。在框310開始,系統檢測用于為先前所建會話建立附加連接的情形,該先前所建會話已具有客戶機和服務器之間的至少一個綁定連接。該情形包括超過現有連接的帶寬、 在現有連接上等待時間太高、對請求或發送大數據的即將到來的命令想要附加帶寬等。在檢測到該情形之后,系統執行以下步驟以將附加連接添加到會話。在框320繼續,系統從先前發現的傳輸列表中選擇附加傳輸。系統可通過對服務器的能力請求、通過查詢DNS信息、或用于發現連接客戶機和服務器的方式的任何其他機制來發現傳輸。系統可對可用傳輸排序,和/或基于在發現期間接收到的特性來選擇傳輸。 例如,系統可偏好具有高帶寬的連接、具有高可用性的連接、當前空閑的連接等。在框330繼續,系統經由所選傳輸建立連接。建立連接包括諸如經由TCP/IP建立傳輸層連接,以及諸如SMB協商序列的會話協議協商。系統還可經由所建連接交換元數據, 以確認連接類型并接收用于使用該連接的任何設立信息(例如,連接是否支持特定特征, 諸如選擇性確認等等)。在框340繼續,系統將新近建立的連接綁定到現有會話,以使會話具有從中選擇何時發送命令的多個可用連接。綁定可使已與另一會話相關聯的連接與當前會話相關聯, 以使兩個會話可充分利用該連接。綁定還通知會話關于該連接,以使如果會話關閉、則會話管理邏輯可執行適當的清理步驟以對該連接解除綁定和/或關閉該連接。在框350繼續,系統接收指向現在有多個連接的服務器的應用級命令。應用可請求打開文件、請求打印共享打印機、或執行對資源的其他共同共享、遠程使用。操作系統或其他服務代碼可提供一個或多個應用編程接口(API),應用可通過這些API來調用系統以將命令發送到服務器。在框360繼續,系統在新近建立的連接以及一個或多個先前連接中選擇經由其發送接收到的命令的一個或多個傳輸。系統可將命令路由到默認連接,除非滿足一個或多個閾值準則,諸如請求大量數據。在接收更大請求之后,系統可選擇更高的帶寬連接或分解命令以使用多個連接來更快地完成命令所指定的操作。作為另一示例,系統可檢測連接何時斷開,并且使用替換連接作為一種對應用透明的平滑故障恢復的方法。在框360之后,這些步驟結束。在一些實施例中,多連接信息系統提供操作系統內的文件系統API,通過該操作系統,客戶機處的應用或服務可請求關于遠程服務器的可用網絡接口的信息。例如, MICROSOFT TM WINDOWS TM使用文件系統控制消息(FSCTL)來與一個或多個文件系統交互。 系統可添加消息(FSCTL_LMR_QUERY_TRANSPORT_INFO),該消息是用于請求遠程服務器的有效網絡接口的命令。服務器可響應于該命令而提供的一種結構包括在以下更詳細描述的以下成員Next(下一個M4個字節)、Iflndex (如果索引)G個字節)、Capability (能力) (4個字節),RssQueueCount (接收縮放支持的隊列數M4字節)、LinkSpeed (鏈路速度)(8 字節)、SockAddr_Storage (插槽地址_存儲)(1 個字節)。Next成員提供從當前結構開始處到后續8字節對齊網絡接口開始處的偏移量。 Next成員被設置為零,作為不再有網絡接口跟隨時的空結束符。IfIndex成員為當前網絡接口提供數字索引。Capability成員包含指示當前網絡接口的能力的標志,諸如接口是否是RDMA或具有接收縮放支持(RSQ能力。RssQueueCount成員指示具RSS能力接口的RSS 隊列數。在一些情況下,系統使用RSS隊列深度作為類似于如何使用特定NIC來進行許多連接的提示。LinkSpeed成員指示以比特每秒為單位的接口速度。S0CkAddr_St0rage成員指示用于使用接口來建立連接的網絡連接地址。該字段可使用公知的插槽結構S0CKADDR_ STORAGE。
圖4是示出一個實施例中的使用多連接信息系統來設立多個連接的網絡分組示圖。在該示例中,客戶機405通過發送以下分組(或多分組消息)來建立到服務器495的多個連接。客戶機405將第一協商請求410發送到服務器495。服務器495用協商響應420 對客戶機405作出響應。客戶機405隨后將第一會話設立請求430發送到服務器495。服務器495用會話設立響應440對客戶機405作出響應。會話設立可在客戶機和服務器之間進行多次往返。此時,建立會話的第一信道,并且客戶機可開始使用會話來將命令發送到服務器。隨后(它可以是立刻的或稍后的某個時間),客戶機405決定為相同會話建立到服務器495的第二連接。客戶機405經由新傳輸將第二協商請求450發送到服務器495。服務器495用協商響應460對客戶機405作出響應。客戶機405隨后將第二協商設立請求470 發送到服務器495。與第一會話設立請求430不同,該請求470可包括指示將新連接附加至先前會話的綁定標志。服務器495用會話設立響應480對客戶機405作出響應。該會話設立還可在客戶機和服務器之間進行多次往返。此時,兩個連接可供客戶機用于將命令發送到服務器。圖5是示出一個實施例中的使用多信道信息系統的會話和連接之間的潛在多對多關系的框圖。該圖包括第一會話510和第二會話520。該圖還包括第一連接530和第二連接M0。傳統地,每個會話與連接具有一對一關系,以使第一會話510可能已是使用第一連接530的唯一會話、而第二連接520可能已是使用第二連接540的唯一會話。使用此處所述的技術,引入信道的概念,由此每個會話可使用多個連接,并且甚至可與其他會話共享連接。由此,如圖所示,第一會話510通過第一信道550綁定到第一連接530。第一會話510 還通過第二信道560綁定到第二連接M0。同樣,第二會話520通過第三信道570綁定到第一連接530,而第二會話520通過第四信道580綁定到第二連接M0。由此,任一會話可使用任一連接,如應用或實現特定偏好所指示的。在一些實施例中,多連接信息系統不向應用通知可用連接。如本文中所注意的,可在應用和傳輸層(例如,TCP)之間的層處實現系統。例如,MICR0S0FTTM WINDOWS TM通過應用可使用的SMB實現。系統可執行本文中所述的用以在可用時自動地使用多個傳輸并向應用自動提供較高的可靠性和吞吐量,而無需通過應用輸入的技術。系統可允許應用配置是否激活能力。如果能力被激活,則系統可自動地選取經由其建立連接的傳輸且選取傳輸以供來自應用的各個命令使用。在其他實施例中,系統可向應用提供多個控件,以使應用可建立用于選擇每個連接或進行選擇本身的準則。從上述內容,應當理解,本文中所描述的多連接信息系統的特定實施例只是出于說明的目的,但是在不偏離本發明的精神和范圍的情況下,可以進行各種修改。因此,本發明只受所附權利要求限制。
10
權利要求
1.一種用于發起會話以允許文件系統中的多個連接并且接收傳輸信息的計算機實現的方法,所述方法包括從應用接收(210)發起客戶機和服務器之間的會話的請求;確定(220) —個或多個可用傳輸可用于建立所述客戶機和服務器之間的連接;選擇(230)用于在所述客戶機和服務器之間發送命令的初始傳輸;經由所選傳輸建立(MO)連接;將所建連接綁定(250)到所發起的會話;以及通過綁定到所述會話的所建連接來發送(沈0)從所述應用接收到的命令, 其中,前面的步驟由至少一個處理器執行。
2.如權利要求1所述的方法,其特征在于,接收所述請求包括使用服務器消息塊 (SMB)協議以從應用接收訪問遠程存儲在所述服務器上的文件的請求。
3.如權利要求1所述的方法,其特征在于,接收所述請求包括設立會話,以及向所述服務器發送一個或多個分組以協商用于在所述客戶機和服務器之間通信的網絡協議的可用方曰。
4.如權利要求1所述的方法,其特征在于,接收所述請求包括查詢所述服務器以確定所述服務器是否支持多連接會話。
5.如權利要求1所述的方法,其特征在于,確定可用傳輸包括查詢域名系統(DNS)服務器以標識所述服務器的一個或多個地址。
6.如權利要求1所述的方法,其特征在于,確定可用傳輸包括查詢客戶機操作系統以標識可用網絡接口。
7.如權利要求1所述的方法,其特征在于,確定可用傳輸包括查詢向所述服務器發送能力請求以標識所述服務器上的可用網絡接口。
8.如權利要求1所述的方法,其特征在于,選擇所述初始傳輸包括基于建立應用的連接偏好的應用指定準則來選擇。
9.如權利要求1所述的方法,其特征在于,建立所述連接包括經由設立服務器消息塊 (SMB)連接的所選傳輸發送協商消息。
10.如權利要求1所述的方法,其特征在于,綁定所建連接包括準備所述連接以供所述會話用于將命令從所述客戶機發送到所述服務器。
11.如權利要求1所述的方法,其特征在于,綁定所建連接包括存儲用于清理所述會話和/或連接的信息。
12.如權利要求1所述的方法,其特征在于,發送所述命令包括在多個綁定連接中選擇以挑選適于處理當前命令的一個或多個連接。
13.一種用于提供文件系統會話中的多信道連接的計算機系統,所述系統包括 被配置成執行包含在以下組件內的軟件指令的處理器和存儲器;會話發起組件(110),所述會話發起組件接收發起客戶機和服務器之間的會話以共享一個或多個資源的請求;信道發現組件(120),所述信道發現組件確定可用于所述客戶機和服務器之間的通信的一個或多個連接傳輸;信道選擇組件(130),所述信道選擇組件從經確定可用的連接傳輸中選擇一個或多個連接傳輸以綁定到所述客戶機和服務器之間的會話。綁定組件(140),所述綁定組件使所選連接傳輸與所述會話相關聯; 命令接收組件(150),所述命令接收組件接收與所述客戶機和服務器之間的會話相關的一個或多個命令;以及命令路由組件(160),所述命令路由組件選擇綁定到在其上發送特定命令的會話的連接傳輸。
14.如權利要求13所述的系統,其特征在于,所述會話發起組件還被配置成從在標識所述應用想連接的服務器的客戶機上運行的應用接收訪問文件或其他資源的請求。
15.如權利要求13所述的系統,其特征在于,所述信道發現組件還被配置成確定每個連接傳輸是否支持遠程直接存儲器訪問(RDMA)和/或接收縮放支持(RSS)。
全文摘要
在本文中描述了一種多連接信息系統,該多連接信息系統使用多個連接來以從傳輸層上方的協議可控的方式連接到單個文件系統會話中的資源。系統還允許單個連接被多個會話共享。各會話可綁定到多個連接以允許在多個傳輸上通信。在會話的初始協商期間,客戶機和服務器確定是否支持會話內的客戶機和服務器之間的多個連接。在建立初始連接之后,可建立附加連接并將其綁定到現有會話。多個連接可用于故障恢復和/或負載均衡。多連接信息系統提供用于發現在會話內建立多信道的能力和關于兩個特定資源之間的可用連接的信息的協議。
文檔編號H04L29/06GK102571756SQ201110416650
公開日2012年7月11日 申請日期2011年12月5日 優先權日2010年12月6日
發明者D·M·克魯斯, M·喬治, 尚明棟, 朱奇波 申請人:微軟公司