第三章.數據鏈路層
數據鏈路層使用的信道主要有點對點信道和廣播信道.
主要解決的問題有 封裝成幀 ,透明傳輸和差錯檢測.
封裝成幀
封裝成幀就是在網絡層交下來的IP數據報的前后加上首部和尾部,從而確定幀的有效性。一般來說,IP數據報盡可能大,傳輸效率越高,但是每種鏈路層協議都規定了數據部分長度上限(最大傳送單元MTU).
透明傳輸
由于首部開始符SOH和傳輸 結束符EOT可能會和數據部分的數據沖突,導致幀被錯誤認為丟棄,所以在數據部分出現控制字符都插入一個轉義字符.這種方法稱為字節填充或字符填充.
差錯檢測
現實通信鏈路都不會是理想的,傳輸過程中0可能會0變成1,1變成0,這叫
比特差錯。在一段時間內傳輸錯誤的bit占所傳輸bit總數的比率稱為
誤碼率BER。所以必須采用各種差錯檢測措施。目前在數據鏈路層廣泛
使用循環冗余檢驗CRC(Cyclic Redunancy Check)
一個典型的CRC檢驗:
要發送的數據為M = 101001(長度k = 6),雙方協定的除數P,n位冗余碼 = M * 2^n(實際上
就是M后面加上n個0)/P,得到商Q和余數R(n位,比P少一位),這個余數就是冗余碼。
注意的是這里的差錯檢測只是幀內的比特檢錯,對于 幀丟失,幀重復,
幀失序 這三種“出現傳輸差錯”,應由網絡層的可靠傳輸協議來修復。因此,在數據鏈路層使用CRC檢驗,能夠實現無比特差錯的傳輸,但并不是可靠傳輸。
使用廣播信道的數據鏈路層
利用 集線器 和雙絞線等形成的網絡,可以進行一對多的通信,例如局域網。
適配器的作用
計算機與外界局域網的連接是通過通信 適配器(現在基本內嵌入主機,或者叫網卡) 。適配器上裝有處理器和存儲器,適配器和局域網通信是通過電纜或雙絞線以串行傳輸方式進行,適配器和計算機通信是通過主板上的I/O總線以并行傳輸方式進行。因此適配器一個重要功能就是利用數據緩存的存儲芯片,進行數據串行傳輸和并行傳輸的轉換。
適配器接收和發送各種幀時不使用計算機的CPU,收到有差錯的幀時就直接丟棄幀不必通知計算機,只有正確幀,就會使用中斷來通知計算機并交付協議棧中的網絡層。值得注意的是,計算機的硬件地址就在適配器的ROM中,而軟件地址,即IP地址,則在計算機的存儲器中。
CSMA/CD協議
早期的以太網是將許多計算機都連在一根總線上,因此在同一時間只能允許一臺計算機發送數據(雙向交替通信)。CSMA/CD協議就是通信兩端通過碰撞檢測(邊發送邊監聽)來避免沖突。
擴展以太網
- 在物理層擴展以太網: 利用集線器連接計算機,使用光纖和光纖調制解調器擴展主機和集線器之間距離。
- 在數據鏈路層擴展以太網: 使用網橋,根據MAC幀的目的地址對收到的幀進行轉發和過濾
交換機(交換式集線器,實際上是一種多接口的網橋)也是工作數據鏈路層。