功能:通過一些數據鏈路層的協議,在不太可靠的物理鏈路上實現可靠的數據傳輸。
創新互聯建站10多年成都企業網站定制服務;為您提供網站建設,網站制作,網頁設計及高端網站定制服務,成都企業網站定制及推廣,對成都報廢汽車回收等多個領域擁有多年設計經驗的網站建設公司。相關基本概念:
1、結點(node):網絡中的主機(host)和路由器(router)。
2、鏈路(link):通信路徑上連接相鄰結點的通信信道,中間沒有任何其他的交換結點。一條鏈路只是一條通路的一個組成部分。
3、數據鏈路(data link):要在一根線路上傳送數據,除了要有一條物理線路外,還要有一些必要的規程來控制這些數據的傳輸。將實現這些規程的硬件和軟件加到鏈路上,就構成了數據鏈路。
4、規程:早期的數據通信協議曾叫作通信規程。因此在數據鏈路層,規程和協議是同義語。
5、數據鏈路層協議:定義了一條鏈路的兩個結點間交換的數據單元格式,以及結點發送和接收數據單元的動作。
6、點到點(point to point)通信:在相鄰結點間的一條鏈路上的通信。(數據鏈路層)
7、端到端(end to end)通信:從源結點(source node)到目的結點(destination node)通信。通信路徑(path)可能由多個鏈路組成.(傳輸層)
數據鏈路層為網絡層提供三種合理的服務1、無確認無連接服務。
(1)誤碼率很低的線路,錯誤恢復留給高層。
(2)實時業務。
(3) 大部分局域網。
2、有確認無連接服務。
?(1)適用于不可靠的信道,如無線網。
3、有確認有連接服務。
一、成幀方法成幀的目的:提高傳輸效率、差錯控制。
幀同步:以幀為單位進行傳送,指出哪里是幀的開始和結束。
1、字符計數法方法:在幀頭中用一個域來表示整個幀的字符個數。
可能產生的錯誤:一個幀出錯了,本幀及后面的幀都會產生影響,都有可能出錯。
2、帶字符填充的首尾字符定界法(字節填充的標志字節法)方法:1、由標志字節分隔的幀。若在二進制數中偶然出現的標志字節前插入一個轉義字節(ESC)。
缺點:局限于8位字符和ASCII字符傳送。
幀定界符(標志字段)的值:0x7E;
轉義字符:“ESC”,其值:0x7D;
當數據中出現幀定界符0x7E時,將其轉變為: (0x7D,0x5E);
當數據中出現轉義符0x7D時,將其轉變為:(0x7D,0x5D);
3、帶位填充的首尾標記定界法(比特填充的標志比特)方法:幀的起始和結束都用一個特殊的位串“01111110”,稱為標記(flag), 即 ‘01111110’.
可能存在問題及解決辦法:存在01111110的幀,我們規定連續5個1后一定要有一個0,在接收之后去掉即可。
二、差錯控制差錯產生的原因:噪聲。
可能產生的錯誤:數據幀出錯、數據幀丟失。
目的:使DL(數據鏈路層)能夠向上層提供無差錯的服務(鏈路有干擾)。
基本原理:接收端向發送端發送確認信息(ACK,NAK)。
噪聲類型:
1、白噪聲: 隨機錯誤,某一碼元與前后碼元無關的錯誤,單個出現。
2、沖擊噪聲:突發錯誤,某一碼元與前后碼元有關的錯誤,成串密集出現。
如何進行差錯的檢測和糾正呢?方法:數據之外加冗余編碼,分別叫做檢錯碼和糾錯碼。
檢錯碼: 通過編碼檢查能自動發現差錯
糾錯碼: 除了能知道出錯,還能知道錯誤發生的位置
檢錯碼:奇偶校驗碼、CRC編碼。
糾錯碼:糾1位錯的海明碼。
1、CRC編碼碼多項式:將碼元序列中的每一位看成是一個多項式的系數,則一個碼元序列對應一個多項式,這個多項式被稱為該碼元序列的多項式。
例子:碼元序列:10110
1?? 0??? 1??? 1?? 0???
1x4+0x3+1x2+1x1+0x0?? = x4+x2+x1
使用方法:
模2運算
加法不進位,減法不借位,除法中的減法仍然采用模2運算,可以理解為一種亦或運算,相同為0,不同為1。
例子:加法? ? ? ? ? ? ? ? ? ? ? ? ? 減法
10011011? ? ? ? ? ? ? ? ? ? ?11110000
?+ 11001010?? ? ??-10100110
01010001? ? ? ? ? ? ? ? ? ? ?01010110
CRC碼基本實現原理:
?在要傳輸的碼元序列(幀)后加上校驗和(checksum),使帶校驗和的幀的多項式能被G(x)除盡;收方接收時,用G(x)去除它,若有余數,則傳輸出錯(此處就是檢錯的原理)。
幀的尾部的校驗和的得到方法:
? 設G(x)為 r 階,在幀的末尾加 r 個0,使幀為m + r位,相應多項式為xrM(x);
? 按模2除法用對應于G(x)的位串去除對應于xrM(x)的位串;
具體實現步驟:
1、將要傳送的數據位后面加上r個0, xr M(x)。
2、用xr M(x)除以G(x),得到的余數r(x)。
3、用xr M(x)減去余數r(x) ,構成要傳輸的n位數據T(x)。
感覺文字看比較難理解,例子可以比較直接:
2、糾1位錯的海明碼?問:糾1位錯,需要多少位冗余位呢?
數據位:m, 冗余位:r;
設一個系統中,編碼后的碼字位數是 n,則 n=m+r。?
問:糾正單個錯需要的冗余位跟數據位的關系是什么?
(m+r+1)<=2^r
問:什么是海明距離?
海明距離是將一個字符串變換成另外一個字符串所需要替換的字符個數
糾1位錯的海明碼的基本思想:
1、校驗位和數據位
?(1) 、凡編號為2的乘冪的位是校驗位,如1、2、 4、8、16、……
? (2)、其余是數據位,如3、5、6、7、9、……
2、每一個校驗位設置根據:包括自己在內的一些位的集合的奇偶值(奇數或偶數)。
例子:
問:如何找到每個數據位的校驗位??
方法:將某一位數據位的編號展開成2的乘冪的和,那么每一項所對應的位即為該數據位的校驗位(收方使用)。
數據位編號:1=2^0=1? ?1號數據位的校驗位包括:1
數據位編號:2=2^1=2? ? 2號數據位的校驗位包括:2
數據位編號:11 = 2^0 + 2^1 + 2^3 = 1 + 2 + 8? ? ? ? ? ? ? ? ? ??11號數據位的校驗位包括:1,2,8
數據位編號:29 =? 2^0 + 2^2?+ 2^3 +?2^4?= 1 + 4 + 8 + 16? 29號數據位的校驗位包括:1,4,8,16
校驗位1的檢驗集合為所有奇數位,1,3,5,7,9,11...
校驗位2的檢驗集合:2、3、6、7、10、11、…
校驗位4的檢驗集合:4、5、6、7、...
校驗位8的檢驗集合:8、9、10、11、…
海明碼糾錯過程:
1、首先將差錯計數器置“0”,counter=0。
2、當海明碼數據到達接收端后,接收端逐個檢查各個校驗位的奇偶性。
3、如發現某一校驗位和它所檢測的集合的奇偶性不正確,就將該檢驗位的編號加到差錯計數器中。
問:海明碼如何糾正突發錯誤?
1、將連續的k個碼字按行排列成矩陣?
2、發送數據時,按列發送,每列k位
3、如果一個突發性錯誤長度是k位,則在k個碼字中,至多只有 一位受到影響,正好可用海明碼糾錯改位后恢復。
例子:使用奇校驗,一個校驗集合里的1的個數是奇數
接收到碼字為00111000100,校驗各校驗位:
第一位:00111000100,校驗集合有3個1,
? 0+1+1+0+1+0=3,錯。
校驗位1的檢驗集合為所有奇數位,即:1,3,5,7 , 9 , 11 ,13,15...
第二位:00111000100,校驗集合有1個1,
?0+1+0+0+0+0=1,錯。
校驗位2的檢驗集合:2、3、6、7、10、11、…
第四位:00111000100,校驗集合有2個1,
? 1+1+0+0=1,對
校驗位4的檢驗集合:4、5、6、7、12,...
第八位:00111000100,校驗集合有1個1,
0+1+0+0=1,錯
校驗位8的檢驗集合:8、9、10、11、…
累加出錯位編號:1+2+8=11?
可計算得其第11位出錯,將該位由0改為1,即糾正得到正確 結果: 00111000101。
三、流量控制為什么要進行流量控制?
發送者發送數據的能力高于接收者的接收能力,可能導致數據未接收就丟失了。
如何解決流量控制問題,有兩個方法:
?1. 基于反饋的流量控制。
?2. 基于速率的流量控制。
四、基本的數據鏈路層協議 1、無限制的單工協議使用該協議的兩個前提,假設:
假設1:鏈路是理想的傳輸信道,所傳送的任何數據既不會出差錯也不會丟失(差錯問題)。
假設2:不管發送方以多快的速率發送數據,收方總是來得及收下,并及時上交主機(流量問題)。
兩個假設使數據鏈路層變成理想的信道,不用處理差錯問題和流量問題。此時發方和接收方:
發送方:循環從網絡層獲得packet(數據包),封裝成frame(幀)之后發送出去。
接收方:循環從物理層獲得frame,取出packet交給網絡層。
2、單工停等協議使用該協議的一個前提,假設:
假設1:鏈路是理想的傳輸信道,所傳送的任何數據既不會出差錯也不會丟失(差錯問題)。
該假設使數據鏈路層不會存在差錯問題,但會存在流量不匹配問題。此時發方和接收方要針對該問題做出處理:讓接收方提供反饋信息給發送方
發方:每發一幀,停止下來。
收方:每收到一幀,上交網絡層,再發一個確認給發方,表示收到。
發方:收到確認,再發下一幀。
3、帶噪聲的單工協議無前提假設,數據鏈路層在傳輸上可能存在數據出差錯、丟失問題和發送方和接受方流量不匹配問題,此時發方和接收方要針對問題做出處理:
處理數據出差錯、丟失問題同時進行流量控制的方法:差錯控制編碼與否認幀(nak)
1、通過CRC,如接收方檢測有錯,則發NAK(否則ACK)。
2、發送方收到NAK,則重發,直到收到接收方發來的ACK為止。
3、若發送方多次收到NAK,則向上提示出錯。
重復幀處理方法:對幀進行編號
1、目的:讓接收端能夠區分一個幀到底是新幀還是已經處理過的舊幀。
2、對于stop-and-wait協議:一次只發送一個幀,序號只需要1位(0,1),用于標記當前幀和它的下一個幀。
3、確認幀也要編號。
五、滑動窗口協議基本思想:
1、發送端:一次連續發送未經確認的的幀是受到發送窗口(sending window)控制的,只有落到發送窗口的幀才是可以發送的。
2、接收端:只有落到接收窗口(receiving window)的幀才是可以接收的。
1、捎帶技術特點:雙向通信。
幀通信類別:
A-B數據幀 ,B-A的確認幀
B-A數據幀 ,A-B的確認幀
實現思想:
一方收到另外一方發來的數據幀之后,不立即回發確認幀給對方,而是等本站有數據要發送給對方時,將給對方確認信息和本站發向對方的數據混合成一個幀傳送給對方。
總結:
將A-B的數據幀, A-B的確認幀,混合在一起。
將B-A的數據幀, B-A的確認幀,混合在一起。
存在問題:若一個站點在收到對方的數據幀之后沒有數據發送給對方,源站就收不到確認幀,導致超時。
解決辦法:設置輔助計時器,在目標端收到數據時,啟動輔助計時器,如果在輔助計時器到時,仍然沒有反向數據傳送,則單獨發送確認短幀。
捎帶技術優點:
1、較好地利用信道的帶寬
2、減少目標端的中斷次數。
3、減少單獨發送確認幀帶來的效率上的降低。
2、發送窗口窗口大值的定義:一次可以連續發送而未經對方確認的幀的個數的大值。
發送緩沖區的個數相當于發送窗口的大幀的個數(固定值),發送緩沖區中的幀有兩類:
(1)未發送的而落入發送緩沖區的幀,可以連續發送出去;
(2)已經發送出去的等待對方確認的幀,發送緩沖區的幀只有得到確認才能刪除,窗口向前移動,設置發送緩沖區的目的是使出錯的幀可以重發
發送窗口中的序列號代表:在發送緩沖區中已經發送了但未確認的幀;
只有收到對方的ack,發送窗口和發送緩沖區后沿向前移動,有更新的幀可以落到發送緩沖區中Ws=1停等協議, Ws非常大:連續ARQ協議.
3、接收窗口接收窗口用于控制,哪些幀可以接收,哪些不可以;
只有當收到的數據幀的發送序號落入接收窗口內才允許將該數據幀收下接收窗口向前移動一個,并發一個確認給對方;
若接收到的數據幀落入接收窗口之外,則一律將其丟棄;?
接收窗口Wr=1,則接收端只能順序接收;否則可以不按順序接收,但提交給網絡層的分組,一定要按照順序
引入活動窗口協議的目的:使發送和接收兩端的窗口按照一定的規律不斷向前滑動,正確發送和接收數據。
協議基本思想:
接收窗口向前移動時,發送窗口才能向前移動。
接收窗口的大小是固定的,而發送窗口的大小是變化的。
發送緩沖區的大小是固定的。
4、協議——一比特滑動窗口協議(配合捎帶技術使用)窗口大小:N = 1,發送序號和接收序號的取值范圍:0,1;
可進行數據雙向傳輸,信息幀中可含有確認信息(捎帶技術);
信息幀中包括兩個序號域:發送序號和接收序號(接受端已經正確收到的幀的序號)。
5、協議——回退n幀協議基本思想:不是一次發送一個幀,而是一次可以連續發送若干個幀,面對出錯時,丟棄,不發確認,讓發送方超時重發。
同時對于后續到達的幀分兩種情況接收:
1、當Wr=1時:
?接收方:全部丟棄(drop), 鏈路層只按順序接收幀
?發送方:2號幀超時后,從2號幀開始發送
回退n幀 ( go back n protocol )
2、當Wr>1時:
接收方:? 陸續接收出錯幀的后續各幀,但不提交給網絡層,直到收?????????????????????????????????????
????? 到2號幀之后,加上以后存儲的各幀,按順序交給網絡層
發送方: 2號幀超時后,發完2號幀之后,從第6號幀開始
選擇性重傳 ( selective repeat )
注:限制大窗口值w<=2n-1
總結:
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網站名稱:復習計算機網絡——第三章記錄(1)-創新互聯
當前地址:http://m.newbst.com/article28/dgipjp.html
成都網站建設公司_創新互聯,為您提供網站制作、Google、品牌網站建設、云服務器、軟件開發、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯