TCP/IP協議族是一個四層協議系統,自底而上分別是數據鏈路層、網絡層、傳輸層和應用層。每一層完成不同的功能,
且通過若干協議來實現,上層協議使用下層協議提供的服務。
1、數據鏈路層
負責幀數據的傳遞。(經過數據鏈路層封裝的數據稱為幀)
數據鏈路層兩個常用的協議時ARP(地址解析協議)和RARP(逆地址解析協議)。它們實現了IP地址和機器物理地址之間的相互轉換。
網絡層使用IP地址尋址一台機器,而數據鏈路層使用物理地址尋址一台機器,因此網絡層必須先將目標機器的IP地址轉換為其物理地址,
才能使用數據鏈路層提供的服務,這就是ARP協議的用途。RARP協議僅用於網絡上的某些無盤工作站(沒有硬盤)。因缺乏存儲設備,
無盤工作站無法記住自己的IP地址,但他們可以利用網卡上的物理地址來向網絡管理者(服務器或網絡管理軟件)查詢自身的IP地址。
運行RARP服務的網絡管理者通常存有該網絡上所有機器的物理地址到IP地址的映射。
2、網絡層
負責數據怎樣傳遞過去。
網絡層實現數據包的選路和轉發。WAN(廣域網)通常使用眾多分級的路由器來連接分散的主機或LAN(局域網),因此,
通訊的兩台主機一般不是直接相連的,而是通過多個中間節點(路由器)連接的。網絡層的任務就是選擇這些中間節點,
已確定兩台主機之間的通訊路徑。同時,網絡層對上層協議隱藏了網絡拓撲連接的細節,使得在傳輸層和網絡應用程序看來,
通訊的雙方是直接相連的。
3、傳輸層
負責傳輸數據的控制(准確性、安全性)
傳輸層為兩台主機上的應用程序提供端到端(end to end)的通信。與網絡層使用的逐跳通信方式不同,傳輸層只關心通信的
起始端和目的端,而不在乎數據包的中轉過程。
垂直的實線箭頭表示TCP/IP協議族各層之間的實體通信,而水平的虛線箭頭表示邏輯通信線路。傳輸層為應用程序封裝了一條
端到端的邏輯通信鏈路,它負責數據的收發、鏈路的超時重傳等。
傳輸層協議主要有三個:TCP 協議、UDP協議、SCTP協議。
4、應用層
負責數據的展示和獲取。
數據鏈路層、網絡層、傳輸層負責處理網絡通信細節,這部分必須既穩定又高效,因此它們都在內核空間中實現。而應用層則在
用戶空間中實現,因為它負責處理眾多邏輯,比如文件傳輸、名稱查詢和網絡管理等。如果應用層也在內核中實現,則會讓內核變的
十分龐大。當然,也有少數服務器程序是在內核中實現的,這樣代碼就無須在用戶空間和內核空間來回切換(主要是數據的復制),
極大地提高了工作效率。不過這種代碼實現起來較復雜,不夠靈活且不便於移植。