一、TCP/IP協議族
1、數據鏈路層
ARP協議和RARP協議,它們實現了IP地址和機器物理地址之間的相互轉化
ARP協議(Address Resolve Protocol,地址解析協議)
RARP協議(Reverse Address Resolve Protocol,逆地址解析協議)
作用:網絡層是用IP地址尋址一臺機器,而數據鏈路層是用物理地址尋址一臺機器,因此網絡層必須先將目標機器的IP地址轉化成其物理地址,這就是ARP協議的用途。RARP協議僅用于網絡上某些無盤工作站。因為缺乏儲存設備,無盤工作站無法記住自己的IP地址。但是它們可以利用網卡上的物理地址來向網絡管理者查詢自身的IP地址。運行RARP服務的網絡管理者通常存有該網絡上有所及其得物理地址到IP地址映射。
用來處理連接網絡的硬件部分。包括控制操作系統、硬件的設備驅動、網絡適配器,及光纖等物理可見部分。硬件上的范疇均咋鏈路層的作用范圍之內。
2、網絡層
ip協議和ICMP協議,它們實現了數據包的選路和轉發。網絡層的任務就是處理網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了通過怎樣的路徑到達對方計算機,并把數據包傳送到對方。選擇這些中間節點,以確定兩臺主機之間通信路徑。
3、傳輸層
TCP協議、UDP協議和SCTP協議
傳輸層為兩臺主機上的應用程序提供端對端的通信。與網絡層使用的逐跳通信方式不同,傳輸層只關心通信的起始端和目的端,而不在乎數據包的中轉過程。
- TCP協議,傳輸控制協議
- UDP協議,用戶數據報協議
- SCTP協議,流控制傳輸協議
4、應用層
應用層在用戶空間實現,而數據鏈路層、網絡層和傳輸層處理網絡通信細節,這部分必須穩定有高效,因此它們都在內核空間中實現。
- FTP協議,文件傳輸協議
- DNS系統,域名解析系統
- HTTP協議, 超文本傳輸協議
4.1、傳輸層和網絡層區別
傳輸層為兩臺主機上的應用程序提供端對端的通信。與網絡層使用的逐跳通信方式不同,傳輸層只關心通信的起始端和目的端,而不在乎數據包的中轉過程
4.2、TCP協議的特點
為應用層提供可靠的、面向連接和基于流的服務。TCP協議通信使用超時重傳、數據確定等待來確保數據包被正確地發送至目的端。因此TCP服務是可靠的。
使用TCP協議通信的雙方必須先建立TCP連接,并在內核中為連接維持一些必要的數據結構,比如連接的狀態、讀寫緩沖區以及諸多定時器等。當通信結束時,雙方必須關閉連接已釋放這些內核數據。TCP服務時給予流的。給予流的數據沒有邊界限制,它源源不斷地從通信的一端流入另一端。發送端可以逐個字節地向數據流寫入數據,接受端也可以逐個字節地將它們讀出
4.3、UDP協議的特點
為應用層提供不可靠、無連接和基于據包的服務。
UDP協議無法保證數據從發送端正確的地傳送到目的端。如果數據在中途丟失,或者目的端數據校驗發現數據錯誤誤將其丟棄,則UDP協議知識簡單的通知應用程序發送失敗,因此,使用UDP協議的應用程序通常要自己處理數據確認、超時重傳等邏輯。UDP協議是無連接的,即通信雙方不保持一個長久的聯系,因此應用程序每一次發送數據都要指定接收方的地址。每一個UDP數據都有一個長度,就接受端必須以該長度為最小單位將其所有內容一次性讀出,否則數據將被截斷。
二、封裝和分用
1、封裝
上層協議是如何使用下層協議提供的服務的呢?其實通過封裝實現的。應用程序數據在發送到無力網絡上之前,將沿著協議棧從上往下依次傳遞。每一層協議都將在上冊數據的基礎上加上自己的頭信息。
- 經過TCP封裝后的數據稱TCP報文段,經過UDP封裝后的數據稱為UDP數據包。
- 經過IP封裝后的數據稱為IP數據報。
- 經過數據鏈路層封裝后的數據稱幀
2、分用
當幀到達目的的主機時,將沿著協議棧自底向上依次傳遞。各層協議依次處理幀中本層負責的頭數據,以獲取所需的信息,并最終將處理后的幀交給目的應用程序。