NDN-lite 命名數據網絡 -----第二章:對Interest和Data包的處理

NDN可以解決的問題

  1.IP地址耗盡的問題。
  2.內網穿透問題。
  3.移動性問題,因爲名字是固定不變的,不會隨着位置的移動發生變化。
  4.可擴展地址管理問題,這也使得傳感網絡成爲可能。

關於NDN的路由機制

  NDN的路由機制上保留了類似IP路由的轉發路由表(Forwarding Interest Base,FIB),增加了待處理表(Pending Interest Table,PIT)和數據包緩存(Content Store,CS)數據機構。
  NDN數據包是獨立的,與他從哪裏來以及要到哪裏去都沒有關係,傳輸過程中也不需要狀態信息。NDN路由器會將Interest和Data包都緩存一段時間,分別暫存在PIT和CS中,以便等待交互應答。當針對相同的Data的多個Interest到達時,會進行消重處理,記錄到達的接口(Face)然後存儲在PIT表對應行中,但不會繼續轉發新到的這個Interest,當Data到來的時候,路由器查找到匹配的PIT條目,然後將Data從表中列出的接口轉發回去,從而滿足多個請求的需要。然後PIT刪除相應的條目,將數據緩存到CS中。

NDN的通信策略

  NDN中的通信策略完全由請求方驅動,請求方向網絡廣播興趣包,以數據命名爲紐帶,通過Pull的方式來獲取數據包。消費者發送一個興趣包來請求一個數據包,收到這個興趣包的中間節點,如果本地沒有目標Data,將根據路由策略選擇性轉發到其鄰居,直到找到該數據的節點。在一個Interest包得到Data包前,興趣包每經過一跳都有可能得到匹配的數據包,不一定要走完路徑到達數據源的終點,從而實現了Hop-by-hop流的平衡。

NDN路由器和IP路由器的CS

  IP路由器不能重用該數據,而在NDN路由器中卻可以重用數據,因爲CS中的Data包的Name是不變的。

NDN中數據的交互

  在NDN網絡中,數據交互中的數據包粒度比較高,大多是傳輸單一的數據包,一般較大的傳輸數據對象(例如一個完整的視頻文件)都將被細分爲更小的數據塊。(細化程度越高,粒度越低;細化程度越低,粒度越高)

NDN中的傳輸

  NDN網絡中沒有一個單獨的傳輸層,它將傳輸協議包含進了應用程序、支持庫以及轉發平臺的策略組件之中。應用程序進程的複用,解複用是在NDN層直接使用的名稱,數據的完整性和可靠性是應用程序直接處理的,可靠性的檢查、數據簽名和信任決定都在這裏進行。

對Interest包的處理

  (1):首先根據Content Name到CS中查詢,這裏採用的是最長公共前綴匹配算法,如果有的話,則直接返回對應的Data包,然後丟棄掉Interest包。
  (2):如果沒有,則先找PIT表,如果有匹配的話,則說明該路由節點此前已經接受過這樣的一個Interest包,然後只保留傳入Interest包的接口值,加入到PIT對應項的接口列表中,然後直接丟棄掉這個Interest。當有相應的Data包傳回的時候,將該Data包返回到對應的列口接表中,並將該包存儲到CS中。
  (3):如果在CS和PIT中都沒有的話,去找FIB。如果FIB中有的話,則說明是第一次接收到這個請求,同時清楚應該該向哪些節點去請求。這時根據FIB中對應的Name的接口列表(需排除掉進來時候的接口),向其他節點轉發該興趣包,然後再在PIT中加一項新的條目表明這樣的Interest包正在請求數據。
  (4):若上述三個步驟都沒有得到相應的匹配結果,表明該節點沒有相應的轉發規則,需要直接將這個Interest包丟棄。

對Data包的處理

  當路由器接收到Data包的時候,這個Data包會沿着剛纔Interest包經過的路徑返回,當路由器接收到Data包的時候,它會根據這個包的名字在PIT表中查詢匹配的記錄,將這個包從所有匹配的接口發出,PIT表中匹配的數據都將被刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章