DCN - Deteksi & Koreksi Kesalahan
Ada banyak alasan seperti noise, cross-talk, dll., Yang dapat membantu data menjadi rusak selama transmisi. Lapisan atas bekerja pada beberapa tampilan umum dari arsitektur jaringan dan tidak mengetahui pemrosesan data perangkat keras yang sebenarnya. Oleh karena itu, lapisan atas mengharapkan transmisi bebas kesalahan antara sistem. Sebagian besar aplikasi tidak akan berfungsi sebagaimana mestinya jika menerima data yang salah. Aplikasi seperti suara dan video mungkin tidak terpengaruh dan dengan beberapa kesalahan, mereka mungkin masih berfungsi dengan baik.
Lapisan data-link menggunakan beberapa mekanisme kontrol kesalahan untuk memastikan bahwa frame (aliran bit data) ditransmisikan dengan tingkat akurasi tertentu. Tetapi untuk memahami bagaimana kesalahan dikendalikan, penting untuk mengetahui jenis kesalahan apa yang mungkin terjadi.
Jenis Kesalahan
Mungkin ada tiga jenis kesalahan:
Single bit error
Dalam bingkai, hanya ada satu bit, di mana saja, yang rusak.
Multiple bits error
Bingkai diterima dengan lebih dari satu bit dalam keadaan rusak.
Burst error
Bingkai berisi lebih dari 1 bit berturut-turut yang rusak.
Mekanisme kontrol kesalahan mungkin melibatkan dua cara yang mungkin:
Deteksi kesalahan
Koreksi kesalahan
Deteksi Kesalahan
Kesalahan dalam frame yang diterima dideteksi melalui Parity Check dan Cyclic Redundancy Check (CRC). Dalam kedua kasus, beberapa bit tambahan dikirim bersama dengan data aktual untuk mengonfirmasi bahwa bit yang diterima di ujung lain sama dengan yang dikirim. Jika pemeriksaan balik di ujung penerima gagal, bit dianggap rusak.
Pemeriksaan Paritas
Satu bit tambahan dikirim bersama dengan bit asli untuk membuat angka 1 genap dalam kasus paritas genap, atau ganjil dalam kasus paritas ganjil.
Pengirim saat membuat bingkai menghitung jumlah 1 di dalamnya. Misalnya, jika paritas genap digunakan dan jumlah 1s genap maka satu bit dengan nilai 0 ditambahkan. Dengan cara ini jumlah 1s tetap genap, jika jumlah 1 ganjil, untuk membuatnya genap dengan nilai 1 ditambahkan.
Penerima hanya menghitung jumlah 1 dalam satu bingkai. Jika hitungan 1s genap dan bahkan paritas digunakan, bingkai dianggap tidak rusak dan diterima. Jika hitungan 1s ganjil dan paritas ganjil digunakan, frame tetap tidak rusak.
Jika satu bit membalik saat transit, penerima dapat mendeteksinya dengan menghitung jumlah 1s. Tetapi jika lebih dari satu bit yang salah, maka sangat sulit bagi penerima untuk mendeteksi kesalahan tersebut.
Cyclic Redundancy Check (CRC)
CRC adalah pendekatan berbeda untuk mendeteksi jika frame yang diterima berisi data yang valid. Teknik ini melibatkan pembagian biner dari bit data yang dikirim. Pembagi dibuat menggunakan polinomial. Pengirim melakukan operasi pembagian pada bit yang dikirim dan menghitung sisanya. Sebelum mengirim bit aktual, pengirim menambahkan sisanya di akhir bit aktual. Bit data aktual ditambah sisanya disebut codeword. Pengirim mengirimkan bit data sebagai codeword.
Di ujung lain, penerima melakukan operasi pembagian pada codeword menggunakan pembagi CRC yang sama. Jika sisanya berisi semua nol, bit data diterima, jika tidak maka dianggap ada beberapa kerusakan data yang terjadi saat transit.
Koreksi kesalahan
Dalam dunia digital, koreksi kesalahan dapat dilakukan dengan dua cara:
Backward Error Correction Ketika penerima mendeteksi kesalahan dalam data yang diterima, ia meminta kembali pengirim untuk mengirimkan kembali unit data tersebut.
Forward Error Correction Ketika penerima mendeteksi beberapa kesalahan dalam data yang diterima, itu mengeksekusi kode koreksi kesalahan, yang membantunya untuk memulihkan secara otomatis dan untuk memperbaiki beberapa jenis kesalahan.
Yang pertama, Koreksi Kesalahan Mundur, sederhana dan hanya dapat digunakan secara efisien di mana pengiriman ulang tidak mahal. Misalnya serat optik. Tetapi dalam kasus pengiriman ulang transmisi nirkabel mungkin membutuhkan biaya terlalu banyak. Dalam kasus terakhir, Koreksi Kesalahan Teruskan digunakan.
Untuk memperbaiki kesalahan dalam bingkai data, penerima harus tahu persis bit mana dalam bingkai yang rusak. Untuk menemukan bit yang salah, bit redundan digunakan sebagai bit paritas untuk deteksi kesalahan, misalnya kita mengambil kata-kata ASCII (7 bit data), maka mungkin ada 8 jenis informasi yang kita butuhkan: tujuh bit pertama memberi tahu kita bit mana adalah kesalahan dan satu bit lagi untuk memberitahu bahwa tidak ada kesalahan.
Untuk m bit data, r bit redundan digunakan. bit r dapat memberikan kombinasi 2r informasi. Dalam m + r bit codeword, ada kemungkinan r bits itu sendiri bisa rusak. Sehingga banyaknya r bits yang digunakan harus menginformasikan tentang lokasi m + r bit ditambah informasi no-error yaitu m + r + 1.