網路層:轉送與 IP

網路層(network layer)

想像你從台北寄一封信給柏林的朋友。你並不知道完整的路線,只是在信封上寫下目的地地址、投進郵筒,接著一連串郵局把它接力傳遞,每一站都看一眼地址、決定下一跳要送去哪裡。網路層就是資料世界裡的這套郵政服務:它唯一的工作,是把一段資料從來源主機送到目的主機,而這兩台主機可能位於完全不同的網路,中間還隔著許多機器。

具體來說,網路層接收來自傳輸層的一段資料,把它包進一個帶有來源與目的位址的封包,再交給連結層一次跨越一條鏈路。在沿途每一台稱為路由器(router)的中繼機器上,網路層讀取目的位址、把封包朝目標方向轉送出去。在網際網路上,網路層以一個協定為核心,也就是網際網路協定(IP),而且它只提供盡力而為(best-effort)服務:它會盡力遞送每個封包,但不保證封包一定送達、不保證按序到達、也不保證沒有毀損。

看清楚它的上下邊界很有幫助。它下方的連結層只負責讓一個訊框跨越單一實體跳躍(一條線、一個 Wi-Fi 細胞)。它上方的傳輸層(TCP 或 UDP)只在兩端的主機上執行,負責加上可靠性、連接埠等功能。網路層是唯一一個在路徑上每台機器(包括中間的路由器)都要執行的層,因為它正是負責這趟跨網路旅程本身的那一層。

你的筆電送出一個封包到網頁伺服器:來源 192.168.1.20、目的 142.250.71.78。你家的路由器、ISP 的各台路由器、最後到伺服器所在的網路,每一站都執行網路層、讀取那個目的位址、把封包往前轉送一跳——它們都不需要看懂裡面那個網頁是什麼。

同一個目的位址,引導封包穿越許多彼此獨立的網路。

盡力而為意味著網路層可能在不通知的情況下丟棄、重複、延遲或重排封包。任何「可靠、按序遞送」的保證,都是由上方的傳輸層(TCP)額外加上去的,網路層本身不負責。

又称
layer 3IP layer網路層第三層