4.1 概述
為什么要設(shè)計(jì)數(shù)據(jù)鏈路層
- 在原始的物理傳輸線路上傳輸數(shù)據(jù)信號(hào)是有差錯(cuò)的,存在一定的誤碼率。
- 在設(shè)計(jì)數(shù)據(jù)鏈路層的目的就是如何在有差錯(cuò)的線路上,進(jìn)行無(wú)差錯(cuò)傳輸。向網(wǎng)絡(luò)層提供高質(zhì)量的服務(wù)。
- 從網(wǎng)絡(luò)參考來(lái)看,物理層之上各層都有改善數(shù)據(jù)傳輸質(zhì)量的要求,數(shù)據(jù)鏈路層是重要的一層。
定義和功能
- 要解決的問(wèn)題:如何在有差錯(cuò)的線路上,進(jìn)行無(wú)差錯(cuò)傳輸。
- ISO關(guān)于數(shù)據(jù)鏈路層的定義:數(shù)據(jù)鏈路層視為了提供功能上和規(guī)程上的方法,以便建立、維護(hù)和釋放網(wǎng)絡(luò)實(shí)體間的數(shù)據(jù)鏈路。
- 數(shù)據(jù)鏈路:從數(shù)據(jù)發(fā)送點(diǎn)到數(shù)據(jù)接收點(diǎn)(點(diǎn)到點(diǎn))所經(jīng)過(guò)的傳輸途徑。
- 虛擬數(shù)據(jù)鏈路:
- 實(shí)際數(shù)據(jù)通路
- 分組和幀的關(guān)系
- 虛擬數(shù)據(jù)鏈路:
- 功能
-
數(shù)據(jù)鏈路控制規(guī)程
- 為使數(shù)據(jù)能迅速、正確、有效地從發(fā)送點(diǎn)到接收點(diǎn)所采用的控制方式
- 數(shù)據(jù)鏈路層協(xié)議應(yīng)提供的最基本功能
- 數(shù)據(jù)在數(shù)據(jù)鏈路層上的正常傳輸(建立、維護(hù)和釋放)
- 幀定界(幀同步)
- 差錯(cuò)控制
- 流量控制
- 區(qū)分?jǐn)?shù)據(jù)和控制信息
- 透明傳輸
- 尋址
-
數(shù)據(jù)鏈路控制規(guī)程
- 數(shù)據(jù)鏈路層協(xié)議的位置
- 數(shù)據(jù)鏈路連接
- 數(shù)據(jù)鏈路層為網(wǎng)絡(luò)層提供三種基本服務(wù)
-
無(wú)確認(rèn)無(wú)連接服務(wù)
- 由上層完成差錯(cuò)控制,適合于誤碼率低,實(shí)時(shí)性要求高的場(chǎng)所,如大部分有線局域網(wǎng)。
-
有確認(rèn)無(wú)連接服務(wù)
- 進(jìn)行簡(jiǎn)單的差錯(cuò)控制。適合于不可靠的信道,如無(wú)線網(wǎng)。
-
面向連接確認(rèn)服務(wù)
- 在發(fā)送前需要建立連接,保證了幀的正確按序傳輸,適合于可靠性要求較高的場(chǎng)合,適合于大多數(shù)廣域網(wǎng)。
-
無(wú)確認(rèn)無(wú)連接服務(wù)
- 數(shù)據(jù)鏈路層為網(wǎng)絡(luò)層提供三種基本服務(wù)
- 應(yīng)答方式:
-
正向應(yīng)答:只對(duì)正確的信息應(yīng)答
- 工作方式:
- 工作方式:
- 負(fù)向應(yīng)答:只對(duì)錯(cuò)誤的信息應(yīng)答
-
雙向應(yīng)答:既對(duì)正確的信息應(yīng)答,也對(duì)錯(cuò)誤的信息應(yīng)答
-
正向應(yīng)答:只對(duì)正確的信息應(yīng)答
4.2 幀邊界劃分方法
-
成幀
- 將比特流分成離散的幀,并計(jì)算每個(gè)幀的校驗(yàn)和。
- 成幀方法:
-
字符計(jì)數(shù)法
- 在幀頭用一個(gè)域來(lái)表示整個(gè)幀的字符個(gè)數(shù)
- 缺點(diǎn):若計(jì)算出錯(cuò),對(duì)本幀及后面幀有影響,因此很少采用。
-
帶字符填充的首尾字符定界法
- 用DLE**·**STX表示幀的開始
- 用DLE**·**ETX表示幀的結(jié)束
- 用DLE**·**DLE表示傳送信息中的DLE
- 缺點(diǎn):局限于8位字符和ASCII字符傳送,也不被普遍采用
-
帶位填充的首位標(biāo)記定界法
- 幀的起始和結(jié)束都用一個(gè)特殊的位串“01111110”,稱為標(biāo)記。
- 0比特插入刪除技術(shù),在傳送數(shù)據(jù)信息中每遇到5個(gè)連續(xù)的1后加0
-
物理層編碼違例法
- 只適用于物理層編碼有冗余的網(wǎng)絡(luò),如曼徹斯特編碼。
- 在很多數(shù)據(jù)鏈路協(xié)議中,使用字符計(jì)數(shù)法和一種其他方法的組合。
-
字符計(jì)數(shù)法
4.3 差錯(cuò)控制
4.3.1 差錯(cuò)原因及特點(diǎn)
- 差錯(cuò)出現(xiàn)的特點(diǎn):隨機(jī)、連續(xù)突發(fā)
- 差錯(cuò)產(chǎn)生的原因
- 信道的電氣特性引起的信號(hào)幅度、頻率、相位的畸變
- 信號(hào)反射
- 串?dāng)_
- 閃電、大功率電機(jī)的啟停等
- 出錯(cuò)情況
- 幀(包括發(fā)送幀和響應(yīng)幀)出錯(cuò)
- 幀(包括發(fā)送幀和響應(yīng)幀)丟失
4.3.2 差錯(cuò)控制方法
-
差錯(cuò)控制的方法
- 差錯(cuò)控制的目的
- 保證幀正確、按序送交上層。在接收方能夠判斷接收的數(shù)據(jù)是否正確,若錯(cuò)誤還可能要恢復(fù)錯(cuò)誤。
- 差錯(cuò)控制的方法
- 自動(dòng)糾錯(cuò)機(jī)制=向前糾錯(cuò)FEC
- 檢錯(cuò)反饋重發(fā)機(jī)制ARQ(常用)
- 混合方式(糾錯(cuò)檢錯(cuò)混合)
- 碼字
- 一個(gè)幀包括m個(gè)數(shù)據(jù)位,r個(gè)校驗(yàn)位,稱為n位碼字(n = m+r )
-
糾錯(cuò)碼
- 加入了足夠多的冗余位,使接收方不僅知道有差錯(cuò)發(fā)生,并知道哪些位發(fā)生差錯(cuò)。
-
檢錯(cuò)碼
- 加入了冗余位,使接收方知道差錯(cuò)發(fā)生,但不知道什么差錯(cuò),然后請(qǐng)求重發(fā)。
- 加入了冗余位,使接收方知道差錯(cuò)發(fā)生,但不知道什么差錯(cuò),然后請(qǐng)求重發(fā)。
- 差錯(cuò)控制的目的
4.3.3 海明碼
- 海明定理
- 海明距離
- 兩個(gè)編碼的海明距離:兩個(gè)編碼不相同位的個(gè)數(shù)。
- 編碼方案的海明距離:編碼方案中任兩個(gè)編碼海明距離的最小值。
- 海明定理
- 為檢測(cè)d位錯(cuò),編碼方案的海明距離至少為d+1
- 當(dāng)發(fā)生d位錯(cuò)時(shí),不會(huì)由一種合法編碼變成另一種合法編碼
- 為糾正d位錯(cuò),編碼方案的海明距離應(yīng)至少為2d+1
- 當(dāng)發(fā)生d位錯(cuò)時(shí),出錯(cuò)編碼仍然最接近于原始的正確編碼。
- 海明距離
4.3.4 垂直水平奇偶校驗(yàn)碼
-
奇偶校驗(yàn)碼
- 在數(shù)據(jù)后添加一個(gè)奇偶位
- 若接收方接收到的字節(jié)奇偶結(jié)果不正確,就可以知道傳輸中發(fā)生了錯(cuò)誤。
- 增加奇偶校驗(yàn)位后海明距離由1變成2,因此可以檢查出一位二進(jìn)制位的差錯(cuò)。
4.3.5 循環(huán)冗余檢驗(yàn)碼
-
循環(huán)冗余碼(CRC)
- 生成多項(xiàng)式
- 發(fā)方、收方事前約定
- 生成多項(xiàng)式的高位和低位必須為1
- 生成多項(xiàng)式必須比傳輸信息對(duì)應(yīng)的多項(xiàng)式短
-
CRC校驗(yàn)基本思想
- CRC碼(即校驗(yàn)和)加在幀尾,使帶CRC碼的幀的多項(xiàng)式能被G(x)除盡,若有余數(shù),則傳輸出錯(cuò)
- 注:R階為r+1位
-
4.3.6 校驗(yàn)和
- 檢驗(yàn)字段初始置0
- 數(shù)據(jù)拆分成檢驗(yàn)字段等長(zhǎng)的分片,不足部分補(bǔ)0
- 將所有分片按位取反,并連續(xù)累加,丟棄最高進(jìn)位
- 計(jì)算結(jié)果置入檢驗(yàn)字段
- 接收段執(zhí)行相同進(jìn)程,并將結(jié)果和傳輸過(guò)來(lái)的檢驗(yàn)和進(jìn)行比較,以決定數(shù)據(jù)是否出現(xiàn)差錯(cuò)。
- 適用于高層協(xié)議,如IP、TCP、UDP等。
- 舉例:
-
4.4 停等協(xié)議
4.4.1 簡(jiǎn)單停等協(xié)議
- 單工傳輸
- 發(fā)送方無(wú)休止工作(要發(fā)送的信息無(wú)限多)
- 接收方無(wú)休止工作(緩沖區(qū)無(wú)限大)
- 發(fā)送數(shù)據(jù)的速率低于接收數(shù)據(jù)的速率
- 通信線路(信道)不損壞或丟失信息幀(無(wú)錯(cuò))
- 工作過(guò)程
- 發(fā)送數(shù)據(jù) 取數(shù)據(jù)、構(gòu)成幀、發(fā)送幀
-
接收數(shù)據(jù) 等待、接收幀、送數(shù)據(jù)給高層
4.4.2 帶流量控制的停等協(xié)議
- 單工停等協(xié)議(無(wú)錯(cuò)情況)
- 增加約束條件:接收方不能無(wú)休止接收
- 例如:緩沖區(qū)數(shù)量有限,接收速率比發(fā)送速率低等。
- 解決辦法:
- 接收方每收到一個(gè)幀,給發(fā)送方回送應(yīng)答。發(fā)送方收到應(yīng)答前不發(fā)送后續(xù)幀。
- 工作過(guò)程
- 發(fā)送數(shù)據(jù) 取數(shù)據(jù),成幀,等待應(yīng)答幀
-
接收數(shù)據(jù) 接收幀,數(shù)據(jù)送高層,發(fā)送應(yīng)答幀
- 增加約束條件:接收方不能無(wú)休止接收
4.4.3 帶差錯(cuò)控制的停等協(xié)議
- 增加約束條件:信道有差錯(cuò),信息幀可能損壞或丟失
- 解決辦法:
- 常使用正向應(yīng)答+重發(fā)機(jī)制來(lái)解決差錯(cuò)控制。
- 數(shù)據(jù)序號(hào)采用循環(huán)序號(hào)機(jī)制。
- 應(yīng)答幀的兩種方式:
- 單幀應(yīng)答:應(yīng)答序號(hào)為某一個(gè)正確幀的序號(hào)
- 成批應(yīng)答:應(yīng)答序號(hào)為下一個(gè)期望接收的序號(hào)
- 通常采用附載應(yīng)答方式:將數(shù)據(jù)幀攜帶應(yīng)答信息的通信方式稱為附載應(yīng)答??梢园褢?yīng)答幀的序號(hào)加在信息幀中一并發(fā)送,以提高效率。
-
4.4.4 停等協(xié)議效率分析
4.5 連續(xù)ARQ協(xié)議
4.5.1 連續(xù)ARQ協(xié)議的工作原理
- 工作原理
- 連續(xù)停等協(xié)議是指不需要收到應(yīng)答幀就可以連續(xù)不斷的發(fā)送下面的幀
- 出錯(cuò)后處理
-
全部重發(fā)流水線協(xié)議
- 當(dāng)一個(gè)幀出錯(cuò),需要重發(fā)出錯(cuò)幀后所有幀
- 接收方的緩沖區(qū)數(shù)量只需要一個(gè)
-
選擇重發(fā)流水線協(xié)議
- 當(dāng)一個(gè)幀出錯(cuò),只重發(fā)出錯(cuò)幀
- 接收方的緩沖區(qū)數(shù)量足夠多
-
-
全部重發(fā)流水線協(xié)議
4.5.2 連續(xù)ARQ協(xié)議的定量分析
4.5.3 滑動(dòng)窗口
- 滑動(dòng)窗口協(xié)議是對(duì)連續(xù)停等協(xié)議的改進(jìn),它能夠控制已發(fā)送但未確認(rèn)的數(shù)據(jù)幀的個(gè)數(shù)(滑動(dòng)窗口的大小)
-
發(fā)送窗口
- 窗口尺寸:允許連續(xù)發(fā)送未應(yīng)答幀的個(gè)數(shù)
- 數(shù)據(jù)允許發(fā)送條件:上界-下界<窗口尺寸
- 窗口滑動(dòng)的條件:
- 窗口上界滑動(dòng):發(fā)送數(shù)據(jù)幀
- 窗口下界滑動(dòng):收到應(yīng)答幀
-
接收窗口
- 窗口尺寸:允許連續(xù)接收未處理幀個(gè)數(shù)
- 數(shù)據(jù)允許接收的條件:數(shù)據(jù)序號(hào)落在接收窗口中
- 滑動(dòng)窗口發(fā)送的條件
- 發(fā)送應(yīng)答幀后上下界同時(shí)移動(dòng)
-
4.6 選擇重傳協(xié)議
- 窗口大小與序號(hào)關(guān)系
- n為編號(hào)位數(shù),Wr為接收窗口個(gè)數(shù)
4.7 點(diǎn)對(duì)點(diǎn)數(shù)據(jù)鏈路接入控制
-
Internet中的數(shù)據(jù)鏈路層
- 點(diǎn)到點(diǎn)通信的主要情形
- 路由器到路由器
- 通過(guò)modem撥號(hào)上網(wǎng),連接路由器到服務(wù)器
-
- 點(diǎn)到點(diǎn)通信的主要情形
4.7.1 串行線路網(wǎng)際協(xié)議(SLIP)
- 1984年,Rick Adams提出,RFC1055,發(fā)送原始IP包,用一個(gè)標(biāo)記字節(jié)(0xC0)定界,采用字符填充技術(shù)
- 新版本提供TCP和IP頭壓縮技術(shù),RFC 1144
- 存在的問(wèn)題
- 不提供差錯(cuò)檢驗(yàn)
- 只支持IP
- IP地址不能動(dòng)態(tài)分配
- 不提供身份認(rèn)證
- 多種版本共存,互聯(lián)困難
4.7.2 點(diǎn)到點(diǎn)協(xié)議(PPP協(xié)議)
- RFC 1661,RFC 1662,RFC 1663
- 提供差錯(cuò)校驗(yàn)、支持多種協(xié)議、允許動(dòng)態(tài)分配IP地址、支持認(rèn)證等
- 以幀為單位發(fā)送,而不是原始IP包
- 包括
-
鏈路控制協(xié)議LCP
- 建立、配置和測(cè)試多種物理層服務(wù):modem,HDLC串線,SDH/SONET,以太網(wǎng)等
-
網(wǎng)絡(luò)控制協(xié)議NCP
- 建立、配置不同網(wǎng)絡(luò)層協(xié)議
-
鏈路控制協(xié)議LCP
-
PPP的幀格式
- 標(biāo)記域:01111110,字符填充;
- 地址域:11111111
- 控制域:缺省值為00000011,表示無(wú)序號(hào)幀,缺省情況下,PPP不提供使用序號(hào)和確認(rèn)的可靠傳輸;但是在不可靠線路上,也可使用有序號(hào)的可靠傳輸。
- 協(xié)議域:指示凈負(fù)荷中是何種包,比如IP,IPX等。缺省大小為2個(gè)字節(jié)。
- 凈負(fù)荷域:變長(zhǎng),缺省為1500字節(jié);
- 校驗(yàn)和域:2或4個(gè)字節(jié)
-
PPP工作過(guò)程
-
簡(jiǎn)答題
有人認(rèn)為:每一幀的結(jié)束處是一個(gè)標(biāo)志字節(jié),而下一個(gè)幀的開始處又是另外 一個(gè)標(biāo)志字節(jié),這種方法非常浪費(fèi)空間。用一個(gè)標(biāo)志字節(jié)就可以完成同樣的 任務(wù),這樣就可以節(jié)省一個(gè)字節(jié)。你同意這種觀點(diǎn)嗎?
- 不同意
- 如果一直處于正確地發(fā)送或接收數(shù)據(jù)幀,則一個(gè)標(biāo)志字節(jié)可以
- 如果一個(gè)數(shù)據(jù)幀結(jié)束后在長(zhǎng)時(shí)間沒(méi)有新的幀,則接收方無(wú)法得知上一個(gè)數(shù)據(jù)幀是否結(jié)束,且接收方無(wú)法知道下一個(gè)字節(jié)是新幀起始位還是路線上的噪聲。
奇偶檢驗(yàn)的一個(gè)改進(jìn)是按 n 行、每行 k 位來(lái)傳輸數(shù)據(jù),并且在每行和每列上加上奇偶位。其中右下角是一個(gè)檢查它所在行和列的奇偶位。這種方案能夠檢測(cè)出所有的單個(gè)、2 位和三位錯(cuò)嗎?
- 可以
利用 CRC 方法來(lái)傳輸位流 10011101,假設(shè)生成多項(xiàng)式是 CRC-8,請(qǐng)給出實(shí)際被傳輸?shù)奈淮?。如果在傳輸過(guò)程中左邊第三位發(fā)生錯(cuò)誤。試證明:該錯(cuò)誤可以在接收方被檢測(cè)出來(lái)。
生成多項(xiàng)式的二進(jìn)制表示為:100000111,將 10011101 按 CRC 方法除以 100000111 可得余數(shù) 11011010,故實(shí)際被傳輸?shù)奈淮疄椋?001110111011010。
若左邊第三位發(fā)生錯(cuò)誤,即接收到的數(shù)據(jù)位串為 10111101,
則接收端對(duì)接收的位串重新計(jì)算其 CRC 檢驗(yàn)值,肯定不等于 11011010。
數(shù)據(jù)鏈路層協(xié)議幾乎總是將檢錯(cuò)碼放在尾部,而不是頭部,請(qǐng)問(wèn)這是什么原因?
數(shù)據(jù)幀每經(jīng)過(guò)一跳都會(huì)修改其源mac、目的mac以及其他的一些選項(xiàng),檢錯(cuò)碼放在尾部可以經(jīng)過(guò)一次掃描前述變化內(nèi)容進(jìn)行計(jì)算。
試描述滑動(dòng)窗口是如何實(shí)施流量控制的?
- 滑動(dòng)窗口使用了發(fā)送窗口和接收窗口來(lái)實(shí)施流量控制
- 發(fā)送窗口是允許發(fā)送的數(shù)據(jù)幀集合,其大小表明了發(fā)送端當(dāng)前允許的發(fā)送能力,每發(fā)送一個(gè)數(shù)據(jù)幀,發(fā)送窗口上沿向前滾動(dòng)一個(gè)位置,若上沿減去下沿的差值達(dá)到窗口的最大值,則發(fā)送端停止發(fā)送(即使存在待發(fā)送數(shù)據(jù))
- 發(fā)送端一旦接收到某個(gè)數(shù)據(jù)幀的應(yīng)答,則將下沿向前滾動(dòng)一個(gè)位置,是的發(fā)送端重新具備發(fā)送能力。
- 在接收端,接收窗口是指接收端允許接收的數(shù)據(jù)幀集合,接收到數(shù)據(jù)幀后,接收窗口上沿向前滾動(dòng)一個(gè)位置,一旦數(shù)據(jù)幀被上層取走后,則窗口下沿向前滾動(dòng)一個(gè)位置,并發(fā)送對(duì)應(yīng)數(shù)據(jù)幀的應(yīng)答。
一條 3000 公里長(zhǎng)的 T1 干線被用來(lái)傳輸 64 字節(jié)的幀,通信的兩端使用了連續(xù) ARQ 協(xié)議。如果信號(hào)傳播速度為 6μs/公里,則序列號(hào)應(yīng)該設(shè)置為多少位?
利用地球同步衛(wèi)星在一個(gè) 1Mbps 的信道上發(fā)送 1000b 的幀,該信道離開地球的傳播延遲為 270ms。確認(rèn)信息總是被捎帶在數(shù)據(jù)幀上。頭部非常短,使用3b 序列號(hào)。在下面的協(xié)議中,最大可獲得的信道利用率是多少?(a)停等協(xié)議;(b)連續(xù) ARQ 協(xié)議;(c)選擇重傳 ARQ 協(xié)議。
對(duì)應(yīng)三種協(xié)議的發(fā)送窗口大小分別為 1、7 和 4。
- 1000b 長(zhǎng)的幀需要的發(fā)送時(shí)間為 1ms。若在 t=0 表示傳輸開始,則 t=1ms 時(shí)第一 幀發(fā)送完畢,t=271ms 時(shí)第一幀完全抵達(dá)接收方。
- t=272ms 時(shí)對(duì)第一幀的確認(rèn)幀發(fā)送完畢,t=542ms 時(shí)帶有確認(rèn)的幀完全抵達(dá)發(fā)送方
- 因此,發(fā)送周期為 542ms。
- 如果在 542ms 內(nèi)能夠發(fā)送 k 個(gè)幀(發(fā)送一個(gè)幀耗時(shí) 1ms),則信道利用率為 k/542,
- 停等協(xié)議,k=1,最大信道利用率=1/542=0.18%;
- 連續(xù) ARQ 協(xié)議,k=7,最大信道利用率=7/542=1.29%;
- 選擇重傳 ARQ 協(xié)議,k=4,最大信道利用率=4/542=0.74%;s
上一章:《計(jì)算機(jī)網(wǎng)絡(luò)原理》第三章 數(shù)據(jù)通信技術(shù)
下一章:《計(jì)算機(jī)網(wǎng)絡(luò)原理》第五章 局域網(wǎng)技術(shù)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-429156.html
??這里是 三千步, 讓我們一起學(xué)習(xí)進(jìn)步~??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-429156.html
到了這里,關(guān)于《計(jì)算機(jī)網(wǎng)絡(luò)》第四章 數(shù)據(jù)鏈路控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!