計算機網路 差錯檢測和糾正技術

2021-10-05 18:22:49 字數 2930 閱讀 5883

比特級差錯檢測和糾正(bit-level error detection and correction)。

即對從乙個節傳送到另乙個物理上連線的領近節點的鏈路層幀中的位元損傷進行檢測和糾正。

在發生節點,為了保護位元免受差錯,使用檢測和糾正位元(error-detection and-correction,edc),來增強資料d。

如圖6-3,鏈路級幀中的d和edc,都將被發生到接受節點。但是可能由於位元翻轉,d『和edc』和初始的d和edc不同。

差錯檢測和糾正技術使接受方有時但並非總是檢測出已經出現的位元差錯,即使採用差錯檢測位元,也還是可能有未檢出位元差錯(undetected bit error);

這主要取決於檢測技術的複雜度,一般越複雜的技術可以大概率保證檢測的準確率,但是又導致了開銷的增加。

最簡單的方式之一:採用單個奇偶校驗位(parity bit)

假設要傳送的資訊d有d位元。

在偶校驗方案中,傳送方只要包含乙個附加的位元,選擇它的值,使得這d+1位元(初始資訊加上乙個校驗位元)中1的總數是偶數。

對於奇檢驗方案,選擇檢驗位元使有奇數個1。

接受方只需要數一下接受的d+1位元中1的個數即可。

如果在採用偶校驗方案中發現了奇數個值為1的位元,接受方便可以知道至少出現了乙個位元差錯。但是沒有出現差錯也不意味著沒有差錯。當正好出現偶數個差錯的時候便無法檢驗出。

於是有了奇偶校驗的二維奇偶校驗(two-dimensional parity)

d中的d位元被劃分為i行j列。產生的i+j+1奇偶校驗位元構成了鏈路層幀的差錯檢測位元。

在這個方案中,包含位元值改變的列和行的校驗值都將出現差錯,因此接收方不僅可以檢測到出現了單個位元差錯的事實,而且還可以利用存在奇偶校驗差錯的列和行的索引來實現識別發生差錯的位元並糾正它。

如圖6-5所示。

接受方檢測和糾正差錯的能力被稱為前向糾錯(forward error correction,fec)。fec技術很有價值,它是在接受方進行的,因此它可以減少所需的傳送方重發的次數。它允許在接收方立即糾正差錯。fec避免了不得不等待的往返時延,這對實時網路應用可能很重要。

在檢驗和技術中,d位元資料被作為乙個k位元整數的序列處理。

乙個簡單檢驗和方法就是將這k位元整數加起來,並且將得到的和作為差錯檢測位元。

網際網路檢驗和(internet checksum)就是基於這種方法,即資料的位元組作為16bit的整數對待並求和,這個和的反碼形成了攜帶在報文端首部的網際網路檢驗和。

在tcp和udp協議中,對所有的字段(包括首部和資料字段)都計算網際網路檢驗和。在其他協議,如xtp,對首部計算乙個檢驗和,對整個分&組計算另乙個檢驗和。

相比crc,需要相對小的開銷,但是提供的差錯保護相對弱。

現如今的計算機網路中廣泛應用的差錯檢測技術基於迴圈冗餘檢測(cyclic redundancy check,crc)編碼。crc編碼也稱為多項式編碼,因為該編碼能夠將要發生的位元串看作為係數是0和1的乙個多項式,對位元的操作被解釋為多項式運算。

考慮乙個d位元的資料d,發生節點要將它發生給接受節點。傳送方和接受方必須首先協商乙個r+1位元模式,稱為生成多項式(generator),將其表示為g。要求g的最高有效位的位元(最左邊)為1。

對於乙個的資料端d,傳送方要選擇r個附加位元r,並將它們附加到d上,使得到的d+r位元模式(被解釋為乙個二進位制數)用模2運算恰好能夠被g整除(即沒有餘數).

用crc進行差錯檢測的過程:接受方用g去除接受到的d+r位元。如果餘數為非零,則知道出現了差錯。否則將接受。

所有crc計算採用模2算術來做。在加法中不進製,在減法中不借位。意味著加法和減法是相同的。這兩種操作等價於按位異或(xor)。

//xor

1011 xor 0101 = 1110

1001 xor 1101 = 0100

//+1011 + 0101 = 1110

1001 + 1101 = 0100

//-1011 - 0101 = 1110

1001 - 1101 = 0100

乘法和除法和二進位制算術一樣,乘以2^k,使用左移k位。

這樣,給定d和r ,d*2r xor r = ng

我們要選擇r使得g能夠出意d * 2r xor r 而沒有餘數。

對等式兩邊都用r異或,得到:

d * 2^r = ng xor r

我們用g來除d*2^r,得到的餘數值剛好是r。

例如當d = 101110,d = 6,g = 1001 和 r = 3 時。傳輸的9個位元是101110011。

計算過程如下。

d後面附加加的3(r)個0,是乘以 23 (2r) , 即左移3(r)位補的0。

計算機網路 交換技術

機的連線方式 兩部 機只需要用一對電線就能夠互相連線起來。5 部 機兩兩相連,需 10 對電線。n 部 機兩兩相連,需 n n 1 2對電線。當 機的數量很大時,這種連線方法需要的電線對的數量與 機數的平方成正比。當 機的數量增多時,就要使用交換機來完成全網的交換任務。在這裡,交換 switchin...

計算機網路技術

網路基礎知識 網路按全工程師入門需要掌握的知識 1.數制的概念及轉換 十進位制人們日常生活中最熟悉的進製計數制。在十進位制中,數用0,1,2,3,4,5,6,7,8,9這十個符號來描述。計數規則是逢十進一。二進位制在計算機系統中採用的進製計數制。在二進位制中,數用0和1兩個符號來描述。計數規則是逢二...

計算機網路9 計算機網路效能

1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...