3.1 數(shù)據(jù)鏈路層的基本概念3.1.1 數(shù)據(jù)鏈路層的簡單模型數(shù)據(jù)鏈路層不關(guān)心物理層解決的問題,只關(guān)心幀頭幀尾和校驗,。 ? 3.1.1 數(shù)據(jù)鏈路層的信道類型 ->點到點信道:這種信道使用一對一的點對點通信方式,。 ->廣播信道:廣播信道上的主機(jī)很多,需要專用的共享信道協(xié)議來協(xié)調(diào)主機(jī)的數(shù)據(jù)發(fā)送,。 3.1.2 鏈路與數(shù)字鏈路 ->鏈路(link)——是一條點到點的物理線路段,,中間沒有任何其他的交換節(jié)點。一條鏈路只是一條通路的一個組成部分,。 ->數(shù)據(jù)鏈路(data link)——除了物理線路外,,還必須有通信協(xié)議來控制這些數(shù)據(jù)的傳輸。若把實現(xiàn)這些協(xié)議的硬件和軟件加到鏈路上,就構(gòu)成了數(shù)據(jù)鏈路,。最常用的方法是使用適配器(網(wǎng)卡)來實現(xiàn)這些協(xié)議的硬件和軟件,。一般的適配器都包括了數(shù)據(jù)鏈路層和物理層這兩層的功能。 3.1.3 幀 在網(wǎng)絡(luò)層,,給數(shù)據(jù)包增加了接收端和發(fā)送端的IP地址,。在數(shù)據(jù)鏈路層里,增加了幀頭幀尾,,MAC地址和校驗值,。 ? 3.2 數(shù)據(jù)鏈路層解決的基本問題3.2.1 封裝成幀(framing)就是在一段數(shù)據(jù)的前后分別添加幀頭和幀尾,構(gòu)成一個幀,,確定幀的界限,。 ? 但是,可能會出現(xiàn)以下問題,, ? 3.2.2 透明傳輸 用字節(jié)填充法解決透明傳輸問題,。發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符“SOH”或“EOT”的前面插入一個轉(zhuǎn)義字符“ESC”(十六進(jìn)制數(shù)1B)。 字節(jié)填充(byte stuffing)或字符填充(character stuffing)——接收端的數(shù)據(jù)鏈路層在數(shù)據(jù)送往網(wǎng)絡(luò)層之前殺出插入的轉(zhuǎn)義字符,。 如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)之中,,那么應(yīng)該在轉(zhuǎn)義字符前插入一個轉(zhuǎn)義字符。當(dāng)接收端收到連續(xù)的兩個轉(zhuǎn)義字符時,,就刪除前面的那一個,。 ? 3.2.3 差錯校驗 傳輸過程中可能會產(chǎn)生bit差錯:0變成1,1變成0. 在一段時間內(nèi),,傳輸錯誤的比特率占所傳輸比特總數(shù)的比率稱為誤碼率BER(bit error rate),。 誤碼率和信噪比的關(guān)系很大。 為了保證數(shù)據(jù)傳輸?shù)目煽啃?,在計算機(jī)網(wǎng)絡(luò)傳輸數(shù)據(jù)時,,必須采用各種差錯檢驗措施。 ->循環(huán)冗余檢驗CRC: 除數(shù)必須比后面添加的0的位數(shù)多一位,,可以是任意的二進(jìn)制數(shù),。每一步運(yùn)算其實是不進(jìn)位的加法。下圖的001就是FCS幀檢驗序列,。接收端計算101001001(也就是原數(shù)據(jù)加上FCS)除以1101,,如果商為0,意味著傳輸過程沒有差錯,,就接受,,否則丟棄,。 ? 在數(shù)據(jù)后面添加的冗余碼稱為幀檢驗序列FCS(frame check seqeunce),。CRC不是獲得FCS的唯一方法。 特點: 不能確定出錯的bit的是哪一位; 可能會出錯,,但只要經(jīng)過嚴(yán)格的挑選,,并且除數(shù)位數(shù)足夠大,就可以極大減少出錯概率,; CRC只能做到無差錯接受(意思是傳輸過程沒有差錯,,有差錯的一律丟棄); 要做到可靠傳輸,,必須加上確認(rèn)和重傳機(jī)制,。 3.3 兩種情況下的數(shù)據(jù)鏈路層 3.3.1 使用點對點信道的數(shù)據(jù)鏈路層(廣域網(wǎng)) (1)PPP協(xié)議(point to point protocol),是數(shù)據(jù)鏈路層協(xié)議,,例如用戶使用撥號上網(wǎng),。 (2)PPP協(xié)議應(yīng)該滿足: 簡單;封裝成幀,;透明性,;多種網(wǎng)絡(luò)層協(xié)議;多種類型鏈路,;差錯檢驗,;檢測連接狀態(tài);最大傳送單元,;網(wǎng)絡(luò)層地址協(xié)商,;數(shù)據(jù)壓縮協(xié)商; (3)PPP協(xié)議不需要滿足: 糾錯,;流量控制,;序號;多點鏈接,;半雙工或單工連接,。 (4)PPP協(xié)議的組層部分: 數(shù)據(jù)鏈路層協(xié)議可以用于異步串行或同步串行介質(zhì); 使用LCP(鏈路控制協(xié)議)建立并維護(hù)數(shù)據(jù)鏈路連接,,可以實現(xiàn)身份驗證和欠費管理,; 網(wǎng)絡(luò)控制協(xié)議(NCP)允許在點到點連接上使用多種網(wǎng)絡(luò)層協(xié)議,如下圖,; ? (5)PPP協(xié)議幀格式 ? (6)字節(jié)填充(類似于透明傳輸) 此時,,信息部分是以字節(jié)為單位的。 將信息字段中出現(xiàn)的每個0x7E字節(jié)轉(zhuǎn)變成為2字節(jié)序列(0x7D,0x5E); 將信息字段中出現(xiàn)的每個0x7D字節(jié)轉(zhuǎn)變成為2字節(jié)序列(0x7D,0x5D); 將信息字段中出現(xiàn)的每個ASCII碼控制字符(小于0x20字符),,在前面加入一個0x7D,; (7)0比特填充(類似于透明傳輸) 此時,,信息部分是二進(jìn)制流。PPP協(xié)議在SONET/SDH鏈路時,,是使用同步傳輸,。 在發(fā)送端,只要發(fā)現(xiàn)有5個連續(xù)的1,,則填充一個0,,接收端刪掉對應(yīng)的0。 ? (8)PPP協(xié)議不使用序號和確認(rèn)機(jī)制的原因 在數(shù)據(jù)鏈路層出現(xiàn)錯誤的概率不大時,,使用較簡單的PPP協(xié)議較為合理,; 在Internet環(huán)境下,PPP的信息字段放入的數(shù)據(jù)是IP數(shù)據(jù)報,。數(shù)據(jù)鏈路層的可靠傳輸并不能保證網(wǎng)絡(luò)層的傳輸也是可靠的,; 幀檢驗序列FCS字段可以保證無差錯接受。 (9)PPP協(xié)議的工作狀態(tài) 當(dāng)用戶撥號接入ISP(網(wǎng)絡(luò)運(yùn)營商)時,,陸游去的調(diào)制解調(diào)器對撥號進(jìn)行確認(rèn),,建立物理連接; PC機(jī)箱路由器發(fā)送一些列的LCP(鏈路控制協(xié)議)分組(封裝成多個PPP幀),; 這些分組及其響應(yīng)選擇一些PPP參數(shù),,和進(jìn)行網(wǎng)絡(luò)層配置,NCP(網(wǎng)絡(luò)控制協(xié)議)給新接入的PC機(jī)分配一個臨時的IP地址,,使PC機(jī)成為Internet上的一個主機(jī),; 通信完畢后,NCP釋放網(wǎng)絡(luò)層連接,,收回原來分配出去的IP地址,; 接著,LCP釋放數(shù)據(jù)鏈路層連接,; 最后釋放的事物理層連接,。 3.3.2 使用廣播信道的數(shù)據(jù)鏈路層(局域網(wǎng)) 一般是總線型。 (1)局域網(wǎng)的拓?fù)?/p> ? (2)共享通信媒體 靜態(tài)劃分信道(麻煩): 頻分復(fù)用,;時分復(fù)用,;波分復(fù)用;碼分復(fù)用,; 動態(tài)媒體接入控制(多點接入): 隨機(jī)接入(主要是以太網(wǎng)),;受控接入,如多點線路探詢(polling),,輪詢(不采用了),。 (3)認(rèn)識以太網(wǎng) 最初的以太網(wǎng)是將許多計算機(jī)都連接到一根總線上,當(dāng)初認(rèn)為這樣連接即簡單又可靠,,因為總線上沒有有源器件,。 總線上每一個主機(jī)都能檢測到B發(fā)送的數(shù)據(jù),。但是只有D的地址和數(shù)據(jù)幀首部寫入的地址一致,所以只有D接收,。其余計算機(jī)都能檢測到這不是發(fā)送給他們的數(shù)據(jù)幀,所以就丟棄這個數(shù)據(jù)幀,。 這是一種具有廣播特性的總線上實現(xiàn)了一對一通信,。這種方式不安全。 ? (4)帶沖突檢測的載波監(jiān)聽/碰撞檢測 CSMA/CD: Carrier Sense Multiple Access with Collision Detection 多點接入: 許多計算機(jī)以多點接入的方式連接在一根總線上,。 載波監(jiān)聽: 每一個站在發(fā)送數(shù)據(jù)之前都先要用電子技術(shù)檢測一下總線時候有其它計算機(jī)在發(fā)送數(shù)據(jù)信號,,如果有則不發(fā)送數(shù)據(jù),以免發(fā)生碰撞,; (5)碰撞檢測 碰撞檢測就是計算機(jī)邊發(fā)送數(shù)據(jù)邊檢測信道上信號電壓的大小,。 當(dāng)幾個站同時在總線上發(fā)送數(shù)據(jù)時,總線上的信號電壓擺動值將會增大,; 當(dāng)一個站檢測到信號地哪呀擺動值超過一定的門限值時,,就認(rèn)為總線上至少有兩個站在同時發(fā)送數(shù)據(jù),表明產(chǎn)生了碰撞,; 碰撞就是沖突,,碰撞檢測也稱沖突檢測。 檢測到碰撞后: 在發(fā)生碰撞時,,總線上傳輸?shù)男盘柈a(chǎn)生了嚴(yán)重的失真,,無法從中恢復(fù)出有用的信息; 每一個正在發(fā)送數(shù)據(jù)的站,,一旦發(fā)現(xiàn)總線上出現(xiàn)了碰撞,,就立即停止發(fā)送,避免浪費網(wǎng)絡(luò)資源,,等待一個隨機(jī)的時間后再次發(fā)送,。 (6)傳播時延對載波監(jiān)聽的影響 ? 在2t時間內(nèi),可能存在碰撞,。 (7)CSMA/CD的重要特性 使用CSMA/CD協(xié)議的以太網(wǎng)不能進(jìn)行全雙工通信而只能進(jìn)行雙向交替通信(半雙工),; 每個站在發(fā)送數(shù)據(jù)之后的一小段時間內(nèi),存在著遭遇碰撞的可能,; 這種發(fā)送的不確定性使整個以太網(wǎng)的平均通信量遠(yuǎn)小于以太網(wǎng)的最高數(shù)據(jù)率,。 (8)爭用期 最先發(fā)送數(shù)據(jù)幀的站,在發(fā)送數(shù)據(jù)幀后至多經(jīng)過時間2t(2倍的端到端往返時延)就可知道發(fā)送的數(shù)據(jù)幀是否發(fā)生了碰撞,。 經(jīng)過爭用期這段時間還沒有檢測到碰撞,,就可以肯定不會發(fā)生碰撞; 以太網(wǎng)的爭用期: ->以太網(wǎng)的端到端往返時延2t稱為爭用期,,或碰撞窗口,,通常取51.2微秒為爭用期的長度,;如果網(wǎng)線過長,會導(dǎo)致爭用期時間的延長,,這也是為什么網(wǎng)線一般不超過100m,; ->對于10Mb/s的以太網(wǎng),在爭用期可以發(fā)送512bit,,也就是64 byte,; ->以太網(wǎng)在發(fā)送數(shù)據(jù)的時候,若前64字節(jié)沒有沖突,,后續(xù)也不會發(fā)生沖突,; 最短有效幀長: ->如果發(fā)生沖突,一定是前64字節(jié),; ->由于一旦發(fā)生沖突就立刻停止,,所以已發(fā)送的數(shù)據(jù)一定小雨64字節(jié); ->以太網(wǎng)規(guī)定了最短有效幀長為64字節(jié),,凡事小雨64字節(jié)的幀一定是因為沖突而異常終止的無效幀,。 (9)二進(jìn)制指數(shù)類型退避算法 發(fā)送碰撞的站在停止發(fā)送數(shù)據(jù)后,要推遲一個隨機(jī)事件才能發(fā)送數(shù)據(jù),。 確定基本退避時間,,一般是爭用期2t; 定義參數(shù)k = min(重傳次數(shù),,10),; 從整數(shù)集合{0,1,…,2^k-1}中隨機(jī)取出一個數(shù),記為r,,重傳所需的時延就是r倍的基本退避時間,; 當(dāng)重傳達(dá)16次時仍不能成功時就丟棄該幀,并向高層報告,。 3.4 以太網(wǎng) 3.4.1 以太網(wǎng)的兩個標(biāo)準(zhǔn) DIX Ethernet V2一般是指這個,。 IEEE 802.3 兩個標(biāo)準(zhǔn)差別很小。 以太網(wǎng) 是滿足DIX Ethernet V2標(biāo)準(zhǔn)的局域網(wǎng),。 3.4.2 以太網(wǎng)與數(shù)據(jù)鏈路層的2個子層 為了使數(shù)據(jù)鏈路層更好的適應(yīng)多種局域網(wǎng)標(biāo)準(zhǔn),,802委員會把局域網(wǎng)拆分為: ->邏輯鏈路控制LLC(Logical Link Control)子層; ->媒體接入控制MAC(Medium Access Control)子層,。 與接入到傳輸媒體有關(guān)的內(nèi)容都放在MAC子層上,,而LLC子層與傳輸媒體無關(guān),不管什么協(xié)議的局域網(wǎng)對LLC子層都是透明的,; 由于局域網(wǎng)標(biāo)準(zhǔn)一般是DIX Ethernet V2而不是IEEE 802.3,,所以802.2標(biāo)準(zhǔn)的LLC子層作用已經(jīng)不大了,很多廠商適配器沒有LLC協(xié)議,; 3.4.3 以太網(wǎng)提供的服務(wù) 以太網(wǎng)提供服務(wù)是不可靠的交付,,即最大努力的交付,; 當(dāng)接收站收到的有差錯的數(shù)據(jù)幀時就丟棄此幀,其它什么也不做,,差錯的糾正由高層來處理,; 如果高層發(fā)現(xiàn)丟失了一些數(shù)據(jù)而進(jìn)行重傳,但以太網(wǎng)并不知道這是一個重傳的幀,,而是當(dāng)作一個新幀發(fā)送,。 3.4.4 以太網(wǎng)的星型拓?fù)浣Y(jié)構(gòu) 物理上是星型,邏輯上是總線型,。 為了降低成本,,最初由粗的同軸電纜變成細(xì)的同軸電纜最后變成無屏蔽雙絞線,。每個站需要用兩對雙絞線,,分別用于發(fā)送和接收; 在星形的中心增加了一種可靠性高的設(shè)備,,為集線器(hub),。 ? 3.4.5 集線器的特點 集線器使用電子器件來模擬實際電纜線的工作,因此整個系統(tǒng)仍然是像一個傳統(tǒng)的以太網(wǎng)那樣運(yùn)行,。由于集線器使用了大規(guī)模集成電路芯片,,所以可靠性更高; 使用集線器邏輯上仍然是一個總線網(wǎng),,各工作站使用的還是CSMA/CD協(xié)議,,共享邏輯網(wǎng)絡(luò)上的總線; 集線器像一個多接口的轉(zhuǎn)發(fā)器,,工作在物理層,。 ? 3.4.6 10Base-T 基于集線器的以太網(wǎng)標(biāo)準(zhǔn) 它的通信距離稍短,每個站到集線器的距離不超過100m,。 這種10MB/s的無屏蔽雙絞線星形網(wǎng)的出現(xiàn),,能降低成本和提高可靠性。 10Base-T的出現(xiàn)有很大的意義,,類似標(biāo)準(zhǔn)有100Base-FX,,10Base-T,100Base-T4. 3.4.7 信道利用率 爭用期長度為2t,;幀長為L bit,,數(shù)據(jù)發(fā)送旅為C b/s,幀的發(fā)送時間為L/C = T0 秒,。 一個幀從開始發(fā)送,,經(jīng)可能發(fā)生的碰撞后,將再次重傳多次,,直到發(fā)送成功且信道轉(zhuǎn)為空閑(即再經(jīng)過t使得信道上沒有信號在傳播)時為止,,是發(fā)送一幀所需的平均時間,。 ? 定義a = t / T0,是單程端到端時延t與幀發(fā)送時間T0的比值,。a越小,,說明碰撞檢測越快,信道利用率高,。 當(dāng)數(shù)據(jù)率(網(wǎng)速)一定時,,以太網(wǎng)的連線長度受到限制,否則t會太長,; 以太網(wǎng)的幀長不能太短,,否則T0太小,使a太大,。 3.4.8 信道利用率的最大值 假設(shè)理想狀態(tài)下,,以太網(wǎng)個展發(fā)送的數(shù)據(jù)都不會碰撞,一旦總線空閑就能有站立即發(fā)送數(shù)據(jù),,所以沒有爭用期,; 發(fā)送一幀需要占用總線T0+t,而幀本身需要發(fā)送時間為T0,,于是理想情況下極限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a). 3.5 MAC層 3.5.1 MAC層的硬件地址(MAC地址) 硬件地址 = 物理地址 = MAC地址 MAC地址前3個字節(jié)(24位)是廠家分配的地址字段,,后3個字節(jié)(24位)是廠家自定義,稱為擴(kuò)展標(biāo)識符,; 一個地址塊可以產(chǎn)生2^24個地址,,這種48位地址稱為MAC-48,通用名為EUI-48,,這就是MAC地址,; MAC地址實際上是每一個站的名字或標(biāo)識符。 3.5.2 適配器檢查MAC地址 適配器從網(wǎng)絡(luò)上每收到一個MAC幀就要用硬件檢查MAC幀中的MAC地址: ->如果是發(fā)往本站的幀就收下,,然后進(jìn)行其它處理,; ->否則丟棄。 發(fā)往本站的幀包括: ->單播幀(unicast)(一對一) ->廣播幀(broadcast)(一對全體) ->多播幀(multicast)(一對多) 3.5.3 MAC幀的格式 6 + 6 + 2 + 46 + 4 =64 byte,,這就是為什么IP數(shù)據(jù)報的最短長度為46字節(jié),。 ? 前8個字節(jié)的作用是實現(xiàn)比特同步,第一個字段共7個字節(jié),,稱為前同步碼,,作用是實現(xiàn)快速MAC幀的比特同步;第二個字段是幀開始定界符,,表示后面的信息是MAC幀,。 ? 3.5.4 無效的MAC幀 幀的長度不是整數(shù)個字節(jié); 用收到的幀檢驗序列FCS查出有錯誤; 數(shù)據(jù)字段的長度不在46-1518字節(jié)內(nèi),; 對于檢查出來的無效MAC幀簡單的丟棄,。 3.5.5 幀間最小間隔 為9.6微秒。相當(dāng)于96bit的發(fā)送時間,。 一個站在檢測到總線空閑時,,還需要等待9.6微秒后才能再次發(fā)送數(shù)據(jù),這樣做是為了使剛剛收到的數(shù)據(jù)幀的站接收緩存來得及清理,,做好接收下一幀的準(zhǔn)備,。 3.6 數(shù)據(jù)幀的抓包分析 3.7 擴(kuò)展以太網(wǎng) 3.7.1 在物理層考慮擴(kuò)展 (1)距離的擴(kuò)展 主機(jī)使用光纖和一對光纖調(diào)制解調(diào)器連接到集線器。 ? (2)數(shù)量的擴(kuò)展 ? 3.7.2 在數(shù)據(jù)鏈路層考慮擴(kuò)展 (1)使用網(wǎng)橋 ? (2)交換機(jī) 隨著網(wǎng)橋的接口的增加, 后來網(wǎng)橋和集線器合并了,,計算機(jī)可以直接和交換機(jī)連接,,這就是交換機(jī)。 交換機(jī)就是網(wǎng)橋和集線器的合并升級版,,能全雙工,,安全通信。 端口帶寬獨享,; 安全,; 基于MAC地址轉(zhuǎn)發(fā); 通過學(xué)習(xí)構(gòu)建MAC地址表,。 (3)透明網(wǎng)橋(transparent ) 透明指局域網(wǎng)上的站點不知道所發(fā)送的幀將經(jīng)過幾個網(wǎng)橋,,因為網(wǎng)橋?qū)τ诟髡军c是看不見的。 透明網(wǎng)橋是一種即插即用的設(shè)備,,標(biāo)準(zhǔn)是IEEE 802.1D,。 ? 透明網(wǎng)橋使用了生成樹算法。避免產(chǎn)生轉(zhuǎn)發(fā)的幀在網(wǎng)絡(luò)中不停的轉(zhuǎn)圈,。 ? ? 3.8 快速以太網(wǎng)(fast ethernet) 3.8.1 100Base-T以太網(wǎng) 速率在100Mb/s以上的以太網(wǎng)稱為高速以太網(wǎng),。 在雙絞線上傳送100Mb/s基帶信號的星型拓?fù)湟蕴W(wǎng),仍使用IEEE 802.3的CSMA/CD協(xié)議。100Base-T以太網(wǎng)被稱為快速以太網(wǎng)(fast ethernet),。 100Base-T以太網(wǎng)的物理層: ->100Base-TX:使用2對UTP 5類線或屏蔽雙絞線STP,。 ->100Base-FX:使用2對光纖。 ->100Base-T4:使用4對UTP 3類線或5類線,。 3.8.2 100Base-T以太網(wǎng)的特點 可以實現(xiàn)全雙工通信(注意,,如果交換機(jī)上某一路連接著集線器(半雙工),則這一路不能實現(xiàn)全雙工)而無沖突,,此時不使用CSMA/CD協(xié)議,。 MAC幀格式不變,仍是802.3 標(biāo)準(zhǔn),。 最短幀長度不變,,但是一個網(wǎng)段的最大電纜長度減少到100m。 幀間間隔從9.6微秒縮小到0.96微秒,。 3.8.3 吉比特Gbit以太網(wǎng) 允許在1 Gb/s下全雙工或半雙工工作方式,。 使用802.3標(biāo)準(zhǔn)的幀格式。 在半雙工下使用CSMA/CD協(xié)議,。 與10Base-T和100Base-T技術(shù)向后兼容,。 當(dāng)吉比特以太網(wǎng)在全雙工方式時,不用載波延伸和分組沖突,。 1000Base-X以太網(wǎng)的物理層(基于光纖通道): ->1000Base-SX:SX表示短波長,,傳輸距離上275m或550m。 ->1000Base-LX:LX表示長波長,,傳輸距離上550m或5000m,。 ->1000Base-CX: 1000Base-T以太網(wǎng)的物理層(基于雙絞線): ->使用 4對 5類線UTP。 ? 3.8.4 10Gbit/s以太網(wǎng) MAC幀格式不變,,仍是802.3 標(biāo)準(zhǔn),。 使用光纖而不是銅線。 只能工作在全雙工方式,,沒有爭用問題,。 它的出現(xiàn)使工作范圍從局域網(wǎng)擴(kuò)大到城域網(wǎng)和廣域網(wǎng),實現(xiàn)了端到端的以太網(wǎng)傳輸,,優(yōu)點是:技術(shù)成熟,;互操作性好;廣域網(wǎng)中使用以太網(wǎng)便宜,;統(tǒng)一的幀格式,。 3.8.5 以太網(wǎng)從10Mb/s到10Gb/s的演變說明了 可拓展性; 靈活性(多種傳輸媒體,,全/半雙工,,共享/交換); 易于安裝; 穩(wěn)健性好,。 3.8.6 Cisco建網(wǎng)的3層模型 |
|