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