1. 程式人生 > >《TCP/IP協議詳解 卷1》--- 鏈路層

《TCP/IP協議詳解 卷1》--- 鏈路層

鏈路層主要有三個目的:
(1)為IP模組傳送和接收IP資料報;
(2)為ARP模組傳送ARP請求和接收ARP應答;
(3)為RARP傳送RARP請求和接收RARP應答。

乙太網鏈路層協議包含:序列介面鏈路層協議(SLIP、PPP),環回(loopback)驅動程式。

乙太網和IEEE802封裝
這裡寫圖片描述
目的地址和源地址長度為48bit(6位元組),為硬體地址。
接著,802標準中,2位元組的長度指後續資料的位元組長度,不包含CRC校驗碼。乙太網中為2位元組的型別欄位。
802.3標準,資料部分最少為38位元組,乙太網為46位元組。

SLIP:序列線路IP
SLIP的全稱是Serial Line IP。它是一種在序列線路上對I P資料報進行封裝的簡單形式,在RFC 1055[Romkey 1988]中有詳細描述。
SLIP協議定義的幀格式:
1) IP資料報以一個稱作END(0xc0)的特殊字元結束。
2) 如果IP報文中某個字元為END,那麼就要連續傳輸兩個位元組0xdb(SLIP的ESC字元)和0xdc來取代它。
3) 如果IP報文中某個字元為SLIP的ESC字元,那麼就要連續傳輸兩個位元組 0xdb和0xdd來取代它。
這裡寫圖片描述


SLIP協議缺陷:
1) 每一端必須知道對方的IP地址。沒有辦法把本端的IP地址通知給另一端。
2) 資料幀中沒有型別欄位(類似於乙太網中的型別欄位)。如果一條序列線路用於SLIP,那麼它不能同時使用其他協議。
3 ) SLIP沒有在資料幀中加上檢驗和(類似於乙太網中的 CRC欄位)。

壓縮的SLIP
為傳送一個位元組的資料,需20個位元組的IP首部和20個位元組的TCP首部,超過40位元組,CSLIP可將40個位元組壓縮到3或5個位元組,在CSLIP的每一端維持多達16個TCP連線。

PPP:點對點協議
修改了SLIP的所有缺陷,包括三部分:
1) 在序列鏈路上封裝IP資料報的方法。PPP既支援資料為8位和無奇偶檢驗的非同步模式還支援面向位元的同步連結。
2) 建立、配置及測試資料鏈路的鏈路控制協議( LCP:Link Control Protocol)。它允許通訊雙方進行協商,以確定不同的選項。
3) 針對不同網路層協議的網路控制協議( NCP:Network Control Protocol)體系。
這裡寫圖片描述


每一幀以0x7e開始和結束。緊接著是一個地址位元組,值始終是0xff,然後是一個值為0x03的控制位元組。接下來是協議欄位。
相對於SLIP幀格式,增加了3個位元組:1個位元組留給協議欄位,另2個為CRC。

環回介面
這裡寫圖片描述
1) 傳給環回地址(一般是127.0.0.1)的任何資料均作為IP輸入。
2) 傳給廣播地址或多播地址的資料報復制一份傳給環回介面,然後送到乙太網上。這是因為廣播傳送和多播傳送的定義包含主機本身。
3 ) 任何傳給該主機IP地址的資料均送到環回介面。

最大傳輸單元MTU
乙太網和802.3對資料幀的長度都有一個限制,其最大值分別是1500和1492位元組。鏈路層的這個特性稱作MTU,最大傳輸單元。
如果IP層有一個數據報要傳,且資料的長度比鏈路層的MTU還大,那麼IP層就需要進行分片(fragmengtation),把資料
報分成若干片,這樣每一片都小於MTU。
這裡寫圖片描述


路徑MTU:兩臺通訊主機路徑中的最小MTU。