TCP/IP--數據鏈路層

本篇結構:

  • 前言
  • 正文

一、前言

網絡協議通常分不同層次進行開發,每一層分別負責不同的通信功能。一個協議族,比如TCP/IP,是一組不同層次上的多個協議的組合。TCP/IP通常被認為是一個四層協議系統。
鏈路層(有時也稱作數據鏈路層或網絡接口層),是TCP/IP四層協議中的低層。它通常包括操作系統中的設備驅動程序計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。

我們知道在OSI七層模型中,在鏈路層下面還有一層物理層。計算機用二進制表示信息,而實際的通信媒介處理的卻是電壓的高低,光的閃滅,電波的強弱等信號,把這些信號與二進制的0,1進行轉換正是物理層的作用。
數據鏈路層處理的數據也不是單純的0,1序列,而是把他們集合成一個叫做“幀”的塊進行傳遞。

二、正文

1、數據鏈路層的三個主要目的

為IP模塊發送和接收IP數據報;
為ARP模塊發送ARP請求和接收ARP應答;
為RARP發送RARP請求和接收RARP應答。

2、數據鏈路層點對點信道和廣播信道

數據鏈路層使用的信道主要有兩種:
點對點信道--這種信道使用點對點、一對一的通信方式。
廣播信道--這種信道使用一對多的通信方式。

3、使用點對點信道的數據鏈路層

(1) 鏈路和數據鏈路
鏈路:是一條無源的點到點的物理線路段,中間沒有任何其他的交換結點。
數據鏈路:除了物理線路外,還有一些通信協議控制數據的傳輸,若把實現這些協議的硬件和軟件加到鏈路上,就成了數據鏈路。
(2) 數據鏈路傳遞的是幀


點對點的數據鏈路進行通信時的基本步驟如下:

  • 封裝成幀
    網絡層把ip數據報傳到數據鏈路層成為幀的數據部分,在幀的數據部分分別加上首部和尾部,就構成了幀。首部和尾部的重要作用就是幀界定(即確定幀的界限),用SOH放在幀的最前面,用EOT放在幀的最后面(SOH和EOT是控制字符)。發送幀時,都是從幀的首部開始發送,為了提高幀的傳送效率,應該使幀的數據部分盡量大于首部和尾部,但每種鏈路層協議都規定了幀的數據部分長度上線--最大傳送單元MTU。


  • 透明傳輸
    “透明”是指某一實際存在的事物看起來不存在一樣,“透明傳輸”可以理解為“無論什么樣組合的比特數據,都能原樣沒有差錯的通過這個數據鏈路層。
    為了解決透明傳輸的問題,就需解決數據中可能出現的“SOH”和“EOT”被解釋為控制字符的問題,做法是在前面加一個轉義字符“ESC”。如果出現轉義字符,則在前面再加一個轉義字符,這種方法叫做“字符填充”或“字節填充”。


  • 差錯檢測
    現實的通信鏈路不是理想的,比特在傳輸的過程中會出現差錯:1可能變為0,0可能變為1。這叫比特差錯。為了保證傳輸的可靠性,數據鏈路層采用循環冗余檢驗的檢測(CRC)技術。具體檢測原理暫不深究。
    但需要說明的是數據鏈路層提供的只是對比特差錯檢測,并不能檢測是否出現幀缺失,幀重復和幀失序這些差錯,鏈路層并不提供“可靠傳輸”的服務。

(3) 使用點對點信道的鏈路層協議PPP
數據鏈路層的協議有很多,對于點對點的鏈路,Point-to-Point Protocal(PPP)協議是使用最廣的數據鏈路協議。
PPP協議的組成:
一個將 IP 數據報封裝到串行鏈路的方法。
鏈路控制協議 LCP (Link Control Protocol)。
網絡控制協議 NCP (Network Control Protocol)。
PPP 協議的幀格式:


對PPP協議感興趣的可以找資料深入看看。

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

廣播信道可以實現一對多的通信,局域網使用的就是廣播信道。

(1) 這里就有一個問題,為什么局域網使用廣播信道而廣域網不使用廣播信道呢?
局域網采用廣播通信是因為局域網中的數量不多的機器都連接到同一條物理線路,所有主機的數據傳輸都經過這條鏈路,采用的通信方式是將主機要發送的數據送到公用鏈路上,發送至所有的主機,接收端通過地址對比,接收發往自己的數據,并丟棄其他數據的方式。
廣域網是由更大的地理空間、更多的主機構成的,若要將廣播用于廣域網,可能會導致網絡無法運行。首先,主機間發送數據時,將會獨自占用通信鏈路,降低了網絡的使用率;另一方面,主機A向主機B發送數據,是向網絡中所有的主機發送數據,當主機數目非常多時,將嚴重消耗主機的處理能力。同時也造成了數據的無效流動;再次,極易產生廣播風暴,使網絡無法運行。
(2) 使用廣播信道的局域網的優點
具有廣播功能,從一個站點可很方便地訪問全網。局域網上的主機可共享連接在局域網上的各種硬件和軟件資源。
便于系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
提高了系統的可靠性、可用性和殘存性。
(3) 廣播信道如何共享物理媒體連接
局域網是使用廣播信道的網絡,局域網上的站點從原理上講都通過共享物理媒體相互連接。局域網上某個站點發送的數據,其他站點都能接收到,如果兩個以上站點同時發送的話,這些數據將相互干擾而使接收者無法接收。因此需要有一定的控制方法管理站點對共享媒體的數據發送,以便有多個站點都需要訪問局域網時不至于相互干擾。
任何一個媒體接入控制技術的關鍵參數是“控制地點”和“控制方式”。
“控制地點”有兩種選擇:集中式控制和分布式控制,集中式控制把媒體接入控制權放在某個站點上,其好處是可以對接入訪問進行較多的控制,提供諸如優先控制、保證帶寬等功能;可以使每個站點的邏輯變得盡可能簡單;避免了協調問題。集中式控制的不足是會出現影響全網運行的單站點,該站點正常工作時是局域網的效率瓶頸,出現故障時會導致局域網癱瘓。分布式控制把媒體接入控制權交給網上所有站點,其性能與集中式正好相反。
“控制方式”要完成把傳輸媒體的信道資源合理.有效地分配給網上各個站點的任務。它受局域網的拓撲結構影響,并且是對許多相互制約因素折衷選擇的結果,這些因素有代價、性能和復雜性等。
媒體接入控制方法可分為同步和異步兩類。
在同步方式下,每個接入網絡的站點均被分配一個速率固定的傳輸通道,與其他站點復用局域網媒體。由于站點對傳輸通道的需求會動態變化,峰值流量與平均流量有很大差距,事前又是不可知的,因此同步方式分配通道的方法一般不是最佳的,不適合局域網的應用環境。
異步方式下站點可以隨機接入,即可以任意地訪問媒體,也可以通過某種算法控制站點接入的順序和時間,以獲得較好的對應用需求的響應。異步方式有3種分配方法:循環、預約和競爭。
IEEE 802為解決媒體接入控制,根據不同的網絡拓撲提出了幾個協議,它們是媒體接入子層的主要內容。其中,IEEE 802.3帶沖突檢測的載波監聽多路訪問控制方法是一種典型的采用競爭技術的媒體接入控制協議;IEEE 802.4令牌總線訪問控制方法在物理總線上構成邏輯環,用令牌循環的方式解決媒體接入控制;IEEE 802.5令牌環訪問控制方法在環狀網絡上用令牌預約、令牌循環的方式解決媒體接入控制。
(4) 適配器的作用
適配器即網卡,它上面裝有處理器和存儲器。適配器和局域網之間的通信是通過電纜或雙絞線以串行傳輸方式進行的,而適配器和計算機之間的通信則是通過計算機主板上的I/O總線并以并行的方式進行的。
因為網絡上的數據率和計算機總線上的數據率并不相同,因此在適配器中有對數據進行緩存的存儲芯片。
對數據進行緩存。
適配器在接收和發送各種幀時,不使用計算機的CPU。當適配器收到有差錯的幀時,就直接丟棄不通知計算機,當收到正確的幀時,就中斷通知計算機,并交付協議棧中的網絡層。在發送IP數據報時,就由協議棧把IP數據報向下交給適配器,組裝成幀后發送到局域網。
(5)廣播信道的數據鏈路層協議
這里簡單介紹采用競爭方式的CSMA/CD(載波監聽多路訪問/沖突檢測)協議和CSMA/CA(載波監聽多路訪問/避免沖突)

  • CSMA/CD

它盡可能保證網絡上同時只有一個節點發送數據,減小數據“碰撞”概率。發送數據前 先偵聽信道是否空閑,若空閑則立即發送數據.在發送數據時,邊發送邊繼續偵聽,若偵聽到沖突,則立即停止發送數據。等待一段隨機時間,再重新嘗試。

  • CSMA/CA

它采用主動避免碰撞而非被動偵測的方式來解決碰撞問題,802.11無線局域網采用此數據通信方法。

CSMA/CA協議的工作流程分為兩個分別是:

送出數據前,監聽媒體狀態,等沒有人使用媒體,維持一段時間后,才送出數據。由於每個設備采用的隨機時間不同,所以可以減少沖突的機會。送出數據前,先送一段小小的請求傳送報文(RTS : Request to Send)給目標端,等待目標端回應 CTS: Clear to Send 報文后,才開始傳送,其它接收到RTS、CTS的節點,知道有其它節點正在通信,會關閉自己的數據發送操作, 利用RTS-CTS握手(handshake)程序,確保接下來傳送資料時,不會被碰撞。同時由於RTS-CTS封包都很小,讓傳送的無效開銷變小。
(6)以太網的MAC地址
在局域網中,硬件地址又稱物理地址或MAC地址,是一個6字節,48位的固化在適配器ROM中的地址,每個適配器都有一個全球唯一的MAC地址。
MAC幀時數據鏈路層的數據協議單元。
MAC幀格式:
以太網中有兩種MAC幀格式,DIX Ethernet V2 標準和IEEE 的 802.3 標準,最常用的是是以太網V2的格式。


  • 類型字段 (2個字節) 用來標志上一層使用的是什么協議,以便把收到的MAC幀的數據上交給上一層的這個協議。
  • 數據字段 (46-1500)

正式名稱是MAC客戶數據字段,最小長度64 字節-18字節的首部和尾部 = 數據字段的最小長度

  • FCS字段 (4 字節)
    幀檢查序列,使用CRC檢驗。

當數據字段的長度小于46字節時,應在數據字段的后面加入整數字節的填充字段,以保證以太網的MAC幀長不小于64字節。
由圖可以看到,在傳輸媒體中實際傳送的要比MAC幀多8個字節,這是因為當一個站在剛開始收到MAC幀時,由于適配器的時鐘尚未與到達的比特流達成同步,因此MAC幀的最前面的若干位就無法接受,結果整個MAC成為無用的幀。為了接受段快速實現同步,從MAC子層向下傳到物理層時還要在幀的前面插入8字節,它由兩個字段構成,字節中的第一個字段共 7 個字節,是前同步碼,作用是使接收段的適配器在接收MAC幀時能夠迅速調整其始終頻率,用來迅速實現 MAC幀的比特同步。第二個字段是幀開始定界符,表示后面的信息就是MAC幀。
(7)PPP協議幀和MAC幀的區別
PPP屬于廣域網范疇,MAC是局域網范疇,按實際情況和環境就選用不同的協議,PPP支持的網絡結構只能是點對點,MAC支持多點對多點。
以太網中用AMC,遠程的話就用PPP(如ADSL撥號,就是基于PPP的)。
PPP的幀格式如下:
Flag Address Crotrol Protocol Informaiton FCS Flag
其中Flag標識了一個PPP數據幀的起始及結束,FCS為幀校驗,真正屬于PPP報文內容的為Address,Control,Protocol,Information域所包含內容。Address表示此為PPP廣播地址,Address和Control一起表示了此報文為PPP報文,即PPP報文頭為FF03。
PPP在封裝方式以以太網的封裝方式不同,它沒有以太網幀所要求的MAC地址,它通過自身的協商過程實現點到點的數據傳輸。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 數據鏈路層使用的信道有以下兩種類型: ①點對點信道,一對一的點對點通信方式 ②廣播信道,一對多的廣播通信方式,復雜...
    dmmy大印閱讀 3,335評論 0 3
  • 計網系列文章: 計網積累(一)總覽 計網積累(二)物理層 之前打算配的是納達爾親吻獎杯的圖,后來決定配上這張,對...
    Chris鍋閱讀 2,298評論 0 1
  • 我們可以把因特網看成由許多主干網絡組成,而這些主干網絡由一些國際的、國家的和地區的ISP來運營。主干網通過一些連接...
    Zhang21閱讀 3,337評論 0 6
  • 本書結構是自頂向下的,所以請按下列順序閱讀: 1.計算機網絡自頂向下--應用層2.計算機網絡自頂向下--運輸層3....
    牛富貴兒閱讀 3,496評論 1 10
  • 數據鏈路的信道主要有兩種模式: 點對點信道:這種信道使用一對一的點對點通信方式; 廣播信道:這種信道使用一對多的廣...
    JumboWu閱讀 5,777評論 1 10