CN102739761B - 用于无连接传输协议的共享缓存器 - Google Patents

用于无连接传输协议的共享缓存器 Download PDF

Info

Publication number
CN102739761B
CN102739761B CN201110394986.1A CN201110394986A CN102739761B CN 102739761 B CN102739761 B CN 102739761B CN 201110394986 A CN201110394986 A CN 201110394986A CN 102739761 B CN102739761 B CN 102739761B
Authority
CN
China
Prior art keywords
client computer
content element
buffer
content
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110394986.1A
Other languages
English (en)
Other versions
CN102739761A (zh
Inventor
R.T.鲁索
A.M.泰勒
C.R.里迪
M.K.霍什
A.H.阿布德尔哈林
R.D.塞尔斯塔德
P.A.古列维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102739761A publication Critical patent/CN102739761A/zh
Application granted granted Critical
Publication of CN102739761B publication Critical patent/CN102739761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

在这里描述了用于操作无连接内容单元传输协议来使用共享缓存器向多个客户机传送内容单元的内容的多种不同原理。在接到来自的客户机的请求时,服务器可以使用个体缓存器来向多个客户机中的每一个传输一个或多个内容单元的内容。对于所传输的每个内容单元,服务器可以保持用于传输该内容单元的内容的缓存器的累计大小的计数。如果服务器确定传送特定内容单元的缓存器的累计大小大于内容单元本身,那么服务器可以建立一个共享缓存器,以便将该内容单元传输到客户机。以这种方式使用共享缓存器的服务器可以使用共享缓存器来向客户机传输内容单元的内容,直至所有发出请求的客户机全都接收到该内容单元。

Description

用于无连接传输协议的共享缓存器
背景技术
目前业已创建了多种不同类型的协议用于借助计算机通信网络交换信息。在这些类型的协议中,其中一种协议是文件传输协议。文件传输协议被适配成将文件系统的特定文件从源(也被称为服务器)拷贝到目的地(也被称为客户机)。
目前业已开发了具有多种不同特性的多种文件传输协议,其中每一种协议都可以与特定的计算或网络环境相适合。一种流行的文件传输协议被简称为文件传输协议(FTP)。FTP是使用传输控制协议(TCP)工作的,它在计算设备之间提供了连接以及其他允许可靠传输的功能。除了TCP提供的可靠性之外,FTP还可以提供其他功能,以确保安全地传输和列举可用于传输的文件。
由于FTP的功能,实施该协议的程序可能需要来自运行这些程序的设备的大量资源。例如,实施该协议的程序可能占用大量空间来进行存储,或者占用大量处理时间来运行。此外,运行此类程序的设备可能需要如驱动器和库之类的实施FTP所需要的其他功能的其他软件,其中包括实施TCP的软件。在一些情况中,用户希望用来交换文件的计算设备可能不具有这样的资源或软件。计算设备可能无法得到大量的存储器或处理资源,或者可能不具有实施TCP或其他功能的其他软件。
在此情况下,可以使用其他文件传输协议。例如,可以使用琐碎文件传输协议(TFTP)。TFTP是通过使用用户数据报协议(UDP)工作的,该协议是一个不包含用于可靠传输的功能的无连接通信协议。TFTP也不包括任何用于用户验证或安全性的功能并且通常不包括拥塞控制技术。因此,TFTP可以在存储空间极少、处理资源极少以及几乎不依赖其他软件的情况下实施。
发明内容
由于TFTP被设计成在传输内容的时候使用极少的资源,因此,TFTP被精心发展成用于那些实施传输协议的可用资源非常有限的情形。但是,TFTP有时会以一种消耗超出原本必需或是高效状况时的方式来使用资源。例如,TFTP服务器被适配成:为每一个向其传输文件的客户机会话创建一个缓存器,以便存储将要传送至该客户机的内容。在向多个客户机传输文件时,TFTP服务器可能会使用大量的存储器和处理资源从而保持用于每一个客户机会话的缓存器。然而在一些情形中,TFTP服务器可能不为每一个客户机使用一个缓存器,从而能够使用较少的存储器。这种情况有可能是在多个客户机正在请求同一文件且该文件可以改成为每一个客户机会话缓存一次时发生。
在这里描述了用于操作无连接内容单元传输协议(在这里也被更简单地称为无连接传输协议)来使用共享缓存器向多个客户机传送内容单元的内容的多种不同原理。在一些实施例中,在接到来自客户机的请求时,服务器可以使用每一个客户机的个体缓存器(individual buffers)来向多个客户机中的每一个传输一个或多个内容单元的内容。对于所传输的每个内容单元,服务器还可以保持用于传输该内容单元的内容的缓存器的累计大小的计数。如果服务器确定传送特定内容单元的缓存器的累计大小大于内容单元本身,那么服务器可以建立共享缓存器,以便将该内容单元的内容传输到请求该内容单元的客户机。
在一些实施例中,以这种方式使用共享缓存器的服务器可以使用共享缓存器来向客户机传送内容单元的内容,直至所有发出请求的客户机全都接收到该内容单元。在一些情况中,服务器可以延迟一段时间,如果在该时间里从其他客户机那里接收到关于该内容单元的任何新的请求,那么服务器可以使用该共享缓存器。如果在该时间里没有接收到请求,则可以从存储器中删除该共享缓存器。稍后,如果从一个或多个客户机那里接收到新的请求,那么服务器可以为每一个客户机建立个体缓存器并且再次保持缓存器的累计大小的计数,以便确定是否建立共享缓存器。
来自个体缓存器和/或共享缓存器的传输可以使用无连接内容单元传输协议执行。无连接内容单元传输协议包括无连接文件传输协议,其中包括TFTP。因此,一些实施例可以利用TFTP工作,但是实施例并不局限于利用TFTP工作。
以上是本发明的非限定性概述,本发明由所附权利要求限定。
附图说明
附图并无意图要按比例来绘制。在这些附图中,不同图中示出的每一个相同的或近似相同的组件由一致的数字代表。为了清楚起见,并不是每一个组件都会在每幅图中被标记。在这些附图中:
图1是一些实施例可以工作于其中的一个例示计算机系统的框图;
图2是用于确定是否使用共享缓存器来向请求传输特定内容单元的一个或多个客户机传输该特定内容单元的内容的一个例示处理的流程图;
图3是用于从使用个体缓存器变换到使用共享缓存器来向客户机传输内容单元的内容的一个例示处理的流程图;
图4是用于确定是否停止使用共享缓存器向一个或多个客户机传输内容单元的内容的一个例示处理的流程图;
图5是当内容单元已被修改时,用于确定是否停止使用共享缓存器向一个或多个客户机传输该内容单元的内容的一个例示处理的流程图;
图6是可以供一些实施例工作使用的一个例示计算设备的框图。
具体实施方式
在多种不同的环境中都用到了包括琐碎文件传输协议(TFTP)在内的无连接内容单元传输协议(在这里也被简称为无连接传输协议)。例如,在远程安装操作系统的过程中可以使用TFTP。
在很多情况下,在计算设备上安装操作系统需要用户直接手动操作该计算设备,以便将操作系统从本地可用的盘拷贝到计算设备上。这种从本地盘进行的拷贝可以包括从计算设备组件所读取的光盘(CD)或数字多功能盘(DVD)中拷贝。这种拷贝处理需要用户访问计算设备来执行安装,因此可以将盘(例如CD)插入计算设备。然而在一些情况中,访问计算设备有可能会很困难或麻烦。举例而言,如果用户是对具有众多计算设备的网络负责的网络管理员,那么单独访问每个计算设备以安装操作系统有可能会花费大量的时间。因此,已创建了一些服务来借助网络远程安装操作系统。例如,可以使用Redmond Washington的Microsoft Corporation提供的Windows?部署服务(WDS)来通过计算机通信网络安装操作系统。在WDS安装中,将要安装操作系统的计算设备是在资源有限的状态中工作的,例如在预启动执行环境(PXE)中。当在PXE中工作时,计算设备上能用于执行的软件可能会是有限的,并且在计算设备上有可能无法使用某些资源和设备。特别地,TCP之类的软件实施协议有可能无法使用,以及计算设备的很多处理和存储器资源有可能无法使用。然而,在一些这样的资源受限的状态中,计算设备可以包括能够接收TFTP服务器传递的信息的TFTP客户机。在这种情况下,TFTP服务器可以具有操作系统文件拷贝或是包含操作系统文件的磁盘映像,并且TFTP服务器可以使用TFTP来传送一个或多个文件作为安装操作系统的一部分。
由于TFTP特别适于资源有限的环境,因此,TFTP被适配成使用有限的资源。在使用TFTP来将文件从服务器传输到客户机时,服务器会建立缓存器来保持要传输到客户机的内容。该缓存器可以用于预检索要传送到客户机的内容,这是因为与从缓存器中检索内容相比,从磁盘中检索内容可能是一个相对较慢的过程。因此,在经由网络传送一些内容的时候(这也是一个相对较慢的过程),可以从磁盘中检索将要传送的内容并将其置入缓存器,以便准备好在服务器将要传送该内容的时候进行传送。通过在需要内容前将内容置入缓存器,而不是在需要内容时从磁盘中检索内容,服务器能够在其准备传送内容的时候就快速传送内容,而不用等待如磁盘检索之类的缓慢过程。
缓存器保持文件的一部分,在向客户机传输内容时,从缓存器中移除所传输的内容,而新的文件内容则被添加到缓存器中以待传送。此外,在传送内容时,服务器管理用于确定所传送内容是否丢失的定时器。在将数据报从服务器传送到客户机时,服务器启动定时器。如果定时器在服务器接收到来自客户机的关于正确接收到数据报的确认之前终止,那么服务器认为数据报丢失并向客户机重新传送该数据报。
在存储器中存储缓存器使用服务器的存储器资源。此外,通过从缓存器中删除内容和向缓存器中添加新内容来管理缓存器以及管理定时器使用了服务器的处理资源。在向数量极少的客户机传送内容单元时,服务器可能不会超载。但是,当连接了很多客户机时,服务器有可能会承受重压,并且服务器用以完成操作的时间有可能增加。相应地,将内容单元传输到客户机的时间也会增加。
TFTP不包括用于纠正服务器的这种超载的功能。由于TFTP被设计成一个非常简单的过程来使其使用极少的处理资源,因此,实施TFTP的软件通常不会评估是否有效地使用其他资源或者是否可以更有效地使用资源,从而避免在这种评估上使用或浪费资源。取而代之的是,软件只根据既定的技术来使用资源,以便减少所消耗的资源量,而不会朝着高效使用而努力。结果,TFTP有时会以一种消耗超出原本必需或是高效状况时的方式来使用资源。
然而在一些情形中,服务器有可能向很多客户机传送相同文件。例如在WDS环境中,服务器可以向多个客户机传送相同的操作系统文件。由此,使服务器过载的缓存器有可能包含相同或相似的内容。依照每一个缓存器的大小以及客户机的数量,服务器上的缓存器的累计大小有可能超出向每一个客户机传输的实际操作系统文件的大小。在这种情况下,通过建立用以从中向请求操作系统文件的每一个客户机传送内容的共享缓存器,服务器可以减少向每一个客户机传输内容单元所需要的资源。如果共享缓存器包括整个操作系统文件,那么通过从缓存器中移除和添加内容,服务器将不需要使用任何管理缓存器的资源。
在这里描述了用于操作无连接内容单元传输协议(在这里也被更简单地称为无连接传输协议)来使用共享缓存器向多个客户机传送内容单元的内容的多种不同原理。在一些实施例中,在接到来自客户机的请求时,服务器可以使用每一个客户机的个体缓存器来向多个客户机中的每一个传输一个或多个内容单元的内容。对于所传输的每个内容单元,服务器还可以保持用于传输该内容单元的内容的缓存器的累计大小的计数。如果服务器确定传送特定内容单元的缓存器的累计大小大于内容单元本身,那么服务器可以建立共享缓存器,以便将该内容单元的内容传输到请求该内容单元的客户机。
在一些实施例中,以这种方式使用共享缓存器的服务器可以使用共享缓存器来向客户机传输内容单元的内容,直至所有发出请求的客户机全都接收到该内容单元。在一些情况中,服务器可以延迟一段时间,如果在该时间里从其他客户机那里接收到针对该内容单元的任何新的请求,那么服务器可以使用共享缓存器。如果在该时间里没有接收到请求,则可以从存储器中删除该共享缓存器。稍后,如果从一个或多个客户机那里接收到新的请求,那么服务器可以为每一个客户机建立个体缓存器,并且再次保持缓存器的累计大小的计数,以便确定是否建立共享缓存器。
为了易于描述,以下示例是结合琐碎文件传输协议(TFTP)来描述的。然而,实施例并不局限于使用TFTP工作。其他无连接内容单元传输协议也可以依照这里描述的原理与自适应流量控制技术一起使用。这里描述的内容单元传输协议包括适于将内容单元从服务器传送到客户机的协议。内容单元是存储系统中的原子存储单位,并且内容单元的内容可以使用传输协议来传输。如果存储系统是文件系统,那么内容单元可以是文件,并且内容单元传输协议可以是用于传输文件的文件传输协议。无连接传输协议可以是在传输内容的时候不建立连接的内容单元传输协议。例如,一些无连接传输协议可以通过使用在无连接的情况下工作的用户数据报协议(UDP)来传输内容。一些无连接传输协议还可以在不具有可用于其他那些使用更多资源或例如使用连接的传输协议的功能的情况下工作。例如,一些无连接传输协议可能不使用诸如验证或加密之类的安全特征,这是因为这些安全特征使用的资源有可能超出可用资源。此外,一些无连接传输协议还可以在没有拥塞检测技术的情况下工作。如上所述,TFTP是无连接内容单元传输协议的一个示例。然而,其他协议也是可行的。
此外,在下文中给出的是在使用WDS经由网络安装操作系统的过程中使用TFTP的示例。实施例并不局限于使用交换操作系统信息或文件的无连接传输协议工作或与WDS一起使用。相反,使用依照这里描述的原理的流量控制技术的无连接传输协议可以交换任何适当类型的内容。
图1示出了一个可供这里描述的原理的一些实施例工作的例示环境。图1的例示环境100包括经由任何适当的有线和/或无线通信网络106连接的服务器计算设备102以及两个客户机计算设备104A, 104B。作为WDS处理的一部分,服务器102和客户机104A, 104B可以经由网络106进行通信,以便在客户机104A, 104B上安装操作系统。因此,服务器102和客户机104A, 104B中的每一个都包括在交换与WDS相关的内容以及执行WDS特性的过程中使用的多种不同组件。在这些组件中,存在实施用于在服务器102与客户机104A, 104B之间传递内容单元的、如TFTP之类的无连接传输协议的功能设施。
服务器102包括PXE服务器设施108以及WDS服务器设施110,这些设施可以根据WDS协议进行操作,以便分发操作系统组件。操作系统组件以及待安装的操作系统的映像可以作为可被服务器102访问的文件112来加以存储,其中操作系统组件例如是WDS处理的已知组件的网络引导程序(NBP)。文件112可以存储在作为服务器102的一部分或是可被服务器102以其他任何方式访问的存储器中,包括将其存储在经由网络106可用的另一个计算设备上。每一个客户机104A, 104B都包括可以与PXE服务器设备108以及WDS服务器设备110交互的PXE客户机设备118以便使用WDS来启动安装过程。
当服务器102与客户机104A, 104B使用WDS进行通信来交换文件时,在服务器102与客户机104A, 104B之间可以使用如TFTP之类的无连接传输协议来交换文件。依照这里描述的技术,服务器102可以在最初建立用于向每一个客户机104A, 104B传输内容的缓存器和定时器114。包括客户机104A, 104B在内的客户机有可能从服务器102那里请求相同或不同的文件,由此,缓存器114可包含相同文件或不同文件的内容。在图1的WDS示例中,客户机104A, 104B均请求的是NBP或操作系统映像被传送至客户机104A, 104B。如上所述,针对每一个客户机104A, 104B,从相应的缓存器114传输内容并保持一个定时器,以便确定所传送的数据报是否丢失。
在从个体缓存器114向客户机104A, 104B进行传输的过程中,服务器102中执行传输的设施(诸如PXE服务器设施108或WDS服务器设施110)可以监视缓存器114,并且为每一个被请求了内容的文件保持累计大小。这种情况有可能在将NBP或操作系统映像传送到客户机104A, 104B的时候发生。例如,NBP可以是一个150兆字节的文件。如果每一个个体缓存器都是2兆字节,并且正在向76个客户机传送文件,那么服务器有可能保持76个个体缓存器,其具有152兆字节的累计大小。当然,应该理解,这些数字只是说明性的,并且这些实施例可以使用任何适当大小(包括固定或变化的,或是在客户机之间不同的)的缓存器以及任何适当大小的文件或其他内容单元来操作。
对于所传送的每一个特定文件,当缓存器114的累计大小超出特定文件的大小时,可以为该特定文件建立共享缓存器116。一旦建立了共享缓存器116,则可以从共享缓存器116向每一个客户机104A, 104B传送内容。还可以使用共享定时器对象来将内容从共享缓存器传送到每一个客户机。该共享定时器对象可以为来自共享缓存器的内容将被送抵的每一个客户机保持定时器,由此可以在没有执行不同处理或是使用不同对象的情况下为每一个客户机作出关于内容是否丢失的确定。这可以减少用于在服务器102上监视定时器以及确定数据报是否丢失的资源。
在一些实施例中,在服务器102开始使用共享缓存器116来向客户机104A, 104B传送内容之后,服务器102可以监视用于传输共享缓存器116中缓存的文件内容的会话,以便确定是否停止使用共享缓存器116。在满足一个或多个条件时,服务器102可以停止使用共享缓存器102。例如,当共享缓存器116并未高效使用资源或者不如替换方案高效时,服务器102可以停止使用共享缓存器116。这种情况有可能在文件被送抵的客户机数量低于某个阈值的时候发生,由此,用于每一个客户机的个体缓存器的累计大小将小于所传输的文件的大小。另举一例,当文件正被传输至小于或等于客户机的阈值数量时,服务器102可以停止使用共享缓存器116。若阈值数量为零,服务器102可以在其不再向客户机传输文件的时候停止使用共享缓存器116。当服务器102停止使用共享缓存器116时,可以从用于每一个客户机的个体缓存器114传输内容,除非且直至服务器102再次确定用于某个文件的缓存器114的累计大小大于该文件的大小。
在一些实施例中,可供服务器102确定是否停止使用共享缓存器116的一个或多个条件包括定时状况。举个例子,如果服务器102确定满足其他条件,例如不再有客户机请求或接收文件内容,那么服务器102可以等待某个时段。在等待时段中,服务器102可以确定是否有任何条件发生变化,以使服务器102应该继续使用共享缓存器116。在一些实施例中,服务器102可以监视在该时间里是否接收到新的传输该文件的请求。如果条件在等待时段中发生变化(例如如果接收到新的请求),那么服务器102可以继续使用共享缓存器116。另举一例,服务器102可以基于服务器102保持的缓存器的总体大小来确定是否停止使用共享缓存器116。如果服务器102正在使用大量存储器来保持一个或多个缓存器(包括共享缓存器),那么服务器102可以比其原本可能的方式更快地停止使用一个或多个缓存器,由此可以使服务器102上的存储器资源变得可用。在一些至少部分基于缓存器的总体大小来确定是否停止使用共享缓存器116的实施例中,服务器102可以将分配给一个或多个缓存器的存储器的量与一个阈值相比较,如果存储器的量超出阈值,则停止使用共享缓存器116。在一些这样的实施例中,服务器102可以在没有更多客户机请求或接收共享缓存器中缓存的文件内容的时候确定存储器的量,而在其他实施例中,所述决定可以在任何适当的时间做出。
以上结合图1总体描述了可以实施这里描述的一些原理的方式的示例以及可以使用这些原理的环境。在下文中还提供了可以实施这些原理的更详细的方式的其他示例。然而,实施例并不局限于实施以下描述的任何技术,并且这些实施例既可以不实施这些技术,也可以实施这其中的一些或所有技术。此外,如上所述,以下示例将依照使用TFTP传输文件来进行论述,并且一些示例是在WDS的上下文中描述的。然而,实施例并不局限于交换文件、使用TFTP或是与WDS一起使用。
此外,为了便于在以下示例中进行描述,多种不同的动作被描述成了由服务器执行。应该了解的是,以下动作可以由服务器根据任何适当的功能设施的指令来执行,所述适当的功能设施包括:包含用于依照如TFTP之类的无连接传输协议执行传输的功能和/或用于执行WDS操作的功能的功能设施。
图2示出了可以在一些实施例中用以确定使用个体缓存器还是共享缓存器来向多个客户机传输文件内容的一个例示处理。在可以使用图2的处理200的环境中,多个客户机可以连接至服务器,以便请求使用TFTP传输文件。这些客户机可以请求相同的文件或不同的文件。在一些情况中,至少一部分客户机可以请求相同的文件。对于服务器传输的每一个文件,服务器可以执行处理200来确定为该文件使用个体缓存器还是共享缓存器。
处理200始于方框202,其中服务器从一个或多个客户机那里接收向这些客户机传输特定文件的请求。在方框204中,服务器开始针对每一个客户机使用个体缓存器及个体定时器来向客户机传输文件内容。在将内容从缓存器传输到客户机的时候,服务器会从缓存器中移除成功传输的内容,并且在缓存器中添加新的内容,以使缓存器包含将要传送给客户机的内容。此外,服务器监视与客户机相关联的定时器,以便确定服务器在该定时器终止之前是否没有接收到关于向客户机传送的任何数据报的正确接收的确认。此外,在方框206中,当文件被全都传送到客户机或者出于任何原因传输被终止时,服务器可以删除个体缓存器和定时器。
在一些情形中,为每一个客户机使用个体缓存器和个体定时器可能不是一种高效或预期的资源使用方式。当使用共享缓存器将会效率高或合乎预期时,服务器被适配成确定是否使用共享缓存器代替个体缓存器。为了完成此处理,在一些实施例中,服务器可以保持用以向每一个客户机传输文件的个体缓存器的累计大小的计数。该累计大小是个体缓存器的大小的总和,所述个体缓存器是用于缓存文件的总的存储器。该计数可以为每一个传输至客户机的文件保持。在图2的方框206中,服务器为特定文件确定在方框204中用以传输该特定文件的缓存器的累计大小是否大于所要传输的文件。如果缓存器的累计大小大于文件本身,那么更为高效或合乎预期的可能是将文件缓存到共享缓存器中,而不是使用个体缓存器。
如果服务器在方框206中确定累计大小不大于总的文件大小,那么服务器继续返回到方框202来接收请求以及在方框204中从个体缓存器传输内容。
然而,如果服务器在方框206中确定累计大小大于总的文件大小,那么服务器继续执行方框208,以便从共享缓存器向客户机传输内容。在方框208中,对于仍旧接收文件内容的多个客户机和/或针对该文件接收的新请求来说,内容可以是从共享缓存器传输的,而不是像在方框204中那样从用于每一个客户机的个体缓存器传输。在一些实施例中,对每一个仍旧接收文件内容的客户机以及请求文件内容的每一个新的客户机都可以使用单个的共享缓存器。然而在其他实施例中,可以使用其他共享缓存器。例如,对每一个仍旧接收文件内容的客户机可以使用单个的共享缓存器,而对新的客户机则可以使用个体缓存器,或者,对新的客户机可以使用单个的共享缓存器,而对仍旧接收文件内容的客户机可以使用个体缓存器,亦或是,可以使用多个共享缓存器。实施例并不局限于使用任何特定类型或数量的共享缓存器。
为了在方框208中向客户机传输内容,服务器可以为每一个客户机保持用于识别已被传送内容的会话信息以及可以用于识别所传送的数据报是否丢失的定时器。在传送数据报时,该数据报的文件内容将被从共享缓存器中检索并传送至客户机,并且定时器被启动。当接收到针对该数据报的确认时,服务器可以更新该客户机的会话信息以便识别成功地传送了内容,以及可以从共享缓存器中检索尚未传送的内容并且在另一个数据报中传送该内容。在一些实施例中,该处理可以持续进行,直至客户机接收到文件的所有内容。
一旦服务器在方框208中开始传送来自共享缓存器的内容,则处理200结束。
当服务器确定应该使用共享缓存器时,服务器可以采用任何适当的方式来建立共享缓存器。在一些实施例中,服务器可以创建新的缓存器,并且可以立即使用该共享缓存器被创建用于的文件的所有内容来填充该缓存器。然而,在其他实施例中可以执行从个体缓存器到共享缓存器的变换。在这个变换过程中,共享缓存器可以是在使用个体缓存器向客户机传送内容的时候用所述文件的内容填充的。在该变换过程中,在传送内容的时候可以从个体缓存器中移除内容,直至在服务器上只为该文件保持共享缓存器。
图3示出了可以在一些实施例中用于针对某个文件将服务器从个体缓存器变换到共享缓存器的处理的一个示例。该处理300可以由服务器针对每一个将向其传送所述文件的内容的以及服务器已经使用个体缓存器向其传送内容的客户机执行。
图3的处理300始于方框302,其中服务器确定使用共享缓存器来传送文件内容。在方框302之后,通过在变换时段中使用已有的个体缓存器以及新的共享缓存器来向客户机传送内容,服务器可以变换成使用共享缓存器来传送内容。
在方框304中启动一个用于文件中尚未传送且将要传送到客户机的下一个内容的循环。在方框304中,服务器确定下一个内容是否处于客户机的个体缓存器中。如果是的话,那么在方框306中从个体缓存器中检索下一个内容,并且将其传送到客户机。此外,在方框306中,如果所述下一个内容尚未处于共享缓存器中,那么该下一个内容将被添加到共享缓存器中。在一些情况中,下一个内容可能已由服务器响应于向另一个客户机传送下一个内容而添加到共享缓存器,因此该内容应该仅是在先前并未添加下一个内容的时候被添加到共享缓存器中。在方框308中,一旦将内容成功地传送到客户机,则从个体缓存器中移除所述下一个内容。在一些情况中可以在接收到来自客户机的确认时从个体缓存器中移除所述下一个内容,由此在没有接收到确认时可以从个体缓存器再次传送所述下一个内容,而在其他情况中,所述下一个内容是在传输时被移除的。在这些其他的情况中,如果有必要重新传送内容,则可以从共享缓存器重新传送下一个内容。
在方框310中,在从个体缓存器中移除了下一个内容之后,服务器确定是否有用于客户机的内容遗留在个体缓存器中。如果没有内容遗留在个体缓存器中,那么在方框312中删除和释放个体缓存器以及与之关联的任何存储器,由此从系统中移除个体缓存器。在方框312中删除缓存器确保了在将资源分配给共享缓存器的时候,其他资源不再不必要地被个体缓存器使用。
在删除了个体缓存器之后,或者如果在方框310中确定有更多内容遗留在个体缓存器中,那么在方框314中,服务器确定是否将向客户机传送任何更多内容。如果是的话,则服务器返回处理300的方框304,并且继续所述循环来选择将要传送的下一个内容,以及确定如何传送该内容。
如上所述,在方框304中作出关于下一个内容是否处于客户机的个体缓存器中的确定。以上描述了服务器在下一个内容处于个体缓存器时可采取的动作。在方框304中,如果确定下一个内容不处于个体缓存器中,那么可以采取其他的操作。
特别地,当服务器在方框304中确定所述下一个内容不处于个体缓存器中时,服务器在方框316中确定下一个内容是否处于共享缓存器中。如上所述,在将内容传送到另一个客户机时,服务器可能已将所述下一个内容添加到了共享缓存器中。如果下一个内容不在共享缓存器中,那么在方框318中从文件的初始源检索(例如从磁盘检索)所述下一个内容,并且将其放置在共享缓存器中。在方框320中,如果下一个内容处于共享缓存器中或者在将下一个内容置于共享缓存器中之后,将所述下一个内容从共享缓存器传送到客户机。
一旦在方框320中向客户机传送了下一个内容,那么服务器则在方框314中确定是否有更多内容要被传送到客户机。如上所述,如果有更多内容要传送,那么服务器通过返回方框304来继续所述循环,以便选择下一个内容以及确定如何传送下一个内容。
然而,如果没有更多内容要被传送到客户机,则处理300结束。
如上所述,当服务器决定使用共享缓存器时,可以使用处理300来将内容传送到已经由服务器向其传送内容的客户机。对于在决定使用共享缓存器之后请求文件的新的客户机,可以使用仅仅从共享缓存器传送内容的不同处理。此外,虽然在服务器结束向客户机传送文件内容之前可以一直使用处理300,但在一些实施例中,可以使用与处理300类似的处理,其在删除个体缓存器的时候停止。在删除了个体缓存器之后,服务器可以简单地传送来自共享缓存器的内容,而不用先执行对所述内容是否处于个体缓存器中的检查。
以上论述的是可以在一些实施例中用于确定是否开始使用共享缓存器来向多个客户机传送文件内容的说明性技术。在一些实施例中,服务器可以实施用以确定何时停止使用共享缓存器而改为使用个体缓存器的技术。例如,这种情况可以在使用个体缓存器与使用共享缓存器相比更合乎预期或效率更高的时候发生。举例来说,在一些实施例中,当预期的个体缓存器的累计大小将小于所传送的文件的大小时和/或当文件内容送抵的客户机的数量小于某个阈值时,服务器可以停止使用共享缓存器。
图4示出了可以在一些实施例中用于确定是否停止使用共享缓存器的处理的一个示例。在图4的示例中,服务器被配置成在确定所有请求了传送文件的客户机全都接收到该文件的时候停止使用共享缓存器。然而,实施例并不局限于基于客户机的数量来确定是否停止使用共享缓存器。相反,任何适当的条件都是可以使用的。
处理400始于将文件内容从共享缓存器传送到一个或多个客户机的方框402。在方框404中,服务器监视所述文件内容被送抵的客户机的数量。当新的客户机请求传送该文件内容时,服务器可以递增客户机的数量,当服务器完成向客户机传送文件或者出于任何原因传输结束的时候,服务器可以递减客户机的数量。
在方框406中,服务器基于在监视过程中确定的客户机数量来确定是否遗留有任何要向其传输文件内容的客户机(请求了传输文件的客户机)。如果有更多客户机遗留,那么服务器返回方框402,以便使用共享缓存器来向客户机传送内容,以及在方框404中监视客户机的数量。
然而,如果服务器在方框406中确定没有客户机遗留,那么在方框408中,服务器可以进入等待时段。可以使用任何适当的等待时段,实施例在此方面是不受限制的。在等待时段中,服务器可以监视来自客户机的针对该文件的新的请求。如果服务器在方框410中确定有新的客户机请求了服务器传输该文件,那么服务器继续方框402,以便使用共享缓存器来向新的客户机传送文件内容。服务器可以继续采用这种方式来使用共享缓存器,这是因为删除共享缓存器以及重新启动使用个体缓存器有可能会用到大量的资源,这在客户机仍旧请求传输该文件的时候是可以避免的。此外,在一些实施例中(如那些使用WDS进行操作的实施例),所有客户机都可以请求相同文件的拷贝(例如网络引导程序(NBP)或操作系统映像),因此,服务器可以继续使用共享缓存器,直至所有客户机全都接收到该文件,而不是在个体缓存器与共享缓存器之间来回翻转。
然而,如果服务器在方框410中确定在等待时段中没有新的客户机请求文件,那么在方框412中,服务器可以删除共享缓存器并且释放与共享缓存器相关联的任何资源(例如存储器)。然后,处理400结束。在处理400之后,当新的客户机请求传输先前缓存在共享缓存器中的文件时,可以使用个体缓存器来传输文件内容。在一些情况中,如果服务器再次确定(使用图2的处理200或别的处理)应该使用共享缓存器,那么服务器可以再次使用共享缓存器来传送数据。
以上描述的是用于向一个或多个客户机传送存储在服务器上的或者可以由服务器访问的文件内容(例如文件)的多种不同技术。在很多情况中,当使用这些处理时,文件在传输过程中是不可以被修改的。然而在一些情况中,在将文件传输到一个或多个客户机的过程中,所述文件是可以被修改的。在一些实施例中,当文件被修改时,服务器可以停止传送文件并且使用经过修改的新文件来重新开始传送。在其他实施例中,当服务器确定文件已被修改时,服务器可以继续向那些该服务器正在向其传送文件的所有客户机传送未经修改的初始文件,但是在修改之后可以向请求该文件的客户机传送经过修改的文件。当使用个体缓存器来传送文件内容时,服务器可以关于如何将内容传输到每一个单独的客户机或新客户机作出任何适当地决定。然而,如果在修改时正在使用共享缓存器,那么共享缓存器存储未经修改的初始文件。在一些实施例中,服务器可以在修改时继续针对有效会话使用共享缓存器,但是可以针对新连接使用具有经过修改的文件的个体缓存器。在其他实施例中,服务器可以使用与图4类似的处理来确定何时停止使用共享缓存器。特别地,在这些实施例中,一旦确定没有更多要向其传送共享缓存器中的文件内容的客户机遗留,则服务器可以停止使用共享缓存器。
图5示出了这样一个处理,其在一些实施例中可以用于当共享缓存器的文件已经被修改时、确定何时停止使用共享缓存器。处理500始于通过使用共享缓存器来将内容传输到一个或多个客户机的方框502。在方框504中,服务器接收关于共享缓存器的文件已被修改的通知。该通知可以是从任何适当的组件接收的,包括从服务器的操作系统或是从存储该文件的数据存储器的存储管理器。在一些实施例中,服务器设施可以已经注册来接收这种通知,而在其他实施例中,服务器设施可以接收针对每一个经过修改的文件的通知。
在方框506中,服务器监视文件内容被送抵的客户机的数量。当新的客户机请求传送该文件内容时,服务器可以递增客户机的数量,当服务器完成向客户机传送文件或者出于任何原因传输结束的时候,服务器可以递减客户机的数量。在方框508中,服务器基于在监视过程中确定的客户机数量来确定是否遗留有任何要向其传输文件内容的客户机(请求了传输文件的客户机)。如果有更多客户机遗留,那么服务器返回方框502,以便使用共享缓存器来向客户机传送内容,以及在方框506中监视客户机的数量。
然而,如果服务器在方框508中确定没有客户机遗留,那么在方框510,服务器可以删除共享缓存器。这一点不同于图4的处理400,在该处理中,服务器会在确定没有客户机遗留之后进入等待时段。但对图5而言,缓存在共享缓存器中的文件已被修改。为了确保客户机接收到正确的内容,服务器被配置成立即删除共享缓存器,而不是在一个等待时段之后。一旦在方框510中删除了共享缓存器,则处理500结束。
虽然图4和5是单独说明和论述的,但在一些实施例中,这些处理是可以一起使用的,或者可以使用同时包含了这两个处理中的某些部分的处理。例如在图4中,代替在方框406中检测到没有更多要向其传输内容的客户机遗留时在方框408中进入等待时段,服务器可以确定是否接收到文件已被修改的通知,如果是的话,则删除共享缓存器。如果没有接收到通知,那么图4的处理可以通过在方框408中进入等待时段而以如上方式继续进行。
依照这里描述的原理工作的技术可以采用任何适当的方式来实施。以上论述中包含的一系列流程图显示了允许利用如TFTP之类的无连接内容单元传输协议来使用共享缓存器的多种不同处理的步骤和动作。上述流程图的处理和判定框代表的是可以包含在执行这些不同处理的算法中的步骤和动作。从这些处理中得出的算法可以作为与一个或多个多用处理器集成且指导其操作的软件来实施,也可以作为数字信号处理(DSP)电路或专用集成电路(ASIC)之类的功能等效电路来实施,或者可以采用其他任何适当的方式来实施。应该了解的是,这里包含的流程图并未描述任何特定的编程语言或编程语言类型的、或是任何特定电路的体系或操作。相反,这些流程图示出的是功能信息,本领域普通技术人员可以使用这些功能信息来制造电路或是实施计算机软件算法,以便执行对用于实现这里描述的技术类型的特定设备的处理。还应该了解,除非在这里另有指示,否则每一个流程图中描述的步骤和动作的特定顺序都只是对可实施的算法的说明,并且这些顺序在这里描述的原理的实施方式和实施例中是可以改变的。
相应地,在一些实施例中,这里描述的技术可以在作为软件(包括作为应用软件、系统软件、固件、中间件或其他任何适当类型的软件)实施的计算机可执行指令中实现。这些计算机可执行指令可以使用多种适当的编程语言和/或编程或脚本工具中的任何一种来编写,并且还可被编译成是在主机或虚拟机上执行的可执行机器语言代码或中间代码。
在将这里描述的技术作为计算机可执行指令来加以实现的时候,可以采用任何适当的方式来实施这些计算机可执行指令,这其中包括将其作为多个功能设施来加以实施,并且其中每一个功能设施都提供要完成依照这些技术工作的算法执行所需要的一个或多个操作。然而,所例示的“功能设施”是计算机系统的结构组件,在与一个或多个计算机集成并由这些计算机执行时,所述组件将会导致一个或多个计算机执行特定的操作任务。功能设施可以是软件部件的一部分或是整个软件部件。例如,功能设施既可以依照处理来实施,也可以作为不连续的处理来实施,或可以作为其他任何适当的处理单元来实施。如果这里描述的技术是作为多个功能设施来实施的,那么每一个功能设施都可以用自己的方式实施;所有这些设施都不必按照相同的方式实施。此外,这些功能设施可以在适当情况下以并行或串行的方式执行,并且可以在彼此之间使用其运行时所处的一个或多个计算机上的共享存储器、使用消息传递协议或者采用其他任何适当的方式来传递信息。
通常,功能设施包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。功能设施的功能可以根据需要而在其工作所处的系统中被组合或分布。在一些实施方式中,执行这里的技术的一个或多个功能设施可以形成软件包的一部分,例如包含用于传输内容单元(例如文件)的功能的程序的一部分,或是执行包括内容传输在内的多种功能的程序的一部分,例如客户机或服务器上的Windows部署服务(WDS)程序。在替换实施例中,这些功能设施可以被适配成与其他不相关的功能设施和/或处理进行交互,以便实施软件程序应用。在其他实施方式中,功能设施可以被适配成以一种形成操作系统的方式来与其他功能设施进行交互,所述操作系统包括Redmond Washington的Microsoft?公司提供的Windows?操作系统。换句话说,在一些实施方式中,功能设施可以可替换地作为操作系统的一部分实施,也可以在操作系统以外实施。
在这里描述了一些用于执行一个或多个任务的例示功能设施。但是应该了解,所描述的功能设施和任务划分只是对可以实施这里描述的例示技术的功能设施类型的说明,这些实施例并不局限于在任何特定数量、划分或类型的功能设施中实施。在一些实施方式中,所有功能可以是在单个功能设施中实施的。还应该了解的是,在一些实施方式中,这里描述的一些功能设施可以与其他功能设施一起实施,也可以与其他功能设施分开实施(即作为单个单元或分开的单元),或者还可以不实施这其中的某些功能设施。
在一些实施例中,用于实施这里描述的技术的计算机可执行指令(在作为一个或多个功能设施或是采用其他任何方式实施时)可被编码在一个或多个计算机可读介质上,以便向该介质提供功能。计算机可读介质包括硬盘驱动器之类的磁介质、诸如光盘(CD)或数字多功能盘(DVD)之类的光学介质、永久性或非永久性固态存储器(例如闪存,磁RAM等等)、或者其他任何适当的存储介质。这些计算机可读介质可以采用任何适当的方式实施,其中包括作为如下所述的图6的计算机可读存储介质606(即作为计算设备的一部分)或作为独立的单独存储介质来实施。这里使用的“计算机可读介质”(也被称为“计算机可读存储介质”)指的是有形存储介质。有形存储介质是非暂时性的并且具有至少一个物理结构组件。在这里使用的“计算机可读介质”中,至少一个物理结构组件具有至少一个物理属性,该属性可以在创建具有嵌入信息的介质的处理过程中、在将信息记录于其上的处理过程中或者在编码具有信息的该介质的其他任何处理过程中以某种方式改变。例如,计算机可读介质的物理结构的一部分的磁化状态可以在记录过程中改变。
在一些但非所有那些将这些技术作为计算机可执行指令来加以实现的实施方式中,这些指令可以在一个或多个工作于任何适当的计算机系统中的适当计算设备上执行,其中包括图1的例示计算机系统。包含这些计算机可执行指令的功能设施可以与下列设备集成并指导其操作:单个多用可编程数字计算机设备、共享处理能力并且联合执行这里描述的技术的两个或多个多用计算机设备的协作系统、专用于执行这里描述的技术的单个计算机设备或计算机设备协作系统(处于相同位置或是在地理上分散的多个计算机设备)、用于执行这里描述的技术的一个或多个现场可编程门阵列(FPGA)、或者其他任何适当的系统。
图6示出了采用计算设备600的形式的计算设备的例示实施方式,其中计算设备600可以在用于实施这里描述的技术的系统中使用,但其他实施方式也是可行的。应该了解的是,图6既不是意在描述依照这里描述的原理工作的计算设备的必要组件,也不是综合性描述。
图6示出了一个可以作为根据这里描述的技术的服务器使用的例示计算设备。在本上下文中,服务器并不是指任何特定类型的计算设备,而是指可以作为将被传输到目的地的内容单元的源的设备。
计算设备600可以包括至少一个处理器602、网络适配器604以及计算机可读存储介质606。例如,计算设备600可以例如是台式或膝上型个人计算机、个人数字助理(PDA)、智能移动电话、无线接入点或其他联网部件、可常用作服务器的资源庞大的设备、或者其他任何适当的计算设备。网络适配器604可以是能使计算设备600经由任何适当的计算网络来与其他任何适当的计算设备进行有线和/或无线通信的任何适当的硬件和/或软件。计算网络可以包括无线接入点、交换机、路由器、网关和/或其他联网设备,以及任何用于在两个或更多计算机之间交换数据的适当的有线和/或无线通信介质或媒体,这其中包括因特网。计算机可读介质606可以被适配成存储那些将要由处理器602处理的数据和/或执行的指令。处理器602允许处理数据及执行指令。数据和指令可以存储在计算机可读存储介质606上,并且举例来说,所述数据和指令可以允许在计算设备600的组件之间进行通信。
存储在计算机可读存储介质606上的数据和指令可以包括用于实施依照这里描述的原理工作的技术的计算机可执行指令。在图6的示例中,计算机可读存储介质606存储的是用于实施多种不同设施以及存储上述多种不同信息的计算机可执行指令。计算机可读存储介质606可以存储实施无连接内容单元传输协议的设施608,其可以根据这里描述的至少一些原理来使用共享缓存器,并且其既可以不实施如上所述的所有例示技术,也可以实施如上所述的某些或所有例示技术。用于每一个会话的会话数据(包括与传输到客户机的内容、每一个会话的个体缓存器和/或每一个会话的定时器相关的信息)也可被保持。计算机可读存储介质606还可以存储那些可以用设施608传输到客户机的内容单元612。此外,计算机可读存储介质606可以存储一个或多个共享缓存器614,以便向请求一个或多个文件的客户机传输内容。最后,在一些实施例中,计算机可读存储介质606可以包括实施WDS和/或PXE的服务器功能的WDS/PXE服务器设施616,因为在一些实施例中,这里描述的技术可以用于传输操作系统文件。
虽然在图6中没有示出,但是计算设备还可以另外具有包括输入和输出设备在内的一个或多个组件和外设。这些设备尤其可以用于呈现用户界面。可用于提供用户界面的输出设备的示例包括用于视觉呈现输出的打印机或显示屏以及用于听觉呈现输出的扬声器或其他声音生成设备。可用于用户界面的输入设备的示例包括键盘和指示设备,例如鼠标、触摸板和数字化平板。作为另一个示例,计算设备可以通过语音识别或是采用其他听觉形式来接收输入信息。
已描述了在电路和/或计算机可执行指令中实施所述技术的实施例。应该了解的是,一些实施例可以采用方法的形式,已提供了关于这些方法的至少一个示例。作为方法一部分执行的动作可以采用任何适当的方式排序。相应地,可以构造以与所说明的顺序不同的顺序来执行动作的实施例,其中可以包括同时执行某些动作,即使这些动作在说明性实施例中被显示成是依次动作。
如上所述的实施例的各个方面既可以单独使用,也可以组合使用,还可以按照上述实施例中没有具体论述的多种布置使用,由此,并不局限于将其应用于前述描述中提及或在附图中说明的细节和组件布置。例如,在一个实施例中描述的方面可以采用任何方式与其他实施例中描述的方面组合。
在权利要求中使用了诸如“第一”、“第二”、“第三”等顺序术语来修改权利要求要素,但这些术语本身并不意味着任何优先级、优越性、或是一个权利要求要素超出另一个权利要求要素的顺序或执行方法中动作的时间顺序,而仅仅是用作标签来将具有某个名称的一个权利要求要素与另一个具有相同名称的要素区分开来(而是用于顺序术语),以便区分权利要求要素。
此外,这里使用的措辞和术语用于描述的目的,而不应该被视为限定性的。这里使用的“包括”、“包含”、“具有”、“容纳”、“涉及”及其不同变体意在包罗其后列举的项目及其等价物、以及附加项目。
应该理解,通过以这种方式描述了至少一个实施例的若干方面后,本领域技术人员将容易想到各种不同的替换、修改和改进。这些替换、修改和改进意为本公开的一部分并且处于这里描述的原理的精神和范围以内。相应地,以上描述和附图仅仅作为示例。

Claims (9)

1. 一种用于将内容单元从服务器分发到多个客户机的方法,该方法包括:
在服务器上接收(202)来自所述多个客户机的使用琐碎文件传输协议TFTP来传输所述内容单元的多个请求;
使用所述TFTP来将所述内容单元从多个缓存器中的单独缓存器开始传输(204)到所述多个客户机中的每一个客户机,其中每一个单独的缓存器与一个特定的客户机相关联;
确定(206)所述多个单独的缓存器的累计大小大于阈值,该阈值基于所述内容单元的大小;
响应于确定所述多个单独的缓存器的累计大小大于所述阈值,利用所述内容单元的至少一部分建立共享缓存器,所述内容单元包含在至少一个单独的缓存器中;以及
利用TFTP继续从所述共享缓存器将所述内容单元传输到所述多个客户端中的每个客户端。
2.根据权利要求1所述的方法,还包括:在确定用于所述多个客户机的多个缓存器的累计大小超出所述内容单元的大小之后:
接收来自与所述多个客户机不同的新的客户机的新的请求;以及
将所述内容单元的内容从所述共享缓存器传输(208)到所述新的客户机。
3.根据权利要求1所述的方法,还包括:在确定用于所述多个客户机的多个缓存器的累计大小超出所述内容单元的大小之后:
一旦确定(406)已经向请求了传输该内容单元的所有客户机传输了该内容单元,则:
延迟(408)一个等待时段,以及
如果在等待时段中没有接收到要向新的客户机传输所述内容单元的新的请求,则删除(412)所述共享缓存器。
4.根据权利要求3所述的方法,还包括:如果在等待时段中接收到新的请求,则避免(410)删除所述共享缓存器以及将所述内容单元的内容从所述共享缓存器传输到新的客户机。
5.根据权利要求1所述的方法,还包括:在确定用于所述多个客户机的多个缓存器的累计大小超出所述内容单元的大小之后:
确定(504)是否已经修改了该内容单元;以及
一旦确定(508)内容单元已被传输到请求了传输该内容单元的所有客户机,则:
当内容单元尚未被修改时,
延迟(408)一个等待时段,以及
如果在该等待时段中没有接收到要将所述内容单元传输到新的客户机的新的请求,则删除(412)所述共享缓存器,以及
当内容单元已被修改时,在不延迟该等待时段的情况下删除(510)所述共享缓存器。
6.根据权利要求1所述的方法,其中将所述内容单元的内容从单独的缓存器传输到每一个客户机包括:在将该内容单元的第一数据块从第一缓存器传输到第一客户机时,从所述第一缓存器中移除该第一数据块,以及在所述第一缓存器中插入尚未传送到所述第一客户机的第二数据块。
7.一种用于将内容单元分发到多个客户机的设备,包括:
用于接收(202)来自多个客户机的、使用琐碎文件传输协议TFTP来传输内容单元的多个请求的模块;
用于使用TFTP来将所述内容单元从多个缓存器中的单独缓存器开始传输(204)到所述多个客户机中的每一个客户机的模块,其中每一个缓存器与一个特定的客户机相关联;
用于确定(206)所述多个单独的缓存器的累计大小大于阈值的模块,其中所述阈值基于所述内容单元的大小;
用于响应于确定所述多个单独的缓存器的累计大小大于所述阈值、利用所述内容单元的至少一部分建立共享缓存器的模块,所述内容单元包含在至少一个单独的缓存器中;以及
用于利用TFTP继续从所述共享缓存器将所述内容单元传输到所述多个客户端中的每个客户端的模块。
8.根据权利要求7所述的设备,其中所述设备还被配置用于在确定(206)用于所述多个客户机的多个缓存器的累计大小超出所述内容单元的大小之后:
一旦确定(406)已经向请求了传输该内容单元的所有客户机传输了该内容单元,则:
延迟(408)一个等待时段,以及
如果在等待时段中没有接收到要向新的客户机传输该内容单元的新的请求,则删除(412)所述共享缓存器。
9.根据权利要求7所述的设备,其中所述设备还被配置用于,在确定用于所述多个客户机的多个缓存器的累计大小超出所述内容单元的大小之后:
确定(504)是否已经修改了所述内容单元;以及
一旦确定(508)内容单元已被传输到请求了传输该内容单元的所有客户机,则:
当所述内容单元尚未被修改时,
延迟(408)一个等待时段,以及
如果在该等待时段中没有接收到要将所述内容单元传输到新的客户机的新的请求,则删除(412)所述共享缓存器,以及
当所述内容单元已被修改时,在不延迟该等待时段的情况下删除(510)所述共享缓存器。
CN201110394986.1A 2010-12-02 2011-12-02 用于无连接传输协议的共享缓存器 Active CN102739761B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/959245 2010-12-02
US12/959,245 US8521902B2 (en) 2010-12-02 2010-12-02 Shared buffer for connectionless transfer protocols

Publications (2)

Publication Number Publication Date
CN102739761A CN102739761A (zh) 2012-10-17
CN102739761B true CN102739761B (zh) 2015-04-29

Family

ID=46163313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110394986.1A Active CN102739761B (zh) 2010-12-02 2011-12-02 用于无连接传输协议的共享缓存器

Country Status (2)

Country Link
US (1) US8521902B2 (zh)
CN (1) CN102739761B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9049175B2 (en) 2010-12-02 2015-06-02 Microsoft Technology Licensing, Llc Client-adjustable window size for connectionless transfer protocols
US9015481B2 (en) * 2011-02-22 2015-04-21 Honeywell International Inc. Methods and systems for access security for dataloading
US9176744B2 (en) * 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US9032012B2 (en) * 2011-06-27 2015-05-12 International Business Machines Corporation Configurable pacing for messaging systems
EP3229144A4 (en) * 2014-12-04 2017-11-15 Fujitsu Limited Distribution method, device, and program
US12118236B2 (en) * 2021-08-30 2024-10-15 International Business Machines Corporation Dynamically allocating memory controller resources for extended prefetching

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670698A (zh) * 2005-04-06 2005-09-21 清华大学 基于透明计算的计算设备和方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736369A (en) 1986-06-13 1988-04-05 International Business Machines Corp. Adaptive session-level pacing
US5163046A (en) 1989-11-30 1992-11-10 At&T Bell Laboratories Dynamic window sizing in a data network
US6185678B1 (en) 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US7246171B1 (en) 2000-12-15 2007-07-17 Nortel Networks Limited System and method for managing data transmissions from a TFTP server by specifying a maximum bandwidth
US6901593B2 (en) 2001-05-08 2005-05-31 Nortel Networks Limited Active queue management with flow proportional buffering
US6983334B2 (en) * 2001-11-07 2006-01-03 International Business Machines Corporation Method and system of tracking missing packets in a multicast TFTP environment
US7133362B2 (en) 2001-11-14 2006-11-07 Microsoft Corporation Intelligent buffering process for network conference video
US7570584B1 (en) 2002-03-29 2009-08-04 Cisco Technology, Inc. Network-wide congestion control of SPVC signaling messages
US7043559B2 (en) * 2002-06-27 2006-05-09 Seiko Epson Corporation System for distributing objects to multiple clients
US7245586B2 (en) 2002-08-30 2007-07-17 Lucent Technologies Inc. Buffer management based on buffer sharing across ports and per-port minimum buffer guarantee
US7542471B2 (en) 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US7814126B2 (en) 2003-06-25 2010-10-12 Microsoft Corporation Using task sequences to manage devices
KR100542368B1 (ko) 2004-02-10 2006-01-10 삼성전자주식회사 브로드캐스팅 기능이 구비된 간단한 파일전송시스템 및 그방법
ATE541392T1 (de) 2005-03-05 2012-01-15 Intel Corp Serverseitige tftp-flusssteuerung
US7631175B2 (en) * 2006-02-21 2009-12-08 Microsoft Corporation Control protocol for image enumeration and transfer
US8683065B2 (en) * 2007-06-29 2014-03-25 Microsoft Corporation Multicast content provider
US8532117B2 (en) * 2008-02-13 2013-09-10 Broadcom Corporation Flexible buffer allocation entities for traffic aggregate containment
TWI391911B (zh) * 2008-04-15 2013-04-01 Novatek Microelectronics Corp 記憶體存取裝置及使用該記憶體存取裝置的顯示器
US20100217889A1 (en) 2009-02-26 2010-08-26 Honeywell International Inc. Accelerated block option for trivial file transfer protocol (tftp)
US9049175B2 (en) 2010-12-02 2015-06-02 Microsoft Technology Licensing, Llc Client-adjustable window size for connectionless transfer protocols

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670698A (zh) * 2005-04-06 2005-09-21 清华大学 基于透明计算的计算设备和方法

Also Published As

Publication number Publication date
US8521902B2 (en) 2013-08-27
CN102739761A (zh) 2012-10-17
US20120144060A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
CN102739761B (zh) 用于无连接传输协议的共享缓存器
US10491560B2 (en) Message delivery in messaging networks
TWI557572B (zh) 用於在主機與行動裝置間之任務的雙向動態卸載之方法、系統及電腦可讀儲存裝置(一)
TWI559153B (zh) 分散式計算架構
US8589538B2 (en) Storage workload balancing
US11201836B2 (en) Method and device for managing stateful application on server
WO2014085817A1 (en) Efficient data transmission between computing devices
US20080270524A1 (en) Distributing files over a computer network
US8738775B1 (en) Managing resource dependent workflows
CN111124299A (zh) 数据存储管理方法、装置、设备、系统及存储介质
CN102411511B (zh) 用于服务升级的数据迁移
US9716681B2 (en) Using analytics to optimize performance of a messaging system via topic migration to alternate delivery methods
US8156374B1 (en) Problem management for outsized queues
CN111510493A (zh) 分布式数据传输方法及装置
US20200326998A1 (en) Two-way clipboard exchange in virtual console
US8966019B2 (en) Application server for mainframe computer systems
JP5445177B2 (ja) 確定クロック判定プログラム及び方法、並びにノード装置
JP2007280236A (ja) バックアップ方法およびバックアッププログラム
JP6147299B2 (ja) リレーサーバシステム及びリレーサーバを用いた通信方法
US11269554B2 (en) Meeting backup window requirements while managing storage array backup load
US20140108658A1 (en) Computer-readable recording medium storing a resource management program, resource management method and information processing device
CN117492975A (zh) 分布式任务数据处理方法、装置及电子设备
JP2005070896A (ja) ネットワークシステム、分散処理方法およびプログラム
JP2007199946A (ja) データ管理システム、データ管理装置、情報処理装置、それら装置のデータ管理方法、プログラム、及び記憶媒体
JP2017090966A (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: 20150611

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

Effective date of registration: 20150611

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.