Deteksi Koreksi Error Deteksi mendeteksi jika terjadi error

  • Slides: 23
Download presentation
Deteksi & Koreksi Error • Deteksi: mendeteksi jika terjadi error • Koreksi: secara aktual

Deteksi & Koreksi Error • Deteksi: mendeteksi jika terjadi error • Koreksi: secara aktual memperbaiki error • Contoh: parity bit – Dapat mendeteksi satu (single bit-flip) error; tidak ada koreksi error – Diberikan frame dg n – 1 bit frame, tambahkan bit ke-n shg jumlah 1 pd frame genap (even parity). 011100011100 1 – Di penerima: hitung jumlah 1 pd frame; jika ganjil, error telah terjadi 011101011100 1

Forward Error Correction • Banyak protokol bekerja dg deteksi error dan retransmisi • Round

Forward Error Correction • Banyak protokol bekerja dg deteksi error dan retransmisi • Round trip delay utk retransmisi bisa terlalu lama utk bbrp kondisi/aplikasi • Transmit redundansi data yg cukup utk memungkinkan penerima memperbaiki error • Contoh: data dg m n bit: Row parity d 1, 1 … d 1, m– 1 d 1, m d 2, 1 … d 2, m– 1 d 2, m … … … Col. parity dn– 1, 1 … dn– 1, m– 1 dn– 1, m dn, 1 … dn, m– 1 dn, m data (n– 1)(m– 1) bits checksum m + n – 1 bits

Forward Error Correction - Contoh 1 0 1 0 error 1 1 0 0

Forward Error Correction - Contoh 1 0 1 0 error 1 1 0 0 ok 0 1 1 1 0 1 ok 1 0 1 1 ok error ok ok ok • Even parity: tiap baris & kolom harus mempunyai jumlah 1 genap: • Baris & kolom secara bersama mengindikasikan dimana satu (single) error terjadi • Skim ini dp mengkoreksi satu buah error, dan mendeteksi bbrp kombinasi error lainnya • Error correcting codes yg lebih powerfull tersedia • Teknik lain: kirim redundansi, atau redundansi data secara partial

Check Sums • Gunakan suatu register dg k = 16 atau 32 bits sbg

Check Sums • Gunakan suatu register dg k = 16 atau 32 bits sbg check sum: – Inisialisasi k bit ke bit 0 – Tiap blok dari k bit pd frame ditambahkan ke check sum register, dg carry bit juga ditambahkan – Hasilnya, k ditambahkan (dikirimkan) dg message • Penerima mengkalkulasi sum dg cara yg sama, dan membandingkan dg check sum yg diterima

Check sums (2) h e l l o w o r l d .

Check sums (2) h e l l o w o r l d . 48 65 6 C 6 C 6 F 20 77 6 F 72 6 C 64 2 E • Kalkulasi Checksum 4865 + 6 C 6 C + 6 F 20 + 776 F + 726 C + 642 E = 271 FA + 2 = 71 FC carry check sum

Keuntungan /Kerugian • Mudah dihitung • Ukuran kecil (overhead 1 atau 2 octet) •

Keuntungan /Kerugian • Mudah dihitung • Ukuran kecil (overhead 1 atau 2 octet) • Bbrp error tidak terdeteksi: 0001 0010 0011 0001 1 2 3 1 0011 0000 0001 0011 3 0 1 3 total 7

Cyclic Redundancy Check (CRC) • Misalkan M adalah k bit message yg akan dikirimkan,

Cyclic Redundancy Check (CRC) • Misalkan M adalah k bit message yg akan dikirimkan, dan n bit error check field F ditambahkan pd akhir message • T adalah total frame yg ditransmisikan, termasuk check field, yaitu (k + n) bit – Maka, T = 2 n M + F – Cat: 2 n M adalah message M digeser n bit ke kiri, dg ekstra 0 bit ditambahkan di kanan. Menambahkan F akan mengganti nol ini dg F. • Mis. G adalah pola bit yg sdh ditentukan dari n + 1 bit • Objektif: T dibagi dg G dlm arithmetic modulo 2 arithmetic sehingga tdk ada sisa – Kita menggunakan sisa setelah pembagian, dan bukan penjumlahan

Cyclic Redundancy Check (CRC)

Cyclic Redundancy Check (CRC)

Cyclic Redundancy Check (CRC) • Bagaimana kita menghitung R (check bits)? – – Pilih

Cyclic Redundancy Check (CRC) • Bagaimana kita menghitung R (check bits)? – – Pilih suatu generator string G dg panjang r+1 bits Pilih R sedemikian shg T kelipatan G (T = A*G, utk sembarang A) Sekarang jika T dibagi dg G tdk akan ada sisa no errors Semuanya dilakukan dg mod 2 arithmetic T = M 2 r + R = A*G => M 2 r = A*G + R (mod 2 arithmetic) R = sisa dari M 2 r/G dan T akan berupa kelipatan G • Pemilihan G merupakan parameter yg kritis utk performansi suatu CRC

Contoh G = x 3 + 1 M = x 5 + x 4

Contoh G = x 3 + 1 M = x 5 + x 4 + x 2 +1 Transmisi: 110101011

Checking utk Error • Misal T’ adalah deretan bit yg diterima • Bagi T’

Checking utk Error • Misal T’ adalah deretan bit yg diterima • Bagi T’ dg G – Jika sisa = 0, asumsi tidak ada error – Jika sisa tidak nol terjadi error Contoh: Kirim T = 110101011 Terima T’ = 110101011 (tdk ada error) Tdk ada cara utk mengetahui brp bit yg error dan yg mana

Performansi CRC • Utk r check bit per frame dan panjang frame kurang dari

Performansi CRC • Utk r check bit per frame dan panjang frame kurang dari 2 r-1, berikut ini dp dideteksi 1) Semua pola dari 1, 2, atau 3 error (d > 3) 2) Semua bursts errors dari r bit atau lebih kecil 3) Random dg jumlah error yg besar dg prob. 1 -2 -r • Standard DLC menggunakan CRC dg r = 16 dg option r = 32 – CRC-16, G = X 16 + X 15 + X 2 +1 = 11000000101

Format Message • Macam-macam format frame dimungkinkan: T SOH data CRC M F EOT

Format Message • Macam-macam format frame dimungkinkan: T SOH data CRC M F EOT T sep data M CRC F sep

Memilih G • Bentuk Polynomial: G (17 bits): 1000000100001 G(X) = 1 X 16

Memilih G • Bentuk Polynomial: G (17 bits): 1000000100001 G(X) = 1 X 16 + 0 X 15 + 0 X 14 + 0 X 13 + 1 X 12 + 0 X 11 + 0 X 10 + 0 X 9 + 0 X 8 + 0 X 7 + 0 X 6 + 1 X 5 + 0 X 4 + 0 X 3+0 X 2+0 X 1+1 X 0 = X 16 + X 12 + X 5 + 1 • Standard polynomial 16 bit: – Amerika Utara: X 16 + X 15 + X 5 + 1 – Internasional: X 16 + X 12 + X 5 + 1 • Standard polynomial 32 bit: X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 7 + X 5 + X 4 + X 2 + X + 1 14

Komputasi CRC • menggunakan shift dan XOR register utk menealisasikan pembagian mod 2 –

Komputasi CRC • menggunakan shift dan XOR register utk menealisasikan pembagian mod 2 – Inputkan semua bit message spt terlihat – Pengirim: isi register yg lengkap saat message selesai adalah field CRC – Penerima: isi register yg lengkap saat message selesai harus 0 (jika tidak ada error) – Keuntungan: dp dilakukan cepat dg hardware • Contoh: k = 16 bit CRC, G = X 16 + X 12 + X 5 + 1 15141312 1110 9 8 7 6 5 X 12 X 5 XOR 4 3 2 1 0 single bit shift left register X 0 Message bits

Hamming Codes • Data untuk dikirimkan: m 1 m 2 m 3 m 4

Hamming Codes • Data untuk dikirimkan: m 1 m 2 m 3 m 4 m 5 m 6 m 7 m 8 • Transmisi: p 1 p 2 m 1 p 3 m 2 m 3 m 4 p 4 m 5 m 6 m 7 m 8 1 2 3 4 5 6 7 8 9 10 11 12 dimana: – p 1 is even parity for 1, 3, 5, 7, 9, 11 – p 2 is even parity for 2, 3, 6, 7, 10, 11 – p 3 is even parity for 4, 5, 6, 7, 12 – p 4 is even parity for 8, 9, 10, 11, 12 16

Koreksi Error • Kode di set up shg: p 4 r p 3 r

Koreksi Error • Kode di set up shg: p 4 r p 3 r p 2 r p 1 r XOR p 4 c p 3 c p 2 c p 1 c akan : – bernilai 0 jika tdk ada error – Indikasi posisi bit dimana single-bit error terjadi – 1001 (9) berarti bhw m 5 mengalami error – 0010 (2) berarti bhw p 2 mengalami error p 4 r parity bit 4, Diterima dlm message p 4 c parity bit 4, dikalkulasi

Multiple-bit Error Correction • Berdasarkan konsep dari “distance” antara code word – Pola berikut

Multiple-bit Error Correction • Berdasarkan konsep dari “distance” antara code word – Pola berikut mempunyai jarak/ distance 3 karena tiga bit diperlukan utk mengubahnya ke dlam code word yg lain • 0 1 0 1 1 1 1 0 0 1 0 1 1 1 Contoh: gunakan 12 bit utk kirim 8 bit dari data user – Perlu memilih 256 pola bit yg dipakai dari 4096 yg tersedia • Objektif: dua code word yg dibolehkan akan memunyai jarak minimum (minimum distance) d – Dapat mendeteksi sampai dg d – 1 error – Dapat mengkoreksi sampai dg d/2 error

Hamming Distance HD = Jarak min suatu code adalah jumlah error terkecil yg dp

Hamming Distance HD = Jarak min suatu code adalah jumlah error terkecil yg dp memetakan satu codeword ke yg lainnya Set dari code 4 1 3 d 23 2 HD = min (dij ) ij Utk deteksi d-bit error: HD > d Utk koreksi d-bit error: HD > 2 d

Koreksi Error Untuk Hamming Distance = d dp koreksi (d-1)/2 error Contoh: Hamming (7,

Koreksi Error Untuk Hamming Distance = d dp koreksi (d-1)/2 error Contoh: Hamming (7, 4) Code

Koreksi Error Code umum digunakan: Bose-Chaudhuri-Hocquenghem (BCH) R M BCH (R + M, M,

Koreksi Error Code umum digunakan: Bose-Chaudhuri-Hocquenghem (BCH) R M BCH (R + M, M, t) mis. BCH (1023, 923, 10) Dp deteksi semua “t” bit error

Deteksi atau Koreksi? Keuntungan Deteksi Error v Memerlukan jumlah lebih kecil bits/overhead v Memerlukan

Deteksi atau Koreksi? Keuntungan Deteksi Error v Memerlukan jumlah lebih kecil bits/overhead v Memerlukan pemrosesan lebih sederhana Keuntungan Koreksi Error v Mengurangi Jumlah retransmisi Kebanyakan jaringan data saat ini menggunakan deteksi error, Bukan koreksi error

Deteksi atau Koreksi: Contoh Asumsi: 1. Panjang paket 923 bit 2. PER = 10

Deteksi atau Koreksi: Contoh Asumsi: 1. Panjang paket 923 bit 2. PER = 10 -5 Overhead Koreksi Error: Asumsi kita gunakan: BCH (1023, 923, 10) Krnnya, kita kirim 923 data bit sbg 1023 bit 100 Overhead Transmisi = ~= 10% 923 Overhead Deteksi Error: Asumsi gunakan: 32 -bit CRC; satu retransmisi per error Krnnya, kita kirim 923 data bit sbg 955 bit (923 + 32) 10 -5 + 32 Overhead Transmisi = ~= 3% 923