Skip to Content

什麼是網路中的 CRC(Cyclic Redundancy Check)?

什麼是 CRC(Cyclic Redundancy Check)?

CRC(Cyclic Redundancy Check)是一種數學技術,它透過在原始資訊中附加一個稱為總和檢查碼的特殊代碼,來偵測傳輸資料中的錯誤。此總和檢查碼會在接收端重新計算,以驗證資料的完整性。CRC 在識別和糾正網路中潛在的資料損壞方面扮演了重要的角色,而可靠的資料傳輸至關重要。它也用於資料儲存系統,包括硬碟和快閃記憶體,以驗證儲存資料的準確性。CRC 對 Modbus、控制器區域網路(CAN)等協定至關重要,而其他許多協定對可靠的資料傳輸至關重要。

CRC 如何運作?

CRC 是以多項式方式處理要傳輸的資料為基礎。寄件人和收件人同意固定式除數多項式,通常稱為發電機多項式。資料以總和檢查碼增強,總和檢查碼是原始資料由產生器多項式進行多項式分割的其餘部分。在傳送者結束時,會計算 CRC 總和檢查碼,並在傳輸前附加至資料。在接收器端,接收到的資料與總和檢查碼會除以相同的產生器多項式。如果剩餘部分為零,則假設資料沒有錯誤;否則會偵測到錯誤。

使用 CRC 多項式和循環式代碼可能聽起來很複雜,但概念比看似簡單。這些多項式基本上是數學上的表示,有助於偵測錯誤。在 CRC 的背景下,循環代碼是指任何有效字碼的循環偏移導致另一個有效字碼的代碼。

為了更加了解,請考慮使用基本總和檢查碼進行錯誤更正的簡化範例。想像一下發送一個二進位數字,並添加一個代表原始位元的同位或總和的額外位元。如果收到的資料與預期的同位不符,就會偵測到錯誤。

CRC 是這個流程更複雜的版本。CRC 多項式的計算方式並非單純的加總,而是更複雜的計算方式,可帶來更大的備援能力,並強化錯誤偵測能力。這種增加的複雜性對於處理更細微的錯誤,以及提供更健全的錯誤檢查機制至關重要。

體驗試用 FlashArray//X

體驗 Pure Storage 如何在自助服務環境中大幅簡化區塊和檔案操作。

立即試用

為何使用 CRC?

CRC 在偵測可能改變訊息中位元順序的錯誤時特別有效。這在維持精確位元順序對於正確解讀資料至關重要的情況下非常重要。

CRC 的關鍵優勢之一是其簡易的實作,尤其是在二進位硬體中。該演算法涉及簡單易懂的位元操作,因此能夠高效地檢查硬體錯誤。

CRC 不僅易於實施,也易於進行數學分析。這讓需要了解並優化系統錯誤檢查功能的設計師和工程師成為了有吸引力的選擇。CRC 的數學特性有助於更深入地了解效能特性,並協助特定應用程式的參數微調。

在真實世界的通訊頻道中,噪音是不可避免的良伴。CRC 在偵測資料傳輸過程中因雜訊引起的常見錯誤方面尤其強大。其循環性質和對多項式分割的依賴,使它能夠有效地識別由訊號中的隨機波動或干擾引起的錯誤。

選擇正確的多項式

CRC 的核心是生成和驗證總和檢查碼時使用的多項式。多項式的選擇大幅影響了 CRC 的錯誤偵測能力。多項式在多項式分割中扮演除數的角色,決定總和檢查碼的結構。

選擇正確的多項式需要考慮幾個因素。例如,多項式的等級會影響總和檢查碼的長度,因此會影響錯誤偵測能力。平衡對較長總和檢查碼(增強錯誤偵測)與計算成本的渴望,是關鍵考量。

其他因素包括多項式的數學特性,例如其不可減損性。不可減少的多項式,可確保 CRC 演算法能偵測到各種錯誤。此外,某些應用程式可能需要特定的屬性,例如突發錯誤偵測,這可能會受到多項式選擇的影響。

CRC 計算中常使用數個標準多項式。多項式的選擇取決於應用的具體需求。例如,CRC-32 多項式(0x04C11DB7)經常用於網路通訊協定,而 CRC-16 多項式(0x8005)則用於儲存系統中的應用程式。CRC-CCITT 多項式(0x1021)以其在電信業的使用而聞名。

每個多項式都具有獨特的特性,而選擇適當的多項式,需要仔細考量應用程式的需求,以及錯誤偵測能力與運算效率之間的預期權衡。

優化 CRC 效能

CRC 是強大的錯誤檢查演算法,但有幾種方法可以增強效能,包括:

  • 表格式預先計算,預先計算 CRC 值並儲存在表格中,以供常用輸入。如此可降低重複計算的需求,大幅改善整體效能。
  • 並行化 ,利用平行處理將 CRC 計算分佈在多個核心或處理器中。這可以大幅減少 CRC 檢查所需的時間,尤其是在大型資料集的情況下。
  • XOR 和變遷等位元運算通常比傳統算術運算更有效率。

為了降低操作的複雜性,選擇正確的 CRC 多項式非常重要。部分多項式能提供更佳的錯誤偵測能力,同時減少運算開銷。您也可以根據系統的架構量身訂做 CRC 字數,以提升效能。

在優化 CRC 效能時,有一些需要考慮的權衡,包括:

1. 記憶體使用量與計算

預先計算的表格可以減少運算,但可以增加記憶體使用量。根據系統限制,衡量記憶體使用率與運算效率之間的權衡。

2. 複雜性與速度

更複雜的 CRC 多項式可能提供更好的錯誤偵測能力,但運算成本可能相當昂貴。在複雜性和速度之間取得平衡,使優化工作與特定使用案例保持一致。

結論

CRC 在現實世界應用中廣泛使用,包括網路協定、儲存系統和協定。CRC 在資料傳輸期間偵測錯誤表現優異,其識別突發和隨機錯誤的能力可確保接收的資料與傳輸的資料相符。CRC 可保護儲存系統,防止資料損毀。CRC 透過及早發現錯誤,有助於維持儲存資訊的完整性和彈性,這對資料的長期可靠性至關重要。

雖然 CRC 對資料傳送和儲存的可靠性充滿信心,但它確實伴隨著計算開銷,因此請務必評估錯誤檢查的好處與 CRC 計算所花費的資源之間的權衡。

此外,請記住,CRC 在現代化資料保護的全貌中僅扮演一個角色。Pure Storage 的全方位現代化資料保護解決方案,可讓您在最重要的時刻還原資料、保護您的企業免受攻擊、在不中斷的情況下運行業務、掌控您的環境,並保證儲存環境乾淨。

08/2024
Maximizing SAP HANA Performance and Reliability with Pure Storage
A reference architecture for SAP bundled application suites on SAP HANA with Pure Storage.
參考架構
27 頁面
聯繫我們
問題或建議

如對Pure的產品或認證,有任何的疑問或建議,歡迎與我們聯繫!

預約試用

預約現場示範,親眼看看 Pure 如何幫助您將資料轉化為強大的成果。 

聯絡我們:886-2-3725-7989

媒體:pr@purestorage.com

 

Pure Storage總部

34F, Taipei Nanshan Plaza,

No. 100, Songren Road,

Xinyi District,

Taipei City 110016

Taiwan (R.O.C.)

800-379-7873 (一般資訊)

info@purestorage.com

關閉
您的瀏覽器已不受支援!

較舊版的瀏覽器通常存在安全風險。為讓您使用我們網站時得到最佳體驗,請更新為這些最新瀏覽器其中一個。