计算机网络原理第二章笔记,计算机网络原理笔记 第三章 数据链路层(一)
數據鏈路層(一)
3.1 使用點對點信道的數據鏈路層
3.1.1 數據鏈路層和幀
數據發送模型
數據鏈路層的信道類型
數據鏈路層使用的信道主要有以下兩種類型:點對點信道。這種信道使用一對一的點對點通信方式。
廣播信道。這種信道使用一對多的廣播通信方式,因此過程比較復雜。廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送。
鏈路與數據鏈路**鏈路(link)**是一條無源的點到點的物理線路段,中間沒有任何其他的交換結點。一條鏈路只是一條通路的一個組成部分。數據鏈路(data link) 除了物理線路外,還必須有通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。現在最常用的方法是使用適配器(即網卡)來實現這些協議的硬件和軟件。
一般的適配器都包括了數據鏈路層和物理層這兩層的功能。
幀數據鏈路層傳送的是幀
3.1.2 三個基本問題
1.封裝成幀封裝成幀(framing) 就是在一段數據的前后分別添加首部和尾部,然后就構成了一個幀。確定幀的界限。
首部和尾部的一個重要作用就是進行幀定界。
用控制字符進行幀定界的方法舉例試想:幀還未發送完,發送端出了問題,只能重發該幀。接收端卻收到了前面的“半截子幀”,它會拋棄嗎?為什么?
2.透明傳輸若傳輸的數據是ASCII碼中“可打印字符(共95個)“集時,一切正常。
若傳輸的數據不是僅由”可打印字符”組成時,就會出問題,如下
用字節填充法解決透明傳輸問題發送端的數據鏈路層在數據中出現控制字符“SOH”或“EOT”的前面插入一個轉義字符“ESC”(其十六進制編碼是 1B)。
字節填充(byte stuffing)或字符填充(character stuffing)——接收端的數據鏈路層在將數據送往網絡層之前刪除插入的轉義字符。
如果轉義字符也出現數據當中,那么應在轉義字符前面插入一個轉義字符。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。
當傳送的幀是用文本文件組成的幀時(文本文件中的字都是從鍵盤上輸入的),其數據部分顯然不會出現像SOH或EOT這樣的幀定界控制字符。可見不管從鍵盤上輸入什么字符都可以放在這樣的幀中傳輸過去,因此這樣的傳輸就是透明傳輸。
3.差錯控制在傳輸過程中可能會產生比特差錯:1 可能會變成 0 而 0 也可能變成 1。
在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率 BER (Bit Error Rate)。
誤碼率與信噪比有很大的關系。
為了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須采用各種差錯檢測措施。
循環冗余檢驗的原理在數據鏈路層傳送的幀中,廣泛使用了循環冗余檢驗 CRC 的檢錯技術。
在發送端,先把數據劃分為組。假定每組 k 個比特。
假設待傳送的一組數據 M = 101001(現在 k = 6)。我們在 M 的后面再添加供差錯檢測用的 n 位冗余碼一起發送。
冗余碼的計算用二進制的模 2 運算進行 2n 乘 M 的運算,這相當于在 M 后面添加 n 個 0。
得到的 (k + n) 位的數除以事先選定好的長度為 (n + 1) 位的除數 P,得出商是 Q 而余數是 R,余數 R 比除數 P 少1 位,即 R 是 n 位。
冗余碼的計算舉例現在 k = 6, M = 101001。
設 n = 3, 除數 P = 1101,
被除數是 2n**M = 101001000。
模 2 運算的結果是:商 Q = 110101,
余數 R = 001。
把余數 R 作為冗余碼添加在數據 M 的后面發送出去。發送的數據是:2n**M + R
即:101001001,共 (k + n) 位。
循環冗余檢驗的原理說明
幀檢驗序列 FCS
在數據后面添加上的冗余碼稱為幀檢驗序列 FCS (Frame Check Sequence)。
循環冗余檢驗 CRC 和幀檢驗序列 FCS并不等同。CRC 是一種常用的檢錯方法,而 FCS 是添加在數據后面的冗余碼。
FCS 可以用 CRC 這種方法得出,但 CRC 并非用來獲得 FCS 的唯一方法。
接收端對收到的每一幀進行 CRC 檢驗(1) 若得出的余數 R = 0,則判定這個幀沒有差錯,就接受(accept)。
(2) 若余數 R ≠ 0,則判定這個幀有差錯,就丟棄。
但這種檢測方法并不能確定究竟是哪一個或哪幾個比特出現了差錯。
只要經過嚴格的挑選,并使用位數足夠多的除數 P,那么出現檢測不到的差錯的概率就很小很小。
補零位數比除數位數少一異或運算
1+1=0 1+0=0 0+1=0 0+0=0
除數由兩臺計算機數據鏈路層協議決定
小結:CRC差錯檢測技術
僅用循環冗余檢驗 CRC 差錯檢測技術只能做到無差錯接受(accept)。“無差錯接受”是指:“凡是接受的幀(即不包括丟棄的幀),我們都能以非常接近于 1 的概率認為這些幀在傳輸過程中沒有產生差錯”。也就是說:“凡是接收端數據鏈路層接受的幀都沒有傳輸差錯”(有差錯的幀就丟棄而不接受)。
要做到“可靠傳輸”(即發送什么就收到什么)就必須再加上確認和重傳機制。考慮:幀重復、幀丟失、幀亂序的情況
可以說“CRC是一種無比特差錯,而不是無傳輸差錯的檢測機制”
OSI/RM模型的觀點:數據鏈路層要做成無傳輸差錯的!但這種理念目前不被接受。
數據鏈路層的信道類型
·數據鏈路層使用的信道主要有以下兩種類型:點對點信道。 這種信道使用一對一的點對點通信方式。
廣播信道。 這種信道使用一對多的廣播通信方式,因此過程比較復雜。廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發。
·
3.2 點對點協議 PPP現在全世界使用得最多的數據鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)。
用戶使用撥號電話線接入因特網時,一般都是使用 PPP 協議。
用戶到 ISP 的鏈路使用 PPP 協議
3.2.1 PPP協議的特點
PPP 協議應滿足的需求簡單——這是首要的要求
封裝成幀
透明性
多種網絡層協議
多種類型鏈路
差錯檢測
檢測連接狀態
最大傳送單元
網絡層地址協商
數據壓縮協商
·
PPP 協議不需要的功能糾錯
流量控制
序號
多點線路
半雙工或單工鏈路
PPP 協議的組成1992 年制訂了 PPP 協議。經過 1993 年和 1994 年的修訂,現在的 PPP 協議已成為因特網的正式標準[RFC 1661]。PPP 協議有三個組成部分
一個將 IP 數據報封裝到串行鏈路的方法。
鏈路控制協議 LCP (Link Control Protocol)。
網絡控制協議 NCP (Network Control Protocol)。
3.2.2 PPP協議的幀格式標志字段 F = 0x7E (符號“0x”表示后面的字符是用十六進制表示。十六進制的 7E 的二進- - 制表示是 01111110)。
地址字段 A 只置為 0xFF。地址字段實際上并不起作用。
控制字段 C 通常置為 0x03。
PPP 是面向字節的,所有的 PPP 幀的長度都是整數字節。
透明傳輸問題當 PPP 用在同步傳輸鏈路時,協議規定采用硬件來完成比特填充(和 HDLC 的做法一樣)。
當 PPP 用在異步傳輸時,就使用一種特殊的 字符填充法 。
字符填充將信息字段中出現的每一個 0x7E 字節轉變成為 2 字節序列(0x7D, 0x5E)。
若信息字段中出現一個 0x7D 的字節, 則將其轉變成為 2 字節序列(0x7D, 0x5D)。
若信息字段中出現 ASCII 碼的控制字符(即數值小于 0x20 的字符),則在該字符前面要加入一個 0x7D 字節,同時將該字符的編碼加以改變。
.
零比特填充PPP 協議用在 SONET/SDH 鏈路時,是使用同步傳輸(一連串的比特連續傳送)。這時 PPP 協議采用零比特填充方法來實現透明傳輸。
在發送端,只要發現有 5 個連續 1,則立即填入一個 0。接收端對幀中的比特流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 后的一個 0 刪除。
不提供使用序號和確認 的可靠傳輸PPP 協議之所以不使用序號和確認機制是出于以下的考慮:在數據鏈路層出現差錯的概率不大時,使用比較簡單的 PPP 協議較為合理。
在因特網環境下,PPP 的信息字段放入的數據是 IP 數據報。數據鏈路層的可靠傳輸并不能夠保證網絡層的傳輸也是可靠的。
幀檢驗序列 FCS 字段可保證無差錯接受。
3.2.3 PPP協議的工作狀態當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,并建立一條物理連接。
PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。
這些分組及其響應選擇一些 PPP 參數,和進行網絡層配置,NCP 給新接入的 PC機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。
通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接著,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。
3.3 使用廣播信道的數據鏈路層(局域網)
3.3.1 局域網的數據鏈路層
局域網最主要的特點是:網絡為一個單位所擁有,且地理范圍和站點數目均有限。
局域網具有如下的一些主要優點:具有廣播功能,從一個站點可很方便地訪問全網。局域網上的主機可共享連接在局域網上的各種硬件和軟件資源。
便于系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
提高了系統的可靠性、可用性和殘存性。
媒體共享技術
靜態劃分信道頻分復用
時分復用
波分復用
碼分復用
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的计算机网络原理第二章笔记,计算机网络原理笔记 第三章 数据链路层(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Underscore.js (1.7.0
- 下一篇: 《无线网络:理解和应对互联网环境下网络互