說明:本文為《TCP/IP詳解,卷1:協議》的第二章“鏈路層”的學習筆記。
一. 引言
1. 鏈路層的目的
1) 為I P模塊發送和接收I P數據報;
2) 為A R P模塊發送A R P請求和接收A R P應答;
3) 為R A R P發送R A R P請求和接收R A R P應答。
2. 本章學習內容
將詳細討論以太網鏈路層協議,兩個串行接口鏈路層協議( S L I P和P P P),
以及大多數實現都包含的環回( l o o p b a c k)驅動程序。
二. 以太網和IEEE 802封裝
1. 以太網術語解釋
以太網這個術語一般是指數字設備公司( Digital Equipment Corp.)、英特爾公司( I n t e lC o r p .)和X e r o x公司在1 9 8 2年聯合公布的一個標準。它是當今T C P / I P采用的主要的局域網技術。它采用一種稱作C S M A / C D的媒體接入方法,其意思是帶沖突檢測的載波偵聽多路接入(Carrier Sense, Multiple Access with Collision Detection)。它的速率為10 Mb/s,地址為48 bit。
在T C P / I P世界中,以太網I P數據報的封裝是在RFC 894[Hornig 1984]中定義的,IEEE 802網絡的I P數據報封裝是在RFC 1042[Postel and Reynolds 1988]中定義的。
2. 封裝格式
1) IEEE 802.2/802.3封裝

2) 以太網封裝
以太網封裝是最常見的封裝格式。

三. 尾部封裝
它是一個早期B S D系統在DEC VA X機上運行時的試驗格式,它通過調整I P數據報中字段的次序來提高性能。在以太網數據幀中,開始的那部分是變長的字段(I P首部和T C P首部)。把它們移到尾部(在C R C之前),這樣當把數據復制到內核時,就可以把數據幀中的數據部分映射到一個硬件頁面,節省內存到內存的復制過程。
尾部封裝已遭到反對。
四. SLIP:串行線路IP
全稱:Serial Line IP。它是一種簡單的幀封裝方法。它是一種在串行線路上對I P數據報進行封裝的簡單形式,在RFC 1055[Romkey 1988]中有詳細描述。S L I P適用于家庭中每臺計算機幾乎都有的R S - 2 3 2串行端口和高速調制解調器接入I n t e r n e t。
S L I P協議定義的幀格式如下:
1.IP數據報以一個稱作E N D(0 x c 0)的特殊字符結束。同時,為了防止數據報到來之前的線路噪聲被當成數據報內容,大多數實現在數據報的開始處也傳一個E N D字符(如果有線路噪聲,那么E N D字符將結束這份錯誤的報文)。
2.如果I P報文中某個字符為E N D,那么就要連續傳輸兩個字節0 x d b和0 x d c來取代它。
0 x d b這個特殊字符被稱作S L I P的E S C字符。
3.如果I P報文中某個字符為S L I P的E S C字符,那么就要連續傳輸兩個字節0 x d b和0 x d d來取代它。
SLIP的缺陷如下:
1. 每一端必須知道對方的I P地址。沒有辦法把本端的I P地址通知給另一端。
2. 數據幀中沒有類型字段(類似于以太網中的類型字段)。如果一條串行線路用于S L I P,
那么它不能同時使用其他協議。
3. S L I P沒有在數據幀中加上檢驗和(類似于以太網中的C R C字段)。如果S L I P傳輸的報文被線路噪聲影響而發生錯誤,只能通過上層協議來發現(另一種方法是,新型的調制解調器可以檢測并糾正錯誤報文)。
五. 壓縮的SLIP
C S L I P(即壓縮S L I P)在RFC 1144[Jacobson 1990a]中被詳細描述。它能在C S L I P的每一端維持多達1 6個T C P連接,并且知道其中每個連接的首部中的某些字段一般不會發生變化。對于那些發生變化的字段,大多數只是一些小的數字和的改變。這些被壓縮的首部大大地縮短了交互響應時間。
六. PPP:點到點協議
點對點協議修改了S L I P協議中的所有缺陷。P P P包括以下三個部分:
1.在串行鏈路上封裝I P數據報的方法。P P P既支持數據為8位和無奇偶檢驗的異步模式
(如大多數計算機上都普遍存在的串行接口),還支持面向比特的同步鏈;
2.建立、配置及測試數據鏈路的鏈路控制協議( L C P:Link Control Protocol)。它允許通
信雙方進行協商,以確定不同的選項。
3.針對不同網絡層協議的網絡控制協議( N C P:Network Control Protocol)體系。
PPP數據楨的格式如下圖:

與S L I P類似,由于P P P經常用于低速的串行鏈路,因此減少每一幀的字節數可以降低應用程序的交互時延。
總的來說, P P P比S L I P具有下面這些優點:
1) PPP支持在單根串行線路上運行多種協議,不只是I P協議;
2) 每一幀都有循環冗余檢驗;
3) 通信雙方可以進行I P地址的動態協商(使用I P網絡控制協議;
4) 與C S L I P類似,對T C P和I P報文首部進行壓縮;
5) 鏈路控制協議可以對多個數據鏈路選項進行設置。
七. 環回接口
大多數的產品都支持環回接口( Loopback Interface),以允許運行在同一臺主機上的客戶
程序和服務器程序通過T C P / I P進行通信。A類網絡號1 2 7就是為環回接口預留的。根據慣例,大多數系統把I P地址1 2 7 . 0 . 0 . 1分配給這個接口,并命名為l o c a l h o s t。一個傳給環回接口的I P數據報不能在任何網絡上出現。
需要注意的幾點:
1. 傳給環回地址(一般是1 2 7 . 0 . 0 . 1)的任何數據均作為I P輸入;
2. 傳給廣播地址或多播地址的數據報復制一份傳給環回接口,然后送到以太網上;
3. 任何傳給該主機I P地址的數據均送到環回接口。
八. 最大傳輸單元MTU
以太網和8 0 2 . 3對數據幀的長度都有一個限制,其最大值分別是1 5 0 0和1 4 9 2字節。鏈路層的這個特性稱作M T U,最大傳輸單元。
如果I P層有一個數據報要傳,而且數據的長度比鏈路層的M T U還大,那么I P層就需要進行分片( f r a g m e n t a t i o n),
九. 路徑MTU
當在同一個網絡上的兩臺主機互相進行通信時, 兩臺通信主機路徑中的最小M T U。被稱作路徑M T U。
兩臺主機之間的路徑M T U不一定是個常數。它取決于當時所選擇的路由。而選路不一定
是對稱的(從A到B的路由可能與從B到A的路由不同),因此路徑M T U在兩個方向上不一定是一致的。
十. 串行電路吞土量計算
關于人的有關研究表明,交互響應時間超過1 0 0~200 ms就被認為是不好的。
十一. 小結
本章討論了I n t e r n e t協議族中的最底層協議,鏈路層協議。我們比較了以太網和I E E E
8 0 2 . 2 / 8 0 2 . 3的封裝格式,以及S L I P和P P P的封裝格式。由于S L I P和P P P經常用于低速的鏈路,二者都提供了壓縮不常變化的公共字段的方法。這使交互性能得到提高。
大多數的實現都提供環回接口。訪問這個接口可以通過特殊的環回地址,一般為1 2 7 . 0 . 0 . 1。也可以通過發送I P數據報給主機所擁有的任一I P地址。當環回數據回到上層的協議
棧中時,它已經過傳輸層和I P層完整的處理過程。
我們描述了很多鏈路都具有的一個重要特性, M T U,相關的一個概念是路徑M T U。根據典型的串行線路M T U,對S L I P和C S L I P鏈路的傳輸時延進行了計算。
本章的內容只覆蓋了當今T C P / I P所采用的部分數據鏈路公共技術。T C P / I P成功的原因之一是它幾乎能在任何數據鏈路技術上
posted on 2007-08-22 18:46
阿蜜果 閱讀(1426)
評論(2) 編輯 收藏 所屬分類:
網絡通信相關