网络节点枚举的制作方法

文档序号:7625136阅读:110来源:国知局
专利名称:网络节点枚举的制作方法
技术领域
此处描述的系统和方法一般涉及网络节点枚举。


图1是可在其中实现根据此处描述的系统和方法的网络节点枚举的计算机网络100的广义表示。
图2示出包括可以在由诸如图1所示网络的网络中的枚举器执行的枚举过程中执行的各种操作的操作性流程。
图3是示出应答器模块可在网络枚举过程中转移的示例性状态的简化的状态转移图。
图4示出了在诸如图1所示网络的网络中的应答器模块中的固定循环长度调度方法的操作性流程。
图5示出了在诸如图1所示网络的网络中的应答器模块中的可变循环长度调度方法的操作性流程。
图6示出了计算机系统形式的示例性网络节点。
具体实施例方式
此处描述的是用于网络节点枚举的系统和方法的多种实施方式。根据此处描述的系统和方法中的某些,节点网络中被选择的节点向网络中的其它节点发送枚举请求。响应对枚举请求的接收,可访问的(即,“在线的”)并接收该请求的节点发送枚举响应,从而将自身标识为对发送该枚举请求的节点来说是可访问的。发送枚举请求的节点然后发送对接收到的枚举响应的确认。在一个实施方式中,发送枚举请求的节点在一个或多个将来的枚举请求中发送确认。
为了减少可能由大量的可访问节点同时发送枚举响应以回复枚举请求而引起的过度网络拥塞,可访问节点在不同的时间发送枚举响应。为了降低恶意节点可能鼓动大量可访问节点对枚举响应的同时发送的可能性,每一可访问节点独立地确定它发送其枚举响应的时间。
在某些实施方式中,每一节点基于对网络活动性的观察结果和/或在该节点上作出的对将来的网络活动性的预测,来独立地确定发送枚举响应的一个或多个时间。另外,在某些实施方式中,每一可访问节点采用“基于循环的”的调度方法,其中安排每一枚举响应在多个计时循环中的一个循环中发送。
现在转到图1,在此处显示了计算机网络100的广义表示。网络100示出了网络节点枚举可在其中发生的一个可能的环境。计算机网络100包括通过网络云112互连的一些(N个)节点110。网络云112一般指示数据(例如,枚举请求和枚举响应)在节点110之间转播时,可采用通过各种网络路径、设备和/或通信介质的各种路由。在节点110和网络云112之间的诸如线108的锯齿线,指示了节点110在网络100中是可访问的(即,“在线的”)。例如,节点(1)、(2)、(3)、(5)和(N)中的每个被示出在网络100中可访问,而节点(4)被示出为在网络100中不可访问(“离线”)。
正如此处所使用的,术语“节点”指的是,在网络(例如,网络100)中唯一可定址的、或唯一可识别的,且可操作来与网络中的其它节点通信的任何计算机系统、设备或进程。例如,且非限制,节点可以是个人计算机、服务器计算机、手持或膝上设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、消费者电子设备、网络PC、小型机、大型机以及包括任何上述系统或设备的分布式计算环境等。网络节点100的计算机系统600形式的一个示例在下文关于图6描述。
在节点包括某种形式的计算机系统或设备的情况下,节点一般包括处理器、一种或多种形式的计算机可读介质,和允许该节点操作上连接至网络100的一种或多种通信连接。正如此处所使用的,计算机可读介质可以是能够存储或收录以能够被计算机访问并理解的形式编码的信息的任何介质。计算机可读介质的一般形式包括,但非限制,易失性和非易失性的存储器、包括可移动和/或不可移动介质的数据存储设备,以及通信介质。
通信介质以诸如载波或其它传输机制等已调制数据信号来表达计算机可读信息,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以对信号中信息编码的方式被设定或改变。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线缆连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。
如图所示,节点(1)114包括枚举模块116,而节点(2)-(N)每一个包含一个应答器模块118。一般,枚举模块116向节点(1)114提供各种功能来执行网络节点枚举。例如,枚举模块116可以向节点(1)114提供构造枚举请求、确定枚举请求发送的时间、发送枚举请求、发送枚举响应确认、处理包含在接收到的枚举响应中的信息、确定网络中可访问节点的数量和/或网络中可访问节点的身份的功能。一般,每一应答器模块118向包含该应答器模块或与之相关联的节点110提供处理接收到的枚举请求的能力,以基于某些准则和/或逻辑确定发送枚举响应的时间。正如此处所用,术语“发送”一般指的是通过网络100传输诸如枚举请求和枚举响应的信息(例如,广播、组播、单播等)。
应该理解,此处关于某一模块描述的功能可以由模块自身、模块同含有或关联该模块的节点合作、或多个子模块来执行。例如,在某些实施方式,由模块执行的操作被实现为收录于一个或多个计算机可读介质的计算机可执行指令。在这些实施方式中,模块的操作可以由包含或关联该模块的节点中的一个或多个处理器来执行。在其它实施方式,模块的操作可以被实现为或者是包含或关联该模块的节点的一部分或者以某些其它方式与该节点关联的硬件、固件或硬件、固件和软件的某种组合。而且,此处关于某一模块描述的功能可以由多个节点执行或分布在多个节点上。
现在更具体地转到枚举器模块116的某些详细功能,在一个实施方式中,枚举器模块116向网络100中的应答器模块118发送时间隔开的多个枚举请求。发送的枚举请求之间的间隔可以是定期的或不定期的。例如,在一个实施方式中,枚举请求以均匀隔开的时间间隔(在此处被称为“请求间隔”)发送。在另一个实施方式中,枚举请求在多个随即选择的时间发出。在又一实施方式中,枚举请求在由枚举模块116基于某些其它时间表、逻辑和/或由枚举模块116作出的决定所确定的时间发送。
在一个实施方式中,枚举请求尤其包括标识(确认)先前已经发送了由枚举模块116接收到的枚举响应的节点110的信息。在一个实施方式中,每一枚举请求包括标识已经在一给定时间帧发送了由枚举模块接收到的枚举响应的节点110的信息。例如,在一个实施方式中,每一枚举请求包括标识自从枚举模块发送最近的枚举请求以来已发送枚举响应的节点110的信息。在一个实施方式中,枚举请求可以标识先前已经被确认的节点110。在另一实施方式中,在一枚举请求中确认一给定节点的次数可以被限制或设上限。
当枚举模块116接收一枚举响应时,响应中含有的信息可以被存储来用于处理或以后检索。例如,枚举模块116可以创建和/或维护在其中存储发送枚举响应的每一节点的身份(例如,网络地址)的一个或多个数据结构。在一个实施方式中,枚举模块116维护包含自从最近的枚举请求被发送以来已发送枚举响应的所有节点的地址的一个数据结构,和包含在整个枚举过程中已发送枚举响应的所有节点的地址的另一个数据结构。在该实施方式中,包含自从最近的枚举请求以来已发送枚举响应的所有节点的地址的数据结构然后可以被用来构造下一枚举请求,而包含在整个枚举过程中已发送枚举响应的所有节点的地址的数据结构可以用于最终网络节点枚举。在其它实施方式中,枚举模块116编译和/或存储在枚举过程中使用的各种其它数据。
在某些实施方式中,枚举模块116发送枚举请求,并接收和处理枚举响应直到满足预先确定的条件(例如,计时条件等)。例如,且非限制,在一个实施方式中,枚举模块116连续发送枚举请求直到自从由枚举模块116接收到最近的枚举响应以来经过了一给定时间段。在另一实施方式中,枚举模块116连续发送枚举请求直到每一给定时间段中响应的数量低于某个最小值。在又一实施方式中,枚举模块116发送枚举请求直到每一给定时间段中响应的数量低于某个最小值,并且然后在预先确定的一段额外时间段内继续发送枚举请求。
在一个实施方式中,在枚举过程中从节点接收到的信息被分析和/或编译来生成各种枚举数据。例如,于是可以确定在枚举过程中发送枚举响应的所有节点的数量和/或身份,以及其它信息。
图2示出了由网络中的枚举器执行的枚举过程中可以执行的各种操作的操作性流程200。下述图2的描述是关于图1的网络100来作出的。具体地,图2的描述是关于图1所示的枚举模块116和网络100作出的。然而,应该理解,关于图2描述的操作性流程不旨在被限制为由枚举模块116执行,或在网络100中执行。另外,应该理解,尽管操作性流程200指示了操作执行的一个特定顺序,但是在其它实施方式中可以不同地排序这些操作。
操作性流程200尤其示出一个请求阶段。请求阶段是枚举过程的一部分,其中正在向网络中的节点发送枚举响应。请求阶段在操作性流程200中显示为包含操作210-218的操作性循环。
如图所示,在操作208处,设定枚举请求之间的所需的间隔。在图2所示的实施方式中,操作208在操作性流程200中发生一次,在请求阶段之前。在备选实施方式中,操作208也可以在请求阶段过程中发生。这提供了在请求阶段过程中基于操作性或网络条件或操作员偏好对枚举请求之间的所需间隔修改的灵活性。
下一步,在操作210处,枚举模块116向网络100中的节点110发送枚举请求。在操作210中发送的枚举请求尤其包括标识先前已经发送了由枚举模块116接收到的枚举响应的节点110的信息。即,在操作210中发送的枚举请求可以包括对先前已经发送由枚举模块116接收到的枚举响应的节点110的确认。
在一个实施方式中,在操作210中发送的枚举响应包括,仅标识或确认自从枚举模块116发送最近的枚举请求以来已发送由枚举模块116接收到的枚举响应的节点110的信息。在其它实施方式中,在操作210中发送的枚举响应包括,标识在本枚举过程中已发送由枚举模块116接收的枚举响应的节点110中的全部或某些的信息。
下一步,在操作212处判断枚举模块116是否应该结束枚举过程的请求阶段。即,作出关于是否应该退出由操作210-218构成的操作性循环的判断。在操作212处作出的判断可以基于各种因素。在某些实施方式中,在操作212处作出的判断是基于指示或暗示在枚举过程中可能作出响应的所有节点已经作出响应的某些标准或准则作出的。例如,在一个实施方式中,如果自从由枚举模块116接收到最近的枚举响应以来经过了预先确定的时间,那么在操作212处作出判断来结束枚举过程的请求阶段。在其它实施方式中,可以使用其它准则来确定枚举模块116是否结束枚举过程的请求阶段。应该理解,操作212可以在由操作210-218构成的操作性循环的除操作210之后以外的点上发生。
如果在操作212处确定枚举模块116应该结束请求阶段,那么如下所述,操作性流程200继续前进至操作220处。然而,如果在操作212处没有确定枚举模块116应该结束请求阶段,那么操作性流程前进至操作214处,在那里作出自从枚举模块116发送最后的枚举请求以来是否接收到任何枚举响应的判断。
如果在操作214处确定,自从枚举模块116发送最后的枚举请求以来没有接收到枚举响应,那么如下所述,操作性流程200继续前进至操作218处。然而,如果在操作214处确定,自从枚举模块116发送最后的枚举请求以来接收到一个或多个枚举响应,那么存储发送响应的节点的身份,且操作性流程200继续前进至操作218处。
在操作218处,确定是否要发送枚举请求。可以以多种方式作出判断。例如,在一个实施方式中,该判断是基于,自从枚举模块116发送最近的枚举请求以来,是否经过了等于在操作208处设定的枚举请求之间的所需间隔的时间段而作出的。如果在操作218处确定要发送枚举请求,那么操作性流程200返回至操作210处。如果在操作218处确定将不发送枚举请求,那么该操作性流程返回至操作214处。应该理解,操作218可以在除操作214之后以外的请求阶段的点上发生。
返回至操作212处,如上所述,如果在这里确定枚举模块116应该结束该请求阶段,那么操作性流程200继续前进至操作220。在操作220处,在枚举过程中收集的数据被编译和发送和/或存储,且操作性流程200结束。可以在操作220处编译的数据的类型的某些示例包括,在一给定时间段内响应由枚举模块116发送的枚举请求的所有节点的计数和/或标识。
在某些实施方式中,操作220不位于操作性流程200的操作212之后。即,在某些实施方式中,操作220不在关于枚举模块116应该结束枚举过程的请求阶段的判断之后执行。而是,在某些实施方式中,编译和发送数据的任务可以在请求阶段过程中的一个或多个点上,或在整个请求阶段上连续地发生。
每一应答器模块118为从枚举模块116的枚举请求的发送监视网络。在此处所述的各种实施方式中,在检测到枚举请求的同时,每一应答器模块118执行响应调度方法。一般,响应调度方法确定应答器模块118是否会通过发送枚举响应来响应枚举请求。如果确定该应答器模块118会响应该枚举请求,那么调度方法确定应答器模块118发送枚举响应的时间。
存在应答器模块118可以使用的多种不同类型的响应调度方法。例如,而非限制,图3、4和5各自示出了应答器模块118可以使用的响应调度方法。在某些实施方式中,网络100中的每一应答器模块在给定的枚举过程中使用相同或基本类似的响应调度方法。在其它实施方式中,网络100中的各应答器模块118可以使用不同的调度方法。
下列图3、4和5的描述是关于图1所示的网络100作出的。具体地,图3、4和5的描述是关于网络100的应答器模块118和枚举器模块116作出的。然而,应该理解,在图3、4和5中描述的调度方法不旨在被限制为由应答器模块118、枚举模块116执行,或在网络100中执行。另外,应该理解,尽管图3、4和5所示的调度方法各自指示了操作和/或状态的特定的顺序,但是在其它实施方式中,可以不同地排序操作和/或状态,各种示出的操作和/或状态可以不被执行或包含在内,和/或可把其它的操作和/或状态包含在内。
首先转到图3,此处所示是示出应答器模块118可以在网络枚举过程中转移的示例性状态的简化的状态转移图。如图所示,应答器模块118最初是在空闲状态310中。在对枚举请求312接收的同时,应答器模块118设置响应计时器,确定枚举响应发送时间,并从空闲状态310转移到暂停状态320。枚举响应发送时间根据计时器规定应答器模块向枚举模块116发送枚举响应的时间。
应答器模块118可以以各种方式确定枚举响应发送时间。在某些实施方式中,应答器模块118基于由应答器模块118作出的对从其它应答器模块发送的枚举响应的观察结果,确定枚举响应发送时间。更具体地,在这些实施方式中,应答器模块使用倾向于产生发送的枚举响应在网络上的所需的分布的一种计时法(假定网络中的其它节点使用类似的计时法),来使用这些观察结果设定枚举发送时间。应该理解,尽管该计时法可使用网络中的其它节点使用类似的计时法的假设,但是该假设可能是不正确的。
在一个这样的实施方式中,由应答器模块118作出的观察结果涉及由其它应答器模块发送枚举响应发送而引起的网络上的平均枚举响应密度。在另一这样的实施方式中,由应答器模块118作出的观察结果涉及由于其它应答器模块发送枚举响应而造成的网络上按照每给定的时间段发送的数据量(例如,位/每秒)的网络负载。对如何计算发送次数的更具体的示例在下文关于图4和5描述。
一旦处于暂停状态320中,应答器模块或者等待计时器到达响应发送时间322,或者等待对包含枚举模块116已经接收到来自应答器模块118的枚举响应的确认(肯定确认)的枚举请求324的接收。在计时器到达响应发送时间322的情况中,应答器模块或者在响应发送时间或者在另一时间发送枚举响应,且转移至已发送状态330。在应答器模块接收肯定确认324的情况中,应答器模块118转移至完成状态340。
一旦处于已发送状态330中,应答器模块118等待对枚举请求332或334的接收。如果枚举请求334不包含肯定确认,那么应答器模块118设置响应计时器,确定枚举响应发送时间,并从已发送状态330转移至暂停状态320,如前所述。如果该枚举请求332包含肯定确认,那么应答器模块118从已发送状态330转移到完成状态340。
在某些实施方式中,应答器模块118使用“基于循环的”的调度方法。基于循环的的调度方法在多个顺序计时循环中的一个循环过程中确定枚举响应的发送的时间,可以在网络中的各应答器模块之间被一般同步。在基于循环的的调度中,循环的计时是由每一应答器模块118分别计算的。然而,由于在应答器模块118中使用的公共的调度方法和由枚举请求引发的大致同时的调度方法启动时间,在各应答器模块118中的计时循环之间可以存在大致同步。
基于循环的的调度可以被分为固定循环长度调度和可变循环长度调度。在固定循环长度调度中,在给定计时循环序列中的每一计时循环的持续时间大致相同。与此相反,在可变循环长度调度中,在给定计时循环序列中的每一计时循环的持续时间可以变化。
在固定循环长度调度和可变循环长度调度中,都作出将来自所有可访问应答器模块的枚举响应的发送以枚举响应之间某个所需的最小平均时间来均匀地分布的尝试。为了达到这个目的,固定和可变循环长度调用方法都计算剩余节点值(N)和最小间隔值(I)。剩余节点值(N)是指定还没有接收到来自枚举模块116的肯定确认的节点个数的估算的一个整数。最小间隔值(I)指定在枚举过程中,整个网络上来自于所有可访问节点中的应答器模块的枚举响应之间的所需的最小平均时间。
在固定循环长度调度中,N和I的值被用用来确定枚举响应是否在一个给定循环中发送。在可变循环长度调用中,N和I的值被用来确定循环的长度。
确定剩余节点值(N)的方式取决于所使用的基于循环的调度的类型。可以确定剩余节点值(N)的方式的某些示例在下文中关于图4和5描述。I的值可以根据经验来选择,或基于诸如最大网络规模、网络传输速率等各种参数来计算。在某些实施方式中,I以毫秒(ms)为单位被指定。在其他实施方式中,I以另外的时间单位表示。一旦获得I的值后,I的值可以被存储在网络中的所有应答器模块118中,或以其他方式可被访问。
图4和5各自示出了调度方法的一个可能的实施方式的操作性流程。下述关于图4和5的讨论,是关于响应单个枚举请求的单个应答器模块118的。应该理解,在图4和5中示出的操作性流程可以在每次应答器模块118接收到枚举请求时在应答器模块118中发生。而且,应该理解,如图4和5所示的相同或类似的操作性流程一般在枚举过程中在网络100中的每一可访问应答器模块118中发生。
图4示出了用于应答器模块118中的固定循环长度调度方法的一个可能的操作性流程400。在某些实施方式中,由操作性流程400所示的调度方法,由应答器模块118在每次应答器模块接收到枚举请求时执行。在其它实施方式中,由操作性流程400所示的调度方法,由应答器模块118仅在指定的时刻执行的。即,在某些实施方式中,由操作性流程400所示的调度方法是基于各种操作性条件或用户需要而被“开启”或“关闭”的。
在某些实施方式中,在应答器模块中执行操作性流程400之前的某个时刻,确定指定在固定循环长度调度方法中使用的计时循环的持续时间的计时循环持续时间值(td)。td的值可以根据经验选择,或可以基于诸如最大网络规模、网络传输速率等各种参数来计算。在某些实施方式中,td是以毫秒(ms)为单位指示计时循环持续时间的整数值。在其它实施方式中,td以其它时间单位表示。一旦获得td的值后,td的值被存储在网络中所有应答器模块118中,或以其它方式可访问。
在众多实施方式中,在枚举过程开始之前确定td的值。在大多数实施方式中,td的值在整个调度方法上保持为常数。在其它实施方式中,td的值在调度方法的第一次计时循环中有第一值,而在调度方法的剩余计时循环中基于诸如观察到的处理负载等的因素被调整为第二值。
在操作410处,由应答器模块118接收到枚举请求。对枚举请求的接收开始了,或“引发”了应答器模块118中的调度方法。在操作412处,作出关于所接收到的枚举请求是否包含枚举模块116已经接收到来自应答器模块118的枚举响应的指示(“肯定确认”)的判断。例如,应答器模块可能已经在对枚举过程中的早些时候发送的枚举请求的回复中发送了枚举响应。
如果在操作412处确定所接收到的枚举请求包含肯定确认,那么操作性流程400结束。然而,如果在操作412处确定所接收到的枚举请求不包括肯定确认,则在操作414处确定指定枚举响应会在操作性流程400中发生的计时循环序列中的下一计时循环中发送的概率的概率值(φ)。
概率值(φ)可以使用各种方式被选择或确定。例如,在一个实施方式中,值φ是基于对已经向枚举模块116发送枚举响应的应答器模块的数目的估算。在一个实施方式中,φ如下确定公式(1)φ=tdN×I]]>操作414第一次执行时,N的值初始设定为表示网络100中可访问节点的最大数量的估算的最大节点值(Nmax)。在该操作性流程中后面每次执行操作414时,然后如下详细描述,基于观察到的从其它应答器模块发送的响应来确定N。
下一步,计时循环操作416开始持续时间td的计时循环。基本上与该计时循环的开始同时,在操作418处判断在该计时循环过程中,应答器模块118是否将要发送枚举响应。使用在操作414中确定的概率φ作出该判断。即,使用概率φ,用某种机制或算法来选择在本循环过程中是否要发送枚举响应。
如果在操作418处确定,在当前的计时循环过程中将不发送枚举响应,那么操作性流程400前进至如下所述的操作424处。然而,如果在操作418处确定在当前的计时循环过程中将发送枚举响应,那么在操作420处确定在该循环中要发送枚举响应的精确时间。在一个实施方式中,在该循环中发送枚举响应的时间是在该循环期间上随机选择的。在其它实施方式中,在该循环中发送枚举响应的时间以其它方式选择。接着操作420,在操作422处以操作420过程中确定的时间发送枚举响应。
接着操作422,在操作424处确定在当前计时循环中发送枚举响应的所有节点的计数(r)。在一个实施方式中,计数(r)是由应答器模块通过监视网络和对在当前计时循环中在网络中发送的枚举响应计数而确定的。应该理解,尽管操作424被示为接着操作422发生,但是在操作中,在当前计时循环中在网络中发送的枚举响应的计数一般可以遍及所有或大多数计时循环上发生。
下一步,操作性流程400前进至操作426,在那里估算剩余节点值(N)。一般,N是基于观察到的从其它应答器模块中发送的响应来估算的。例如,在一个实施方式中,剩余节点值(N)如下计算公式(1)N=Nprevious×r×Itd-r]]>在操作性流程400中第一次执行操作426时,Nprevious的值与Nmax相同。在操作性流程400中后面每次执行操作426时,N的值可以是在流程400中最近一次执行操作426时计算出的N的值。
在某些实施方式中,计算出的N的值可以含有一个上界(NUB)和/或下界NLB。NUB和NLB的值可以以各种方式选择。例如,但非限制,这些值可以是预先确定的固定值,可以是在操作性流程400中计算出的,可以是基于各种观察到的节点或网络行为,和/或可以是先前计算出的或当前计算出的N的值的百分比。
另外,在某些实施方式中,实际的计时循环的持续时间被测量(tactual),且测量出的值tactual然后被用来估算或计算N,而不是在操作426使用td来估算或计算N的值。例如,值tactual可以被用来代替如上所示的公式(1)中的值td。
下一步,在操作428处作出在当前计时循环过程中是否接收到枚举请求的判断。如果确定在当前计时循环过程中接收到请求,那么该操作性流程返回至如上所述的操作412处。如果确定在当前计时循环过程中没有接收到请求,那么该操作性流程前进至操作430处,在那里作出是否满足休止条件的判断。
可以以多种方式选择和/或确定该休止条件。例如,在一个实施方式中,如果自从对枚举请求的接收以来经过了给定的时间,那么满足该休止条件。如果在操作430处确定满足该休止条件,那么该操作性流程结束。然而,如果在操作430处确定,不满足该休止条件,那么该操作性流程返回至如前所述的操作414处。
如上所述,操作性流程400会在接收到包含肯定确认的枚举响应(操作412)时,或者满足休止条件(操作430)时结束。另外,在某些实施方式中,在操作性流程中接收到枚举请求的任何点上,作出该请求是否包含肯定确认的判断。如果确定所接收到的请求不包含肯定确认,那么该操作性流程继续。例如,如果接着操作416,但在操作418之前接收到不包括肯定确认的请求,那么该操作性流程可以继续前进至操作418处。如果确定该接收到的请求包含肯定确认,那么该操作性流程结束。
在一个实施方式中,由应答器模块维护对自从操作性循环400开始以来,观察到的从其它应答器模块发送的枚举响应的总数(TR)的计数。根据该实施方式,每次应答器模块接收到枚举请求时,在接收请求的时候存储TR的值(TRmb)。即,对每一接收到的请求存储值TRmb。在给定循环i的结尾处,将TRmb最近的值同先前计时循环结尾处的值TRmb比较。如果TRmb最近的值比先前计时循环结尾处的值TRmb大,那么在TRmb最近的值同先前计时循环结尾处的值TRmb之间的差异(TRdiff)被添加到操作性流程400的操作426处所确定的值N上,如下表示公式(2)N=Nprevions×r×Itd-r+TRdiff]]>图5示出了在应答器模块118中使用的可变循环长度调度方法的一个可能的操作性流程500。在某些实施方式中,由操作性流程500示出的调度方法是每次应答器模块接收到枚举请求时由应答器模块118执行的。在其它实施方式中,由操作性流程500示出的调度方法是由应答器模块118仅在指定的时刻执行的。即,在某些实施方式中,由操作性流程500所示的调度方法是基于各种操作性条件或用户需要而被“开启”或“关闭”的。
在应答器模块中执行操作性流程500之前的某个时刻,确定传输概率值(φ)和/或初始计时循环持续时间值(tinitial)。传输概率值(φ)指定响应在计时循环中将被发出的概率。初始计时循环持续时间值(tinitial)指定可变循环长度调度方法中第一次计时循环的持续时间。
φ和tinitial的值可以根据经验选择,或基于诸如最大网络规模、网络传输速率等各种参数来计算。一旦获得φ和tinitial的值后,φ和tinitial的值被存储在网络中的所有应答器模块118中,或以其他方式可访问。
在众多实施方式中,在枚举过程开始之前确定值φ。在大多数实施方式中,值φ在整个调度方法上保持为常数。在其它实施方式中,值φ在调度方法的第一次计时循环中有第一值,而在调度方法的剩余计时循环中基于诸如观察到的处理负载等的因素被调整为第二值。
在一个实施方式中,如下确定tinitial的值。首先,确定表示网络100中可访问节点最大个数的估算的最大节点值(Nmax)。然后如下确定初始计时循环持续时间值(tinitial)公式(3)tinitial=φ×Nmax×I在操作510处,应答器模块118接收到枚举请求。对枚举请求的接收开始了,或“引发”了应答器模块118中的调度方法。在操作512处,作出关于所接收到的枚举请求是否包含枚举模块116已经接收到来自应答器模块118的枚举响应的指示(“肯定确认”)的判断。例如,应答器模块可能已经在对枚举过程中的早些时候发送的枚举请求的回复中发送了枚举响应。
如果在操作512处确定该所接收到的枚举请求包含肯定确认,那么操作性流程500结束。然而,如果在操作512处确定所接收到的枚举请求不包括肯定确认,那么在操作514处确定下一计时循环的持续时间(T)。第一次执行操作514的时候,T等于tinitial。在操作性流程中后面每次执行操作514时,基于观察到的从其它应答器模块发送的响应确定T。例如,在一个实施方式中,如下计算T的值,使得枚举响应会在下一计时循环中均匀分布公式(4)T=φ×N×I下一步,计时循环操作516开始持续时间T的计时循环。基本上与该计时循环的开始同时,在操作518处判断在该计时循环过程中,应答器模块118是否将要发送枚举响应。使用如上所述的概率φ作出该判断。即,使用概率φ,用某种机制或算法来选择在本循环过程中是否要发送枚举响应。
在一个实施方式中,应答器含有其操作的T的最小值。可以直接以时间的单位被指定为Tmin,或者间接地指定为节点的个数Nmin。在这样的一个实施方式中,如果T比Tmin小(或者N比Nmin小),那么该计时循环的持续时间被设为Nmin而概率被设为1。
如果在操作518处确定在当前的计时循环过程中将不发送枚举响应,那么操作性流程500前进至如下所述的操作524处。然而,如果在操作518处确定在当前的计时循环过程中将发送枚举响应,那么在操作520处确定在循环中发送枚举响应的精确时间。在一个实施方式中,在该循环中发送枚举响应的时间是在该循环持续时间上随机选择的。在其它实施方式中,在该循环中发送枚举响应的时间以其它方式选择。接着操作520,在操作522处在操作520过程中确定的时间发送枚举响应。
接着操作522,在操作524处确定在当前计时循环中发送枚举响应的所有节点的计数(r)。在一个实施方式中,计数(r)是由应答器模块通过监视网络和对在当前计时循环中在网络中发送的枚举响应计数确定的。应该理解,尽管操作524被示为接着操作522发生,但是在操作中,在当前计时循环中在网络中发送的枚举响应的计数一般可以遍及所有或大多数计时循环上发生。
下一步,操作性流程500前进至操作526,在那里估算剩余节点值(N)。一般,N是基于观察到的从其它应答器模块中发送的响应来估算的。可以估算,在当前循环开始处已经响应枚举请求的应答器模块的个数(Ncurrent)大致为Ncurrent=rφ.]]>使用对Ncurrrent的该估算,然后可以如下估算剩余节点值(N)公式(5)N=Ncurrent-r≈rφ-r]]>下一步,在操作528处作出在当前计时循环过程中是否接收到枚举请求的判断。如果确定在当前计时循环过程中接收到请求,那么该操作性流程返回至如上所述的操作512处。如果确定在当前计时循环过程中没有接收到请求,那么该操作性流程前进至操作530处,在那里作出是否满足休止条件的判断。
可以以多种方式选择和/或确定该休止条件。例如,在一个实施方式中,如果自从对枚举请求的接收以来经过了给定的时间,那么满足该休上条件。如果在操作530处确定满足该休止条件,那么该操作性流程结束。然而,如果在操作530处确定该休止条件没有被满足,那么该操作性流程返回至如前所述的操作514处。
如上所述,操作性流程500会在接收到包含肯定确认的枚举响应(操作512)时,或者满足休止条件(操作530)时结束。另外,在某些实施方式中,在操作性流程中接收到枚举请求的任何点上,作出该请求是否包含肯定确认的判断。如果确定所接收到的请求不包含肯定的确认,那么该操作性流程继续。例如,如果接着操作516,但在操作518之前接收到不包括肯定确认的请求,那么该操作性流程将继续前进至操作518处。如果确定该接收到的请求包含肯定确认,那么该操作性流程结束。
在如上所述的各种计时方法中,应答器模块118一般在每次接收到枚举请求时发送枚举响应。同样如上所述,在各种实施方式中,应答器模块一般监视网络100和对在给定时间段中发送的枚举响应计数。然后使用该计数来估算已经响应枚举请求的应答器模块的个数N。然而,在某些实施方式中,应答器模块可以通过使用给定的概率z向网络整体发送响应(广播),且使用概率(l-z)向枚举器模块116发送定向的响应(单播)来降低网络上的负载。在这种实施方式中,仍可能通过将观察到的响应个数除以z来估算N。
图6示出了计算机系统600形式的示例性网络节点110。在其最基本配置中,计算系统600包括至少一个处理单元602和存储器604。取决于计算设备的精确配置和类型,存储器604可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等),或两者的某种结合。该最基本的配置在图6中由虚线606示出。另外,计算机系统600也可以含有附加的特征/功能。例如,设备600也可以包括附加的存储(可移动的和/或不可移动的)包括,但不限于,磁性或光学的盘或带。这样的附加存储在图6中以可移动存储608和不可移动存储610示出。
计算机系统600也可以包括允许设备同其它设备通信的通信连接612。计算机系统600也可以含有输入设备,诸如键盘、鼠标、笔、语音输入设备、触摸式输入设备等。诸如显示器、扬声器、打印机等的输出设备616也可以包含在计算机系统600中。所有这些设备在本领域中公知且不需在此详细描述。
尽管该系统和方法的某些特定实施方式在附图中示出并在前述具体实施方式
中描述,可以理解,所示和所述的系统和方法不限于所述的特定实施方式,而能够重新安排、修改和置换而不背离前述的精神和随后定义的权利要求。
权利要求
1.一个或多个包含处理器可执行指令的计算机可读介质,当由一个或多个处理器执行所述指令时,使所述一个或多个处理器实现一种方法,包括基于与在枚举过程中由网络中的节点先前发送的枚举响应相关的信息,和在枚举过程中发送的枚举响应之间所需的平均时间,在一节点处确定所述节点在网络中的所述枚举过程中响应枚举请求的时间;以及在所确定的时间响应所述枚举请求。
2.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述信息包括在所述枚举过程中在给定时间段内先前发送过枚举响应的节点的计数。
3.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述信息包括对在所述枚举过程的剩余时间内可能发送枚举响应的节点的估算。
4.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,响应枚举请求的时间是使用基于循环的调度方法来确定的。
5.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,响应枚举请求的时间是使用可变循环长度调度方法来确定的。
6.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,响应枚举请求的时间是使用固定循环长度调度方法来确定的。
7.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述枚举请求包括标识网络中在所述枚举过程中先前已经响应枚举请求的节点的信息。
8.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述枚举请求包括网络中在所述枚举过程中先前已经响应枚举请求的节点的网络地址。
9.如权利要求1所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,响应枚举请求的时间是使用基于循环的调度方法来确定的,且其中,在所确定的时间响应枚举请求包括在由基于循环的调度方法所定义的计时循环中响应。
10.一种方法,包括基于监视从网络中的节点发送的枚举响应而收集到的信息,确定在计时循环序列中的哪个计时循环中从网络中的节点发送枚举响应;以及在所确定的计时循环中发送所述枚举响应。
11.如权利要求10所述的方法,其特征在于,所述计时循环序列中的每一计时循环有基本上相同的持续时间。
12.如权利要求10所述的方法,其特征在于,所述计时循环中的至少一个计时循环的持续时间是基于网络中发送的枚举响应的计数来确定的。
13.如权利要求10所述的方法,其特征在于,所述计时循环序列中的多个计时循环中的每一个的持续时间是基于网络中发送的枚举响应的位密度来确定的。
14.如权利要求10所述的方法,其特征在于,所述方法还包括在所确定的计时循环中随机选择发送枚举响应的时间;以及在所确定的计时循环中所选择的时间发送枚举响应。
15.如权利要求10所述的方法,其特征在于,确定在计时循环序列中的哪个计时循环中发送枚举响应包括开始持续时间为t的当前计时循环;估算网络中还没有通过网络发送枚举响应的节点的个数(N);基于N和指定枚举过程中在网络上的枚举响应之间所需的最小平均时间的最小间隔值(I),来估算枚举过程的结尾;在当前计时循环开始启动和所估算的枚举的结尾之间选择一个时间;以及如果所选择的时间在当前计时循环中出现,那么确定在当前计时循环中发送枚举响应。
16.一个或多个包含处理器可执行指令的计算机可读介质,当由一个或多个处理器执行所述指令时,使一个或多个处理器实现一种方法,包括在网络中的第一节点处接收枚举请求,所述枚举请求包括标识网络中先前已经通过网络发送枚举响应的节点的信息;确定在计时循环序列中的哪个计时循环中从所述第一节点发送枚举响应;以及如果所述第一节点在所述枚举请求中没有被标识,那么在所确定的计时循环中发送枚举响应。
17.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述计时循环序列中的每一计时循环有基本上相同的持续时间。
18.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,计时循环序列中的至少一个计时循环的持续时间是基于对网络中还没有发送回复所述枚举请求的枚举响应的节点个数的估算来确定的。
19.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,计时循环序列中的至少一个计时循环的持续时间是基于指定在枚举响应之间所需的最小平均时间的最小间隔值(7)来确定的。
20.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,计时循环序列中的至少一个计时循环的持续时间是基于指示节点在计时循环之一中会发送枚举响应的所需的概率的预定值来确定的。
21.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,计时循环序列中的至少一个计时循环的持续时间是基于对网络中还没有发送回复所述枚举请求的枚举响应的节点个数,和指定在计时循环序列中发送枚举响应之间所需的最小平均时间的最小间隔值(I)来确定的。
22.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,在计时循环序列中要发送计时循环的计时循环是基于对网络中还没有发送回复所述枚举请求的枚举响应的节点个数的估算来确定的。
23.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,在计时循环序列中要发送计时循环的计时循环是基于指定在枚举响应之间所需的最小平均时间的最小间隔值(I)来确定的。
24.如权利要求16所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,在计时循环序列中要发送计时循环的计时循环是基于已经响应枚举请求的节点个数的计数。
25.一个或多个包含处理器可执行指令的计算机可读介质,当由一个或多个处理器执行所述指令时,使所述一个或多个处理器执行一种方法,包括向网络中的多个节点发送第一枚举请求;从所述多个节点中的至少一个接收枚举响应,所接收到的枚举响应已经在由所述至少一个节点使用一种调度方法确定的时间上从所述至少一个节点发送;以及向所述多个节点发送第二枚举请求,所述第二枚举请求包括对从所述多个节点中的所述至少一个中接收到枚举响应的确认。
26.如权利要求25所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述调度方法包括基于循环的调度方法。
27.如权利要求25所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述调度方法包括固定循环长度调度方法。
28.如权利要求25所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,所述调度方法包括可变循环长度调度方法。
29.如权利要求25所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,发送第一枚举请求包括广播所述第一枚举请求。
30.如权利要求25所述的包含处理器可执行指令的一个或多个计算机可读介质,其特征在于,发送第一枚举请求包括组播所述第一枚举请求。
31.一种系统,包括节点;所述节点内的应答器装置,用于在使用监视从网络中的其它节点发送的枚举响应而收集的信息所确定的时间上通过网络发送枚举响应,来响应通过网络接收到的枚举请求。
32.如权利要求31所述的系统,其特征在于,所述应答器装置包括基于循环的调度装置。
33.如权利要求31所述的系统,其特征在于,所述响应包括发送枚举响应。
34.如权利要求31所述的系统,其特征在于,所述时间是使用固定循环长度调度方法来确定的。
35.如权利要求31所述的系统,其特征在于,所述时间是使用可变循环长度调度方法来确定的。
36.如权利要求31所述的系统,其特征在于,所收集的信息包括与由枚举响应引起的网络负载相关的信息。
37.如权利要求31所述的系统,其特征在于,所收集的信息包括在给定时间段中在网络中发送的枚举响应的数量。
38.如权利要求31所述的系统,其特征在于,所收集的信息包括在网络中给定时间段中在响应中发送的数据量。
全文摘要
枚举请求是从网络中的节点发送的。每一个接收到枚举请求的节点在由该接收到枚举请求的节点确定的时刻上发送枚举响应。
文档编号H04L12/24GK1756198SQ20051010887
公开日2006年4月5日 申请日期2005年9月30日 优先权日2004年9月30日
发明者R·J·布莱克, A·N·唐纳利, A·加弗里莱斯库, D·G·塞勒 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1