所以我必須模擬一個課程項目的原始泛洪算法,我想澄清和確認一些想法,因爲它似乎很難找到我想要的互聯網(所以我必須做錯了什麼)...網絡上的洪泛算法
無論如何,據我所知,洪泛算法是當一個節點想要發送一個數據包序列到目的地發送每個數據包到每個連接的節點。然後,這些接收節點通過將收到的數據包的副本發送給所有連接的節點來重複該過程,除了發送原始數據包的節點。依此類推,直到包到達目的地。所以基本上這個算法確保數據包在達到目的地的同時氾濫網絡;從而得名。 所以這是我澄清與我的教授:
1)我假設生成的數據包將有一個跳躍計數器,它的價值將是爲每個數據包一樣,會減少對每一個訪問節點時它達到0,數據包將被丟棄。我還假定價值取決於網絡規模,他同意但沒有說明網絡的規模如何影響它。你把它的直徑?有人能幫我一下嗎? 2)一個節點保存它們自己收到的數據包的副本(爲什麼?如果他們所在的節點沒有發送確認迴應,重新發送它?),並且當跳轉時跳過網絡計數器達到0,但是當一個數據包到達一個已經擁有它的副本的節點會發生什麼?我假設節點放棄它,因爲它有一個副本,邏輯上已經將它發送給它的所有鄰居,但我不確定。有人可以澄清這一點嗎?
3)所有節點都有最大的數據包容量。那麼當一個節點達到最大容量「停止」工作並且不接受更多數據包或以FIFO形式丟棄時?我假設第一個,因爲該項目的目標之一是估計哪些節點將首先被洪水淹沒。但是究竟發生了什麼?連接到它的節點一直在發送數據包,但沒有得到確認,因爲它丟棄了它或發送了一個沒有收到更多數據包的信號,並且我不知道將其路由表中的成本更改爲一個值這意味着沒有連接/或無限的成本,所以他們不再發送任何東西。
4)另外我忘了問,生成數據包的源節點呢?它是否也保留副本?我認爲它確實存在,但是它不會是最先被洪水淹沒的最可能的節點,因爲它會在生成時刻保留每個數據包的副本。我可能在想這...
對於2):如果數據包已經複製到一個節點上,並且它接收到相同的數據包,他必須丟棄它。如果沒有,這是一個無限循環,你永遠不會離開這裏。 (我遵循了與我想象的相同的邏輯反思)。 (這不是非常有建設性的,但它確認了你最初的想法) – Depado
@Depado:不能有無限循環,因爲數據包的跳數是有限的。它確實緩解了來自網絡的壓力。 –