NDN學習(1)

這是我在網上搜的一些資料,各家都有,有自己翻譯的,有粘貼的別人的。

Named DataNamed Networking-命名數據網絡

命名數據網絡是美國國家科學基金會資助的未來互聯網體系結構的五個研究項目之一。NDN起源於一個早期項目—CCN(Content-Centric Networking),最開始NDN是ICN的一個分支/實例,

研究NDN的目的?

當前互聯網架構和它的使用是不匹配的。具體來說:現在我們所構建和使用的互聯網應用程序和服務是建立在一個非常強大成熟的架構之上,但是這個架構不是爲了這些程序和服務(電商、數字媒體、社交網絡、智能手機應用,導致Internet主要被用作分配網絡(distribution network))設計的。那我們可以設計一個支持這些程序和服務的架構。如果直接命名信息,可能會更加快捷地傳輸數據包。

 

是什麼因素驅動着人們在這一領域研發投資?

  1. 研究人員不是唯一一個知道網絡怎麼被使用的
  2. 一直未解決的或者是沒有很愉快解決的問題需要用另一種方法去解決,截然一新的架構
  3. 擔心落後於別人

NDN和Ip的基本區別

  • 命名方面:ip地址和數據名字
  • 每個數據包都有簽名
  • Ip發送數據包到目標地址,ndn用興趣包來獲取數據包(NDN uses Interest packets to fetch Data packets)
  • IP具有無狀態數據平面(stateless data plane.),NDN具有有狀態數據平面(stateful data plane )。連同轉發策略,有狀態數據平面爲NDN網絡提供了多種所需功能

NDN和IP的共性

  • IP層和NDN層都屬於細腰層( the narrow waist)

"細腰"是一個比喻說法

網絡層只有IP這一個協議,所以很細,而上面的運輸層應用層這些層的協議包羅萬象,僅僅只能通過ip與下層通訊,下面的物理層也只能通過網絡層與上邊進行通訊。

NDN與之很像,中間只有content chunks內容塊。

 

2、都是要發送數據包的

3、都遵從端到端的原則

4、都用他們各自的命名空間進行數據傳輸,ip使用ip地址在ip節點之間傳遞,NDN使用應用程序名稱空間在NDN節點之間傳遞數據報。(NDN uses the application name space to deliver datagrams between NDN nodes

 

關於命名:

NDN Project’s Executive Summary::NDN保留了因特網的沙漏結構,但是進一步發展了“the thin waist”來允許創建完全通用的分銷網絡。這種發展的核心要素是要消除數據包只能通過命名通信斷點的限制“,就網絡而言,NDN數據包的名字可以是任意東西,像端點、電影、書籍、命令等等。

現在的因特網已經擁有一個域名系統-DNS和完善的名稱空間分配過程和管理機構,NDN可以利用現有的名稱空間進行數據傳輸。

怎樣確保命名的獨一無二:只有用於全局檢索數據時,我們才需要保證命名的全局唯一性。個別的數據名稱在各種特定範圍和上下文中是有意義的,如何在預期的範圍內獲取數據是一個新的研究領域。

 

架構概述

1封包類型

在NDN的通訊中是由接收端(例如:資料消費者)透過兩種不同類型的封包來溝通,分別是興趣封包和資料封包。

興趣封包:消費者將希望得到資料的名字放入興趣封包中,並在網絡上傳送。路由器會依據該名字將興趣封包轉發給資料產生者。

資料封包:當興趣封包抵達某一節點,而該節點有相符的資料時,該節點就會將其資料封包以相反路徑回傳給請求者,其中,資料封包內除了有名字和內容外,並在名字與內容外加上資料產生者的密鑰當作簽署資訊。

2路由器架構

爲了實現興趣封包和資料封包的轉發功能,每個NDN路由器有三個數據結構和一個轉發策略。

待定興趣表:儲存了路由器轉發但還沒有被滿足的興趣封包,每個PIT條目記錄了興趣封包中攜帶的資料名,以及封包進來和出去的界面。

*PIT(Pending Interest Table)待定請求表

https://img-blog.csdnimg.cn/20181118193348156.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NjYyMjc4,size_16,color_FFFFFF,t_70

轉發訊息表:FIB本身由名字前綴的路由協定填充,而且每個前綴可以有多個界面。

內容暫存:是用來暫存路由器收到的資料封包,因爲NDN資料封包的來源及轉發路徑是獨立的,它可以被暫存以滿足未來的興趣封包。

轉發策略模組:是一系列用來轉發封包的策略和規則。在特殊情況下可能會決定扔掉興趣封包,例如:當所有上游連結髮生擁塞或興趣封包被當作DoS攻擊的一部分。對於每個興趣封包,轉發策略是從FIB中取得最長的前綴相符的條目,並決定何時轉發興趣封包到何地。

當興趣封包到達時,NDN路由器會先查詢內容暫存中是否有符合的資料,如果有相符的資料的話,路由器會直接透過興趣封包傳來的界面回傳資料封包,否則路由器會在PIT中查詢興趣封包的名字,如果有相同的條目在PIT中的話,路由器會在該PIT的條目中簡單記錄興趣封包的來源界面,但如果在PIT中沒有相同的條目的話,路由器將會基於FIB中的訊息和路由器的轉發策略向資料生產者轉發興趣封包,當路由器收到很多來自下游節點中相同名字的興趣封包時,它只會向上遊的資料生產者轉發第一個興趣封包。

當資料封包到達時,NDN路由器會先查詢相符的PIT條目並向列在PIT條目所有的下游界面轉發資料,然後在PIT中移除該條目並將此資料暫存在內容暫存中,資料封包總是沿着興趣封包的相反路徑回傳,而且不會遺失封包。在每條連結中,一個興趣封包會返回一個資料封包,提供了流平衡的機制。爲了取得包含多個封包的大物件,興趣封包提供了一個類似TCP ACKs用來控制流量的角色:被資料消費者控制的細粒度的反饋迴路。

興趣封包和資料封包都不攜帶任何主機或界面位置,路由器是基於封包中攜帶的名字來轉發興趣封包給資料生產者,並基於興趣包在每個節點所建立的PIT狀態訊息向消費者轉發資料封包。興趣封包與資料封包交換的對稱性減少了hop-by-hop的控制迴路(不要與對稱路由或路由搞混),並消除了在資料傳輸中任何需要來源與目的節點的概念,不像IP的端到端的封包傳送方式。

NDN的路由器需要維護3個表:Content Store(CS)、Pending Interest Table(PIT)和Forwarding Information Base(FIB). 在NDN中,有兩個重要的角色,消費者(Consumer)和生產者(Producer),前者是發送興趣包(Interest Packets)的數據消費者,後者是提供數據包(Data Packets)的數據生產者。通信是有消費者通過發送興趣包來驅動的,通信轉發過程如下圖所示,用戶想要獲取數據時,首先發出一個興趣包(包含所需數據的名稱),路由器接收到這個包後,首先在CS中查找是否有與當前名稱匹配的內容,如果有,則直接將匹配的數據包返回給發起請求的節點;如果沒有,路由器會在PIT中記錄下當前名稱對應的興趣包是從哪個接口進入的,同時路由器在FIB表中查找與當前名稱匹配的記錄,以確定從哪些接口把這個興趣包轉發出去。當某個節點擁有與名稱匹配的數據時,就返回數據包。這個包會沿着剛纔興趣包經過的路徑返回,當路由器接收到數據包時,它會根據這個包的名稱在PIT中查詢匹配的記錄,將這個包從所有匹配的接口發出。這樣,所有之前請求過相同數據的節點都可以的到所需的數據,PIT中匹配的記錄都將被刪除。路由信息和用戶請求過的內容都保存在路由器中,這種方式最大限度地挖掘了路由器的存儲能力。如果鏈路發生故障,恢復後可以從中間節點的緩存中取得數據,而不需要路由到原始數據生產者,以減少延時和帶寬消耗,提高內容分發的效率。 

 

 

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