計算機網路 資料鏈路層

2021-07-26 17:12:12 字數 3291 閱讀 4136

在iso提出的osi七層模型中,資料鏈路層處於第二層。在這一層,我們重點關注點對點之間的通訊。關於點對點通訊,是指網內任意兩個使用者之間的資訊交換。在這裡不過多的搬抄書上的概念,計算機網路的學習應當是以生活中的實踐作為基礎,來加深理論的理解。

首先,如同在概述中提到的一樣,我們研究網路應當時刻站在分層的角度去研究,那麼兩台主機之間的通訊,有關資料鏈路層的通訊如下:

如果我們站在資料鏈路層的角度上,就可以簡單的將上圖的通訊過程簡化如下:

在上圖中,我們就只考慮資料鏈路層的資料通訊。將主機h1到主機h2之間的所有的通訊認為是所有裝置在資料鏈路層間的通訊,不用去理睬上層和下層之間的關係和各層所做的功能。

與此同時,我們需要知道資料鏈路層在做什麼,能幹什麼。資料鏈路層的乙個作用是幀的封裝,而另乙個作用則是定址。先說說定址,在網路層有乙個定址很接近的功能–尋路,要區分也不難,定址是將實體地址和ip位址進行對應,而尋路則是分組的路由**時使用的規則。再說幀的封裝,網路層將ip資料報交給資料鏈路層,然後在資料鏈路層經過封裝之後才能在物理鏈路上以位元串進行傳輸。

這裡要區分兩個概念:鏈路和資料鏈路,聽名字也就很好區分,鏈路是兩相鄰節點之間的一段物理鏈路,而資料鏈路則是物理鏈路以及該鏈路的協議、傳輸的資料組合而成的。

在資料鏈路層,我們將pdu(協議資料單元)稱之為幀。幀是資料報文的封裝,是將網路層的資料進一步封裝的結果,也就是給ip資料報新增首部和尾部之後的結果。

點對點通道的資料鏈路層通訊時的步驟如下:

幀封裝:將ip資料報新增首部和尾部封裝成幀

傳送:將封裝好的幀傳送給另一台主機

檢錯:如果收到的幀無差錯則上交上面的網路層,否則丟棄該幀

幀的格式如下:

乙個幀包含三個部分:分別是幀首部、幀尾部以及幀的資料部分,各種資料鏈路層協議都規定了幀的資料部分的最大長度——最大傳送單元(mtu)。

幀首部和幀尾部的作用在於定界,由於在物理層傳輸只有位元1和0,為了區分一整個幀的位置新增了特有的標誌來表示幀頭和幀尾,當要在資料中傳輸該特有的標誌時,如同在c語言中的轉義符一樣,在幀中也有乙個特有的轉義字段用來轉義在資料部分表示的幀首和幀尾的標誌,表示該轉義標誌也是使用同樣的方式。

在資料鏈路層的資料交換被認為是透明傳輸的,關於透明傳輸,可以理解為就是不需要關心傳輸的過程,任意資料只要交給資料鏈路層,那麼由該層傳數出去就可以了,我們並不用去關心細節問題,實際上當網路層的ip資料報傳送到資料鏈路層之後,就要進行幀的封裝、定界、加入轉義標誌、字元填充、新增幀校驗序列(fcs)等等一系列處理,但是在透明傳輸的驅使下,這些我們都不需要去關係,畢竟是透明的。

上面我們也說到了在幀中要新增幀校驗序列,幀校驗序列是使用各種檢錯方法得到的一串用來檢錯的一串連續bit。常用的檢錯方法是crc。可自行搜尋計算方法。

幀校驗是為了檢查幀的bit差錯,即就是我們接收到的幀若發現校驗不正確則直接丟棄,並不會再交給網路層去處理,所以無法處理幀丟失、重複、亂序等問題,當然,我們可以增加幀編號、確認、重傳機制來解決這些問題,但是實際上並沒有進行應用,而是交給了上層協議去處理這些問題(如tcp/ip協議中的三次握手這些機制保證傳輸的可靠性)。

ppp協議滿足如下需求:

簡單封裝成幀:將特殊字元作為幀定界符,用來區分幀的開始和結束位置

透明性:要保證資料傳輸的透明性

多種網路層協議:要保證在同一鏈路上支援多種網路層協議的執行

多種型別鏈路:要保證能夠在多種型別的鏈路上執行,如序列、並行,同步或非同步等。

差錯檢測:必須保證能夠立即丟棄有差錯的幀

檢測連線狀態

最大傳輸單元

資料壓縮協商

ppp協議不需要如下功能:

糾錯流量控制

序號多點鏈路:只支援點對點的鏈路通訊

半雙工或單工鏈路

ppp協議不需要的功能大部分也為資料鏈路層不需要具備的功能,因為這些功能的實現在高層(網路層、應用層)能夠做到。

有關ppp協議,與生活較為相關的pppoe,就是ppp over ethernet,也就是我們常用的pppoe撥號(寬頻撥號)經常使用的協議,這個協議把ppp幀再封裝到乙太網幀中,該協議就能從isp經過網路位址協商拿到ip位址共本地計算機使用。

ppp協議的三個組成部分:

將ip資料報封裝到序列鏈路的方法

用來建立、配置和測試資料鏈路連線的鏈路控制協議lcp(link control protocol)

一套網路控制協議ncp(network control protocol),用來支援不同的網路層協議

ppp幀的格式如下:

其中首部和尾部的f為標誌字段,作為定界符使用,首部中的a為位址字段,c為控制字段,但這兩個字段並未攜帶ppp幀的資訊。

這裡的ppp幀和前面說到的資料鏈路層的幀有著一些相似的地方,知識細節不同,比如定界符、轉義的字段填充、零位元填充(保證了透明傳輸,防止出現連續6個1,01111110是定界符)等。

csma/cd(carrier sense multiple access with collision detection)即帶衝突檢測的載波監聽多路訪問技術(載波監聽多點接入/碰撞檢測)

首先,多點接入說明是匯流排型網路,載波監聽就是傳送前先監聽,而碰撞檢測就是邊傳送邊監聽。

在匯流排型網路中,多台主機共享匯流排資源,當兩台或兩台以上的主機同時或者先後在同一通道上進行資料的傳輸的時候就有可能傳送資料疊加,通道上的訊號就會失真,而無法恢復,所以此時介面卡就應當立即停止傳送資料,避免進一步的浪費網路資源,而csma/cd就是來處理這個問題的。

首先,我們需要了解,在通道上的資料傳輸是有時延的,因而當在站點a傳送了資料之後,可能在b站點並沒有檢測到通道上有資料傳輸,此時當b再次往通道上傳送資料之後,就可能會在通道的中途產生碰撞。

關於碰撞的退避演算法,乙太網使用的是截斷二進位制指數退避演算法,可自行檢視。與此同時,乙太網還會採用稱作強化碰撞的措施,該措施會傳送認為干擾訊號,以便讓所有使用者都知道現在已經發生了碰撞。

資料鏈路層的知識包含了很多,這裡就不在搬抄書本的知識,有關ppp協議和csma/cd協議可以進一步檢視其它的相關知識,後面網路層的協議將會以例項的方式總結。

計算機網路 資料鏈路層

一 簡介 資料鏈路層屬於第二層,資料鏈路層試使用物理層提供的服務在通訊通道上傳送和接受位元。它要完成一系列的功能包括 1 向網路層提供乙個定義良好的服務介面。2 處理傳輸錯誤。3 調節資料流,確保慢速的接收方不會被快速的傳送方淹沒。為了實現這個目標,資料鏈路層從網路層獲得資料報,然後將這些資料報封裝...

計算機網路 資料鏈路層

封裝成幀 給上層傳輸來的資料新增資料首部soh 十六進製制 01 二進位制00000001 和尾部eot 十六進製制 04 二進位制 00000100 透明傳輸 封裝成幀使用的首部和尾部的編碼可會和需要封裝的資料的編碼相同,則新增乙個轉義的編碼esc 十六進製制 1b 二進位制00011011 錯誤...

計算機網路 資料鏈路層

封裝成幀 透明傳輸 差錯檢測 1 檢錯編碼 2 糾錯編碼 流量控制和可靠傳輸機制 1 流量控制 可靠傳輸與滑輪視窗機制 2 停止 等待協議 3 後退n幀協議 gbn 4 選擇重傳協議 sr 鏈路控制 mac定址 區分資料和控制資訊 通道劃分 頻分多路復用 時分多路復用 波分多路復用 碼分多路復用的概...