1. 程式人生 > >資料鏈路層差錯檢測:CRC(迴圈冗餘檢驗)

資料鏈路層差錯檢測:CRC(迴圈冗餘檢驗)

1、迴圈冗餘檢驗(CRC):

在傳送端,先把資料劃分為祖,假定每組K個位元。現假定待傳送的資料M = 101001(k=6)。CRC運算就是在資料M後面新增提供差錯檢測的n位冗餘碼,然後構成一個幀傳送出去,一共傳送(k+n )位。在所要傳送的資料後新增冗餘碼,顯然增大了資料傳輸的開銷,但卻可以進行差錯檢測。當傳輸可能出現差錯時,付出的代價往往是很值得的。

2、n位冗餘碼計算:

用二進位制的模2運算進行2^n乘M的運算,這相當於在M後面新增n個0 ,得到的(k+n )位的數除於收發雙方實現商定的長度為(n + 1)位的除數P,得出的商是Q而餘數是R(n位,比P少一位)。

3、除數P:

用生成多項式P(X)表示上面的除數(假定n+1位),P(X) = X^3 + X^2 + 1則P = 1101。

即P(X) = X^n+ X^(n-2) + ….+ X^2 +1 , P = 101…101。

4、檢測:

在接收端把收到的資料以幀為單位進行CRC檢測:把收到的每一個幀除於同樣的除數(模2運算),然後檢查得到的餘數R,如果傳輸過程無差錯,經過CRC檢測得到的餘數肯定是0 。

1)、R = 0,則判定這個幀沒有差錯,就接受。

2)、R!= 0,則判定這個幀有差錯,就丟棄。

5、例子:

M = 101001 (即 k = 6)。假定除數生成多項式P(X) = X^3 + X^2 + 1;則除數P 為1101 (即 n = 3)。經模2 除法運算的結果餘數R = 001 ,這個餘數就作為冗餘碼拼接在M的後面傳送出去。這種為了進行差錯檢測新增的冗餘碼常稱為幀檢驗序列FCS。因此加上冗餘碼之後傳送的幀是101001001(即2^n M + FCS)。


在資料鏈路層,傳送端幀檢驗序列FCS的生成和接收端的CRC 檢驗都是用硬體完成的,處理很迅速,因此並不會延誤資料的傳輸。最後強調,在資料鏈路層僅僅使用CRC差錯檢測技術,則只能做到對幀的無差錯接受,但還不是可靠傳輸。

相關推薦

資料鏈差錯檢測CRC迴圈檢驗

1、迴圈冗餘檢驗(CRC): 在傳送端,先把資料劃分為祖,假定每組K個位元。現假定待傳送的資料M = 101001(k=6)。CRC運算就是在資料M後面新增提供差錯檢測的n位冗餘碼,然後構成一個幀傳送出去,一共傳送(k+n )位。在所要傳送的資料後新增冗餘碼,顯然增大了資

CRC迴圈校驗演算法入門

寫給嵌入式程式設計師的迴圈冗餘校驗(CRC)演算法入門引導前言CRC校驗(迴圈冗餘校驗)是資料通訊中最常採用的校驗方式。在嵌入式軟體開發中,經常要用到CRC 演算法對各種資料進行校驗。因此,掌握基本的CRC演算法應是嵌入式程式設計師的基本技能。可是,我認識的嵌入式程式設計師中

資料鏈迴圈檢驗CRC

在傳送端,先把資料劃分為組,假定每組 k 個位元。現假定傳送的資料 M=101001       ( k=6 )。CRC運算就是在資料 M 的後面新增供差錯檢測用的 n 位冗餘碼,然後構成一個幀傳送出去

迴圈檢驗演算法CRC與幀檢驗序列(FCS)

在資料鏈路層要解決資料傳輸的三個問題: 封裝成幀 透明傳輸 差錯檢驗 這裡,重點討論一下差錯檢測裡面最常用的一種檢測演算法,迴圈冗餘演算法(CRC)以及通過這個演算法生成的幀檢驗序列(FCS) 首先,我們知道,資料在傳輸過程中可能會因為外界的電磁干擾從

crc迴圈檢驗

CRC(Cyclic Redundancy Check):迴圈冗餘檢驗。在鏈路層被廣泛使用的檢錯技術。 CRC原理: 1、傳送端 1.1、在傳送端先將資料分組,每組k個數據。假定要傳送的資料是M。 1.2、在資料M後面新增供差錯檢測的n位冗餘碼,然後構成一幀傳送出去,一共傳送(k+n)位。 雖然新增n位冗餘碼

C++迴圈檢驗CRC

首先弄long int 大小CRC,弄了發現數據太大。接著弄string crc string crc #include<iostream> #include<string> using namespace std; string _4bit(ch

迴圈檢驗(CRC)求幀檢驗序列(FCS)

#include <stdio.h> #include <stdint.h> /** * 迴圈冗餘檢驗(CRC),求幀檢驗序列(FCS) * 引數:M是待傳送的資料 * p是除數 * 返回:幀檢驗序列(FCS) * 說

【計算機網路實驗】迴圈檢驗CRC

CRC的基本思想:將二進位制位串看成係數為0或1的多項式。使用CRC編碼時,傳送方和接收方必須事先商定一個生成多項式G(x),生成多項式的最高位和最低位的係數必須是1。假設一個幀有m位,對應的多項式為M(x),為了計算它的校驗和,該幀必須比生成多項式長。CRC的原理:在幀的尾部追加一個校驗和,使得追加之後的幀

11、資料鏈的設計問題與差錯檢測糾正資料鏈

1、資料鏈路層的設計問題 引言 資料鏈路層主要完成的功能包括:(1)向網路層提供一個定義良好的介面(2)處理傳輸錯誤(3)調節資料流,確保慢速接收方不會被快速傳送方淹沒。 資料鏈路層將從網路層獲取的資料包封裝成幀以便傳輸。每個幀包含一個幀頭、一個有效載荷(存放資料包)以

資料鏈一、二——差錯控制

一、前言 資料鏈路層負責通過一條鏈路從一個結點向另一個物理鏈路直接相連的相鄰結點傳送資料報。 資料鏈路層在物理層提供服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的資料可靠地傳輸到相鄰節點的目標機網路層。其主要作用是加強物理層傳輸原始位元流的功能,將物理層提供的可能出錯的物

《TCP/IP詳解卷一協議》資料鏈

引言         在TCP/IP協議族中,鏈路層主要有三個目的: 為IP模組傳送和接收IP資料報。為ARP模組傳送ARP請求和接收ARP應答。為RARP傳送RARP請求和接收RARP應答。  

資料鏈CRC校驗

資料鏈路層的作用是是網路層接受的資料包可以可靠的在物理層的位元通道上傳輸,主要校驗處理傳輸錯誤。 資料鏈路層資料鏈路除了物理鏈路以外還包括實現資料傳輸的協議,這些協議由硬體和軟體來完成。介面卡(網絡卡) 就可以實現協議的硬體和軟體。 資料鏈路中傳輸的單位是幀,幀有首部(SOH)

【計算機網路】資料鏈資料幀和物理定址

資料鏈路層是物理層的上層,物理層是把電腦連線起來的物理手段,它主要規定了網路的一些電氣屬性,其作用是負責傳送0和1的電訊號。資料鏈路層位於物理層的上層,簡單的闡述它的作用就是確定0和1的分組方式。 下

【計算機網路】學習筆記,第三篇資料鏈謝希仁版

![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/01513090610b480a8fc70f871ceaf3dc~tplv-k3u1fbpfcp-zoom-1.image) **說明:** - 文章主要針對科班上課做的簡單筆記,以及後面針對一些面試涉及內容的

資料鏈小小結未完待續...

資料鏈路層:把實現相關規程的硬體和軟體加到鏈路上,就構成了資料鏈路。1.功能:1)鏈路管理 2)訊息的傳輸 3)流量與差錯控制 4)異常情況處理2.流量控制協議:停-等流量控制、滑動視窗流量控制1)停-等流量控制:原理:先檢車幀是否正確,再向傳送節點回送一確定幀ACK。特殊情況處理:超時計時器、給幀編序號。缺

【計算機網路】第五章 資料鏈1

一.資料鏈路層服務 1. 概述 (1)術語   ·主機和路由器:結點   ·連線相鄰結點的通訊通道:鏈路(有線、無線、區域網)   ·鏈路層資料分組:幀 (2)資料鏈路層主要任務:通過一條鏈路從一個結點向另一個物理鏈路直接相連的相鄰結點傳送資料報 2. 鏈路層服務 (1)組幀   ·封裝資料

【計算機網路】第五章 資料鏈2

三.多路訪問控制(MAC)協議 1. 兩類鏈路 (1)點對點鏈路:撥號接入的PPP、乙太網交換機與主機間的點對點鏈路 (2)廣播鏈路(共享介質):早期的匯流排乙太網、HFC的上行鏈路、802.11無線區域網 2. 基本概念 (1)單一共享廣播通道 (2)兩個或兩個以上結點同時傳輸,則發生衝突;結點

TCP/IP學習筆記2-資料鏈

資料鏈路層有三個目的: 為IP模組傳送和接收IP資料報。 為ARP模組傳送ARP請求和接收ARP應答。 為RARP傳送RARP請求和接收RARP應答 ip大家都聽說過。至於ARP和RARP,ARP叫做地址解析協議,是用IP地址換MAC地址的一種協議,而RARP則叫做逆地址解析

【計算機網路】第五章 資料鏈3

四.ARP協議 1. MAC地址(LAN地址、實體地址、乙太網地址) (1)作用:用於區域網內標識一個幀從哪個介面發出,到達哪個物理相連的其他介面 (2)固化在網絡卡的ROM中(唯一的),有時可以軟體設定 (3)表示:十六進位制、六個位元組,如1A-2F-BB-76-09-AD (4)管理:IEEE

計算機網路2物理/資料鏈/網路

物理層 物理層協議的主要任務就是確定與傳輸媒體的介面有關的一些特性: 機械特性:指明介面所用接線器的形狀和尺寸、引腳數目和排列、固定和鎖定裝置等 電氣特性:指明在介面電纜的各條線上出現的電壓的範圍 功能特性:指明某條線上出現的某一電平的電壓表示何種意義 過程