在TCP/IP協議族中,鏈路層是其最底層協議,主要有三個目的:(1)為IP模組發送和接收IP資料報;(2)為ARP模組發送ARP請求和接收ARP應答;(3)為RARP發送RARP請求和接收RARP應答。
在TCP/IP世界中,乙太網路IP資料報的封裝是在RFC894[Hornig1984]中定義的,IEEE802網路的IP資料報封裝是在RFC1042[PostelandReynolds1988]中定義的。其中乙太網路的封裝格式是最為常見的封裝格式。
SLIP的全稱是SerialLineIP。它是一種在串列線路上對IP資料報進行封裝的簡單形式,在RFC1055Romkey1988]中有詳細描述。SLIP適用於家庭中每台電腦幾乎都有的RS-232序列埠和高速數據機接入Internet。
下面的規則描述了SLIP協議定義的框架格式:
1)IP資料報以一個稱作END(0xc0)的特殊字元結束。同時,為了防止資料報到來之前的線路雜訊被當成資料報內容,大多數實現在資料報的開始處也傳一個END字元(如果有線路雜訊,那麼END字元將結束這份錯誤的報文。這樣當前的報文得以正確地傳輸,而前一個錯誤判文交給上層後,會發現其內容毫無意義而被丟棄)。
2)如果IP報文中某個字元為END,那麼就要連續傳輸兩個位元組0xdb和0xdc來取代它。0xdb這個特殊字元被稱作SLIP的ESC字元,但是它的值與ASCII碼的ESC字元(0x1b)不同。
3)如果IP報文中某個字元為SLIP的ESC字元,那麼就要連續傳輸兩個位元組0xdb和0xdd來
取代它。
壓縮的SLIP(CSLIP)
由於串列線路的速率通常較低,在互動應用中,為了傳送1個位元組的資料需要加入20個位元組的IP首部和20個位元組的TCP首部。CSLIP一般能把上面的40個位元組壓縮到3或5個位元組。它能在CSLIP的每一端維持多達16個TCP串連,並且知道其中每個串連的首部中的某些欄位一般不會發生變化。
PPP:點對點通訊協定 (PPP)
PPP,點對點通訊協定 (PPP)修改了SLIP協議中的所有缺陷。PPP包括以下三個部分:
1)在串列鏈路上封裝IP資料報的方法。PPP既支援資料為8位和無奇偶檢驗的非同步模式(如大多數電腦上都普遍存在的串列介面),還支援面向位元的同步連結。
2)建立、配置及測試資料鏈路的鏈路控制協議(LCP:LinkControlProtocol)。它允許通訊雙方進行協商,以確定不同的選項。
3)針對不同網路層協議的網路控制協議(NCP:NetworkControlProtocol)體系。當前RFC定義的網路層有IP、OSI網路層、DECnet以及AppleTalk。例如,IPNCP允許雙方商定是否對報文首部進行壓縮,類似於CSLIP(縮寫詞NCP也可用在TCP的前面)。
PPP比SLIP具有下面這些優點:
(1)PPP支援在單根串列線路上運行多種協議,不只是IP協議;
(2)每一幀都有循環冗餘檢查;
(3)通訊雙方可以進行IP地址的動態協商(使用
IP網路控制協議);
(4)與CSLIP類似,對TCP和IP報文首部進行壓縮;
(5)鏈路控制協議可以對多個資料鏈路選項進行設定。
大多數的實現都提供環回介面。訪問這個介面可以通過特殊的迴路位址,一般為127.0.0.1。也可以通過發送IP資料報給主機所擁有的任一IP地址。當環回資料回到上層的協議
棧中時,它已經過傳輸層和IP層完整的處理過程。
乙太網路和802.3對資料幀的長度都有一個限制,其最大值分別是1500和1492位元組。鏈路層的這個特性稱作
MTU,傳輸單元最大值。不同類型的網路大多數都有一個上限。
當在同一個網路上的兩台主機互相進行通訊時,該網路的MTU是非常重要的。但是如果兩台主機之間的通訊要通過多個網路,那麼每個網路的鏈路層就可能有不同的MTU。重要的不是兩台主機所在網路的MTU的值,重要的是兩台通訊主機路徑中的最小MTU。它被稱作路徑MTU。