Pertemuan 6

PERTEMUAN 6 

ERROR DETECTION

 

 

 

A.  TUJUAN PEMBELAJARAN

 

Pada pertemuan ini akan dijelaskan mengenai error detection. Setelah mempelajari materi ini mahasiswa diharapkan mampu untuk:

1.     Memahami fungsi error detection

2.     Menjelaskan macam-macam metode error detection

 

 

B.  URAIAN MATERI

1.      Memahami Fungsi Error Detection

 

Kesalahan bit terkadang dimasukkan ke dalam frame. Ini terjadi, misalnya, karena gangguan listrik atau gangguan termal. Meskipun kesalahan jarang terjadi, terutama pada tautan optik, beberapa mekanisme diperlukan untuk mendeteksi kesalahan tersebut sehingga tindakan korektif dapat dilakukan. Jika tidak, pengguna akhir akan bertanya - tanya mengapa program C yang berhasil dikompilasi beberapa saat yang lalu sekarang tiba - tiba memiliki kesalahan sintaks di dalamnya, padahal semua yang terjadi sementara itu disalin melalui sistem file jaringan.

Ada sejarah panjang sebuah teknik untuk menangani kesalahan bit dalam sistem komputer, sejak tahun 1940-an. Kode Hamming dan Reed-Solomon merupakan dua contoh penting yang dikembangkan untuk digunakan dalam pembaca kartu punch, saat menyimpan data pada disk magnetik, dan dalam memori inti awal. Bagian ini menjelaskan beberapa teknik deteksi kesalahan yang paling umum digunakan dalam jaringan.

Prinsip dasar deteksi kesalahan adalah agar pemancar menghitung karakter cek berdasarkan konten pesan asli. Ini dikirim ke penerima di akhir pesan dan penerima mengulangi perhitungan yang sama pada bit yang diterimanya. Jika karakter pemeriksaan yang dihitung tidak cocok dengan yang dikirim, maka akan dianggap sedang terjadi kesalahan. Bentuk paling sederhana dari pemeriksaan kesalahan dalam sistem asinkron adalah dengan memasukkan bit paritas, yang mungkin genap atau ganjil. Paritas genap membutuhkan jumlah


 

total bit data pada logika 1 ditambah bit paritas agar sama dengan bilangan genap. Perangkat keras komunikasi di ujung transmisi menghitung paritas yang diperlukan dan menetapkan bit paritas untuk memberikan jumlah logika 1 bit yang genap. Paritas ganjil bekerja dengan cara yang sama seperti paritas genap, kecuali bahwa bit paritas disesuaikan sehingga jumlah total bit logika 1, termasuk bit paritas, sama dengan angka ganjil.

Perangkat keras di ujung penerima menentukan jumlah total logika 1 bit dan melaporkan kesalahan jika itu bukan bilangan genap atau ganjil yang sesuai. Perangkat keras penerima juga mendeteksi pembengkakan penerima dan kesalahan bingkai. Secara statistik, penggunaan bit paritas hanya memiliki peluang sekitar 50% untuk mendeteksi kesalahan pada sistem kecepatan tinggi. Metode ini dapat mendeteksi jumlah bit yang salah dan tidak akan mendeteksi jumlah bit yang salah. Bit paritas biasanya dihilangkan jika ada skema pemeriksaan kesalahan yang lebih canggih.

Mendeteksi kesalahan hanyalah salah satu bagian dari masalah. Bagian lainnya mengoreksi kesalahan setelah terdeteksi. Dua pendekatan dasar dapat diambil ketika penerima pesan mendeteksi kesalahan. Salah satunya adalah memberi tahu pengirim bahwa pesan tersebut rusak sehingga pengirim dapat mengirimkan kembali salinan pesan tersebut. Jika kesalahan bit jarang terjadi, maka kemungkinan besar salinan yang dikirim ulang akan bebas dari kesalahan. Alternatifnya, beberapa jenis algoritma deteksi kesalahan memungkinkan penerima untuk menyusun kembali pesan yang benar bahkan setelah pesan tersebut rusak; algoritme semacam itu mengandalkan kode koreksi kesalahan.

Ide dasar dibalik skema deteksi kesalahan adalah menambahkan informasi yang berlebihan ke bingkai yang dapat digunakan untuk menentukan apakah kesalahan telah diperkenalkan. Secara ekstrim, kita bisa membayangkan mentransmisikan dua salinan lengkap data. Jika kedua salinan identik di penerima, maka mungkin keduanya benar. Jika berbeda, maka kesalahan dimasukkan ke salah satu (atau keduanya), dan harus dibuang. Ini adalah skema deteksi kesalahan yang buruk karena dua alasan. Pertama, ia mengirimkan n bit redundan untuk pesan n-bit. Kedua, banyak kesalahan yang tidak akan terdeteksi oleh kesalahan apapun yang terjadi merusak posisi bit yang sama disalinan pertama dan kedua dari pesan tersebut. Secara umum, tujuan dari kode pendeteksi kesalahan adalah untuk memberikan probabilitas yang tinggi untuk


 

mendeteksi kesalahan yang dikombinasikan dengan jumlah bit redundan yang relatif rendah.

Bit ekstra yang dikirim merupakan hal yang mubazir, kare na tidak menambahkan informasi baru ke dalam pesan. Sebaliknya, pesan tersebut diturunkan langsung dari pesan asli menggunakan beberapa algoritme yang ditentukan dengan baik. Baik pengirim dan penerima tahu persis apa algoritma itu. Pengirim menerapkan algoritme ke pesan untuk menghasilkan bit yang redundan. Kemudian mengirimkan pesan dan beberapa bit ekstra itu. Ketika penerima menerapkan algoritma yang sama ke pesan yang diterima, itu seharusnya (jika tidak ada kesalahan) muncul dengan hasil yang sama dengan pengirim. Ini membandingkan hasil dengan yang dikirim oleh pengirim. Jika cocok, itu dapat menyimpulkan (dengan kemungkinan tinggi) bahwa tidak ada kesalahan yang diperkenalkan dalam pesan selama transmisi. Jika tidak cocok, dapat dipastikan bahwa pesan atau bit yang berlebihan telah rusak, dan harus mengambil tindakan yang tepat, yaitu, membuang pesan atau memperbaikinya jika memungkinkan.

Satu catatan tentang terminologi bit ekstra ini. Secara umum, mereka disebut sebagai kode pendeteksi kesalahan. Dalam kasus tertentu, ketika algoritma untuk membuat kode didasarkan pada penjumlahan, mereka dapat disebut checksum. Kita akan melihat bahwa checksum Internet dinamai dengan tepat: Ini adalah pemeriksaan kesalahan yang menggunakan algoritma penjumlahan. Sayangnya, kata checksum sering digunakan secara tidak tepat untuk mengartikan segala bentuk kode pendeteksi kesalahan, termasuk CRC. Ini bisa membingungkan, jadi kami mendorong Anda untuk menggunakan kata checksum hanya untuk diterapkan ke kode yang benar-benar menggunakan penambahan dan menggunakan kode pendeteksi kesalahan untuk merujuk ke kelas umum kode yang dijelaskan di bagian ini.

 

 

2.     Menjelaskan Macam-Macam Metode Error Detection

 

a.   Parity Checking

 

Parity Checking adalah salah satu metode yang digunakan untuk memeriksa apakah data telah berubah atau rusak setelah transmisi dari satu perangkat atau media ke perangkat atau media lain. Sebuah bit data, misalnya, dialokasikan sebagai bit paritas. Ini dialokasikan sebelum transmisi


 

terjadi. Sistem yang menggunakan Paritas Genap memiliki bilangan genap 1- bit, sedangkan sistem yang menggunakan Paritas Ganjil memiliki bilangan ganjil 1-bit.

Tabel 4. Parity Bit

 

 

1

1

0

1

1

0

0

Metode sederhana untuk mendeteksi kesalahan adalah dengan menambahkan bit redundan yang disebut bit paritas ke setiap karakter. Metode ini disebut pemeriksaan paritas dan umumnya digunakan untuk karakter ASCII di mana tujuh bit digunakan untuk pengkodean karakter aktual dan bit kedelapan untuk paritas. Nilai bit paritas (yaitu, bit kedelapan) dipilih untuk membuat bilangan 1 menjadi bilangan genap (untuk paritas genap) atau bilangan ganjil (untuk paritas ganjil).

Sebagai contoh paritas genap, asumsikan bahwa urutan bit 1001101 akan dikirim; pesan yang sebenarnya dikirim adalah 10011010 - jumlah pertama adalah 4 (genap), jadi bit 0 ditambahkan setelah urutan aslinya. Masalah dengan skema ini adalah jika, misalnya dalam paritas genap, kesalahan dalam jumlah genap terjadi, skema pemeriksaan paritas akan gagal mendeteksi fakta bahwa frame harus dibuang. Misalnya, jika kami mengirimkan 10011010 dan menerima 10011000, pemeriksaan paritas akan gagal karena bit kedua hingga terakhir rusak, dan itu bagus. Tetapi jika urutan bit 11011000 diterima, pemeriksaan paritas akan lolos, meskipun bit kedua dan bit kedua hingga terakhir rusak saat transit.

Mungkin bentuk paling sederhana dari deteksi kesalahan adalah penggunaan bit paritas tunggal. Misalkan informasi yang akan dikirim “D”, maka memiliki d bit. Dalam skema paritas genap, pengirim hanya menyertakan satu bit tambahan dan memilih nilainya sedemikian rupa sehingga jumlah total 1 dalam bit (informasi asli ditambah bit paritas) adalah genap. Untuk skema paritas ganjil, nilai bit paritas dipilih sedemikian sehingga terdapat angka ganjil 1. Operasi penerima d + 1 juga sederhana dengan bit paritas tunggal. Penerima hanya perlu menghitung jumlah 1 dalam bit yang diterima. Jika bilangan ganjil dari bit bernilai 1 ditemukan dengan skema paritas genap, penerima mengetahui bahwa setidaknya satu kesalahan bit telah terjadi. Lebih tepatnya, ia mengetahui bahwa beberapa kesalahan bit ganjil telah terjadi. Jika kesalahan bit berjumlah bilangan genap, maka harus


 

meyakinkan diri sendiri bahwa ini akan menghasilkan kesalahan yang tidak terdeteksi. Jika probabilitas kesalahan bit kecil dan kesalahan dapat diasumsikan terjadi secara independen dari satu bit ke bit berikutnya, kemungkinan kesalahan beberapa bit dalam paket akan sangat kecil.

Jika bit ini menggunakan paritas genap, maka bit paritas harus 0 karena sudah ada bilangan genap 1 bit. Jika yang digunakan paritas ganjil, maka bit paritas harus 1 agar jumlah bilangan ganjil 1 bit.

Oleh karena itu, bit sebelum transmisi adalah:

 

Tabel 5. Parity Bit (Even)

Paritas genap

 

0

1

1

0

1

1

0

0

 

 

Tabel 6. Parity Bit (Odd)

Paritas ganjil

 

 

1

 

1

 

1

 

0

 

1

 

1

 

0

0

 

 

Sebelum data ditransfer, kesepakatan dibuat antara pengirim dan penerima mengenai mana dari dua jenis paritas yang digunakan.

b.   Two-Demensional Parity

 

Dalam pemeriksaan paritas dua dimensi, blok data diatur sebagai larik dua dimensi. Secara khusus, setiap baris dari larik adalah blok data yang akan dikirim. Bit paritas ditambahkan ke setiap baris berdasarkan apakah paritas genap atau ganjil digunakan. Bit paritas untuk setiap kolom dihitung dengan cara yang sama. Ini diilustrasikan pada Gambar 1, yang memiliki empat blok data dan bahkan paritas digunakan pada paritas baris dan kolom.

Seperti yang ditunjukkan pada Gambar 2 (a), ketika tepat satu kesalahan terjadi, skema dapat mendeteksi lokasi dengan kegagalan pemeriksaan horizontal dan paritas yang terkait dengan bit itu. Kemudian dapat membalik bit sehingga memperbaiki kesalahan. Ia dapat mendeteksi konfigurasi kesalahan tertentu, terutama jika tidak terjadi pada saat yang sama


 



 

Gambar 11. Contoh Two-Demensional Parity

 




 

(a)                                       (b)                                       (c)

 

Gambar 12. Beberapa konfigurasi yang terjadi kesalahan (a) 1 Kesalahan; (b) 2 Kesalahan; dan (c) 3 Kesalahan.

 

 

baris atau kolom yang tidak dapat dideteksi. Namun, itu tidak dapat memperbaiki kesalahan seperti yang diilustrasikan oleh Gambar 2 (b). Demikian pula, ia dapat mendeteksi tiga kesalahan, seperti yang diilustrasikan pada Gambar 2 (c). Akhirnya, itu tidak dapat mendeteksi keempat konfigurasi kesalahan.

c.   Checksumming

 

Salah satu metode checksumming sederhana adalah dengan menjumlahkan bilangan bulat k-bit ini dan menggunakan jumlah yang dihasilkan sebagai bit deteksi kesalahan. Checksum Internet didasarkan pada pendekatan suatu bit data diperlakukan sebagai integer 16-bit dan dijumlahkan. Komplemen pertama dari jumlah ini kemudian membentuk


 

checksum Internet yang dilakukan di header segmen. Penerima memeriksa checksum dengan mengambil komplemen pertama dari jumlah data yang diterima (termasuk checksum) dan memeriksa apakah hasilnya semua 1 bit. Jika salah satu bit adalah 0, maka akan menunjukan suatu kesalahan. Dalam protokol TCP dan UDP, checksum Internet dihitung di semua bidang (termasuk bidang header dan data). Dalam IP, checksum dihitung melalui header IP (karena segmen UDP atau TCP memiliki checksumnya sendiri). Dalam protokol lain, misalnya, XTP, satu checksum dihitung melalui header dan checksum lain dihitung di seluruh paket.

Metode checksumming membutuhkan overhead paket yang relatif kecil. Misalnya, checksum di TCP dan UDP hanya menggunakan 16 bit. Namun, mereka memberikan perlindungan yang relatif lemah terhadap kesalahan dibandingkan dengan pemeriksaan redundansi siklik, yang dibahas di bawah ini dan yang sering digunakan dalam lapisan tautan. Pertanyaan umum pada saat ini adalah, Mengapa checksumming digunakan pada lapisan transport dan pemeriksaan redundansi siklik digunakan pada lapisan tautan? Ingatlah bahwa lapisan transport biasanya diimplementasikan dalam perangkat lunak di host sebagai bagian dari sistem operasi host. Karena deteksi kesalahan lapisan transportasi diterapkan dalam perangkat lunak, penting untuk memiliki skema deteksi kesalahan yang sederhana dan cepat seperti checksumming. Di sisi lain, deteksi kesalahan pada lapisan tautan diimplementasikan pada perangkat keras khusus pada adaptor, yang dapat dengan cepat melakukan operasi CRC yang lebih kompleks.

d.   Cyclic Redundancy Check

 

Teknik deteksi kesalahan yang digunakan secara luas di jaringan komputer saat ini didasarkan pada kode Cyclic Redundancy Check (CRC). Kode tersebut juga dikenal sebagai kode polinomial, karena dimungkinkan untuk melihat string bit yang akan dikirim sebagai polinomial yang koefisiennya adalah nilai 0 dan 1 dalam string bit, dengan operasi pada string bit diinterpretasikan sebagai aritmatika polinomial.

Untuk menjalankan Kode Cyclic Redundancy Check (CRC) yaitu dengan memperrtimbangkan potongan data d-bit. D, yang ingin dikirim oleh node pengirim ke node penerima. Pengirim dan penerima pertama-tama harus menyetujui pola bit, yang dikenal sebagai generator atau tunjukkan


 

sebagai G. Kemudian akan meminta bit G yang paling signifikan (paling kiri) adalah 1. Untuk bagian data tertentu, D, pengirim akan memilih r bit tambahan, R, dan menambahkannya ke D sehingga pola bit yang dihasilkan (diinterpretasikan sebagai bilangan biner) tepat habis dibagi oleh G (yaitu, tidak memiliki sisa) menggunakan 2 modul aritmatika. Proses pengecekan kesalahan dengan CRC sangat sederhana, dengan cara penerima membagi bit yang diterima dengan G. Jika sisanya bukan nol, penerima mengetahui bahwa kesalahan telah terjadi; jika tidak, data tersebut dianggap benar.

Setiap standar CRC dapat mendeteksi kesalahan ledakan kurang dari r

+ 1 bit. (Ini berarti bahwa semua kesalahan bit berturut-turut dari r bit atau lebih sedikit akan dideteksi.) Selanjutnya, dengan asumsi yang sesuai, ledakan dengan panjang lebih besar dari r + 1 bit dideteksi dengan probabilitas 1 = 0,5r. Selain itu, setiap standar CRC dapat mendeteksi kesalahan bit ganjil.

Tujuan utama dalam merancang algoritma deteksi kesalahan adalah untuk memaksimalkan kemungkinan mendeteksi kesalahan dengan hanya menggunakan sejumlah kecil bit yang berlebihan. Pemeriksaan redundansi siklik menggunakan beberapa matematika yang cukup kuat untuk mencapai tujuan ini. Misalnya, CRC 32-bit memberikan perlindungan yang kuat terhadap kesalahan bit umum dalam pesan yang panjangnya ribuan bit. Landasan teoritis dari pemeriksaan redundansi siklik berakar pada cabang matematika yang disebut medan hingga. Meskipun ini mungkin terdengar menakutkan, ide dasarnya dapat dengan mudah dipahami. Untuk memulai, misalkan pesan (n

+ 1) bit yang diwakili oleh polinomial derajat n, yaitu, polinomial yang suku orde tertingginya adalah (xn). Pesan diwakili oleh polinomial dengan menggunakan nilai setiap bit dalam pesan sebagai koefisien untuk setiap suku dalam polinomial, dimulai dengan bit paling signifikan untuk mewakili suku orde tertinggi.

 

 

 

C.  SOAL LATIHAN/ TUGAS

 

1.     Jelaskan definsi error detction yang Anda ketahui!

2.     Jelaskan apa yang dimaksud dengan parity cracking!

3.     Jelaskan apa yang dimaksud dengan Two demensional parity!

4.     Jelaskan apa yang dimaksud dengan cyclic redundancy check!


 

 

 

D.  REFERENSI

 

Kurose, James F.; Rose, Keith W. (2017), Computer Networking: A Top-Down Approach (Seventh Edition.), Pearson Education.

Ibe, Oliver C.(2017), Fundamentals of Data Communication Network, Willey.

 

Peterson, Larry L.; Davie, Bruce S. (2012), Computer Network: A Systems Approach (Fifth Edition), Morgan Kaufmann.

Watson, David; Williams, Helen. (2014), Computer Science, Hodder Education.

Komentar

Postingan populer dari blog ini

Artikel Komputer Grafik

Pertemuan 1