CN102571756B - 文件系统会话中的多信道连接 - Google Patents

文件系统会话中的多信道连接 Download PDF

Info

Publication number
CN102571756B
CN102571756B CN201110416650.0A CN201110416650A CN102571756B CN 102571756 B CN102571756 B CN 102571756B CN 201110416650 A CN201110416650 A CN 201110416650A CN 102571756 B CN102571756 B CN 102571756B
Authority
CN
China
Prior art keywords
session
server
connection
transmission
client
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201110416650.0A
Other languages
English (en)
Other versions
CN102571756A (zh
Inventor
朱奇波
D·M·克鲁斯
M·乔治
尚明栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102571756A publication Critical patent/CN102571756A/zh
Application granted granted Critical
Publication of CN102571756B publication Critical patent/CN102571756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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/14Multichannel or multilink protocols
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/24Negotiation of communication capabilities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

在本文中描述了一种多连接信息系统,该多连接信息系统使用多个连接来以从传输层上方的协议可控的方式连接到单个文件系统会话中的资源。系统还允许单个连接被多个会话共享。各会话可绑定到多个连接以允许在多个传输上通信。在会话的初始协商期间,客户机和服务器确定是否支持会话内的客户机和服务器之间的多个连接。在建立初始连接之后,可建立附加连接并将其绑定到现有会话。多个连接可用于故障恢复和/或负载均衡。多连接信息系统提供用于发现在会话内建立多信道的能力和关于两个特定资源之间的可用连接的信息的协议。

Description

文件系统会话中的多信道连接
技术领域
本发明涉及文件系统会话中的多信道连接。
背景技术
存在用于在网络上的两台计算机之间共享文件、打印机及其他资源的各种技术。例如,一种用于共享资源的应用层网络协议是服务器消息块(SMB)。MICROSOFTTMWINDOWSTM及其他操作系统使用SMB来允许两台计算机或其他资源进行通信、请求访问资源、指定对资源的预期访问(例如,读、写等)、锁定资源等。MICROSOFTTMWINDOWSTMVista引入了简化SMB1.0命令集并添加许多其他增强的SMB2.0。MICROSOFTTMWINDOWSTM7和服务器2008R2引入了添加伺机锁定(oplock)及其他增强的SMB2.1。
用于远程共享资源的大多数协议假设连接和会话之间的一对一关系。会话表示访问资源的任何单个请求和在终止连接之前对该资源的后续访问的生存期。会话还可与特定安全主体和已验证的安全证书相关联,该已验证的安全证书确定在会话期间被授权的动作。连接可包括传输控制协议(TCP)、或类似于SMB的较高层协议可经由其通信以执行命令的其他类型的连接。SMB会话通常包括打开请求源和请求目标之间的TCP连接,发送一个或多个SMB命令以访问目标资源,并且随后关闭会话。
当今,许多计算机以计算机之间存在多个可用连接的方式连接。例如,数据中心服务器通常用两个或两个以上网络接口卡(NIC)来构建,从而如果一个NIC失败,则可在另一个上发送网络通信。客户机计算机可包括无线网络连接(Wi-Fi)、蓝牙连接、有线以太网(例如,局域网(LAN))连接等。服务器计算机可包括存储区域网(SAN)、经由光纤信道的连接、有线以太网等。这些连接的部分或全部可提供到相同资源的部分或全部的连接。
不幸的是,可用连接信息一般不可用于使用网络的应用或应用层协议。请求到服务器的连接的应用通常将用于挑选经由其进行连接的设备/协议的所有责任交给较低层的网络层,并且网络层将进行单个连接以执行应用的命令。如果连接失败,则应用或网络层可通过再次设立会话来尝试另一连接,或可包括人工干预来这样做。使用单个连接导致如果连接因任何原因失败则终止的脆弱连接,并且不能充分利用多个网络所提供的带宽。类似于网络文件系统(NFS)的一些协议包括允许使用到数据的冗余路径来改进吞吐量的并行化扩展(例如,pNFS),但是这些路径未向可用于管理连接的更高层提供任何信息。另一示例是具有保持对更高层不检测以供向后兼容的具体目标的实验性多路径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继续,如果存在更多的命令或会话未被关闭,则系统循环到框260以发送更多的命令,否则系统完成。系统以此方式继续,发送与经由可用连接的会话相关联的命令。如果在任何点系统确定附加连接可能对执行命令有用,则系统可建立附加连接并将其绑定到会话以供命令使用。在框280之后,这些步骤结束。
图3是示出一个实施例中的处理多连接信息系统以将附加连接添加到先前建立的会话的流程图。在检测到特定情形或达到用于将会话从单个连接扩展到多个连接的阈值之后,图3的步骤可在图2的步骤之后发生。例如,系统可检测可能经由多个连接完成得更快的大文件传输。
在框310开始,系统检测用于为先前所建会话建立附加连接的情形,该先前所建会话已具有客户机和服务器之间的至少一个绑定连接。该情形包括超过现有连接的带宽、在现有连接上等待时间太高、对请求或发送大数据的即将到来的命令想要附加带宽等。在检测到该情形之后,系统执行以下步骤以将附加连接添加到会话。
在框320继续,系统从先前发现的传输列表中选择附加传输。系统可通过对服务器的能力请求、通过查询DNS信息、或用于发现连接客户机和服务器的方式的任何其他机制来发现传输。系统可对可用传输排序,和/或基于在发现期间接收到的特性来选择传输。例如,系统可偏好具有高带宽的连接、具有高可用性的连接、当前空闲的连接等。
在框330继续,系统经由所选传输建立连接。建立连接包括诸如经由TCP/IP建立传输层连接,以及诸如SMB协商序列的会话协议协商。系统还可经由所建连接交换元数据,以确认连接类型并接收用于使用该连接的任何设立信息(例如,连接是否支持特定特征,诸如选择性确认等等)。
在框340继续,系统将新近建立的连接绑定到现有会话,以使会话具有从中选择何时发送命令的多个可用连接。绑定可使已与另一会话相关联的连接与当前会话相关联,以使两个会话可充分利用该连接。绑定还通知会话关于该连接,以使如果会话关闭、则会话管理逻辑可执行适当的清理步骤以对该连接解除绑定和/或关闭该连接。
在框350继续,系统接收指向现在有多个连接的服务器的应用级命令。应用可请求打开文件、请求打印共享打印机、或执行对资源的其他共同共享、远程使用。操作系统或其他服务代码可提供一个或多个应用编程接口(API),应用可通过这些API来调用系统以将命令发送到服务器。
在框360继续,系统在新近建立的连接以及一个或多个先前连接中选择经由其发送接收到的命令的一个或多个传输。系统可将命令路由到默认连接,除非满足一个或多个阈值准则,诸如请求大量数据。在接收更大请求之后,系统可选择更高的带宽连接或分解命令以使用多个连接来更快地完成命令所指定的操作。作为另一示例,系统可检测连接何时断开,并且使用替换连接作为一种对应用透明的平滑故障恢复的方法。在框360之后,这些步骤结束。
在一些实施例中,多连接信息系统提供操作系统内的文件系统API,通过该操作系统,客户机处的应用或服务可请求关于远程服务器的可用网络接口的信息。例如,MICROSOFTTMWINDOWSTM使用文件系统控制消息(FSCTL)来与一个或多个文件系统交互。系统可添加消息(FSCTL_LMR_QUERY_TRANSPORT_INFO),该消息是用于请求远程服务器的有效网络接口的命令。服务器可响应于该命令而提供的一种结构包括在以下更详细描述的以下成员:Next(下一个)(4个字节)、IfIndex(如果索引)(4个字节)、Capability(能力)(4个字节)、RssQueueCount(接收缩放支持的队列数)(4字节)、LinkSpeed(链路速度)(8字节)、SockAddr_Storage(插槽地址_存储)(128个字节)。
Next成员提供从当前结构开始处到后续8字节对齐网络接口开始处的偏移量。Next成员被设置为零,作为不再有网络接口跟随时的空结束符。IfIndex成员为当前网络接口提供数字索引。Capability成员包含指示当前网络接口的能力的标志,诸如接口是否是RDMA或具有接收缩放支持(RSS)能力。RssQueueCount成员指示具RSS能力接口的RSS队列数。在一些情况下,系统使用RSS队列深度作为类似于如何使用特定NIC来进行许多连接的提示。LinkSpeed成员指示以比特每秒为单位的接口速度。SockAddr_Storage成员指示用于使用接口来建立连接的网络连接地址。该字段可使用公知的插槽结构SOCKADDR_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和第二连接540。传统地,每个会话与连接具有一对一关系,以使第一会话510可能已是使用第一连接530的唯一会话、而第二连接520可能已是使用第二连接540的唯一会话。使用此处所述的技术,引入信道的概念,由此每个会话可使用多个连接,并且甚至可与其他会话共享连接。由此,如图所示,第一会话510通过第一信道550绑定到第一连接530。第一会话510还通过第二信道560绑定到第二连接540。同样,第二会话520通过第三信道570绑定到第一连接530,而第二会话520通过第四信道580绑定到第二连接540。由此,任一会话可使用任一连接,如应用或实现特定偏好所指示的。
在一些实施例中,多连接信息系统不向应用通知可用连接。如本文中所注意的,可在应用和传输层(例如,TCP)之间的层处实现系统。例如,MICROSOFTTMWINDOWSTM通过应用可使用的SMB实现。系统可执行本文中所述的用以在可用时自动地使用多个传输并向应用自动提供较高的可靠性和吞吐量,而无需通过应用输入的技术。系统可允许应用配置是否激活能力。如果能力被激活,则系统可自动地选取经由其建立连接的传输且选取传输以供来自应用的各个命令使用。在其他实施例中,系统可向应用提供多个控件,以使应用可建立用于选择每个连接或进行选择本身的准则。
从上述内容,应当理解,本文中所描述的多连接信息系统的特定实施例只是出于说明的目的,但是在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,本发明只受所附权利要求限制。

Claims (12)

1.一种用于发起会话以允许文件系统中的多个连接并且接收传输信息的计算机实现的方法,所述方法包括:
从应用接收发起客户机和服务器之间的服务器消息块SMB会话的第一请求;
选择用于在所述客户机和服务器之间发送命令的第一传输;
经由所述第一传输建立所述客户机和服务器之间的第一连接;
使用所述第一连接来确定至少一个附加的可用传输;以及
从所述至少一个附加的可用传输中选择第二传输用于发起所述客户机和服务器之间的第二连接,其中所述第二传输是至少部分基于与所述服务器相关联的一个或多个特性从所述至少一个附加的可用传输中选择的,其中发起第二连接包括发送建立所述第二连接的第二请求,所述第二请求包括指示所述第二连接附连到所述SMB会话的绑定标志。
2.如权利要求1所述的方法,其特征在于,接收所述第一请求包括:设立会话,以及向所述服务器发送一个或多个分组以协商用于在所述客户机和服务器之间通信的网络协议的可用方言。
3.如权利要求1所述的方法,其特征在于,接收所述第一请求包括:查询所述服务器以确定所述服务器是否支持多连接会话。
4.如权利要求1所述的方法,其特征在于,确定所述至少一个附加的可用传输包括:查询域名系统(DNS)服务器以标识所述服务器的一个或多个地址。
5.如权利要求1所述的方法,其特征在于,确定所述至少一个附加的可用传输包括:查询客户机操作系统以标识可用网络接口。
6.如权利要求1所述的方法,其特征在于,确定所述至少一个附加的可用传输包括:查询向所述服务器发送能力请求以标识所述服务器上的可用网络接口。
7.如权利要求1所述的方法,其特征在于,选择所述第一传输包括至少部分基于建立应用的连接偏好的应用指定准则来选择所述第一传输。
8.如权利要求1所述的方法,其特征在于,还包括准备所述第一连接以供所述SMB会话用于将命令从所述客户机发送到所述服务器。
9.如权利要求1所述的方法,其特征在于,还包括存储用于清理所述SMB会话、所述第一连接以及所述第二连接中的一者或多者的信息。
10.一种用于提供文件系统会话中的多信道连接的计算机系统,所述系统包括:
会话发起组件(110),所述会话发起组件接收发起客户机和服务器之间的服务器消息块SMB会话以共享一个或多个资源的请求;
信道发现组件(120),所述信道发现组件确定可用于所述客户机和服务器之间的通信的一个或多个连接传输;
信道选择组件(130),所述信道选择组件从经确定可用的连接传输中选择第一连接传输以发起所述客户机和所述服务器之间的第一连接,其中所述信道选择组件还被配置成使用所述第一连接来选择由所述信道发现组件发现的至少一个附加的可用连接,其中所述至少一个附加的可用连接被用于发起所述客户机和所述服务器之间的第二连接并使用绑定标志来指示所述第二连接附连于所述SMB会话,并且其中所述至少一个附加的可用传输是至少部分基于与所述服务器相关联的一个或多个特性来选择的;
绑定组件(140),所述绑定组件使所选连接传输与所述会话相关联;
命令接收组件(150),所述命令接收组件接收与所述客户机和服务器之间的会话相关的一个或多个命令;以及
命令路由组件(160),所述命令路由组件选择绑定到在其上发送特定命令的会话的连接传输。
11.如权利要求10所述的系统,其特征在于,所述会话发起组件还被配置成从在标识应用想连接的服务器的客户机上运行的应用接收访问文件或其他资源的请求。
12.如权利要求10所述的系统,其特征在于,所述信道发现组件还被配置成确定每个连接传输是否支持远程直接存储器访问(RDMA)和/或接收缩放支持(RSS)。
CN201110416650.0A 2010-12-06 2011-12-05 文件系统会话中的多信道连接 Active CN102571756B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/960,577 2010-12-06
US12/960,577 US8806030B2 (en) 2010-12-06 2010-12-06 Multichannel connections in file system sessions

Publications (2)

Publication Number Publication Date
CN102571756A CN102571756A (zh) 2012-07-11
CN102571756B true CN102571756B (zh) 2016-03-23

Family

ID=46163297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110416650.0A Active CN102571756B (zh) 2010-12-06 2011-12-05 文件系统会话中的多信道连接

Country Status (11)

Country Link
US (1) US8806030B2 (zh)
EP (1) EP2649531B1 (zh)
JP (1) JP5882353B2 (zh)
KR (1) KR101811087B1 (zh)
CN (1) CN102571756B (zh)
AU (1) AU2011338481B2 (zh)
BR (1) BR112013013794A8 (zh)
CA (1) CA2817051A1 (zh)
MX (1) MX2013006422A (zh)
RU (1) RU2595752C2 (zh)
WO (1) WO2012078689A2 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787501B2 (en) 2009-12-23 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US9258216B2 (en) * 2009-12-23 2016-02-09 Pismo Labs Technology Limited Methods and systems for transmitting packets through network interfaces
US10218467B2 (en) 2009-12-23 2019-02-26 Pismo Labs Technology Limited Methods and systems for managing error correction mode
US9160693B2 (en) 2010-09-27 2015-10-13 Blackberry Limited Method, apparatus and system for accessing applications and content across a plurality of computers
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9621402B2 (en) * 2011-09-12 2017-04-11 Microsoft Technology Licensing, Llc Load balanced and prioritized data connections
US9015809B2 (en) * 2012-02-20 2015-04-21 Blackberry Limited Establishing connectivity between an enterprise security perimeter of a device and an enterprise
US10432587B2 (en) * 2012-02-21 2019-10-01 Aventail Llc VPN deep packet inspection
US9231949B1 (en) * 2012-08-10 2016-01-05 Amazon Technologies, Inc. Content delivery to user devices using server-initiated connections
US9747386B1 (en) 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
CN102857504B (zh) * 2012-09-06 2016-01-06 深信服网络科技(深圳)有限公司 网络优化方法及装置
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
US20140379778A1 (en) * 2013-06-20 2014-12-25 Microsoft Corporation Asynchronous transport setup and selection for interactive applications
CN104301287B (zh) * 2013-07-16 2020-03-31 中兴通讯股份有限公司 一种多对多会话的实现方法、网络节点、服务器及系统
JP6180225B2 (ja) * 2013-08-08 2017-08-16 キヤノン株式会社 携帯型デバイス及び通信制御方法
US9578109B2 (en) * 2014-05-30 2017-02-21 Apple Inc. Long-lived MPTCP sessions
US9838858B2 (en) 2014-07-08 2017-12-05 Rapidsos, Inc. System and method for call management
WO2016044540A1 (en) 2014-09-19 2016-03-24 Rapidsos, Inc. Method and system for emergency call management
JP6444125B2 (ja) * 2014-10-07 2018-12-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US9888064B2 (en) 2015-02-11 2018-02-06 International Business Machines Corporation Load-balancing input/output requests in clustered storage systems
US10129892B2 (en) * 2015-06-01 2018-11-13 Qualcomm Incorporated Techniques to manage reverse channel audio sessions
US9659484B1 (en) 2015-11-02 2017-05-23 Rapidsos, Inc. Method and system for situational awareness for emergency response
JP2019505117A (ja) 2015-12-17 2019-02-21 ラピッドエスオーエス,インク. 効率的な緊急呼出のためのデバイス及び方法
WO2017112820A1 (en) * 2015-12-22 2017-06-29 Rapidsos, Inc. Systems and methods for robust and persistent emergency communications
US9986404B2 (en) 2016-02-26 2018-05-29 Rapidsos, Inc. Systems and methods for emergency communications amongst groups of devices based on shared data
WO2017189610A2 (en) 2016-04-26 2017-11-02 Rapidsos, Inc. Systems and methods for emergency communications
CA3023982A1 (en) 2016-05-09 2017-11-16 Rapidsos, Inc. Systems and methods for emergency communications
US10861320B2 (en) 2016-08-22 2020-12-08 Rapidsos, Inc. Predictive analytics for emergency detection and response management
CN106790420B (zh) * 2016-11-30 2019-11-26 华为技术有限公司 一种多会话通道建立方法和系统
US10334055B2 (en) 2017-02-01 2019-06-25 International Business Machines Corporation Communication layer with dynamic multi-session management
CN106953797B (zh) * 2017-04-05 2020-05-26 苏州浪潮智能科技有限公司 一种基于动态连接的rdma数据传输的方法与装置
EP3616175A4 (en) 2017-04-24 2021-01-06 Rapidsos, Inc. MODULAR EMERGENCY COMMUNICATION FLOW MANAGEMENT SYSTEM
CN107172048A (zh) * 2017-05-19 2017-09-15 郑州云海信息技术有限公司 一种基于smb协议的多通道实现方法及装置
CN107948158B (zh) * 2017-11-27 2023-06-27 广东路得斯环境科技有限公司 一种处理高频率多并发的数据连接方法
US10701542B2 (en) 2017-12-05 2020-06-30 Rapidsos, Inc. Social media content for emergency management
CN111512611B (zh) * 2017-12-22 2023-04-04 诺基亚技术有限公司 Mptcp感知的负载均衡器的设计方法和使用该设计的负载均衡器
US10911547B2 (en) * 2017-12-28 2021-02-02 Dell Products L.P. Systems and methods for SMB monitor dialect
US10820181B2 (en) 2018-02-09 2020-10-27 Rapidsos, Inc. Emergency location analysis system
US20190320310A1 (en) 2018-04-16 2019-10-17 Rapidsos, Inc. Emergency data management and access system
US10805786B2 (en) 2018-06-11 2020-10-13 Rapidsos, Inc. Systems and user interfaces for emergency data integration
US11917514B2 (en) 2018-08-14 2024-02-27 Rapidsos, Inc. Systems and methods for intelligently managing multimedia for emergency response
US11218584B2 (en) 2019-02-22 2022-01-04 Rapidsos, Inc. Systems and methods for automated emergency response
AU2020254292A1 (en) 2019-03-29 2021-11-04 Rapidsos, Inc. Systems and methods for emergency data integration
US11146680B2 (en) 2019-03-29 2021-10-12 Rapidsos, Inc. Systems and methods for emergency data integration
US11228891B2 (en) 2019-07-03 2022-01-18 Rapidsos, Inc. Systems and methods for emergency medical communications
CN112422602B (zh) * 2019-08-23 2022-02-22 阿里巴巴集团控股有限公司 分布式协调服务的处理方法及装置、系统
CN111901386B (zh) * 2020-06-30 2023-05-09 广东浪潮大数据研究有限公司 一种远端文件处理的方法、系统、设备及可读存储介质
CN114449025B (zh) * 2020-10-16 2024-03-08 上海汽车集团股份有限公司 一种通信方法及系统
CN112689011B (zh) * 2020-12-24 2023-05-26 北京浪潮数据技术有限公司 一种基于nfs协议的业务传输方法、装置、设备及介质
US11330664B1 (en) 2020-12-31 2022-05-10 Rapidsos, Inc. Apparatus and method for obtaining emergency data and providing a map view
CN114024998B (zh) * 2021-11-11 2023-05-23 瑞斯康达科技发展股份有限公司 一种基于netconf协议的支持多会话的方法和装置
CN115328408B (zh) * 2022-10-14 2023-01-03 联想凌拓科技有限公司 用于数据处理的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470390B1 (en) * 1999-06-29 2002-10-22 Cisco Technology, Inc. Method and apparatus for a dual connection communication session
US6549934B1 (en) * 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301280A (en) * 1989-10-02 1994-04-05 Data General Corporation Capability based communication protocol
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5682478A (en) 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
GB2358548B (en) * 1999-05-18 2003-09-10 Bob Tang Methods for fast establishment of modem-to-modem data link via PSTN bypassing present lengthy modem negotiations
US6795851B1 (en) 2000-06-19 2004-09-21 Path Communications Inc. Web-based client/server communication channel with automated client-side channel endpoint feature detection and selection
US7174534B2 (en) 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US7219149B2 (en) * 2003-06-12 2007-05-15 Dw Holdings, Inc. Versatile terminal adapter and network for transaction processing
JP3703457B2 (ja) * 2003-01-21 2005-10-05 キヤノン株式会社 アドレス通知方法、プログラム、及び、装置
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7613169B2 (en) * 2004-03-16 2009-11-03 Nokia Corporation Enhancement of packet transfer mode when circuit switched resources are requested
JP2006333433A (ja) * 2005-05-25 2006-12-07 Microsoft Corp データ通信プロトコル
US8332526B2 (en) * 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US20060282545A1 (en) * 2005-06-11 2006-12-14 Arwe John E Method and apparatus for application or protocol version negotiation
US7526558B1 (en) * 2005-11-14 2009-04-28 Network Appliance, Inc. System and method for supporting a plurality of levels of acceleration in a single protocol session
US8489761B2 (en) * 2006-07-10 2013-07-16 Solarflare Communications, Inc. Onload network protocol stacks
US7991830B2 (en) 2007-02-28 2011-08-02 Red Hat, Inc. Multiple sessions between a server and multiple browser instances of a browser
US9081902B2 (en) * 2008-06-20 2015-07-14 Microsoft Technology Licensing, Llc. Generalized architecture to support representation of multi-transport devices
US9219733B2 (en) 2008-06-30 2015-12-22 Microsoft Technology Licensing, Llc Software-based aliasing for accessing multiple shared resources on a single remote host
US8706887B2 (en) * 2009-06-29 2014-04-22 Sap Ag Multi-channel sessions
US8838800B2 (en) * 2009-11-23 2014-09-16 Hewlett-Packard Development Company, L.P. Binding resources in a shared computing environment
EP2569916B1 (en) * 2010-05-09 2016-01-20 Citrix Systems Inc. Systems and methods for allocation of classes of service to network connections corresponding to virtual channels

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549934B1 (en) * 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
US6470390B1 (en) * 1999-06-29 2002-10-22 Cisco Technology, Inc. Method and apparatus for a dual connection communication session

Also Published As

Publication number Publication date
CN102571756A (zh) 2012-07-11
EP2649531B1 (en) 2018-08-01
KR20130126630A (ko) 2013-11-20
AU2011338481A1 (en) 2013-05-30
CA2817051A1 (en) 2012-06-14
JP2014501978A (ja) 2014-01-23
JP5882353B2 (ja) 2016-03-09
WO2012078689A3 (en) 2012-09-07
EP2649531A4 (en) 2014-12-10
US20120144019A1 (en) 2012-06-07
EP2649531A2 (en) 2013-10-16
KR101811087B1 (ko) 2017-12-20
MX2013006422A (es) 2013-07-03
WO2012078689A2 (en) 2012-06-14
BR112013013794A2 (pt) 2016-09-13
US8806030B2 (en) 2014-08-12
BR112013013794A8 (pt) 2017-09-19
AU2011338481B2 (en) 2016-09-29
RU2013125953A (ru) 2014-12-10
RU2595752C2 (ru) 2016-08-27

Similar Documents

Publication Publication Date Title
CN102571756B (zh) 文件系统会话中的多信道连接
US6522884B2 (en) System and method for dynamically routing messages transmitted from mobile platforms
US8103247B2 (en) Automated secure pairing for wireless devices
CN111866956B (zh) 一种数据传输方法及对应的设备
US7894828B2 (en) System and method for establishing peer-to-peer bandwidth sharing ad hoc networks
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
EP2357772B1 (en) Video transcoding using a proxy device
US10447590B2 (en) Systems and methods for dynamic connection paths for devices connected to computer networks
US20080104170A1 (en) Collaborative Networks for Parallel Downloads of Content
US9723069B1 (en) Redistributing a connection
CN110808948B (zh) 远程过程调用方法、装置及系统
JP6395867B2 (ja) OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ
CN103125141A (zh) 移动宽带网络接口的聚合
Xing et al. MPTCP meets big data: Customizing transmission strategy for various data flows
WO2023151264A1 (zh) 负载均衡方法、装置、节点及存储介质
CN110417632B (zh) 一种网络通信方法、系统及服务器
CN114500176B (zh) 用于vpn的多流负载均衡方法、装置、系统及存储介质
CN109587028B (zh) 一种控制客户端流量的方法和装置
Li et al. 6G cloud-native system: Vision, challenges, architecture framework and enabling technologies
WO2022016558A1 (zh) 一种业务连续性事件的通知方法及装置
CN106899635B (zh) 文件传输协议数据链路实现固定通信端口的方法及装置
CN115801298A (zh) 文件传输的方法、系统、设备和存储介质
CN114448670B (zh) 一种数据传输方法、装置及电子设备
WO2024078050A1 (zh) 进行数据传输的方法和装置
CN115665047A (zh) 报文传输控制方法、装置、介质及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant