計算機網絡基礎-3-數據鏈路層


計算機網絡基礎-1-概述

計算機網絡基礎-2-物理層

計算機網絡基礎-4-網絡層

數據鏈路層

一、數據鏈路層概述

    數據鏈路層使用的信道主要有以下兩種類型:

      點對點信道:這種信道使用一對一的點對點通信方式

      廣播信道:這種信道使用一對多的廣播通信方式,因此過程比較復雜。廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送。

    數據鏈路層模型:

      

      

    鏈路:是一條無源的點到點的物理線路段,中間沒有任何其他的交換結點,又稱為“物理鏈路”。一條鏈路只是一條通路的一個組成部分。

    數據鏈路:除了物理線路外,還必須有通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上就構成了數據鏈路。又稱為“邏輯鏈路”。現在最常用

       的方法是使用適配器(即網卡)來實現這些協議的硬件和軟件。一般的適配器都包括了數據鏈路層和物理這兩層的功能。

    數據鏈路層傳送的是幀:

        

          常常在兩個對等的數據鏈路層之間畫出一個數字管道,而在這條數字管道上傳輸的數據單位是幀。數據鏈路層不必考慮物理層如何實現比特傳輸細節。甚至

        還可以更簡單地設想好像是沿着兩個數據鏈路層之間的水平方向把幀直接發送到對方。

        

二、三個基本問題

    數據鏈路層協議有許多種,但有三個基本問題是共同的,這三個基本問題是:封裝成幀,透明傳輸,差錯控制。

    1.封裝成幀:在一段數據的前后分別添加首部和尾部,然后構成了一個幀,確定幀的界線。首部和尾部的一個重要作用就是進行幀定界。

          

            當數據是由可打印的ASCII碼組成的文本文件時,幀定界可以使用特殊的幀定界符。控制字符SOH(Start Of Header)放在一幀的最前面,表示幀的首部

          開始。另一個控制字符EOT(End Of Transmission)表示幀的結束。

    2.透明傳輸:如果數據中的某個字節的二進制代碼恰好和SOH或EOT一樣,數據鏈路層就會錯誤地"找到幀的邊界"

          

          解決辦法:字節填充或字符填充。發送端的數據鏈路層在數據中出現控制字符“SOH”或“EOT”的前面插入一個轉義字符“ESC”(其十六進制編碼是1B)。接收

             端的數據鏈路層在將數據送往網絡層之前刪除插入的轉義字符。如果轉義字符也出現在數據當中,那么應在轉義字符前面插入一個轉義字符ESC。當

             接收端收到兩個連續的轉義字符時,就刪除其中前面的一個。

             

    3.差錯檢測:在傳輸過程中可能會產生比特差錯,就是1可能變成0,0可能變成1。在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率BER(Bit Error Rate),

        誤碼率與信噪比有很大關系。為了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須采用各種差錯檢測措施。在數據鏈路層傳送的幀中,廣泛使用了循環

        冗余檢驗CRC的檢錯技術。

          在發送端,先把數據划分為組。假定每組k個比特。假設待傳送的一組數據M=101001(現在k=6)。我們在M的后面再添加供差錯檢測用的n位冗余碼一起發送。

          計算冗余碼:用二進制的模2運算進行2n乘M的運算,這相當於在M后面添加n個0。得到的(k+n)位的數除以事先選定好的長度為(n+1)位的除數P,得出商是Q

        而余數是R,余數R比除數少1位,即R是n位。

          舉例

                  

          幀檢驗序列FCS:在數據后面添加的冗余碼稱為幀檢驗序列FCS。循環冗余校驗CRC和幀檢驗序列FCS並不等同,CRC是一種常用的檢錯方法,而FCS是

                添加在數據后面的冗余碼。FCS可以用CRC這種方法得出,但CRC並非是用來獲得FCS的唯一方法。

          在接收端,若接受的數據(如例中的101001001)除以除數P(如例中的1101)得出的余數R=0,則判定這個幀沒有差錯,就接受,否則,這個幀有差錯,就丟棄。

          CRC檢測方法缺點:並不能確定究竟是哪一個或哪幾個比特出現了差錯。只要經過嚴格的挑選,並使用位數足夠多的除數P,那么出現檢測不到的差錯的概

                 率就很小很小。僅用循環冗余檢驗CRC差錯檢測技術只能做到無差錯接受(凡是接受的幀都是沒有差錯的,有差錯的幀都丟棄了)。

          注意:“無比特差錯”與“無傳輸差錯”是不同的概念。在數據鏈路層使用CRC檢驗,能夠實現無比特差錯的傳輸,但這還不是可靠傳輸。接下來介紹的數據鏈

           路層的協議都不是可靠傳輸協議。

三、點對點PPP協議

    對於點對點的鏈路,目前使用得最廣泛的數據鏈路層協議是點對點協議PPP(Point-to-Point Protocol)。用戶使用撥號電話線接入互聯網時,用戶計算機和ISP進行通信時所

  使用的數據鏈路層協議就是PPP協議。PPP協議是不可靠傳輸協議

    

    PPP協議應滿足的要求

      1.簡單:首要的要求。

      2.封裝成幀:必須規定特殊的字符作為幀界定符。

      3.透明性:必須保證數據傳輸的透明性。

      4.差錯檢測:能夠對接收端收到的幀進行檢測,並立即丟棄有差錯的幀。

      5.支持多種網絡層協議:對上層,能夠在同一條物理鏈路上同時支持多種網絡協議。

      6.支持多種類型鏈路:對下層,能夠在多種類型的鏈路上運行。

      7.檢測連接狀態:能夠及時自動檢測出鏈路是否處於正常的工作狀態。

      8.設置最大傳送單元:必須對每一種類型的點對點鏈路設置最大傳送單元MTU的標准默認值,促進各種實現之間的互操作性。

      9.網絡層地址協商:必須提供一種機制使通信的兩個網絡層實體能夠通過協商知道或能夠配置彼此的兩個網絡層的地址。

      10.數據壓縮協商:必須提供一種方法來協商使用數據壓縮算法。

    PPP協議的組成

      1.一個將IP數據報封裝到串行鏈路的方法,能夠支持同步和異步鏈路。

      2.鏈路控制協議LCP(Link Control Protocol),對下層,用來建立、配置和測試鏈路連接。

      3.網絡控制協議NCP(Network Control Protocol),對上層,滿足對網絡層協議的支持。

    PPP協議的幀格式

      

      1.PPP幀的首部和尾部分別為4個字段和2個字段,PPP是面向字節的,所有的PPP幀長度都是整數字節。

      2.標志字段F = 0x7E(二進制表示是01111110)。

      3.地址字段A只置為0xFF。

      4.控制字段C通常置為0x03。

      5.PPP幀有2個字節的協議字段。其值若為0x0021,則信息字段就是IP數據報。

                       若為0x8021,則信息字段是網絡控制數據。

                          若為0xC021,則信息字段是PPP鏈路控制數據。

                       若為0xC023,則信息字段是鑒別數據。

      6.信息部分長度可變,受到最大傳送單元的限制,不超過1500字節。

      7.使用CRC循環冗余檢測法的FCS幀校驗序列2個字節。

    PPP解決透明傳輸問題

      當PPP用在同步傳輸鏈路時,協議規定硬件來完成0比特填充。

            同步傳輸時,采用0比特填充法,使一幀中兩個F字段之間不會出現6個連續的1。

            在發送端,只要發現有5個連續的1,則立即填入一個0。

            在接收端,對幀中的比特流進行掃描,每當發現5個連續的1時,就把5個連續1后的一個0刪除,以還原成原來的比特流。

            

      當PPP用在異步傳輸鏈路時,就使用一種特殊的字符填充法。

           將信息字段中出現的每一個0x7E字節轉變成為2字節序列(0x7D,0x5E)。若信息字段中出現一個0x7D的字節,則將其轉變為兩個字節序列(0x7D,0x5D)。

         若信息字段中出現ASCII碼的控制字符(即數值小於0x20的字符),同時將該字符前面要加入一個0x7D字節,同時將該字符的編碼加以改變(RFC1662中有規定)。

         舉例:

           一個PPP數據幀是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E,請問真正的數據是什么?

           答案:7E FE 27 7D 7D 65 7E

    PPP協議的工作狀態:當用戶撥號接入ISP時,路由器的調制解調器對撥號做出確認,並建立一條物理連接。PC機向路由器發送一系列的LCP分組(封裝成多個PPP幀)。這

            些分組及其響應選擇一些PPP參數,並進行網絡層配置,NCP給新接入的PC機分配一個臨時的IP地址,使PC機成為因特網上的一個主機。通信完畢之后,

            NCP釋放網絡層連接,收回原來分配出去的IP地址。接着LCP釋放數據鏈路層連接。最后釋放的是物理層的連接。可見,PPP協議已不是純粹的數據鏈路

            層協議,它還包含了物理層和網絡層的內容。

            

四、局域網的數據鏈路層

    局域網的最主要的特點是:網絡為一個單位所擁有;地理范圍和站點數目均有限。

    局域網具有如下主要優點:具有廣播功能,從一個站點可方便地訪問全網。局域網上的主機可共享連接在局域網上的各種硬件和軟件資源。便於系統的擴展和逐漸地演變,

              各設備的位置可靈活調整和改變。提高了系統的可靠性、可用性和殘存性。

    局域網的常見拓撲結構

        

    局域網的媒體共享技術:靜態划分信道:頻分復用、時分復用、波分復用、碼分復用

               動態媒體划分接入控制(多點接入):隨機接入、受控接入(如多點線路探詢或輪詢)

    以太網的兩個標准:DIX Ethernet V2是世界上第一個局域網產品(以太網)的規約。

             IEEE802.3是第一個IEEE的以太網標准。常將802.3局域網簡稱為“以太網”。嚴格來說,“以太網”應當是指符合DIX Ethernet V2標准的局域網。

    數據鏈路層的兩個子層

      為了使數據鏈路層能更好地適應多種局域網標准,IEEE802委員會就將局域網的數據鏈路層拆成兩個子層:邏輯鏈路控制LLC子層(Logical Link Control)

                                                     媒體接入控制MAC子層(Medium Access Control)

      與接入到傳輸媒體有關的內容都放在MAC子層,而LLC子層則與傳輸媒體無關。不管采用何種協議的局域網,對LLC子層來說都是透明的。一般不考慮LLC子層。所以

      很多廠商生產的適配器上就僅裝有MAC協議,而沒有LLC協議。

      

    適配器的作用:網絡接口板又稱為通信適配器或網絡接口卡NIC或網卡。進行串行到並行的轉換。對數據進行緩存。在計算機的操作系統安裝設備驅動程序。實現以太網協議。

      

五、CSMA/CD協議(先發再聽,邊發邊聽,碰撞停止,隨機延發)

    CSMA/CD協議(Carrier Sense Multiple Access with Collision Detection),是為了解決局域網的共享媒體技術隨機接入突發性產生的沖突問題而提出的不可靠傳輸協議

    "多點接入"(Multiple Access)表示許多計算機以多點接入的方式連接在一根總線上。

    "載波監聽"(Carrier Sense)是指每一個站在發送數據之前先檢測一下總線上是否有其他計算機在發送數據,如果有,則暫時不要發送數據,以免發生碰撞。

    "碰撞檢測"(Collision Detection)是指計算機邊發送數據邊檢測信道上的信號電壓大小。當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將增大。當

                一個站檢測到信號電壓擺動值超過一定的門限值時,就認為總線上至少有兩個站同時在發送數據,表明產生了碰撞。在發生了碰撞后

                總線上傳輸的信號產生嚴重的失真,無法從從恢復出有用的信息來。每一個正在發送數據的站,一旦發現總線上出現了碰撞,就立即

                停止發送,免得繼續浪費網絡資源,然后的等待一段隨機時間后再次發送。

     問題1:每一站在發送數據之前已經監聽到信道為"空閑",為什么還會出現碰撞?

       答:    

        CSMA/CD重要特性:使用CSMA/CD協議的以太網不能進行全雙工通信,而只能進行雙向交替通信(半雙工通信)。每個站在發送數據之后的一小段時間內,

                存在着遭遇碰撞的可能性。這種發送的不確定性,使整個以太網的平均通信遠遠小於以太網的最高數據率。

    問題2:某站點發出數據后最多經過多長時間能夠檢測到碰撞沖突?

       答:t = 2τ - δ的最大值即δ -> 0時,所以距離碰撞點最遠的站點最多經過2τ的時間檢測到碰撞沖突。2τ有個專用術語叫做爭用期。

       爭用期:最先發送數據幀的站,在發送數據幀后至多經過時間2τ(往返時延,兩倍端到端的傳播時延),就可知道發送端額數據幀是否遭受了碰撞。這個爭用期

         在實際的10Mbit/s以太網中取51.2us為爭用期長度。

       最短有效幀長:對於10Mbit/s以太網在爭用期內可發送512bit,即64字節。這意味着,以太網在發送數據時,若前64個字節沒有發送沖突,則后續數據就不會

            發生沖突。所以以太網規定了最短有效幀長度為64字節,凡是長度小於64字節的幀都是由於沖突而中止的無效幀。

    問題3:產生碰撞之后如何進行避讓?

       答:檢測到碰撞-->數據失真-->停止發送

         退避一段時間-->再次發送

    問題4:退避時間,這個時間如何確定?

       答:CSMA/CD協議用到了一個截斷二進制指數類型退避算法:發生碰撞的站在停止發送數據后,要退避一個隨機時間才能再發送數據。

          具體流程如下:1.確定基本退避時間,一般是取爭用期2τ

                 2.定義重傳次數k,k<=10,即k = Min[重傳次數,10]

                 3.從整數集合[0,1,2,3,...,(2k - 1)]中隨機地取出一個數,記為 r。重傳所需所需的時延就是 r 倍的基本退避時間。

                 4.當重傳16次仍不能成功時即丟棄該幀,並向高層報告。

六、使用集線器的星型拓撲

    傳統以太網最初是使用粗同軸電纜,后來演進到使用比較便宜的細同軸電纜,最后發展為使用更便宜和靈活的雙絞線。采用雙絞線的以太網采用星型拓撲,在星形的

  中心則增加了一種可靠性非常高的設備,叫做集線器(hub)。

        

    使用無屏蔽雙絞線,采用星型拓撲。每個站需要用兩對雙絞線,分別用於發送和接收。雙絞線的兩端使用RJ-45插頭。集線器使用了大規模集成電路芯片,因此集線

  器的可靠性提高。10BASE-T的通信距離稍短,每個站到集線器的距離不超過100m

    集線器的特點:1.集線器是使用電子器件來模擬實際電纜線的工作,因此整個系統仍然像傳統以太網那樣運行。

           2.使用集線器的以太網在邏輯上仍然是一個總線網,各工作站使用的還是CSMA/CD協議,並共享邏輯上的總線。

           3.集線器很像一個多接口的轉發器,工作在物理層

           4.集線器采用了專門的芯片,進行自適應串音回波抵消,減少了近端串音。

           

    以太網的信道利用率:多個站在以太網同時工作就可能會發生碰撞。當發生碰撞時,信道資源實際上是浪費了。因此當扣除碰撞所造成的信道損失后,以太網總的信

            道利用率並不能達到100%。假設 τ 是以太網端到端的傳播時延,則爭用期長度為2τ,即端到端傳播時延的兩倍。檢測到碰撞后不發送干擾信號。設

            幀長為L(bit),數據發送速率為C(bit/s),則幀的發送時間為T0= L/C  (s)。一個站在發送幀時發生了碰撞。經過一個爭用期2τ后,可能又出現了一個碰

            撞。這樣經過若干個爭用期后,一個站發送成功了。假定發送幀需要的時間是T0

            

            由圖可知,成功發送一個幀需要占用信道的時間是T0 + τ,比這個幀的發送時間要多一個端到端的傳播時延τ 。這是因為當一個站發送完最后一個比

              特時,這個比特還要在以太網上傳播。在最極端的情況下,發送站在傳輸媒體的一端,而比特在媒體上傳輸到另一端所需的時間是τ。

    參數α與信道利用率:要提高以太網的信道利用率,就必須減少 τ 與T0 之比。在以太網中定了參數α,它是以太網端到端傳播時延 τ 與幀的發送時間T0 之比。即α=τ/T0

                 當α趨近於0時,表示發生碰撞就立即可以檢測出來,並立即停止發送,因而信道利用率很高。

                 當α越大時,表明爭用期所占比例增大,每發生一次碰撞就浪費許多信道資源,使得信道利用率明顯降低。

              所以為提高信道利用率,以太網的參數α的應當盡可能小一些。對以太網參數α的要求是:當數據率一定時,以太網的連線的長度受到限制,否則

              τ 的數值會太大。以太網的幀長不能,否則T0 的值會太小,使α值太大。

                

                

七、以太網的MAC層

    在局域網中,硬件地址又稱為物理地址,或MAC地址。802標准所說的"地址"嚴格地講應當是每一個站的"名字"或標識符。請注意,如果連接在局域網上的主機或

  路由器安裝多個適配器,那么這樣的的主機或路由器就有多個地址,更准確的說,這種48位的地址應當是某個接口的標識符。

    IEEE802標准規定,MAC地址字段可采用6字節(48位)或2字節(16位)這兩種中的一種。IEEE的注冊管理機構RA負責向廠家分配地址字段6個字節中的前三個字節,

  稱為組織唯一標識符。地址字段的6個字節中的后三個字節由廠家自行指派,稱為擴展唯一標識符,必須保證生產出的適配器沒有重復地址。一個地址塊可以生產224

  不同的地址,這種48位的地址稱為MAC-48,它的通用名稱是EUI-48。生產適配器時,6字節的MAC地址已被固化在適配器的ROM,因此MAC地址叫做硬件地址。

      

    單站地址、組地址、廣播地址

        IEEE規定地址字段的第一字節的最低位為I/G(Individual/Group)位。

            1.當I/G位=0時,地址字段表示一個單站地址

            2.當I/G位=1時,表示組地址,用來進行多播。此時IEEE只分配地址字段前三個字段中的23位。

            3.當I/G位分別為0和1時,一個地址塊可分別生成223個單站地址和223個組地址。

            4.所有48位都為1時,為廣播地址。只能作為目標的地址使用。

        IEEE規定地址字段第一字節的最低第2位為G/L位,表示Global/Local。

            1.當G/L位=0時,是全球管理(保證在全球沒有相同的地址),廠商想IEEE購買的OUI都屬於全球管理。

            2.當G/L位=1時,這時用戶可以任意分配網絡上的地址。

    適配器檢查MAC地址

        適配器從網絡上每收到一個MAC幀就首先用硬件檢查MAC幀中的MAC地址。如果是發往本站的幀則收下,然后再進行其他的處理。否則就將此幀丟棄,不再進行其他處理。

       “發往本站的幀”包括以下三種幀:單播幀:(一對一)

                       廣播幀:(一對全體)

                       多播幀:(一對多)

        所有適配器都至少能夠識別前兩種幀,即能夠識別單播地址和廣播地址。有的適配器可用編程方法識別多播地址。

        只有目的地址才能使用廣播地址和多播地址。以混雜方式工作的以太網適配器只要"聽到”有幀在以太網上傳輸就都接收下來。

    MAC幀的格式:最常用的MAC幀是以太網DIX Ethernet V2標准格式

        

        1.6字節目的地址字段:目的MAC地址

        2.6字節源地址字段:源MAC地址

        3.2字節上層協議類型字段:用來標志上一層使用的是什么協議。

        4.46~1500字節的MAC客戶數據字段:最小長度64字節-18字節的首部和尾部 = 46字節數據字段的最小長度。當數據字段的長度小於46字節時,應當在數據字段的

                       后面加入整數字節的填充字段,以保證以太網的MAC幀長不小於64字節。

        5.4字節CRC循環冗余檢測法的FCS幀校驗序列:當傳輸媒體的誤碼率為1*10-8時,MAC子層可使未檢測到的差錯小於1*10-14

    無效MAC幀(滿足以下其一便是無效幀):對於檢查出無效MAC幀就直接丟棄。以太網不負責重傳丟棄的幀

        1.數據字段長度和長度字段的值不一致

        2.幀的長度不是整數個字節

        3.用收到的幀檢驗序列FCS查出有錯

        4.數據字段的長度不在46~1500字節之間

        5.MAC幀長度不在64~1518字節之間

八、以太網的擴展(指的是從數據鏈路層和物理層上進行擴展)

    1.以太網擴展的目的

        

    2.在物理層擴展

        (1)使用光纖擴展:主機使用光纖(通常是一對光纖)和一對光纖調制解調器連接到集線器。很容易使主機和幾公里之外的集線器相連接。

                 

        (2)使用集線器擴展:使用多個集線器可連成更大的、多級星型結構的以太網。

                 優點:使原來屬於不同碰撞域的以太網上的計算機能夠進行跨碰撞域的通信。擴大了以太網覆蓋的地理范圍。

                 缺點:碰撞域增大了,當總的吞吐量沒有提高。如果不同的碰撞域使用不同的數據率,那么就不能用集線器將它們互連起來。

    3.在數據鏈路層擴展(更常用)

        早期使用網橋,現在使用交換機。

        網橋工作的數據鏈路層,根據MAC幀地址的目的地址對收到的幀進行轉發和過濾。當網橋收到一個幀時,並不是向所有的接口轉發此幀,

      而是先檢查此幀的目的MAC幀,然后再確定將該幀轉發到哪一個接口,或把它丟棄。

        1990年問世的交互式集線器可明顯地提高以太網的性能。交換式集線器常稱為以太網交換機,或第二層交換機。

        

        以太網交換機的交換方式:

           1.儲存轉發方式:把整個數據幀先緩存后再進行處理。

           2.直通方式:接收數據幀的同時就立即按數據幀的目的MAC地址決定該幀的轉發接口,因而提高了幀的轉發速度。缺點就是不檢查差錯就直接將幀轉發出去。

        以太網交換機自學習功能:

                    

          

九、虛擬局域網

    利用以太網交換機可以很方便的實現虛擬局域網VLAN。

    

    

 

    虛擬局域網的MAC幀格式:

    

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM