新四季網

涉及多個節點枚舉器的節點發現的製作方法

2023-05-30 21:47:41

專利名稱:涉及多個節點枚舉器的節點發現的製作方法
涉及多個節點枚舉器的節點發現背景技術區域網(LAN)是覆蓋較小的局部區域如家庭、辦公室或小型建築群 諸如企業或校園的計算機網絡。現代LAN大多數基於以10至1000Mb/s(每 秒兆比特)運行的交換式乙太網或Wi-Fi技術,儘管也可使用其它技術。 與廣域網(WAN)相比,LAN的典型特性包括(a)較高的數據速率,(b) 較小的地理範圍;以及(c)缺少租用電信線路。可在計算機網絡如LAN中使用網絡節點發現來標識網絡內的其它設 備或節點。通常,特定的節點(稱為"枚舉器")請求網絡中其它節點(稱 為"應答器")的應答。如此,枚舉器可發展出網絡內其它活動節點的列 表。網絡節點發現的結果可用於例如標識設備進入網絡,檢測設備從網絡 中移除,優化路由與負載平衡等等。此外,具有多個枚舉器的網絡與單一枚舉器網絡相比,對網絡節點枚舉提出了另外的挑戰。然而,現有網絡節點發現實現比較慢並且通常不夠 健壯或者不容易伸縮,尤其是在存在多個枚舉器的情況下。這些實現易於 隨著枚舉器數量的增加快速增加網絡負載,因而有網絡過載的危險。發明內容在此描述並要求保護的實現通過允許多個枚舉器並發接受和解釋來自網絡上應答器節點的相同枚舉應答來解決部分上述問題。如此,應答器節點不必為每一枚舉器發出單獨的應答。每一應答器維護髮現狀態和一或多個每枚舉器(per-enumerator)會話狀態,以管理應答器何時應當發送枚舉應答。因此,無論存在多少枚舉器,枚舉以目標網絡負載進行,並且通過能夠有效使用網絡容量而在短時間內完成。此外,枚舉器可確定它僅需要等待由其它枚舉器請求的應答而不是請求這些應答,從而在存在許多並發 進行枚舉的節點的情況下減少了網絡通信量。在一些實現中,提供作為電腦程式產品的製品。電腦程式產品的 一個實現提供可由計算機系統讀取並編碼電腦程式的電腦程式存儲介質。由計算系統在載波內具體化並編碼電腦程式的計算機數據信號可提 供電腦程式產品的另一個實現。在此還描述和列舉其它實現。提供本概述以便以簡化形式介紹概念精選,這些概念將在以下的詳細 描述中被進一步描述。本概述並不旨在標識要求保護的主題的關鍵特徵或 本質特徵,也不旨在用於幫助確定要求保護的主題的範圍。


圖1是其中可實現按照本文中描述的系統和方法的網絡節點枚舉的計算機網絡的概括表示。圖2例示包括可在由網絡(諸如圖1的網絡)中的枚舉器執行的枚舉 會話中執行的各種操作的操作流程。圖3是簡化的狀態轉換圖,例示在網絡枚舉期間應答器模塊可轉換通 過的示例狀態。圖4例示在網絡(諸如圖1的網絡)中應答器模塊內的固定巡迴(round)長度調度方法的操作流程。圖5例示在網絡(諸如圖1的網絡)中應答器模塊的可變巡迴長度調 度方法的操作流程。圖6例示計算機系統形式的示例網絡節點。圖7例示其中在存在多個節點枚舉器的情況下實現網絡節點枚舉的示 例計算機網絡。圖8例示兩部分簡化狀態轉換圖,例示在網絡枚舉期間應答器模塊可 轉換通過的示例狀態。圖9例示管理枚舉應答的示例性操作。圖10和11例示管理枚舉應答的替換示例性操作。
具體實施方式
本文描述的是用於網絡節點枚舉的系統和方法的各種實現。按照在此 描述的一些系統和方法, 一或多個進行枚舉的節點(即"枚舉器")發送 枚舉請求至網絡中的其它節點。響應於收到枚舉請求,可訪問(即"在線") 的節點(即"應答器")發送可由枚舉器接收的枚舉應答,從而將它們自 己標識為枚舉器可訪問的。進行枚舉的節點隨後發送對收到的枚舉應答的 確認。在一個實現中,進行枚舉的節點在一或多個將來的枚舉請求中發送 這樣的確認。為減少因大量應答器為回答枚舉請求而同時發送枚舉應答引起的過量 網絡擁塞,枚舉應答在不同時間自應答器發送。為降低惡意節點挑起來自 大量可訪問節點的枚舉應答的同時發送的可能性,每一應答器獨立地確定 其發送其枚舉應答的時間。在一些實現中,每一應答器基於在該節點處作出的對網絡活動的觀測 和/或對將來網絡活動的預測,獨立地調度發送枚舉應答的一或多個時間。 另外,在一些實現中,每一可訪問節點使用"基於巡迴"的調度方法,其 中發送每一枚舉應答的時間在多個定時巡迴之一調度。現轉向圖1,其中示出計算機網絡100的概括性表示。網絡100例示 其中可發生網絡節點枚舉的一個可能的環境。計算機網絡100包括通過網絡雲112互連的一定數量的節點110。變量W用於表示單個節點對網絡上可訪問節點數量的估計。不同節點可對該數量有的不同估計,但各個估計通常值相近。在圖1中,使用任意估計iV。網絡雲112—般表示數據(例如,枚舉請求和枚舉應答)在節點110 之間傳播時可採用的通過不同網絡路徑、設備和/或傳輸介質(例如布線或 無線)的不同路由。節點110與網絡雲112之間的鋸齒線如線108表示節 點110在網絡100中是可訪問的(即"在線")。例如,每一節點(l)、 (2)、 (3)、 (5)和(7V)示為在網絡100中是可訪問的,而節點(4)在網絡100中示為 是不可訪問的("離線")。本文中術語"節點"指在網絡(例如網絡100)中可唯一尋址或以其 他方式可唯一標識並且可與網絡中其它節點通信的任何計算機系統、設備 或過程。例如但非限制,節點可以是個人計算機、伺服器計算機、手持或膝上型設備、輸入板設備、多處理器系統、基於微處理器系統、機頂盒、 消費電子設備、網絡PC、小型計算機、大型計算機、包括任意上述系統或 設備的分布式計算環境,等等。計算機系統600形式的網絡節點110的示 例在下面參考圖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發送枚舉請求,接收和處理枚舉應答, 直到滿足了預定條件(例如定時條件等)。舉例說明但非限制,在一個實現中,枚舉模塊U6繼續發送枚舉請求,直到自從枚舉模塊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,確定是否有枚舉請求要發送。可用各種方法作出該判斷。 例如,在一個實現中,基於等於在操作208設置的枚舉請求之間所需時間 間隔的時間段自從枚舉模塊116發送最後一個枚舉請求起是否已經過去來 作出該判斷。如果在操作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使用。作為示例 但非限制,圖3、4和5各自例示可由應答器模塊118使用的應答調度方法。 在一些實現中,網絡100中的每一應答器模塊在給定枚舉會話期間使用相 同或基本相似的應答調度方法。在其它實現中,網絡100中各種應答器模 塊118可使用不同的調度方法。以下對圖3、 4和5的說明參考圖1的網絡IOO作出的。更具體地,對 圖3、 4和5的說明是參考網絡IOO的應答器模塊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,應答器模塊118或者等待定時器到達應答發 送時間322,或者等待對包含枚舉模塊116已經收到來自應答器模塊118 的枚舉應答的確認(肯定確認)的枚舉請求324的接收。在定時器到達應 答發送時間322的情形中,應答器模塊在應答發送時間或者在其它時間發 送枚舉應答,並且轉換至已發送態330。在應答器模塊收到肯定確認324 的情形中,應答器模塊118轉換至完成態340。一旦處於已發送態330,應答器模塊118等待對枚舉請求322或334 的接收。如果枚舉請求不包含肯定確認334,則應答器模塊118設置應答定 時器,確定枚舉應答發送時間,並且如前所述從己發送態330轉換至暫停 態320。如果枚舉請求包含肯定確認332,則應答器模塊118從己發送態330轉換至完成態340。在一些實現中,應答器模塊118使用"基於巡迴"的調度方法。基於巡迴的調度方法調度在多個連續定時巡迴之一期間枚舉應答的發送,這通 常可在網絡中各種應答器模塊之間進行同步。在基於巡迴的調度中,巡迴的定時是由各應答器模塊118獨立計算的。然而,由於在各應答器模塊118 中使用共同的調度方法以及由枚舉請求觸發的調度方法近似同時的起始時 間,在各種應答器模塊118中的定時巡迴之間可發生一般同步。基於巡迴的調度可分類為固定巡迴長度調度或可變巡迴長度調度,盡 管可使用其它類型的調度。在固定巡迴長度調度中,在給定定時巡迴序列 中每一定時巡迴的持續時間近似相同。與之相比,在可變巡迴長度調度中, 在給定定時巡迴序列中每一定時巡迴的持續時間可以變化。在固定巡迴長度調度與可變巡迴長度調度兩者中,都試圖以枚舉應答 之間的某個所需的最小平均時間來均勻分布來自所有可訪問應答器模塊的 枚舉應答的發送。為實現這一目標,固定和可變巡迴長度調度方法都計算 節點剩餘值(AU和最小時間間隔值(/)。節點剩餘值(AU是整數,表 示對還未從枚舉模塊116收到肯定確認的節點數量的估計。最小時間間隔 值(/)指定在枚舉會話期間來自所有可訪問節點的應答器模塊的跨網絡枚 舉應答之間所需的最小平均時間。在固定巡迴長度調度中,W和/值用於確定在一給定巡迴中是否有發 送枚舉應答。在可變巡迴長度調度中,A^和/值用於確定巡迴的長度。確定節點剩餘值(W)的方式取決於所使用的基於巡迴調度的類型。 確定節點剩餘值(A^)的一些示例方法在以下參考圖4和5描述。/值可按 經驗選擇,或者基於各種參數諸如最大網絡大小、網絡傳輸速度等來計算。 在一些實現中,/是以毫秒(ms)來指定的。在其它實現中,以其它時間單 位來表示/。 一旦獲得/值,可將它存儲在網絡中所有應答器模塊118中, 或者使/值對它們是可訪問的。圖4和5各自例示調度方法的一種可能實現的操作流程。以下關於圖 4和5的討論是參考單個應答器模塊118響應於單個枚舉請求來作出的。應 當理解,每次應答器模塊118收到枚舉請求時,圖4和5所示的操作流程在應答器模塊118中發生。另外還應理解,與圖4和5的所示的相同或相似的操作流程通常會在枚舉會話期間在網絡100的每一可訪問應答器模塊 118中發生。圖4例示應答器模塊118中固定巡迴長度調度方法的一個可能的操作 流程400。在一些實現中,操作流程400例示的調度方法在每次應答器模塊 118收到枚舉請求時由該應答器模塊執行。在其它實現中,操作流程400 例示的調度方法僅在指定時間由應答器模塊118執行。也就是說,在一些 實現中,操作流程400例示的調度方法是基於各種操作條件或用戶需求而 被"開啟"或"關閉"的。在一些實現中,在應答器模塊中執行操作流程400之前的某一時間確 定定時巡迴持續時間值(&),它指定在固定巡迴長度調度方法中使用的定 時巡迴的持續時間。^值可按經驗來選擇,或者基於各種參數諸如最大網絡 大小、網絡傳輸速度等來計算。在一些實現中,。是整數值,它以毫秒(ms) 為單位指示定時巡迴持續時間D在其它實現中,。以其它時間單位表示。一 旦獲得。值,就將它存儲在網絡的所有應答器模塊118中,或者使該^值 對它們是可訪問的。在許多實現中,值^是在枚舉會話開始之前確定的。在大多數實現中, 值^在整個調度方法過程中保持不變。在一些實現中,值^具有第一值用 於調度方法中的第一定時巡迴,並且基於諸如觀測到的處理負載等因素調 整為第二值用於調度方法中剩餘的定時巡迴。在操作410,枚舉請求由應答器模塊118接收。枚舉請求的接收開始 或"觸發"應答器模塊118中的調度方法。在操作412,作出收到的枚舉請 求是否包含枚舉模塊116已經從應答器模塊118收到枚舉應答的指示("肯 定確認")的判斷。例如,應答器模塊可能已經發送了枚舉應答以回答在 枚舉會話的較早時間發送的枚舉請求。如果在操作412確定收到的枚舉請求包含肯定確認,則操作流程400 結束。然而,如果在操作412確定收到的枚舉請求不包含肯定確認,則在 操作414確定概率值(0),它指示在操作流程400期間發生的定時巡迴序列的下一定時巡迴中將發送枚舉應答的概率。概率值(-)可用各種方法來選擇或確定。例如,在一個實現中,值-是基於對尚未發送枚舉應答至枚舉模塊116的應答器模塊數量的估計來確 定的。在一個實現中,^是按照下面的公式來確定的在第一次執行操作414時,最初將W值設置為最大節點值(7C。》, 它表示網絡100中可訪問節點的最大數量的估計。在操作流程中以後每次執行操作414時,則基於觀測到的從其它應答器模塊發送的應答來確定A^,如下將對此作出詳述。接著,定時巡迴操作416開始持續時間^的定時巡迴。與定時巡迴的 開始基本上同時,在操作418確定在定時巡迴期間枚舉應答是否要由應答 器模塊118發送。這是通過在操作414確定的概率-來確定的。也就是說, 使用一些機制或算法通過概率-來選擇在當前巡迴期間是否將發送枚舉應 答。如果在操作418確定在當前定時巡迴期間不要發送枚舉應答,則操作 流程400進行至如下將描述的操作424。然而,如果在操作418確定在當前 定時巡迴期間要發送枚舉應答,則在操作420確定在該巡迴期間發送枚舉 應答的精確時間。在一個實現中,在巡迴期間發送枚舉應答的時間是在巡 回持續時間內隨機選擇的。在其它實現中,在巡迴期間發送枚舉應答的時 間可用其它方法來選擇。在操作420之後,在操作422處以在操作420期 間確定的時間來發送枚舉應答。在操作422之後,在操作424生成在當前定時巡迴期間發送枚舉應答 的所有節點的計數")。在一個實現中,計數(/0是由應答器模塊通過監 視網絡並且對當前定時巡迴期間網絡中發送枚舉應答的數量進行計數來產 生的。應當理解,儘管操作424示為在操作422之後發生,而在操作中, 當前定時巡迴期間在網絡中發送的枚舉應答的計數通常會貫穿全部或大多 數定時巡迴發生。接著,操作流程400進行至操作426,其中估計節點剩餘值(AO 。通 常,W是基於觀測到的從其它應答器模塊發送的應答來估計的。例如,在一個實現中,節點剩餘值(AU是按照下面的公式來計算的公式(2) 乂=^^ —r在操作流程400中第一次執行操作426時,7V^值與^^相同。在操 作流程400中以後每次執行操作426時,W薪-值將是上次在流程400中執 行操作426時計算的M值。在一些實現中,W計算值具有上界(7Vra)和/或下界WiS。 iV^和 的值可以用各種方法選擇。作為示例但非限制,這些值可以是預定的固定 值,這些值可在操作流程400期間計算,這些值可基於各種觀測到的節點 或網絡行為,和/或這些值可以是先前或當前計算的W值的百分比。另外,在一些實現中,不是使用在操作426估計或計算A^的值(G), 而是測量定時巡迴的實際持續時間U鈔》,並且隨後在估計或計算W時 使用測量值f實豕。例如,使用值f實際代替上面所示的公式(2)中的值。。接著,在操作428作出在當前定時巡迴期間是否已經收到枚舉請求的 判斷。如果確定在當前定時巡迴期間已經收到請求,則操作流程返回上述 操作412。如果確定在當前定時巡迴期間未收到請求,則操作流程進行至操 作430,其中作出是否已經滿足不活動條件的判斷。不活動條件可以用不同的方法來選擇和/或確定。例如,在一個實現中, 如果自從枚舉請求的接收起給定時間已經過去,則滿足不活動條件。如果 在操作430確定已經滿足不活動條件,則操作流程結束。然而,如果在操 作430確定還未滿足不活動條件,則操作流程返回至前述操作414。如上所述,操作流程400將在收到包含肯定確認的枚舉應答(操作412) 或者在已經滿足不活動條件(操作430)的情況下結束。另外,在一些實現 中,在操作流程中收到枚舉請求的任何點,都可作出請求是否包含肯定確 認的判斷。如果確定收到的請求不包含肯定確認,則操作流程繼續。例如, 如果在操作416之後但在操作418之前收到不包含肯定確認的請求,則操 作流程會繼續至操作418。如果確定收到的請求包含肯定確認,則操作流程結束。在一個實現中,應答器模塊保持對自從操作循環400開始起期間觀測到的從其它應答器模塊發送的枚舉應答的總數(77 )的計數。按照該實現,每次應答器模塊收到枚舉請求時,就存儲收到該請求時ri 的值(77 ^)。也就是說,值7T ^針對每一收到的請求而存儲。在給定巡迴/結束時,將 最新的7T ^值與前一定時巡迴結束時的值7T ^相比較。如果7T ^的最新 值大於前一定時巡迴結束時的值T7 w,則如下所示將r; w的最新值77^6 與值77 ^之差(7T 頓)加到在操作流程400的操作426處確定的值W上公式(3) iV,-""-r + 圖5例示應答器模塊118中可變巡迴長度調度方法的一個可能的操作 流程500。在一些實現中,操作流程500例示的調度方法在應答器模塊118 每次收到枚舉請求時由應答器模塊執行。在其它實現中,操作流程500例 示的調度方法僅在指定的時間由應答器模塊118執行。也就是說,在一些 實現中,操作流程500例示的調度方法基於各種操作條件或用戶需求而被 "開啟"或"關閉"。在應答器模塊中執行操作流程500之前的某一時間,確定傳輸概率值 (》和/或初始定時巡迴持續時間值U械)。傳輸概率值(^)指示在定 時巡迴中將發出應答的概率。初始定時巡迴持續時間值U g)指定可變巡 回長度調度方法的第一定時巡迴的持續時間。可按經驗選擇-和f絲的值,或基於各種參數諸如最大網絡大小、網絡 傳輸速度等來計算。 一旦獲得^和f微的值,就將它們存儲在網絡中所有 應答器模塊118中,或者使^和f效始的值對它們是可訪問的。在許多實現中,在開始枚舉會話之前確定值^。在大多數實現中,值^ 在整個調度方法過程中保持不變。在一些實現中,值^具有第一值用於調度 方法中第一定時巡迴,並且基於諸如觀測到的過程負載等因素調整為第二 值用於調度方法中剩餘的定時巡迴。在一個實現中,如下確定f械的值。首先,確定最大節點值(M ),它表示網絡100中可訪問節點的最大數量的估計。隨後按照下面公式確定初始定時巡迴持續時間值公式(4) formula see original document page 18在操作510,枚舉請求由應答器模塊118接收。枚舉請求的接收開始或"觸發"應答器模塊118中的調度方法。在操作512,作出收到的枚舉請 求是否包含枚舉模塊116己經收到來自應答器模塊118的枚舉應答的指示(肯定確認)的判斷。例如,應答器模塊可能已經發送了枚舉應答以回答 在會話中較早時間發送的枚舉請求。如果在操作512確定收到的枚舉請求包含肯定確認,則操作流程500 結束。然而,如果在操作512確定收到的枚舉請求不包含肯定確認,則隨 後在操作514確定下一個定時巡迴的持續時間(r)。在第一次執行操作514 時,r等於f微。在操作流程中以後每次執行操作514時,基於觀測到的從 其它應答器模塊發送的應答確定r。例如,在一個實現中,根據以下公式計算r值使得枚舉應答將均勻地分布在下一個定時巡迴中公式(5) r = 0x7vrx/接著,定時巡迴操作516開始持續時間r的定時巡迴。與該定時巡迴開始基本同時,在操作518確定在該定時巡迴期間應答器模塊118是否要 發送枚舉應答。如上所述通過概率-作出該判斷。也就是說,使用一些機制 或算法通過概率-來選擇在當前巡迴期間是否將發送枚舉應答。在一個實現中,應答器具有其進行操作的r的最小值。這或者可以直 接以時間單位指定為r ,或者可以間接地指定為節點數A^"。在這樣一個 實現中,如果r小於rm(>7 (或者tv,小於a^ ),則將定時巡迴的持續時間設置為7^ 並將概率設置為i。如果在操作518確定在當前定時巡迴期間不發送枚舉應答,則操作流 程500進行至下述操作524。然而,如果在操作518確定在當前定時巡迴期 間要發送枚舉應答,則在操作520產生在該巡迴期間發送枚舉應答的精確 時間。在一個實現中,在巡迴期間發送枚舉應答的時間是在巡迴的持續時 間上隨機選擇的。在其它實現中,巡迴期間發送枚舉應答的時間可以用其 它方法選擇。跟隨操作520,在操作522處以在操作520期間確定的時間發 送枚舉應答。跟隨操作522,在操作524產生當前定時巡迴期間發送枚舉應答的所 有節點的計數(。。在一個實現中,應答器模塊通過監視網絡並對在當前定時巡迴期間在網絡內發送的枚舉應答數量進行計數來產生計數(r)。應當了解,儘管操作524示為在操作522之後發生,但在操作中,對當前定時巡迴期間在網絡中發送的枚舉應答的計數通常會貫穿全部或大多數定時 巡迴發生。接著,操作流程500進行至操作526,其中估計節點剩餘值(AO 。通 常,M是基於觀測到的從其它應答器模塊發送的應答來估計的。可以估計 的是,在當前巡迴開始處已經應答枚舉請求的應答器模塊的數量(W當薪) 近似為iV,-二。使用對A^^的這一估計,於是按以下公式估計節點剩餘值公式(6)乂-w r ^ — r接著,在操作528作出在當前定時巡迴期間是否已經收到枚舉請求的判斷。如果確定在當前定時巡迴期間已經收到請求,則操作流程返回至上述操作512。如果確定在當前定時巡迴期間還未收到請求,則操作流程進行至操作530,其中作出是否已經滿足不活動條件的判斷。不活動條件可用多種方法來選擇和/或確定。例如,在一個實現中,如 果自從枚舉請求的接收起已經經過給定時間則滿足不活動條件。如果在操作530確定已經滿足不活動條件,則操作流程結束。然而,如果在操作530 確定不活動條件還未滿足的判斷,則操作流程返回至前述操作514。如前所述,操作流程500將在收到包含肯定確認的枚舉應答(操作512) 或在不活動條件已經滿足(操作530)的情況下結束。另外,在一些實現中, 在操作流程中收到枚舉請求的任何點,都可作出該請求是否包含肯定確認 的判斷。如果確定收到的請求不包含肯定確認,則操作流程繼續。例如, 如果在操作516之後但在操作518之前收到不包含肯定確認的請求,則操 作流程將繼續至操作518。如果確定收到的請求包含肯定確認,則操作流程結束o在上述各種定時方法中,應答器模塊118 —般在每次收到枚舉請求時 發送枚舉應答。同樣如上所述,在各種實現中,應答器模塊一般將監視網20絡100並對在給定時間段內發送的枚舉應答的數量進行計數。該計數隨後 用於估計已經對枚舉請求進行應答的應答器模塊數量(W)。然而,在一 些實現中,應答器模塊可通過以給定概率Z作為整體(廣播)將應答發送 到網絡並且以(l-Z)的概率發送直接應答(單播)至枚舉模塊116,來減 少在網絡上增加的負載。在這樣的實現中,仍有可能通過將觀測到的應答 數量除以Z來估計W。圖6例示計算機系統600形式的示例網絡節點110。在其最基本配置 中,計算系統600包括至少一個處理單元602和存儲器604。取決於計算設 備的精確配置和類型,存儲器604可以是易失性(如RAM)、非易失性(諸 如ROM、快閃記憶體等)或兩者的結合。該最基本配置在圖6中由虛線606來例 示。另外,計算機系統600還可具有其它特徵/功能性。例如,設備600還 可包含其它存儲(可移動和/或不可移動),其中包括但非限制磁或光碟或 帶。這樣的其它存儲在圖6中例示為可移動存儲608和不可移動存儲610。計算機系統600還可包含允許該設備與其它設備通信的通信連接612。 計算機系統600還具有諸如鍵盤、滑鼠、筆、語音輸入設備、觸摸輸入設 備等輸入設備614。輸出設備616諸如顯示器、揚聲器、印表機等也可包括 在計算機系統600中。所有這些設備在本領域是眾知的並且不必在此詳細 討論。在示例性實現中,枚舉器模塊、應答器模塊以及其它模塊可由存儲在 存儲器604和/或存儲設備608與610中並由處理單元602處理的指令來具 體化。會話狀態表和記錄、發現狀態、確認、枚舉請求、枚舉應答以及其 它數據可存儲在存儲器404和/或存儲設備608與610中。圖7例示其中在存在多個節點枚舉器的情況下實現網絡節點枚舉的示 例性計算機網絡700。計算機網絡700僅是示例性的,並且應當理解,可在 存在多個節點枚舉器的情況下使用其它網絡配置、協議和操作。計算機網 絡700包括通過網絡雲712互連的一定數量(AO的節點710。變量7V用於 表示單個節點對網絡上可訪問節點數量的估計。不同的節點可對該數量有 不同的估計,但各單獨估計通常在值上相近。在圖7中,使用任意估計iV。 節點710與網絡雲712之間的鋸齒線(諸如線708)表示節點710在網絡700中是可訪問的(即"在線")。如圖所示,節點(1) 720、節點(2) 722以及節點(3) 724包括枚舉 器模塊716,而節點(4) 726、節點(5) 728、節點(6) 730、節點(7) 732、節點(N) 734包括應答器模塊718。應當理解,節點可包含應答器模 塊和枚舉器模塊兩者。參考圖7,假設節點(1) 720、節點(2) 722和節 點(3) 724還包括應答器模塊(未示出,但也可稱為應答器模塊718)。 這些模塊與參考圖1討論的那些模塊相似,儘管在圖7中例示的模塊被明 確描述為支持來自多個節點的並發枚舉操作。在多個枚舉器的網絡中,任何枚舉器可在任何時間開始,包括在零、 一或多個其它枚舉器已經活動的時候開始。另外,網絡可在時間上被分割 (諸如由於網絡內的硬體故障)並在多個枚舉器活動時重新連接,引起相 互可見的活動節點數量很大的即時變化。在一個實現中,每一枚舉模塊716可通過網絡雲712發送枚舉請求並 且處理來自多個節點710的枚舉應答。在一個實現中,枚舉請求可包括但 非限於進行請求的枚舉器的標識符以及標識(即確認)先前已經對枚舉請 求進行應答的節點710的確認信息。在一個示例中,枚舉請求包括枚舉器 標識符("eid")以及順序標識符("xid"),其中順序標識符是由枚舉 器提供的,以區別由該枚舉器發起的各個枚舉會話。枚舉器標識符可以是 允許應答器模塊718區別不同枚舉器的任何標識符,諸如IP位址、MAC 地址或其它節點或模塊標識符。在一個實現中,順序標識符區別一個特定 枚舉器的不同枚舉會話,允許應答器模塊檢測何時枚舉器重新開始其枚舉 會話。枚舉請求的其它示例性特性參考圖1討論。 一旦收到枚舉應答,枚 舉模塊716存儲在應答中提供的信息以供處理或稍後檢索,諸如參考圖1 所討論的。對於應答器模塊718來說,它生成對一或多個枚舉模塊716的枚舉請 求的應答並且處理來自各種枚舉器模塊716的確認。在一個實現中,每一 應答器模塊718維護每一進行請求的枚舉器的會話狀態和進行應答的節點 的獨立發現狀態。當應答器模塊718收到枚舉請求時,應答器模塊718檢 查該枚舉請求並且確定與該請求相關聯的枚舉器標識符和順序標識符。應答器模塊718隨後更新關聯於枚舉器標識符的會話狀態並且在適當的時候 更新進行應答的節點的發現狀態。進行應答的節點發出的應答受發現狀態 控制,而發現狀態則依賴於與每一進行枚舉的節點相關聯的會話狀態。圖8例示兩部分簡化的狀態轉換圖800,它例示應答器模塊可在網絡 枚舉期間轉換通過的示例狀態。在一個實現中,每一應答器模塊為觀測到的每一進行請求的枚舉器維護一個會話狀態(見會話狀態圖802)。例如,會話狀態可作為具有各個會話狀態記錄的會話狀態表(或者更一般的具有 會話狀態數據存儲,無論是表格式還是不是表形式的)來維護,其中每一 記錄與枚舉器標識符、順序標識符和會話狀態值有關。在一個實現中,會話狀態記錄還可包括與進行請求的枚舉器相關聯的活動時間值和/或重新傳 輸計數器。在一替換實現中,單一重新傳輸計數器是由應答器模塊而不是由每一枚舉器的模塊來維護的。示例性會話狀態可包括LISTENING (監 聽)、PENDING (待決)和DONE (完成)。另一可能的會話狀態值可包 括IDLE (空閒)(見下)。同樣,每一應答器模塊維護髮現狀態(見發現 狀態圖804)。在一個實現中,可維護包含兩個發現狀態值的發現狀態IDLE (空閒)和RESPONDING (應答)。活動時間值(也稱為刷新時間值)表示相關聯的枚舉器最後發出枚舉 請求的時間。應答器使用活動時間值來檢測空閒枚舉器(例如停止發送枚 舉請求但還未確認應答器的枚舉器),跟蹤活動枚舉器(例如,以防止將 冗長的枚舉視為若干不同的枚舉),以及檢測完成的枚舉(例如,如果枚 舉器不指示完成或者諸如由於包丟失應答器沒有觀測到確認)。如果檢測 到空閒枚舉器或完成的枚舉,則應答器模塊更新會話狀態,諸如通過從表 中刪除空閒枚舉器的會話狀態記錄,通過清除空閒枚舉器的會話狀態記錄, 將空閒枚舉器的會話狀態設置為IDLE (空閒)狀態,等等。圖8還示出LISTENING會話狀態806,它指示應答器模塊正在監聽枚 舉請求的虛態。會話狀態圖802指示枚舉請求的接收同時會話狀態為 LISTENING使會話狀態轉換至與進行請求的枚舉器(例如請求2)相關聯 的PENDING狀態808。如此,LISTENING會話狀態806看上去可能分支 至多個會話狀態,每一個對應檢測到的一個進行請求的枚舉器(圖8示出£23個枚舉器的會話狀態)。新的枚舉器可在任何時間進入枚舉過程,引起自LISTENING會話狀態806的新分支。在一些實現中,例如,分支可指示 在會話狀態表中為新檢測到的枚舉器創建新會話狀態記錄,或者用新信息 更新有關先前檢測到枚舉器的現有會話狀態記錄。同樣,最近觀測到的枚 舉器可在任何時間放棄枚舉過程。 一或多個枚舉器的這些進入與退出可導 致參與單一枚舉過程的枚舉器的極為動態的集合。還應理解,圖8例示的狀態轉換圖僅是示例性的並且還可以使用其它狀態和轉換。當應答器節點收到枚舉請求時,該節點的應答器模塊根據枚舉請求確 定枚舉器標識符和順序標識符。取決於會話和發現狀態,應答器模塊可用不同方法來應答關於會話狀態,如果枚舉器標識符對於應答器模塊是新的(例如沒有 相關聯的會話狀態記錄存在),應答器模塊在會話狀態表中創建該枚舉器 標識符的會話狀態記錄,將來自枚舉請求的順序標識符存儲到會話狀態表中,以及在會話狀態表中將會話狀態值設置為PENDING並且將活動時間 值設置為在會話狀態表中一確定值。應答器模塊還將重新傳輸計數更新為 重新傳輸閾值並且能夠設置BEGUN (已開始)標誌。BEGUN標誌可以在 巡迴結束時檢測以便如下所述觸發對節點剩餘估計Nr的某些細化用於下一 個巡迴。如果枚舉器標識符對於應答器模塊不是新的,則應答器模塊讀取對應 於枚舉請求中枚舉器標識符的現有會話狀態,並且將會話記錄中的順序標 識符與枚舉請求中的順序標識符相比較。如果它們相符並且枚舉器還未確 認枚舉請求中進行應答的節點,則更新活動時間(例如更新為當前時間)。 如果順序標識符不匹配,則刪除現有的會話狀態記錄並且用如在前面的段 落中所述地構造的新會話狀態記錄來代替(或者可替換地,更新以提供相 同的初始狀態)。如果順序標識符匹配且枚舉器正在確認枚舉請求中進行 應答的節點,則將關聯於該枚舉器的會話狀態設置為DONE狀態810。應當理解,應答器模塊為每一進行請求的枚舉器保存會話狀態。多個 會話狀態的效果部分地由發現狀態來管理。如果應答器模塊的發現狀態當 前處於IDLE狀態812並且從任何應答器模塊收到枚舉請求,則應答器模塊轉換至RESPONDING狀態814。在RESPONDING狀態814中時,應答器模塊周期性地發送可由一或多個枚舉器接收和確認的枚舉應答。在一個實 現中,應答器模塊將發送枚舉應答直至已經發送了確定數量的應答(例如 四個應答的重新傳輸閾值)為止或者直至所有當前的PENDING枚舉器己 經確認收到來自應答節點的枚舉應答(即所有會話狀態已經轉換至DONE 狀態810)為止。如果任一這些條件發生,則發現狀態返回至IDLE狀態812。 應當理解,管理涉及所確定的重新傳輸閾值的重新傳輸的重新傳輸計 數器可在從新枚舉器收到枚舉請求時被更新。如此,如果應答器的重新傳 輸閾值為4並且在從新枚舉器收到枚舉請求之前己經應答兩次,則重新傳 輸計數器可復位以引起四次後續的枚舉應答。圖9例示管理枚舉應答的示例性操作900。通常,應答器監聽枚舉請 求,其中包含枚舉器標識符(即,標識作出請求的枚舉器)和順序標識符 (例如,標識該枚舉器指定的枚舉會話)。在一些枚舉請求中,枚舉器還 可確認它己收到並接受其枚舉應答的那些應答器。接收操作卯2和916表 示獨立且可能的用於接收枚舉請求和確認的並發操作,儘管應當理解,因 為可在枚舉請求中接收確認,所以這些接收操作902和916在一些實現中可以是單個操作。接收操作卯2接收來自枚舉器的枚舉請求。會話狀態操作904從枚舉 請求得到枚舉器標識符和順序標識符並且創建或更新關聯於該枚舉器標識 符的會話狀態。例如,如果應答器從枚舉器接收具有順序標識符為"2"的枚舉請求, 則會話狀態操作904確定是否己經為該枚舉器記錄了會話狀態(例如在會 話狀態表中)。如果是並且如果關聯於枚舉器會話狀態的順序標識符等於 "2",則更新針對該枚舉器記錄的會話狀態(例如更新活動時間)。然而, 如果關聯於枚舉器的現有會話狀態記錄的順序標識符不等於"2",則會話 狀態記錄被清除且重新創建(或僅更新)以反映新的順序標識符、更新的 活動時間和PENDING會話狀態,並且可以設置BEGUN標誌。而且,如果應答器為枚舉器保存的會話狀態記錄尚不存在,則以順序 標識符"2"、更新的活動時間和PENDING會話狀態創建會話狀態記錄,並可設置BEGUN標誌。應當理解,接收操作902和會話狀態操作904可 在同一會話中或在不同枚舉會話中和/或對於不同的枚舉器並發地多次發 生。此外,在一或多個枚舉請求正由操作902和904處理時,發現狀態也 正在維護。如果發現狀態處於IDLE狀態,則第一請求操作906響應於枚舉 請求的接收將由應答器維護的發現狀態設置為RESPONDING。該狀態轉換 指示收到的枚舉請求是一或多個並發枚舉會話的集合中收到的第一枚舉請 求。應答操作908發送枚舉應答(例如,按照在此描述的基於周期性地更 新的節點剩餘估計的應答調度)同時發現狀態處於RESPONDING狀態。枚 舉應答可包含應答器標識符等,以便通知任何進行監聽枚舉節點哪些應答 器正在指示其在網絡中是活動的。接收操作916接收進行請求的枚舉器己經收到並接受應答器的枚舉應 答的確認(例如,連同枚舉請求或另外的方式)。因此,會話狀態操作918 找出關聯於進行請求的枚舉器的會話狀態記錄並且將該枚舉器的會話狀態 設置為DONE。判決操作910確定在各種會話狀態超時和復位的條件下,己從其收到 枚舉請求的所有枚舉器是否已經確認應答器(例如,由應答器保存的所有會話狀態記錄指示DONE會話狀態)。如果否,發現狀態保持在 RESPONDING狀態並且處理返回至應答操作908,經歷暫停操作912,該 操作將節點的應答(均勻地或非均勻地)間隔開。否則,如果所有枚舉器 已經確認應答器,則發現狀態操作914將發現狀態設置為IDLE,直到收到 新的枚舉請求。在一個操作中,暫停操作912更新節點剩餘估計並相應地調度可能的 枚舉應答,例如按照確定的延遲。在一個多枚舉器實現中,示例節點剩餘 估計可按如下公式重新計算使用該節點剩餘估計,可計算新的巡迴持續時間以在傳輸應答時施加該確定的延遲。可替換地,可計算進行應答的概率,這也在傳輸應答時引 入確定的延遲。也可使用其它確定的延遲。另外,在一個實現中,如果BEGUN標誌被設置,則可調整估計以減 少活動節點產生大量應答的概率(例如,象是在存在大量靜止的應答器(例如,處於IDLE或DONE狀態)從一新枚舉器收到枚舉請求時)。例如, 如果BEGUN標誌被設置(指示收到新枚舉器的枚舉請求),則增加節點 剩餘估計M用於隨後的巡迴。在一個實現中,如果節點剩餘估計M小於 A^i的一半,則加倍節點剩餘估計A^用於下一巡迴。如果7V,大於A^^—半 但小於A^w則將W設置為A^^。如果A^大於A^^,則M保持不變。該 算法表示增加節點剩餘估計以減少大量靜止應答器同時對一新枚舉請求進 行應答的影響的示例方法,儘管也可考慮其它算法。如此,靜止應答器將 在下一巡迴具有較大的估計,從而減緩其應答並且允許現有的枚舉會話在 新的會話之前完成。在一個實現中,操作908、 910和912的處理受限於確定的重新傳輸閾 值(例如在一個實現中為4次應答)。如果在所有枚舉器還沒有確認應答 器的情況下應答器的重新傳輸計數器滿足重新傳輸閾值,則發現狀態操作 914仍然退出並將發現狀態設置為IDLE。應當理解,響應於收到來自新枚 舉器的枚舉請求或者在新的枚舉會話(例如順序標識符不匹配)中收到枚 舉請求,則可復位重新傳輸計數器。給定一種用於管理多個枚舉器的枚舉應答的所述方法,枚舉器邏輯也 可改變以改進系統。因為多個枚舉器正在對一或多個應答器進行請求,於 是存在這樣一種情況枚舉器可確定它可在不發出它自己的枚舉請求和確 認的情況下獲得它需要的枚舉應答,從而減少總的網絡負載。在一個實現中,每一枚舉器可觀測來自其它枚舉器的請求並且保存作 出請求的各枚舉器的計數Cs。有了該計數,每一枚舉器就能確定由每一個 這樣的枚舉器發送確認所導致的負載是否會大於由每一應答器發送滿足其 重新傳輸閾值(例如,4次應答)數量的應答所導致的負載。示例的秘密行 動(stealth)條件如下給出27應答負載<確認負載公式(8) wiV重新傳輸閾值〈CV^ + A^其中^表示可分組到單個包中的確認的數量。如果該秘密行動條件為真, 則枚舉器可進入"秘密行動"模式並且抑制發送後續的枚舉請求/確認包,至少直到該條件改變為止。如此,"秘密行動"枚舉器僅觀測和記錄來自 正在對來自其它枚舉器的枚舉請求進行應答的應答器的枚舉應答。秘密行 動枚舉器沒有通過發送其自己的枚舉請求和確認來增加網絡通信量。還應當理解,也可獨立於公式(8)的秘密行動條件或結合它來計算和使用其它秘 密行動條件,諸如基於目標負載的影響、基於固定的枚舉器閾值等的秘密 行動條件。枚舉器還可通過在一個叫做估計時間間隔(稱為"佐##/^/《腐") 的時間間隔上對包計數來評估網絡上的負載。該估計時間間隔可以與定時 巡迴持續時間變量^相同。可替換地,該估計時間間隔可表示枚舉器傳輸 枚舉請求或確認之間的時間。也可使用其它估計時間間隔,並且這些估計 時間間隔可以是可變的或固定的。例如,在一個實現中,估計時間間隔與巡迴時間間隔有關但隨著感興趣的枚舉器已知的枚舉器數量線性增加。如 果估計時間間隔最初與應答器使用的巡迴秒河河腐相同(例如,當C£ =1: 感興趣的枚舉器時),則估##河河腐隨著感興趣的枚舉器觀測其它枚舉器經時間計算為公式(9) 佐#^/7《^腐=(:£ .巡迴^河河腐其中巡迴^/《/^腐可以從定時巡迴持續時間變量^或r獲得。估計時間間隔可由枚舉用來管理枚舉請求。例如,在一個實現中,如 果枚舉器在當前枚舉會話中的一個完整的佐^好河/^腐內還未從任何新節點(即,先前未確認過的應答器節點)收到枚舉應答,且網絡上的枚舉負載低於目標網絡負載的50%,則枚舉器停止發出枚舉請求。枚舉負載可根據枚舉器在仿^好/w/^w期間觀測到的所有枚舉應答來確定。可以基於估 計時間間隔利用其它枚舉請求控制機制。圖10和11例示管理枚舉應答的示例操作1000和1100。應當理解,參考圖10與11例示和描述的操作也可結合參考圖9例示和描述的操作一 起使用。應答器開始於IDLE會話狀態1002。接收操作1004從被標識的枚舉器 接收枚舉請求並且從該枚舉請求確定枚舉器標識符和順序標識符。枚舉請 求的接收引起應答器從IDLE會話狀態1002的轉換。判決操作1006確定被標識的枚舉器是否已經有了與應答器開始的會話狀態(例如,通過找出具 有與從枚舉請求中提取的枚舉器標識符相匹配的枚舉器標識符的會話狀態記錄)。如果是,則這意味著應答器之前已經收聽到該枚舉器,並且另一 個判決操作1008確定現有會話狀態是否具有與從枚舉請求中提取的順序標 識符相匹配的順序標識符。如果否,則廢棄操作1012廢棄枚舉器的現有會 話狀態(例如,通過刪除它,清除它,設置廢棄標誌等等)。在廢棄操作 1012之後,或者如果判決操作1006沒有檢測到被標識枚舉器的會話狀態, 則創建操作1010用PENDING狀態創建新的會話狀態記錄,或者將被廢棄 的會話狀態記錄設置為PENDING並更新該會話狀態記錄中的順序標識符。如果判決操作1008確定順序標識符匹配,則意味著枚舉器仍在與先前 由應答器記錄的相同的會話中,並且處理進行至判決操作1014,它測試應 答器是否己經由枚舉器確認。如果是,則將會話狀態設置為DONE並且處 理進行至判決操作1018。如果否,處理直接進行至判決操作1018。判決操作1018確定PENDING會話狀態對於應答器是否仍存在。如果 否,則處理進行至IDLE狀態1002。否則處理通過連接符A進行至圖11 中的RESPONDING狀態1102。在RESPONDING狀態1102中,應答器等待包的接收或者定時器的期 滿。如果收到包,則判決操作1106確定收到包的類型。如果包是枚舉請求 包,則處理通過連接符C進行至圖10的接收操作1004。如果包是來自另 一應答器的應答包,則增加應答器計數(假設該單獨的應答器還未被計數) 並且處理進行至RESPONDING狀態1102。如果包是從枚舉器收到的復位包,則判決操作ni4確定該枚舉器的會話狀態是否已經存在。如果是,則在廢棄操作1116中廢棄會話狀態,並且處理通過連接符B進行至圖10中 的判決操作1018。否則,處理進行至RESPONDING狀態1102。在RESPONDING狀態1102中,如果RESPONDING檢測到定時器期 滿,則判決操作1104確定哪一個定時器期滿。如果定時器是巡迴持續時間 定時器,則更新操作U08重新估計節點剩餘估計並且復位巡迴定時器和/ 或相應地復位應答概率。可替換地,如果定時器是發送定時器,應答操作 1110發送枚舉應答。如果滿足重新傳輸閾值,清除操作1118減少重新傳輸 計數器並將一或多個會話狀態設置為DONE狀態。處理隨後通過連接符B 進行至圖10中的判決操作1018。儘管在附圖中例示且在以上的詳細說明中描述了系統和方法的一些特 定實現,但將會理解,示出和描述的系統和方法不於所述的特定實現,而 是能夠在不脫離所附權利要求書闡述和定義的精神的情況作出眾多的重新 配置、修改和替換。
權利要求
1.一種管理網絡節點對從計算機網絡中多個枚舉器收到的枚舉請求傳輸一或多個枚舉應答的方法,所述方法包括維護所述多個枚舉器中每一個的會話狀態;以及如果所述多個枚舉器的會話狀態指示所述多個枚舉器尚未確認所述網絡節點的前一枚舉應答,則發送所述一或多個枚舉應答。
2. 如權利要求l所述的方法,其特徵在於,所述維護操作包括 維護具有所述多個枚舉器中每一個的會話狀態記錄的會話狀態表。
3. 如權利要求2所述的方法,其特徵在於,所述會話狀態記錄包含由所 述多個枚舉器中相應的一個所提供的順序標識符。
4. 如權利要求2所述的方法,其特徵在於,所述會話狀態記錄包含活動 時間值,它指示所述多個枚舉器中相應的一個最後請求枚舉應答的時間。
5. 如權利要求l所述的方法,其特徵在於,還包括維護重新傳輸計數器以相關於重新傳輸闊值限制一或多個枚舉應答;以及 如果所述重新傳輸計數器滿足所述重新傳輸閾值,則終止所述枚舉應答的 傳輸。
6. 如權利要求l所述的方法,其特徵在於,所述維護操作包括 從所述多個枚舉器之一接收枚舉請求;以及響應於所述枚舉請求的接收,使關聯於所述枚舉器的會話狀態轉換至新狀 態,其中所述網絡節點在所述新狀態中等待來自所述枚舉器的確認。
7. 如權利要求l所述的方法,其特徵在於,所述維護操作包括 從所述多個枚舉器之一接收所述一或多個枚舉應答的確認;以及 響應於對所述來自所述枚舉器的確認的接收,使所述關聯於所述枚舉器的會話狀態轉換至新狀態,其中所述新狀態指示所述網絡節點已經從所述枚舉器 收到確認。
8. 如權利要求l所述的方法,其特徵在於,還包括維護髮現狀態,它指示所述多個枚舉器的會話狀態是否指示了不再有枚舉 應答要被發送。
9. 如權利要求l所述的方法,其特徵在於,還包括維護髮現狀態,它指示所述多個枚舉器是否已經確認所述網絡節點的前一 枚舉應答。
10. 如權利要求l所述的方法,其特徵在於,所述發送操作包括 發送所述一或多個枚舉應答,直至發送了閾值次數的枚舉應答為止。
11. 如權利要求l所述的方法,其特徵在於,所述發送操作包括 發送所述一或多個枚舉應答,其中每一枚舉應答的傳輸在時間上與另一枚舉應答的傳輸隔開確定的延遲。
12. 如權利要求11所述的方法,其特徵在於,所述延遲取決於對所述計 算機網絡中要應答枚舉請求的剩餘活動網絡節點數量的估計。
13. 如權利要求l所述的方法,其特徵在於,還包括基於對所述計算機網絡中要應答枚舉請求的剩餘活動網絡節點數量的估 計,調度所述一或多個枚舉請求的傳輸。
14. 如權利要求13所述的方法,其特徵在於,在接收來自新枚舉器的枚 舉請求之後的巡迴中增加所述估計。
15. —種具有用於執行實現如權利要求1所述方法的計算機過程的計算機 可執行指令的計算機可讀介質。
16. —種管理計算機網絡中網絡節點傳輸枚舉請求的方法,所述方法包括檢測所述計算機網絡中作出枚舉請求的活動枚舉器的數量;將估計時間間隔作為所述活動枚舉器數量的函數進行計算;將所述計算機網絡中的枚舉負載作為在所述估計的時間間隔期間觀測到 的所有枚舉應答的函數進行計算;以及除非在所述估計時間間隔期間所述網絡節點沒有觀測到先前未確認的枚 舉應答並且所述枚舉負載小於所述計算機網絡中目標負載的預定分數閾值,否 則就發送枚舉請求。
17. —種具有用於執行如權利要求16所述方法的計算機過程的計算機可 執行指令的計算機可讀介質。
18. —種管理對從計算機網絡中多個枚舉器收到的枚舉請求的一或多個枚舉應答的網絡節點,所述網絡節點包括會話狀態數據存儲,記錄所述多個枚舉器中每一個的會話狀態;以及 應答器模塊,如果所述多個枚舉器的會話狀態指示所述多個枚舉器尚未確認所述網絡節點的前一枚舉應答,則發送所述一或多個枚舉器。
19. 如權利要求18所述的網絡節點,其特徵在於,還包括發現狀態數據存儲,記錄指示所述多個枚舉器是否已經確認所述網絡節點 的前一枚舉應答的發現狀態。
20. 如權利要求18所述的網絡節點,其特徵在於,每一枚舉應答的傳輸在時間上與另一枚舉應答的傳輸隔開確定的延遲。
全文摘要
一種網絡節點發現方法允許多個枚舉器並發地接受和解釋來自網絡上應答器節點的相同枚舉應答。如此,應答器節點不必為每一枚舉器發出單獨的應答。每一應答器維護髮現狀態和一或多個每枚舉器會話狀態以管理應答器何時應發送枚舉應答。因此,無論存在多少枚舉器,枚舉以目標網絡負載進行,並且通過能夠有效使用網絡容量而在短時間內完成。此外,枚舉器可確定它僅需要等待其它枚舉器請求的應答而不是請求這些應答,從而在存在許多並發進行枚舉的節點的情況下減少網絡通信量。
文檔編號H04L12/28GK101331715SQ200680047512
公開日2008年12月24日 申請日期2006年12月5日 優先權日2005年12月14日
發明者H·T·斯佛裡森, R·J·布萊克 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀