Apakah Checksum atau CRC lebih baik untuk memeriksa data ditulis ke USB flash drive ?
Posting ini adalah untuk memberikan pengguna umum gagasan tentang apa metode verifikasi yang lebih baik untuk menulis data ke flash drive . Ada link referensi di bagian bawah posting ini yang menyelam lebih dalam ke dalam dua metode verifikasi jika gambaran sederhana ini tidak cukup .
Jawaban singkatnya adalah Siklus Redundancy Check atau CRC adalah metode terbaik untuk pengecekan data ditulis ke USB flash drive .
Banyak yang percaya checksum adalah metode terbaik untuk memverifikasi data yang ditulis ke flash drive ( paling populer adalah MD5 ) . Saya percaya ini disukai karena lebih mudah untuk memahami bagaimana verifikasi bekerja , dan juga lebih mudah untuk menerapkan . Namun, ada kelemahan dalam verifikasi checksum dan karena itu tidak cocok untuk verifikasi data ditulis ke flash drive .
Apa perbedaan antara Checksum dan verifikasi CRC ? Metode checksum menggunakan tambahan dalam perhitungan matematika untuk memeriksa apakah semua data ditulis dengan benar . CRC menggunakan pembagian panjang dalam perhitungan matematika untuk memeriksa apakah semua data ditulis dengan benar . Perlu dicatat saya berbicara tentang pembagian panjang biner , bukan halaman sekolah pembagian panjang Anda begitu sayang ingat .
Metode Checksum akan menghitung total bit dalam paket data dan termasuk bahwa jumlah total checksum saat data dikirim melalui saluran komunikasi . Penerima kemudian akan melihat paket , membaca nilai checksum dan kemudian melakukan perhitungan yang sama untuk memastikan semuanya menambahkan sampai . Jika perhitungan pada akhir penerima sesuai nilai yang dikirimkan dalam paket , semua yang baik . Masalahnya adalah probabilitas tinggi bahwa di suatu tempat antara pengirim dan penerima bit data yang berubah , rusak atau bertukar namun masih mengubah nilai checksum yang benar setelah perhitungan di ujung penerima .
Dalam hal sangat sederhana misalkan Anda memiliki bin jeruk dan apel merah pergi dari Los Angeles ke New York . Semua apel dan jeruk di mana dihitung pertama dan ditulis pada manifest , kemudian dituangkan ke dalam tempat sampah dan dikirim off . Sepanjang jalan beberapa apel merah dimana diganti dengan apel hijau . Ketika bin tiba di New York , jumlah apel dan jeruk tetap sama setelah penghitungan akhir , namun penerima tidak pernah tahu itu seharusnya hanya apel merah .
Siklus redundansi Memeriksa adalah sebagai lurus ke depan sebagai tambahan tetapi menggunakan pembagian panjang . Keuntungan dengan pendekatan ini adalah mencari di seluruh paket untuk memverifikasi apakah semua informasi tiba dengan benar , bukan tergantung pada satu lump sum sebagai nomor verifikasi . Seperti dengan pembagian panjang tradisional , pembagian biner bekerja melalui nomor dividen dari jumlah pembagi .
Karena metode CRC adalah sedikit lebih rumit untuk menjelaskan , biarkan aku sentuhan pertama pada apel dan jeruk contoh ( sebelum Anda tertidur atau klik dari halaman ) . Katakanlah bin sama apel dan jeruk akan dari Los Angeles ke New York , tapi kali ini apel dan jeruk ditempatkan pada nampan yang mirip dengan apa yang Anda pikirkan untuk karton telur . Nampan ditumpuk bagus dan rapi dan manifest mengatakan berapa banyak apel , warna apel, jeruk dan lapisan nampan untuk semua buah . Ketika bin apel dan jeruk diterima di New York penerima dapat dengan mudah memeriksa jumlah lapisan di tempat sampah dan memverifikasi jumlah buah seperti yang dijelaskan dalam manifest .
Siklus Redundancy Check perhitungan perhitungan pembagian panjang untuk paket informasi tetapi hanya memiliki sedikit sedikit tweaking . Untuk memulai perhitungan jumlah pembagi diatur atau ” diberikan . ” Selanjutnya, Anda menambahkan Zero yang satu kurang dari jumlah pembagi . Jadi misalnya jika jumlah pembagi adalah 5 digit , maka Anda akan menambahkan empat nol di akhir paket . Perhitungan kemudian akan mulai untuk pembagian panjang biner . Setelah pembagian panjang biner dilakukan akan ada nomor sisa . Di sinilah ” siklus ” bagian masuk Sekarang jika perhitungan swap nomor sisanya dengan empat angka nol yang disebutkan di atas ( saat perhitungan pertama dimulai ) , maka ketika pembagian panjang berlari lagi , tidak ada sisa ( sisanya adalah nol ) . Dengan menggunakan metode ini berarti semua bit dalam sebuah paket diperiksa selama proses pembagian panjang biner setelah paket data yang diterima .
Mungkin cara termudah untuk memahami hal ini akan dengan bantuan visual . Mempelajari dua grafik di bawah ini , maka akan masuk akal .
Ketika datang untuk alasan untuk metode verifikasi yang akan digunakan untuk transmisi data itu biasanya dilakukan karena “noise ” pada jalur transmisi , bukan karena seorang hacker atau manipulasi luar mencoba untuk men-tweak data . Kebisingan pada saluran transmisi dapat ditemui karena berbagai alasan , seperti desain miskin bagian listrik ( mengatakan printed circuit board dari flash drive ) atau tidak ground dengan benar ( paling flash drive menggunakan dua lapisan PCB tetapi spesifikasi USB adalah empat lapisan CPB sebagai minimum ) atau bahan berkualitas rendah yang digunakan dalam perangkat. Dengan menggunakan metode verifikasi diandalkan , penerima dapat , lebih andal , menentukan apakah semua data yang dikirim dan diterima dengan benar .
Sumber : Terima kasih insinyur Nexcopy Inc untuk mengambil topik teknis dan menyajikan dalam cara yang non – teknis .
Referensi :
Divisi Panjang Binary
https://courses.cs.vt.edu/ ~ cs1104/BuildingBlocks/divide.030.html
CRC definisi melalui Wikipedia
https://en.wikipedia.org/wiki/Cyclic_redundancy_check
Lebih definisi teknis + kode untuk CRC di C dan C + +
https://www.barrgroup.com/Embedded-Systems/How-To/CRC-Math-TheoryContinue Reading