網路層:轉送與 IP

資料報(datagram)

資料報是一個自給自足的封包,自己就帶著完整的目的位址,就像一張明信片:你可以直接投進任何郵筒,不必先打電話到郵局去預約一條路線。每個資料報都獨立旅行:網路在它到達時看一眼上面的位址、決定下一步往哪送,對之前經過的資料報毫無記憶。

這正是網際網路選擇的模型,稱為資料報模型(相對於虛擬電路模型)。當你送出一串資料時,它會被切成許多資料報,每一個各自被轉送出去。同一段對話的兩個資料報,可能走不同的路徑、可能亂序到達,也可能其中一個遺失而另一個順利通過——因為中間的路由器並不保存任何「針對某段對話」的狀態,它們純粹依據每個資料報自己帶的目的位址,一跳一跳地做決定。

這種設計的回報是穩健與簡單。路由器維持無狀態、構造簡單,所以又快又便宜;萬一某台路由器壞了,存活的路由器可以在下一個資料報就繞過它,不必拆掉再重建任何東西。代價則是所有善後工作——重新排序、偵測遺失、重送——都被推到兩端的主機去做(這正是端對端原則的實踐)。在網際網路上,IP 資料報就是資料報模型的具體單位。

你把一段影片串流成 50,000 個資料報。第 #4012 號可能經倫敦橫越大西洋,而 #4013 號走阿姆斯特丹;#4013 甚至可能先到。網路不在意——每一個都帶著自己的位址,各自憑本事被轉送。

彼此獨立、自帶位址的封包——這就是網際網路的核心遞送模型。

資料報與封包常被互換使用。嚴格說,資料報強調的是「無連線、各自獨立被路由」這種模型;封包則是泛指網路上任何一個格式化的資料單位的較一般用語。

又称
packet資料報資料包