數據鏈路層屬於計算機網絡的底層,使用的信道主要有點對點信道和廣播信道兩種類型。
在TCP/IP協議族中,數據鏈路層主要有三個目的:
1)爲IP模塊發送和接收數據
2)爲ARP模塊發送ARP請求和接收ARP應答
3)爲RARP模塊發送RARP請求和接收RARP應答
TCP/IP支持多種不一樣的鏈路層協議,這取決於網絡所使用的硬件,如以太網,令牌環網,FDDI(光纖分佈式數據接口)及RS-232串行線路等。
數據鏈路層的協議數據單元——幀:將IP層(網絡層)的數據報添加首部和尾部封裝成幀。
數據鏈路層協議有許多種,都會解決三個基本問題,封裝成幀,透明傳輸,差錯檢測。
2.以太網和IEEE802的封裝
如圖所示,顯示了兩種不一樣形式的封裝格式。最常使用的封裝格式是RFC894定義的格式。兩種幀格式均採用48bit(6 byte)的目的地址和源地址。
3. SLIP, CSLIP, PPP
SLIP:Serial Line IP
串行線路 IP (SLIP)用於運行 TCP/IP 的點對點串行鏈接。 SLIP 一般專門用於串行鏈接,有時候也用於撥號,使用的線路速率通常介於 1200bps 和 19.2Kbps 之間。 SLIP 容許主機和路由器混合鏈接通訊(主機 - 主機、主機 - 路由器、路由器 - 路由器都是 SLIP 網絡通用的配置),於是很是有用。
SLIP 只是一個包組幀協議,僅僅定義了在串行線路上將數據包封裝成幀的一系列字符。它沒有提供尋址、包類型標識、錯誤檢查 / 修正或者壓縮機制。
1) IP數據報以一個稱做END(0 x c 0)的特殊字符結束。同時,爲了防止數據報到來以前的線路噪聲被當成數據報內容,大多數實如今數據報的開始處也傳一個E N D字符(若是有線路噪聲,那麼E N D字符將結束這份錯誤的報文。這樣當前的報文得以正確地傳輸,而前一個錯誤報文交給上層後,會發現其內容毫無心義而被丟棄)。
2) 若是I P報文中某個字符爲END,那麼就要連續傳輸兩個字節0 x d b和0 x d c來取代它。0 x d b這個特殊字符被稱做SLIP的ESC字符,可是它的值與ASCII碼的E S C字符(0 x 1 b)不一樣。
3) 若是I P報文中某個字符爲SLIP的ESC字符,那麼就要連續傳輸兩個字節0 x d b和0 x d d來取代它。
壓縮串行線路 IP (CSLIP)在傳送出的 IP 分組上執行 Van Jacobson 頭部壓縮。CSLIP(即壓縮SLIP)的新協議,它在RFC 1144[Jacobson 1990a]中被詳細描述。C S L I P通常能把上面的4 0個字節壓縮到3或5個字節。它能在C S L I P的每一端維持多達1 6個T C P鏈接,而且知道其中每一個鏈接的首部中的某些字段通常不會發生變化。這個壓縮過程顯著提升了交互式會話吞吐量。
- 點對點協議(PPP)普遍替代了 SLIP ,由於它有更多特性和更靈活。
PPP包括如下三部分:
1) 在串行鏈路上封裝I P數據報的方法。P P P既支持數據爲8位和無奇偶檢驗的異步模式(如大多數計算機上都廣泛存在的串行接口),還支持面向比特的同步連接。
2) 創建、配置及測試數據鏈路的鏈路控制協議( L C P:Link Control Protocol)。它容許通訊雙方進行協商,以肯定不一樣的選項。
3) 針對不一樣網絡層協議的網絡控制協議( N C P:Network Control Protocol)體系。當前R F C定義的網絡層有I P、O S I網絡層、D E C n e t以及A p p l e Ta l k。例如,IP NCP容許雙方商定是否對報文首部進行壓縮,相似於C S L I P(縮寫詞N C P也可用在T C P的前面)。
PPP協議都以標誌字符0x7e開始和結束,緊接着是一個地址字節,值始終是0xff,而後是一個0x03的控制字節。接下來是協議字段。
0x0021:IP數據報
0xc021:鏈路控制數據
0x8021:網絡控制數據
接下來則爲信息數據內容,CRC驗證碼,結束標誌0x7e
4.最大傳輸單元 MTU
最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通訊協議的某一層上面所能經過的最大數據包大小(以字節爲單位)。
若是在IP層要傳輸一個數據報比鏈路層的MTU還大,那麼IP層就會對這個數據報進行分片。一個數據報會被分爲若干片,每一個分片的大小都小於或者等於鏈路層的MTU值。當同一網絡上的主機互相進行通訊時,該網絡的MTU對通訊雙方很是重要。但當主機間要經過不少網絡才能通訊時,對通訊雙方最重要的是通訊路徑中最小的MTU,由於在通訊路徑上不一樣網絡的鏈路層MTU不一樣。通訊路徑中最小的MTU被稱爲路徑MTU。
網絡中一些常見鏈路層協議MTU的缺省數值以下:
- FDDI協議:4352字節
- 以太網(Ethernet)協議:1500字節
- PPPoE(ADSL)協議:1492字節
- X.25協議(Dial Up/Modem):576字節
- Point-to-Point:4470字節
5.CSMA/CD(Carrier Sense Multiple Access/Collision Detect)即載波監聽多路訪問/衝突檢測機制。
做用:
載波監聽多點接入/碰撞檢測是防止鏈接在總線上的各站點之間發生衝突,協調總線上各計算機工做的協議。
多點接入:
說明這是總線型網絡,許多計算機以多點接入的方式鏈接到總線上
載波監聽:
是指每個站在發送數據以前要檢測一下總線上是否有其餘的計算機在發送數據,若是有,則暫時不發送數據,以避免發生碰撞
碰撞檢測:
邊發送數據邊檢測信道上的信號電壓大小。當信號電壓擺動值超過必定的門限值,代表發生了碰撞。當即中止發送,等待一段時間後再次發送。