• Tidak ada hasil yang ditemukan

SEG 3255 Lecture Notes - UNIKOM Kuliah Online

N/A
N/A
Protected

Academic year: 2024

Membagikan "SEG 3255 Lecture Notes - UNIKOM Kuliah Online"

Copied!
23
0
0

Teks penuh

(1)

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).

– Di penerima: hitung jumlah 1 pd frame; jika ganjil, error telah terjadi

0111011100011100 1

0111011101011100 1

(2)

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

d1,1 d1,m–1 d1,m

d2, 1 d2,m–1 d2,m

dn–1, 1 dn–1,m–1 dn–1,m

Col. parity dn, 1 dn,m–1 dn,m

data checksum

(n–1)(m–1) bits m + n – 1 bits

(3)

Forward Error Correction - Contoh

1 0 1 0 1 0 error

1 1 1 1 0 0 ok

0 1 1 1 0 1 ok

1 0 1 0 1 1 ok

error ok ok ok ok ok

Even parity: tiap baris & kolom harus mempunyai jumlah 1 genap:

Baris & kolom secara bersama mengindikasikan dimana 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

(4)

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

(5)

Check sums (2)

• Kalkulasi Checksum

4865 + 6C6C + 6F20 + 776F + 726C + 642E = 271FA 71FA + 2 = 71FC

48 65 6C 6F 20 77 6F 72 6C 64 2E h

6C

e l l o w o r l d .

check sum

carry

(6)

Keuntungan /Kerugian

• Mudah dihitung

• Ukuran kecil (overhead 1 atau 2 octet)

• Bbrp error tidak terdeteksi:

0001 1 0010 2 0011 3 0001 1 total 7

0011 3

0000 0

0001 1

0011 3

total 7

(7)

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 = 2n M + F

– Cat: 2n 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

(8)

Cyclic Redundancy Check (CRC)

(9)

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 2r + R = A*G => M 2r = A*G + R (mod 2 arithmetic)

 R = sisa dari M 2r/G dan T akan berupa kelipatan G

• Pemilihan G merupakan parameter yg kritis utk performansi suatu CRC

(10)

Contoh

 Transmisi: 110101011

 G = x3 + 1

 M = x5 + x4 + x2

+ 1

(11)

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

(12)

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 = X16 + X15 + X2 +1 = 11000000000000101

(13)

Format Message

• Macam-macam format frame dimungkinkan:

SOH data CRC EOT

M F

T

sep data CRC

M F

T

sep

(14)

14

Memilih G

• Bentuk Polynomial:

G (17 bits): 10001000000100001

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:

X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1

(15)

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 = X16 + X12 + X5 + 1

15141312 11109 8 7 6 5 4 3 2 1 0

Message bits XOR single bit shift left register

X

12

X

5

X

0
(16)

16

Hamming Codes

• Data untuk dikirimkan:

• Transmisi:

dimana:

– p1 is even parity for 1, 3, 5, 7, 9, 11 – p2 is even parity for 2, 3, 6, 7, 10, 11 – p3 is even parity for 4, 5, 6, 7, 12 – p4 is even parity for 8, 9, 10, 11, 12

m1 m2 m3 m4 m5 m6 m7 m8

p1 p2 m1 p3 m2 m3 m4 p4 m5 m6 m7 m8 1 2 3 4 5 6 7 8 9 10 11 12

(17)

Koreksi Error

• Kode di set up shg:

akan :

– bernilai 0 jika tdk ada error

– Indikasi posisi bit dimana single-bit error terjadi

– 1001 (9) berarti bhw mengalami error – 0010 (2) berarti bhw mengalami error

p4r p3r p2r p1r

m5 p2

p4c p3cp2cp1c

XOR

p4r parity bit 4, p4c

Diterima dlm message

parity bit 4, dikalkulasi

(18)

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

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

0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1

(19)

Hamming Distance

Utk deteksi d-bit error: HD > d Utk koreksi d-bit error: HD > 2d

HD = min (d

ij

)

4 3

1 d 2

23

ij Set dari code

HD = Jarak min suatu code adalah jumlah error terkecil yg dp memetakan satu codeword ke yg lainnya

(20)

Koreksi Error

Untuk Hamming Distance = d

dp koreksi (d-1)/2 error Contoh: Hamming (7,4) Code

Informasi Codeword

0000 0000000

0001 0001111

0010 0010101

0011 0011010

0100 0100011

0101 0101100

0110 0110110

0111 0111001

1000 1000110

1001 1001001

1010 1010011

1011 1011100

1100 1100101

1101 1101010

1110 1110000

1111 1111111

(21)

Koreksi Error

Code umum digunakan: Bose-Chaudhuri-Hocquenghem (BCH) M

R BCH (R + M, M, t)

mis. BCH (1023, 923, 10)

Dp deteksi semua “t”

bit error

(22)

Deteksi atau Koreksi?

Keuntungan Deteksi Error

Memerlukan jumlah lebih kecil bits/overhead

Memerlukan pemrosesan lebih sederhana

Keuntungan Koreksi Error

Mengurangi Jumlah retransmisi

Kebanyakan jaringan data saat ini menggunakan deteksi error,

Bukan koreksi error

(23)

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

Overhead Deteksi Error:

Asumsi gunakan: 32-bit CRC; satu retransmisi per error Krnnya, kita kirim 923 data bit sbg 955 bit

Overhead Transmisi = ~= 10%

Overhead Transmisi = ~= 3%

923100

(923 + 32) 10-5 + 32 923

Referensi

Dokumen terkait