Ⅰ 【網路】TCP/IP-數據鏈路層
本文主要從數據鏈路層主要功能展開,涉及到以下相關概念
首先我們看看TCP/IP網路模型中數據鏈路層的功能定義:透明傳輸,差錯檢測,封裝成幀
數據鏈路層進程的任務是在兩個網路層進程之間提供無錯誤的,透明的通信
1 提供差錯檢測機制(處理傳輸錯誤)
2使用滑動窗口機制進行流量控制 (調節數據流,確保慢速的接收方不會被發送方淹沒)
3 向網路層提供一個定義良好的網路介面
在OSI參考模型中,上層使用下層所提供的服務必須與下層交換命令,這些命令稱為 服務原語 。
相鄰層之間的介面稱為 服務訪問點SAP ,
對等層之間傳送的數據單位稱為 協議數據單元PDU
以下圖說明網路鏈路,數據傳輸構成,和數據鏈路層分層
可分為 (面向字元的通信規程) 和 (面向比特的通信規程) 兩類
「TCP 是一個面向位元組流的協議」指的是「位元組就是位元組」
在令牌環網中,令牌環的幀格式有兩種,分別是 (令牌幀) 和 (數據幀)
在點-點鏈路中,發送信息和命令的站稱為主站,接收信息和命令而發出確認信息或響應的站稱為從站,兼有主、從功能可發送命令與響應的站稱為復合站
透明傳輸模式
0201 工作原理
乙太網有兩類
01 經典乙太網,解決多路訪問問題
02 互動式乙太網,使用交換機連接不同的計算機。
交換機中每個埠有自己獨立的沖突域。
採用較為靈活的無連接的工作方式,即不必先建立連接就可以直接發送數據。
乙太網對發送的數據幀不進行編號,也不要求對方發回確認。
乙太網提供的服務是不可靠的交付,即盡最大努力的交付。
乙太網是使用1-持續CSMA/CD 技術的匯流排型網路。
乙太網的邏輯結構是匯流排型結構,物理結構是星型或者拓撲星型結構。
乙太網屬於數據鏈路層協議應用,規定的最短幀長 最短幀長度為64位元組。
為了確保最小幀長為64位元組,同時維持網路直徑為200m,千兆乙太網採用了載波擴展和數據包分組兩種技術。
為什麼要限制最短幀長
乙太網的爭用期是指匯流排兩端的兩個站之間的往返傳播時延,又稱為碰撞窗口。
乙太網的端到端往返時延 2τ稱為爭用期,或碰撞窗口。
爭用期長度為 2τ,即端到端 傳播時延 的兩倍。
經過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞
網橋工作在數據鏈路層,作用是連接不用的物理區域網形成邏輯區域網,它們通過檢查數據鏈路層地址來轉發幀。用於連接類型相似的區域網。
在網橋中,幀從物理層往上傳給乙太網的MAC層。
路由器作用於網路層,提供網路層協議轉換。通過檢查數據包地址,並基於數據包地址路由數據包。在網路之間存儲和轉發分組
網關提供傳輸層及以上各層協議之間的轉換
網橋與路由器的區別
1 二層設備與三層設備
2 網橋連接相似的區域網,路由器連接不同的網路
3 網橋不隔離廣播,而路由器可以隔離廣播
網橋的主要任務是地址學習和幀轉發
乙太網交換機實際上是一個多埠的網橋。
節點交換機與乙太網交換機都是數據鏈路層設備,前者使用點對點信道,後者使用廣播信道。
例:乙太網交換機在收到一幀後先進行存儲,在轉發幀是,對於未知目的的幀,可以採用廣播的方式轉發。
交換機是按照存儲轉發方式工作的,在收到一幀後,一定是先將它存儲再進行處理,不管目的地址。在轉發時,查找轉發表和收到幀的源地址有無匹配的項目,有則更新,無則向除接收該幀的介面以外轉發幀,即廣播。
乙太網交換機按照自學習演算法建立轉發表,它通過 ARP協議 進行地址學習。ARP協議 不屬於鏈路層 。
A RP不是向網路層提供服務,它 本身就是網路層的一部分,幫 助向傳輸層提供服務。
在數據鏈路層不存在IP 地址的問題。數據鏈路層協議是象HDLC 和PPP 這樣的協議,它們
把比特串從線路的一端傳送到另一端。
例題
高級數據鏈路控制(High-Level Data Link Control或簡稱HDLC),是一個在同步網上傳輸數據、面向比特的【可靠傳輸】數據鏈路層協議。目前我們普遍使用HDLC作為數據鏈路控制協議。
HDLC幀格式如下
當我們傳輸數據時,要傳輸的不僅僅是數據的大小,還會給這些數據加上頭和尾,以及一些其他的標志。比如標志位有八位,就是一個位元組。所以除數據外其他的欄位加在一起要佔據6位元組的空間。
HDLC定義了三種類型的站:分別是主站,從站,復合站
HDLC包括三種類型的幀,信息幀,監控幀,和無編號幀。第1位為「0」表示是信息幀,第1、2位為「10」是監控幀,「11」是無編號幀。
信息幀用於傳送有效信息或數據,通常簡稱I幀。
監控幀用於監視和控制數據鏈路,完成信息幀的接收確認、重發請求、暫停發送
請求等功能。監控幀不具有信息欄位。
無編號幀用於數據鏈路的控制,它本身不帶編號,可以在任何需要的時刻發出
HDLC的幀類型中用於差錯控制和流量控制的幀是 A.命令幀 B.信息幀 C.無編號幀 D.監控幀
答案 D
ATM是一種 面向分組 的技術,其分組稱為信元。 ATM 信元由信元頭和凈荷(Payload)兩部分構成。信元頭中包含信元控制信息,凈荷用於承載用戶的數據。
ATM是一種面向連接的技術,傳輸基於固定長度的信息信元,每個信元在他的頭部帶有虛電路標識符,交換設備根據此標識符演著連接建立的路徑轉發信元。
ATM是非同步傳輸模式的縮寫,是兩種交換技術的結合,電路交換和分組交換。
信元和信元頭長度分別是53位元組和5位元組
在計算機網路中,數據交換的方式有:
(1)線路交換。在數據傳送之前需建立一條物理通路, 在線路被釋放之前,該通路將一直被一對用戶完全佔有。
(2)報文交換。報文從發送方傳送到接收方採用存儲轉發 的方式。在傳送報文時,只佔用一段通路;在交換節點中需要 緩沖存儲,報文需要排隊。因此,這種方式不滿足實時通信的 要求。
(3)分組交換。此方式與報文交換類似,但報文被分成組傳送,並規定了分組的最長度,到達目的地後需重新將分組組裝成報文。這是網路中最廣泛採用的一種交換技術。
常用的差錯控制方法是在數據中加入差錯控制編碼,在所要發送的信息位之前按照某種規則加上一定的冗餘位,構成一個碼字再傳送。
交換機可以用來分割LAN,連接不同的LAN,或者擴展LAN的覆蓋范圍。
4B/5B編碼是將數字數據轉換為數字信號的編碼方式。
數據鏈路層和大多數高層都存在的一個問題是如何避免一個快速發送方用數據【淹沒】一個慢速接受方。所以需要一個流量調節機制,以便讓發送方知道接收方何時可以接收更多的數據。
兩種方式:
1 基於反饋的流量控制 接收方給發送方發信息
2 基於速率的流量控制 限制發送方傳輸速率
數據鏈路層和傳輸層的TCP協議都會涉及到滑動窗口機制。側重點不一樣。
數據鏈路層主要有兩種: 停-等流量控制和滑動窗流量控制 。
發送方窗口內的序列號代表了那些已經被發送,但是還沒有被確認的幀,或者是那些可以被發送的幀。
首先整理下滑動窗口涉及到的3個協議
1 停等協議:發送方每發送一幀,都要等待接收方的應答信號,之後才能發送下一幀;接收方每接收一幀,都要反饋一個應答信號,表示可接收下一幀,如果接收方不反饋應答信號,則發送方必須一直等待。
2 後退N幀協議:在後退n協議中,接收方若發現錯誤幀就不再接收後續的幀,即使是正確到達的幀,這顯然是一種浪費。
接受方發現接收到的信息幀時序有問題時,要求發送方發送最後一次正確發送後確認接收的幀之後的所有的未被確認的幀。
3 選擇重傳協議:當接收方發現某幀出錯後,其後繼續送來的正確的幀雖然不能立即遞交給接收方的高層。但接收方仍可收下來,存放在一個緩沖區中,同時要求發送方重新傳送出錯的那一幀,一旦收到重新傳來的幀後,就可以原已存於緩沖區中的其餘幀一並按正確的順序遞交高層。
總之
海明碼:如果要檢測 d位錯誤,需要海明距為 d+1的編碼方案;如果要糾正 d位錯誤,需要海明 距 為 2d+1的 編 碼 方 案 。
1.集線器本身是一個 沖突域 ,因為它不能分隔沖突域。
2.交換機本身是一個 廣播域 ,它分隔沖突域,即它的每一個埠都是一個沖突域。
3. 路由器 分隔 廣播域 ,它的每一個介面都是一個 廣播域 。
4.交換機和 路由器 相連的鏈路即是沖突域又是廣播域。
某用戶程序採用 UDP協議進行傳輸,則差錯控制應由 協議完成。
A.數據鏈路層 B.網路層 C.物理層 D.應用層
PPP協議是透明傳輸,實際上就是通常所說的透傳。
PPP協議使用的是一種面向位元組的協議,所有的幀長度都是整數個位元組,使用一種特殊的字元填充法完成數據的填充。
例題
為實現透明傳輸,PPP協議使用的填充方法是()。B
A.位填充
B.字元填充
C.對字元數據使用字元填充,對非字元數據使用位填充
D.對字元數據使用位填充,對非字元數據使用字元填充
例題:
PPP 幀的起始和結束標志都是 0x7e,若在信息欄位中出現與此相同的字元,必須進行填
充。在同步數據鏈路中,採用___比特填充法____方法進行填充;在非同步數據鏈路中,采
用___字元填充法____方法進行填充
1 糾錯,PPP協議只進行檢錯
2流量控制
3 序號 PPP協議是不可靠的傳輸協議,因此不需要給幀編號。
Ⅱ 計算機網路的問題,就是在數據鏈路層用CRC進行差錯檢測中除數(生成多項式)到底是怎麼確定的啊
不是 是一種點分站點信息和二進制實現的
Ⅲ 計算機網路,關於數據鏈路層差錯檢測的【循環冗餘演算法】
這個題目不完整。這類題目的做法是:要發送的數據為被除數,後面要加上CRC生成的多項式P(X)最高次冪個0。並且除數的位數是P(X)最高次冪+1。P(X)每個冪數代表著除數從右到左第幾位為1,其餘的都為0,就得出除數了。最後通過模2運算出余數,余數的位數等於被除數後面加的0的個數。模2運算即1+1=0,0+0=0,0+1=1,1-1=0,1-0=0,0-1=0,0-0=0
舉個例子:要發送的數據為101110。採用CRC生成多項式是P(X)=X^3+1。試求應添加在數據後面的余數
答:除數P為1001,被除數為101110000(此處後面加了3個0),模2運算得出商Q=101011,余數R=011
最後PS:採用CRC檢驗後,數據鏈路層的傳輸並非變成了可靠運輸。接收方進行CRC檢驗時,如果發現差錯就簡單的丟棄這個幀。另外,余數不為0則代表接收的數據有差錯
Ⅳ 計算機網路的差錯控制指的是什麼
差錯產生原因主要是由於線路本身電氣特性所產生的隨機噪音,信號振幅,頻率和相位的衰減等設備故障因素造成
差錯分為單比特差錯和突發差錯,單比特差錯是指在傳輸的數據單元只有一個比特發生變化,而突發差錯是有兩個或兩個以上的比特發生變化
--差錯控制的兩種方法
1.從硬體入手,但增加通信成本
2.傳輸過程中進行差錯控制,在數據鏈路層採用編碼進行查錯CRC和糾錯處理
Ⅳ 小白求教高人!!計算機網路中差錯檢測,要發發送的數據為1101011011。用cac生成多項式是P=x的4次方+x+1
1101011011
10011
—李兄高—————
100111011
10011
————塵衡——哪尺
1011
Ⅵ 計算機網路技術里的什麼叫"傳輸差錯"
計算機網路的傳輸差錯是指通信雙方在發送和接受數據包的過程中出現的數據錯誤,差錯類型分為單比特錯和突發錯。網路傳輸是數據流的形式,單比特錯是指某一位bit出現錯誤,通常可以通過編碼方式糾正;突發錯是指連續或分散的一大串比特位數據錯誤,這種錯誤糾正比較難,通常採用差錯重傳的方式。
上面這段話是我自己理解寫出來的,不是抄別人的,如果有錯,希望你能指正。
Ⅶ 數據鏈路層的差錯的檢測和恢復(奇偶校驗碼,CRC校驗,校驗和),各種運算
在原始的物理傳輸線路上傳輸數據信號是有差錯的,存在一定的誤碼率,數據鏈路層存在的目的就是給原始二進制位流增加一些控制信息 ,實現如何在有差錯的線路上進行無差錯傳輸
數據設定為M位,冗餘位設定為R位,如果位數滿足即認為不出錯,如果位數不滿足即肯定出錯
差錯產生的原因
信道的電氣特性引起信號幅度,頻率,相位的畸變,信號反射,串擾,閃電,大功率電機的啟停等
計算機網路中出現的差錯是連續的還是離散的差錯? → 是連續的突發性的差錯
比如傳了一個這樣的位串0001101001,連續的差錯:比如一共出錯了3位,連續的出錯在一起。離散的差錯:一共出錯了3位,不是連續出的,是分散出的
保證幀正確,按序送交上層(順序要對,不能重復也不能跳幀)。在接收方能夠判斷接收的數據是否正確,若錯誤還可能要恢復錯誤
糾錯控制主要由接收方做,能檢查出錯並定位到是哪兒出錯了
接收方通過反饋機制告訴發送方出錯,發送方通過重發的方式恢復差錯
☆自動糾錯比檢錯反饋重發機制代價大,在發生數據丟失的情況下,只是自動糾錯機制無法進行差錯恢復,還是需要檢錯反饋重發機制
一個幀包括m個數據位,r個校驗位(是冗餘位,和m位的有效數據是無關的),稱為n位碼字(n=m+r),我們希望r盡量短,並且盡量有一個固定長度
加入了冗餘位,使接收方知道有差錯發生,但不知道什麼差錯,然後請求重發
加入了足夠多的冗餘位,使接收方不僅知道有差錯發生,並知道哪些位發生差錯
兩個編碼的海明距離: 兩個編碼不相同位的個數
例:0000000000與0000011111的海明距離是5
編碼方案的海明距離: 編碼方案中任兩個編碼海明距離的最小值
ASCII這樣的連續編碼的海明距離都是1
為檢測d位錯,編碼方案的海明距離應至少為d+1
當發生d位錯時,不會由一種合法編碼變為另一種合法編碼,也就是想要由一種合法編碼變為另一種合法編碼,需要d+1以上出錯
對接收方來講,它判定一個編碼是否出錯的唯一依據是這個編碼是否是一個合法的編碼。即使接收方收到了一個合法的編碼,它也無法判斷是否是一個合法編碼,因為它不知道這個合法編碼原本就是合法的,還是出錯以後也依然是一個合法編碼。因此需要海明距離應至少為d+1
在數據鏈路層一般是不用這種檢錯方法的,因為檢錯率太低
若接收方收到的位元組奇偶結果不正確,就可以知道傳輸中發生了錯誤
增加奇偶校驗位後海明距離由1變為2,因此根據「為檢測d位錯,編碼方案的海明距離應至少為d+1」,可以檢查出一位二進制位的差錯
用這種方法,有一位出錯時,就會由合法編碼(奇校驗時1的個數為奇數,偶校驗時1的個數為偶數)變成一種非合法編碼(奇數校驗時1的個數為偶數,偶校驗時1的個數為奇數)
為糾正d位錯,編碼方案的海明距離應至少為2d+1
當發生d位錯時,出錯編碼仍然最接近於原始的正確編碼
例:現在有一個編碼方案,這個編碼方案之中只有4種合法編碼↓
0000000000
0000011111
1111100000
1111111111
它們之間的海明距離為5,按照定理,能夠糾正2位錯
假設接收方收到了這樣的編碼:0001100000,很明顯這是個非法編碼,怎麼樣糾正
呢?我們知道出錯的位數是≤ 2位的,它和第一種的海明距離為2,和第二種為7,和
第三種為3,和第四種為8,離它最近的是第一種編碼。它採用這種就近恢復的原則將
出錯的編碼恢復到原始編碼
數據鏈路層用的最多的一種檢錯方法
但是高層(網路層,傳輸層)是不用這種檢錯方法的,而用檢驗和的方法
生成多項式G(x)
發方,收方事前約定。這里的約定是數據鏈路層的協議已經定義該協議使用什麼生成多項式
生成多項式的高位和低位必須為1
生成多項式必須比傳輸信息對應的多項式短
(現在最多用的是CRC-32,生成多項式是32位,能否保證生成多項式比傳輸的對應的多項式短呢?從原始數據來講保證不了,但是到數據鏈路層時加了傳輸層的頭,網路層的頭之後肯定能保證大於32位。比如現在的Internet網路,例如在傳輸層使用TCP加20個位元組,在網路層IP又加了20個位元組,已經超過32位了,所以肯定能保證)
理論上來講生成多項式的階越高,檢錯率越高
硬體實現CRC校驗
四個多項式已經成為國際標准
CRC碼(增加的r位冗餘位檢錯碼,即校驗和)加在幀尾(效率比較高),使帶CRC碼的幀的多項式能被G(x)除盡:接收方接收時,用G(x)去除它,若有餘數,則傳輸出錯
• 模2加法運算定義為:(對應於邏輯異或)
0+0=0 0+1=1 1+0=1 1+1=0
例如0101+0011=0110
• 模2減法運算定義為:(對應於邏輯異或)
0-0=0 0-1=1 1-0=1 1-1=0
例如0110-0011=0101
• 模2乘法運算定義為:
0x0=0 0x1=0 1x0=0 1x1=1
• 模2除法運算定義為:
0 ÷1=0 1÷1=1
利用模2減求余數,余數最高位為1,則商1,否則商0,每商1位則余數減少1位,
直到余數位數少於除數位數
按位與運算:
按位與運算符」&」是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現
例如: 9 & 5
00001001(9的二進制補碼)
&
00000101 (5的二進制補碼)
00000001
可見9 & 5 =1
最高位作為符號位,若符號位為0,則表示正數,若符號位為1,則表示負數
其餘各位代表數值本身的絕對值(以二進製表示)
絕對值相同的正數和負數,它們除了符號位不同外,其他各位都相同
一個數如果值為正,則它的反碼與原碼相同
一個數如果值為負,則將其符號位置為1,其餘各位為對原碼相應數據位取反
(取反:二進制中有0和1兩種狀態,取反就是取與當前狀態相反的狀態,1取反等於0,0取反等於1)
正數的補碼與反碼,原碼相同
負數的補碼則將其最高位置為1,其餘各位為對原碼的相應數據位取反,再對整個數加1
即 X為負數時,【X】補 = 【X】反+1
(+0)補 = 00000000
(-0)反 = 11111111
(-0)補 = 11111111 + 1 = 100000000→進位1捨去→00000000
假設用一個位元組表示一個數,補碼的表示範圍為:-128 ----- +127
用反碼表示的最小值為:-128,其反碼為:10000000
用反碼表示的最大值為:+127,其反碼為:01111111
按位或運算符」|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的兩個二進位有一個為1時,結果位就為1.參與運算的兩個數均以補碼出現
例如:9|5
00001001
| 00000101
00001101(十進制為13)
可見9|5=13
~為單目運算符,具有右結合性。其功能是對參與運算的數的各二進位按位求反
例如:~9
~(0000000000001001)結果為:1111111111110110
按位異或運算符」 ^ 」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或。當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現
例如:9^5
00001001
^ 00000101
00001100(十進制為12)
左移運算符」 << 」是雙目運算符。其功能是把 」 << 」左邊的運算數的各二進位全部左移若干位,由」 << 」右邊的數指定移動的位數,高位丟棄,低位補0
例如:a=00000011(十進制3),a << 4,結果為:00110000(十進制48)
右移運算符」 >> 」是雙目運算符。其功能是把」 >> 」左邊的運算數的各二進制全部右移若干位,」 >> 」右邊的數指定移動的位數
例如:a=15(00001111),a >>2,結果為00000011(十進制3)
計算方法例:
※CRC碼計算還有一個好處:
我們希望不管m是多少位的,但是冗餘位r是越短越好,而且最好位數是固定的。用這CRC碼的好處就是生成多項式是多少階的,那麼最後的余數(冗餘位)的位數就是多少位。如果是n階的,那麼最後就是4位
循環冗餘校驗法檢驗不出來的錯的情況:收到的位串雖然是錯誤的,但是恰巧能被生成多項式整除,這個時候檢測不出來
適用於高層協議,如IP,TCP,UDP等
校驗碼放在前面或後面影響都不大,所以絕大多數是放在前面的
檢錯率低於循環冗餘校驗法
在↓例子中,如果第1位和第9位同時出錯,或者第2位和第10位同時出錯···出錯,那麼它們取反相加的數是不變的,這個時候是檢查不出錯的。但是網路當中連續突發的錯占絕大部分,這種跳躍性的出錯概率很小,所以檢驗和的檢錯率還是比較高的
高層不用冗餘校驗法的原因是,冗餘校驗法主要採用除的計算方式,比累加的(校驗和)計算方式效率要低,而數據鏈路層用這種方法可以用硬體實現,但是網路層和傳輸層一般只能通過軟體實現,那麼效率就降低了。而且數據鏈路層已經提供了比較可靠的支持,所以高層就可以用這種檢錯率相對低一點的檢錯法
檢驗欄位初值置0,數據拆分成與檢驗欄位等長的分片,不足部分補0,將所有分片逐位取反,並連續累加,丟棄最高進位,計算結果置於檢驗欄位。接收端執行相同的過程(分段處理,取反累加,把累加出的校驗和與校驗碼欄位當中保存的校驗和進行比對,如果是完全一致就沒錯),並將計算結果和傳輸過來的檢驗和進行比較以確定是數據是否出現差錯
Ⅷ 計算機網路知識點
一、計算機網路概述
1.1 計算機網路的分類
按照網路的作用范圍:廣域網(WAN)、城域網(MAN)、區域網(LAN);
按照網路使用者:公用網路、專用網路。
1.2 計算機網路的層次結構
TCP/IP四層模型與OSI體系結構對比:
1.3 層次結構設計的基本原則
各層之間是相互獨立的;
每一層需要有足夠的靈活性;
各層之間完全解耦。
1.4 計算機網路的性能指標
速率:bps=bit/s 時延:發送時延、傳播時延、排隊時延、處理時延 往返時間RTT:數據報文在端到端通信中的來回一次的時間。
二、物理層
物理層的作用:連接不同的物理設備,傳輸比特流。該層為上層協議提供了一個傳輸數據的可靠的物理媒體。簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。
物理層設備:
中繼器【Repeater,也叫放大器】:同一區域網的再生信號;兩埠的網段必須同一協議;5-4-3規程:10BASE-5乙太網中,最多串聯4個中繼器,5段中只能有3個連接主機;
集線器:同一區域網的再生、放大信號(多埠的中繼器);半雙工,不能隔離沖突域也不能隔離廣播域。
信道的基本概念:信道是往一個方向傳輸信息的媒體,一條通信電路包含一個發送信道和一個接受信道。
單工通信信道:只能一個方向通信,沒有反方向反饋的信道;
半雙工通信信道:雙方都可以發送和接受信息,但不能同時發送也不能同時接收;
全雙工通信信道:雙方都可以同時發送和接收。
三、數據鏈路層
3.1 數據鏈路層概述
數據鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。
該層的作用包括: 物理地址定址、數據的成幀、流量控制、數據的檢錯、重發 等。
有關數據鏈路層的重要知識點:
數據鏈路層為網路層提供可靠的數據傳輸;
基本數據單位為幀;
主要的協議:乙太網協議;
兩個重要設備名稱:網橋和交換機。
封裝成幀:「幀」是 數據鏈路層 數據的基本單位:
透明傳輸:「透明」是指即使控制字元在幀數據中,但是要當做不存在去處理。即在控制字元前加上轉義字元ESC。
3.2 數據鏈路層的差錯監測
差錯檢測:奇偶校驗碼、循環冗餘校驗碼CRC
奇偶校驗碼–局限性:當出錯兩位時,檢測不到錯誤。
循環冗餘檢驗碼:根據傳輸或保存的數據而產生固定位數校驗碼。
3.3 最大傳輸單元MTU
最大傳輸單元MTU(Maximum Transmission Unit),數據鏈路層的數據幀不是無限大的,數據幀長度受MTU限制.
路徑MTU:由鏈路中MTU的最小值決定。
3.4 乙太網協議詳解
MAC地址:每一個設備都擁有唯一的MAC地址,共48位,使用十六進製表示。
乙太網協議:是一種使用廣泛的區域網技術,是一種應用於數據鏈路層的協議,使用乙太網可以完成相鄰設備的數據幀傳輸:
區域網分類:
Ethernet乙太網IEEE802.3:
乙太網第一個廣泛部署的高速區域網
乙太網數據速率快
乙太網硬體價格便宜,網路造價成本低
乙太網幀結構:
類型:標識上層協議(2位元組)
目的地址和源地址:MAC地址(每個6位元組)
數據:封裝的上層協議的分組(46~1500位元組)
CRC:循環冗餘碼(4位元組)
乙太網最短幀:乙太網幀最短64位元組;乙太網幀除了數據部分18位元組;數據最短46位元組;
MAC地址(物理地址、區域網地址)
MAC地址長度為6位元組,48位;
MAC地址具有唯一性,每個網路適配器對應一個MAC地址;
通常採用十六進製表示法,每個位元組表示一個十六進制數,用 - 或 : 連接起來;
MAC廣播地址:FF-FF-FF-FF-FF-FF。
四、網路層
網路層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括定址和路由選擇、連接的建立、保持和終止等。數據交換技術是報文交換(基本上被分組所替代):採用儲存轉發方式,數據交換單位是報文。
網路層中涉及眾多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議。IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。
與IP協議配套使用實現其功能的還有地址解析協議ARP、逆地址解析協議RARP、網際網路報文協議ICMP、網際網路組管理協議IGMP。具體的協議我們會在接下來的部分進行總結,有關網路層的重點為:
1、網路層負責對子網間的數據包進行路由選擇。此外,網路層還可以實現擁塞控制、網際互連等功能;
2、基本數據單位為IP數據報;
3、包含的主要協議:
IP協議(Internet Protocol,網際網路互聯協議);
ICMP協議(Internet Control Message Protocol,網際網路控制報文協議);
ARP協議(Address Resolution Protocol,地址解析協議);
RARP協議(Reverse Address Resolution Protocol,逆地址解析協議)。
4、重要的設備:路由器。
路由器相關協議
4.1 IP協議詳解
IP網際協議是 Internet 網路層最核心的協議。虛擬互聯網路的產生:實際的計算機網路錯綜復雜;物理設備通過使用IP協議,屏蔽了物理網路之間的差異;當網路中主機使用IP協議連接時,無需關注網路細節,於是形成了虛擬網路。
IP協議使得復雜的實際網路變為一個虛擬互聯的網路;並且解決了在虛擬網路中數據報傳輸路徑的問題。
其中,版本指IP協議的版本,佔4位,如IPv4和IPv6;首部位長度表示IP首部長度,佔4位,最大數值位15;總長度表示IP數據報總長度,佔16位,最大數值位65535;TTL表示IP數據報文在網路中的壽命,佔8位;協議表明IP數據所攜帶的具體數據是什麼協議的,如TCP、UDP。
4.2 IP協議的轉發流程
4.3 IP地址的子網劃分
A類(8網路號+24主機號)、B類(16網路號+16主機號)、C類(24網路號+8主機號)可以用於標識網路中的主機或路由器,D類地址作為組廣播地址,E類是地址保留。
4.4 網路地址轉換NAT技術
用於多個主機通過一個公有IP訪問訪問互聯網的私有網路中,減緩了IP地址的消耗,但是增加了網路通信的復雜度。
NAT 工作原理:
從內網出去的IP數據報,將其IP地址替換為NAT伺服器擁有的合法的公共IP地址,並將替換關系記錄到NAT轉換表中;
從公共互聯網返回的IP數據報,依據其目的的IP地址檢索NAT轉換表,並利用檢索到的內部私有IP地址替換目的IP地址,然後將IP數據報轉發到內部網路。
4.5 ARP協議與RARP協議
地址解析協議 ARP(Address Resolution Protocol):為網卡(網路適配器)的IP地址到對應的硬體地址提供動態映射。可以把網路層32位地址轉化為數據鏈路層MAC48位地址。
ARP 是即插即用的,一個ARP表是自動建立的,不需要系統管理員來配置。
RARP(Reverse Address Resolution Protocol)協議指逆地址解析協議,可以把數據鏈路層MAC48位地址轉化為網路層32位地址。
4.6 ICMP協議詳解
網際控制報文協議(Internet Control Message Protocol),可以報告錯誤信息或者異常情況,ICMP報文封裝在IP數據報當中。
ICMP協議的應用:
Ping應用:網路故障的排查;
Traceroute應用:可以探測IP數據報在網路中走過的路徑。
4.7網路層的路由概述
關於路由演算法的要求:正確的完整的、在計算上應該盡可能是簡單的、可以適應網路中的變化、穩定的公平的。
自治系統AS: 指處於一個管理機構下的網路設備群,AS內部網路自治管理,對外提供一個或多個出入口,其中自治系統內部的路由協議為內部網關協議,如RIP、OSPF等;自治系統外部的路由協議為外部網關協議,如BGP。
靜態路由: 人工配置,難度和復雜度高;
動態路由:
鏈路狀態路由選擇演算法LS:向所有隔壁路由發送信息收斂快;全局式路由選擇演算法,每個路由器計算路由時,需構建整個網路拓撲圖;利用Dijkstra演算法求源端到目的端網路的最短路徑;Dijkstra(迪傑斯特拉)演算法
距離-向量路由選擇演算法DV:向所有隔壁路由發送信息收斂慢、會存在迴路;基礎是Bellman-Ford方程(簡稱B-F方程);
4.8 內部網關路由協議之RIP協議
路由信息協議 RIP(Routing Information Protocol)【應用層】,基於距離-向量的路由選擇演算法,較小的AS(自治系統),適合小型網路;RIP報文,封裝進UDP數據報。
RIP協議特性:
RIP在度量路徑時採用的是跳數(每個路由器維護自身到其他每個路由器的距離記錄);
RIP的費用定義在源路由器和目的子網之間;
RIP被限制的網路直徑不超過15跳;
和隔壁交換所有的信息,30主動一次(廣播)。
4.9 內部網關路由協議之OSPF協議
開放最短路徑優先協議 OSPF(Open Shortest Path First)【網路層】,基於鏈路狀態的路由選擇演算法(即Dijkstra演算法),較大規模的AS ,適合大型網路,直接封裝在IP數據報傳輸。
OSPF協議優點:
安全;
支持多條相同費用路徑;
支持區別化費用度量;
支持單播路由和多播路由;
分層路由。
RIP與OSPF的對比(路由演算法決定其性質):
4.10外部網關路由協議之BGP協議
BGP(Border Gateway Protocol)邊際網關協議【應用層】:是運行在AS之間的一種協議,尋找一條好路由:首次交換全部信息,以後只交換變化的部分,BGP封裝進TCP報文段.
五、傳輸層
第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務是根據通信子網的特性,最佳的利用網路資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱為段或報文。
網路層只是根據網路地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的埠。
有關網路層的重點:
傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
包含的主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶數據報協議);
重要設備:網關。
5.1 UDP協議詳解
UDP(User Datagram Protocol: 用戶數據報協議),是一個非常簡單的協議。
UDP協議的特點:
UDP是無連接協議;
UDP不能保證可靠的交付數據;
UDP是面向報文傳輸的;
UDP沒有擁塞控制;
UDP首部開銷很小。
UDP數據報結構:
首部:8B,四欄位/2B【源埠 | 目的埠 | UDP長度 | 校驗和】 數據欄位:應用數據
5.2 TCP協議詳解
TCP(Transmission Control Protocol: 傳輸控制協議),是計算機網路中非常復雜的一個協議。
TCP協議的功能:
對應用層報文進行分段和重組;
面向應用層實現復用與分解;
實現端到端的流量控制;
擁塞控制;
傳輸層定址;
對收到的報文進行差錯檢測(首部和數據部分都檢錯);
實現進程間的端到端可靠數據傳輸控制。
TCP協議的特點:
TCP是面向連接的協議;
TCP是面向位元組流的協議;
TCP的一個連接有兩端,即點對點通信;
TCP提供可靠的傳輸服務;
TCP協議提供全雙工通信(每條TCP連接只能一對一);
5.2.1 TCP報文段結構:
最大報文段長度:報文段中封裝的應用層數據的最大長度。
TCP首部:
序號欄位:TCP的序號是對每個應用層數據的每個位元組進行編號
確認序號欄位:期望從對方接收數據的位元組序號,即該序號對應的位元組尚未收到。用ack_seq標識;
TCP段的首部長度最短是20B ,最長為60位元組。但是長度必須為4B的整數倍
TCP標記的作用:
5.3 可靠傳輸的基本原理
基本原理:
不可靠傳輸信道在數據傳輸中可能發生的情況:比特差錯、亂序、重傳、丟失
基於不可靠信道實現可靠數據傳輸採取的措施:
差錯檢測:利用編碼實現數據包傳輸過程中的比特差錯檢測 確認:接收方向發送方反饋接收狀態 重傳:發送方重新發送接收方沒有正確接收的數據 序號:確保數據按序提交 計時器:解決數據丟失問題;
停止等待協議:是最簡單的可靠傳輸協議,但是該協議對信道的利用率不高。
連續ARQ(Automatic Repeat reQuest:自動重傳請求)協議:滑動窗口+累計確認,大幅提高了信道的利用率。
5.3.1TCP協議的可靠傳輸
基於連續ARQ協議,在某些情況下,重傳的效率並不高,會重復傳輸部分已經成功接收的位元組。
5.3.2 TCP協議的流量控制
流量控制:讓發送方發送速率不要太快,TCP協議使用滑動窗口實現流量控制。
5.4 TCP協議的擁塞控制
擁塞控制與流量控制的區別:流量控制考慮點對點的通信量的控制,而擁塞控制考慮整個網路,是全局性的考慮。擁塞控制的方法:慢啟動演算法+擁塞避免演算法。
慢開始和擁塞避免:
【慢開始】擁塞窗口從1指數增長;
到達閾值時進入【擁塞避免】,變成+1增長;
【超時】,閾值變為當前cwnd的一半(不能<2);
再從【慢開始】,擁塞窗口從1指數增長。
快重傳和快恢復:
發送方連續收到3個冗餘ACK,執行【快重傳】,不必等計時器超時;
執行【快恢復】,閾值變為當前cwnd的一半(不能<2),並從此新的ssthresh點進入【擁塞避免】。
5.5 TCP連接的三次握手(重要)
TCP三次握手使用指令:
面試常客:為什麼需要三次握手?
第一次握手:客戶發送請求,此時伺服器知道客戶能發;
第二次握手:伺服器發送確認,此時客戶知道伺服器能發能收;
第三次握手:客戶發送確認,此時伺服器知道客戶能收。
建立連接(三次握手):
第一次: 客戶向伺服器發送連接請求段,建立連接請求控制段(SYN=1),表示傳輸的報文段的第一個數據位元組的序列號是x,此序列號代表整個報文段的序號(seq=x);客戶端進入 SYN_SEND (同步發送狀態);
第二次: 伺服器發回確認報文段,同意建立新連接的確認段(SYN=1),確認序號欄位有效(ACK=1),伺服器告訴客戶端報文段序號是y(seq=y),表示伺服器已經收到客戶端序號為x的報文段,准備接受客戶端序列號為x+1的報文段(ack_seq=x+1);伺服器由LISTEN進入SYN_RCVD (同步收到狀態);
第三次: 客戶對伺服器的同一連接進行確認.確認序號欄位有效(ACK=1),客戶此次的報文段的序列號是x+1(seq=x+1),客戶期望接受伺服器序列號為y+1的報文段(ack_seq=y+1);當客戶發送ack時,客戶端進入ESTABLISHED 狀態;當服務收到客戶發送的ack後,也進入ESTABLISHED狀態;第三次握手可攜帶數據;
5.6 TCP連接的四次揮手(重要)
釋放連接(四次揮手)
第一次: 客戶向伺服器發送釋放連接報文段,發送端數據發送完畢,請求釋放連接(FIN=1),傳輸的第一個數據位元組的序號是x(seq=x);客戶端狀態由ESTABLISHED進入FIN_WAIT_1(終止等待1狀態);
第二次: 伺服器向客戶發送確認段,確認字型大小段有效(ACK=1),伺服器傳輸的數據序號是y(seq=y),伺服器期望接收客戶數據序號為x+1(ack_seq=x+1);伺服器狀態由ESTABLISHED進入CLOSE_WAIT(關閉等待);客戶端收到ACK段後,由FIN_WAIT_1進入FIN_WAIT_2;
第三次: 伺服器向客戶發送釋放連接報文段,請求釋放連接(FIN=1),確認字型大小段有效(ACK=1),表示伺服器期望接收客戶數據序號為x+1(ack_seq=x+1);表示自己傳輸的第一個位元組序號是y+1(seq=y+1);伺服器狀態由CLOSE_WAIT 進入 LAST_ACK (最後確認狀態);
第四次: 客戶向伺服器發送確認段,確認字型大小段有效(ACK=1),表示客戶傳輸的數據序號是x+1(seq=x+1),表示客戶期望接收伺服器數據序號為y+1+1(ack_seq=y+1+1);客戶端狀態由FIN_WAIT_2進入TIME_WAIT,等待2MSL時間,進入CLOSED狀態;伺服器在收到最後一次ACK後,由LAST_ACK進入CLOSED;
為什麼需要等待2MSL?
最後一個報文沒有確認;
確保發送方的ACK可以到達接收方;
2MSL時間內沒有收到,則接收方會重發;
確保當前連接的所有報文都已經過期。
六、應用層
為操作系統或網路應用程序提供訪問網路服務的介面。應用層重點:
數據傳輸基本單位為報文;
包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議(Hyper Text Transfer Protocol)。
6.1 DNS詳解
DNS(Domain Name System:域名系統)【C/S,UDP,埠53】:解決IP地址復雜難以記憶的問題,存儲並完成自己所管轄范圍內主機的 域名 到 IP 地址的映射。
域名解析的順序:
【1】瀏覽器緩存,
【2】找本機的hosts文件,
【3】路由緩存,
【4】找DNS伺服器(本地域名、頂級域名、根域名)->迭代解析、遞歸查詢。
IP—>DNS服務—>便於記憶的域名
域名由點、字母和數字組成,分為頂級域(com,cn,net,gov,org)、二級域(,taobao,qq,alibaba)、三級域(www)(12-2-0852)
6.2 DHCP協議詳解
DHCP(Dynamic Configuration Protocol:動態主機設置協議):是一個區域網協議,是應用UDP協議的應用層協議。作用:為臨時接入區域網的用戶自動分配IP地址。
6.3 HTTP協議詳解
文件傳輸協議(FTP):控制連接(埠21):傳輸控制信息(連接、傳輸請求),以7位ASCII碼的格式。整個會話期間一直打開。
HTTP(HyperText Transfer Protocol:超文本傳輸協議)【TCP,埠80】:是可靠的數據傳輸協議,瀏覽器向伺服器發收報文前,先建立TCP連接,HTTP使用TCP連接方式(HTTP自身無連接)。
HTTP請求報文方式:
GET:請求指定的頁面信息,並返回實體主體;
POST:向指定資源提交數據進行處理請求;
DELETE:請求伺服器刪除指定的頁面;
HEAD:請求讀取URL標識的信息的首部,只返回報文頭;
OPETION:請求一些選項的信息;
PUT:在指明的URL下存儲一個文檔。
6.3.1 HTTP工作的結構
6.3.2 HTTPS協議詳解
HTTPS(Secure)是安全的HTTP協議,埠號443。基於HTTP協議,通過SSL或TLS提供加密處理數據、驗證對方身份以及數據完整性保護
原文地址:https://blog.csdn.net/Royalic/article/details/119985591
Ⅸ 計算機網路五層模型在網路層採用什麼樣的差錯檢測方法
答:所謂五層協議的網路體系結構是為便於學習計算機網路原歷孫理而採用的綜合了OSI七層模型和TCP/IP的四層模型而得到的五層模型。各層的主要功能:(1)應用層 應用層確定進程之間通信的性質以滿足用戶的需要。應用層不僅要提供應用進程所需要的信息交換和遠地操作,而且還要作為互相作用的應用進程的用戶代理(user agent),來完成一些為進行語義上有意義的信息交換所必須的功能。(2)運輸層任務是負責主機中兩個進程間的通信。網際網路的運輸層可使用兩種不同的協議。即面向連接的傳輸控制協議TCP和無連接的用戶數據報協議UDP。面向連接的服務能夠提供可靠的交付。無連接服務畢高則不能提供可靠的交付。只是best-effort delivery.(3)網路層網路層負責為分組選擇合適的路由,使源主機運輸層所傳下來的分組能夠交付到目的主機。(4)數據鏈路層數據鏈路層的任務是將在網路層交下來的數據報組裝成幀(frame),在兩個相鄰結點間的鏈路上實現肢數鏈幀的無差錯傳輸。(5)物理層物理層的任務就是透明地傳輸比特流。「透明地傳送比特流」指實際電路傳送後比特流沒有發生變化。物理層要考慮用多大的電壓代表「1」或「0」,以及當發送端發出比特「1」時,接收端如何識別出這是「1」而不是「0」。物理層還要確定連接電纜的插頭應當有多少根腳以及各個腳如何連接。
Ⅹ 什麼是差錯校驗要具體點的
差錯校驗是在數據通信過程中能發現或糾正差錯,把差錯限制在盡可能小的允許范圍內的技術和方法。
1. 信號在物理信道中傳輸時,線路本身電器特性造成的隨機雜訊、信號幅度的衰減、頻率和相位的畸變、電器信號在線路上產生反射造成的迴音效應、相鄰線路間的串擾以及各種外界因素(如大氣中的閃電、開關的跳火、外界強電流磁場的變化、電源的波動等)都會造成信號的失真。在數據通信中,將會使接受端收到的二進制數位和發送端實際發送的二進制數位不一致,從而造成由「0」變成「1」或由「1」變成「0」的差錯
常用的校驗方法有如下:
奇偶校驗碼
奇偶校驗碼是一種通過增加冗餘位使得碼字中「1」的個數為奇數或偶數的編碼方法,它是一種檢錯碼。
1.垂直奇偶校驗的特點及編碼規則
特點:垂直奇偶校驗又稱縱向奇偶校驗,它能檢測出每列中所有奇數個錯,但檢測不出偶數個的錯。因而對差錯的漏檢率接近1/2。
位\數字 0 1 2 3 4 5 6 7 8 9
C1 0 1 0 1 0 1 0 1 0 1
C2 0 0 1 1 0 0 1 1 0 0
C3 0 0 0 0 1 1 1 1 0 0
C4 0 0 0 0 0 0 0 0 1 1
C5 1 1 1 1 1 1 1 1 1 1
C6 1 1 1 1 1 1 1 1 1 1
C7 0 0 0 0 0 0 0 0 0 0
偶 C0 0 1 1 0 1 0 0 1 1 0
奇 1 0 0 1 0 1 1 0 0 1
2.水平奇偶校驗的特點及編碼規則
特點:水平奇偶校驗又稱橫向奇偶校驗,它不但能檢測出各段同一位上的奇數個錯,而且還能檢測出突發長度<=p的所有突發錯誤。其漏檢率要比垂直奇偶校驗方法低,但實現水平奇偶校驗時,一定要使用數據緩沖器。
位\數字 0 1 2 3 4 5 6 7 8 9 偶校驗
C1 0 1 0 1 0 1 0 1 0 1 1
C2 0 0 1 1 0 0 1 1 0 0 0
C3 0 0 0 0 1 1 1 1 0 0 0
C4 0 0 0 0 0 0 0 0 1 1 0
C5 1 1 1 1 1 1 1 1 1 1 1
C6 1 1 1 1 1 1 1 1 1 1 1
C7 0 0 0 0 0 0 0 0 0 0 0
3.水平垂直奇偶校驗的特點及編碼規則
特點:水平垂直奇偶校驗又稱縱橫奇偶校驗。它能檢測出所有3位或3位以下的錯誤、奇數個錯、大部分偶數個錯以及突發長度<=p+1的突發錯。可使誤碼率降至原誤碼率的百分之一到萬分之一。還可以用來糾正部分差錯。有部分偶數個錯不能測出。適用於中、低速傳輸系統和反饋重傳系統。
位\數字 0 1 2 3 4 5 6 7 8 9 校驗碼字
C1 0 1 0 1 0 1 0 1 0 1 1
C2 0 0 1 1 0 0 1 1 0 0 0
C3 0 0 0 0 1 1 1 1 0 0 0
C4 0 0 0 0 0 0 0 0 1 1 0
C5 1 1 1 1 1 1 1 1 1 1 1
C6 1 1 1 1 1 1 1 1 1 1 1
C7 0 0 0 0 0 0 0 0 0 0 0
C8 0 1 1 0 1 0 0 1 1 0 1
2.5.3 循環冗餘碼(CRC)
1.CRC的工作方法
在發送端產生一個循環冗餘碼,附加在信息位後面一起發送到接收端,接收端收到的信息按發送端形成循環冗餘碼同樣的演算法進行校驗,若有錯,需重發。
2.循環冗餘碼的產生與碼字正確性檢驗例子。
例1.已知:信息碼:110011 信息多項式:K(X)=X5+X4+X+1
生成碼:11001 生成多項式:G(X)=X4+X3+1(r=4)
求:循環冗餘碼和碼字。
解:1)(X5+X4+X+1)*X4的積是 X9+X8+X5+X4 對應的碼是1100110000。
2)積/G(X)(按模二演算法)。
由計算結果知冗餘碼是1001,碼字就是1100111001。
1 0 0 0 0 1←Q(X)
G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*Xr
1 1 0 0 1 ,
1 0 0 0 0
1 1 0 0 1
1 0 0 1←R(X)(冗餘碼)
例2.已知:接收碼字:1100111001 多項式:T(X)=X9+X8+X5+X4+X3+1
生成碼 : 11001 生成多項式:G(X)=X4+X3+1(r=4)
求:碼字的正確性。若正確,則指出冗餘碼和信息碼。
解:1)用字碼除以生成碼,余數為0,所以碼字正確。
1 0 0 0 0 1←Q(X)
G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*Xr+R(x)
1 1 0 0 1 ,
1 1 0 0 1
1 1 0 0 1
0←S(X)(余數)
2)因r=4,所以冗餘碼是:11001,信息碼是:110011
3.循環冗餘碼的工作原理
循環冗餘碼CRC在發送端編碼和接收端校驗時,都可以利用事先約定的生成多項式G(X)來得到,K位要發送的信息位可對應於一個(k-1)次多項式K(X),r位冗餘位則對應於一個(r-1)次多項式R(X),由r位冗餘位組成的n=k+r位碼字則對應於一個(n-1)次多項式T(X)=Xr*K(X)+R(X)。
4.循環冗餘校驗碼的特點
1)可檢測出所有奇數位錯;
2)可檢測出所有雙比特的錯;
3)可檢測出所有小於、等於校驗位長度的突發錯。
2.5.4 海明碼
1.海明碼的概念
海明碼是一種可以糾正一位差錯的編碼。它是利用在信息位為k位,增加r位冗餘位,構成一個n=k+r位的碼字,然後用r個監督關系式產生的r個校正因子來區分無錯和在碼字中的n個不同位置的一位錯。它必需滿足以下關系式:
2r>=n+1 或 2r>=k+r+1
海明碼的編碼效率為:
R=k/(k+r)
式中 k為信息位位數
r為增加冗餘位位數
2.海明碼的生成與接收
方法一:
1)海明碼的生成。
例1.已知:信息碼為:"0010"。海明碼的監督關系式為:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
求:海明碼碼字。
解:1)由監督關系式知冗餘碼為a2a1a0。
2)冗餘碼與信息碼合成的海明碼是:"0010a2a1a0"。
設S2=S1=S0=0,由監督關系式得:
a2=a4+a5+a6=1
a1=a3+a5+a6=0
a0=a3+a4+a6=1
因此,海明碼碼字為:"0010101"
2)海明碼的接收。
例2.已知:海明碼的監督關系式為:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
接收碼字為:"0011101"(n=7)
求:發送端的信息碼。
解:1)由海明碼的監督關系式計算得S2S1S0=011。
2)由監督關系式可構造出下面錯碼位置關系表:
S2S1S0 000 001 010 100 011 101 110 111
錯碼位置 無錯 a0 a1 a2 a3 a4 a5 a6
3)由S2S1S0=011查表得知錯碼位置是a3。
4)糾錯--對碼字的a3位取反得正確碼字:"0 0 1 0 1 0 1"
5)把冗餘碼a2a1a0刪除得發送端的信息碼:"0010"
方法二:(不用查表,方便編程)---推薦!!!
1)海明碼的生成(順序生成法)。
例3.已知:信息碼為:" 1 1 0 0 1 1 0 0 " (k=8)
求:海明碼碼字。
解:1)把冗餘碼A、B、C、…,順序插入信息碼中,得海明碼
碼字:" A B 1 C 1 0 0 D 1 1 0 0 "
碼位: 1 2 3 4 5 6 7 8 9 10 11 12
其中A,B,C,D分別插於2k位(k=0,1,2,3)。碼位分別為1,2,4,8。
2)冗餘碼A,B,C,D的線性碼位是:(相當於監督關系式)
A->1,3,5,7,9,11;
B->2,3,6,7,10,11;
C->4,5,6,7,12;(注 5=4+1;6=4+2;7=4+2+1;12=8+4)
D->8,9,10,11,12。
3)把線性碼位的值的偶校驗作為冗餘碼的值(設冗餘碼初值為0):
A=∑(0,1,1,0,1,0)=1
B=∑(0,1,0,0,1,0)=0
C=∑(0,1,0,0,0) =1
D=∑(0,1,1,0,0) =0
4)海明碼為:"1 0 1 1 1 0 0 0 1 1 0 0"
2)海明碼的接收。
例4.已知:接收的碼字為:"1 0 0 1 1 0 0 0 1 1 0 0"(k=8)
求:發送端的信息碼。
解:1)設錯誤累加器(err)初值=0
2)求出冗餘碼的偶校驗和,並按碼位累加到err中:
A=∑(1,0,1,0,1,0)=1 err=err+20=1
B=∑(0,0,0,0,1,0)=1 err=err+21=3
C=∑(1,1,0,0,0) =0 err=err+0 =3
D=∑(0,1,1,0,0) =0 err=err+0 =3
由err≠0可知接收碼字有錯,
3)碼字的錯誤位置就是錯誤累加器(err)的值3。
4)糾錯--對碼字的第3位值取反得正確碼字:
"1 0 1 1 1 0 0 0 1 1 0 0"
5)把位於2k位的冗餘碼刪除得信息碼:"1 1 0 0 1 1 0 0"