1、使用點對點信道的資料鍊路層
資料鍊路層協定有許多種,但有三個基本問題是共同的。這三個問題是:封裝成幀,透明傳輸,差錯檢測。下面分别讨論一下。
封裝成幀:封裝成幀(framing)就是在一段資料的前後分别添加首部和尾部,然後就構成了一個幀。确定幀的界限。首部和尾部的一個重要作用就是進行幀定界。
透明傳輸:發送端的資料鍊路層在資料中出現控制字元“SOH”或“EOT”的前面插入一個轉義字元“ESC”(其十六進制編碼是 1B)。

差錯檢測:循環備援校驗碼(CRC) :資料鍊路層應用最普遍最有效的檢錯碼
基本原理: 已知一個被傳輸資料塊DATA, k位長,已知除數P , n+1位長, 發送方要産生一個n位長的檢錯碼FCS.把檢錯碼FCS加到資料DATA後面,組成一個包含有k+n的發送幀T,使T能被已知數P整除.發送幀T.當接收器把接收到的幀T’除以P,若能整除,則認為T’無差錯。
模二運算:法則1:加法不進位,減法不借位;加減法等價于逐位異或運算:
1011 1011
- 0101 XOR 0101
1110 1110
法則2:比特序列乘以2的k次幂,就是将比特序列左移k個位置,其後逐位填零
舉例:已知:被傳輸資料塊DATA,包含有k位;P是發送方和接受方均已知的除數,它的第一位和最後一位必須是1,共n+1位,計算DATA的CRC碼:
1.将DATA乘以2的n次幂,即将DATA左移n位添零得到DATA0;(除數P是n+1位)
2.用DATA0除以P,采用模二運算,得到的n位餘數R就是DATA的CRC碼
3.傳送的最終資料DATAT= DATA0+ R,它必被P整除
收到DATAT’=DATA0’+
R’: 如果DATAT’采用模二運算仍然能夠被P整除,則認為沒有發生傳輸差錯
CRC的生成多項式描述方法:将除數P看成是隻有0和1兩個系數的一個多項式的系數序列。n位除數P對應一個n-1次多項式。對應關系如:已知除數P為“1010001”,則生成多項式G(x)描述為6次多項式:x6+x4+1
PPP協定:
組成:PPP 協定有三個組成部分
一個将 IP 資料報封裝到串行鍊路的方法。
鍊路控制協定 LCP (Link Control Protocol)。
網絡控制協定 NCP (Network Control Protocol)
PPP協定的幀格式:
PPP 有一個 2 個位元組的協定字段:
當協定字段為 0x0021 時,PPP 幀的資訊字段就是IP 資料報。
若為 0xC021, 則資訊字段是 PPP 鍊路控制資料。(lcp協定的資料,也是從這裡發送。但是在ethereal中抓不到。因為抓的是在這層上面的包)
若為 0x8021,則表示這是網絡控制資料。 (ncp的資料)
PPP的透明傳輸問題:當 PPP 用在異步傳輸時,就使用一種特殊的字元填充法。
在發送端,隻要發現有 5 個連續 1,則立即填入一個 0。接收端對幀中的比特流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 後的一個 0 删除,
2、使用廣播信道的資料鍊路層
區域網路:
802.1 –區域網路概述、體系結構、網絡管理等
802.2 - 邏輯鍊路控制LLC子層
802.3 - CSMA/CD(以太網)媒體通路控制标準和實體層規範
Ethernet 成為IEEE 802.3 标準(1985)
IEEE 802.3u Fast Ethernet 标準(1995)
IEEE 802.3z Gigabit Ethernet 标準(1998)
LLC層的主要作用:保證站點之間資料傳輸的正确性,
MAC層的主要作用:解決多個站點對共享信道的通路問題
CSMA/CD協定:載波監聽多點接入/碰撞檢測
實作:
先聽後發:載波偵聽技術
邊發邊聽:碰撞檢測技術
沖突停止:發送人為幹擾信号
延遲重發:截斷二進制指數退避算法
沖突視窗:在一個區域網路中,A、B兩結點是距離最遠的兩點,相距D,信号傳播速度V,A在發送資料後最多在W時間後可以檢測出所有可能的沖突:W=2D/V,W被稱為沖突視窗(争用期);A、B兩結點是距離最遠的兩點,A在沖突視窗内可以檢測到所有可能的沖突,那麼其它點當然可以在沖突視窗内檢測到。區域網路中的所有結點在沖突視窗W時間内可以檢測到所有可能的沖突,若在沖突視窗内沒有檢測到沖突,
則可以确認自己競争到了總線的使用權,不再會與其他站點發生沖突
是以:對于 10 Mb/s 以太網,取 51.2 微秒(512bit / 10Mb/s=51.2微秒) 為争用期的長度。在争用期内可發送512 bit,即 64 位元組
(512bit / 8)。10 Mb/s以太網在發送資料時,若前 64 位元組沒有發生沖突,則後續的資料就不會發生沖突。
如果發生沖突,就一定是在發送的前 64 位元組之内。由于一檢測到沖突就立即中止發送,這時已經發送出去的資料一定小于 64 位元組。10 Mb/s以太網規定了最短有效幀長為 64 位元組,凡長度小于 64 位元組的幀都是由于沖突而異常中止的無效幀。
如果發送節點檢測到沖突,則停止發送資料,并發出一個4位元組或6位元組的阻塞信号來加強沖突,增加編碼違例的位數,使其他站點快速檢測到。然後等待随機長的時間後再重新偵聽信道.
MAC幀的格式:最常用的 MAC 幀是以太網 V2 的格式。
目的位址,源位址各占6個位元組,類型占2個位元組,辨別上層是什麼協定(友善把收到的mac幀的資料交給上層協定),然後是46-1500位元組之間大小的資料(46是這麼來的,以64為沖突視窗的大小可以知道,一個正常幀的大小應該大于等于64位元組,然後64-6-6-2-4=46位元組)。最後四個位元組的fcs是叫 幀檢驗序列。
需要指出的是,以太網v2的mac幀格式中,其首部并沒有一個幀長度(或資料長度)的字段。那麼mac子層有怎樣知道從接受到的以太網幀中取出多少位元組的資料傳遞給上一層呢?這個46-1500之間的大小到底是多少呢?這點有曼徹斯特編碼可以知道,發送碼元的時候會有電平的跳變。發送完一個幀後,我們就不發送了,這樣我們從結束位置往前數4個就能确定字段的結束位置了。
當需要發送的資料量小于46個位元組時,mac子層會在資料字段的後面加入一個整數位元組的填充字段,保證 以太網幀長度不小于64位元組。但是又一個問題出現了,我們把接受到的資訊剝去首部和尾部的資訊後交個ip層,那麼ip層怎麼識别的填充字段呢?哈哈,原來,ip層首部有一個總長度字段,比如我們ip層的總長度字段值為42,那麼mac子層把46位元組的資料交個上層的時候,ip就知道了後4個位元組時填充的位元組,丢棄即可。
最前面的8個位元組時用來同步時鐘用的,不是很重要,了解即可。
交換機:
(1) 當交換機從某個端口收到一個資料包,它先讀取標頭中的源MAC位址,這樣它就知道源MAC位址的機器是連在哪個端口上的;不斷學習的一個過程。
(2) 再去讀取標頭中的目的MAC位址,并在位址表中查找相應的端口;
(3) 如表中有與這目的MAC位址對應的端口,把資料包直接複制到這端口上;
(4) 如表中找不到相應的端口則把資料包廣播到所有端口上,當目的機器對源機器回應時,交換機又可以學習一目的MAC位址與哪個端口對應,在下次傳送資料時就不再需要對所有端口進行廣播了。
不斷的循環這個過程,對于全網的MAC位址資訊都可以學習到,二層交換機就是這樣建立和維護它自己的位址表。
(1) 由于交換機對多數端口的資料進行同時交換,這就要求具有很寬的交換總線帶寬,如果二層交換機有N個端口,每個端口的帶寬是M,交換機總線帶寬超過N×M,那麼這交換機就可以實作線速交換;
(2) 學習端口連接配接的機器的MAC位址,寫入位址表,位址表的大小(一般兩種表示方式:一為BUFFER RAM,一為MAC表項數值),位址表大小影響交換機的接入容量;
(3) 還有一個就是二層交換機一般都含有專門用于處理資料包轉發的ASIC (Application specific Integrated Circuit)晶片,是以轉發速度可以做到非常快。由于各個廠家采用ASIC不同,直接影響産品性能。
以上三點也是評判二三層交換機性能優劣的主要技術參數,這一點請大家在考慮裝置選型時注意比較
廣播風暴的原理: