2-鏈路層

鏈路

  • 鏈路是一個抽象概念,用於連接節點與數據傳輸.緩存

鏈路類型

點對點鏈路

  • 半雙工,同一時刻僅能負責數據從一端傳輸到另外一端網絡

  • 全雙工,同一時刻兩端均可以同時傳輸數據,即節點能夠同時充當發送者與接收者編碼

多路訪問鏈路

  • 將多個節點鏈接在一塊兒spa

網絡適配器

  • 即網卡,是硬件,用於實現鏈路層協議,具體功能有:code

  • 發送數據: 負責將上層協議發來的數據包封裝成幀(根據節點所處網絡鏈路層協議的不一樣,幀的格式也不相同),再將封裝後的數據幀編碼,成電磁波信號而後傳遞給物理層(如將0編碼爲低電平,1編碼爲高電平),由物理層進行信號的傳輸.進程

  • 接受數據: 負責從鏈路上接受電磁波信號,而後解碼,存儲,檢測接受數據是否發生錯誤,最後傳遞給主機資源

  • 實現多路複用: 容許多個主機依照公平的原則共享一條鏈路同步

多路複用

  • 就像在內核中,多個進程共享資源,但每個進程都認爲本身是系統中惟一一個,這是內核在協調多個進程table

  • 在多路訪問鏈路中,多個節點共享一條鏈路,在網絡適配器(和'鏈路層協議')的工做下,每一個節點都認爲本身是鏈路上惟一一個節點class

  • 多路複用:多個主機經過一條鏈路發送消息,或者一臺主機上多個進程經過一個主機發送消息

多路分解

  • 未來自一條鏈路上的消息分解而後分別發送給不一樣主機,或者將一個主機上的多個消息分解發送給多個進程.

多路分解密鑰

  • 用於標識鏈路上的多個主機,或者一個主機內的多個進程

多種鏈路層協議

  • 組幀,讓接收方能夠判斷幀的開始與結束。以接收方的觀點來看,她收到的都只是010101。。。這樣的比特序列。組幀技術可讓接收方知道幀從什麼時候開始,什麼時候結束。好比能夠在發送幀以前發送'1111110'比特序列,這樣對於接收方來講他在連續接受6個1,以及一個0以後他就能夠判斷接下來就是幀的正體部分了。

  • MTU,最大傳輸單元,即每個鏈路層協議容許在數據幀中數據的最大長度.數據幀的長度=數據的長度+其餘幀字段的長度.

面向字節

  • 把每一幀看做一個字節集,而不是比特集。也即在面向字節的鏈路層協議中,單個比特是沒有意義的。

BISYNC幀格式


  • SYN字符,特定的同步字符,用於標識幀的開始

  • SOH字符,首部開始符,接收方據此判斷一個幀首部的開始

  • STX,正文開始符;接收方據此判斷幀首部的結束,以及正文的開始

  • ETX,正文結束符;接收方據此判斷幀正文的結束,CRC碼的開始

轉義

  • 幀體,是來自上層應用,因此不能對其中的內容作出任何假設。好比假設幀體中不存在ETX字符。

  • 若幀體中出現ETX字符,就要將設置一個標誌,代表該字符只是正文內容,並無正文結束符的語義。

  • 轉義,經過在ETX以前放置DLE字符,告訴接收方接下來的ETX只是普通的正文字符,並無正文結束符的語義。

    • 一樣也應該在正文中出現的DLE字符以前也放置一個DLE字符,讓接收方明確接下來的DLE也只是一個普通字符。

PPP幀格式


語義
標誌
值爲0x7E;標誌幀的開始
地址,控制
值是固定的,語義不明。。。
協議
數據幀應該交付在上層協議,如:IP=0x0021;LCP=0xC021。。
有效載荷
<=1500字節,
校驗和

標誌
值爲0x7E,標誌幀的結束

面向比特

  • 把幀看做比特集,幀中的每個比特都有意義。

HDLC協議

  • HDLC,高級數據鏈路控制協議;由'SDLC,同步數據鏈路控制協議'標準而來

  • 開始序列,結束序列:值爲01111110;標識着幀的開始與結束。

轉義

  • 幀體,來自上層應用,若其中出現了01111110序列,須要轉義。

  • 轉義:任意時刻從消息體中連續發出5個1以後,發送方會在發送下一比特以前發送一個0;(特殊序列01111110除外)

  • 接收方行爲:

接收方在接收到5個1以後...
if(下一比特 == 1){
    接受,緩存...
    if(下一比特 == 1) 幀必定是出錯了,丟棄
    else 結束到結束序列,即幀已經結束了.
}else {    /* 下一比特爲0 */
    該比特爲填充比特,不接受
    設置一個標誌位,代表接下來接受的'01111110'序列只是一個普通的序列,並無'代表幀結束'的語義
}

  • 鏈路控制協議,用來進行鏈路的創建,拆除。。按照個人理解,應該是:

    • 即兩個節點須要數據傳輸時,首先要創建鏈路,在連接鏈路時須要用到LCP協議.

    • 兩個節點之間發送LCP包,在LCP包中包含了一些控制信息,該控制信息決定了PPP協議的幀格式.因此說字段長度是能夠協商的.

    • LCP包又會首先封裝成PPP幀來發送,此時: PPP幀格式的協議字段爲0XC021(即代表該幀是一個LCP包). 有效載荷中存放着控制信息.

相關文章
相關標籤/搜索