你想要的數(shù)據(jù)鏈路層,都在這里了!
點(diǎn)擊藍(lán)色“程序員的時(shí)光?”關(guān)注我?,標(biāo)注“星標(biāo)”,及時(shí)閱讀最新技術(shù)文章

寫在前面:
思維導(dǎo)圖:

一、數(shù)據(jù)鏈路層的基本概念;
作用: 數(shù)據(jù)鏈路層解決的是將源計(jì)算機(jī)網(wǎng)絡(luò)層來(lái)的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)計(jì)算機(jī)的網(wǎng)絡(luò)層。 功能: 如何將數(shù)據(jù)組合成數(shù)據(jù)塊(在數(shù)據(jù)鏈路層中將這種數(shù)據(jù)塊稱為幀,幀是數(shù)據(jù)鏈路層的傳送單位);? ?如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯(cuò),如何調(diào)節(jié)發(fā)送速率以使之與接收方相匹配;在兩個(gè)網(wǎng)路實(shí)體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放管理。 鏈路: 鏈路(Link)是指的從一個(gè)節(jié)點(diǎn)到相鄰節(jié)點(diǎn)的一段物理線路(有線或無(wú)線),而中間沒(méi)有任何其他的交換節(jié)點(diǎn); 數(shù)據(jù)鏈路: 數(shù)據(jù)鏈路(Data Link)則是另一個(gè)概念,這是因?yàn)楫?dāng)需要在一條線路上傳送數(shù)據(jù)時(shí),除了必須有一條物理線路外,還必須有一些必要的通信協(xié)議來(lái)控制這些數(shù)據(jù)的傳輸; 數(shù)據(jù)鏈路和幀: 數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來(lái)的數(shù)據(jù)封裝成幀發(fā)送到鏈路上,以 及把接收到的幀中的數(shù)據(jù)取出并上交給網(wǎng)絡(luò)層。在因特網(wǎng)中, 網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元就是IP數(shù)據(jù)報(bào)(或簡(jiǎn)稱為數(shù)據(jù)報(bào)、分組或 包)。數(shù)據(jù)鏈路層封裝的幀,在物理層變成數(shù)字信號(hào)在鏈路上 傳輸。 
image-20200718093949351 這次我們只探討數(shù)據(jù)鏈路層,就不考慮物理層如何實(shí)現(xiàn)比特傳輸?shù)募?xì) 節(jié),我們就可以簡(jiǎn)單的認(rèn)為數(shù)據(jù)幀通過(guò)數(shù)據(jù)鏈路由節(jié)點(diǎn)A發(fā)送到節(jié)點(diǎn)B。 
image-20200718094058278
二、三個(gè)基本問(wèn)題;
1,封裝成幀;
封裝成幀,就是在將網(wǎng)絡(luò)層的IP數(shù)據(jù)報(bào)的前后分別添加首部和尾部,這樣就構(gòu)成了一個(gè)幀。
不同的數(shù)據(jù)鏈路層協(xié)議的幀的首部和尾部包含的信息有明確的規(guī)定,幀的首部和尾部有幀開(kāi)始符和幀結(jié)束符,稱為幀定界符。接收端收到物理層傳過(guò)來(lái) 的數(shù)字信號(hào)讀取到幀開(kāi)始字符一直到幀結(jié)束字符,就認(rèn)為接收到了一個(gè)完整的幀。在數(shù)據(jù)傳輸中出現(xiàn)差錯(cuò)時(shí),幀定界符的作用更加明顯;

2,透明傳輸;
幀開(kāi)始符和幀結(jié)束符最好是不會(huì)出現(xiàn)在幀的數(shù)據(jù)部分的字符,通常我們電腦鍵盤能夠輸入的字符是ASCII字符代碼表中打印字符,在ASCII字符代碼表中,還有非打印控制字符,在非打印字符中有兩個(gè)字符專門用來(lái)做幀定界符,代碼SOH(Start Of Header)作為幀開(kāi)始定界符,對(duì)應(yīng)的二進(jìn)制編碼為0000 0001,代碼EOT(End Of Transmission)作為幀結(jié)束定界符。

當(dāng)傳送的幀使用文本文件組成的幀時(shí)(文本文件中的字符都是從鍵盤上輸入的),其數(shù)據(jù)部分顯然不會(huì)出現(xiàn)像SOH或EOT這樣的幀定界控制字符。可見(jiàn)不管從鍵盤上輸入什么字符都可以放在這樣的幀中傳輸過(guò)去,因此這樣的傳輸就是透明傳輸。
為了解決透明傳輸?shù)膯?wèn)題,就必須設(shè)法使數(shù)據(jù)中可能出現(xiàn)的控制字符“SOH”和“EOT”在接收端不被解析為控制字符。 發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符”SOH”和”EOT”的前面插入一個(gè)轉(zhuǎn)義字符”ESC”(其十六進(jìn)制編碼是1B)。而在接收端的數(shù)據(jù)鏈路層在將數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除這個(gè)插入的轉(zhuǎn)義字符。這種方法稱為字節(jié)填充(byte stuffing)。 如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)當(dāng)中,那么解決方法仍然是在轉(zhuǎn)義字符的前面插入一個(gè)轉(zhuǎn)義字符。因此,當(dāng)接收端收到連續(xù)的兩個(gè)轉(zhuǎn)義字符時(shí),就刪除其中前面的一個(gè)。

3,差錯(cuò)檢驗(yàn);
現(xiàn)實(shí)的通信鏈路都不會(huì)是理想的。這就是說(shuō),比特在傳輸過(guò)程中可能會(huì) 產(chǎn)生差錯(cuò): 第一類是1可能會(huì)變成0,而0也可能變成1,這就叫做比特差錯(cuò);另一類就是收到的幀并沒(méi)有出現(xiàn)比特錯(cuò)誤,但卻出現(xiàn)了幀丟失、幀重復(fù)或幀失序;
就是在一段時(shí)間內(nèi),傳輸錯(cuò)誤的比特占所傳輸比特總數(shù)的比率,稱之為誤碼率。例如,誤碼率為10 ^ (-10)時(shí),表示平均每傳送10^10個(gè)比特就會(huì)出現(xiàn)一個(gè)比特的差錯(cuò)。誤碼率與信噪比有很大的關(guān)系,如果提高信噪比,就可以使誤碼率減小。
為了保證數(shù)據(jù)傳輸?shù)目煽啃裕谟?jì)算機(jī)網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí),必須采用各種 差錯(cuò)檢測(cè)措施。目前在數(shù)據(jù)鏈路層廣泛使用了循環(huán)冗余檢驗(yàn)CRC(Cyclic Redundancy Check)的差錯(cuò)檢驗(yàn)技術(shù)。

特點(diǎn):不能確定出錯(cuò)的bit的是哪一位;可能會(huì)出錯(cuò),但只要經(jīng)過(guò)嚴(yán)格的挑選,并且除數(shù)位數(shù)足夠大,就可以極大減少出錯(cuò)概率;CRC只能做到無(wú)差錯(cuò)接受(意思是傳輸過(guò)程沒(méi)有差錯(cuò),有差錯(cuò)的一律丟棄);要做到可靠傳輸,必須加上確認(rèn)和重傳機(jī)制。
三、點(diǎn)對(duì)點(diǎn)信道的數(shù)據(jù)鏈路層;
1,概念;
點(diǎn)到點(diǎn)信道是指的一條鏈路上就一個(gè)發(fā)送端和接收端的信道,通常用在廣域網(wǎng)鏈路。

2,ppp協(xié)議;
現(xiàn)在使用最多的數(shù)據(jù)鏈路層協(xié)議是點(diǎn)對(duì)點(diǎn)協(xié)議PPP,用戶使用撥號(hào)電話線接入因特網(wǎng)時(shí),一般都是使用PPP協(xié)議。

簡(jiǎn)單;封裝成幀;透明性;多種網(wǎng)絡(luò)層協(xié)議;多種類型鏈路;差錯(cuò)檢驗(yàn);檢測(cè)連接狀態(tài);最大傳送單元;網(wǎng)絡(luò)層地址協(xié)商;數(shù)據(jù)壓縮協(xié)商;
標(biāo)志字段F = 0x7E 地址字段A = 0xFF,它并不起作用 控制字段C = 0x03 PPP協(xié)議是面向字節(jié)的,所以所有的PPP幀的長(zhǎng)度都是整數(shù)字節(jié)。

四、廣播信道的數(shù)據(jù)鏈路層;
1,概念;
廣播信道的數(shù)據(jù)鏈路層通常用在局域網(wǎng)鏈路。

2,共享通信媒體;
靜態(tài)劃分信道(麻煩):頻分復(fù)用;時(shí)分復(fù)用;波分復(fù)用;碼分復(fù)用;動(dòng)態(tài)媒體接入控制(多點(diǎn)接入):隨機(jī)接入(主要是以太網(wǎng));受控接入,如多點(diǎn)線路探詢(polling),輪詢(不采用了)。
3,CSMA/CD協(xié)議;
總線型網(wǎng)絡(luò)使用CSMA/CD協(xié)議進(jìn)行通信,即帶沖突檢測(cè)的載波偵聽(tīng)多點(diǎn)接入技術(shù)。 即便檢測(cè)出總線上沒(méi)有信號(hào),開(kāi)始發(fā)送數(shù)據(jù)后也有可能和迎面而來(lái)的信 號(hào)在鏈路上發(fā)生碰撞。比如,A計(jì)算機(jī)發(fā)送的信號(hào)和B計(jì)算機(jī)發(fā)送的信號(hào)在鏈路C處發(fā)生碰撞,碰撞后的信號(hào)相互疊加,在總線上電壓變化幅度將會(huì)增加,發(fā)送方檢測(cè)到 電壓變化超過(guò)一定的門限值時(shí),就認(rèn)為發(fā)生沖突,這就是沖突檢測(cè)。

4,CSMA/CD的重要特性;
使用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ù)率。
五、以太網(wǎng);
1,初識(shí)以太網(wǎng);
最初的以太網(wǎng)是將許多計(jì)算機(jī)都連接到一根總線上,當(dāng)初認(rèn)為這樣連接即簡(jiǎn)單又可靠,因?yàn)榭偩€上沒(méi)有有源器件。總線上每一個(gè)主機(jī)都能檢測(cè)到B發(fā)送的數(shù)據(jù)。但是只有D的地址和數(shù)據(jù)幀首部寫入的地址一致,所以只有D接收。其余計(jì)算機(jī)都能檢測(cè)到這不是發(fā)送給他們的數(shù)據(jù)幀,所以就丟棄這個(gè)數(shù)據(jù)幀。這是一種具有廣播特性的總線上實(shí)現(xiàn)了一對(duì)一通信。這種方式不安全。

2,以太網(wǎng)提供的服務(wù);
以太網(wǎng)提供服務(wù)是不可靠的交付,即最大努力的交付;當(dāng)接收站收到的有差錯(cuò)的數(shù)據(jù)幀時(shí)就丟棄此幀,其它什么也不做,差錯(cuò)的糾正由高層來(lái)處理;如果高層發(fā)現(xiàn)丟失了一些數(shù)據(jù)而進(jìn)行重傳,但以太網(wǎng)并不知道這是一個(gè)重傳的幀,而是當(dāng)作一個(gè)新幀發(fā)送。
3,以太網(wǎng)的星型拓?fù)浣Y(jié)構(gòu);
物理上是星型,邏輯上是總線型。為了降低成本,最初由粗的同軸電纜變成細(xì)的同軸電纜最后變成無(wú)屏蔽雙絞線。每個(gè)站需要用兩對(duì)雙絞線,分別用于發(fā)送和接收;在星形的中心增加了一種可靠性高的設(shè)備,為集線器(hub)。

4,集線器的特點(diǎn);
集線器使用電子器件來(lái)模擬實(shí)際電纜線的工作,因此整個(gè)系統(tǒng)仍然是像一個(gè)傳統(tǒng)的以太網(wǎng)那樣運(yùn)行。由于集線器使用了大規(guī)模集成電路芯片,所以可靠性更高;使用集線器邏輯上仍然是一個(gè)總線網(wǎng),各工作站使用的還是CSMA/CD協(xié)議,共享邏輯網(wǎng)絡(luò)上的總線;集線器像一個(gè)多接口的轉(zhuǎn)發(fā)器,工作在物理層。
5,信道利用率;
爭(zhēng)用期長(zhǎng)度為2t;幀長(zhǎng)為L(zhǎng) bit,數(shù)據(jù)發(fā)送旅為C b/s,幀的發(fā)送時(shí)間為L(zhǎng)/C = T0 秒。一個(gè)幀從開(kāi)始發(fā)送,經(jīng)可能發(fā)生的碰撞后,將再次重傳多次,直到發(fā)送成功且信道轉(zhuǎn)為空閑(即再經(jīng)過(guò)t使得信道上沒(méi)有信號(hào)在傳播)時(shí)為止,是發(fā)送一幀所需的平均時(shí)間。

定義a = t / T0,是單程端到端時(shí)延t與幀發(fā)送時(shí)間T0的比值。a越小,說(shuō)明碰撞檢測(cè)越快,信道利用率高。當(dāng)數(shù)據(jù)率(網(wǎng)速)一定時(shí),以太網(wǎng)的連線長(zhǎng)度受到限制,否則t會(huì)太長(zhǎng);以太網(wǎng)的幀長(zhǎng)不能太短,否則T0太小,使a太大。
假設(shè)理想狀態(tài)下,以太網(wǎng)個(gè)展發(fā)送的數(shù)據(jù)都不會(huì)碰撞,一旦總線空閑就能有站立即發(fā)送數(shù)據(jù),所以沒(méi)有爭(zhēng)用期;發(fā)送一幀需要占用總線T0+t,而幀本身需要發(fā)送時(shí)間為T0,于是理想情況下極限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).
六、MAC層;
1,MAC層的硬件地址;
硬件地址 = 物理地址 = MAC地址 MAC地址前3個(gè)字節(jié)(24位)是廠家分配的地址字段,后3個(gè)字節(jié)(24位)是廠家自定義,稱為擴(kuò)展標(biāo)識(shí)符;一個(gè)地址塊可以產(chǎn)生2^24個(gè)地址,這種48位地址稱為MAC-48,通用名為EUI-48,這就是MAC地址;MAC地址實(shí)際上是每一個(gè)站的名字或標(biāo)識(shí)符。
2,適配器檢查MAC地址;
適配器從網(wǎng)絡(luò)上每收到一個(gè)MAC幀就要用硬件檢查MAC幀中的MAC地址:如果是發(fā)往本站的幀就收下,然后進(jìn)行其它處理;否則丟棄。發(fā)往本站的幀包括:?jiǎn)尾?unicast)(一對(duì)一) 廣播幀(broadcast)(一對(duì)全體) 多播幀(multicast)(一對(duì)多)
3,MAC幀的格式;
6 + 6 + 2 + 46 + 4 =64 byte,以太網(wǎng)的幀最短是64個(gè)字節(jié),這也就是為什么IP數(shù)據(jù)報(bào)的最短長(zhǎng)度為46字節(jié);

前8個(gè)字節(jié)的作用是實(shí)現(xiàn)比特同步,第一個(gè)字段共7個(gè)字節(jié),稱為前同步碼,作用是實(shí)現(xiàn)快速M(fèi)AC幀的比特同步;第二個(gè)字段是幀開(kāi)始定界符,表示后面的信息是MAC幀。

4,無(wú)效的MAC幀;
幀的長(zhǎng)度不是整數(shù)個(gè)字節(jié);用收到的幀檢驗(yàn)序列FCS查出有錯(cuò)誤;數(shù)據(jù)字段的長(zhǎng)度不在46-1518字節(jié)內(nèi);有效的MAC幀長(zhǎng)度為64-1518字節(jié)之間;對(duì)于檢查出來(lái)的無(wú)效MAC幀簡(jiǎn)單的丟棄。
5,幀間最小間隔;
幀間最小間隔為9.6微秒。相當(dāng)于96bit的發(fā)送時(shí)間。一個(gè)站在檢測(cè)到總線空閑時(shí),還需要等待9.6微秒后才能再次發(fā)送數(shù)據(jù);這樣做是為了使剛剛收到的數(shù)據(jù)幀的站接收緩存來(lái)得及清理,做好接收下一幀的準(zhǔn)備。
七、擴(kuò)展以太網(wǎng);
1,在物理層考慮擴(kuò)展;
主機(jī)使用光纖和一對(duì)光纖調(diào)制解調(diào)器連接到集線器。

集線器集聯(lián),使網(wǎng)絡(luò)中計(jì)算機(jī)數(shù)量增加,但是會(huì)造成效率降低,成為一個(gè)大的沖突域。

2,在數(shù)據(jù)鏈路層考慮擴(kuò)展;
網(wǎng)橋工作在數(shù)據(jù)鏈路層,它根據(jù)MAC幀的目的地址對(duì)收到的幀進(jìn)行轉(zhuǎn)發(fā)。網(wǎng)橋具有過(guò)濾幀的功能。當(dāng)網(wǎng)橋收到一個(gè)幀時(shí),并不是向所有的接口轉(zhuǎn)發(fā)此幀,而是現(xiàn)檢查此幀的目的MAC地址,然后再確定將該幀轉(zhuǎn)發(fā)到哪一個(gè)接口。

透明指局域網(wǎng)上的站點(diǎn)不知道所發(fā)送的幀將經(jīng)過(guò)幾個(gè)網(wǎng)橋,因?yàn)榫W(wǎng)橋?qū)τ诟髡军c(diǎn)是看不見(jiàn)的,也不需要網(wǎng)絡(luò)管理員配置網(wǎng)橋的MAC地址表,因此我們稱透明網(wǎng)橋。

隨著網(wǎng)橋的接口的增加, 后來(lái)網(wǎng)橋和集線器合并了,計(jì)算機(jī)可以直接和交換機(jī)連接,這就是交換機(jī)。

八、高速以太網(wǎng);
1,概念;
速率在100Mb/s以上的以太網(wǎng)稱為高速以太網(wǎng)。

2,特點(diǎn);
使用交換機(jī)組建的100BASE-T以太網(wǎng),可在全雙工方式下工作而無(wú)沖突發(fā)生(注意,如果交換機(jī)上某一路連接著集線器(半雙工),則這一路不能實(shí)現(xiàn)全雙工)而無(wú)沖突,此時(shí)不使用CSMA/CD協(xié)議。MAC幀格式不變,仍是802.3 標(biāo)準(zhǔn)。最短幀長(zhǎng)度不變,但是一個(gè)網(wǎng)段的最大電纜長(zhǎng)度減少到100m。幀間間隔從9.6微秒縮小到0.96微秒。

往期推薦
評(píng)論
圖片
表情
