為什麼太空網路需要 DTN?從 TCP/IP 的限制到深空網路
前言:在太空中,我們還能順暢地上網嗎?
前陣子看了 NASA Artemis II 繞月行動的直播,看著火箭升空,算是見證了人類的另一個里程碑。
近年不論是 NASA 、商業月球酬載服務(CLPS)、SpaceX Starship 的進展,以及各國對月球與深空任務的投入,都讓太空基礎設施 不再只是科幻概念,而是逐漸走向工程實作的問題。但身為一個工程師,我腦中浮現出一個很實際的問題:「如果我們要在太空發展科技,甚至建立基地,那我們地球上現有的網路架構,搬到太空中還能直接用嗎?」為了解答這個疑惑,我就爬了一些相關論文與技術文件中進行研究。這篇文章,就算是我的學習筆記跟總結~
直覺上,我們可能會認為:「只要把天線做大、訊號功率推高、多發射幾顆中繼衛星,不就能把地球上的 Internet 延伸到太空了嗎?」但實際上,太空網路面臨的挑戰,絕對不是單純的 頻寬不夠 或 訊號太弱 。
最根本的問題在於:整個網路環境的基本假設,在太空中完全變了。
因為地球上的網際網路,通常假設端到端(end-to-end)的路徑絕大多數時間都是暢通的,封包可以在極短時間內抵達目的地。斷線通常視為「異常狀況」。但在太空網路中,超長延遲、間歇性連線與通訊中斷才是家常便飯。NASA 對 DTN (Delay/Disruption-Tolerant Networking) 的介紹也指出,DTN 的目標是在太空通訊這類長延遲、易中斷的環境中,提供更可靠且標準化的資料傳輸方式 (NASA)。
DTN 的核心不是想辦法讓光速變快,而是坦然承認「延遲與中斷是不可避免的」,並將網路傳輸重新設計成一個可以儲存、等待、轉交與恢復的系統。
地球上的 Internet,為何不適合太空環境?
我們每天滑手機、打 API、登入遠端伺服器,背後都默默依賴著一套我們習以為常的 TCP/IP 假設:
- 來源與目的地之間,當下一定能找到一條連通的路徑
- 往返延遲(RTT)極低,通常在毫秒到數百毫秒之間
- 如果封包遺失,通常代表網路壅塞、設備故障或暫時性的干擾
- 連線中斷是一種 Exception,而不是常態
- 路由拓樸雖然會改變,但絕對不會以天體運行的尺度與速度在劇烈變化
在地球上,這些假設非常合理。即使跨洲連線,延遲也通常還在 TCP 可以忍受的範圍內;即使中間某顆 Router 壞了,底層的路由協定也能迅速找到替代路線~
但太空環境完全是另一回事。
在太空中,地球、月球、火星、衛星、探測器與地面接收站,全都在相對運動。通訊節點之間的 通訊窗口(Contact Window) 可能只在特定的時間點才會出現。另外,不同天線的角度、個別設備的能源限制、不同的軌道位置、甚至是星體的遮蔽,都會直接決定某一條 Link 當下到底通不通。
而 NASA 在 ION-DTN 的教學材料中也提到:極遠的距離、極高的資料遺失率、軌道運動造成的拓樸變化,以及航天器為了省電而不連續的操作,都會造成太空通訊比地面網路複雜好幾個維度 (ion-dtn.readthedocs.io)
我們可以用一張表來快速對比兩者的差異:
| 情境維度 | 地面網路假設 | 太空網路現實 |
|---|---|---|
| 路徑連通性 | 端到端路徑通常存在 | 端到端路徑可能暫時不存在 |
| 網路延遲 (RTT) | 通常極短(毫秒級) | 可能是秒、分鐘,甚至更久 |
| 斷線認知 | 是一種異常或錯誤 | 是一種正常狀態 |
| 拓樸穩定度 | 相對穩定 | 隨軌道與通訊窗口不斷變化 |
| 重傳成本 | 相對低廉 | 非常昂貴,甚至會因此錯過通訊窗口 |
| 節點狀態 | 設備多半 24 小時在線 | 航天器常處於低功耗、離線或被遮蔽狀態 |
在地面網路中,斷線通常代表有東西壞了,但在太空網路中,斷線很可能只是網路拓樸的日常而已
TCP/IP 在太空環境中的三個致命傷
1. 延遲的尺度:從毫秒變成「分鐘」
如果大學學過基本計算機概論應該也知道, TCP 的設計高度依賴 ACK 、Timeout、重傳機制與壅塞控制,而這些機制在地球上運作得超棒,因為 RTT 很短。但在太空中,距離會把延遲無情地放大:
- 低軌道衛星與地面站之間,可能還勉強維持在毫秒到數十毫秒
- 地球到月球的單程光速約 1.3 秒,RTT 就來到了 2.6 秒
- 如果是地球到火星,延遲會隨兩者軌道位置變化,可能高達數分鐘到二十幾分鐘
這意味著,如果我們硬要在地球和火星之間建立傳統的 TCP Session,光是握手和等待一個 ACK,連線可能早就 Timeout 了,更慘的是,TCP 會把這種 物理上的長延遲或遮蔽斷線 誤判為 網路壅塞,進而觸發降速與重傳,徹底拖垮傳輸效率
2. 間歇性連線:對方不是隨時都在
太空節點之間並不是永遠互相可見的。想像一下這些情境:
- 月球探勘車開進了隕石坑,不一定能直視地球
- 月球背面的探測器,必須等像是中繼衛星飛過來才能對地球傳送資料
- 衛星為了節省能源預算,可能暫時關閉通訊模組
- 太陽、行星、衛星本身的自轉與公轉,隨時會造成訊號遮蔽
太空版本的網路的問題可能不是「現在有沒有一條完整的路可以走?」
而是:既然現在沒有路,那下一個可用的通訊機會是什麼時候?在那之前,這包資料應該先存在誰那裡?
3. 把中斷視為常態:Disruption as Topology
如前所述,地球上的斷線代表故障或異常,但太空中的中斷,卻往往只是因為 衛星剛好飛出可視範圍 或 天線正在轉向 。因此,太空網路需要的不是單純且激進的 Retry 機制,而是一種能把「中斷」本身納入正常運作模型的網路架構。 而這就是 DTN 誕生的契機~
DTN:Store-Carry-Forward
DTN 的全名是 Delay/Disruption-Tolerant Networking。
它是專門為了應對長延遲、間歇性連線、不穩定鏈路與高錯誤率而設計的網路架構。 IETF RFC 9171 中也明確指出,DTN 是一種適用於 highly stressed environments 的架構 (IETF Datatracker)
傳統網路的運作邏輯很直接:
1 | 送出 (Send) -> 尋找路由 (Route) -> 立即抵達 (Deliver) |
而 DTN 的邏輯則是:
1 | 儲存 (Store) -> 斷線時隨身攜帶 (Carry) -> 遇到連線機會時轉交 (Forward) |
航太業界通常將這個模式稱為 Store-Carry-Forward。當一個 DTN 節點收到資料時,它不需要立刻轉送出去。如果下一跳(Next Hop)目前不在可視範圍內,它可以先把資料安全地「存」在本地的硬碟或記憶體中,等到下一個 Contact Window 出現時,再把資料「轉交」出去。
DTN 的思維模式不再是尋找一條當下貫通的路徑,而是規劃資料該如何穿越一系列「未來會出現」的通訊機會,最終接力抵達終點。
DTN 現實世界舉例
這邊舉個例字,如果 TCP/IP 像是一通即時的電話來電,那 DTN 應該就更像一套跨國物流系統。因為你在寄包裹時,寄件人和收件人不需要同時在線上,貨車、飛機、物流中心也不需要在同一秒鐘連成一條線。你的包裹會先抵達集貨站 Store,跟著飛機飛越太平洋Carry,等到達目的地國家的理貨中心後,再交給當地的司機送達 Forward
這也是 DTN 運作的原理:
| 屬性 | 傳統 Internet | 太空 DTN |
|---|---|---|
| 舉例 | 即時電話 | 郵政 / 物流系統 |
| 資料單位 | Packet(封包立刻轉送) | Bundle(包裹可以暫存) |
| 路徑依賴 | 需要連續的端到端路徑 | 依賴一系列未來的通訊機會 (Contacts) |
| 時間容忍度 | 對 Timeout 極度敏感 | 可以容忍長時間的等待 |
| 通訊模式 | Session-oriented | Message/Object-oriented |
| 斷線認知 | 是一種 Failure | 是一種正常狀態 |
| 路由考量 | 基於當下的拓樸狀態 | 基於加上「時間軸」的動態拓樸 |
也就是說:在太空中,等待本身就是網路協定必須處理的一部分
Bundle Protocol
在 DTN 的世界裡,最核心的協定叫做 **Bundle Protocol (BP)**。
如果說傳統 IP 網路的基本資料單位是 Packet,那麼 DTN 的基本資料單位就是 Bundle。
你可以把 Bundle 想像成 DTN 世界裡的 標準貨櫃:它不只是單純承載資料,也包含來源、目的地、建立時間、存活期限,以及後續路由、安全與狀態追蹤所需的 metadata。
這也是 Bundle 和一般 packet 最大的差異。Packet 通常假設自己會被網路立即轉送;Bundle 則被設計成可以被節點暫存、延後發送、跨節點轉交,並在通訊中斷後繼續等待下一次傳輸機會。
目前最現代化的 Bundle Protocol 版本是 IETF RFC 9171 定義的 BPv7。CCSDS(太空資料系統諮詢委員會)也在 2025 年發布了基於 BPv7 的太空通訊實驗規範。這代表 BPv7 已經不只是學術概念,而是逐漸被納入未來太空資料系統與任務互通性的標準化基礎 (ccsds.org)。
Bundle Protocol 的重點不是把資料切得更小,而是讓資料變成可以被「保存、等待、轉交與追蹤」的任務級訊息單位。
Bundle 裡面到底裝了什麼?
為了幫助理解,可以把一個 Bundle 簡化成下面這種結構:
1 | Bundle |
其中最重要的是 Primary Block 和 Payload Block。
Primary Block 提供這個 bundle 在 DTN 網路中被辨識與處理所需的基本資訊,例如來源、目的地與存活期限。Payload Block 則承載真正要送出的任務資料。Extension Blocks 則提供額外能力,例如安全性、路由輔助資訊或其他 metadata。
換句話說,Bundle 不只是資料本身,而是一個帶有上下文的資料容器。它知道自己從哪裡來、要去哪裡、可以活多久,也能攜帶額外資訊,讓中繼節點在沒有端到端連線的情況下仍然可以做出轉發決策
Bundle Node 的內部結構
理解 Bundle 之後,下一個問題是: 誰負責處理這些 Bundle?
在 BPv7 的架構中,負責送出、接收與處理 bundles 的概念性節點稱為 Bundle Node,它是一個由多個功能元件組成的 DTN 節點。CCSDS BPv7 Experimental Specification 中將 Bundle Node 描述為任何可以 send and/or receive bundles 的 entity。從架構上看,它主要由三個概念性元件組成:
- Application Agent (AA)
- Bundle Protocol Agent (BPA)
- Convergence Layer Adapter (CLA)

Ref: Graphical Representation of a Bundle Node. Source: CCSDS 734.20-O-1, “Bundle Protocol Specification, Experimental Specification,” Figure 1-1 4
這張圖可以這樣理解:
| 元件 | 功能 |
|---|---|
| Application Agent (AA) | 負責與上層應用互動,包含處理 application data 與 administrative records |
| Administrative Element (AE) | 產生與處理 administrative records,例如 bundle status report |
| Application-Specific Element (ASE) | 處理真正的應用資料,例如 science data、telemetry 或 mission payload |
| Bundle Protocol Agent (BPA) | 執行 Bundle Protocol 本身的程序,負責 bundle 的接收、處理、儲存與轉發 |
| Convergence Layer Adapter (CLA) | 將 bundles 送到不同底層網路,例如 TCP、UDP、LTP 或 CCSDS link protocols |
簡單來說,AA 負責應用層資料,BPA 負責 Bundle Protocol 的核心邏輯,CLA 負責把 bundle 實際送過某一段底層網路
這樣的分層設計很適合太空網路,因為同一個 Bundle Node 可能同時面對多種不同鏈路。例如,它一邊透過 TCP/UDP 與地面系統互動,另一邊透過 LTP 或 CCSDS space link 與航天器通訊。對上層應用來說,它只需要把資料交給 BP;至於這一段實際是走地面 IP 網路、月面區域網路,還是深空鏈路,則交給不同的 CLA 處理。
Convergence Layer
因此,BP 並不是要取代 TCP、UDP、RF、光通訊或 CCSDS link layer。更準確來說,BP 是一種 Overlay Layer(覆蓋層),它負責 DTN 層級的資料交付語意,而不是每一段底層鏈路的實際傳輸細節。
BP 透過所謂的 Convergence Layer (CLA) 來決定這個貨櫃在 當下這段路 要怎麼運送。在地球上可能走 TCP/UDP,到了太空中就改走 LTP (Licklider Transmission Protocol) 或 CCSDS 的鏈路層
真正把 bundle 送過某一段 link 的,是 CLA,可以把它想成物流系統中的不同運輸方式:
| DTN 架構 | 物流比喻 |
|---|---|
| Bundle | 標準貨櫃 |
| BPA | 物流調度中心 |
| CLA | 貨車、船、飛機或鐵路 |
| 底層網路 | 實際道路、航線或鐵路網 |
在ground segment,bundle 可能透過 TCP/UDP Convergence Layer 傳輸,而到了長距離或容易中斷的太空鏈路,則可能改用 LTP或 CCSDS 相關鏈路協定
簡單來說:BP 負責統籌從出發到抵達的長期策略,而 Convergence Layer 只負責搞定從這一站到下一站的短程運輸
理解了 Bundle、Bundle Node 與 Convergence Layer 之後,就可以看出 DTN 的基本運作邏輯:資料會先被封裝成 bundle,由 Bundle Node 儲存與處理,再透過不同的 CLA 在各種底層網路之間一站一站轉交~
但這裡會出現下一個問題:
如果太空中的節點不是隨時互相連線,那 Bundle Node 要怎麼知道什麼時候可以轉交資料?又該選擇哪一個下一個 hop?
這就需要進入 DTN routing 中非常關鍵的概念:Contact Plan
Contact Plan
理解 Bundle Protocol 之後,下一個問題就是: 太空網路要怎麼做 Routing?
在地面網路中,路由器通常根據目前的網路拓樸決定封包 next hop。但在太空網路中,某條 link 現在不通,不代表它永遠不通,它可能只是要等到下一個軌道位置、下一次地面接收站Contact Window,或下一次衛星進入通訊範圍。因此,在 DTN 中,我們需要先認識一個很重要的概念: Contact,也就是 通訊機會
在 DTN 中,Contact 指的是: 「兩個節點在某段具體時間內,可以互相傳送資料的機會」 。這不只是一條連線,它還帶有時間 與 容量 的屬性,例如:
1 | contact: |
把所有已知未來的 Contacts 集合起來,就成了一份 Contact Plan
如果說地面網路的 Routing Table 是當下網路的一張平面地圖,那太空網路的 Contact Plan 就是一張帶有第四維度(時間)的一種立體時刻表,有點科幻,下面可以幫助理解:

所以可以把 Contact Plan 理解成自帶時間軸的太空拓樸地圖
Contact Graph Routing (CGR)
有了時刻表,我們就需要一種演算法來幫我們規劃路線。傳統網路AS的 OSPF 或 BGP 只在乎現在哪裡有路,但在太空中,決策邏輯必須變成:
- 這條路什麼時候才通?
- Contact Window 有多長?夠不夠把資料傳完?
- 下一個中繼節點硬碟滿了沒?
- 會不會有更晚出發,但更早抵達的路線?
為了解決這個問題,Contact Graph Routing (CGR) 應運而生。
CGR 不是在一般的網路節點上找路,而是在一個由 未來的通訊機會 (Contacts) 所構成的 Graph 上, 利用修改過的 Dijkstra 演算法尋找最佳解(NASA 技術報告)

所以相對於傳統的Graph Problem,在 CGR 的世界裡,空間的距離不是唯一考量,時間的契機才是決定資料能否抵達的關鍵
NASA LunaNet
DTN 絕對不是只活在 Paper 或 Simulator 裡的概念,它已經是 NASA 佈局未來月球網路架構的核心。
為了支援未來的登月計畫,NASA 提出了 LunaNet。它不是單一一顆衛星,而是一套標準化的網路框架。目標是讓各國家的探測器、不同廠商的中繼衛星,甚至是月面基地,都能互相連通,形成一個 Lunar Network of Networks (NASA)
在這個架構中,DTN 就是 LunaNet 實現可靠資料傳輸的基石。

就算探測器跟地球永遠無法直接對話,只要有完善的 Contact Plan 與 DTN 協定,科學數據照樣能像接力賽一樣,一棒一棒穩穩送回地球。
極端的分散式系統 !?
如果你跟我一樣,背景是偏向Cloud Infra相關的工程師,其實可以把 DTN 當成一種 運作在極端環境下的分散式系統
因為太空網路不只是底層通訊協定而已,它其實涵蓋了大量且複雜的System Engineering Topics:
| 分散式系統概念 | 太空 DTN 的對應實作 |
|---|---|
| Queueing (佇列) | Bundle Queue / 優先級排程 |
| Scheduling (排程) | Contact-aware Forwarding |
| Replication (副本) | Custody Transfer (監護權移交與備份) |
| Fault Tolerance (容錯) | Disruption-Tolerant Delivery (斷線容忍傳輸) |
| Resource Allocation | 節點儲存空間 (Buffer) 與能源的分配 |
| Observability (可觀測性) | Bundle 狀態回報 / 軌跡追蹤 (Tracing) |
| Security (資安) | BPSec / 節點身分驗證 |
在地面系統中,我們大多追求快,追求那種毫秒級的即時一致性,但在太空網路裡,我們只能仰賴 最終交付 (Eventual Delivery) , 因為在太空中,可靠的定義不是立刻送到,而是無論經歷多少次斷線與等待,資料最終絕對不會弄丟,況且。這些資料可能會是探勘設備或者造價昂貴的航天器的指標資料,亦或者是科學觀測資料,無論如何都有等待的價值。
進階議題與未來挑戰
雖然 DTN 標準已經漸趨成熟,但實務上還有非常多Hardcore 的坑等著各位去填:
1. Capacity-aware Routing
CGR 找路很強,但如果某個中繼節點的 Buffer 快塞爆了怎麼辦?如果多個高優先級的科學任務都在搶同一段通訊窗口呢?如何把節點的儲存容量與鏈路頻寬完美融合進路由決策中,是目前一大熱門領域
2. ML-assisted vs Deterministic Routing
有些人提議把機器學習引進 DTN 來預測最佳路由。但在造價昂貴的太空任務中,Explainability 與 Determinism 往往比黑盒子般的 AI 更受青睞。也就是說要如何讓路由演算法既能適應動態變化,又能讓地面控制中心精準追蹤與覆寫決策,這也是我認為未來太空網路其中一個深入研究的方向之一
3. Security-aware Routing
當太空網路變成多國、多機構共用的網路時,安全性就成了重中之重。如何防止惡意節點發動攻擊,在那邊 Jamming 或是竄改 Contact Plan,甚至透過發送垃圾 Bundle 癱瘓其他節點的 Buffer?這都需要更嚴密的信任機制來把關,資安到哪個領域都是議題。
簡易 Space DTN Lab
這聽起來像是 NASA 才有資格玩的技術,但其實我們完全可以用一般的電腦跟 Docker,架設一個最小規模的概念驗證 (PoC) 環境,因為本質上就是極端還性的分散式系統。
我們只需要切出三個節點:
1 | Node A (月球車) -> Node B (軌道中繼衛星) -> Node C (地球地面站) |
你可以刻意設定 A 到 B 之間只有短短 60 秒的連線時間,觀察 Node B 是如何把資料暫存下來,並等待與 Node C 的連線窗口到來,最後再把資料轉發出去。

你可以使用 tc netem 模擬幾十秒的超長延遲,或是透過開源的 ION-DTN 或 HDTN 來測試 BPv7 的實作,進階一點可以再接上 Prometheus 跟 Grafana 來觀察 DTN 在斷線、延遲與通訊窗口限制下的核心行為。不需要真的發射火箭,你自己就能在筆電上體驗深空通訊架構的設計邏輯。
結語
目前地球的網際網路之所以如此偉大,大概是因為它建立在一個穩定、低延遲、大家幾乎永遠在線的環境當中。固定不動的伺服器,機房,網通設備,以及海底電纜,共同交織出這一切。但在太空,距離本身帶來了無可避免的延遲,軌道運動帶來了無情的連線中斷。這一切顯然都不是靠著加大頻寬就能暴力解決的問題
而 DTN 的迷人之處在於,它徹底打破了我們對即時連線的渴望,資料會在宇宙中搭著順風車,一步步大隊接力接力式的航向終點
參考資料 (References)
- NASA, Delay/Disruption Tolerant Networking. (Link)
- ION-DTN Documentation, Introduction to Delay/Disruption Tolerant Networking. (Link)
- IETF, RFC 9171: Bundle Protocol Version 7. (Link)
- CCSDS, Bundle Protocol Version 7 (BPv7) Experimental Specification, 2025. (Link)
- NASA, LunaNet Interoperability Specification Document Version 5, 2025. (Link)
- NASA NTRS, Multigraph-based Routing in Delay Tolerant Networks, 2023. (Link)
- T. Alhajj and V. Corlay, Improved Contact Graph Routing in Delay Tolerant Networks with Capacity and Buffer Constraints, arXiv, 2024/2025. (Link)
- NASA NTRS, Delay Tolerant Network Routing as a Machine Learning Classification Problem, 2018. (Link)
- NASA, DTN Resources for Mission Developers. (Link)
- NASA, Delay/Disruption Tolerant Networking Overview. (Link)
- NASA NTRS, Contact Multigraph Routing: Overview and Implementation, 2023. (Link)
- NASA NTRS, Dynamic Routing for Delay-Tolerant Networking in Space Flight Operations, 2008. (Link)




