文章目錄
- 第三章:資料鏈路層
- 3.1 資料鏈路層概述
- ==3.2 封裝成幀==
- ==3.3 差錯檢測==
- ==3.4 可靠傳輸==
- 3.4.1 可靠傳輸的基本概念
- 3.4.2 可靠傳輸的實作機制 — 停止-等待協議
- 3.4.3 可靠傳輸的實作機制 — 回退N幀協議
- ==3.4.4 可靠傳輸的實作機制 — 選擇重傳協議==
- 3.5 點對點協議PPP
- 3.6 媒體接入控制MAC
- 3.6.1 媒體接入控制的基本概念
- 3.6.2 媒體接入控制 — 靜態劃分信道
- ==3.6.3 媒體接入控制 — 動態接入控制 — 隨機接入 — CSMA/CD協議==
- ==3.6.4 媒體接入控制 — 動態接入控制 — 隨機接入 — CSMA/CA協議==
- 3.7 MAC地址、IP地址和ARP協議
- 3.7.1 MAC地址
- 3.7.2 IP地址
- 3.7.3 ARP協議
- ==3.8 集線器與交換機的區別==
- ==3.9 以太網交換機自學習和轉發幀的流程==
- 3.10 以太網交換機的生成樹協議STP
- 3.11 虛擬局域網VLAN
- 3.11.1 虛擬局域網VLAN概述
學習參考視頻:計算機網路微課堂-湖科大
第三章:資料鏈路層
3.1 資料鏈路層概述
資料鏈路層是OSI參考模型中的第二層,介乎于物理層和網路層之間,資料鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的資料可靠地傳輸到相鄰節點的目標機網路層,
為達到這一目的,資料鏈路必須具備一系列相應的功能,主要有:
- 如何將資料組合成資料塊,在資料鏈路層中稱這種資料塊為幀(frame),幀是資料鏈路層的傳送單位;
- 如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使與接收方相匹配;
- 以及在兩個網路物體之間提供資料鏈路通路的建立、維持和釋放的管理,
3.2 封裝成幀
-
1、封裝成幀是指資料鏈路層把上層交付的協議資料單元添加幀頭和幀尾使之成為幀,
-
幀頭和幀尾具有重要的控制資訊(目的地址、源地址和校驗碼等等);


-
接收方的資料鏈路層如何將物理層交付的位元流如何分辨一個個幀呢?幀頭和幀尾的作用之一就是幀定界
-
-
假如說上層交付的資料單元中含有和幀定界和相同的字符該怎么辦呢,是不是會出問題?
- 答案肯定是不會的,在發送前會掃描該幀,如果有相同的會在前面添加轉義字符;
- 那問題又來了,如果有和轉義字符相同的呢?道理也是同樣的,也在前面添加轉義字符就好了;
- 在接收方接收時,掃描該幀,將轉義字符后的一個幀定界或轉移字符按正常資料接收,直到遇到前面沒有轉義字符的幀定界,
-
2、上述一點也就是透明傳輸,透明傳輸也就是指資料鏈路層對上層交付的傳輸資料沒有任何限制,就好像資料鏈路層不存在一樣,
- 面向位元組的物理鏈路使用位元組填充(或稱字符填充)的方法實作透明傳輸,
- 面向位元的物理鏈路使用位元填充的方法實作透明傳輸,
- 位元填充如下:

3.3 差錯檢測
-
1、實際的通信鏈路都不是理想的,位元在傳輸程序中可能會產生差錯:1可能會變成0,而0也可能變成1,這稱作位元差錯,
-
2、而為解決這一問題,會在幀尾添加幀檢測序列FCS,也就是差錯檢測碼,使用差錯檢測碼來檢測傳輸程序中是否產生位元差錯,是資料鏈路層所要解決的問題之一,
-
奇偶校驗

奇偶校驗實作簡單,具有相對理想的檢錯能力,但當同時出現2位及以上的偶數位同時發生錯誤,奇偶校驗卻無法檢測出偶數個資料位錯誤,通常不會采用,更多是選用下面這種方法,
-
回圈冗余校驗CRC(CYclic Redundancy Check)
- 收發雙方約定好一個生成多項式G(x);
- 發送方基于待發送的資料和生成多項式計算出差錯檢測碼(冗余碼),將其添加到待傳輸資料的后面一起傳輸,
- 接收方通過生成多項式來計算收到的資料是否產生了誤碼,
-
計算方法:

-
舉例說明:


有沒有想過,當接收方檢查出錯后,該如何處理呢?下面就引出了可靠傳輸的概念!
-
3.4 可靠傳輸
3.4.1 可靠傳輸的基本概念
-
1、使用差錯檢測技術(例如回圈冗余校驗CRC),接收方的資料鏈路層就可檢測出幀在傳輸程序中是否產生了誤碼(位元差錯),
-
資料鏈路層向上層提供的服務型別有兩種
- 不可靠傳輸服務:僅僅丟棄有誤碼的幀,其他什么也不做;
- 可靠傳輸服務:想辦法實作發送端發送什么,接收端就接收什么,
-
使用上述哪種方法一般分情況討論
-
一般情況下,有線鏈路的誤碼率比較低,為減小開銷,并不要求資料鏈路層向上提供可靠傳輸服務,即使出現了誤碼,可靠傳輸的問題由其上層處理;
-
無線鏈路易受干擾,誤碼率比較高,因此要求資料鏈路層必須向上層提供可靠傳輸服務,

-
-
2、位元差錯只是傳輸差錯中的一種,
從整個計算機網路結構中來看,傳輸差錯還包括分組丟失、分組失序以及分組重復;(一般這三種不會出現在資料鏈路層,會出現在其上層)
-
3、此外,可靠傳輸服務并不局限于資料鏈路層,其他各層均可選擇實作可靠傳輸,
3.4.2 可靠傳輸的實作機制 — 停止-等待協議
- 1、停止-等待協議,我們通過它的幾種處理程序來介紹:

- 如上圖所示,第一種接收方發現有誤碼后:
- 將該分組丟棄,并給發送方發送NAK信號,表示重發
- 發送方收到后重發,接收方收到無誤后,發送ACK表示成功,然后發送方發送下一個分組
- 第二種接收方沒有收到分組
- 發送方沒有接到接收方信號,引起超時重發
- 第三種接收方收到后,發送ACK確認,但丟失
- 發送方沒有接到信號,誤以為發送失敗,超時重發
- 第四種接收方發送ACK確認但是傳輸時延
>重傳時間,導致分組的確認重復- 所以我們需要給以上ACK和分組標號,以分辨是哪一個的分組確認信號,避免確認資訊混淆,
- 2、信道利用率計算方法

? 當往返時間RTT遠大于資料幀發送時延TD時(例如衛星鏈路),信道利用率非常低;
? 若出現重傳,信道利用率會更低;
為了克服停止-等待協議利用率很低的缺點,就產生了下面兩種協議!
3.4.3 可靠傳輸的實作機制 — 回退N幀協議
在剛才的協議中,我們發現在分組發送后,收到確認資訊后才可發送下一個分組,這就導致了通信資源的浪費,
所以我們可以一次性發送多個分組,提高信道利用率,如下圖所示:

-
1、接下來,我們通過兩個程序來了解它

- 第一種情況:接收視窗依次收到0、1、2、3、4后,每次差錯檢測無誤后向右滑動,然后發送累計確認,也就是發送2和4
- 若發送方收到到2和4后,表示4和4之前的視窗都確認成功,然后向右滑動5個視窗
- 若4丟失,發送方只收到2,表示2之前的接收成功,2之后的要等待超時重傳,所有視窗不動,只能等到5個視窗都發送成功才可滑動;
- 若2丟失,發送方只收到4,表示4和4之前的視窗都確認成功,然后向右滑動5個視窗,這就是累計確認
- 第二種情況:接收視窗依次收到0、1、2、3、4后,差錯檢測發現2誤碼,會發送累計確認1;因為一個資料分組的誤碼就會導致其后續多個資料分組不能被接收方按序接收而丟棄(盡管他們無亂序和誤碼),這必然會造成發送方對這些資料分組的超時重傳,顯然這是對通信資源的極大浪費!
- 第一種情況:接收視窗依次收到0、1、2、3、4后,每次差錯檢測無誤后向右滑動,然后發送累計確認,也就是發送2和4
-
于是出現了下面這種協議
3.4.4 可靠傳輸的實作機制 — 選擇重傳協議
選擇重傳協議為了使發送方僅重傳出現差錯的分組,接收方不能采用累積確認,而需要對每個正確接收到的資料分組進行逐一確認,

-
1、如上圖所示,接收方發送0、1、2、3后,2在傳輸程序中丟失
-
接收方這里,接收到什么便發送什么確認資訊,也就是0、1、3,并向右滑動兩格
-
發送方收到0、1、3后,只能向右滑動兩格,而且發送4、5分組并等待2超時重傳,現況如下圖

-
-
2、發送視窗和接收視窗尺寸大小問題
-
假設現在


-
當1的確認分組丟失后,重新發送0,由于接收方無法分辨新、舊資料分組,則會將其接收到下一個0視窗,會導致下一次接收發送方發送的新的0分組丟棄
-
3.5 點對點協議PPP

3.6 媒體接入控制MAC
3.6.1 媒體接入控制的基本概念
- 共享信道要著重考慮的一個問題就是如何協調多個發送和接收站點對一個共享傳輸媒體的占用,即媒體接入控制MAC,

目前在有線局域網采用的是交換式局域網,而由于無線的廣播天性還是采用的是共享式局域網,
3.6.2 媒體接入控制 — 靜態劃分信道
信道復用:復用就是通過一條物理線路同時傳輸多路用戶的信號;
信道復用技術主要分為以下幾種:
- 1、頻分復用FDM

-
2、時分復用TDM

-
3、波分復用WDM

-
4、碼分復用CDM

3.6.3 媒體接入控制 — 動態接入控制 — 隨機接入 — CSMA/CD協議
載波監聽多址接入/碰撞檢測,即CSMA/CD,為了解決共享式局域網中多臺主機在總線發生碰撞問題,
- 多址接入MA:多個站連接在一條總線上,競爭使用總線;
- 載波監聽CS:每一個站在發送幀之前先要檢測一下總線上是否有其他站點在發送該幀,
- 碰撞檢測CD:每一個正在發送幀的站,邊發送邊檢測碰撞,
1、若采用CSMA/CD協議,當一臺主機要發送幀時程序如下
- 檢測總線是否空閑,若空閑則發送,否則等待并持續檢測
- 發送幀后,在總線傳輸程序中,會一直檢測有沒有發生碰撞
- 若發生碰撞,以太網會采取一種強化碰撞措施,這就是當發送幀的站點一旦檢測到碰撞,除了立即停止發送該幀外,還要再發送32bit或48bit的人為干擾信號,以便有足夠多的碰撞信號使所有站點都能檢測出來,
2、若某主機發送的幀太長,會導致其他主機一直等待,為避免這種情況規定了最大幀長,

3、若幀太短,會導致其他主機檢測不到信道被占用,增加碰撞概率,所以規定了最小幀長,
最 小 幀 長 = 爭 用 期 × 傳 輸 速 率 最小幀長=爭用期\times傳輸速率 最小幀長=爭用期×傳輸速率
爭 用 期 = 兩 點 之 間 距 離 傳 播 速 率 × 2 爭用期=\frac{兩點之間距離}{傳播速率}\times{2} 爭用期=傳播速率兩點之間距離?×2
這種協議用于早期有線共享式局域網,現在隨著科技發展,交換式局域網已完全取代共享式局域網,所以這種協議也就被淘汰了!
3.6.4 媒體接入控制 — 動態接入控制 — 隨機接入 — CSMA/CA協議
在無線局域網中,不能使用碰撞檢測CD,因為:
-
在無線信道中,信號波動會很大,接收到的信號強度可能會遠小于發送信號的強度,如果要在無線網卡上實作碰撞檢測CD,對硬體要求非常高,
-
而且由于無線電波傳播的特殊性(存在隱蔽站問題),進行碰撞檢測的意義也不大,

則給出以下解決辦法:

在講解CSMA/CA流程之前,我們先來了解下幀間間隔IFS
- 802.11規定,所有的站點必須在持續檢測到信道空閑一段時間后才能發送幀,這段時間稱為幀間間隔IFS,
- 高優先級幀等待時間較短,低優先級等待時間較長,這樣就大大減少了發生碰撞的機會,
- 常見的兩種幀間間隔如下:
- 短幀間間隔SIFS(28us):最短的幀間間隔,用來分隔開屬于一次對話的各幀,
- DCF幀間間隔DIFS(128us):他比SIFS要長得多,在DCF方式中用來 發送資料幀和管理資料幀,
一般來說在共享式無線局域網中,在發送幀前都會進行預約,這是因為:
- 對于一般的資料幀來說,其發送時延往往大于傳播時延,碰撞的概率會很大,而且如果發生碰撞,浪費的時間會更多;
- 采用RTS幀和CTS幀進行預約,RTS幀和CTS幀很短,發生碰撞的概率和碰撞產生的開銷都很小,因此用很小的代價對信道進行預約是值得的,
CSMA/CA協議的作業流程:
- 信道空閑時,有幀要發送,要等待一段時間DIFS,因為可能有優先級更高的幀要發送;
- 等待后,發送RTS(請求發送幀);
- 目的站接收后,等待一段時間SIFS,因為在這段時間內目的站足夠從接收狀態變為發送狀態;
- 等待后,發送CTS(允許發送幀);
- 源站接受到CTS幀后,再等待一段時間SIFS,就可以發送資料幀了;
- 目的站接收到資料幀后,等待一段時間SIFS,然后發送確認幀ACK;
除外802.11標準規定了3種情況供用戶選擇:
- 使用RTS幀和CTS幀
- 不使用RTS幀和CTS幀
- 根據資料幀的長度超過某一值時才使用RTS幀和CTS幀
3.7 MAC地址、IP地址和ARP協議
如果我們的資料在局域網中傳輸,那又如何傳輸到指定的主機呢?由此產生了MAC地址
而如果我們的資料要在廣域網甚至網上傳輸呢?那就需要用到IP地址,
3.7.1 MAC地址
-
MAC地址是以太網的MAC子層所使用的地址,又稱作物理地址,屬于資料鏈路層,例如這是我的物理地址:28-3A-4D-15-4F-61
-
一般情況下,用戶主機會有兩個網路配接器,有線局域網配接器和無線局域網配接器,每個配接器在全球都有唯一的MAC地址,嚴格來說,MAC地址是對網路上各介面的唯一標識,而不是對設備的唯一標識!

- 在多個主機連接在同一個廣播信道中,每個主機所發送的幀中必須包含發送主機和接收主機的MAC地址,
3.7.2 IP地址



3.7.3 ARP協議
當多臺主機連接在同一個廣播信道中,所要發送的幀必須包含接收方的MAC地址,而接收方的MAC地址又是從何而來的呢?
以主機B要給C發送資料為例:
-
先查找主機B的ARP高速快取

-
若未找到,會發送ARP請求廣播

-
目的主機接到后,給發送方發送MAC地址,并將對方各自的MAC地址保存在自己的ARP快取中
3.8 集線器與交換機的區別
-
集線器
-
集線器的每個介面僅簡單的轉發位元,不進行碰撞檢測(由各站點的網卡檢測)
-
集線器只作業在物理層,使用集線器的以太網在邏輯上還是總線結構,使用的是CSMA/CD協議,
-
集線器一般都有少量的容錯能力和網路管理能力;例如某個網卡發生故障,不停的發送幀,其可以斷開內部連接,使整個以太網都能正常作業,
若采用集線器擴展以太網,就相當于是廣播式以太網,
若某主機向接收主機發送幀,該幀會通過廣播形式傳播,也就是所有主機都會收到該幀,那這樣,就大大增加了碰撞概率,我們暫且叫這為一個小的碰撞域,
那如果集線器將幾個小的碰撞域連接在一起,那就會形成更大的碰撞域,所以這種方式不可取,
-
-
交換機


3.9 以太網交換機自學習和轉發幀的流程
- 以太網交換機作業在資料鏈路層(也包括物理層)
- 以太網收到幀后,在幀交換表中查找幀的目的MAC地址所對應的介面號,然后通過該介面轉發幀,
- 以太網交換機在最初使用時幀交換表是空的,隨著網路中各主機間的通信,以太網交換機通過自學習演算法自動逐漸建立起幀交換表,

假如說目前有主機連接的兩臺交換機(如上圖),A要往B發送資料幀,作業流程如下:
- A->B幀到達交換機后,交換表中保存A的MAC地址和介面號,然后根據B的MAC地址查找有無對應介面號
- 若有的話直接轉發到對應介面號,沒有向所有介面號都轉發
幀交換表中每條記錄都有有效時間,這是因為MAC地址和介面號的對應關系不是永久性的,
3.10 以太網交換機的生成樹協議STP

3.11 虛擬局域網VLAN
3.11.1 虛擬局域網VLAN概述

-
分割廣播域的方法
-
使用路由器可以隔離廣播域
但是路由器的成本較高
-
虛擬局域網VLAN技術應運而生
-

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/305412.html
標籤:其他
