命名資料網路
命名資料網路（Named Data Networking，NDN）是一個未來的互聯網架構（Future Internet Architecture），靈感來自多年在網路使用上的實證研究，導致人們逐漸意識到，現今的互聯網架構中在舊有的 IP 協定上懸而未決的問題 。 NDN根源於一個Van Jacobson在2006年首次公開展示的專案計畫「」(CCN)。NDN的目標在於檢視如何依據Jacobson的提議，從現今以主機為中心的網路架構IP演進到以資料為中心的網路架構NDN。一般相信這項概念上的簡單轉變，將對人們如何設計、開發、部署和使用網路以及應用程式產生深遠的影響
網際網路目前主要用作信息散佈的平台，但這並非 IP 的強項。因此，未來互聯網的“瘦腰”（thin waist）架構應當基於命名資料，而非以數字定址的主機。基本原則是，通信網路應該允許用戶專注於他或她需要的資料，也就是所謂的「內容」（content），而不必指定資料要取自哪個實際位置，也就是所謂的「主機」（host）。由於當前的互聯網中，絕大多數（“高達流量的90％”）的網路使用方式都是由單一來源傳播到多個用戶, 命名資料網路的許多機制均具有廣泛的優勢潛力，例如內容快取，以減少擁塞並提高傳遞速度，簡化網路設備配置，以及在資料層級就直接內建網路安全性。
現今的互聯網沙漏架構（hourglass architecture）以一個普世通用的網路層（network layer）為中心，也就是 IP。在 1970 年代設計 IP 時的基本概念，是要能允許分散在各個不同地理區域的使用者都能順利存取少數巨大而不會移動的電腦，因此當代的互聯網架構也都是圍繞著這種以主機對主機的會話模式而設計。 IP 中實作了要達成全球互聯所需的最少功能，這種細腰架構促成了互聯網爆炸性的成長，使得下層與上層的技術可以獨立發展與創新。然而，IP 當初只是設計來建立一個通訊網路，因此它的封包是以通訊的端點來進行命名。
隨著電子商務、數位媒體、社交網路、智慧手機等應用逐步地成長，互聯網不再只是一個（像電話網路一般）點對點的通訊網路；目前互連網上大多數的用途是作為一個散佈網路（distribution network）。散佈網路比起通訊網路在功能上更加地一般化，因此藉由傳統點對點對點的通訊協定來試圖解決散佈的問題，不但複雜而且容易出錯。
命名資料網路這個專案計畫試圖改進 IP 架構，讓細腰角色更加一般化，讓它在處理封包是依據資料而非通訊端點來命名。更明確地說，之前的 IP 網路提供的服務是將封包遞送到指定的位址，而命名資料網路所提供的網路服務，是依據所指定的名稱來獲取資料。命名資料網路中的「名稱」可以是任何東西 －－ 一個端點、一部電影或一本書中的一段資料內容、一個開啟燈光的指令等等。期望這個概念上的簡單改變的可以讓互聯網除了現有點對點的通訊外，更佳地應用在更廣泛的應用上。 命名資料網路的設計中，融合了過去三十年在網路工程上所習得的經驗，在一開始就將許多重要的功能整合到協定中，像是利用興趣封包（Interest packet）與資料封包（Data packet）的流量平衡來進行網路流量的自我調控，並對所有網路上傳送的資料進行數位簽章以確保安全性。
命名資料網路的哲學始於1979年由 Ted Nelson 率先提出，其後 Brent Baccala 在 2002 年持續發揚光大。在 1999 年時，史丹佛在TRIAD 計畫 中提出，使用一個物件的名稱直接繞送到一個鄰近的複本，即可避免再去名稱伺服器（DNS server）查詢。在 2006 年，柏克萊的「資料導向網路架構」（Data Oriented Network Architecture，DONA）計畫提出一個以內容為中心的網路架構，它進一步改善了 TRIAD，在架構中加入了安全性（認證）的機制。Van Jacobson 在2006年至Google演講有關網路的演進 A New Way to Look at Networking，主張命名資料網路將是網路發展的下一步。在 2009年，PARC 在 CCNx 計畫內宣布了他們的內容中心架構，該計畫是由當時身為 PARC 研究院士的 Jacobson 所領導。2009年9月21日,PARC 發佈了他們內容中心網路研究計畫的互操作性規格，並且以GPL首次釋出公開原始碼（見 CCNx 計畫網站）。有一個更加廣義的網路研究方向叫「資訊中心網路」（information-centric networking ，ICN），許多不同的架構設計都由此發展出來，命名資料網路只是其中的一例。網際網路研究任務小組（Internet Research Task Force，IRTF）在2012年成立了研究 ICN 的工作小組。
命名資料網路包含國家科學基本所贊助的16個計畫主持人，涵蓋12個校園，以及來自學術界與產業界研究社群與日漸增的興趣 。 目前有許多關於命名資料網路的 研究成果 被陸續發表，以及迅速成長的 程式碼 被貢獻至相關社群。
在NDN的通訊中是由接收端(例如：資料消費者)透過兩種不同類型的封包來溝通，分別是興趣封包和資料封包。 更完整的NDN封包格式請看： NDN Packet Format Specification.
為了實現興趣封包和資料封包的轉發功能，每個NDN路由器有三個資料結構和一個轉發策略。
當興趣封包到達時，NDN路由器會先查詢內容暫存中是否有符合的資料，如果有相符的資料的話，路由器會直接透過興趣封包傳來的介面回傳資料封包，否則路由器會在PIT中查詢興趣封包的名字，如果有相同的條目在PIT中的話，路由器會在該PIT的條目中簡單記錄興趣封包的來源介面，但如果在PIT中沒有相同的條目的話，路由器將會基於FIB中的訊息和路由器的轉發策略向資料生產者轉發興趣封包，當路由器收到很多來自下游節點中相同名字的興趣封包時，它只會向上游的資料生產者轉發第一個興趣封包。
當資料封包到達時，NDN路由器會先查詢相符的PIT條目並向列在PIT條目所有的下游介面轉發資料，然後在PIT中移除該條目並將此資料暫存在內容暫存中，資料封包總是沿著興趣封包的相反路徑回傳，而且不會遺失封包。在每條連結中，一個興趣封包會返回一個資料封包，提供了流平衡的機制。為了取得包含多個封包的大物件，興趣封包提供了一個類似TCP ACKs用來控制流量的角色：被資料消費者控制的細粒度的反饋迴路。
興趣封包和資料封包都不攜帶任何主機或介面位置，路由器是基於封包中攜帶的名字來轉發興趣封包給資料生產者，並基於興趣包在每個節點所建立的PIT狀態訊息向消費者轉發資料封包。興趣封包與資料封包交換的對稱性減少了hop-by-hop的控制迴路（不要與對稱路由或路由搞混），並消除了在資料傳輸中任何需要來源與目的節點的概念，不像IP的端到端的封包傳送方式。.
NDN的名字在網路中是不透明的，這可以讓每個應用程式去選擇適合的命名方式。因此，命名能夠随網路獨立地演進。
NDN的設計假設為有層次化的結構命名，例如，由UCLA生產的影片可能被命名為 /ucla/videos/demo.mpg，其中「/」以文本表示法描繪了名字的構件，與URL相似，這種層次化的結構有很多的潛在好處：
為了得到動態產生的資料，消費者必須能夠為想要的資料建構名字，而不是用先前看過的名字或資料。方法有以下兩種：
目前研究正在探索如何讓應用程式去選擇名字，讓這個名字可以促進應用程式的開發和網路的傳遞。研究的目標是去發展和精進目前存在的原理及命名的指導方針，在系統庫中將其加入命名的方式，用來實行簡化未來應用程式的開發。
可以被全球得到的資料一定有全球唯一的名字，但用於當地通訊的名字只需要當地路由(或當地廣播)來尋找符合的資料。單獨的資料名稱在很多範圍和上下文中是有意義的，範圍從「房間裡的電燈開關」到「世界上所有的國家名字」。 命名空間的管理不是NDN架構中的一部分，就像位址空間的管理也不是IP架構中的一部分。然而，命名則是NDN應用程式設計中最重要的部分，讓應用程式開發者和使用者去設計他們自己的命名空間作為資料交換有幾項好處：
NDN路由器和轉發封包都是以名字為基礎運作，也因此而解決了三個由IP架構中位址所產生的問題：
NDN網路可以使用傳統的路由演算法，例如：鏈狀路由演算法和距離向量演算法。代替宣告IP的前綴中，NDN路由器宣告名字的前綴讓他可以覆蓋路由器願意服務的資料。傳統的路由協定，比如OSPF和BGP，都可以適用於將名字視為不透明的序列組件來對名字前綴進行路由，並對興趣封包中的名字針對FIB表做出基於組件的最長前綴匹配。
每個路由器的PIT表支援跨越NDN資料面的轉發，記錄了每個待定的興趣封包和來源介面，並在收到相符的資料或超時發生後移除興趣封包。這種每跳每個封包狀態與IP的無狀態資料面不同，基於FIB中的訊息和效能測量，在每個路由器中的轉發策略模組會做出以下正確的決定：
如果路由器決定興趣封包不能被滿足，例如：上游連結是關閉的，FIB表中也沒有轉發的條目或極端的塞車情況發生，路由器會發送一個NACK給傳送興趣封包的下游鄰居。這樣的NACK可能觸發接收路由器去轉發興趣封包到其它介面來尋找替代的路徑。PIT狀態使路由器可以去辨認和丟棄循環的封包，允許他們自由地向相同資料產生者使用多樣的路徑。封包不能在NDN中循環，代表不需要在IP中有生存時間或其它措施和位址的相關協定來解決這些問題。
相對於TCP/IP將安全的責任交給端節點，NDN本身就可以透過資料生產者對每個資料封包簽名來確保資料的安全，資料生產者的簽名能確保資料的完整性，並可以知道資料來源，讓消費者可以藉由如何得到資料及哪裡得到資料來提高對資料的信任度。NDN網路也支援細粒度(fine-grained)的信任，允許消費者推測關於公鑰的擁有者是否是在特定環境中特定資料的一個可接受的發佈者。第二個主要的研究是設計和開發可用的機制來管理使用者的信任，這裡有兩個不同類型的信任機制：
NDN的資料中心安全有固定的應用程在內容訪問控制及其礎建設的安全方面，應用程可以加密資料和分配密鑰當命名封包使用相同命名架構去分配密鑰時，有效的限制資料安全周長在單個應用程式中。為了驗證資料封包的簽名，應用程式可以取得適當的密鑰，確認封包中密鑰的位置區域，就像任何其它的內容。但信任管理，例如，如何確認在應用程式中特定的封包所提供的密鑰的真實性，是一個主要的研究挑戰。 一致的實驗方法，NDN的信任管理研究由應用層的開發和使用來驅動：先解決特定問題，然後定義出共同模式。例如，NLSR的安任需求需要開發一個簡單的層次化信任模組，利用最低層級的密鑰(接近root)，密鑰用名字發布來當作最高層級中的密鑰，該名字反應了他們之間的關係。在這個信任模組中，命名空間與層次結構的信任代表的相配，例如，/root/site/operator/router/process。在分層架構中特定命名發布的密鑰，授權他們可以簽名特定的資料封包並限制他們的範圍。這個範例可以簡單地延伸到其它真實世界信任趨向於層次化模式的應用程式，像我們建構的管理系統(BMS)中。因為NDN在控制應用程式中留下了信任模組，更有彈性和表現力的信任關係，比如ChronoChat，激發了信任網路模組實驗的積極性，這個安全模組是在目前的聊天室中參與者可以透過新的簽名來介紹新的參與。未來的應用程式將實現一個交叉驗證模組(SDSI)，這個模組將提供更多的驗證，讓資料和密鑰名字可以是獨立的，這將更簡單地適應各種真實世界的信任關係。
此外，NDN處理網路路由和控制訊息，比如所有NDN的資料或要求簽名，這些為安全路由協定抵抗攻擊提供了堅固的基礎，例如，欺騙和篡改。NDN使用多路徑的轉發和自適轉發策略模組，減緩了前綴被劫持的攻擊，因為路由可以偵測到劫持後的異常現象，並透過替代路徑來取得資料，由於NDN封包引用的是內容而不是設備，所以惡意地指向特定設備變得更加棘手，雖然減緩機制可以針對其他NDN的特定攻擊，例如，興趣封包泛洪的DoS攻擊。此外，待定興趣表中關於先前的要求封包，可以為如何處理興趣封包做出明智的決定，有以下幾個安全的優點：