點擊藍色「程序員的時光 」關注我 ,標註「星標」,及時閱讀最新技術文章

寫在前面:
思惟導圖:

1、數據鏈路層的基本概念;
-
做用: 數據鏈路層解決的是將 源計算機網絡層來的數據 可靠地傳輸到 相鄰節點的目標計算機的網絡層。 -
功能: 如何將數據組合成 數據塊 (在數據鏈路層中將這種數據塊稱爲幀,幀是數據鏈路層的傳送單位); 如何 控制幀在物理信道上的傳輸 ,包括如何 處理傳輸差錯 ,如何 調節發送速率以使之與接收方相匹配 ;在兩個網路實體之間提供 數據鏈路通路的創建、維持和釋放管理。 -
鏈路: 鏈路(Link)是指的從 一個節點到相鄰節點的一段物理線路 (有線或無線),而中間沒有任何其餘的 交換節點 ; -
數據鏈路: 數據鏈路(Data Link)則是另外一個概念,這是由於當須要在一條線路上傳送數據時,除了必須有一條物理線路外,還必須有一些必要的 通訊協議 來控制這些數據的傳輸; -
數據鏈路和幀: 數據鏈路層把 網絡層交下來的數據 封裝成幀發送到鏈路上,以及把 接收到的幀中的數據取出並上交給網絡層 。在因特網中, 網絡層協議數據單元就是 IP數據報 (或簡稱爲數據報、分組或 包)。數據鏈路層 封裝的幀 ,在物理層變成 數字信號 在鏈路上傳輸。 結點A傳輸到結點B 此次咱們只探討數據鏈路層,就不考慮物理層如何實現比特傳輸的細 節,咱們就能夠簡單的認爲數據幀經過數據鏈路由節點A發送到節點B。 結點A傳輸到結點B
2、三個基本問題;
1,封裝成幀;
封裝成幀,就是在將網絡層的 IP數據報的先後 分別添加首部和尾部,這樣就構成了一個幀。
不一樣的數據鏈路層協議的幀的首部和尾部包含的信息有明確的規定,幀的首部和尾部有 幀開始符和幀結束符 ,稱爲 幀定界符 。接收端收到物理層傳過來 的數字信號讀取到幀開始字符一直到幀結束字符,就認爲接收到了一個完整的幀。在數據傳輸中出現差錯時,幀定界符的做用更加明顯;

2,透明傳輸;
幀開始符和幀結束符最好是不會出如今幀的數據部分的字符,一般咱們電腦鍵盤可以輸入的字符是ASCII字符代碼表中打印字符,在ASCII字符代碼表中,還有非打印控制字符,在非打印字符中有兩個字符專門用來作幀定界符,代碼SOH(Start Of Header)做爲幀開始定界符,對應的二進制編碼爲0000 0001,代碼EOT(End Of Transmission)做爲幀結束定界符。

當傳送的幀使用文本文件組成的幀時(文本文件中的字符都是從鍵盤上輸入的),其數據部分顯然不會出現像SOH或EOT這樣的幀定界控制字符。可見無論從鍵盤上輸入什麼字符均可以放在這樣的幀中傳輸過去,所以這樣的傳輸就是透明傳輸。
爲了解決透明傳輸的問題,就必須設法使數據中可能出現的控制字符「SOH」和「EOT」在接收端 不被解析爲控制字符 。 發送端的數據鏈路層在數據中出現控制字符」SOH」和」EOT」的前面插入一個轉義字符」ESC」(其十六進制編碼是1B)。而在接收端的數據鏈路層在將數據送往網絡層以前刪除這個插入的轉義字符。這種方法稱爲字節填充(byte stuffing)。 若是轉義字符也出如今數據當中,那麼解決方法仍然是在轉義字符的前面插入一個轉義字符。所以,當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。

3,差錯檢驗;
現實的通訊鏈路都不會是理想的。這就是說,比特在傳輸過程當中可能會 產生差錯: 第一類是1可能會變成0,而0也可能變成1,這就叫作比特差錯;另外一類就是收到的幀並無出現比特錯誤,但卻出現了 幀丟失 、 幀重複 或 幀失序 ;
就是在一段時間內, 傳輸錯誤的比特佔所傳輸比特總數的比率 ,稱之爲誤碼率。例如,誤碼率爲10 ^ (-10)時,表示平均每傳送10^10個比特就會出現一個比特的差錯。誤碼率與信噪比有很大的關係,若是提升信噪比,就可使誤碼率減少。
爲了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須採用各類 差錯檢測措施。目前在數據鏈路層普遍使用了 循環冗餘檢驗CRC (Cyclic Redundancy Check)的差錯檢驗技術。

特色:不能肯定出錯的bit的是哪一位;可能會出錯,但只要通過嚴格的挑選,而且除數位數足夠大,就能夠極大減小出錯機率;CRC只能作到無差錯接受(意思是傳輸過程沒有差錯,有差錯的一概丟棄);要作到可靠傳輸,必須加上確認和重傳機制。
3、點對點信道的數據鏈路層;
1,概念;
點到點信道是指的一條鏈路上就一個發送端和接收端的信道,一般用在廣域網鏈路。

2,ppp協議;
如今使用最多的數據鏈路層協議是 點對點協議PPP ,用戶使用撥號電話線接入因特網時,通常都是使用PPP協議。

簡單;封裝成幀;透明性;多種網絡層協議;多種類型鏈路;差錯檢驗;檢測鏈接狀態;最大傳送單元;網絡層地址協商;數據壓縮協商;
標誌字段F = 0x7E 地址字段A = 0xFF,它並不起做用 控制字段C = 0x03 PPP協議是面向字節的,因此全部的PPP幀的長度都是整數字節。

4、廣播信道的數據鏈路層;
1,概念;
廣播信道的數據鏈路層一般用在 局域網鏈路 。

2,共享通訊媒體;
靜態劃分信道(麻煩):頻分複用;時分複用;波分複用;碼分複用;動態媒體接入控制(多點接入):隨機接入(主要是以太網);受控接入,如多點線路探詢(polling),輪詢(不採用了)。
3,CSMA/CD協議;
總線型網絡使用 CSMA/CD協議 進行通訊,即 帶衝突檢測的載波偵聽多點接入技術 。 即使檢測出總線上沒有信號,開始發送數據後也有可能和迎面而來的信 號在鏈路上發生碰撞。好比,A計算機發送的信號和B計算機發送的信號在鏈路C處發生碰撞,碰撞後的信號相互疊加,在總線上電壓變化幅度將會增長,發送方檢測到 電壓變化超過必定的門限值時,就認爲發生衝突,這就是衝突檢測。

4,CSMA/CD的重要特性;
使用CSMA/CD協議的以太網不能進行全雙工通訊而 只能進行雙向交替通訊 (半雙工);每一個站在發送數據以後的一小段時間內,存在着遭遇碰撞的可能;這種發送的不肯定性使整個以太網的平均通訊量 遠小於 以太網的最高數據率。
5、以太網;
1,初識以太網;
最初的以太網是將許多計算機都鏈接到一根總線上,當初認爲這樣鏈接即簡單又可靠,由於總線上沒有有源器件。總線上每個主機都能檢測到B發送的數據。可是隻有D的地址和數據幀首部寫入的地址一致,因此只有D接收。其他計算機都能檢測到這不是發送給他們的數據幀,因此就丟棄這個數據幀。這是一種具備廣播特性的總線上實現了一對一通訊。這種方式不安全。

2,以太網提供的服務;
以太網提供服務是不可靠的交付,即最大努力的交付; 當接收站收到的有差錯的數據幀時就丟棄此幀 ,其它什麼也不作,差錯的糾正由高層來處理;若是高層發現丟失了一些數據而進行重傳,但以太網並不知道這是一個重傳的幀,而是看成一個新幀發送。
3,以太網的星型拓撲結構;
物理上是星型,邏輯上是總線型 。爲了下降成本,最初由粗的同軸電纜變成細的同軸電纜最後變成無屏蔽雙絞線。每一個站須要用兩對雙絞線,分別用於發送和接收;在星形的中心增長了一種可靠性高的設備,爲集線器(hub)。

4,集線器的特色;
集線器使用電子器件來模擬實際電纜線的工做,所以整個系統仍然是像一個傳統的以太網那樣運行。因爲集線器使用了 大規模集成電路芯片,因此可靠性更高 ;使用集線器邏輯上仍然是一個總線網,各工做站使用的仍是CSMA/CD協議,共享邏輯網絡上的總線;集線器像一個多接口的轉發器,工做在物理層。
5,信道利用率;
爭用期長度爲2t;幀長爲L bit,數據發送旅爲C b/s,幀的發送時間爲L/C = T0 秒。 一個幀從開始發送,經可能發生的碰撞後,將再次重傳屢次,直到發送成功且信道轉爲空閒(即再通過t使得信道上沒有信號在傳播)時爲止 ,是發送一幀所需的平均時間。

定義a = t / T0,是單程端到端時延t與幀發送時間T0的比值。a越小, 說明碰撞檢測越快,信道利用率高 。當數據率(網速)必定時,以太網的連線長度受到限制,不然t會太長;以太網的幀長不能過短,不然T0過小,使a太大。
假設理想狀態下,以太網個展發送的數據都不會碰撞,一旦總線空閒就能有站當即發送數據,因此沒有爭用期;發送一幀須要佔用總線T0+t,而幀自己須要發送時間爲T0,因而理想狀況下極限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).
6、MAC層;
1,MAC層的硬件地址;
硬件地址 = 物理地址 = MAC地址 MAC地址前3個字節(24位)是廠家分配的地址字段,後3個字節(24位)是廠家自定義,稱爲擴展標識符;一個地址塊能夠產生2^24個地址,這種48位地址稱爲MAC-48,通用名爲EUI-48,這就是MAC地址;MAC地址其實是每個站的名字或標識符。
2,適配器檢查MAC地址;
適配器從網絡上每收到一個MAC幀就要用硬件檢查MAC幀中的MAC地址:若是是發往本站的幀就收下,而後進行其它處理;不然丟棄。發往本站的幀包括:單播幀(unicast)(一對一) 廣播幀(broadcast)(一對全體) 多播幀(multicast)(一對多)
3,MAC幀的格式;
6 + 6 + 2 + 46 + 4 =64 byte,以太網的幀最短是64個字節,這也就是爲何IP數據報的最短長度爲46字節;

前8個字節的做用是實現比特同步,第一個字段共7個字節,稱爲前同步碼,做用是實現快速MAC幀的比特同步;第二個字段是幀開始定界符,表示後面的信息是MAC幀。

4,無效的MAC幀;
幀的長度不是整數個字節; 用收到的幀檢驗序列FCS查出有錯誤 ;數據字段的長度不在46-1518字節內;有效的MAC幀長度爲64-1518字節之間;對於檢查出來的無效MAC幀簡單的丟棄。
5,幀間最小間隔;
幀間最小間隔爲9.6微秒。至關於96bit的發送時間。一個站在檢測到總線空閒時,還須要等待9.6微秒後才能再次發送數據;這樣作是爲了 使剛剛收到的數據幀的站接收緩存來得及清理,作好接收下一幀的準備。
7、擴展以太網;
1,在物理層考慮擴展;
主機使用 光纖 和 一對光纖調制解調器 鏈接到集線器。

集線器集聯,使網絡中計算機數量增長,可是會形成效率下降,成爲一個大的衝突域。

2,在數據鏈路層考慮擴展;
網橋工做在數據鏈路層,它根據MAC幀的目的地址對收到的幀進行轉發。網橋具備過濾幀的功能。當網橋收到一個幀時,並非向全部的接口轉發此幀,而是現檢查此幀的目的MAC地址,而後再肯定將該幀轉發到哪個接口。

透明指局域網上的站點不知道所發送的幀將通過幾個網橋,由於 網橋對於各站點是看不見的,也不須要網絡管理員配置網橋的MAC地址表 ,所以咱們稱透明網橋。

隨着網橋的接口的增長, 後來 網橋和集線器合併了,計算機能夠直接和交換機鏈接 ,這就是交換機。

8、高速以太網;
1,概念;
速率在100Mb/s以上的以太網稱爲高速以太網。

2,特色;
使用交換機組建的100BASE-T以太網,可在全雙工方式下工做而無衝突發生(注意,若是交換機上某一路鏈接着集線器(半雙工),則這一路不能實現全雙工)而無衝突,此時不使用CSMA/CD協議。MAC幀格式不變,還是802.3 標準。最短幀長度不變,可是一個網段的最大電纜長度減小到100m。幀間間隔從9.6微秒縮小到0.96微秒。
往期推薦程序員

本文分享自微信公衆號 - 程序員的時光(gh_9211ec727426)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。微信