TCP/IP五層模型之數據鏈路層

點擊圖片領取阿里云云產品幸運券

TCP/IP五層模型:
TCP/IP五層模型

數據鏈路層位於物理層和網絡層之間,其設計的初衷就是順利爲網絡層提供數據服務,不考慮可靠性,可靠性的部分由傳輸層的TCP協議實現。我們可以從下面的圖中簡單地瞭解一下數據鏈路層在網絡傳遞中的地位,假設在通信的過程中需要通過路由器的話,那麼數據的具體流動過程就像下面圖中箭頭的示意:
數據鏈路層在網絡傳遞中的地位

其中路由器負責路由轉發,因此需要最高到網絡層進行IP協議的分析;我們也可以在邏輯上將整個通信過程看成是兩端數據鏈路層之間點對點的通信:
邏輯上將整個通信過程看成是兩端數據鏈路層之間點對點的通信

數據鏈路的信道主要有兩種模式:
1. 點對點信道:這種信道使用一對一的點對點通信方式;
2. 廣播信道:這種信道使用一對多的廣播通信方式,因此過程比較複雜。

點對點的數據鏈路層

  1. 區分“鏈路”與“數據鏈路“
    鏈路指從一個結點到相鄰結點的一段物理線路,其中沒有任何其他的交換結點。數據鏈路則是指在物理線路上添加上控制數據傳輸的協議的硬件和軟件。因此數據鏈路是比鏈路更爲深刻的內涵。
  2. 數據鏈路層的數據傳輸單元我們一般稱之爲幀,數據鏈路層的任務就是將上層的數據封裝成幀交給物理層傳輸,以及分析物理層提交的數據幀,提取出上層數據交給網絡層。具體來說就是:
    a. 信源的數據鏈路層把網絡層交下來的IP數據報添加首部和尾部封裝成幀;
    b. 信源把封裝好的數據幀發送給信宿的數據鏈路層;
    c. 若新宿的數據鏈路層收到的幀無差錯,則從收到的幀中提取出IP數據報上交給網絡層,否則丟棄這個幀;

PPP協議的工作狀態起止於鏈路靜止狀態,這時在用戶PC機和ISP的路由器之間並不存在物理層的連接。整個過程如下圖:
PPP協議的工作狀態

一個正常的工作過程開始於用戶通過選擇網絡連接的選項,然後用戶的PC機通過調制解調器呼叫路由器,路由器就能夠檢測到調制解調器發出的載波信號,在雙方建立了物理層的連接之後,PPP協議就進入“鏈路建立”狀態,其目的是建立鏈路層的LCP連接。
此時LCP開始發送配置請求幀,進行協商一些配置選項,包括鏈路上的最大幀長、所使用的鑑別協議,以及不適用的PPP幀中的地址和控制字段等。LCP的配置請求幀依舊是一個PPP幀,其協議字段置爲LCP對應的代碼,而信息字段包含特定的配置請求。鏈路的另一端可以發送以下幾種響應中的一種:

  • 配置確認幀:所有選項都接受;
  • 配置否認幀:所有選項都理解但不能接受;
  • 配置拒絕幀:選項有的無法識別或不能接受,需要協商;

協商結束後雙方建立了LCP鏈路,接着就進入鑑別階段,在這一狀態下,只允許傳送LCP協議的分組、鑑別協議的分組以及監測鏈路質量的分組。若鑑別失敗,則轉到“鏈路終止”狀態,成功則進入“網絡層協議”狀態。
在“網絡層協議”狀態,PPP鏈路兩端的網絡控制協議NCP根據網絡層的不同協議互相交換網絡層特定的網絡控制分組,總之也許PPP協議兩端的網絡層可能運行不同的網絡層協議,但是都可以使用一個PPP協議進行通信。

使用廣播信道的以太網

由於以太網已經是事實上的局域網標準,我們就主要介紹以太網。廣播網絡的一個重要問題時當所有結點共享通信鏈路時,如何避免衝突,一般有隨機接入和受控接入兩種。實際中我們更多的使用是隨機接入,因此重點來介紹前者。這裏的核心只有一個:CSMA/CD。
CSMA/CD,即載波監聽多點接入/碰撞檢測的縮寫

  • 多點接入
    說明這是個總線網絡,許多計算機以多點接入的方式連接在一根總線上,協議的實質是“載波監聽”和“碰撞監測”;
  • 載波監聽
    即“發送前先監聽”,每個站在發送數據前要先檢測一下總線上是否有其他站在發送數據,如果有,暫時不發送數據,等待信道空閒時再發送,總線上沒有“載波”,這裏只是一個習慣稱呼;
  • 碰撞檢測
    即“邊發送邊監聽”,適配器邊發送數據邊檢測信道上的信號電壓,以便判斷自己在發送數據時其他站是否也在發送數據。

如果考慮上信號在鏈路上的傳播時延,那麼過程類似這樣:
= —— =

由上圖我們可以看出:

  1. CSMA/CD不可能同時進行發送和接受,因此是半雙工協議,即雙向交替通信;
  2. 每一個端點在自己發送數據之後的一小段時間內,存在着遭遇碰撞的可能性,這段時間最長爲兩個單程最長時間,將這個時間成爲“爭用期”,只有通過爭用期的“考驗”,才能肯定這次發送不會發生碰撞。
  3. 以太網把爭用期定位51.2微秒,如果是一個標準10M/s的帶寬的話,大概是512比特,也就是64字節,因此以太網規定了爭用期大小的幀爲最小長度,所有比這小的幀都認爲是碰撞導致的丟棄幀,因此以太網的幀最小爲64字節。

CSMA/CD的要點爲:

  1. 適配器從網絡層獲得一個分組,加上以太網的首部和尾部,組成以太網幀,放入適配器的緩存中,準備發送;
  2. 若適配器檢測到信道空閒,即在發送間隙9.6微秒約96個比特時間內沒有檢測到信道上有信號,就發送這個幀;若檢測到信道忙,則繼續檢測並等待信道轉爲空閒(加上96比特時間),然後發送這個幀;
  3. 在發送過程中繼續檢測信道,若一直未檢測到碰撞,就順利把這個幀成功發送完畢;若檢測到碰撞,則中止數據發送,併發送人爲干擾信號;
  4. 在中止發送後,適配器就執行指數退避算法,等待r被的512比特時間後,返回到步驟(2);

轉載:http://blog.chinaunix.net/uid-26275986-id-4104189.html


點擊圖片領取阿里云云產品幸運券

發佈了52 篇原創文章 · 獲贊 105 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章