Chapter3 數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層解決下一步怎么走的問(wèn)題
- 向網(wǎng)絡(luò)層提供一個(gè)定義良好的服務(wù)接口
- 處理傳輸錯(cuò)誤
- 從網(wǎng)絡(luò)層獲取分組,并且將分組封裝到幀中以便傳輸。每一個(gè)幀包含一個(gè)幀頭,一個(gè)靜載荷(用于存放分組),以及一個(gè)幀尾。
數(shù)據(jù)鏈路層提供一下三種服務(wù)
- 無(wú)確認(rèn)的無(wú)連接服務(wù)
- 有確認(rèn)的無(wú)連接服務(wù)
- 有確認(rèn)的面向連接的服務(wù)
數(shù)據(jù)鏈路層使用的信道有一下兩種類(lèi)型
- 點(diǎn)對(duì)點(diǎn)信道。使用一對(duì)一的點(diǎn)對(duì)點(diǎn)通信方式
- 廣播信道。使用一對(duì)多的廣播通信方式,過(guò)程較復(fù)雜。
使用點(diǎn)對(duì)點(diǎn)信道的數(shù)據(jù)鏈路層
鏈路:一條無(wú)源的點(diǎn)到點(diǎn)的物理線(xiàn)路段,中間沒(méi)有任何其他的交換節(jié)點(diǎn)。
數(shù)據(jù)鏈路:除了物理線(xiàn)路外,還加了協(xié)議來(lái)控制數(shù)據(jù)的傳輸。把協(xié)議的硬件和軟件加到鏈路上就構(gòu)成了數(shù)據(jù)鏈路。(鏈接 + 通信協(xié)議,物理層 + 數(shù)據(jù)鏈路層)
-
封裝成幀
首部和尾部的一個(gè)重要作用就是進(jìn)行幀定界。
在數(shù)據(jù)的前后分別添加首部和尾部。
-
透明傳輸
問(wèn)題的解決方法:
- 發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符“SOH”“EOT”,在它們的前面插入一個(gè)轉(zhuǎn)義字符“ESC”。
- 字節(jié)填充(byte stuffing)接收端的數(shù)據(jù)鏈路層在將數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除插入的轉(zhuǎn)義字符。
- 如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)當(dāng)中,在轉(zhuǎn)義字符之前也插入一個(gè)轉(zhuǎn)義字符,當(dāng)接收端收到兩個(gè)轉(zhuǎn)義字符的時(shí)候就刪除其中的一個(gè)。
- 差錯(cuò)檢測(cè)
存在的問(wèn)題:在傳輸過(guò)程中可能會(huì)產(chǎn)生比特差錯(cuò) 0-> 1 、1-> 0。
解決方法:CRC 循環(huán)冗余檢驗(yàn)
FCS: 為了進(jìn)行檢錯(cuò)而添加的冗余碼,叫做幀檢測(cè)序列。
CRC是一種常用的檢錯(cuò)方法,F(xiàn)CS是添加在數(shù)據(jù)后面的冗余碼。FCS可以用CRC這種方法得出,但CRC并不是獲得FCS的唯一方法。
在接收端,對(duì)每一幀進(jìn)行檢驗(yàn),若得出的余數(shù)R = 0.則幀沒(méi)有差錯(cuò),反之有差錯(cuò)。
CRC差錯(cuò)檢測(cè)技術(shù)只能做到無(wú)差錯(cuò)接收。但并不是可靠傳輸。
要做到可靠傳輸需要加上確認(rèn)重傳機(jī)制。
雖然無(wú)比特差錯(cuò),但是可能會(huì)出現(xiàn)幀丟失,幀重復(fù)或者幀失序。
無(wú)效的MAC幀格式
- 幀的長(zhǎng)度不是整數(shù)個(gè)字節(jié)
- 用收到的幀檢驗(yàn)序列FCS查出有差錯(cuò)
- 數(shù)據(jù)字段長(zhǎng)度不在 46-1500之間
- 有效MAC幀長(zhǎng)度不在 64-1518字節(jié)之間
數(shù)據(jù)鏈路層的三個(gè)基本問(wèn)題
- 封裝成幀
- 透明傳輸
- 差錯(cuò)控制
PPP協(xié)議
因特網(wǎng)用戶(hù)需要連接到某個(gè)ISP才能接入到因特網(wǎng),PPP協(xié)議是用戶(hù)和ISP通信時(shí)使用的數(shù)據(jù)鏈路層協(xié)議。零比特填充 ——同步傳輸
在發(fā)送端只要發(fā)現(xiàn)有5個(gè)連續(xù)的1,則在其后填入一個(gè)0,。
接收端對(duì)幀中的比特流進(jìn)行掃描。每當(dāng)發(fā)現(xiàn)5個(gè)連續(xù)的1是,就把5個(gè)連續(xù)1時(shí),就把其后的一個(gè)0刪除。
以太網(wǎng)
-
通信措施
采用無(wú)連接的工作方式,不必建立鏈接就可以直接發(fā)送數(shù)據(jù)。
發(fā)送的數(shù)據(jù)都使用曼徹斯特編碼。 -
提供的服務(wù)
盡最大努力的交付。
目的站收到有差錯(cuò)的數(shù)據(jù)幀就丟棄。差錯(cuò)的糾正由高層來(lái)決定。
若高層發(fā)現(xiàn)了丟失數(shù)據(jù)則進(jìn)行重傳。以太網(wǎng)不知道這是重傳的幀,把它當(dāng)做新傳來(lái)的幀來(lái)發(fā)送。
CSMA/CD協(xié)議
CSMA/CD:載波監(jiān)聽(tīng)多點(diǎn)接入/碰撞檢測(cè)
(Carrier Sense Multiple Access with Collision Detection)
多點(diǎn)接入:許多計(jì)算機(jī)以多點(diǎn)接入的方式連接在一根總線(xiàn)上。
載波監(jiān)聽(tīng):每一個(gè)站在發(fā)送數(shù)據(jù)之前先檢測(cè)一下總線(xiàn)上是否有其他計(jì)算機(jī)在發(fā)送數(shù)據(jù),如果有,暫時(shí)不要發(fā)送數(shù)據(jù),以免發(fā)生碰撞。
碰撞檢測(cè):
重要特征
- 使用CSMA/CD協(xié)議的以太網(wǎng)不能進(jìn)行全雙工通信,只能進(jìn)行半雙工通信。
- 每個(gè)站在發(fā)送數(shù)據(jù)后的一小段時(shí)間內(nèi),存在著遭遇碰撞的可能性。
- 這種發(fā)送的不確定性使整個(gè)以太網(wǎng)的平均通信量遠(yuǎn)小于以太網(wǎng)的最高數(shù)據(jù)率。
爭(zhēng)用期
爭(zhēng)用期長(zhǎng)度為51.2us 10Mb/s以太網(wǎng) 在爭(zhēng)用期內(nèi)可發(fā)送512bit,即64字節(jié)。若前64字節(jié)未發(fā)生沖突,則后續(xù)的數(shù)據(jù)不會(huì)沖突。
二進(jìn)制指數(shù)類(lèi)型退避算法
最短有效幀長(zhǎng)
64字節(jié),凡長(zhǎng)度小于64字節(jié)的幀都是由于沖突而異常終止的無(wú)效幀。
強(qiáng)化碰撞
數(shù)據(jù)一旦發(fā)生碰撞則:
- 立即停止發(fā)送數(shù)據(jù)
- 再繼續(xù)發(fā)送若干比特認(rèn)為干擾信號(hào)(jamming signal),以便讓所有用戶(hù)知道現(xiàn)在已發(fā)生碰撞。
注意信道的占用時(shí)間為三段時(shí)間之和。
幀間最小間隔
9.6us,相當(dāng)于96bit時(shí)間。為了剛剛收到數(shù)據(jù)幀的站的緩存能夠來(lái)得及清理,做好迎接下一幀的準(zhǔn)備。
CSMA/CD整體過(guò)程
- 適配器從網(wǎng)絡(luò)層獲得一個(gè)分組,加上以太網(wǎng)的首部和尾部,組成以太網(wǎng)幀,放入適配器的緩存中,準(zhǔn)備發(fā)送。
- 若適配器檢測(cè)到信道空閑(在96bit時(shí)間內(nèi)沒(méi)有檢測(cè)到信道上有信號(hào)),就發(fā)送這個(gè)幀。若檢測(cè)到信道忙,則繼續(xù)檢測(cè)并等待信道轉(zhuǎn)為空閑,然后發(fā)送這個(gè)幀。
- 在發(fā)送過(guò)程中繼續(xù)檢測(cè)信道,若一直未檢測(cè)到碰撞,就順利傳送完幀。若檢測(cè)到碰撞,則終止數(shù)據(jù)的發(fā)送,并且發(fā)送人為干擾信號(hào)。
- 在終止發(fā)送后采用指數(shù)退避算法,等待r倍512bit時(shí)間后,返回步驟2.
以太網(wǎng)的MAC層
MAC層的硬件地址
硬件地址又稱(chēng)物理地址或者M(jìn)AC地址。它是固化在適配器ROM中的地址,與地理地址無(wú)關(guān)。若適配器故障,硬件地址改變;地理位置發(fā)生改變,硬件地址不變。
MAC地址是48bit的
MAC幀的格式
數(shù)據(jù)字段長(zhǎng)度為46——1500字節(jié),當(dāng)數(shù)據(jù)字段的長(zhǎng)度小于46字節(jié)的時(shí)候,應(yīng)在數(shù)據(jù)字段的后面加入整數(shù)字節(jié)的填充字段,以保證MAC幀長(zhǎng)度不小于64字節(jié)。
既然是不可靠的傳輸,為什么要進(jìn)行差錯(cuò)檢測(cè)
為了不將已經(jīng)發(fā)現(xiàn)了有差錯(cuò)的幀收下來(lái),因?yàn)檫@樣的幀是沒(méi)有用處的。在接收端進(jìn)行差錯(cuò)檢測(cè)可以很接近于1的概率認(rèn)為,凡是上交主機(jī)的幀都是沒(méi)有傳輸差錯(cuò)的。
為了達(dá)到比特同步,在傳輸媒體上實(shí)際傳送的要比MAC幀還多8個(gè)字節(jié)
無(wú)效的MAC幀形式
- 幀的長(zhǎng)度不是整數(shù)個(gè)字節(jié)
- 用收到的幀檢驗(yàn)序列FCS查出有差錯(cuò)
- 數(shù)據(jù)字段長(zhǎng)度不在46-1500之間 有效MAC幀長(zhǎng)度不在64-1518之間
拓展的以太網(wǎng)
在物理層拓展以太網(wǎng)
要求:以太網(wǎng)上的主機(jī)距離不能太遠(yuǎn),200m,否則信號(hào)經(jīng)過(guò)銅線(xiàn)將會(huì)衰落使得CSMA/CD協(xié)議失效。
方法:主機(jī)使用光纖和一對(duì)光纖調(diào)制解調(diào)器連接到集線(xiàn)器
結(jié)果:光纖時(shí)延小,帶寬高,使得主機(jī)和幾公里外的集線(xiàn)器相連。
使用的器件是集線(xiàn)器。使原來(lái)屬于不同碰撞域的局域網(wǎng)上的計(jì)算機(jī)能夠進(jìn)行跨碰撞域的通信。擴(kuò)大了局域網(wǎng)覆蓋的地理范圍。
在數(shù)據(jù)鏈路層擴(kuò)展以太網(wǎng)
使用的器件是網(wǎng)橋。網(wǎng)橋工作在數(shù)據(jù)鏈路層,根據(jù)MAC地址對(duì)收到的幀進(jìn)行轉(zhuǎn)發(fā)和過(guò)濾。收到幀之后,并非向所有接口轉(zhuǎn)發(fā),而是檢查目的MAC地址,再確定發(fā)到哪個(gè)接口或者丟棄。
作用:過(guò)濾了通信量,擴(kuò)大了物理范圍,提高了可靠性,可互聯(lián)不同物理層,不同MAC子層和不同速率的局域網(wǎng)。
透明網(wǎng)橋:
透明是指局域網(wǎng)上的站點(diǎn)并不知道所發(fā)送的幀將經(jīng)過(guò)哪幾個(gè)網(wǎng)橋,因?yàn)榫W(wǎng)橋?qū)τ诟鱾€(gè)站來(lái)說(shuō)是不可見(jiàn)的。
網(wǎng)橋自學(xué)習(xí)和轉(zhuǎn)發(fā)幀的步驟
網(wǎng)橋收到一幀后先進(jìn)行自學(xué)習(xí)。查找轉(zhuǎn)發(fā)表中與收到幀的源地址有無(wú)相匹配的項(xiàng)目。若沒(méi)有,就在轉(zhuǎn)發(fā)表中增加一個(gè)項(xiàng)目(源地址,進(jìn)入的接口和時(shí)間)。若有,則把原有的項(xiàng)目進(jìn)行更新。
轉(zhuǎn)發(fā)幀。查找轉(zhuǎn)發(fā)表中與收到幀的目的地址有無(wú)相匹配的項(xiàng)目。
- 若沒(méi)有,則通過(guò)所有其他接口(除進(jìn)入網(wǎng)橋的接口外)進(jìn)行轉(zhuǎn)發(fā)。
- 若有,則按轉(zhuǎn)發(fā)表給出的接口進(jìn)行轉(zhuǎn)發(fā)。
- 若轉(zhuǎn)發(fā)表中給出的接口就是該幀進(jìn)入網(wǎng)橋的接口,則丟棄此幀。
網(wǎng)橋和集線(xiàn)器的區(qū)別
- 集線(xiàn)器在轉(zhuǎn)發(fā)幀時(shí),不對(duì)傳輸媒體進(jìn)行檢測(cè)。
- 網(wǎng)橋在轉(zhuǎn)發(fā)幀之前必須執(zhí)行CSMA/CD算法。若在發(fā)送過(guò)程中出現(xiàn)碰撞,就必須停止發(fā)送和進(jìn)行退避。
交換機(jī)是一種多接口的網(wǎng)橋。能夠同時(shí)連通許多對(duì)接口。一般具有多種速率的接口。為減少一個(gè)總線(xiàn)網(wǎng)的主機(jī)數(shù)量提供了條件,減少了網(wǎng)橋的廣播風(fēng)暴。