CN1870642B - 用于通过使用数据通信协议在网络计算环境内通信的方法 - Google Patents
用于通过使用数据通信协议在网络计算环境内通信的方法 Download PDFInfo
- Publication number
- CN1870642B CN1870642B CN2005101279978A CN200510127997A CN1870642B CN 1870642 B CN1870642 B CN 1870642B CN 2005101279978 A CN2005101279978 A CN 2005101279978A CN 200510127997 A CN200510127997 A CN 200510127997A CN 1870642 B CN1870642 B CN 1870642B
- Authority
- CN
- China
- Prior art keywords
- smb2
- client
- server
- data
- request
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/147—Signalling methods or messages providing extensions to protocols defined by standardisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/02—Protocol performance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
描述的是数据通信协议,其中以一种当服务器不能采用客户端想要的协议时不要求客户端重试协商的方式进行客户端和服务器协商。在一个示例实现中,希望的协议是SMB 2.0或更高的版本。协议描述具有可能为内置的可扩展性而附加的额外上下文数据的创建命令、以及包括多个相关命令或无关命令的复合命令。多信道命令请求在单独数据信道上的数据传送,签名的能力验证可被用以确保安全连接被建立,协议提供响应于请求从服务器传送扩展的错误数据的能力。
Description
有关申请的交叉参考
本申请要求于2005年5月25日提交的美国临时专利申请第60/685,008号的优先权,并且该专利申请引用在此作为参考。本申请涉及同时提交的、被转让于本发明的受让者的发明名称为“Data Communication Coordination with Sequence Numbers”(利用顺序号的数据通信协调)的、代理人档案号为5660/313764的共同待批的美国专利申请,该专利申请引用在此作为参考。
背景技术
许多诸如SMB(服务器信息块)协议的如今依然在使用的数据通信协议是在计算资源非常不同的时期所开发的,例如,那时网络带宽通常是有限的并且存储器非常珍贵。结果,当在当代网络中使用时,这样的协议可能限制总体性能。例如,由于是在存储器有限的情况下设计的,所以使用了小的缓冲器大小,以致需要更多的往返行程以传递大量数据。
此外,现有的SMB协议具有随着时间而变得明显的其他限制。例如,现有的SMB协议容易受到服务拒绝攻击;协议的设计使其难于对抗这些攻击。同样地,确保分组安全的方法是麻烦的。并且,当前没有用于执行类似服务质量的操作的机制,因为例如受信任的客户端获得与不被信任的客户端相同的服务器资源。
虽然SMB协议的各种修订版或方言(dialect)已经随着时间而被开发,但是那些方言中的每个方言实质上是基于补丁的方式,该方式调节多个部分以添加某些额外的特征。如此,可扩展性不直接。总而言之,尽管现有的SMB修订版依然是经常使用的以及有价值的协议,但当与当代网络资源结合使用时是较不理想的。
发明内容
简而言之,本发明的各种方面针对数据通信协议,客户端和服务器使用该数据通信协议用于诸如文件共享之类的通信。客户端发送标识一组客户端理解的协议方言的协商分组至服务器。分组以一种格式存在以使在不要求另一请求的情况下,不能通过第二数据通信协议通信的服务器可表明应该使用第一通信协议。如果服务器能够通过第二数据通信协议通信,那么它将这样回应。客户端将调用通过由服务器表明的相应协议处理与服务器通信的驱动。在一示例实现中,第二通信协议是SMB 2.0或更高级的版本。
协议的其他方面和增强可包括具有附加的其他上下文数据的创建命令,以及包括多个相关命令或无关命令的复合命令。还有其他方面和增强包括涉及请求在独立数据信道上的数据传送的多信道命令、确保安全连接被建立的签名能力验证请求、以及响应于请求从服务器传送扩展的错误数据的能力。
当服务器接收到复合请求时,服务器确定该复合请求是否包括无关命令或相关命令。当复合请求包括无关命令时,每个请求被处理成单独请求,否则,当复合请求包括相关命令时,每个请求被顺序地处理。当相关命令包括创建/打开命令时,来自创建/打开命令的文件处理被用于在服务器上的每个后续的相关命令,例如,不需要等待来自客户端的处理返回。
其他优点将从以下结合附图的详细的描述中变得明显。
附图说明
本发明仅作为例子而被说明,不被附图所限制,其中相同的编号表明相同的元素,其中:
图1显示了本发明的各方面可结合于其中的一般计算环境的示例性例子。
图2是表示了根据本发明的各方面的、客户端和服务器可在其中进行通信的示例网络环境。
图3是一表示根据本发明的各方面的在客户端和服务器之间的示例协商和会话建立的时序图。
图4是表示根据本发明的各方面的、包括具有创建上下文的创建命令的各种命令的时序图。
图5是表示根据本发明的各方面的、在客户端和服务器之间的复合请求和可能的响应的时序图。
图6是根据本发明的各方面、在多信道上客户端-服务器通信的表示。
图7是根据本发明的各方面的安全连接的验证的表示。
图8是根据本发明的各方面的、使用基于符号连接的例子的扩展的错误返回信息的表示。
具体实施方式
示例性操作环境
图1示出了可在其中实现本发明的一合适的计算系统环境100的示例。计算系统环境100只是一合适的计算环境的一例,而不是要提出对本发明使用或功能的范围进行限制。计算系统环境100也不应解释成对于在示例计算系统环境100中所示出的任一组件或其组合有任何依赖或需求。
本发明用多个其它通用或专用计算系统环境或配置是可运行的。可以适用于本发明使用的公知的计算系统、环境、和/或配置的实例包括,但不局限于,个人计算机、服务器计算机、手持设备或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括任何诸如以上系统或设备的分布计算环境等、诸如打印服务器或打印机本身的各种网络应用设备中的一个、以及NAS存储设备等。
本发明可以在诸如由计算机执行的程序模块的计算机可执行指令的一般上下文中被描述。一般地,程序模块包括完成特定任务或执行特定抽象数据类型的例行程序、程序、对象、组件、数据结构等。本发明也可以在分布式计算环境中实践,其中通过连接到计算网络的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和/或远程计算机存储介质中。
参见图1,用于实现本发明的示例系统包括采用计算机110形式的通用计算设备。计算机110的组件可包括,但不局限于,处理单元120、系统存储器130、以及将包括系统存储器在内的各种系统元件耦合至处理单元120的系统总线121。上述系统总线121可以是多种总线体系结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构的任一种的局部总线。举例来说,而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型工业标准体系结构(EISA)总线、 视频电子标准技术协会(VESA)局部总线、和也被称为Mezzanine总线的外围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是任何计算机110能够访问的可用介质,包括易失性的和非易失性的介质、可移动的和不可移动的介质。举例来说,而非限制,计算机可读介质可以包含计算机存储介质和通信介质。计算机存储介质包括能以任何方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。计算机存储介质包括,但不局限于,RAM、ROM、EEPROM、闪存或其它存储技术,CD-ROM、数字多功能盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储器或其它磁存储设备,或任何其它可以被用来存储想要的信息并且可以被计算机110访问的介质。通信介质通常在诸如载波或其它传送机制的已调数据信号中收录计算机可读指令、数据结构、程序模块或其它数据,也包括任何信息传递介质。术语“已调制数据信号”是指在该信号中以编码信息的方式来设置或改变其一个或多个特征的信号。举例来说,而非限制,通信介质包括诸如有线网或直接线缆连接的有线介质,和诸如声音、射频、红外线和其它无线介质的无线介质。任何以上所述的组合也可以包括在计算机可读介质的范围之内。
系统存储器130包括以诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器的形式的计算机存储介质。包含如在启动期间帮助在计算机110内各元件之间传送信息的基本例行程序的基本输入输出系统(BIOS)133,通常存储在ROM 131中。RAM 132通常包含可以被处理单元120立即访问和/或当前操作的数据和/或程序模块。举例来说,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括其它可移动/不可移动、易失性/非易失性的计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁性介质读出或写入不可移动、非易失性磁性介质的硬盘驱动器141、从可移动、非易失性磁性磁盘152读出或写入可移动、非易失性磁性磁盘152的磁盘驱动器151、以及从诸如CD ROM或其它光学介质的可移动、非易失性光盘156读出或写入可移动、非易失性光盘156的光盘驱动器155。其它可以使用在示例的操作环境中 的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不局限于,盒式磁带、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM、等。硬盘驱动141通常通过诸如接口140的不可移动存储接口连接到系统总线121,磁盘驱动151和光盘驱动155通常通过诸如接口150的可移动存储接口连接到系统总线121。
以上讨论并且在图1中示出的驱动器及其它们相关的计算存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。在图1,例如,示出硬盘驱动141存储操作系统144、应用程序145、其它程序模块146、和程序数据147。需要注意的是这些组件可以和操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以和它们不同。在此对操作系统144、应用程序145、其它程序模块146和程序数据147给出了不同的标号来说明至少它们是不同的副本。用户可以通过诸如写字板、或电子数字转换器164、麦克风163、键盘162和定位设备161把指令和信息输入到计算机110中,定位设备161通常如鼠标、轨迹球或触摸板。其它输入设备(图1中未示)可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常由用户输入接口160连接到处理单元120,上述输入接口160和系统总线121相耦合。但是上述和其它输入设备也可以由其它接口和总线结构连接到处理单元120,诸如,并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型显示设备也可以通过诸如视频接口190的接口连接到系统总线121。监视器191也可以和触摸屏等集成在一起。需要注意的是监视器和/或触摸屏可以物理地耦合到包含了计算机110的一外壳,诸如写字板式个人计算机。另外,诸如计算机110的计算机也可包括其它外围输出设备,诸如可以通过一输出外围设备接口194等连接的扬声器195和打印机196。
计算机110可以在网络化的环境中运行,该环境使用逻辑连接连接到一个或多个诸如远程计算机180的远程计算机。远程计算机180可以是个人计算机、服务器、路由器、网络个人计算机、对等设备或其它公共网络节点,通常包括以上描述的和110相关的多个或全部组件,尽管在图1中只示出了存储器存储设备181。在图1中描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这样的网络环境在办公室、企业范围的计算 机网络、内联网和因特网中是普遍的。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或通过诸如因特网的WAN 173建立通信的其他装置。调制解调器172可以是内置的或外置的,可以通过用户输入接口160或其它适当的机制连接到系统总线121。在一网络连接的环境中,所描述的和计算机110相关的程序模块或其中的一部分可以存储在远程存储器存储设备内。举例说明,但非限制,图1示出了驻留在存储设备181上的远程应用程序185。可以理解的是所示的网络连接是示例的,也可以使用在计算机间建立通信链路的其他手段。
数据通信协议
在此描述的技术的各方面针对诸如SMB协议的较新版本(2.0或以上)的数据通信协议。在此一般描述的一个示例实现中,SMB协议被用于文件数据传送。然而,如可被容易理解的那样,本发明不局限于文件数据,也不局限于在此描述的任何具体实现或示例。相反,各种实现本发明的方式都是可行的,包括用于与打印机、指定的数据管道、类属设备等的通信。如此,本发明不局限于在此使用的任何具体的基于文件的示例,而是可以一般在计算中提供益处和优点的多种方式被使用。
在此描述的技术的其他各种方面针对SMB的新修订版,文件-服务器交互可基于此SMB的新修订版而构建。如可被理解的那样,提供了一种支持现有(高级)功能的更轻型的协议,并且该协议也更可扩展和更容易用新特征来更新。
转到图2,显示了表示一个示例网络环境的框图,在该网络环境中客户端202与服务器204通过一个或多个通信信道通信。尽管客户端202和服务器204的功能和组件被描述成位于两个单独的计算机内,诸如图1的主计算机系统100和远程计算机系统180,但这两个计算机的组件或它们执行的功能可在一个机器上被提供、或可被分布在多个计算机上。
来自应用程序206的网络文件系统命令由客户端重定向器组件208处理,该客户端重定向器组件208与对应的公共网络模块(SRVNET)210通信,以在文件系统212上执行命令。在这样的命令被处理之前,协商客户端和服务器同 意的通信协议,一般是双方都理解的最新的版本/方言。
一般地,如图3所一般表示的那样,客户端202建立连接并随后与服务器204协商以最终建立会话。尽管客户端可直接对服务器表明其是SMB 2.X客户端,(其中如在此使用的,数字2.X表示相对于现有SMB 1.X版本的任何较新的版本),客户端也可通过向后兼容协商分组协商。通过这种方式,客户端也能与只具有SMB 1.X能力的服务器通信,并且是不需要当较高级协商尝试失败的情况下建立单独连接的。与此同时,用于实现每个协议的代码可被封装至它自己的独立的驱动中。
在一示例实现中,客户端SMB引擎组件220提供分组至服务器(例如,服务器204),该分组表明客户端202正在协商至少是SMB 1.0会话。对于既说SMB1方言又说协议新的SMB2修订版的客户端202,客户端可发送传统的SMB1协商分组,但是该分组还包括表明该分组实际上请求SMB 2.X(如果可行的话)的指示。具有SMB2能力的服务器将检测到该请求,并以SMB2协商响应来响应。更具体地,为了表明客户端202具有SMB 2.X的能力,SMB 1.0协商分组包括一组方言串,这些串中的一个表明客户端也具有SMB 2.X通信的能力。
如此,客户端202发送包括客户端202支持的较小的修订版号的初始协商。一个当前的修订版是0,即SMB 2.0;今后,客户端可要求支持方言修订版的任何子集。
当服务器204接收分组时,服务器将基于它的能力做出响应。服务器204可以SMB 1.0协商响应做出回应,并带有任何1.X方言信息,或者如果服务器有SMB 2.X通信的能力,那么它将以SMB 2.0协商响应做出响应。具体的SMB方言修订版也可被返回,该SMB方言修订版匹配方言串中的一个,一般是在客户端202提供的方言版本中服务器204可处理的最大号的版本。
为此,一旦服务器204知道客户端202说的是哪些方言修订版,那么它把这些与服务器204理解的修订版进行比较,并返回较佳的公共方言修订版(通常是最高的)。例如,如果服务器支持方言1-8,但是客户端只支持1、2、和4,那么服务器将返回4。这提供给客户端202有关它能发送哪个命令到服务器204的清楚的理解。为了选择使用哪个方言,SRVNET模块210实质上开始协商,把分组以相对于版本/方言从最高至最低的顺序传送至它所具有的每个SMB提 供器2221-222m,直到一个SMB提供器同意基于分组内容处理该通信会话为止。此后,在该连接上的通信被传递至那个提供器,在此示例中是SMB 2.0提供器222m。
在客户端处,SMB引擎组件220接收响应,并基于响应中的版本/方言信息知道使用哪个客户端SMB组件2241-224n用于与服务器通信。通过这种方式,客户端202和服务器204商定对于给定的会话使用哪个SMB方言。需要注意的是客户端可具有多个同时运行的SMB组件2241-224n,每个组件是不同的版本/方言,由此例如客户端可通过SMB 1.X与一个服务器通信,而同时该客户端可通过SMB 2.X与另一个服务器通信。
服务器204也返回其他信息给客户端,包括告诉客户端202服务器204是否要求安全签名的安全模式。注意,先前的安全签名是可用的,然而首批少量的(例如,能力协商)分组畅行无阻,由此攻击者可能迫使一客户端进入较低级协议,而攻击者知道该较低级协议中的弱点。
安全连接通过向另一方提供签名的能力验证往返行程来操作(不管签名是否是可用的或不可用的)。图7显示了这样的请求/响应随动会话设置。其他诸如IP地址的信息可被放到分组内以使服务器实际上可验证是它而不是另一实体作出了响应。如果IPSEC或任何其他形式的网络安全是活动的,那么签名可被关闭。
服务器204可返回服务器的能力位,例如,服务器是否明白DFS(分布式文件系统),以及它是否能够LWIO(轻型IO)。客户端202不处理它不理解的任何能力位,如果服务器204具有比客户端的相应版本更新的版本,这就可能发生。可在协商交换中被返回的其它信息包括服务器的唯一ID、服务器可接受的最大读/写大小、用于更快写操作的数据偏移量提示、服务器的当前系统时间、以及用于在扩展的安全性的情况下的种子鉴别(seed authentication)的安全信息。
会话设置处理新会话的鉴别过程,该过程可以是多往返行程事件。客户端202查询本地安全系统关于安全块(security blob)以通过网络发送,以及发送第一会话设置,填写了能力、最大大小字段、和以下描述的VcNumber。服务器204接收该块并把它给予安全系统。如果服务器204确定需要更多的信息, 那么它将返回它自己的具有错误代码STATUS_MORE_PROCESSING_REQUIRED的安全块。客户端202把该块发送回上述本地安全系统,并且该过程重复直到失败发生或鉴别成功为止。
VcNumber告诉服务器204是否存在从该相同的客户端202建立的其它连接。如果VcNumber是0,那么服务器204就假设没有从该客户端建立其它连接,并且将拆毁它所发现的任何这样的连接(假设它们是失效的)。如果VcNumber是1或更大,那么服务器204将不拆除任何现有的连接。
信道(Channel)告诉服务器204该客户端202正试图与现有的会话建立另一连接。会话可由用户/计算机对来识别,该会话设置是从该用户/计算机对被接收的。信道共享相同的TreeId/UserId/ProcessId/FileID信息。对于信道鉴别,鉴别块可以是询问—响应,该询问—响应在第一信道上被加密,并且通过第二信道被返回,以允许客户端202和服务器204之间相互地鉴证。在成功响应后,服务器204还会通知该客户端202它是否已经被鉴别为Guest(客人)或Null(空)用户,或被鉴别为其中的任何一个。
一旦会话被建立,那么客户端202可使用以下描述的包括创建、读、写和关闭的各种命令来执行数据传送,以及执行文件锁定和目录相关的操作。如在以上提到的“利用顺序号的数据通信协调”的专利申请中描述的那样,当使用这些命令时,服务器能控制客户端对服务器资源的使用。并且,协议提供许多关于什么信息被传递以及它如何被传递的有效改进。
如在图4中一般化地表示的那样,创建命令已经被扩展成允许上下文信息被附加到命令上;一般地,上下文信息包括标记于创建命令的任意的额外创建参数。例如,用于关于事务文件系统的创建命令的事务标识符可被附加。只要服务器理解该额外的上下文信息,服务器就能被告知扩展的信息,(需要注意的是服务器将忽略它们不理解的额外数据),并返回与上下文关联的信息。如可被容易地理解的那样,这在不更改协议的情况下提供了额外的功能,实质上提供了内置的可扩展性。
命令ID和方言修订版号被在以下描述的新的SMB头部所提供。与UCHAR相比,头部具有用于命令字段的USHORT;通过使用该USHORT的第一字节表示方言、以及使用较后的字节表示命令,对于现有的命令明确定义了命令表,很大 一部分可用于以后扩展。一般地,客户端可对每个方言维护一张表,该表包含对发出给定命令的功能的指针。对于具有支持的单个方言的客户端,表如以下被描述:
命令 | 方言#1 |
创建 | SmbCreate1 |
读 | SmbRead1 |
写 | SmbWrite1 |
关闭 | SmbClose1 |
为了高速缓存功能,更多的信息可在Close(关闭)时从文件中被检索。如此,新的关闭命令被提供以支持该新的功能。现在客户端支持两种方言,表如以下所描述:
命令 | 方言#2 | 方言#1 |
创建 | SmbCreate1 | SmbCreate1 |
读 | SmbRead1 | SmbRead1 |
写 | SmbWrite1 | SmbWrite1 |
关闭 | SmbClose2 | SmbClose1 |
需要注意的是大部分功能保持相同,除了更改的关闭命令。并且,客户端现在能与方言2服务器通话并且使用新的功能,但是对于方言1服务器而言,它依然使用旧的功能。对于与方言1服务器的通信没有更改。
随着技术的发展,新的诸如能执行相对更多读和写的网络硬件变得可用。为了该版本,方言#3被提供,由此表被扩展成如下:
命令 | 方言#3 | 方言#2 | 方言#1 |
创建 | SmbCreate1 | SmbCreate1 | SmbCreate1 |
读 | SmbRead3 | SmbRead1 | SmbRead1 |
写 | SmbWrite3 | SmbWrite1 | SmbWrite1 |
关闭 | SmbClose2 | SmbClose2 | SmbClose1 |
具有这样的表的客户端能讲三种方言,并且将利用每个方言中可用的功能。使用该方法的某些优点包括:由于命令由(方言|命令)组成,每个SMB命令可被映射回它被引入的方言。这使得确定命令何时被引入以及什么服务器支持它们变得容易。如果给定的命令的功能在新的方言中没有更改,那么代码不更改。如果功能被更改,那么下级接口代码不更改,而新的代码被添加以支持新功能。
在服务器方,服务器分派表变成在(方言)和(命令)之间的双切换。这 允许在代码内逻辑地分离新的功能,使得它更容易被理解和更改。
转到提供效率的协议的一个方面,多个命令可被复合成单个分组(或某些较少数量的分组)。由此,复杂任务可通过减少在客户端202和服务器204之间往返次数的方式被执行。作为例子,复合请求分组可包含创建/打开文件的命令、写文件的命令以及读文件的命令。由此,复合对相关操作(例如,具有相同文件句柄)起作用,并也为要被结合的无关操作做准备。
复合相关请求的例子被一般地表示在图5中,其中(例如,与图4相对比)单个请求能处理读和写,只要提供适当的参数。需要注意的是如图5中所表示的那样,单个请求可接收复合响应和/或个体响应,这取决于例如它们何时完成。诸如创建/打开、读、写和关闭之类的更复杂的请求可在单个请求内。这可通过把分组标记为具有相关操作来实现;服务器将知道它在创建/打开之后接收的文件句柄适用于复合请求内的其他命令。然而,需要注意的是,相关复合请求以它们被封装的顺序被处理,并且从而客户端负责在发送之前确保它们被正确地排序。
SMB2中的复合比存在于SMB1中的复杂规则更为简单。为此,SMB2_HEADER(以下详细描述)包含用于标识下一命令头部离当前命令的头部的偏移量的“NextOffset”。每个命令具有它自己的包括单独MessageId的SMB2_HEADER。如图5所表示的,一个服务器响应或多个服务器响应可以是单个复合的响应或是单独的响应。在失败事件中,响应与任何其他失败的命令相同。
对于无关消息,命令总是被处理好像它们被单独地接收那样。这允许重定向器或中间组件自动地复合无关分组。延迟可被用于获取分组以复合,尤其是在延迟时间相对于往返时间要小的情况下。由于服务器处将它们作为单独地被接收,服务器不需要被另外修改以解包这种复合无关请求。然而,由于服务器可结合另外的单独响应,执行复合的实体可能必须分离任何复合响应。
相关模式允许客户端发送要被依次执行的一系列命令,其中一个命令的结果可能用于下一个命令。这样的命令共享相同的会话/过程/树/文件ID,它们将被依次执行并在第一个错误处停止处理。如果在失败后有其他命令要处理,那么操作立即失败,并具有STATUS_NOT_PROCESSED。这如何被使用的例子是把会话设置(Session Setup)与树形连接(Tree Contact)配对。如果会话未 能被建立,那么树形连接将永不被尝试并且将失效并具有STATUS_NOT_PROCESSED。如果会话设置成功,那么通过使用来自会话设置命令的SessionId,树形连接被完成。相同的方法可被用以执行在QueryFileInformation之后的创建(Create),或甚至是创建-读-关闭(Create-Read-Close)组。
有条件的以及隐含的复合也是可行的。例如,有条件的复合命令可被发送,诸如如果文件小于64KB,那么打开以及读文件,从而在一次往返中打开和自动获取小的文件,但仅仅打开大的文件。隐含的复合,诸如响应于打开目录请求,即使没有明显地请求也自动地返回目录枚举数据,,这也能减少往返次数。对于这种增强的复合的益处和优点在高等待时间网络中增加。
协议促进提高的效率的另一种方式是通过多信道通信。在客户端和服务器之间,命令的传送连接可结合指定备选信道来流式传输数据的命令而被使用。例如,读请求可指定偏移量和长度以及数据可被读至的备选信道;写请求类似地操作。图6显示了1GB读请求的例子,该读请求从偏移量为0处开始并请求数据被流式传输到数据信道5。
在备选信道上流式传输数据提供了多个益处,包括消除对包括和处理分组头部的需要。客户端可预先公布缓冲器并使数据流入其中,消除对如在传统单信道通信中的从一个缓冲器备份到另一缓冲器的需要。公平性是另一个益处,因为例如控制信道上的一个请求将不需要在其他请求被处理之前等待大量数据(例如,5GB)以完成被传送,因为5GB将通过数据信道。
随着多NIC变得越来越普遍,协议利用任何可用的网络带宽。这包括对于相同会话跨多个连接进行工作,而不管它们被建立于其上的传送(或NIC)。专用硬件可被使用。
如此,通过使用SMB 2.X,会话不必局限于一个连接。相反,多个跨不同的物理连接而存在的“信道”可被建立。会话可在这些连接中的每个连接上存在,并且被用以参考文件和过程的ID在信道之间是公共的。这允许使常规信道进行名字空间操作和创建,而使用专用网络硬件进行读和写(当可用时)。更进一步,由于只要有一个信道对会话保持开放,会话就保持有效,所以小的网络故障不导致丢失数据。各种实现细节在此参考会话设置命令和读/写命令而被描述。
作为例子,考虑通过简单TCP在企业的公共网上建立对服务器的连接的客户端。这是第一连接,所以总是信道0。一旦双方检测到它们具有用于数据传送的专用网(例如,每方都具有千兆位卡),客户端和服务器可通过该卡建立第二连接,如信道1。当客户端浏览某些文件时,目录查询通过信道0被发送,而数据通过信道1被发送。如果客户端要在服务器上被加密的某些目录中浏览,当客户端请求数据时,重定向器识别出数据是敏感的,所以它建立对服务器的新的信道(信道2),该信道上具有活动的IP Sec(IP安全性)。当客户端请求敏感数据时,它将要求数据通过信道2被发送,而正常的较不敏感的数据继续通过信道1(由于这比较快)到来。
如可被容易理解的那样,QoS和安全性改进的机会与简单带宽增益一起提供显著的益处。需要注意的是在信道读/写上,服务器/客户端可在任何数据被读之前拟定接收缓冲器,所以该机制可进一步消除对将数据移动备份出来的需要,这也能提高服务器/客户端的可扩展性。
此外,SMB错误分组被允许用任意数据来标记。因此,关于为何某些过程失败的描述可提供值。符号连接评估是一个例子,如在图8中一般地表示的那样,其中用任意数据标记向客户端提供了有用的信息。实质上,客户端创建请求可通过请求实质上是对于另一路径的符号连接的路径而失败。不是简单地使请求失败,而是提供新路径的信息允许客户端更改到将最终成功的重新解析路径;需要注意的是可能需要多个请求的反复以寻找会成功的路径。
示例协议定义
新头部是64字节结构(例如,一个当前结构的两倍大小)。typedef struct_SMB2_HEADER{ UCHAR Protocol[4]; //包含OxFE,′S′,′M′,′B′ USHORT StructureSize; //=sizeof(SMB2_HEADER).
//(版本化) USHORT Epoch; //每次服务器重新启动时递增 NTSTATUS Status; //命令的状态 USHORT Command; //用于这个分组联合的命令 {
USHORT CreditsRequested; //在客户端发送时,请求更多的信用
USHORT CreditsGranted; //在服务器响应时,信用被授予给客户端 };
ULONG Flags;
ULONG Reserved;
UINT64 MessageId; //标识该消息发送/响应
//发送/响应
union
{
struct
{
UINT64 ProcessId; //过程标识符
UINT64 SessionId; //会话标识符
ULONG TreeId; //树形连接标识符
};
struct
{
UINT64 AsyncId; //用于标识长期命令
};
};
UCHAR Signature[8]; //分组的签名
ULONG NextCommand; //到下一个命令的偏移量}_SMB2_HEADER,*PSMB2HEADER;
Protocol只是协议标识符,以识别分组。对于现有的SMB实现,这包括{OxFF,‘S’,‘M’,‘B’}。对于新的协议,这应该是{OxFE,‘S’,‘M’,‘B’}。
StructureSize标识SMB2_HEADER结构的大小,如果稍候引入其他更改,则将被用于头部(Header)本身内的较小的版本化。
Epoch表示服务器的“版本计数”。当服务器被循环(或服务器服务被终止以及开始)时,Epoch被递增以对客户端表明服务器是否可能已经保存了断开连接时的状态。这是用于将来持续处理并能被考虑成对于时间“预留的”。
Status给出如在现有的SMB实现中的对于给定操作的错误状态。
Command标识如在此描述的分组的命令。
CreditsGranted/CreditsRequested由客户端在发送时使用以请求更多的信用,以及由服务器在响应时使用以在新的信用管理方案内授予更多信用,如在相关的发明名称为“利用顺序号的数据通信协调”的专利申请中所描述的那样。
关于消息的Flags(标志)包括:
#define SMB2_FLAGS_SERVER_TO REDIR 0x00000001
当存在时,表明消息是作为相对于请求的响应。
#define SMB2_FLAGS_ASYNC_COMMAND 0x00000002
在响应时,服务器返回具有设置了该标记的STATUS_PENDING以表明我们正在异步地处理它。
#define SMB2_FLAGS_RELATED_OPERATIONS 0x00000004
在复合消息的客户端消息发送时设置,以表明操作是相关的,所以在Create(创建)中打开的文件被用为用于稍候操作的FileId。
#define SMB2_FLAGS_SIGNED 0x00000008
当分组已经被签名时设置。接收者应该验证该签名。用于签名的密钥基于发送分组的会话。
#define SMB2_FLAGS_DFS_OPERATION 0x10000000
这是DFS操作。服务器应该允许DFS对该名称进行字符解析(munge)。这可被创建选项所代替。
MessageId标识正在被发送的具有它的响应的消息。
ProcessId描述发出命令的过程的客户端侧的标识。
SessionId标识用于命令的建立的会话,或如果没有会话被使用,那么为0。
TreeId标识用于命令的树形连接,或如果没有树形连接被使用,那么为0。
AsynId:如在相关的发明名称为“利用顺序号的数据通信协调”的专利申请中所描述的那样,消息ID实际上是顺序号,并且可用顺序号的窗口总是被设置成向右边滑动。会运行相当长时间的命令(诸如指定的管道读取或更改-通知,或取决于操作锁中断的创建,其中的任何一种能不确定地阻塞)可阻止窗口滑动的能力。为了解决这个问题,服务器能选择性地响应任何具有STATUS_PENDING并设置以上提到的SMB2_FLAGS_ASYNC_COMMAND标记以及提供唯一标识符来代替Session/Tree/ProcessId的命令。这意味着客户端能继续滑动窗口,就好像它接收到响应。在稍后,具有匹配的AsyncId(和CommandId)的真的响应将到来以满足请求。在客户端想要取消这样的命令的事件中,客户端发送具有标记设置和匹配的AsyncId的取消。
除了不再存在隐藏的索引号,安全签名与在先前协议中的一样。借助于对MID的顺序号的使用,索引不在必要。(这避免直接可重现性)。这允许在不迫使操作在传送时被排序的情况下对安全签名的使用。
NextCommand是消息中下一命令离开该头部的起始位置的偏移量。消息应该是 四个一行排列的。对SMB2_FLAGS_RELATED_COMMAND的使用允许各种用于复合的能力,如以上描述的那样。
命令格式
协商(NEGOTIATION)
如以上描述的,客户端和服务器交换协商请求和响应作为帮助它们确定对方能力的“握手”的一部分。
格式#define SMB2_NEGOTIATE_SIGNING_ENABLED 0x01#define SMB2_NEGOTIATE_SIGNING_REQUIRED 0x02#define SMB2_GLOBAL_CAP_DFS 0x00000001#define SMB2_GLOBAL_CAp_LWIO 0x00000002#define SMB2_GLOBAL_CAP_TXF 0x00000004#define SMB2_GLOBAL_CAP_CSE 0x00000008typedef struct_SMB2_REQ_NEGOTIATE{ USHORT StructureSize; //=sizeof(SMB2_REQ_NEGOTIATE) USHORT Reserved; //=0 ULONG DialectCount; //我们支持的方言数 USHORT Dialects[]; //方言修订版号的数组}SMB2_REQ_NEGOTIATE,*PSMB2_REQ_NEGOTIATE;typedef struct_SMB2_RESP_NEGOTIATE{ USHORT StructureSize; //=sizeof(SMB2_RESP_NEGOTIATE) USHORT SecurityMode; //=签名标记 USHORT DialectRevision; //服务器从接收到的列表中选择的方言 USHORT Reserved; GUID ServerGuid; //服务器授予的GUID ULONG Capabilities; //全局服务器能力标记 ULONG MaxTransactSize; //我们将接受或发送的最大事务缓冲器 ULONG MaxReadSize; //支持的最大大小读 ULONG MaxWriteSize; //支持的最大大小写 UINT64 SystemTime; //服务器上的系统(UTC)时间 USHORT EncryptionKeyOffset; USHORT EncryptionKeyLength; USHORT SecurityBufferOffset; USHORT SecurityBufferLength;
UCHAR Buffer[1];}SMB2_RESP_NEGOTIATE,*PSMB2_RESP_NEGOTIATE;
会话设置(SESSION SETUP)
如以上描述的,会话设置处理用于新会话的鉴别过程。
格式typedef struct_SMB2_REQ_SESSION_SETUP{ USHORT StructureSize; //=sizeof(SMB2_REQ_SESSION_SETUP) USHORT VcNumber; //0=第一连接,非0=其他的连接 ULONG Capabilities; //客户端的能力 ULONG Channel; //非0=把新的信道绑定至会话 USHORT SecurityBufferOffset; USHORT SecurityBufferLength; UCHAR Buffer[1]; //安全缓冲器}SMB2_REQ_SESSION_SETUP,*PSMB2_REQ_SESSION_SETUP;#define SMB2_SESSION_FLAG_IS_GUEST 0x0001#define SMB2_SESSION_FLAG_IS_NULL 0x0002typedef struct _SMB2_RESP_SESSION_SETUP{
USHORT StructureSize; //=
//sizeof(SMB2_RESP_SESSION_SETUP)
USHORT SessionFlags;
USHORT SecurityBufferOffset;
USHORT SecurityBufferLength;
UCHAR Buffer[1]; //安全缓冲器}
注销(LOGOFF)
注销现有的会话。
格式typedef struct_SMB2_REQ_LOGOFF{
USHORT StructureSize;
USHORT Reserved;}SMB2_REQ_LOGOFF;typedef struct_SMB2_RESP_LOGOFF{
USHORT StructureSize;
USHORT Reserved;}SMB2_RESP_LOGOFF;
该命令使用在头部中指定的SessionId把会话拆除。打开的文件被关闭,并且其他现有的结构(树形连接等)被拆除。对于该给定的SessionId而言,再没有可被处理的操作。
树形连接(TREE CONNECT)
对在服务器机器上被共享的资源创建树形连接。
格式typedef struct_SMB2_REQ_TREE_CONNECT{ USHORT StructureSize; //=sizeof(SMB2_REQ_TREE_CONNECT) USHORT Reserved; USHORT PathOffset; //完整路径(例如,\\SERVER\SHARE) USHORT PathLength; UCHAR Buffer[1];}SMB2_REQ_TREE_CONNECT,*PSMB2_REQ_TREE_CONNECT;#define SMB2_SHAREFLAG_MANUAL_CACHING 0x00000000#define SMB2_SHAREFLAG_AUTO_CACHING 0x00000001#define SMB2_SHAREFLAG_VDO_CACHING 0x00000002#define SMB2_SHAREFLAG_NO_CACHING 0x00000003#define SMB2_SHAREFLAG_CACHING_FLAGS 0x00000003//Reserved share cap 0x00000001//Reserved share cap 0x00000002//Reserved share cap 0x00000004#define SMB2_SHARE_CAP_DFS 0x00000008//这是DFS共享#define SMB2_SHARE_TYPE_DISK 0x01#define SMB2_SHARE_TYPE_PIPE 0x02typedef struct_SMB2_RESP_TREE_CONNECT{
USHORT StructureSize; //=sizeof(SMB2_RESP_TREE_CONNECT)
UCHAR ShareType;
UCHAR Reserved;
ULONG ShareFlags;
ULONG Capabilities;}SMB2_RESP_TREE_CONNECT,*PSMB2_RESP_TREE_CONNECT;
客户端向服务器发出该命令以建立树形连接。Path(路径)是\\server\share的格式并且被填充到缓冲器中。服务器名称的包括在内是考虑到类似共享范围的特征。
在来自服务器的成功响应时,客户端接收头部内的TreeId和ShareFlags与ShareCapabilities。当前,共享标记对客户端表明哪些CSC高速缓存器特性是用于共享的,但是更多的特性可在随后被添加。能力告诉客户端返回共享的文件系统是 否支持文件级安全性、时间异常(timewarp)、TxF(事务文件系统)、或客户端加密中的任何一种。如果文件系统在某些子树而不是所有子树上(诸如固定点的情况)支持这些特性,那么应该返回它不支持这些特性并仅仅阻止个体请求在不允许的情况下使用它们。客户端应该忽略它不理解的任何标记或能力。
树断开连接(TREE DISCONNECT)
拆除现有的TreeConnect。
格式typedef struct_SMB2_REQ_TREE_DISCONNECT{ USHORT StructureSize; USHORT Reserved;}SMB2_REQ_TREE_DISCONNECT;typedef struct_SMB2_REQ_TREE_DISCONNECT{ USHORT StructureSize; USHORT Reserved;}SMB2_REQ_TREE_DISCONNECT;
一旦命令被处理,在给定的TreeId上不再有操作可被成功完成。TreeId取自于头部。
创建(CREATE)
打开文件、打印机、或管道。
格式#define SMB2_OPLOCK_LEVEL_NONE 0#define SMB2_OPLOCK_LEVEL_II 1#define SMB2_OPLOCK_LEVEL_EXCLUSIVE 8#define SMB2_OPLOCK_LEVEL_BATCH 9#define SMB2_OPLOCK_LEVEL_DIRCHANGE 16typedef struct_SMB2_REQ_CREATE{ USHORT StructureSize; //=sizeof(SMB2_REQ_CREATE) UCHAR SecurityFlags; //QOS安全标记 UCHAR RequestedOplockLevel; //希望的操作锁等级 ULONG ImpersonationLevel; //QOS安全信息 UINT64 SmbCreateFlags; UINT64 RootDirectoryFid; //用于相对的打开 ACCESS_MASK DesiredAccess; ULONG FileAttributes; ULONG ShareAccess; ULONG CreateDisposition; ULONG CreateOptions; USHORT NameOffset; //相对于共享的名称 USHORT NameLength; ULONG CreateContextsOffset; //额外的创建参数 ULONG CreateContextsLength; UCHAR Buffer[1]; //Name[],CreateContexts[]}SMB2_REQ_CREATE,*PSMB2_REQ_CREATE;typedef struct_SMB2_CREATE_CONTEXT{ ULONG Next; USHORT NameOffset; USHORT NameSize; USHORT Reserved; USHORT DataOffset; ULONG DataSize; UCHAR Buffer[1];//Name[],Data[]}SMB2_CREATE_CONTEXT,*PSMB2_CREATE_CONTEXT;typedef struct_SMB2_RESP_CREATE{ USHORT StructureSize; //=sizeof(SMB2_RESP_CREATE) UCHAR OplockLevel; //授予文件的操作锁 UCHAR Reserved; ULONG CreateAction; //由创建采取的动作 UINT64 FileId; //用于该打开的ID UINT64 CreationTime; //文件时间信息 UINT64 LastAccessTime; UINT64 LastWriteTime; UINT64 LastChangeTime; UINT64 AllocationSize; //文件大小信息 UINT64 EndOfFile; ULONG FileAttributes; //文件的NT属性 ULONG Reserved2; //用于8字节的排列 ULONG CreateContextsOffset; //对于额外创建参数的响应 ULONG CreateContextsLength; UCHAR Buffer[1]; //CreateContexts[]}SMB2_RESP_CREATE,*PSMB2_RESP_CREATE;#define SMB2_CREATE_EA_BUFFER (ULONG)(′AtxE′)#define SMB2_CREATE_SD_BUFFER (ULONG)(′DceS′)#define SMB2_CREATE_MARSHALLED_TRANSACTION (ULONG)(′xTrM′)#define SMB2_CREATE_MINIVERSION (ULONG)(′rVnM′)#define SMB2_CREATE_VERSION (ULONG)(′sreV′)#define SMB2_CREATE_NTFS_FID (ULONG)(′diFN′)#define SMB2_CREATE_TIMEWARP_TOKEN (ULONG)(′prWT′)#define SMB2_CREATE_EFS_STREAM (ULONG)(′sfES′)#define SMB2_CREATE_CLIENT_SIDE_ENCRYPTION (ULONG)(′1ESC′)
创建请求是长度可变的请求以允许用除了传统的明确定义的属性外的各种属性进行文件的创建。标准的情况(其中没有扩展的属性存在)是简单直接的;客户端填充RootDirectoryFid(如果希望的话,用于相对的打开)、DesiredAccess、FileAttributes、ShareAccess、CreateDisposition、以及CreateOptions。它们设置希望的操作锁等级并填充QoS的SecurityFlags和Impersonation等级。当前,没有定义的SmbCreateFlags但是有用于它们的使用的被分配好的空间。客户端把该分组发送至服务器,服务器打开文件并返回失败代码,或返回与标识文件的FileId、Creation/LastAccess/LastWrite/LastChangeTime、AllocationSize以及EndOfFile信息、和FileAttributes一起的Success(成功)。
这是与以当前协议操作的方式大部分相同的一般情况。对于更高级的情况,考虑用户要创建具有扩展属性(EA)的文件。在先前的协议中,有一种通过Transact(事务)调用来处理这个的完全不同的方式。现在,客户端能如一般地建立创建请求,并也能在创建请求的末端处添加CreateContext。请求将具有名称“ExtA”并且Data(数据)将包含要设置在文件上的EA。当服务器接收到这个请求时,它会分析出EA数据并把该EA数据与创建一起发出。创建上下文也能在创建响应时被返回以提供其他信息。对于第一次迭代,名称长度是4,从而我们能把它们格式成一样长并在它们上面切换。CreateContext的当前列表如下:
1)“ExtA”-数据包含要放置在创建的文件上的扩展属性。
2)“SecD”-数据包含要放置在创建的文件上的相对于自己的安全描述符。
3)“TWrp”-数据包含应该被用于寻找要打开的文件的时间异常时间标记。
时间标记采用系统时间格式。
4)“MrTx”-数据包含当事务性地打开文件时要被使用的编组的事务。
5)“MnVr”-数据包含最小版本号(ULONG)以打开处理的文件。
6)“Vers”-数据包含打开的文件(创建响应)的版本号(ULONG)。
7)“NFid”-数据包含打开的文件(创建响应)的NTFS Fid
(LARGE_INTEGER)。
8)“$Efs”-数据包含要被标记在新的加密文件上的$EFS流。
9)“CSE1”-数据包含打开的加密文件(创建响应)的$EFS流。
由于服务器的支持,更多的CreateContext值可被添加。(由于值被添加,它们具有或与它们关联或与新方言版本关联的能力位,以使客户端在发出创建请求之前知道服务器支持哪些标记)。接收具有未被识别的上下文标记的创建请求的服务器会使该请求失败。
关闭(CLOSE)
客户端发送Close以关闭先前被打开的文件的实例。一旦关闭被处理,那么在先前的FID上没有文件操作被允许。
格式typedef struct_SMB2_REQ_CLOSE{ USHORT StructureSize; USHORT Reserved; ULONG Flags; UINT64 FileId; UINT64 LastWriteTime;}SMB2_REQ_CLOSE,*PSMB2_REQ_CLOSE;typedef struct_SMB2_RESP_CLOSE{ USHORT StructureSize; USHORT Reserved;}SMB2_RESP_CLOSE,*PSMB2_RESP_CLOSE;
对于Close命令,客户端指定正被关闭的文件的FileId和LastWriteTime(以SystemTime格式)。这允许客户端设置在文件上被执行的高速缓存的写的最后时间作为对该文件的最后写时间。客户端也能发送0的LastWriteTime以表明它们不希望指定一个时间。该结构也对当前没有被定义的、但可能在随后被定义的Close标记分配空间。
清除(FLUSH)
清除命令通知服务器清除关于给定的文件的所有高速缓存的数据。
格式
typedef struct_SMB2_REQ_FLUSH{
USHORT StructureSize;
USHORT Reserved1;
ULONG Reserved2;
UINT64 FileId;}SMB2_REQ_FLUSH,*PSMB2_REQ_FLUSH;typedef struct_SMB2_RESP_FLUSH{ USHORT StructureSize; USHORT Reserved;}
在从服务器接收成功响应时,客户端被保证所有高速缓存的数据已经被清除到 它们备份持久存储。客户端指定它希望清除的文件的FileId。直到所有数据从管道中消除,该管道上的清除才返回,这需要花费一些时间。
读(READ)
从打开的文件中读数据。
格式typedef struct_SMB2_REQ_READ{ USHORT StructureSize; //=sizeof(SMB2_REQ_READ) UCHAR Padding; //从头部的开始处请求的读数据响应的填充 UCHAR Reserved; ULONG Length; //在该信道上发送的读的长度 UINT64 Offset; //读的偏移量 UINT64 FileId; //文件的标识符 ULONG MinimumCount; //读并被考虑为成功的最小字节 ULONG Channel; //在其上发送剩余数据的信道 ULONG RemainingBytes; //如果信道!=0,额外的字节被读取并在信道上发送,
//否则为计划还要读多少 USHORT ReadChannelInfoOffset;//如果信道!=0,为关于要在其上发送额外数据的信道的
信息 USHORT ReadChannelInfoLength; UCHAR Buffer[1]; //ReadChannelInfo}SMB2_REQ_READ,*PSMB2_REQ_READ;typedef struct_SMB2_RESP_READ{ USHORT StructureSize; //=sizeof(SMB2_RESP_READ) UCHAR DataOffset; //对于包内的数据的偏移量 UCHAR Reserved; ULONG DataLength; //作为这个分组的一部分的数据返回的长度 ULONG DataRemaining; //正在备选信道(如果指定)上发送的数据的长度,
//否则为我们准备再要读多少数据 UCHAR Buffer[1]; //Pad[],Data[]}SMB2_RESP_READ,*PSMB2_RESP_READ;
读是非常明显的。客户端指定读的文件(通过FileId)、偏移量、以及长度,并且服务器返回数据。客户端能指定几个其他属性。MinCount告诉服务器用于成功返回的它能从文件中读取的最大量。如果读是短的,那么服务器仅仅返回失败而不返回整个数据缓冲器。为了更好的处理,客户端也能推荐填充(Padding)。这是在 服务器应该放置数据的读响应分组内的偏移量。这允许客户端当从传送中接收下信息时以更有效的方式拟定读响应缓冲器。剩余字段向服务器表明如果这只是读的一部分,则整个读将有多少。如此,如果客户端正准备以1k信息块的方式读8k,那么它将发出读1k并且剩余(Remaining)=7k。这允许服务器具有通过在一个操作内读取整个8k并把数据缓冲回客户端来优化的选项。
在服务器响应时,它表明多少数据正在返回(在DataLength字段内)以及在读命令中指定的DataRemaining。
如果在命令中指定的信道不是命令参与的信道,那么用户请求信道读。这意味着如果我使用“信道=1”和“长度=0,剩余=64k”请求在信道0上读,那么服务器将响应“DataLength(数据长度)=0,DataRemaining(数据剩余)=64k”以及接下来来自信道1的64k字节将是数据。客户端负责使此同步以使当该命令发出时,确保在信道1上没有未完成的数据响应。客户端也能发出(在信道0上)“读信道=1,数据长度=1k,剩余=7k”,以使响应会包含数据的第一个1k以及剩余的数据(最后7k)可流过信道1。
写(WRITE)
对打开的文件写数据。
格式typedef struct_SMB2_REQ_WRITE{ USHORT StructureSize; //=sizeof(SMB2_REQ_WRITE) USHORT DataOffset; //数据离开头部的偏移量 ULONG Length; //正在被写的数据的长度 UINT64 Offset; //写的文件偏移量 UINT64 FileId; //正在被写入的文件的标识符 ULONG Channel; //如果是非0,剩余数据应在其上发送的信道 ULONG Remaining; //在信道上被发送的字节数 USHORT WriteChannelInfoOffset; //如果信道!=0,我们希望对其写数据的信道的信息 USHORT WriteChannelInfoLength; ULONG Flags; UCHAR Buffer[1]; //WriteChannelInfo}SMB2_REQ_WRITE,*PSMB2_REQ_WRITE; typedef struct_SMB2_RESP_WRITE{ USHORT StructureSize; //=sizeof(SMB2_RESP_WRITE) USHORT Reserved; ULONG Count; //被写的数据的量 ULONG Remaining; //我们能在信道上接收的字节的数量 USHORT WriteChannelInfoOffset; //如果信道!=0,我们希望对其写数据的信道的可选信息 USHORT WriteChannelInfoLength; UCHAR Buffer[1]; //WriteChannelInfo}SMB2_RESP_WRITE,*PSMB2_RESP_WRITE;
客户端填充文件(由FileId标识)、偏移量、写的长度、以及附加的数据。推荐数据被填充在原始协商响应内被返回以帮助服务器性能。客户端也能表明将对服务器再写多少数据以允许服务器最优化。在响应时,服务器表明写了多少,并返回它依然期待的量。
如果在写内指定的信道不是命令参与的信道,那么客户端请求在另一信道上流式传输数据。一个例子是具有“信道=1,长度=0,剩余64K”的在信道0上接收到的写。客户端请求在信道1上流式传输64k写。服务器会响应“计数=0,剩余=64k”以允许写。该响应将包括在数据被在信道上发送和确认之后将到来的第二响应的AsyncId。然后,接下来的在信道1上流式传输的64k字节将是数据。(没有头部)。在完成之后,服务器将在信道0上发送SMB2_RESP_WRITE以表明操作的成功/失败,并使用AsyncId信息发送第二回复,除非该指定信道允许内在确认,这种情况下它将在信道上发生。
打开操作锁(BREAK_OPLOCK)
被用以请求和确认在文件上采用的机会锁(opportunistic lock)的释放。
格式typedef struct_SMB2_REQ_BREAK_OPLOCK{ USHORT StructureSize; //=sizeof(SMB2_REQ_BREAK_OPLOCK) UCHAR OplockLevel; //打开到的级别.(级别2or无级别) UCHAR Reserved; ULONG Reserved2; //超时(单位秒) UINT64 FileId; //正在被上锁/解锁的文件的标识符}SMB2_REQ_BREAK_OPLOCK,*PSMB2_REQ_BREAK_OPLOCK;typedef struct_SMB2_RESP_BREAK_OPLOCK { USHORT StructureSize; //=sizeof(SMB2_RESP_LOCK) UCHAR OplockLevel; //已打开到的级别(<=请求的级别) UCHAR Reserved; ULONG Reserved2; UINT64 FileId;}SMB2_RESP_BREAK_OPLOCK,*PSMB2_RESP_BREAK_OPLOCK;
当另一用户请求访问该客户端以需要打开现有的锁的形式对其保持机会锁的文件时,SRV将发送SMB2_RESP_BREAK_OPLOCK至客户端。然后,客户端被期待发送给定文件的REQ_BREAK_OPLOCK以释放它们的操作锁,并且SRV将再次响应以确认。
锁(LOCK)
被用以请求字节范围锁,并也被用以请求机会锁(以及当机会锁被打开时通知客户端)。
格式#define SMB2_LOCKFLAG_SHARED_LOCK 0x01#define SMB2_LOCKFLAG_EXCLUSIVE_LOCK 0x02#define SMB2_LOCKFLAG_UNLOCK 0x04#define SMB2_LOCKFLAG_FAIL_IMMEDIATELY 0xl0typedef struct_SMB2_LOCK{ UINT64 Offset; UINT64 Length; ULONG Flags; ULONG Reserved;}SMB2_LOCK,*PSMB2_LOCK;typedef struct_SMB2_REQ_LOCK{ USHORT StructureSize; //=sizeof(SMB2_REQ_LOCK) UCHAR LockCount; ULONG Reserved; UINT64 FileId; //正在被上锁/解锁的文件的标识符 SMB2_LOCK Locks[1]; //大小的数组(LockCount)}SMB2_REQ_LOCK,*PSMB2_REQ_LOCK;typedef struct_SMB2_RESP_LOCK{ USHORT StructureSize; //=sizeof(SMB2_RESP_LOCK) USHORT Reserved;}SMB2_RESP_LOCK,*PSMB2_RESP_LOCK;
LOCK请求的语法类似于SMB1Lock请求的语法。客户端指定FileId,以及一 个或多个表明它们希望上锁的偏移量和长度的SMB_LOCK结构。所有这些LOCK结构必须是上锁或解锁。然而,你能把共享的和专有的锁请求混合在单批锁操作中。对于锁分批的最普遍的使用是要求一系列锁作为一批操作锁打开(oplock break)的一部分,当你保证所有的锁将成功时这个是最有用的。
成功返回向客户端表明它们获取(或释放)请求的字节范围锁。在失败的情况下,字节范围锁不被授予。
回送(ECHO)
回送由客户端使用以及时确定服务器是否依然在给定的点上。在接收这个命令后,服务器将仅仅把它回转并返回成功。
格式typedef struct_SMB2_REQ_ECHO{ USHORT StructureSize; USHORT Reserved;}SMB2_REQ_ECHO,*PSMB2_REQ_ECHO;typedef struct_SMB2_RESP_ECHO{ USHORT StructureSize; USHORT Reserved;}SMB2_RESP_ECHO,*PSMB2_RESP_ECHO;
服务器对分组进行响应以表明它正常工作。用于允许客户端对服务器进行“ping”。
取消(CANCLE)
由客户端使用以请求对已发送的操作的取消。
格式typedef struct_SMB2_REQ_CANCEL{ USHORT StructureSize; USHORT Reserved;}SMB2_REQ_CANCEL,*PSMB2_REQ_CANCEL;
取消没有响应,但应该导致命令本身被成功地完成,或以STATUS_CANCELLED失败,并且这应该是尽快发生的。由于正在被发送的操作将共享取消命令的MessageId,所以它被标识。这是一种发送到服务器的MessageId已经被先前使用的情况。如果响应伴随应该存在于头部内的AsyncId到来,那么会 被用以在服务器上定位命令。
IOCTL
Ioctl被用以通过网络发出设备控制或文件系统控制命令。
格式//请求typedef struct_SMB2_REQ_IOCTL{ USHORT StructureSize; //=sizeof(SMB2_REQ_TRANSACT) USHORT Reserved; ULONG CtlCode; UINT64 FileId; ULONG InputOffset; //用于输入缓冲器的字节 ULONG InputCount; //在该消息内的参数字节计数 ULONG MaxInputResponse; //服务器能返回响应参数的最大字节 ULONG OutputOffset; //数据字节位置 ULONG OutputCount; //在该消息内的数据字节计数 ULONG MaxOutputResponse; //服务器能返回响应数据的最大字节 ULONG Flags; ULONG Reserved2; UCHAR Buffer[1]; //参数[],数据[]}SMB2_REQ_IOCTL,*PSMB2_REQ_IOCTL;//响应typedef struct_SMB2_RESP_IOCTL{ USHORT StructureSize; //=sizeof(SMB2_RESP_TRANSACT) USHORT Reserved; ULONG CtlCode; UINT64 FileId; ULONG InputOffset; //用于输入缓冲器的字节 ULONG InputCount; //在该消息内的参数字节计数 ULONG OutputOffset; //数据字节位置 ULONG OutputCount; //在该消息内的数据字节计数 ULONG Flags; ULONG Reserved2; UCHAR Buffer[1]; //参数[],数据[]}SMB2_RESP_IOCTL,*PSMB2_RESP_IOCTL;}SMB2_RESP_TRANSACT,*PSMB2_RESP_TRANSACT;
IOCTL被用于通过网络发出一般的文件系统或设备控制命令。它基于控制代码 的METHOD(方法)把输入和输出缓冲器打包并通过网络发送它们。然后,服务器方重新把它们封装并发出针对文件对象的FSCTL/IOCTL。结果被同样地打包并与状态代码一起被返回到用户。可允许的FSCTL/IOCTL代码组可由SRV或底层文件系统限制。(不是所有的都必须远程地有效)。
对于缓冲的或直接的请求,仅仅Input(输入)在请求上是有效的,并且Output(输出)在响应上被发送。对于不是这样的请求,输入和输出通过两种方式发送。
查询目录(QUERY DIRECTORY)
允许客户端通过网络查询在打开目录句柄上的目录枚举。
格式
//
//QUERY_DIRECTORY命令
//
#define SMB2_REOPEN 0x10
//请求
typedef struct_SMB2_REQ_QUERY_DIRECTORY
{
USHORT StructureSize; //=
//sizeof(SMB2_REQ_QUERY_DIRECTORY)
UCHAR FileInformationClass;
UCHAR Flags; //SL_/SMB2_flags
ULONG FileIndex;
UINT64 FileId;
USHORT FileNameOffset;
USHORT FileNameLength;
ULONG OutputBufferLength;
UCHAR Buffer[1]; //FileName参数
}SMB2_REQ_QUERY_DIRECTORY,*PSMB2_REQ_QUERY_DIRECTORY;
//响应
typedef struct_SMB2_RESP_QUERY_DIRECTORY
{
USHORT StructureSize; //=sizeof(SMB2_RESP_QUERY_DIRECTORY)
USHORT OutputBufferOffset;
ULONG OutputBufferLength;
UCHAR Buffer[1]; //响应数据
}SMB2_RESP_QUERY_DIRECTORY,*PSMB2_RESP_QUERY_DIRECTORY;
QueryDirectory调用非常匹配现有的NT语义。调用者提供用于目录打开的InfoClass、FileId、filename(文件名)部分(指定通配符/文件搜索参数或用于现有搜索的概要名称)以及任何有效的与调用关联的SL_标记,SRV将返回一缓冲器 直到OutputBufferLength。
也存在能被包括在QueryDirectory标记结构内的新的标记(SMB2_REOPEN)。该标记是SL_RESTART_SCAN标记的更强的版本。SL_RESTART_SCAN标记仅仅允许重新开始扫描指定的搜索没有更改的部分。(也就是说,重新开始*.*或t*搜索)。SL_RESTART_SCAN标记告诉服务器重新开始扫描指定的搜索已经更改的部分。为了使用该标记,调用者必须保证调用中的专用且没有未完成的操作(诸如更改通知)。服务器采取适当的步骤执行该操作,这可涉及在服务器方关闭和重新打开底层的目录句柄。这对于客户端而言是透明的。
更改通知(CHANGE NOTIFY)
该潜在的长时间运行的操作允许客户端在目录上登记更改通知。
格式
//
//CHANGE_NOTIFY命令
//
//请求
typedef struct_SMB2_REQ_CHANGE_NOTIFY
{
USHORT StructureSize; //=
//sizeof(SMB2_REQ_CHANGE_NOTIFY)
USHORT Flags; //SL_WATCH_TREE?
ULONG OutputBufferLength;
UINT64 FileId;
ULONG CompletionFilter;
ULONG Reserved;
}SMB2_REQ_CHANGE_NOTIFY,*PSMB2_REQ_CHANGE_NOTIFY;
//响应
typedef struct_SMB2_RESP_CHANGE_NOTIFY
{
USHORT StructureSize; //=
//sizeof(SMB2_RESP_CHANGE_NOTIFY)
USHORT OutputBufferOffset;
ULONG OutputBufferLength;
UCHAR Buffer[1]; //通知数据
}SMB2_RESP_CHANGE_NOTIFY,*PSMB2_RESP_CHANGE_NOTIFY;
调用者发送目录的FileId和指定调用者感兴趣的更改的CompletionFilter。它们也能发送SL_WATCH_TREE标记以表明循环的通知操作。由于该操作可能等待无 限的时间,因此它几乎总是调用“async(异步)”行为。也需要注意的是任何其他关于相同句柄的更改通知请求将等待第一个请求的完成,正如在本地文件系统行为中的那样。
查询信息(QUERY INFO)
允许客户端从远程系统中查询信息。当前,这可被用以查询文件信息、文件-系统信息、安全信息、或配额信息。
格式
//
//QUERY_INFO
//
#define SMB2_0_INFO_FILE 0x01
#define SMB2_0_INFO_FILESYSTEM 0x02
#define SMB2_0_INFO_SECURITY 0x03
#define SMB2_0_INFO_QUOTA 0x04
typedef struct_SMB2_QUERY_QUOTA_INFO{
UCHAR ReturnSingleEntry;//表明仅仅应该返回单个条目而不是向缓冲器填充尽可能多的
条目
UCHAR RestartScan; //表明配额信息的扫描是否要从头重新开始
USHORT Reserved;
ULONG SidListLength; //提供SID列表(如果存在)的长度
ULONG StartSidLength; //提供可选的SID,该SID表明返回的信息要开始于
//不是第一个条目的条目。如果给定SidList,那么该参数被
忽略
ULONG StartSidOffset; //提供缓冲器内开始Sid的偏移量
}SMB2_QUERY_QUOTA_INFO,*PSMB2_QUERY_QUOTA_INFO;
//Request
typedef struct_SMB2_REQ_QUERY_INFO
{
USHORT StructureSize; //=sizeof(SMB2_REQ_QUERY_INFO)
UCHAR InfoType; //确定信息类型
//(SMB2_0_INFO_*)
UCHAR FileInfoClass;
ULONG OutputBufferLength;
USHORT InputBufferOffset; //输入缓冲器仅仅在Quota(配额)调用上有效
USHORT Reserved;
ULONG InputBufferLength;
union{
ULONG SecurityInformation; //用于Query Security(查询安全)调用
ULONG EaIndex; //用于QueryEA调用
};
ULONG Flags;
UINT64 FileId;
UCHAR Buffer[1];
}SMB2_REQ_QUERY_INFO,*PSMB2_REQ_QUERY_INFO;
//Response
typedef struct_SMB2_RESP_QUERY_INFO
{
USHORT StructureSize; //=sizeof(SMB2_RESP_QUERY_INFO)
USHORT OutputBufferOffset;
ULONG OutputBufferLength;
UChAR Buffer[1]; //文件信息
}SMB2_RESP_QUERY_INFO,*PSMB2_RESP_QUERY_INFO;
客户端在InfoType内指定SMB2_0_INFO_*选项以表明这是否是对于文件信息、文件系统信息、安全信息、或配额信息的请求。FileId指示正在被讨论的文件(用于文件信息或安全信息)。文件所驻留的卷(volume)被用于文件系统信息或查询请求。
子信息等级被填充到FileInfoClass,并且取决于正在被查询的信息的类型。对于文件信息查询,它是FILE_INFORMATION_CLASS,而对于文件系统信息,它是FS_INFORMATION_CLASS。对于配额和安全,它是0。
输入缓冲器当前仅仅用于Quota请求,因为它们在输入上采用SMB2_QUERY_QUOTA_INFO结构以确定正在被请求的内容。对于其他请求,它是空。
OutputBufferLength指定返回给用户的数据的最大量。
设置信息(SET INFO)
允许客户端在远程系统上设置信息。当前,这可被用以设置文件信息、文件-系统信息、安全信息、或配额信息。
格式
//
//SET_INFO
//
//请求
typedef struct_SMB2_REQ_SET_INFO
{
USHORT StructureSize; //=sizeof(SMB2_REQ_SET_INFO)
UCHAR InfoType;
UCHAR FileInfoClass;
ULONG BufferLength;
USHORT BufferOffset;
USHORT Reserved;
union{
ULONG Reserved2;
ULONG SecurityInformation;//用于SET_SECURITY调用
};
UINT64 FileId;
UCHAR Buffer[1]; //文件信息
}SMB2_REQ_SET_INFO,*PSMB2_REQ_SET_INFO;
//Response
typedef struct_SMB2_RESP_SET_INFO
{
USHORT StructureSize; //=sizeof(SMB2_RESP_SET_INFO)
}SMB2_RESP_SET_INFO,*PSMB2_RESP_SET_INFO;
正在被设置的信息的类型以及特定的类在Flags和FileInfoClass字段内被设置,如对QUERY_INFO描述的那样。提供的输入缓冲器是正在被设置的信息,并且FileId标识文件。
对于SetSecurity调用,SecurityInformation字段指示正在被设置的信息。(即,OWNER_SECURITY_INFORMATION等)
结论
尽管本发明受各种修改和可供选择的构造的影响,其中说明的某些实施例已经在附图中显示并在以上被详细描述。然而,应该理解的是本发明不被限制于公开的特定形式,相反,本发明涵盖所有的在本发明的精神和范围内的修改、可供选择的构造、和等同物。
Claims (5)
1.网络计算环境中的一种方法,包括:
在服务器接收来自客户端的包括多个命令的复合请求;
确定复合请求是否包括无关命令或相关命令,其中所述相关命令具有相同的文件句柄,并且其中所述无关命令不具有相同的文件句柄;以及
当复合请求包括无关命令时,把每个请求作为单独请求进行处理;以及
当复合请求包括相关命令时,依次处理每个请求。
2.根据权利要求1所述的方法,其特征在于,所述复合请求包括包含创建/打开命令的相关命令,其中依次处理每个请求包括对于每个后续的相关命令使用来自创建/打开命令的文件句柄。
3.根据权利要求1所述的方法,其特征在于,还包括处理通过创建命令接收到的额外上下文数据。
4.根据权利要求1所述的方法,其特征在于,还包括处理数据信道上的I/O相关请求,所述数据信道与接收复合请求的信道是分开的。
5.根据权利要求1所述的方法,其特征在于,进一步包括接收一组命令中从客户端发送至服务器的至少一个命令,所述组包括具有附加的额外上下文数据的创建命令、包括多个相关命令的相关复合命令以及包括多个无关命令的无关复合命令、和/或请求在单独数据信道上的数据通信的数据相关命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110329007.4A CN102394872B (zh) | 2005-05-25 | 2005-12-09 | 数据通信协议 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68500805P | 2005-05-25 | 2005-05-25 | |
US60/685,008 | 2005-05-25 | ||
US11/182,251 | 2005-07-15 | ||
US11/182,251 US8332526B2 (en) | 2005-05-25 | 2005-07-15 | Data communication protocol including negotiation and command compounding |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110329007.4A Division CN102394872B (zh) | 2005-05-25 | 2005-12-09 | 数据通信协议 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1870642A CN1870642A (zh) | 2006-11-29 |
CN1870642B true CN1870642B (zh) | 2012-04-18 |
Family
ID=35520984
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005101279978A Active CN1870642B (zh) | 2005-05-25 | 2005-12-09 | 用于通过使用数据通信协议在网络计算环境内通信的方法 |
CN2005101279982A Active CN1870643B (zh) | 2005-05-25 | 2005-12-09 | 用于利用顺序号的数据通信协调的方法和系统 |
CN201210434813.2A Active CN102932457B (zh) | 2005-05-25 | 2005-12-09 | 用于利用顺序号的数据通信协调的方法和系统 |
CN201110329007.4A Active CN102394872B (zh) | 2005-05-25 | 2005-12-09 | 数据通信协议 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005101279982A Active CN1870643B (zh) | 2005-05-25 | 2005-12-09 | 用于利用顺序号的数据通信协调的方法和系统 |
CN201210434813.2A Active CN102932457B (zh) | 2005-05-25 | 2005-12-09 | 用于利用顺序号的数据通信协调的方法和系统 |
CN201110329007.4A Active CN102394872B (zh) | 2005-05-25 | 2005-12-09 | 数据通信协议 |
Country Status (7)
Country | Link |
---|---|
US (7) | US8332526B2 (zh) |
EP (4) | EP3098732B1 (zh) |
CN (4) | CN1870642B (zh) |
AT (2) | ATE516656T1 (zh) |
DE (1) | DE602005010837D1 (zh) |
ES (1) | ES2604972T3 (zh) |
HK (5) | HK1157959A1 (zh) |
Families Citing this family (69)
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 |
US7617256B2 (en) * | 2004-07-19 | 2009-11-10 | Microsoft Corporation | Remote file updates through remote protocol |
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 |
US7975030B2 (en) * | 2006-05-09 | 2011-07-05 | Cisco Technology, Inc. | Remote configuration of devices using a secure connection |
US20080005558A1 (en) * | 2006-06-29 | 2008-01-03 | Battelle Memorial Institute | Methods and apparatuses for authentication and validation of computer-processable communications |
US8966000B2 (en) * | 2007-06-22 | 2015-02-24 | Microsoft Corporation | Aggregation and re-ordering of input/output requests for better performance in remote file systems |
US20090077248A1 (en) * | 2007-09-14 | 2009-03-19 | International Business Machines Corporation | Balancing access to shared resources |
US8935336B2 (en) * | 2008-06-18 | 2015-01-13 | Cisco Technology, Inc. | Optimizing program requests over a wide area network |
US8482766B2 (en) * | 2009-01-08 | 2013-07-09 | Infoprint Solutions Company Llc | Automatic adjustment print job submission mechanism |
US8078848B2 (en) | 2009-01-09 | 2011-12-13 | Micron Technology, Inc. | Memory controller having front end and back end channels for modifying commands |
US9325790B1 (en) | 2009-02-17 | 2016-04-26 | Netapp, Inc. | Servicing of network software components of nodes of a cluster storage system |
US9215279B1 (en) | 2009-02-17 | 2015-12-15 | Netapp, Inc. | Servicing of storage device software components of nodes of a cluster storage system |
WO2010111438A2 (en) | 2009-03-25 | 2010-09-30 | Pacid Technologies, Llc | System and method for protecting a secrets file |
TW201103298A (en) * | 2009-03-25 | 2011-01-16 | Pacid Technologies Llc | Method and system for securing communication |
WO2010111448A1 (en) | 2009-03-25 | 2010-09-30 | Pacid Technologies, Llc | Method and system for securing communication |
US8055816B2 (en) | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US8856349B2 (en) * | 2010-02-05 | 2014-10-07 | Sling Media Inc. | Connection priority services for data communication between two devices |
CN101867572B (zh) * | 2010-05-11 | 2015-08-12 | 中兴通讯股份有限公司 | 无线优盘的实现方法及系统 |
JP5743469B2 (ja) | 2010-09-22 | 2015-07-01 | キヤノン株式会社 | 情報処理装置、その制御方法、及び制御プログラム |
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 |
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 |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
TWI511596B (zh) * | 2011-11-21 | 2015-12-01 | 華碩電腦股份有限公司 | 提供遠端存取的通訊系統及其通訊方法 |
US8924573B2 (en) * | 2012-03-12 | 2014-12-30 | Microsoft Corporation | Secure capability negotiation between a client and server |
US9077772B2 (en) * | 2012-04-20 | 2015-07-07 | Cisco Technology, Inc. | Scalable replay counters for network security |
CN102932468B (zh) * | 2012-11-07 | 2016-02-10 | 曙光信息产业股份有限公司 | 共享数据访问方法 |
US9805053B1 (en) | 2013-02-25 | 2017-10-31 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines |
US9984083B1 (en) | 2013-02-25 | 2018-05-29 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines across non-native file systems |
US9424273B2 (en) * | 2013-05-01 | 2016-08-23 | Netapp, Inc. | System and method for asynchronous use of a network-based file system |
US9582561B2 (en) | 2013-07-16 | 2017-02-28 | Sap Se | Size-based data synchronization |
US9961125B2 (en) | 2013-07-31 | 2018-05-01 | Microsoft Technology Licensing, Llc | Messaging API over HTTP protocol to establish context for data exchange |
US20160246845A1 (en) * | 2013-10-22 | 2016-08-25 | Tata Consultancy Services Limited | Window management for stream processing and stream reasoning |
US10440066B2 (en) * | 2013-11-15 | 2019-10-08 | Microsoft Technology Licensing, Llc | Switching of connection protocol |
US9973599B2 (en) * | 2013-12-04 | 2018-05-15 | Mediatek Inc. | Parser for parsing header in packet and related packet processing apparatus |
CN104050284B (zh) * | 2014-06-27 | 2017-11-10 | 北京思特奇信息技术股份有限公司 | 一种基于单进程的数据异步查询方法及系统 |
US11388265B2 (en) * | 2015-01-05 | 2022-07-12 | Convida Wireless, Llc | Machine-to-machine protocol indication and negotiation |
US11151082B1 (en) * | 2015-03-31 | 2021-10-19 | EMC IP Holding Company LLC | File system operation cancellation |
US11144504B1 (en) * | 2015-03-31 | 2021-10-12 | EMC IP Holding Company LLC | Eliminating redundant file system operations |
US11294862B1 (en) * | 2015-03-31 | 2022-04-05 | EMC IP Holding Company LLC | Compounding file system metadata operations via buffering |
US11681531B2 (en) | 2015-09-19 | 2023-06-20 | Microsoft Technology Licensing, Llc | Generation and use of memory access instruction order encodings |
WO2017165610A1 (en) * | 2016-03-24 | 2017-09-28 | Spectrum Brands, Inc. | Wireless lockset with anti-hacking feature |
DE102016221233B3 (de) * | 2016-10-27 | 2017-09-14 | Volkswagen Aktiengesellschaft | Verfahren zum Verwalten einer ersten Kommunikationsverbindung, System umfassend einen ersten Kommunikationspartner und einen zweiten Kommunikationspartner sowie Fahrzeug |
WO2018094686A1 (zh) | 2016-11-25 | 2018-05-31 | 华为技术有限公司 | 一种smb业务故障处理方法和存储设备 |
US11010400B1 (en) * | 2017-02-15 | 2021-05-18 | Citigroup Technology, Inc. | Computer file copy systems and methods |
US10555310B2 (en) * | 2017-05-01 | 2020-02-04 | Qualcomm Incorporated | Forward compatibility in new radio systems |
US10965572B2 (en) | 2017-05-01 | 2021-03-30 | Bank Of America Corporation | Data transfer control |
US10446022B2 (en) * | 2017-06-09 | 2019-10-15 | Here Global B.V. | Reversible lane active direction detection based on GNSS probe data |
CN107682114B (zh) * | 2017-09-01 | 2020-08-25 | 惠州市德赛西威汽车电子股份有限公司 | 一种提高数据传输效率的方法 |
US10963295B2 (en) * | 2017-09-08 | 2021-03-30 | Oracle International Corporation | Hardware accelerated data processing operations for storage data |
US10911547B2 (en) * | 2017-12-28 | 2021-02-02 | Dell Products L.P. | Systems and methods for SMB monitor dialect |
US10789200B2 (en) | 2018-06-01 | 2020-09-29 | Dell Products L.P. | Server message block remote direct memory access persistent memory dialect |
US12120208B2 (en) * | 2018-06-25 | 2024-10-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Communication protocol discover method in constrained application protocol (COAP) |
JP7077896B2 (ja) * | 2018-09-25 | 2022-05-31 | ブラザー工業株式会社 | 通信装置及び通信装置のためのコンピュータプログラム |
CN109507931B (zh) * | 2018-12-13 | 2020-10-02 | 中电智能科技有限公司 | 基于CAN open通信协议的通信卡 |
WO2020243420A1 (en) * | 2019-05-29 | 2020-12-03 | TADA Cognitive Solutions, LLC | Digital duplicate |
US10909160B2 (en) | 2019-05-29 | 2021-02-02 | TADA Cognitive Solutions, LLC | Digital duplicate |
US11461293B2 (en) | 2019-08-19 | 2022-10-04 | TADA Cognitive Solutions, LLC | Processes and systems for onboarding data for a digital duplicate |
US11301573B2 (en) | 2019-08-19 | 2022-04-12 | TADA Cognitive Solutions, LLC | Data security using semantic services |
US11647988B2 (en) | 2019-11-19 | 2023-05-16 | Siemens Medical Solutions Usa, Inc. | Additional diagnostic data in parametric ultrasound medical imaging |
CN111464422B (zh) * | 2020-03-27 | 2022-01-07 | 京东科技信息技术有限公司 | 交互方法、装置、电子设备及存储介质 |
US11455588B2 (en) | 2020-09-04 | 2022-09-27 | TADA Cognitive Solutions, LLC | Data validation and master network techniques |
CN112565217B (zh) * | 2020-11-26 | 2023-01-10 | 北京天融信网络安全技术有限公司 | 基于协议的混淆通信方法及客户终端、服务器、存储介质 |
KR102668919B1 (ko) * | 2021-04-16 | 2024-05-27 | 한국과학기술원 | 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법 |
US11240318B1 (en) | 2021-05-11 | 2022-02-01 | Integrity Security Services Llc | Systems and methods for virtual multiplexed connections |
CN113660341A (zh) * | 2021-08-18 | 2021-11-16 | 中电科航空电子有限公司 | 一种机载cmu与无线电通信电台之间的通信方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453354B1 (en) * | 1999-03-03 | 2002-09-17 | Emc Corporation | File server system using connection-oriented protocol and sharing data sets among data movers |
Family Cites Families (250)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH594721A5 (zh) | 1974-09-05 | 1978-01-31 | Ciba Geigy Ag | |
JPS571681A (en) | 1980-05-24 | 1982-01-06 | Makita Electric Works Ltd | Holder for attitude of nail of nail driver |
US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
JPS6019341Y2 (ja) | 1982-01-29 | 1985-06-11 | エスエムケイ株式会社 | ロツク付コネクタ |
JPS5958597A (ja) | 1982-09-28 | 1984-04-04 | 富士通株式会社 | 自動預金支払機 |
JPS6019341U (ja) | 1983-07-19 | 1985-02-09 | ヤンマー農機株式会社 | コンバインの脱穀装置 |
JPS613496U (ja) | 1984-06-13 | 1986-01-10 | 株式会社東芝 | タ−ビンミサイルの防護装置 |
US4825354A (en) * | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4736369A (en) | 1986-06-13 | 1988-04-05 | International Business Machines Corp. | Adaptive session-level pacing |
JPS6327678A (ja) | 1986-07-21 | 1988-02-05 | 清水建設株式会社 | 鉄板サイロの構築方法 |
US4780821A (en) * | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
US4914570A (en) * | 1986-09-15 | 1990-04-03 | Counterpoint Computers, Inc. | Process distribution and sharing system for multiple processor computer system |
JPS6361148U (zh) | 1986-10-08 | 1988-04-22 | ||
US4887204A (en) | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US5202971A (en) * | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
JPS63205747A (ja) | 1987-02-13 | 1988-08-25 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 通信方法及びデータ処理システム |
US4791566A (en) | 1987-03-27 | 1988-12-13 | Digital Equipment Corporation | Terminal device session management protocol |
JPS63256165A (ja) | 1987-04-14 | 1988-10-24 | Seiko Epson Corp | 嫌気性液体の定量吐出方法 |
US4823554A (en) * | 1987-04-22 | 1989-04-25 | Leonard Trachtenberg | Vehicle thermoelectric cooling and heating food and drink appliance |
JPS6461148A (en) | 1987-08-31 | 1989-03-08 | Nec Corp | Flow control system |
US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US4891785A (en) * | 1988-07-08 | 1990-01-02 | Donohoo Theodore J | Method for transferring data files between computers in a network response to generalized application program instructions |
JPH02101847A (ja) | 1988-10-11 | 1990-04-13 | Nec Corp | 通信制御方式 |
US5124909A (en) | 1988-10-31 | 1992-06-23 | Hewlett-Packard Company | Software program for providing cooperative processing between personal computers and a host computer |
JPH02101847U (zh) | 1989-01-24 | 1990-08-14 | ||
CA1323448C (en) * | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
US5109519A (en) * | 1989-03-28 | 1992-04-28 | Wang Laboratories, Inc. | Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer |
US5113519A (en) * | 1989-05-15 | 1992-05-12 | International Business Machines Corporation | Maintenance of file attributes in a distributed data processing system |
US5560008A (en) | 1989-05-15 | 1996-09-24 | International Business Machines Corporation | Remote authentication and authorization in a distributed data processing system |
US5218696A (en) | 1989-07-24 | 1993-06-08 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
US5265261A (en) | 1989-08-14 | 1993-11-23 | Microsoft Corporation | Method and system for network communications using raw mode protocols |
US5261051A (en) | 1989-08-14 | 1993-11-09 | Microsoft Corporation | Method and system for open file caching in a networked computer system |
JPH0754462Y2 (ja) | 1989-11-10 | 1995-12-18 | 株式会社竹中工務店 | 被連結部材の連結装置 |
JP2575543B2 (ja) * | 1990-04-04 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時アクセス管理方法 |
US5130986A (en) | 1990-04-27 | 1992-07-14 | At&T Bell Laboratories | High speed transport protocol with two windows |
JPH0675890B2 (ja) | 1990-06-25 | 1994-09-28 | 河村化工株式会社 | 釣竿の製造方法 |
JPH04172039A (ja) | 1990-11-05 | 1992-06-19 | Matsushita Electric Ind Co Ltd | パケット通信装置 |
JPH0589048A (ja) | 1991-09-25 | 1993-04-09 | Nec Corp | コマンド処理方式 |
JPH05143488A (ja) | 1991-11-18 | 1993-06-11 | Nippon Telegr & Teleph Corp <Ntt> | 複数コマンドの転送方法 |
JPH0619771A (ja) * | 1992-04-20 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | 異種のクライアントによる共用ファイルのファイル管理機構 |
JPH0589048U (ja) | 1992-05-08 | 1993-12-03 | 関東自動車工業株式会社 | 自動車用ベルトモール |
US5349642A (en) * | 1992-11-03 | 1994-09-20 | Novell, Inc. | Method and apparatus for authentication of client server communication |
US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
US5493728A (en) * | 1993-02-19 | 1996-02-20 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
US5491752A (en) * | 1993-03-18 | 1996-02-13 | Digital Equipment Corporation, Patent Law Group | System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens |
JPH0675890U (ja) | 1993-04-02 | 1994-10-25 | 市光工業株式会社 | コーナリングランプ点灯回路 |
US5522042A (en) * | 1994-01-28 | 1996-05-28 | Cabletron Systems, Inc. | Distributed chassis agent for distributed network management |
US5588117A (en) | 1994-05-23 | 1996-12-24 | Hewlett-Packard Company | Sender-selective send/receive order processing on a per message basis |
US5513314A (en) * | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
US5628005A (en) * | 1995-06-07 | 1997-05-06 | Microsoft Corporation | System and method for providing opportunistic file access in a network environment |
US5826027A (en) * | 1995-10-11 | 1998-10-20 | Citrix Systems, Inc. | Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system |
US5764887A (en) * | 1995-12-11 | 1998-06-09 | International Business Machines Corporation | System and method for supporting distributed computing mechanisms in a local area network server environment |
US6343313B1 (en) * | 1996-03-26 | 2002-01-29 | Pixion, Inc. | Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability |
EP0891663A1 (en) * | 1996-04-01 | 1999-01-20 | Hewlett-Packard Company | Transmitting messages over a network |
RU2118051C1 (ru) | 1996-04-30 | 1998-08-20 | Лихачев Александр Геннадьевич | Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители |
US6434120B1 (en) * | 1998-08-25 | 2002-08-13 | Cisco Technology, Inc. | Autosensing LMI protocols in frame relay networks |
US5933602A (en) * | 1996-07-31 | 1999-08-03 | Novell, Inc. | System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network |
US6208952B1 (en) * | 1996-10-24 | 2001-03-27 | Microsoft Corporation | Method and system for delayed registration of protocols |
JPH10133971A (ja) | 1996-10-25 | 1998-05-22 | Nec Corp | ファイル転送処理方式 |
US6125122A (en) * | 1997-01-21 | 2000-09-26 | At&T Wireless Svcs. Inc. | Dynamic protocol negotiation system |
FR2759518B1 (fr) | 1997-02-07 | 1999-04-23 | France Telecom | Procede et dispositif d'allocation de ressources dans un reseau numerique de transmission par paquets |
US5987621A (en) | 1997-04-25 | 1999-11-16 | Emc Corporation | Hardware and software failover services for a file server |
US5931913A (en) | 1997-05-07 | 1999-08-03 | International Business Machines Corporation | Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol |
US6219799B1 (en) * | 1997-07-01 | 2001-04-17 | Unisys Corporation | Technique to support pseudo-names |
US6092199A (en) * | 1997-07-07 | 2000-07-18 | International Business Machines Corporation | Dynamic creation of a user account in a client following authentication from a non-native server domain |
JPH1155314A (ja) | 1997-07-30 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | データ転送制御方法 |
US6275953B1 (en) | 1997-09-26 | 2001-08-14 | Emc Corporation | Recovery from failure of a data processor in a network server |
US6247139B1 (en) * | 1997-11-11 | 2001-06-12 | Compaq Computer Corp. | Filesystem failover in a single system image environment |
US6131125A (en) * | 1997-11-14 | 2000-10-10 | Kawasaki Lsi U.S.A., Inc. | Plug-and-play data cable with protocol translation |
US6085247A (en) * | 1998-06-08 | 2000-07-04 | Microsoft Corporation | Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers |
US6516351B2 (en) * | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
US7010532B1 (en) | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
US6243862B1 (en) | 1998-01-23 | 2001-06-05 | Unisys Corporation | Methods and apparatus for testing components of a distributed transaction processing system |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6230190B1 (en) | 1998-10-09 | 2001-05-08 | Openwave Systems Inc. | Shared-everything file storage for clustered system |
US6401123B1 (en) | 1998-11-24 | 2002-06-04 | International Busines Machines Corporation | Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol |
US6883000B1 (en) | 1999-02-12 | 2005-04-19 | Robert L. Gropper | Business card and contact management system |
US6324581B1 (en) | 1999-03-03 | 2001-11-27 | Emc Corporation | File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems |
US20040139004A1 (en) * | 1999-04-08 | 2004-07-15 | Aceinc Pty Ltd. | Secure online commerce transactions |
US6938096B1 (en) | 1999-04-12 | 2005-08-30 | Softricity, Inc. | Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port |
US7562129B1 (en) | 1999-04-15 | 2009-07-14 | Alcatel-Lucent Canada Inc. | Subscription management system for data communication network |
US6349350B1 (en) * | 1999-05-04 | 2002-02-19 | International Business Machines Corporation | System, method, and program for handling failed connections in an input/output (I/O) system |
AU4839300A (en) * | 1999-05-11 | 2000-11-21 | Webvan Group, Inc. | Electronic commerce enabled delivery system and method |
US7318102B1 (en) * | 1999-05-24 | 2008-01-08 | Hewlett-Packard Development Company, L.P. | Reliable datagram |
US6430691B1 (en) * | 1999-06-21 | 2002-08-06 | Copytele, Inc. | Stand-alone telecommunications security device |
AU6233800A (en) * | 1999-07-23 | 2001-02-13 | Merck & Co., Inc. | Text influenced molecular indexing system and computer-implemented and/or computer-assisted method for same |
US6490666B1 (en) * | 1999-08-20 | 2002-12-03 | Microsoft Corporation | Buffering data in a hierarchical data storage environment |
US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
JP2001077844A (ja) | 1999-09-06 | 2001-03-23 | Axle Linkage Labo Inc | ネットワーク制御方法、サーバ装置、クライアント装置、遊技台装置用ネットワーク制御方法、ホールサーバコンピュータ装置、遊技台装置 |
JP2001094613A (ja) | 1999-09-21 | 2001-04-06 | Canon Inc | 通信制御装置、方法および記録媒体 |
US6775707B1 (en) * | 1999-10-15 | 2004-08-10 | Fisher-Rosemount Systems, Inc. | Deferred acknowledgment communications and alarm management |
US6910082B1 (en) * | 1999-11-18 | 2005-06-21 | International Business Machines Corporation | Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server |
US6658476B1 (en) | 1999-11-29 | 2003-12-02 | Microsoft Corporation | Client-server protocol support list for standard request-response protocols |
US7050984B1 (en) * | 1999-12-22 | 2006-05-23 | Ge Medical Systems, Inc. | Integrated interactive service to a plurality of medical diagnostic systems |
US7111060B2 (en) * | 2000-03-14 | 2006-09-19 | Aep Networks, Inc. | Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser |
US6883015B1 (en) | 2000-03-30 | 2005-04-19 | Cisco Technology, Inc. | Apparatus and method for providing server state and attribute management for multiple-threaded voice enabled web applications |
US6993587B1 (en) * | 2000-04-07 | 2006-01-31 | Network Appliance Inc. | Method and apparatus for election of group leaders in a distributed network |
US7225244B2 (en) * | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
US6452903B1 (en) | 2000-05-31 | 2002-09-17 | Fujitsu Network Communications, Inc. | Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis |
US6961858B2 (en) * | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
DE60103331T2 (de) | 2000-07-05 | 2004-09-23 | Roke Manor Research Ltd., Romsey | Verfahren zum Betreiben eines Puffers für das Wiederzusammenstellen von Paketen und Netzwerk-Router |
US7693976B2 (en) * | 2000-07-11 | 2010-04-06 | Ciena Corporation | Granular management of network resources |
US6349250B1 (en) * | 2000-10-26 | 2002-02-19 | Detroit Diesel Corporation | Clear historic data from a vehicle data recorder |
US20020062379A1 (en) * | 2000-11-06 | 2002-05-23 | Widegren Ina B. | Method and apparatus for coordinating quality of service requirements for media flows in a multimedia session with IP bearer services |
JP2002183000A (ja) * | 2000-12-11 | 2002-06-28 | Hitachi Ltd | ネットワークを介するデータ参照方法及びそのシステム |
US20020073211A1 (en) | 2000-12-12 | 2002-06-13 | Raymond Lin | System and method for securely communicating between application servers and webservers |
US6862692B2 (en) | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
KR100750735B1 (ko) * | 2001-02-03 | 2007-08-22 | 삼성전자주식회사 | 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템 |
US7055036B2 (en) | 2001-04-06 | 2006-05-30 | Mcafee, Inc. | System and method to verify trusted status of peer in a peer-to-peer network environment |
US8051212B2 (en) | 2001-04-11 | 2011-11-01 | Mellanox Technologies Ltd. | Network interface adapter with shared data send resources |
US20030093678A1 (en) * | 2001-04-23 | 2003-05-15 | Bowe John J. | Server-side digital signature system |
JP2002328828A (ja) | 2001-04-27 | 2002-11-15 | Fujitsu Ltd | ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ |
JP3797236B2 (ja) | 2001-04-27 | 2006-07-12 | 日本ビクター株式会社 | 記録再生装置および記録再生方法 |
US6640226B1 (en) | 2001-06-19 | 2003-10-28 | Informatica Corporation | Ranking query optimization in analytic applications |
JP4249915B2 (ja) | 2001-07-13 | 2009-04-08 | 株式会社バンダイ | 配信システム、そのサーバ及び収容装置と、携帯端末システムと、プログラム |
US7409420B2 (en) | 2001-07-16 | 2008-08-05 | Bea Systems, Inc. | Method and apparatus for session replication and failover |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
EP1283652A1 (de) | 2001-08-07 | 2003-02-12 | Siemens Aktiengesellschaft | Verfahren, Sende-/Empfangseinheit und Kommunikationssystem zur Übertragung von Daten von einem Versender an mehrere Empfänger |
JP2003069610A (ja) | 2001-08-22 | 2003-03-07 | Canon Inc | 通信装置、その制御方法、通信システム、及び制御プログラム |
JP3663627B2 (ja) | 2001-10-18 | 2005-06-22 | ソニー株式会社 | 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム |
US7136982B2 (en) | 2001-11-09 | 2006-11-14 | Danger, Inc. | Apparatus and method for allocating memory blocks |
US7107341B2 (en) | 2001-12-07 | 2006-09-12 | Research In Motion Limited | System and method of managing information distribution to mobile stations |
US7394764B2 (en) | 2001-12-14 | 2008-07-01 | Sasken Communication Technologies Limited | Technique for improving transmission control protocol performance in lossy networks |
US7313816B2 (en) * | 2001-12-17 | 2007-12-25 | One Touch Systems, Inc. | Method and system for authenticating a user in a web-based environment |
US7111035B2 (en) | 2001-12-26 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Fault tolerance associations for IP transport protocols |
US20030140129A1 (en) * | 2002-01-24 | 2003-07-24 | Noam Livnat | Installing communication protocol in a handheld device |
US20030154398A1 (en) | 2002-02-08 | 2003-08-14 | Eaton Eric Thomas | System for providing continuity between session clients and method therefor |
US6829606B2 (en) * | 2002-02-14 | 2004-12-07 | Infoglide Software Corporation | Similarity search engine for use with relational databases |
US7178050B2 (en) * | 2002-02-22 | 2007-02-13 | Bea Systems, Inc. | System for highly available transaction recovery for transaction processing systems |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7388866B2 (en) | 2002-03-07 | 2008-06-17 | Broadcom Corporation | System and method for expediting upper layer protocol (ULP) connection negotiations |
US7668306B2 (en) * | 2002-03-08 | 2010-02-23 | Intel Corporation | Method and apparatus for connecting packet telephony calls between secure and non-secure networks |
JP2003281091A (ja) | 2002-03-25 | 2003-10-03 | Fujitsu Ltd | 同時受付制御システム |
JP4315696B2 (ja) | 2002-03-29 | 2009-08-19 | 富士通株式会社 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
CA2385344A1 (en) | 2002-05-08 | 2003-11-08 | Bell Globemedia Inc. | Data transfer method and apparatus |
JP2003337717A (ja) | 2002-05-22 | 2003-11-28 | Nec Corp | オンライントランザクション処理の障害時復旧同期システム |
JP4000905B2 (ja) * | 2002-05-22 | 2007-10-31 | ソニー株式会社 | 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム |
AU2002314310A1 (en) | 2002-06-10 | 2003-12-22 | Caplin Systems Limited | Resource management |
US7290141B2 (en) * | 2002-06-27 | 2007-10-30 | Nokia, Inc. | Authentication of remotely originating network messages |
US20040003210A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Method, system, and computer program product to generate test instruction streams while guaranteeing loop termination |
AU2003246189A1 (en) | 2002-07-01 | 2004-01-19 | Kabushiki Kaisha Toshiba | Seamless system, recording medium, computer system processing continuation method |
CA2393502A1 (en) * | 2002-07-15 | 2004-01-15 | Mark J. Frazer | System and method for reliable transport in a computer network |
US20040019660A1 (en) | 2002-07-24 | 2004-01-29 | Sandhya E. | Lock holding multi-threaded processes for distibuted data systems |
US6829473B2 (en) * | 2002-07-25 | 2004-12-07 | Utstarcom, Inc. | Roaming and hand-off support for prepaid billing for wireless data networks |
US6928577B2 (en) * | 2002-07-29 | 2005-08-09 | Eternal Systems, Inc. | Consistent message ordering for semi-active and passive replication |
US7386855B2 (en) | 2002-08-12 | 2008-06-10 | Ntt Docomo, Inc. | Application mobility service |
US20040032876A1 (en) * | 2002-08-19 | 2004-02-19 | Ajay Garg | Selection of transmission channels |
JP3846384B2 (ja) * | 2002-08-28 | 2006-11-15 | ブラザー工業株式会社 | 端末装置、接続制御方法、接続制御用プログラム及び記録媒体 |
US6957367B2 (en) | 2002-08-30 | 2005-10-18 | Hewlett-Packard Development Company L.P. | System and method for controlling activity of temporary files in a computer system |
JP3938002B2 (ja) | 2002-10-18 | 2007-06-27 | キヤノン株式会社 | 印刷システムの制御方法 |
US7109430B2 (en) | 2002-11-05 | 2006-09-19 | Emrise Corporation | Low profile rotary switch with detent in the bushing |
US7386889B2 (en) * | 2002-11-18 | 2008-06-10 | Trusted Network Technologies, Inc. | System and method for intrusion prevention in a communications network |
US7475142B2 (en) | 2002-12-06 | 2009-01-06 | Cisco Technology, Inc. | CIFS for scalable NAS architecture |
US7421502B2 (en) * | 2002-12-06 | 2008-09-02 | International Business Machines Corporation | Method and system for storage-aware flow resource management |
US7664991B1 (en) * | 2002-12-17 | 2010-02-16 | Symantec Operating Corporation | System and method for distributed file system I/O recovery |
US7290051B2 (en) * | 2003-01-09 | 2007-10-30 | Sun Microsystems, Inc. | Method and apparatus for hardware implementation independent verification of network layers |
US7571463B1 (en) | 2003-01-24 | 2009-08-04 | Nortel Networks Limited | Method an apparatus for providing a scalable and secure network without point to point associations |
JP3999135B2 (ja) | 2003-01-24 | 2007-10-31 | 株式会社エヌ・ティ・ティ・ドコモ | 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体 |
US7151939B2 (en) * | 2003-02-18 | 2006-12-19 | Qualcomm Incorporated | Method, apparatus, and machine-readable medium for providing indication of location service availability and the quality of available location services |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7490152B2 (en) | 2003-04-11 | 2009-02-10 | Alcatel-Lucent Usa Inc. | Version caching mechanism |
US7339885B2 (en) * | 2003-06-05 | 2008-03-04 | International Business Machines Corporation | Method and apparatus for customizable surveillance of network interfaces |
US20040255202A1 (en) * | 2003-06-13 | 2004-12-16 | Alcatel | Intelligent fault recovery in a line card with control plane and data plane separation |
US7363629B2 (en) | 2003-06-19 | 2008-04-22 | International Business Machines Corporation | Method, system, and program for remote resource management |
US7698115B2 (en) | 2003-06-30 | 2010-04-13 | Microsoft Corporation | System and method for dynamically allocating resources in a client/server environment |
US7693998B2 (en) * | 2003-06-30 | 2010-04-06 | Microsoft Corporation | System and method for message-based scalable data transport |
US7526640B2 (en) | 2003-06-30 | 2009-04-28 | Microsoft Corporation | System and method for automatic negotiation of a security protocol |
US20050015511A1 (en) * | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
JP4229774B2 (ja) | 2003-07-11 | 2009-02-25 | 日本電信電話株式会社 | セッション制御プログラムと通信端末装置 |
US7296264B2 (en) * | 2003-07-18 | 2007-11-13 | Bea Systems, Inc. | System and method for performing code completion in an integrated development environment |
KR100984497B1 (ko) * | 2003-07-24 | 2010-10-01 | 파나소닉 주식회사 | 파일 관리 방법 및 정보 처리 장치 |
US8028078B2 (en) * | 2003-08-07 | 2011-09-27 | Teamon Systems, Inc. | Communications system including protocol interface device providing enhanced operating protocol selection features and related methods |
CN100547583C (zh) | 2003-08-14 | 2009-10-07 | 甲骨文国际公司 | 数据库的自动和动态提供的方法 |
US7870268B2 (en) * | 2003-09-15 | 2011-01-11 | Intel Corporation | Method, system, and program for managing data transmission through a network |
US20050091226A1 (en) * | 2003-10-23 | 2005-04-28 | Yun Lin | Persistent caching directory level support |
US7231397B2 (en) | 2003-10-24 | 2007-06-12 | Microsoft Corporation | Method and system for transacted file operations over a network |
US7539722B2 (en) * | 2003-10-24 | 2009-05-26 | Microsoft Corporation | Method and system for accessing a file |
US7673066B2 (en) * | 2003-11-07 | 2010-03-02 | Sony Corporation | File transfer protocol for mobile computer |
JP4836432B2 (ja) * | 2003-11-17 | 2011-12-14 | 株式会社リコー | 文書管理システム、文書管理装置、文書管理方法、文書管理プログラム及び記録媒体 |
US7188273B2 (en) | 2003-11-24 | 2007-03-06 | Tsx Inc. | System and method for failover |
US20050111030A1 (en) * | 2003-11-25 | 2005-05-26 | Berkema Alan C. | Hard copy imaging systems, print server systems, and print server connectivity methods |
FI20031779A0 (fi) * | 2003-12-05 | 2003-12-05 | Nokia Corp | Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa |
US7177941B2 (en) * | 2003-12-11 | 2007-02-13 | International Business Machines Corporation | Increasing TCP re-transmission process speed |
US7243284B2 (en) * | 2003-12-11 | 2007-07-10 | International Business Machines Corporation | Limiting number of retransmission attempts for data transfer via network interface controller |
US7383483B2 (en) * | 2003-12-11 | 2008-06-03 | International Business Machines Corporation | Data transfer error checking |
US7478381B2 (en) | 2003-12-15 | 2009-01-13 | Microsoft Corporation | Managing software updates and a software distribution service |
US20050177635A1 (en) * | 2003-12-18 | 2005-08-11 | Roland Schmidt | System and method for allocating server resources |
US7493394B2 (en) | 2003-12-31 | 2009-02-17 | Cisco Technology, Inc. | Dynamic timeout in a client-server system |
US7698361B2 (en) | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
US7383463B2 (en) | 2004-02-04 | 2008-06-03 | Emc Corporation | Internet protocol based disaster recovery of a server |
EP1728249B1 (en) * | 2004-03-17 | 2008-08-27 | Koninklijke Philips Electronics N.V. | Method and device for scanning a disc-shaped information storage medium |
US7444536B1 (en) | 2004-04-16 | 2008-10-28 | Sun Microsystems, Inc. | RMI-IIOP request failover mechanism |
US7627627B2 (en) * | 2004-04-30 | 2009-12-01 | Hewlett-Packard Development Company, L.P. | Controlling command message flow in a network |
US20050246803A1 (en) * | 2004-04-30 | 2005-11-03 | Spencer Andrew M | Peripheral device for processing data from a computing device |
JP2005321953A (ja) * | 2004-05-07 | 2005-11-17 | Hitachi Ltd | ストレージ制御装置、その動作プログラム、及びアクセス制御方法 |
JP2005322016A (ja) | 2004-05-10 | 2005-11-17 | Yokogawa Electric Corp | サーバ装置および情報配信方法 |
US7380080B2 (en) * | 2004-05-17 | 2008-05-27 | Hewlett-Packard Development Company, L.P. | Calculating unneeded data storage credits for a data transmission to a pair of storage devices |
US7330910B2 (en) * | 2004-05-20 | 2008-02-12 | International Business Machines Corporation | Fencing of resources allocated to non-cooperative client computers |
US7487353B2 (en) * | 2004-05-20 | 2009-02-03 | International Business Machines Corporation | System, method and program for protecting communication |
US7434087B1 (en) | 2004-05-21 | 2008-10-07 | Sun Microsystems, Inc. | Graceful failover using augmented stubs |
US7080173B2 (en) * | 2004-05-27 | 2006-07-18 | Microsoft Corporation | Reducing information reception delays |
US20060059118A1 (en) | 2004-08-10 | 2006-03-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a behavior based algorithm |
US8023417B2 (en) | 2004-08-30 | 2011-09-20 | International Business Machines Corporation | Failover mechanisms in RDMA operations |
US7418712B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support multiple-protocol processing within worker processes |
US7418709B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | URL namespace to support multiple-protocol processing within worker processes |
KR20060025100A (ko) | 2004-09-15 | 2006-03-20 | 삼성전자주식회사 | 다국어를 지원하는 메타 데이터를 기록한 정보저장매체 및메타 데이터 처리방법 |
US20060067244A1 (en) | 2004-09-30 | 2006-03-30 | Microsoft Corporation | Registration identifier reuse |
US7451347B2 (en) | 2004-10-08 | 2008-11-11 | Microsoft Corporation | Failover scopes for nodes of a computer cluster |
CN1767472A (zh) | 2004-10-27 | 2006-05-03 | 乐金电子(天津)电器有限公司 | 家庭网络系统 |
US8156049B2 (en) * | 2004-11-04 | 2012-04-10 | International Business Machines Corporation | Universal DRM support for devices |
US7457722B1 (en) | 2004-11-17 | 2008-11-25 | Symantec Operating Corporation | Correlation of application instance life cycle events in performance monitoring |
JP4451293B2 (ja) | 2004-12-10 | 2010-04-14 | 株式会社日立製作所 | 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法 |
US8522293B2 (en) * | 2004-12-15 | 2013-08-27 | Time Warner Cable Enterprises Llc | Method and apparatus for high bandwidth data transmission in content-based networks |
US8515490B2 (en) | 2004-12-30 | 2013-08-20 | Alcatel Lucent | Method and apparatus for providing same session switchover between end-user terminals |
JP2008530835A (ja) * | 2005-02-08 | 2008-08-07 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | パケット交換ネットワーク上のオンデマンドマルチチャネルストリーミングセッション |
US7743245B2 (en) * | 2005-03-10 | 2010-06-22 | Intel Corporation | Security protocols on incompatible transports |
US7453879B1 (en) * | 2005-04-04 | 2008-11-18 | Sun Microsystems, Inc. | Method and apparatus for determining the landing zone of a TCP packet |
US20060281525A1 (en) * | 2005-05-17 | 2006-12-14 | Milo Borissov | Slot type game with player input opportunity |
EP1727055B1 (en) | 2005-05-25 | 2016-09-07 | Microsoft Technology Licensing, LLC | Data communication coordination with sequence numbers |
EP1727056B1 (en) | 2005-05-25 | 2008-11-05 | Microsoft Corporation | Data communication protocol |
US8332526B2 (en) | 2005-05-25 | 2012-12-11 | Microsoft Corporation | Data communication protocol including negotiation and command compounding |
JP2007058506A (ja) | 2005-08-24 | 2007-03-08 | Ricoh Co Ltd | 文書管理サーバ、文書管理システム、及び、文書管理プログラムとその記録媒体 |
GB0519246D0 (en) | 2005-09-21 | 2005-10-26 | Ibm | A method, apparatus and computer program for handling web server failure |
RU2313824C2 (ru) | 2005-09-26 | 2007-12-27 | Михаил Васильевич Беляев | Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса |
US8108548B2 (en) | 2005-12-22 | 2012-01-31 | Microsoft Corporation | Methodology and system for file replication based on a peergroup |
US8051179B2 (en) | 2006-02-01 | 2011-11-01 | Oracle America, Inc. | Distributed session failover |
US8024439B2 (en) | 2006-03-17 | 2011-09-20 | Microsoft Corporation | Server session management application program interface and schema |
US7526668B2 (en) | 2006-06-08 | 2009-04-28 | Hitachi, Ltd. | Failover method of remotely-mirrored clustered file servers |
KR20080057483A (ko) | 2006-12-20 | 2008-06-25 | 삼성전자주식회사 | 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법 |
US7809828B2 (en) | 2007-04-11 | 2010-10-05 | International Business Machines Corporation | Method for maintaining state consistency among multiple state-driven file system entities when entities become disconnected |
US20090077097A1 (en) * | 2007-04-16 | 2009-03-19 | Attune Systems, Inc. | File Aggregation in a Switched File System |
US9621649B2 (en) * | 2007-09-28 | 2017-04-11 | Xcerion Aktiebolag | Network operating system |
EP2066101B1 (en) * | 2007-11-28 | 2012-10-17 | Alcatel Lucent | System and method for an improved high availability component implementation |
US20090158221A1 (en) | 2007-12-17 | 2009-06-18 | Nokia Corporation | Device feature manipulation based on presented content |
CN101217483A (zh) | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 用于实现集群服务器内负载分担代理的方法 |
US8458298B2 (en) | 2008-03-03 | 2013-06-04 | Microsoft Corporation | Failover in an internet location coordinate enhanced domain name system |
JP5054618B2 (ja) | 2008-06-10 | 2012-10-24 | 京セラドキュメントソリューションズ株式会社 | ネットワークファイル処理システム |
JP4549408B2 (ja) | 2008-06-24 | 2010-09-22 | 富士通株式会社 | ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置 |
US7840730B2 (en) | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Cluster shared volumes |
US8700760B2 (en) | 2008-08-18 | 2014-04-15 | Ge Fanuc Intelligent Platforms, Inc. | Method and systems for redundant server automatic failover |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
US8185566B2 (en) * | 2009-01-15 | 2012-05-22 | Microsoft Corporation | Client-based caching of remote files |
CN101594320B (zh) | 2009-06-23 | 2012-05-09 | 中兴通讯股份有限公司 | 一种基于snmp协议的消息交互方法 |
US9749387B2 (en) | 2009-08-13 | 2017-08-29 | Sap Se | Transparently stateful execution of stateless applications |
JP2011119794A (ja) | 2009-11-30 | 2011-06-16 | Toshiba Corp | 電子機器及び通信制御方法 |
US8631277B2 (en) | 2010-12-10 | 2014-01-14 | Microsoft Corporation | Providing transparent failover in a file system |
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 |
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 |
-
2005
- 2005-07-15 US US11/182,251 patent/US8332526B2/en active Active
- 2005-07-15 US US11/182,989 patent/US8316129B2/en active Active
- 2005-12-06 ES ES10012923.8T patent/ES2604972T3/es active Active
- 2005-12-06 EP EP16179836.8A patent/EP3098732B1/en active Active
- 2005-12-06 EP EP10012923.8A patent/EP2259548B1/en active Active
- 2005-12-09 AT AT08008916T patent/ATE516656T1/de not_active IP Right Cessation
- 2005-12-09 CN CN2005101279978A patent/CN1870642B/zh active Active
- 2005-12-09 EP EP08008916A patent/EP1950933B1/en active Active
- 2005-12-09 DE DE602005010837T patent/DE602005010837D1/de active Active
- 2005-12-09 EP EP10013021.0A patent/EP2317732B1/en active Active
- 2005-12-09 CN CN2005101279982A patent/CN1870643B/zh active Active
- 2005-12-09 AT AT05111885T patent/ATE413653T1/de not_active IP Right Cessation
- 2005-12-09 CN CN201210434813.2A patent/CN102932457B/zh active Active
- 2005-12-09 CN CN201110329007.4A patent/CN102394872B/zh active Active
-
2007
- 2007-05-29 HK HK11111961.9A patent/HK1157959A1/zh not_active IP Right Cessation
- 2007-05-29 HK HK07105689.8A patent/HK1099586A1/xx not_active IP Right Cessation
- 2007-05-29 HK HK09100873.3A patent/HK1121886A1/xx not_active IP Right Cessation
-
2012
- 2012-08-01 HK HK12107578.1A patent/HK1166901A1/zh not_active IP Right Cessation
- 2012-10-30 US US13/664,012 patent/US8850025B2/en active Active
- 2012-10-30 US US13/663,827 patent/US8825885B2/en active Active
-
2013
- 2013-07-10 HK HK13108072.9A patent/HK1180855A1/zh unknown
- 2013-07-19 US US13/946,550 patent/US9438696B2/en active Active
-
2014
- 2014-08-29 US US14/473,488 patent/US9071661B2/en active Active
-
2015
- 2015-05-22 US US14/720,083 patent/US9332089B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453354B1 (en) * | 1999-03-03 | 2002-09-17 | Emc Corporation | File server system using connection-oriented protocol and sharing data sets among data movers |
Non-Patent Citations (1)
Title |
---|
THE OPEN GROUP, X/OPEN COMPANY LIMITED, X/OPEN.Technical Standard Protocols for X/OPEN PC Interworking: SMB, Version 2.《Technical Standard Protocols for X/OPEN PC Interworking: SMB, Version 2》.1992,正文第2.1,2.2,2.2.2,3.9,4.3.7,5.1,5.3.6,16.1.5节,第3页倒数第1段及第199-200页. * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1870642B (zh) | 用于通过使用数据通信协议在网络计算环境内通信的方法 | |
KR101036751B1 (ko) | 데이터 통신 프로토콜 | |
CN101682635B (zh) | 复用式数据流协议 | |
CN101682634B (zh) | 用于基于事务的通信的文件协议 | |
US6775700B2 (en) | System and method for common information model object manager proxy interface and management | |
US8122103B2 (en) | Method for controlling a multimedia device from a mobile terminal, corresponding computer programs, multimedia device and server | |
US20080134216A1 (en) | Interface driver program for computer and recording medium therefor | |
KR101602308B1 (ko) | 애플리케이션 데이터를 처리하기 위한 방법 및 계산 노드 | |
TW200522630A (en) | Lightweight input/output protocol | |
JP2006134335A (ja) | スマートカードと協働する「web」タイプのブラウザを用いたオブジェクトへのアクセスシステム | |
US20070124344A1 (en) | Method, apparatus and program storage device for providing web services-based data replication for Heterogeneous storage systems | |
US20020032755A1 (en) | Registration system and method using a back end server | |
US20080301003A1 (en) | System for Online Buying | |
US8532136B1 (en) | Communication with a handset via a private network | |
US7895344B2 (en) | Method and apparatus for remote management | |
KR101130475B1 (ko) | 데이터 통신 프로토콜 | |
JP2007243344A (ja) | 通信方法、接続管理サーバ及び携帯電話機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150508 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150508 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |