計算機網絡 - 數據鏈路層

1、數據鏈路層提供的服務


  • 封裝成幀
  • 透明傳輸
  • 差錯檢測

2、封裝成幀


數據包在數據鏈路上傳輸時,發送端的數據鏈路層須要給每一個從網絡層獲得的包加上開始和結束的標記,接收端端根據標記把數據解析成不一樣的數據包遞交給網絡層。數據包通過網絡層封裝以後稱爲一個數據幀,結構以下:算法

幀頭 源物理地址 目標物理地址 數據包協議類型 數據包 幀檢驗序列 幀尾

3、透明傳輸


上面提到的幀頭和幀尾,其實是在網絡協議中約定好的一些特殊字節做爲標識符(例如01111110)。若是數據包中的數據也包含這與幀頭和幀尾相同的字節該如何處理呢?爲了解決這些問題,數據層在封裝數據包的時候若是發現包中有存在跟幀頭幀尾相同的字節,會在這些特殊體特前面再加上一些特殊的填充字節用於提示接收端這並非幀頭和幀尾,這很像編程語言中轉義字符"\"。接收端在接收的時候會去掉這些"轉義字符",把數據包原樣遞交給上層。這整個過程對於數據鏈路層之上的數據層是徹底無感知的,因此稱爲透明傳輸。編程

假如幀頭和幀尾的標識符是01111110,也能夠採用0比特填充法,來避免數據中出現標識符。只要數據中有5個連續的1比特,就在後面填充一個0,接收端若是發現有5個連續的1比特,切後面跟着0bit,就把這個0bit去掉,以此來實現透明傳輸。網絡

4、差錯檢測


數據在物理介質上傳輸的時候收的時候,因爲信道噪聲的存在,必定會出現錯誤的比特。傳輸錯誤的比特佔所傳輸比特總數的比率稱爲誤碼率。檢測和糾正傳輸中的錯誤比特的功能是在數據鏈路層來實現的。併發

差錯檢測和糾正是經過在數據幀中封裝上幀檢驗序列(冗餘碼)來實現的,冗餘碼在數據幀中的位置是在數據包以後幀尾以前。通常是使用循環冗餘校驗CRC。接收端根據檢測算法來判斷是否有錯誤的比特。這個算法只能知道是否存在錯誤的比特,可是沒法知道哪個比特出錯,發現錯誤後只能丟棄數據幀,進一步就須要傳輸層的排序和重傳機制來保證傳輸的可靠性。編程語言

另外,還有一些帶有糾錯能力的差錯檢測編碼,與上面相似也是在數據幀中附加幀檢驗序列,這種編碼有必定的機率能夠檢測到具體是哪一個比特在傳輸中出現了錯誤,以減小數據鏈路層對數據幀的丟棄。以太網協議沒有實現糾錯,由傳輸層來保證傳輸的可靠性。優化

因爲數據鏈路層不能保證它上面的協議層的可靠性傳輸,能夠不實現接收確認機制,由高層來實現可靠性傳輸。例如TCP/IP協議中傳輸層的可靠性傳輸服務。編碼

5、兩種類型的數據鏈路層


  • 使用點對點信道特性的數據鏈路層
  • 使用廣播信道的數據鏈路層

6、使用點到點協議PPP(Point-to-Point Protocol)

廣域網採用點到點通訊機制。cdn

用戶使用撥號電話線接入因特網(ADSL)時,通常使用PPP協議。PPP協議除了前面介紹的數據鏈路層功能以外,還包含了鏈路控制協議(可用於用戶身份驗證和計費)、網絡控制協議(如協商分配IP地址等)等細分的協議層。blog

7、使用廣播信道的數據鏈路層

局域網採用廣播機制 - 以太網協議,以太網協議組中主要包含MAC協議,一個數據幀也能夠稱爲一個MAC幀。排序

共享通訊媒體接入:

  • 靜態劃分網絡(通常不採用,加入新的機器須要從新劃分資源)

    • 頻分複用
    • 時分複用
    • 碼分複用
    • ... ...
  • 動態接入:

    • 隨機接入(以太網多采用此方式)
    • 受控接入,polling和輪詢等(如今基本已被淘汰)

以太網:

  • 一臺機器發送數據,會廣播給局域網內的全部聯網設備,接收端的網卡不處理不是發送給本身的地址的數據
  • CSMA/CD(載波監聽多點接入/碰撞檢測)協議:多個機器能夠接入一個總線,發送前須要先檢測總線上有沒有多個設備正在發送產生了碰撞。總線空閒的時候才能進行數據發送。兩個設備都檢測到總線空閒併發送時,信號在總線上疊加,就會檢測到碰撞,檢測到碰撞後設備會隨機等待一段時間,再繼續發送。只能進行半雙工通訊,同時收發,信號會在總線上發生碰撞。
  • 因爲存在傳播時延,多個設備同時發送,信號疊加並被檢測到須要必定的時間。因此以太網的發送速率要小於理論值。
  • 信道利用率 最大值:發送時間/(發送時間+傳播時延)
  • MAC層:48位二進制組成全球惟一的MAC地址(前24位表明網卡的生產廠家,後24位廠家本身指定)。根據MAC地址,接收設備能夠接收三種幀:1. 廣播幀 2. 單播幀 3. 組播幀 (這裏的廣播指的是須要局域網內全部設備接收的幀,不是指信號是廣播發送,以太網內全部的信號都是廣播的)
  • 以太網經過基帶(數字)信號來通訊。
  • 目前的以太網通常採用星型拓步結構,經過集線器(集線器工做在物理層)來鏈接不一樣的設備。

優化的以太網:

前面提到多個設備同時發送數據時,信號會在總線上產生碰撞。若是使用交換機組網,交換機能夠根據mac地址轉發數據,信號不會擴散到網絡內的其餘設備,因此多個設備能夠同時發送數據,並且支持全雙工通訊。目前交換機是主流的以太網組網設備。

相關文章
相關標籤/搜索