計網(wǎng)筆記(3)——數(shù)據(jù)鏈路層

數(shù)據(jù)發(fā)送模型
  • 數(shù)據(jù)鏈路層定義幀的開始和結束就轧,檢驗開始和結束之間的數(shù)據(jù)傳輸是否正確。
  • 數(shù)據(jù)鏈路層使用的信道有兩種:點對點信道和廣播信道锅很。
  • 鏈路是一條點對點的物理線路赵抢,中間沒有任何其他交換站點。一條鏈路只是一條通路的一個組成部分确徙。
  • 數(shù)據(jù)鏈路除了物理線路外醒串,還必須有通信協(xié)議來控制這些數(shù)據(jù)的傳輸。若把實現(xiàn)這些協(xié)議的硬件和軟件加到鏈路上鄙皇,就構成了數(shù)據(jù)鏈路芜赌。
  • 在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為(frame),幀是數(shù)據(jù)鏈路層的傳送單位伴逸。數(shù)據(jù)鏈路層給數(shù)據(jù)報加上幀頭缠沈、幀尾、物理層地址和檢驗值违柏。
    幀的傳輸

三個基本問題

1博烂、封裝成幀

封裝成幀就是在一段數(shù)據(jù)前后分別添加首部和尾部,然后構成一個幀漱竖。封裝成幀確定幀的界限禽篱。首部和尾部的作用就是進行幀定界。


幀.png
2馍惹、透明傳輸

透明傳輸是指不管所傳數(shù)據(jù)是什么樣的比特組合躺率,都應當能夠在鏈路上傳送。當所傳數(shù)據(jù)中的比特組合恰巧與某一個控制信息完全一樣時万矾,就必須采取適當?shù)拇胧┑恐ǎ菇邮辗讲粫⑦@樣的數(shù)據(jù)誤認為是某種控制信息。這樣才能保證數(shù)據(jù)鏈路層的傳輸是透明的良狈。

若傳輸?shù)臄?shù)據(jù)是ASCII碼中“可打印字符(共95個)”集時后添,一切正常。若傳輸?shù)臄?shù)據(jù)不是僅由“可打印字符”組成時薪丁,就會出現(xiàn)問題羡玛,SOH表示幀開始符辆亏,EOT表示幀結束符岩馍,如圖所示:


含不可打印字符的幀傳輸

解決方法:

  • 發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符“SOH”或“EOT”的前面加一個轉(zhuǎn)義字符“ESC”(十六進制編碼是1B)翔曲。
  • 字節(jié)填充或字符填充:接收端的數(shù)據(jù)鏈路層在將數(shù)據(jù)送往網(wǎng)絡層前刪除插入的轉(zhuǎn)義字符。
  • 如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)中漫玄,就在轉(zhuǎn)義字符前也插入一個轉(zhuǎn)義字符茄蚯。當接收端收到連續(xù)兩個轉(zhuǎn)義字符時,就刪除前一個轉(zhuǎn)義字符。


    字節(jié)填充
3渗常、差錯控制

傳輸過程中可能產(chǎn)生比特差錯:1可能變成0,0可能變成1壮不。
在一段時間內(nèi),傳輸錯誤的比特占所傳輸比特總數(shù)的比例成為誤碼率BER(Bit Error Rate)凳谦。誤碼率與信噪比有很大關系忆畅。因此需要采用差錯檢測衡未。

在A向B發(fā)送數(shù)據(jù)的鏈路中間會經(jīng)過多個路由器尸执,路由器在數(shù)據(jù)鏈路層檢測數(shù)據(jù)是否正確,如果錯誤就丟棄這個幀缓醋,以保證通過這個路由器傳輸過去的(不包括丟棄的)都是正確的幀如失。

鏈路層只進行差錯檢驗,不進行差錯糾正送粱,差錯糾正由傳輸層進行褪贵,由傳輸層進行可靠傳輸。鏈路層丟棄錯誤的幀后抗俄,發(fā)送端長期得不到幀接收確認信息脆丁,就會重新發(fā)送一次該幀。

循環(huán)冗余校驗CRC
數(shù)據(jù)鏈路層傳輸中廣泛使用了循環(huán)冗余校驗CRC动雹。

  1. 在發(fā)送端槽卫,先把數(shù)據(jù)劃分為組,每組k個比特胰蝠。
  2. 假設待傳送的一組數(shù)據(jù)M=101001(k=6)歼培,我們在M的后面再添加供差錯檢測用的n位冗余碼一起發(fā)送。
    冗余碼的計算:
  • 在二進制M后面添加n個0茸塞。假設n=3躲庄,則M變?yōu)椋╧+n)位的101 001 000.
  • 把(k+n)位的數(shù)除以事先選定好的長度為(n+1)位的除數(shù)P,得到商是Q钾虐,余數(shù)是R噪窘,R為n位,也就是M的CRC冗余校驗碼效扫。把余數(shù)R作為冗余碼添加在數(shù)據(jù)M的后面發(fā)送過去倔监。發(fā)送數(shù)據(jù)是 101 001 001,共(k+n)位荡短。


    Paste_Image.png

注:可以用生成多項式來表示循環(huán)冗余的除數(shù)丐枉,例如P(X)=X3+X2+1可以表示1101這個除數(shù)。

在數(shù)據(jù)后面添加上的冗余碼稱為幀校驗序列FCS(Frame Check Sequence)掘托。循環(huán)冗余檢驗CRC和幀檢驗序列FCS并不等同:

  • CRC是一種常見的檢錯方法瘦锹,而FCS是添加在數(shù)據(jù)后面的冗余碼。
  • FCS可以用CRC這種方法得出,但CRC并非用來獲得FCS的唯一方法弯院。

CRC檢測不能確定究竟是哪一個或哪幾個比特出現(xiàn)了差錯辱士,也不能保證如果出現(xiàn)錯誤就一定能檢測出來(錯誤數(shù)據(jù)也可能得到正確的余數(shù)),但是只要經(jīng)過嚴格的挑選听绳,并使用位數(shù)足夠多的除數(shù)P颂碘,那么出現(xiàn)檢測不到的差錯的概率就很小很小。

PPP協(xié)議實現(xiàn)無差錯接收(錯誤的就丟掉)椅挣,但不實現(xiàn)可靠傳輸头岔。

CRC小結


數(shù)據(jù)鏈路層點到點協(xié)議PPP

點到點PPP協(xié)議

現(xiàn)在全世界使用得最多的數(shù)據(jù)鏈路層協(xié)議是點對點協(xié)議PPP(Point-to-Point Protocol),用戶使用撥號電話線接入因特網(wǎng)時鼠证,一般都是使用PPP協(xié)議峡竣。

PPP協(xié)議幀格式

標志字段F=0x7E標志了幀的開始和結束。
地址字段A只置為0xFF量九,由于是點對點通信适掰,實際上并不起什么作用。
控制字段C通常置為0x03荠列,沒有什么特殊含義类浪。

PPP協(xié)議的透明傳輸(字節(jié)填充):
1. 字節(jié)填充

  • 將信息字段中出現(xiàn)的每個0x7E字節(jié)變成2字節(jié)序列(0x7D,0x5E)肌似。
  • 若信息字段中出現(xiàn)一個0x7D的字節(jié)费就,則將其轉(zhuǎn)變?yōu)?字節(jié)序列(0x7D,0x5D)锈嫩。
  • 若信息字段中出現(xiàn)ASCII碼的控制字符(數(shù)值小于0x20的字符)受楼,則在該字符前加入一個0x7D字節(jié),同時將該字符的編碼加以改變呼寸。

2. 零比特填充
PPP協(xié)議用在SONET/SDH鏈路時艳汽,使用同步傳輸(一連串的比特連續(xù)傳遞,不保證是字節(jié)的整數(shù)倍)对雪。這時PPP協(xié)議采用零比特填充方法來實現(xiàn)透明傳輸河狐。

在發(fā)送端,只要發(fā)現(xiàn)信息部分有5個連續(xù)1瑟捣,則立即填入一個0.接收端對幀中的比特流進行掃描馋艺,每當發(fā)現(xiàn)5個連續(xù)1時,就把這5個連續(xù)1后面的一個0刪除迈套。

零比特填充例子

廣播信道的數(shù)據(jù)鏈路層

碰撞檢測
爭用期
二進制指數(shù)類型退避算法

以太網(wǎng)

以太網(wǎng)提供的服務是不可靠的交付捐祠,即盡最大努力的交付。
當接收站收到有差錯的數(shù)據(jù)幀時就丟棄此幀桑李,其他什么也不做踱蛀。差錯的糾正由高層來決定窿给。如果高層發(fā)現(xiàn)丟失了一些數(shù)據(jù)而進行重傳,但以太網(wǎng)并不知道這是一個重傳的幀率拒,而是當做一個新的數(shù)據(jù)幀來發(fā)送崩泡。

信道利用率

一個幀從開始發(fā)送,經(jīng)可能發(fā)生的碰撞后猬膨,將再重傳數(shù)次角撞,到發(fā)送成功且信道轉(zhuǎn)為空閑(即再經(jīng)過t時間使得信道上無信號在傳播)時為止,是發(fā)送一幀所需的平均時間

MAC層(媒體訪問控制層)

MAC地址勃痴,又稱硬件地址或物理地址谒所,48位,前三字節(jié)(高位24位)由IEEE的注冊管理機構RA向廠家分配召耘,后三字節(jié)(低24位)由廠家自行指派百炬,必須保證生產(chǎn)出的適配器沒有重復地址。這種48位地址稱為MAC-48污它,通用名稱為EUI-48.

MAC地址不可更改,但是可以更改通信時的MAC地址庶弃,也相當于“更改”了MAC地址衫贬。

MAC幀格式
  • 類型字段用來標識上一層使用的是什么協(xié)議,以便把收到的MAC幀的數(shù)據(jù)上交給上一層的這個協(xié)議歇攻。
  • 數(shù)據(jù)字段的正式名稱是MAC客戶數(shù)據(jù)字段
    最小長度64字節(jié) - 18字節(jié)的首部和尾部 = 數(shù)據(jù)字段的最小長度46字節(jié)
    當數(shù)據(jù)字段的長度小于46字節(jié)時固惯,應在數(shù)據(jù)字段的后面加入整數(shù)字節(jié)的填充字段,以保證以太網(wǎng)的MAC幀長不小于64字節(jié)缴守。
  • 為了達到比特同步葬毫,在傳輸媒體上實際傳送的要比MAC幀還多8字節(jié)。在幀前面插入的8字節(jié)中第一個字段共7個字節(jié)屡穗,是前同步碼贴捡,用來迅速實現(xiàn)MAC幀的比特同步。第二個字段是幀開始定界符村砂,表示后面的信息就是MAC幀烂斋。

無效的MAC幀:
1)幀長度不是整數(shù)個字節(jié);
2)用收到的幀檢驗序列FCS查出有差錯础废;
3)數(shù)據(jù)字段的長度不在46~1500字節(jié)內(nèi)汛骂。

幀最小間隔:
幀間隔最小間隔為9.6 us,相當于96 bit的發(fā)送時間(10M以太網(wǎng))评腺。一個站在檢測到總線開始空閑后帘瞭,還要等待9.6 us才能再次發(fā)送數(shù)據(jù)。這樣做是為了使剛剛收到數(shù)據(jù)幀的站的接收緩存來得及清理蒿讥,做好接收下一幀的準備蝶念。

百兆以太網(wǎng)(100Base-T)的幀最小間隔為0.96 us


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锋拖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子祸轮,更是在濱河造成了極大的恐慌兽埃,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件适袜,死亡現(xiàn)場離奇詭異柄错,居然都是意外死亡,警方通過查閱死者的電腦和手機苦酱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門售貌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人疫萤,你說我怎么就攤上這事颂跨。” “怎么了扯饶?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵恒削,是天一觀的道長。 經(jīng)常有香客問我尾序,道長钓丰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任每币,我火速辦了婚禮携丁,結果婚禮上,老公的妹妹穿的比我還像新娘兰怠。我一直安慰自己梦鉴,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布揭保。 她就那樣靜靜地躺著肥橙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掖举。 梳的紋絲不亂的頭發(fā)上快骗,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音塔次,去河邊找鬼方篮。 笑死,一個胖子當著我的面吹牛励负,可吹牛的內(nèi)容都是我干的藕溅。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼继榆,長吁一口氣:“原來是場噩夢啊……” “哼巾表!你這毒婦竟也來了汁掠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤集币,失蹤者是張志新(化名)和其女友劉穎考阱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞠苟,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡乞榨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了当娱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吃既。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跨细,靈堂內(nèi)的尸體忽然破棺而出鹦倚,到底是詐尸還是另有隱情,我是刑警寧澤冀惭,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布震叙,位于F島的核電站,受9級特大地震影響云头,放射性物質(zhì)發(fā)生泄漏捐友。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一溃槐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧科吭,春花似錦昏滴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牺弄,卻和暖如春姻几,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背势告。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工蛇捌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咱台。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓络拌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親回溺。 傳聞我的和親對象是個殘疾皇子春贸,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容