用于利用顺序号的数据通信协调的方法和系统的制作方法

文档序号:7864627阅读:149来源:国知局
专利名称:用于利用顺序号的数据通信协调的方法和系统的制作方法
技术领域
本申请涉及数据通信协调,尤其涉及利用顺序号的数据通信协调。
背景技术
今天仍然使用的许多数据通信协议,如SMB (服务器信息块)协议,是在计算机资源有很大不同的时代发展起来的,例如,那时网络带宽一般是有限的且存储器非常珍贵。结果是,当在当代网络中使用时,这种协议会限制总体性能。例如,因为是在存储器有限的时候设计的,使用的缓冲器很小,则要求更多的往返行程来传递大量数据。而且,现有的SMB协议还有随时间而变得明显的其他限制。例如,现有的SMB协议易受拒绝服务攻击的影响;该协议的设计使得它很难对抗这些攻击。同样地,现在没有用于执行类似服务质量的操作,这是由于例如受信任的客户获得与不受信任的客户相同的服务器资源。总而言之,尽管是频繁使用且有价值的协议,但是当用于当代网络资源时,现有的SMB版本还是不够理想。

发明内容
简要的说,本发明的各个方面针对对客户端一服务器通信使用顺序号,如结合在数据通信协议中,以控制客户端对服务器资源的使用。本发明的各个方面将顺序号的使用应用于排序并非重要的协议,但却提供服务质量、服务拒绝对抗、服务器资源的划分、安全信息签名、以及其他许多益处。服务器授予客户端信用(credit),客户端使用信用用于向服务器发送每条命令。每个信用与一顺序号对应,一组顺序号构成有效命令窗口。服务器强制实施对于每个接收到的命令,该命令包括有效命令窗口内的一顺序号,且该顺序号未曾被另一个命令所使用。服务器还可保持最大窗口大小,以便即使具有信用的客户端也不能发送顺序号超过与最大窗口大小对应的最大顺序号的命令。一般来说,一旦从客户端接收命令,服务器验证顺序号是否在窗口内且之前未被使用。然后,服务器从客户端可用的那些顺序号中除去相应的顺序号,因此消耗一个信用。然后,服务器确定是否授予该客户端一个或多个其他的信用。因此,提供了一种通过包含对于授予客户端的每个信用唯一号码的有效操作窗口,控制授予客户端的信用数,从而限制对服务器资源的使用的机制。一种实施机制确保允许对接收到的命令的进一步的服务器操作,该命令包括有效操作窗口内的一顺序号,且该唯一号码未被另一个命令所使用。一种分配机制控制授予客户的信用和有效操作窗口内的
唯一号码。当结合附图考虑时,从下面的详细说明中,本发明的其他优点会更为明显。


本发明通过例子来说明,且不受伴随的附图的限制,附图中相同的标号指示相同的元件,并且其中图I示出其中可以结合本发明的各个方面的通用计算环境的说明性的例子。图2是根据本发明的各个方面,表示其中客户端与服务器通信的示例性网络环境 的框图。图3到图13是根据本发明的各个方面,为使用顺序号而保持的客户和服务器的数据的表不。
具体实施例示例性的操作环境图I示出本发明可以实现于其中的适合的计算系统环境100的例子。计算系统环境100只是适合的计算环境的一个例子,并不意图提出对本发明的使用范围或功能的任何限制。计算环境100也不应解释为对有关示例性的操作环境100中描述的一个元件或元件组合有任何依赖或要求。本发明在许多其他通用或专用的计算系统环境或配置中是可操作的。适合本发明使用的熟知的计算系统、环境、和/或配置的例子包括,但不限于个人计算机、服务器计算机、手提或膝上设备、写字板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子产品、网络PC、微型机、大型机、包括以上任何一种系统或设备的分布式计算环境
坐坐寸寸O本发明的可在计算机可执行指令的一般上下文中描述,如计算机可执行的程序模块。一般来说,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实施,其中由通过通信网络链接的远程处理设备来执行任务。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地和/或远程计算机存储介质中。参考图1,用于实现本发明的示例性的系统包括计算机110形式的通用计算设备。计算机110的组件包括,但不限于,处理单元120、系统存储器130、以及连接各种系统组件,包括把系统存储器连接到处理单元120的系统总线121。系统总线121可为几种类型的总线结构的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何一种总线结构的局部总线。作为例子,而非限制,这些结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA总线、视频电子标准协会(VESA)局部总线、以及外围组件互联(PCI)总线,也称为Mezzanine总线。计算机110 —般包括各种计算机可读介质。计算机可读介质可为计算机110可访问的任何可用介质,且包括易失和非易失的介质、以及可移动的和不可移动的介质。作为例子,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括易失和非易失的介质、可移动的和不可移动的介质,这些介质以用于信息存储的任何方法或技术,比如计算机可读指令、数据结构、程序模块或其它数据来实现。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其它存储技术、CDR0M、数字视频盘(DVD)或其它光存储器、磁性磁带、磁性录音带、磁性磁盘存储器或其它的磁性存储设备,或可用于存储需要的信息并可由计算机110访问的任何其它介质。通信介质一般包括计算机可读指令、数据结构、程序模块或在一个调制数据信号,如载波或其它传输机制中的其它数据,且包括任何信息传递介质。术语“调制数据信号”意思是以编码信号中的信息的方式设置或改变其一个或多个特征的信号。作为例子,而非限制,通信介质包括,如有线网络或直接线缆连接的有线介质,以及如声频、RF、红外线和其它无线介质。以上的任何组合也应该包括在计算机可读介质的范围内。系统存储器130包括,以如只读存储器(ROM) 131和随机存取存储器(RAM) 132的 易失和非易失的存储器形式的计算机存储介质。基本输入/输出系统133 (BIOS)—般存储在ROM 131内,它包括如启动时帮助在计算机110内的元件间传输信息的基本例程。RAM132 一般包含可由处理单元120即时存取和/或目前在操作的数据和/或程序模块。作为例子而非限制,图I说明了操作系统134、应用程序135、其它程序模块136以及程序数据137。计算机110还包括其它可移动/不可移动、易失/非易失的计算机存储介质。仅仅作为例子,图I示出了从不可移动、非易失的磁性介质读取或向其中写入的硬盘驱动器141、从可移动的、非易失的磁性磁盘152读取或向其中写入的磁盘驱动器151、以及用于向如CD ROM或其它光学介质的可移动、非易失的光学介质156读写的光盘驱动器155。其它能用于示例性的操作环境的可移动/不可移动、易失/非易失的计算机存储介质包括但不限于磁性盒式磁带、闪存卡、数字多用途盘、数字视频磁带、固态RAM、固态ROM等等。硬盘驱动器141 一般通过如接口 140的不可移动的存储器接口连接到系统总线121,而磁盘驱动器151通过如接口 150的可移动的存储器接口连接到系统总线121。以上图I描述并示出的驱动器及其关联的计算机存储介质,为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,图I中,为存储操作系统144、应用程序145、其它程序模块146和程序数据147而示出了硬盘驱动器141。注意,这些组件可与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可与之不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给出不同的标号,以至少说明它们是不同的副本。用户可通过输入设备,如键盘162和定点设备161 (通常指鼠标、跟踪球或触摸)向算机110输入命令和信息。其它输入设备(未在图I中示出)可包括操作杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些以及其它输入设备通常通过连接到系统总线的用户输入接口 160,连接到处理单元120,但是也可以通过其它接口和总线结构相连,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口 190连接到系统总线121。监视器191也可以与触摸屏面板等集成。注意,监视器和/或触摸屏面板可以物理连接到其中结合了计算设备110的外壳,如一写字板类型的个人计算机中。此外,如计算设备110的计算机也可包括其他外围输出设备,如扬声器195和打印机196,它们通过外围接口 194等进行连接。计算机110可以工作在使用到一个或多个如远程计算机180的远程计算机的逻辑连接的网络化环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,且一般包括与计算机110相关的许多或所有上述元件,尽管图I中仅说明了存储器存储设备181。图I所示的逻辑连接包括局域网(LAN) 171以及广域网(WAN) 173,但也可包括其他网络。这种网络环境常见于办公室、企业范围的计算机网络、内联网以及因特网。当用于LAN网络环境时,计算机110通过网络接口或适配器170连接到局域网171。当用于WAN网络环境时,计算机110 —般包括调制解调器172或其他装置,用于在如因特网的广域网173上建立通信。调制解调器172可为内置或外置,它通过用户输入接口 160或其他适合的机制连接到系统总线121。在网络化环境中,所述与个人计算机110有关的程序模块,或其一部分可存储在远程存储设备内。作为例子,而非限制,图I示出了驻留在存储器设备181上的远程应用程序185。应该认识到。所示的网络连接是示例性的,并且在计算机间建立通信的其他手段也可以使用。利用顺序号的数据通信的协调这里描述的技术的各个方面针对可用于数据通信协议中的机制,如SMB协议的修改版本(2. X或更高)。一般在这里描述的实现的一个例子中,所述机制控制该修订的SMB协议中的数据/命令流,用于基于Windows的文件共享。然而,容易理解,本发明并不限于基于Windows的系统或SMB协议,而是相反,这种示例性技术一般可适用于其他文件共享协议和数据通信协议,包括那些不必处理文件数据的协议。例如,实现本发明的许多方式都是可行的,包括,用于与打印机、指定的数据管道、类属设备等等的通信。同样,本发明并不限于这里所使用的任何特定的基于文件的例子或其他例子,而是可用于一般在计算中提供益处和优点的许多方式。转到图2,示出了代表示例性的网络环境的框图,其中客户端202通过一个或多个通信信道与服务器204通信。尽管按照位于两个分离的计算机内,如图I的主计算机系统110和远程计算机系统180,对客户端机器202和服务器204的功能和组件进行了描述,但可在一个机器上或可分布于许多计算机上提供这两个计算机的组件或其执行的功能。例如,计算机系统可包含多种网络应用设备之一,如打印服务器或打印机本身、以及NAS存储设备等等。来自应用程序206的网络文件系统命令由客户端重定向器组件208进行处理,该命令与对应的公共网络模块(SRVNET) 210进行通信,以在文件系统212上执行该命令。一般来说,客户端202建立一连接,然后与服务器204协商,以最终建立会话。作为其中一部分,在处理针对文件系统的命令之前,客户端和服务器商定一通信协议。这个例子中,用于该连接/会话的经商定的协议是SMB 2. 0,借此,客户端的SMB引擎220采用SMB2. O驱动器进行与服务器204之间的通信。类似地,公共网络模块(SRVNET) 210采用SMB 2. O提供器226来处理此连接上的客户端通信。如下所述,提供器226包括确保客户端使用合适的顺序号的实施机制和数据结构,或另外与之相关联。转到利用顺序号的数据通信协调的概念,顺序号提供了一种机制,其中服务器可通过该机制限制给定客户端能够对服务器发出的工作量。如即将理解的那样,这是通过使服务器提供允许客户端在标识给定命令时使用的可用顺序号的窗口来实现的。为了实现顺序号和想要的行为,采用信用的概念,这里信用授予客户端消耗服务器端的部分资源的权利,这些资源包括客户端可消耗的要求返回操作的存储器以及CPU周期。客户端每发送一个命令就消耗一个信用,且依赖于服务器的响应,可被授予零、一个或多个额外的信用。不允许客户端重复使用一顺序号,因此客户端能发出的命令数受到控制。注意,为方便起见,使用单调增加的顺序号,然而,任何唯一的(每个会话/连接)号码都是等效的。例如,如果服务器授予客户端五个信用,则该服务器给予客户端同时提交五个操作的权利。当服务器需要限制客户端时,服务器减少给该客户端的可用信用。当服务器希望给予客户端更多有用的资源时,服务器可授予客户端信用。这就给服务器若干选项。通过向客户端授予零个信用,服务器停止对该客户端的资源分配。或者,通过返回一个信用,服务器保持先前的窗口大小。通过返回一个以上的信·用,服务器允许客户端使用更多的资源用于执行命令。假定该协议严格意义上为命令一响·应协议,一个限制是服务器不能允许窗口大小为零(没有有效的顺序号),除非有办法授予带外(out of band)的信用。注意,如果存在授予客户端信用的方法而不要求客户端在使·用这种方法的协议内请求这些信用,那么不会存在这种限制。注意,协商请求/响应具有为O的顺序号(也称为信息标识符,或MID),以及大小为I的窗口。在SMB 2. O中,以下的头部方便了这种信息的传递,如在前述有关的共同待决的、名为“Data Communication Protocol”的美国专利申请中进一步描述的那样
typedef struct _SMB2—HEADER {
UCHARProtocol [4] ;// 包含 OxFE, 'Ss , 1M' , 1B1
USHORTStructureSize;// = sizeof(SMB2_HEADER) ·
// (版本化)
USHORTEpoch ;//每次服务器軍启时递增
NTSTATUSStatus;// 命令的状态
USHORTCommand;// HJ f此分组联合的命令
{
USHORTCreditsRequested; //在客户端发送0J‘,请求更多倌用
USHORTCreditsGranted; //在服务器响应时,授予客户端信l+j
};
ULONGFlags;
ULONGReserved;
UINT64Messageld;//标识该信息发送/响应
union {
struct
{
UINT64 ProcessId;// 进程标识符
UINT64 SessionId;// 会话标识符
ULONG TreeId;// 树形连接(Tree Connect)标识符
};scrucr
{
UINT64 AsyncId// W于标识长期持续的命令
};
};
UCHARSignature [8] ;// 分组的签名
ULONGNextCommand;// 到.卜一个的偏移
} —SMB2—HEADER, *PSMB2—HEADER; 从以上头部结构中可以看出,客户端请求许多想要的信用,然而服务器控制向客户端授予信用。因此,服务器能够基于客户端的身份、行为或任何其他属性或标准来缩减或增加窗口。顺序号也提供一种方式以唯一标识对于一给定的连接从客户端向服务器发送的命令。通过建立命令窗口,客户端和服务器开始。通过使用默认或协商的初始顺序号(ISN)(也称为初始信息标识符,或MID)和信用数(NoC)来启动命令窗口,该命令窗口代表服务器将接受以标识给定命令的可允许号码的范围。因此,该命令窗口最初包含[ISN, ISN+NoC-1]。对大多数协议而言,默认可为ISN=1,NoC = 1,因此当第一次协商时,该命令窗口简单地为[1,1],代表服务器将接受以标识命令的唯一顺序号为一(I)。随着通信的进行,客户端通过用完该范围内的号码而移到窗口低处的号码。一旦使用一号码,它就不能被再次使用,这是由服务器实施的。同时,服务器可确定通过授予用户更多的信用来延伸窗口末端。例如,如果命令窗口为[A,B],当客户端发送命令A时,有效的命令窗口实质上变为[A+1,B]。当服务器响应命令A时,它可向客户端授予从零到任何实际数量的信用。因此,如果服务器返回N个信用,则有效命令窗口变为[A+1,B+N]。对于可允许范围内的顺序号的使用不要求是按次序的。该协议是为方便顺序号的异步使用而建立的,只要被使用的号码在有效范围内。这就允许网络协议发送可用的分组,而不是尝试实施有序的发送。因此,如果很大的分组要求顺序号A,但在准备缓冲器的同时,A+1而A+2进入且它们很小,则无需等待启动A的发送而发送A+1和A+2 (只要窗口的末端^ A+2)是合法的。注意,如果存在有效命令窗口 [1,5],并发送分组2,3,4,则服务器可回授允许除{2,3,4}之外的窗口 [1,8](意思是I和8之间除2到4以外的所有号码)的信用。最终,服务器将有可能停止授予信用,直到发送分组I且允许该窗口滑动(slide)。如果在这一点上,客户端发送1,且服务器响应而授予信用,则窗口变为[5,9]。有效命令窗口的实施是在服务器端进行的。该系统允许象客户端结构与具有当前顺序号和最大顺序号,以及使用互锁的比较和增量作为唯一要求的异步方法一样简单。因此,有效命令窗口(也称为有效操作或有效Op窗口)包含服务器会接受的有效标识符的窗口。客户端用下一个有效顺序号发送每个后续命令(一直到其有效信用为止),不需要保持有效窗口的视图。要求客户端理解以下描述的“最大窗口大小”的概念。下面提出使用有效命令/操作窗口的例子。可能阻塞达不确定的时间量的任何操作,如改变一通知或指定的管道读取或创建(因为它可能待决于操作锁的中断),被认为是阻塞操作。为了方便这种操作,客户端可在发送的命令中提供“操作上下文”值,即阻塞标记。然后,当服务器成功地发起该操作时,它做出响应,允许递增顺序号,即使该操作仍然在服务器端进行。然而,这种长期运行的操作所持有的资源经常是常规命令要求的资源的子集。因此,允许服务器确定允许客户端消耗的“阻塞Op信用”(也称为长期操作信用,或L0C)的最大数量。顺序号也允许长期运行的命令和带有来自服务器的多重响应的命令,通过控制客户端可以消耗多少资源来加以平衡。因此,对有效命令窗口的延伸允许该窗口继续正常滑动,且不会被可能花费不确定时间量的操作所阻碍。为此,服务器授予客户端一给定数量的阻塞Op信用,且带有阻塞Op标记而发出的任何操作将消耗阻塞Op信用。当服务器接收命令时,服务器可向客户端发回带有确认对长期命令的接收并返回长期命令ID (也称为异步标识符(AsyncID))的标记集的中间响应。这个响应允许有效命令窗口正常滑动。当该长期命令结束时,使用该长期命令ID向客户端发回新的响应,以指示响应于哪个分组。这种发送一响应一响应架构允许窗口连续移动,且该信用机制允许服务器保留对客户端可消耗多少资源的控制。如果存在来自客户端的大量正在进行的长期操作,服务器甚至可以缩减有效命令窗口。替代性的实施例包括允许客户端向服务器暗示长期命令即将到来的协议。异步概 念的另一中实现还可使客户端发出中间“接受”等等,以便异步/阻塞操作采用与简单的发送一接收一接收相对的“发送一接收一发送一接收”的形式。注意,经常为请求一响应通信调谐一些基础传输(例如,TCP),且可能在请求一响应一响应情况下引入延迟。因为协议和传输的异步特性,当前的有效窗口并不直接等于当前最小的顺序ID加上信用,因为一些中间命令可能会首先被接收,或者例如,顺序ID= I的命令可能长期进行。然而,服务器可在有效窗口停止增长之前对其设置能够增长到多大的限制。继续以上的例子,服务器可指定最大窗口大小为十(10)。这就意味着如果服务器在接收或完成分组I的处理之前,接收并处理分组2,3,4,5和6,则有效操作(命令)窗口可增至[1,10]。因此,有效的顺序号为1,7,8,9,10。然而,如果服务器然后接收分组7并处理它,则有效操作(命令)窗口将不会滑动至[1,11],而是保持在[1,10],可接受的顺序号为1,8,9,10。对命令8的响应会指示(一 O的信用,以告知该客户端他正到达其可接受的限制的末端,即,现在其信用值为4。这是服务器防止客户端曾跳过顺序内的给定号码(这会防止窗口很好地滑动)的一种方式。这也证明了对那些将持续很长时间的命令对服务器发出“阻塞Op”的价值。跟踪服务器端的有效命令窗口在计算上可能是代价高的,因为服务器需要保持对交集(intersecting sets)的跟踪。为了简化,一个示例性实现将建立上述的最大窗口大小,作为服务器将允许命令窗口的最大值。一旦建立该最大值,服务器分配代表该大小的缓冲器,且当命令进入时,缓冲器内此位置的值就会改变。只要该窗口大小保持小于或等于最大窗口大小,则随着窗口开始向前移动,服务器向前移动其缓冲器指针。同样地,当由于授予信用而使末端增长时,服务器沿缓冲器移动其末端指针。运算器处理缓冲器“覆盖(wrap)”最大窗口大小的情况。通过分配更大的缓冲器并把当前的值复制进去,就可能动态增长最大窗口大小。使用互锁操作来跟踪窗口内有效命令的状态,以AVAILABLE (可用)开始。一旦从客户端接收命令,它们转移到IN_PR0GRESS,且当发出响应(或者对于长期运行命令情况时为中间响应)时,它转移到USED。如果转移到USED的值是窗口内的第一个值,则该窗口向前滑动,直到遇到非USED的值。另一个备选方案允许服务器通过备用信道(alternate channel)或通过未排序的通信来调用信用。例如,考虑服务器已经授予客户端十个信用,但希望裁减到五个信用,这一般不会发生,直到客户端使用五个命令。如果该客户端空闲,服务器可指示客户端在接下来的N秒内必须使用五个信用,否则它就违规且会被终止(或者失去这些信用)。这就允许服务器限制客户端,而不必依靠客户端去移动它们自己的窗口。通过使用各种例子,转到对本发明的操作的说明,当前状态将以下面的格式提出
权利要求
1.在具有客户端和服务器的网络计算环境中的一种方法,该方法包括 建立包括至少一个顺序号的命令窗口,其中所述命令窗口响应于所述客户端被授予一额外的信用来调整以包括一额外的未使用的顺序号,其中所述额外的信用使得所述客户端能够使用文件系统命令来消耗服务器资源; 接收消耗至少一个服务器资源的文件系统命令,所述文件系统命令包括一相关联的顺序号; 确定所述相关联的顺序号是否位于所述命令窗口中; 确定所述相关联的顺序号是否以前未被包括在另一文件系统命令中; 在确定所述相关联的顺序号位于所述命令窗口中且以前未被包括在在会话期间发送的另一文件系统命令中时,允许所述文件系统命令; 授予所述客户端第一额外的信用;以及 调整所述命令窗口以包括第一额外的未使用的顺序号。
2.如权利要求I所述的方法,其特征在于,进一步包括在确定所述相关联的顺序号没有超过最大顺序号时,允许所述命令。
3.如权利要求I所述的方法,其特征在于,进一步包括响应于接收到的命令,授予所述客户端第二额外的信用,以及调整所述命令窗口以包括第二额外的未使用的顺序号。
4.如权利要求I所述的方法,其特征在于,允许所述文件系统命令消耗被授予所述客户端的一个信用。
5.如权利要求I所述的方法,其特征在于,进一步包括 授予所述客户端一个或多个阻塞操作信用;以及 响应于接收到从所述客户端发送来的阻塞命令,允许所述服务器来执行阻塞操作,其中所述阻塞命令没有超过阻塞操作信用的最大数量。
6.如权利要求5所述的方法,其特征在于,进一步包括 返回指示所述阻塞操作的进行的数据;以及 返回所述阻塞操作的标识符。
7.如权利要求6所述的方法,其特征在于,进一步包括授予所述客户端一额外的信用,并响应于接收到所述阻塞操作命令来调整所述命令窗口。
8.如权利要求I所述的方法,其特征在于,进一步包括处理接收到的来自所述客户端的对一额外的信用的请求。
9.如权利要求I所述的方法,其特征在于,进一步包括取消至少一个先前被授予所述客户端的信用。
10.在具有客户端和服务器的网络计算环境中的一种方法,该方法包括 建立包括至少一个顺序号的命令窗口,其中所述命令窗口响应于所述客户端被授予一额外的信用来调整以包括一额外的未使用的顺序号,其中所述额外的信用使得所述客户端能够使用文件系统命令来消耗服务器资源; 接收消耗至少一个服务器资源的文件系统命令,所述文件系统命令包括一相关联的顺序号; 确定所述相关联的顺序号是否位于所述命令窗口中; 确定所述相关联的顺序号是否未被包括在另一文件系统命令中;在确定所述相关联的顺序号位于所述命令窗口中且未在会话期间被包括在另一文件系统命令中时,允许所述文件系统命令; 授予所述客户端第一额外的信用;以及 调整所述命令窗口以包括第一额外的未使用的顺序号。
11.如权利要求10所述的方法,其特征在于,其中授予所述客户端第一额外的信用的步骤是在确定不取消先前被授予所述客户端的信用后执行的。
12.如权利要求10所述的方法,其特征在于,其中授予所述客户端第一额外的信用的步骤是当所述命令窗口中的顺序号不超过最大窗口大小时执行的。
13.如权利要求10所述的方法,其特征在于,进一步包括取消至少一个先前被授予所述客户端的信用。
14.如权利要求10所述的方法,其特征在于,进一步包括 授予所述客户端一个或多个阻塞操作信用;以及 响应于接收到来自所述客户端的阻塞命令,允许所述服务器来执行阻塞操作,其中所述阻塞命令没有超过阻塞操作信用的最大数量。
15.在具有客户端和服务器的网络计算环境中的一种系统,该系统包括 用于建立包括至少一个顺序号的命令窗口的装置,其中所述命令窗口响应于所述客户端被授予一额外的信用来调整以包括一额外的未使用的顺序号,其中所述额外的信用使得所述客户端能够使用文件系统命令来消耗服务器资源; 用于接收消耗至少一个服务器资源的文件系统命令的装置,所述文件系统命令包括一相关联的顺序号; 用于确定所述相关联的顺序号是否位于所述命令窗口中的装置; 用于确定所述相关联的顺序号是否以前未被包括在另一文件系统命令中的装置;用于在确定所述相关联的顺序号位于所述命令窗口中且以前未被包括在在会话期间发送的另一文件系统命令中时,允许所述文件系统命令的装置; 用于授予所述客户端第一额外的信用的装置;以及 用于调整所述命令窗口以包括第一额外的未使用的顺序号的装置。
全文摘要
公开了用于利用顺序号的数据通信协调的方法和系统。描述了用于客户端-服务器通信的顺序号,以控制客户端对服务器资源的使用。服务器授予客户端的信用,该客户端消耗信用以向服务器发送每个命令。每个信用对应一顺序号,一组顺序号构成有效命令窗口。服务器强制实施对于每个接收到的命令,该命令包括有效命令窗口内的一顺序号,且该号码不曾被另一命令所使用。服务器还可以保持最大窗口大小,以便具有信用的客户端不能发送具有超过最大顺序号的顺序号的命令。当结合于数据通信协议中时,会产生服务质量、对抗服务拒绝、信息丢失的检测、服务器资源的划分、安全的信息签名、以及其他许多益处。
文档编号H04L29/08GK102932457SQ20121043481
公开日2013年2月13日 申请日期2005年12月9日 优先权日2005年5月25日
发明者A·莫哈蒙德, B·S·拉曼, D·科鲁斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1