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