TOPDISC算法是基于最小支配理論的經典算法,它首先由初始節(jié)點發(fā)出拓撲發(fā)現(xiàn)請求,通過廣播該消息來確定網絡中的骨干節(jié)點,并結合這些骨干節(jié)點的鄰居節(jié)點的信息形成網絡拓撲的近似拓撲。在這個近似拓撲形成之后,為了減少算法本身引起的網絡通信量,只有骨干節(jié)點才對初始節(jié)點的拓撲發(fā)現(xiàn)請求作出相應的響應。
為了確定網絡中的骨干節(jié)點,光電開關的TOPDISC算法采用的是貪婪算法。具體地,TOPDISC提出了兩種類似的方法:三色法和四色法。
在三色算法中,節(jié)點可以處于三種不同狀態(tài),分別用白色、黑色、灰色三種顏色表示:
1、白色,尚未被發(fā)現(xiàn)的節(jié)點,或者說是沒有接收到任何拓撲發(fā)現(xiàn)請求的節(jié)點;
2、黑色,骨干節(jié)點(簇頭節(jié)點),負責相應拓撲發(fā)現(xiàn)請求;
3、灰色,普通節(jié)點,至少被一個標記為黑色的節(jié)點覆蓋,即黑色節(jié)點的鄰居節(jié)點。
在初始階段,光電開關傳感器的所有節(jié)點都被標記為白色,算法由一個初始節(jié)點發(fā)起,算法結束后所有節(jié)點都將被標記為黑色或者灰色(前提假設整個網絡拓撲是連通的)。光電開關的TOPDISC采用兩種啟發(fā)方法來使得每個新的黑色節(jié)點都盡可能多地覆蓋還沒有被覆蓋的節(jié)點:一種是節(jié)點顏色標記方法:另一種是節(jié)點轉發(fā)拓撲發(fā)現(xiàn)請求時將會故意延時一段時間,延時時間的長度反比于該節(jié)點與發(fā)送拓撲發(fā)現(xiàn)請求到該節(jié)點的節(jié)瞇之間的距離。三色法的詳細過程描述如下:
1、初始節(jié)點被標注記為黑色,并向網絡廣播拓撲發(fā)現(xiàn)請求;
2、當白色節(jié)瞇收到來自黑色節(jié)點的拓撲發(fā)現(xiàn)請求時,將被標記為灰色,并在延時時間TWB后繼續(xù)廣播拓撲發(fā)現(xiàn)請求,TWB反比于它與黑色節(jié)點之間的距離;
3、當白色節(jié)點收到來自灰色節(jié)點的拓撲發(fā)現(xiàn)請求時,將在等待時間TWC后標記為黑色,但如果在等待周期又收到來自黑色節(jié)點的拓撲發(fā)現(xiàn)請求則先優(yōu)先標記為灰色;同樣,等待時間TWG反比于該白色節(jié)點與灰色節(jié)點之間的距離。不管節(jié)點被標記為灰色還是黑色,都將在完成顏色標記后繼續(xù)廣播拓撲發(fā)現(xiàn)請求;
4、所有已被標記為黑色或者灰色的節(jié)點,都將忽略其他節(jié)點的拓撲發(fā)現(xiàn)請求。
為了使得每個新的黑色節(jié)點都盡可能多地覆蓋還沒有被覆蓋的節(jié)點,光電開關傳感器的TOPDISC采用了反比于節(jié)點之間距離的轉發(fā)延時機制。其合理懷簡單解釋為:理想情況下,節(jié)點的覆蓋面積和局部的節(jié)點部署密度。對于一個正在轉發(fā)拓撲發(fā)現(xiàn)請求的節(jié)點,它所能覆蓋的新的節(jié)點(還沒有被任何節(jié)點覆蓋的)則正比于它的覆蓋面積與已經覆蓋的面積之差。 |