4、數(shù)據(jù)鏈路層1(計算機(jī)網(wǎng)絡(luò)筆記)

三、數(shù)據(jù)鏈路層

3.1 基本概念及基本問題

3.1.1基本概念

數(shù)據(jù)鏈路層的簡單模型

1

說明:本章我們只是關(guān)注數(shù)據(jù)鏈路層的傳輸,即僅從數(shù)據(jù)鏈路層觀察幀的流動。

  • 數(shù)據(jù)鏈路層的信道類型
    數(shù)據(jù)鏈路層使用的信道主要有以下兩種類型:
    1、點(diǎn)對點(diǎn)信道:這種信道使用一對一的點(diǎn)對點(diǎn)通信方式
    2、廣播信道:這種信道使用一對多的廣播通信方式,因此過程比較復(fù)雜。廣播信道上連接的主機(jī)很多,因此必須使用抓用的共享信道協(xié)議來協(xié)調(diào)這些主機(jī)的數(shù)據(jù)發(fā)送。

  • 鏈路與數(shù)據(jù)鏈路
    1、鏈路是一條點(diǎn)到點(diǎn)的物理線路段,中間沒有任何其他的交換結(jié)點(diǎn)。一條鏈路只是一條通路的一個組成部分。
    2、數(shù)據(jù)鏈路除了物理線路外,還必須有通信協(xié)議來控制這些數(shù)據(jù)的傳輸。若把實(shí)現(xiàn)這些協(xié)議的硬件和軟件加到鏈路上,就構(gòu)成了數(shù)據(jù)鏈路?,F(xiàn)今最常用的方法是使用適配器(即網(wǎng)卡)來實(shí)現(xiàn)這些協(xié)議的硬件和軟件。一般的適配器都包括了數(shù)據(jù)鏈路層和物理層這兩層的功能。


  • 2

    說明:網(wǎng)絡(luò)層中傳遞過來的數(shù)據(jù)報加上幀頭和幀尾以及校驗(yàn)之后就變?yōu)閿?shù)據(jù)幀了。數(shù)據(jù)鏈路層就像一個數(shù)字管道,所以常常在兩個對等的數(shù)據(jù)鏈路層之間畫出一個數(shù)字管道,而在這條數(shù)字管道上傳輸?shù)臄?shù)據(jù)單位就是幀。

3.1.2 三個基本問題

  • 封裝成幀
    1、封裝成幀就是在一段數(shù)據(jù)的前后分別添加首部和尾部,然后就構(gòu)成了一個幀。確定幀的界限。
    2、首部和尾部的一個重要作用就是進(jìn)行幀定界。
    3

    下面看一個例子,用控制字符進(jìn)行幀定界的方法
    4

    說明:試想,幀還未發(fā)送完,發(fā)送端出了問題,只能重發(fā)該幀。接收端卻收到了前面“半截子幀”,它會拋棄嗎?為什么?當(dāng)然這里的開始和結(jié)束字符也可以是別的。
  • 透明傳輸

    5

    說明:若傳輸?shù)臄?shù)據(jù)是ASCII碼中“可打印字符(供95個)”集時,一切正常。若傳輸?shù)臄?shù)據(jù)不是僅由“可打印字符”組成時,就會出現(xiàn)問題,如圖所示。如果數(shù)據(jù)部分恰好包含了開始標(biāo)記或者結(jié)束標(biāo)記,如何告訴計算機(jī)?
    6

    說明:發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符“SOH”或“EOT”的前面插入一個轉(zhuǎn)義字符“ESC”(其十六進(jìn)制編碼是1B)。字節(jié)填充或字符填充:接收端的數(shù)據(jù)鏈路層在將數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除插入的轉(zhuǎn)義字符。如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)當(dāng)中,那么應(yīng)在轉(zhuǎn)義字符前插入一個轉(zhuǎn)義字符。當(dāng)接收端收到連續(xù)的兩個轉(zhuǎn)義字符時,就刪除其中前面的一個。

  • 差錯控制
    傳輸過程中可能會產(chǎn)生比特差錯:1可能會變成0,而0也可能變成1。在一段時間內(nèi),傳輸錯誤的比特占所傳輸比特總數(shù)的比率稱為誤碼率BER(Bit Error Rate)。誤碼率與信噪比有很大關(guān)系。為了保證數(shù)據(jù)傳輸?shù)目煽啃裕谟嬎銠C(jī)網(wǎng)絡(luò)傳輸數(shù)據(jù)時,必須采用各種差錯檢測措施。數(shù)據(jù)鏈路層中如果發(fā)現(xiàn)數(shù)據(jù)有誤會直接將其扔掉,而是否需要重發(fā)是由傳輸層來決定。

3.2 兩種情況下的數(shù)據(jù)鏈路層

3.2.1 使用點(diǎn)對點(diǎn)信道的數(shù)據(jù)鏈路層

  • PPP協(xié)議使用場合

    7

    說明:我們家用的電腦到路由器的那根線就是點(diǎn)對點(diǎn),使用的是PPP協(xié)議。這是一個數(shù)據(jù)鏈路層的協(xié)議。現(xiàn)在全世界是有那個的最多的數(shù)據(jù)鏈路層協(xié)議是點(diǎn)對點(diǎn)協(xié)議PPP(Point-toPoint Protocol)。用戶使用撥號電話線接入Internet時,一般都是使用此協(xié)議。

  • PPP協(xié)議滿足的要求

    • 簡單:這是首要的要求
    • 封裝成幀
    • 透明性
    • 多種網(wǎng)絡(luò)協(xié)議:如TCP
    • 多種類型鏈路
    • 差錯檢測
    • 檢測連接狀態(tài)
    • 最大傳送單元
    • 網(wǎng)絡(luò)層地址協(xié)商
    • 數(shù)據(jù)壓縮協(xié)商
  • PPP協(xié)議不需要滿足的要求

    • 糾錯
    • 流量控制
    • 序號
    • 多點(diǎn)線路
    • 半雙工或單工鏈路
  • PPP協(xié)議的組成

    • 數(shù)據(jù)鏈路層協(xié)議可以用于異步串行或同步串行介質(zhì)
    • 它使用LCP(鏈路控制協(xié)議)建立并維護(hù)數(shù)據(jù)鏈路連接,如身份驗(yàn)證,計費(fèi)
    • 網(wǎng)絡(luò)控制協(xié)議(NCP)允許在點(diǎn)到點(diǎn)連接上使用多種網(wǎng)絡(luò)協(xié)議,如圖所示
      8
  • PPP協(xié)議的幀格式

    9

    說明:其中A、C段是固定的,因?yàn)檫@是點(diǎn)對點(diǎn),所以不需要地址。而FCS是幀檢驗(yàn)序列。PPP是面向字節(jié)的,所有的PPP幀的長度都是整數(shù)字節(jié)。
    這里也會出現(xiàn)字節(jié)填充的問題:信息字段中出現(xiàn)了標(biāo)志字段的值,可能會被誤認(rèn)為是“標(biāo)志”,怎么辦?

    • 將信息字段中出現(xiàn)的每個0x7E字節(jié)轉(zhuǎn)變成兩個字節(jié)序列(0x7D,0x5E
    • 若信息字段中出現(xiàn)一個0x7D的字節(jié),則將其轉(zhuǎn)變成兩個字節(jié)序列(0x7D,0x5D
    • 若信息字段中出現(xiàn)ASCII碼的控制字符(即數(shù)值小于0x20的字符),則在該字符前面要加上一個0x7D字節(jié),同時將該字符的編碼加以改變。

如果信息部分傳遞的不是上面所說的字節(jié)流,而是二進(jìn)制流,則透明傳輸?shù)膯栴}需要使用零比特填充方法:PPP協(xié)議用在SONET/SDH鏈路時,是使用同步傳輸(一連串的比特連續(xù)傳送)。這時PPP協(xié)議采用零比特填充方法來實(shí)現(xiàn)透明傳輸。在發(fā)送端,只要發(fā)現(xiàn)有五個連續(xù)的1,則立即填入一個0。接收端對幀中的比特流進(jìn)行掃描。每當(dāng)發(fā)現(xiàn)五個連續(xù)1,就把這五個連續(xù)1后的一個0刪除。

10

  • PPP協(xié)議不使用序號和確認(rèn)機(jī)制
    此協(xié)議之所以不適用序號和確認(rèn)機(jī)制是出于一下考慮:

    • 在數(shù)據(jù)鏈路層出現(xiàn)差錯的概率不大時,使用比較簡單的PPP協(xié)議較為合理
    • Internet環(huán)境下,PPP的信息字段放入的數(shù)據(jù)是IP數(shù)據(jù)報。數(shù)據(jù)鏈路層的可靠傳輸并不能夠保證網(wǎng)絡(luò)層的傳輸頁式可靠的。比如在傳輸?shù)倪^程中數(shù)據(jù)丟失了、有錯,這里是不會讓發(fā)送端重發(fā)的,如果有錯就扔掉。
    • 幀檢驗(yàn)序列FCS字段可保證無差錯接受。
  • PPP協(xié)議的工作狀態(tài)
    當(dāng)用戶撥號接入ISP時,路由器的調(diào)制解調(diào)器對撥號做出確認(rèn),并建立一條物理連接。PC機(jī)向路由器發(fā)送一系列的LCP分組(封裝成多個PPP幀)。這些分組及其響應(yīng)的選擇一些PPP參數(shù),和進(jìn)行網(wǎng)絡(luò)層配置,NCP(網(wǎng)絡(luò)控制協(xié)議)給新接入的PC機(jī)分配一個臨時的IP地址,使PC機(jī)稱為Internet上的一個主機(jī)。通信完畢時,NCP釋放網(wǎng)絡(luò)層連接,收回原來分配出去的IP地址。接著,LCP釋放數(shù)據(jù)鏈路層連接。最后釋放的是物理層的連接。

3.2.2 使用廣播信道的數(shù)據(jù)鏈路層

局域網(wǎng)中使用廣播信道進(jìn)行數(shù)據(jù)傳輸。

  • 共享通信媒體
    1、靜態(tài)劃分信道(太麻煩,一般不使用)
    頻分復(fù)用
    時分復(fù)用
    波分復(fù)用
    馬分復(fù)用
    2、動態(tài)媒體接入控制(多點(diǎn)接入)
    隨機(jī)接入(主要被以太網(wǎng)采用)
    受控接入,如多點(diǎn)線路探尋或輪詢(目前已不被采用)

  • 認(rèn)識以太網(wǎng)
    最初的以太網(wǎng)是將許多計算機(jī)都連接到一根總線上。當(dāng)初人為這樣的連接方法既簡單又可靠,因?yàn)榭偩€上沒有源器件。

    11

    說明:這是正常情況下的情況,但是如果A計算機(jī)想要獲得相關(guān)數(shù)據(jù),就可以使用一些抓包工具實(shí)現(xiàn),這樣信息就不安全了。

  • 以太網(wǎng)使用CSMA/CD協(xié)議
    CSMA/CD表示載波監(jiān)聽多點(diǎn)接入/碰撞檢測Carrier Sense Multiple Access with Collision Detection。“多點(diǎn)接入”表示許多計算機(jī)以多點(diǎn)接入的方式連接在一根總線上行?!拜d波監(jiān)聽”是指每一個站在發(fā)送數(shù)據(jù)之前先要檢測一下總線上是否有其他計算機(jī)在發(fā)送數(shù)據(jù),如果有,則暫時不要發(fā)送數(shù)據(jù),以免發(fā)生碰撞,就是用電子技術(shù)檢測總線上有沒有其他計算機(jī)發(fā)送的數(shù)據(jù)信號。

  • 碰撞檢測

    • 碰撞檢測就是計算機(jī)邊發(fā)送數(shù)據(jù)邊檢測信道上的信號電壓大小。
      1、當(dāng)幾個站同時在總線上發(fā)送數(shù)據(jù)時,總線上的信號電壓擺動值將會增大(互相疊加)
      2、當(dāng)一個站檢測到信號電壓擺動值超過一定的門限值時,就人為總線上至少有兩個站同時在發(fā)送數(shù)據(jù),標(biāo)明產(chǎn)生了碰撞。
      3、所謂“碰撞”就是發(fā)生了沖突。因此“碰撞檢測”也稱“沖突檢測”。
    • 檢測到碰撞后
      1、在發(fā)生碰撞時,總線上傳輸?shù)男盘柈a(chǎn)生了嚴(yán)重的失真,無法從中恢復(fù)出有用的信息來。
      2、每一個正在發(fā)送數(shù)據(jù)的站,一旦發(fā)現(xiàn)總線上出現(xiàn)了碰撞,就要立即停止發(fā)送,免得繼續(xù)浪費(fèi)網(wǎng)絡(luò)資源,然后等待一段隨機(jī)時間后再次發(fā)送。
  • CSMA/CD協(xié)議的重要特性
    使用此協(xié)議的以太網(wǎng)不能進(jìn)行全雙工通信而只能進(jìn)行雙向交替通信(半雙工通信)。每個站在發(fā)送數(shù)據(jù)之后一小段時間內(nèi),存在著遭遇碰撞的可能性。這種發(fā)送的不確定性使整個以太網(wǎng)的平均通信量遠(yuǎn)小于以太網(wǎng)的最高數(shù)據(jù)率。

  • 爭用期
    最先發(fā)送數(shù)據(jù)幀的站,在發(fā)送數(shù)據(jù)幀后至多經(jīng)過時間2τ(兩倍的端到端時延)就可知道發(fā)送的數(shù)據(jù)幀是否遭到了碰撞。經(jīng)過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發(fā)送不會發(fā)生碰撞。
    爭用期
    1、以太網(wǎng)的端到端時延稱為爭用期或碰撞窗口。通常,取51.2μs為爭用期的長度。
    2、對于10Mb/s以太網(wǎng),在爭用期內(nèi)可發(fā)送512bit,即64字節(jié)
    3、以太網(wǎng)在發(fā)送數(shù)據(jù)時,若前64字節(jié)未發(fā)生沖突,則后續(xù)的數(shù)據(jù)就不會發(fā)生沖突
    最短有效幀長
    1、如果發(fā)生沖突,就一定是在發(fā)送的前64字節(jié)之內(nèi)
    2、由于一檢測到?jīng)_突就立即中止發(fā)送,這時已經(jīng)發(fā)送出去的數(shù)據(jù)一定小于64字節(jié)
    3、以太網(wǎng)規(guī)定了最短有效幀長為64字節(jié),凡長度小于64字節(jié)的幀都是由于沖突而異常中止的無效幀。

  • 二進(jìn)制指數(shù)類型退避算法
    發(fā)生碰撞的站在停止發(fā)送數(shù)據(jù)后,要推遲(退避)一個隨機(jī)時間才能再發(fā)送數(shù)據(jù)

    • 確定基本退避時間,一般是取為爭用期
    • 確定參數(shù)k,k = Min[重傳次數(shù), 10]
    • 從整數(shù)集合[0, 1, ......, (2^k-1)]中隨機(jī)地取出一個數(shù),記為r。重傳所需的時延就是r倍的基本退避時間。
    • 當(dāng)重傳達(dá)16次仍不能成功時即丟棄該幀,并向高層報告。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容