計算機網絡 -- 數據鏈路層

數據鏈路層的功能:

(1) 鏈路管理:鏈路的簡歷、維持和釋放
(2) 幀定界
(3) 流量控制
(4) 差錯控制
(5) 將數據和控制信息區分開來
(6) 透明傳輸
(7) 尋址:每一幀都能找到目的站

數據鏈路層的通信信道:

  1. 點對點信道:一對一進行通信
  2. 廣播通信:一對多的通信方式

重要的三個概念:

  1. 物理鏈路:兩個結點的一段物理線路,中間沒有任何的交換結點。鏈路是 一條路徑的組成部分。
  2. 邏輯鏈路:物理鏈路 + 必要的通信協議的實現硬件和軟件
  3. 幀:點對點信道的數據鏈路層的協議數據單位。

通信的步驟:

這三個步驟,也體現了數據鏈路層的基本問題。
1、封裝成幀:將網絡層交付的IP數據報添加首部和尾部。(封裝成幀)
2、發送:將封裝好的幀進行發送(透明傳輸)
3、接收分析:檢驗接收到的幀是否有差錯,若無,提取IP數據報,提交上層網絡層,如果有錯,丟棄幀。(差錯檢測)

封裝成幀:

將上層的數據按照幀協議的最大傳輸單元(mtu) + 幀頭(有控制字符soh,十六進制編碼爲01)和幀尾(有控制字符eof,十六進制編碼爲04)(這兩者還有一個幀定界的作用)

透明傳輸:

在文本文件傳輸的情況下,任何8比特的組合不會出現幀定界符的編碼一樣的情況;不管鍵盤輸入什麼字都可以放在幀中傳輸。問題,在非ASCII文件中萬一在數據段出現了幀的控制字符,傳輸過程中接受數據被提前結束怎麼辦?
解決方法:字符填充(字節填充),發送端的數據鏈路層在數據中出現的控制字符前插入一個轉義字符esc(十六進制爲1b)。在接收端的數據鏈路層在發往網絡層的時候刪除這個插入的轉義字符。

差錯檢查:

比特差錯:0變1,1變0
誤碼率:在一段時間內,傳輸錯誤的比特佔所傳輸比特總數的比率稱爲誤碼率(ber)。
循環冗餘檢查(crc):在數據鏈路層使用的檢錯技術。

現假設選擇的CRC生成多項式爲G(X) = X4 + X3 + 1,要求出二進制序列10110011的CRC校驗碼。下面是具體的計算過程:
(1)首先把生成多項式轉換成二進制數,由G(X) = X4 + X3 + 1可以知道(,它一共是5位(總位數等於最高位的冪次加1,即4+1=5),然後根據多項式各項的含義(多項式只列出二進制值爲1的位,也就是這個二進制的第4位、第3位、第0位的二進制均爲1,其它位均爲0)很快就可得到它的二進制比特串爲11001。
(2)因爲生成多項式的位數爲5,根據前面的介紹,得知CRC校驗碼的位數爲4(校驗碼的位數比生成多項式的位數少1)。因爲原數據幀10110011,在它後面再加4個0,得到101100110000,然後把這個數以“模2除法”方式除以生成多項式,得到的餘數(即CRC碼)爲0100,如圖5-10所示。注意參考前面介紹的“模2除法”運算法則。

(3)把上步計算得到的CRC校驗0100替換原始幀101100110000後面的四個“0”,得到新幀101100110100。再把這個新幀發送到接收端。
(4)當以上新幀到達接收端後,接收端會把這個新幀再用上面選定的除數11001以“模2除法”方式去除,驗證餘數是否爲0,如果爲0,則證明該幀數據在傳輸過程中沒有出現差錯,否則出現了差錯。

ppp協議

PPP(點到點協議)是爲在同等單元之間傳輸數據包這樣的簡單鏈路設計的鏈路層協議。這種鏈路提供全雙工操作,並按照順序傳遞數據包。設計目的主要是用來通過撥號或專線方式建立點對點連接發送數據,使其成爲各種主機、網橋和路由器之間簡單連接的一種共通的解決方案。

功能:

鏈路控制
  PPP爲用戶發起呼叫以建立鏈路;在建立鏈路時協商參數選擇;通信過程中隨時測試線路,當線路空閒時釋放鏈路等。PPP中完成上述工作的組件是鏈路控制協議。

LCP(Link Control Protocol,LCP)。
網絡控制
  當LCP將鏈路建立好了以後,PPP要開始根據不同用戶的需要,配置上層協議所需的環境。PPP使用網絡控制協議NCP(Network Control Protocol,NCP)來爲上層提供服務接口。針對上層不同的協議類型,會使用不同的NCP組件。如對於IP提供IPCP接口,對於IPX提供IPXCP接口,對於APPLETALK提供ATCP接口等。

組成部分:

1、將IP數據報封裝到串行鏈路的方法,即支持異步鏈路,也支持面向比特的同步鏈路。
2、一個用來簡歷、配置 和測試數據鏈路連接的鏈路控制協議LCP。
3、一套網絡控制協議NCP。

幀格式:

PPP幀的首部爲四個字段,尾部爲兩個字段;

首部的第一個字段和尾部的第二個字段都是十六進制的0x7E,標誌字段表示一個幀的開始或者結束,標誌字段也是PPP幀的定界符,連兩個幀之間只要一個定界符,如果連續出現兩個定界符,則表示是空串。

PPP首部的第四個字段是2個字節的協議字段。當協議字段爲0x0021時,PPP幀的信息字段就是IP數據報;若爲0Xc021,則信息字段是PPP鏈路控制協議LCP的數據;而0x8021表示這是網絡層的控制數據。

數據完整:

字節填充:

當信息字段出現和標誌字段一樣的比特,將採用字節填充的方式避免出現歧義。
1、信息字段出現的每個0x7E轉換===>爲0x7D和0x5E,
2、信息字段出現的0x7D轉換====>爲0x7D和0x5D
3、小於0x20的控制字符,添加0x7D。

零比特填充法:

每出現5個連續的1,立即填入一個0。

PPP回話的四個階段

既然要對PPP協議詳解,那麼肯定需要對PPP協議的四個階段進行了解了。一次完整的PPP回話過程包括四個階段: 鏈路建立階段、確定鏈路質量階段、網絡層控制協議階段和鏈路終止階段(如圖2所示)。

PPP回話過程包括四個階段

(1) 鏈路建立階段:PPP通信雙方用鏈路控制協議交換配置信息,一旦配置信息交換成功,鏈路即宣告建立。配置信息通常都使用默認值,只有不依賴於網絡控制協議的配置選項纔在此時由鏈路控制協議配置。值得注意的是,在鏈路建立的過程中,任何非鏈路控制協議的包都會被沒有任何通告地丟棄。

(2) 鏈路質量確定階段:這個階段在某些文獻中也稱爲鏈路認證階段。鏈路控制協議負責測試鏈路的質量是否能承載網絡層的協議。在這個階段中,鏈路質量測試是PPP協議提供的一個可選項,也可不執行。同時,如果用戶選擇了驗證協議,驗證的過程將在這個階段完成。PPP支持兩種驗證協議:密碼驗證協議(PAP)和握手鑑權協議(CHAP)。

(3) 網絡層控制協議階段:PPP會話雙方完成上述兩個階段的操作後,開始使用相應的網絡層控制協議配置網絡層的協議,如:IP、IPX等。

(4) 鏈路終止階段:鏈路控制協議用交換鏈路終止包的方法終止鏈路。引起鏈路終止的原因很多:載波丟失、認證失敗、鏈路質量失敗、空閒週期定時器期滿或管理員關閉鏈路等。

局域網的拓撲:

分類:星形網,環形網,總線網,樹形網

共享信道的劃分:

1、靜態劃分信道:頻分,時分,波分,碼分等,一旦分配到信道就不會與其他用戶衝突。
2、動態媒體接入控制:
隨機接入:所有用戶隨機發送信息,會出現碰撞的現象。
受控接入:用戶服從控制,輪詢地發送信息。

適配器的作用:

進行串行\並行的轉換;對數據進行緩衝;在計算機操作系統安裝驅動設備;實現以太網協議

CSMA/CD:

載波監聽多點接入/碰撞檢測。一個站不能同時進行發送和接收,因此,不能進行全雙工通信而進行雙向交替通信(半雙工通信)

MAC地址:

實際是適配器地址或適配器標識符EUI-48,有兩個字節的也有6個字節的,目前使用的是6個字節的。全球由IEEE的註冊管理機構RA(局域網全球地址法定管理機構)負責分配地址字段的6個字節中的前三個字節(也叫地址塊,也叫組織唯一標識符OUI,通常也叫公司標示符);一般後面的三個字節由廠家來進行分配,也叫做擴展標示符;一個地址塊可以有2的24次方個不同的地址,這種地址也叫做MAC-48(通用簡寫EUI-48,英文爲擴展的唯一標識)

例題:

eg1:
一個PPP幀的數據部分(用十六進制寫出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。試問真正的數據是什麼??
解:
根據:字節填充的法則,可以得到:
具體的做法是將信息字段中出現的每一個0x7E字節轉變成2字節序列(0x7D,0x5E)。若信息字段中出現一個0x7D的字節,則將其轉變成2字節序列(0x7D,0x5D)。若信息字段中出現ASCII碼的控制字符,則在該字符前面要加入一個0x7D字節。這樣做的目的是防止這些表面上的ASCII碼控制字符被錯誤地解釋爲控制字符。

真正的16進制數據是7E FE 27 7D 7D 65 7E

eg2:
假定1KM長的CSMA/CD協議網絡的數據率爲1Gb/s。設信號在網絡上的傳播速率爲200000KM/S。求能夠使用此協議的最短幀長??
解:
對於 1km 電纜,單程傳播時間爲1÷200000=5×,即5us,來回路程傳播時間爲10us。爲了能夠按照CSMA/CD工作,最小幀的發射時間不能小於10us。以1Gb/s速率工作,10us可以發送的比特數等於:

10x10的-6次方/1x10的-9次方 = 10000,因此,最短幀是10000 位或 1250 字節長。


all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章