CRC vs Tổng kiểm tra
Bất cứ lúc nào dữ liệu được lưu trữ trong một máy tính với mục đích truyền nó, cần phải đảm bảo rằng dữ liệu không bị hỏng. Nếu dữ liệu bị hỏng được gửi, sẽ có dữ liệu được truyền không chính xác và nó có thể không hoạt động như mong muốn. Do đó, cần có một hệ thống phát hiện lỗi để kiểm tra xem tất cả dữ liệu đã nhập có ổn không và không bị hỏng trước khi xảy ra bất kỳ mã hóa hoặc truyền nào. Có hai phương pháp chính để kiểm tra dữ liệu.
Checksum được cho là phương thức lâu đời nhất đã được sử dụng để xác nhận tất cả dữ liệu trước khi được gửi. Tổng kiểm tra cũng giúp xác thực dữ liệu, vì dữ liệu thô và dữ liệu đã nhập phải phù hợp. Nếu một sự bất thường được chú ý, được gọi là tổng kiểm tra không hợp lệ, có một gợi ý rằng có thể đã có sự thỏa hiệp dữ liệu trong một phương thức nhất định.
Kiểm tra dự phòng theo chu kỳ, hay CRC như thường được nhắc đến, là một khái niệm cũng được sử dụng trong việc xác thực dữ liệu. Nguyên tắc được CRC sử dụng tương tự như tổng kiểm tra, nhưng thay vì sử dụng hệ thống 8 byte được sử dụng bởi Checksum để kiểm tra tính nhất quán của dữ liệu, phân chia đa thức được sử dụng để xác định CRC. CRC thường có độ dài 16 hoặc 32 bit. Nếu thiếu một byte đơn, sự không nhất quán được gắn cờ trong dữ liệu vì nó không thêm vào bản gốc.
Sự khác biệt
Một trong những khác biệt được lưu ý giữa 2 là CRC sử dụng công thức toán học dựa trên mã hóa 16 hoặc 32 bit, trái ngược với Checksum dựa trên 8 byte để kiểm tra dị thường dữ liệu. CRC dựa trên cách tiếp cận băm trong khi Checksum lấy các giá trị của nó từ việc bổ sung tất cả dữ liệu bị cắt có thể có 8 hoặc 16 bit. Do đó, CRC có khả năng nhận biết lỗi dữ liệu cao hơn khi thiếu một bit trong hệ thống băm làm thay đổi kết quả chung.
Mặt khác, tổng kiểm tra đòi hỏi ít minh bạch hơn và sẽ cung cấp khả năng phát hiện lỗi lớn vì nó sử dụng thêm byte với biến. Do đó, có thể nói rằng mục đích chính của CRC là bắt được một loạt các lỗi có thể xảy ra trong quá trình truyền dữ liệu ở chế độ analog. Mặt khác, tổng kiểm tra có thể được thiết kế cho mục đích duy nhất là ghi nhận các lỗi thông thường có thể xảy ra trong quá trình thực hiện phần mềm.
CRC là một cải tiến so với tổng kiểm tra. Như đã lưu ý trước đó, tổng kiểm tra là một hình thức điện toán truyền thống và CRC chỉ là một sự tiến bộ đơn thuần của số học làm tăng độ phức tạp của tính toán. Về bản chất, điều này làm tăng các mẫu có sẵn và do đó có thể phát hiện ra nhiều lỗi hơn bằng phương pháp. Tổng kiểm tra đã được hiển thị để phát hiện chủ yếu các lỗi đơn bit. Tuy nhiên, CRC có thể phát hiện bất kỳ lỗi hai bit nào đang được quan sát trong tính toán dữ liệu. Để hiểu sự khác biệt giữa hai phương thức xác thực dữ liệu, kiến thức được thu thập về lý do tại sao hai phương thức này được sử dụng song song trong giao thức Internet, vì nó làm giảm lỗ hổng của các giao thức Internet xảy ra.
Tóm lược :
- CRC kỹ lưỡng hơn so với Checksum trong việc kiểm tra lỗi và báo cáo.
- Checksum là chương trình cũ hơn của hai chương trình.
- CRC có một tính toán phức tạp hơn so với tổng kiểm tra.
- Tổng kiểm tra chủ yếu phát hiện các thay đổi một bit trong dữ liệu trong khi CRC có thể kiểm tra và phát hiện các lỗi hai chữ số.
- CRC có thể phát hiện nhiều lỗi hơn tổng kiểm tra do chức năng phức tạp hơn của nó.
- Một tổng kiểm tra chủ yếu được sử dụng trong xác nhận dữ liệu khi thực hiện phần mềm.
- CRC chủ yếu được sử dụng để đánh giá dữ liệu trong truyền dữ liệu tương tự.