2010-08-01 41 views
5

什麼是無線節點發現的最佳算法。假設你有一個大的無線或藍牙網絡,每個節點都有自己的發現範圍。無線節點發現

什麼是使任何節點發現完整圖拓撲的最佳算法,即任何節點都知道圖中所有其他節點?

回答

1

如果一個節點在其範圍內發現一個新節點,它將向該範圍內的每個其他節點廣播一條消息,告知該新節點的存在。

如果一個節點收到這些消息之一,如果它以前沒有看到過該消息,它會將它自己的標識符附加到消息中,然後將新消息廣播給它的範圍內的所有其他節點就好像它在說「如果你需要告訴這個人,請先告訴我,因爲我覺得我比他更接近他」)。它還必須存儲它接收消息的節點的ID,以便它可以由新人的節點ID檢索。

如果節點需要發送消息到另一個節點,它會使用收件人的節點ID在其本地列表中查找鄰居id。然後它將消息發送給最好的鄰居。該鄰居節點現在負責使用它自己的本地列表將消息發送給收件人。如果以這種方式找不到任何鄰居,它會將消息發送給其範圍內的每個節點,並希望獲得最佳效果。

每個節點保存的本地列表指示向給定收件人發送消息的良好「第一步」。第一步是好的,因爲它們來自節點鄰居的第一個,聽說過某個新手。該列表不會包含許多不好的第一步,因爲如果節點之前已經看到了該消息,節點就不會重新傳播「新人」的消息,而且只有當消息通過更快的路由到達時纔會發生。

希望一切都合理,我想用Python編寫代碼,但我沒有時間。請注意,該系統可能需要一些引導程序。