Ch2:鏈路層


一、 概述

本章討論了Internet協議族中的最底層協議,鏈路層協議。我們比較了以太網和IEEE802.2/802.3的封裝格式,以及SLIP和PPP的封裝格式。由於SLIP和PPP經常用於低速的鏈路,二者都提供了壓縮不常變化的公共字段的方法。這使交互性能得到提高。

大多數的實現都提供環回接口。訪問這個接口可以通過特殊的環回地址,一般爲127.0.0.1。也可以通過發送IP數據報給主機所擁有的任一IP地址。當環回數據回到上層的協議棧中時,它已經過傳輸層和IP層完整的處理過程。


二、 鏈路層功能

在TCP/IP協議族中,鏈路層主要有三個目的:

  • 爲IP模塊發送和接收IP數據報;
  • 爲ARP模塊發送ARP請求和接收ARP應答;
  • 爲RARP發送RARP請求和接收RARP應答。


三、 以太網和IEEE 802封裝


圖1. IEEE802.2/802.3和以太網的封裝格式

IEEE802.2標準幀比以太網幀多一個802.2 LLC和802.2 SNAP域。

802.2規定幀數據部分至少爲38字節,而以太網則要求至少爲46字節。


四、 SLIP:串行線路IP

SLIP(Serial Line IP,串行線路IP),它是一種在串行線路上對IP數據報進行封裝的簡單形式。

下面的規則描述了SLIP協議定義的幀格式:

1) IP數據報以一個稱作END(0xc0)的特殊字符結束。大多數實現在數據報的開始處也傳一個END字符。

2) 如果IP報文中某個字符爲END,那麼就要連續傳輸兩個字節0xdb和0xdc來取代它。

3) 如果IP報文中某個字符爲SLIP的ESC字符,那麼就要連續傳輸兩個字節0xdb和0xdd來取代它。


圖2. SLIP報文的封裝


SLIP是一種簡單的幀封裝方法,還有一些值得一提的缺陷:

  • 每一端必須知道對方的IP地址。沒有辦法把本端的IP地址通知給另一端。
  • 數據幀中沒有類型字段(類似於以太網中的類型字段)。如果一條串行線路用於SLIP,那麼它不能同時使用其他協議。
  • SLIP沒有在數據幀中加上檢驗和(類似於以太網中的CRC字段)。


五、 PPP:點對點協議

PPP(Point-to-Point Protocol),點對點協議修改了SLIP協議中的所有缺陷。PPP包括以下三個部分:

  1. 在串行鏈路上封裝IP數據報的方法。PPP既支持數據爲8位和無奇偶檢驗的異步模式,還支持面向比特的同步鏈接。
  2. 建立、配置及測試數據鏈路的鏈路控制協議(Link Control Protocol)。它允許通信雙方進行協商,以確定不同的選項。
  3. 針對不同網絡層協議的網絡控制協議(Network Control Protocol)體系。

PPP協議對數據的具體實現過程如下:

  • 當遇到字符0x7e時,需連續傳送兩個字符: 0x7d和0x5e,以實現標誌字符的轉義。
  • 當遇到轉義字符0x7d時,需連續傳送兩個字符: 0x7d和0x5d,以實現轉義字符的轉義。
  • 默認情況下,如果字符的值小於0x20(比如,一個ASCII控制字符),一般都要進行轉義。


圖3. PPP數據幀的定義

PPP的幀格式與SLIP幀格式相比只增加了3個額外的字節:1個字節留給協議字段,另外2個給CRC字段。

PPP幀封裝卻具有如下方面的優勢:

  1. PPP支持在單根串行線路上運行多種協議,不只是IP協議;
  2. 每一幀都有循環冗餘檢驗; 
  3. 通信雙方可以進行IP地址的動態協商(使用IP網絡控制協議); 
  4. 與CSLIP類似,對TCP和IP報文首部進行壓縮; 
  5. 鏈路控制協議可以對多個數據鏈路選項進行設置。

六、 環回接口

環回接口( Loopback Interface),以允許運行在同一臺主機上的客戶程序和服務器程序通過TCP/IP進行通信。

其對IP數據報的處理過程如下圖所示。


圖4. 環回接口處理IP數據報的過程

根據上圖,環回接口數據輸入:

  1. 傳給環回地址(一般是127.0.0.1)的任何數據均作爲IP輸入。
  2. 傳給廣播地址或多播地址的數據報復制一份傳給環回接口,然後送到以太網上。
  3. 任何傳給該主機IP地址的數據均送到環回接口。


七、 MTU

MTU(Maximum Transfer Unit,最大傳輸單元),是指鏈路層對傳輸的數據幀長度的上限限制。

以太網的MTU爲1500,而IEEE802.2/802.3幀的MTU爲1492。

線路MTU爲兩臺通信主機線路中的最小MTU值。


(完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章