PRINSIP
KERJA DAN CARA MENEMUKAN KESALAHAN PENGIRIMAN DATA
1. LRC
(Logitudional Redundancy Check)
cek redundansi longitudinal (LRC) atau cek redundansi horizontal adalah
bentuk cek
redundansiyang diterapkan secara independen untuk masing-masing kelompok paralel bit
stream.Teknik Longitudinal Redundancy Check (LRC) ini bisa dikatakan merupakan
pengembangan teknik parity check. Pada LRC, data (payload) disusun menjadi
sejumlah baris yang ditentukan (blok), kemudian dilakukan perhitungan bit
paritas untuk setiap baris dan setiap kolom. Bit paritas baris ditaruh di ujung
kanan, sedangkan bit paritas kolom diletakkan dibagian bawah. Sedangkan urutan
transmisi dimulai dari kolom paling kiri kearah bawah.
Gambaran LRC dapat dilihat pada gambar dibawah ini:
Untuk melakukan perhitungan LRC, ditambahkan karakter tambahan (bukan satu
bit) di bagian kiri dan bagian bawah blok :
a. Block Check Character (BCC) pada tiap blok
data. Tiap bit BCC merupakan pariti dari semua bit dari blok yang mempunyai
nomor bit yang sama. Jadi bit 1 dari BCC merupakan pariti genap dari semua bit
1 karakter yang ada pada blok tersebut, dan seterusnya
b. Ditentukan seperti parity, tetapi menghitung
secara longitudinal pada pesan (dan juga secara vertikal)
c. Kalkulasi berdasarkan pada bit ke-1, ke-2
dst (dari semua karakter) pada blok menggunakan operator XOR (paritas genap)
atau ~XOR (paritas ganjil) :
· Bit ke-1 dari BCC Ć
jumlah 1 pada bit ke-1 dari karakter
· Bit ke-2 dari BCC Ć
jumlah 1 pada bit ke-2 dari karakter
· 98% laju deteksi
error untuk burst errors ( > 10 bit)
· Mampu mengoreksi
error sebuah bit
· Mampu mengoreksi
error sebuah drive yang rusak (dalam RAID)
· Perbaikan signifikan
dibandingkan parity checking
Contoh : Akan dilakukan pentransmisian string “DATA” dengan teknik LRC
paritas ganjil. Data tersebut diubah menjadi sebuah blok yang terbagi menjadi
empat baris. Masing-masing karakter direpresentasikan dengan biner kemudian
dihitung paritasnya baik secara longitudinal maupun horizontal.
Ternyata blok yang diterima oleh penerima seperti pada
tabel 1 dibawah ini.
Perhitungan paritas pada sisi penerima, untuk baris 2 menghasilkan 0
(genap) yang seharusnya 1 (ganjil) seperti pada baris yang lain. Demikian pula
kolom 6 menghasilkan 0 (genap) yang seharusnya 1 (ganjil) seperti pada kolom
yang lain. Jika dua error ini disilangkan maka akan diketahui bahwa error
terjadi pada bit di baris 2 kolom 6.
Koreksi dilakukan dengan menginversi bit 0 menjadi 1 atau 1 menjadi 0 pada
posisi bit yang baris dan kolomnya dinyatakan error.
Untuk pengecekan error tambahan byte (atau
kata) ditambahkan ke sebuah blok data untuk mengungkapkan korupsi
data. Bit n of this byte indicates whether there was an even or odd number
of “1” bits in bit position n of the bytes in the block. Bit n byte
ini menunjukkan apakah ada jumlah genap atau ganjil dari “1” bit pada posisi
bit n byte di blok tersebut. The parity byte is computed byXOR ing the
data bytes in the block. Paritas byte dihitung dengan XOR ing
byte data dalam blok.Longitudinal parity allows single bit errors to be
detected. paritas longitudinal memungkinkan kesalahan-kesalahan bit
tunggal untuk dideteksi.
LRC Generasi
The Longitudinal Redundancy Check (LRC) lapangan satu byte, yang berisi nilai biner delapan-bit.Nilai LRC dihitung oleh perangkat transmisi, yang menambahkan LRC ke pesan. Perangkat penerima kalkulasi ulang sebuah LRC saat menerima pesan, dan membandingkan nilai yang dihitung dengan nilai aktual yang diterima di lapangan LRC. Jika kedua nilai tidak sama, suatu hasil kesalahan.
LRC dihitung dengan menambahkan bersama-sama berturut-turut delapan-bit byte dalam pesan, membuang apapun membawa, kemudian dua yang melengkapi hasilnya. LRC adalah bidang delapan-bit, sehingga setiap penambahan baru dari karakter yang akan menghasilkan nilai yang lebih tinggi dari 255 desimal hanya berguling nilai lapangan melalui nol. Karena tidak ada bit kesembilan, carry tersebut akan dibuang secara otomatis.
Menghasilkan sebuah LRC
Langkah 1 Tambahkan semua byte dalam pesan, termasuk usus besar awal dan akhir CRLF.Tambahkan mereka ke medan delapan-bit, sehingga membawa akan dibuang.
Langkah 2 Kurangi nilai kolom terakhir dari hex FF (semua 1 s), untuk menghasilkan orang-orang-komplemen.
Langkah 3 Tambahkan 1 untuk menghasilkan two’s-komplemen.
Menempatkan LRC ke Message
Ketika delapan-bit LRC (dua karakter ASCII) ditransmisikan dalam pesan, karakter urutan tinggi akan dikirim pertama, diikuti oleh urutan rendah karakter-misalnya, jika nilai LRC adalah 61 hex (0110 0001):
LRC Generasi
The Longitudinal Redundancy Check (LRC) lapangan satu byte, yang berisi nilai biner delapan-bit.Nilai LRC dihitung oleh perangkat transmisi, yang menambahkan LRC ke pesan. Perangkat penerima kalkulasi ulang sebuah LRC saat menerima pesan, dan membandingkan nilai yang dihitung dengan nilai aktual yang diterima di lapangan LRC. Jika kedua nilai tidak sama, suatu hasil kesalahan.
LRC dihitung dengan menambahkan bersama-sama berturut-turut delapan-bit byte dalam pesan, membuang apapun membawa, kemudian dua yang melengkapi hasilnya. LRC adalah bidang delapan-bit, sehingga setiap penambahan baru dari karakter yang akan menghasilkan nilai yang lebih tinggi dari 255 desimal hanya berguling nilai lapangan melalui nol. Karena tidak ada bit kesembilan, carry tersebut akan dibuang secara otomatis.
Menghasilkan sebuah LRC
Langkah 1 Tambahkan semua byte dalam pesan, termasuk usus besar awal dan akhir CRLF.Tambahkan mereka ke medan delapan-bit, sehingga membawa akan dibuang.
Langkah 2 Kurangi nilai kolom terakhir dari hex FF (semua 1 s), untuk menghasilkan orang-orang-komplemen.
Langkah 3 Tambahkan 1 untuk menghasilkan two’s-komplemen.
Menempatkan LRC ke Message
Ketika delapan-bit LRC (dua karakter ASCII) ditransmisikan dalam pesan, karakter urutan tinggi akan dikirim pertama, diikuti oleh urutan rendah karakter-misalnya, jika nilai LRC adalah 61 hex (0110 0001):
2. CRC (Cyclic
Redundancy Check)
CRC (Cyclic Redundancy Check) adalah algoritma untuk
memastikan integritas data dan mengecek kesalahan pada suatu data yang akan
ditransmisikan atau disimpan.
Data yang hendak ditransmisikan atau disimpan ke sebuah media penyimpanan
rentan sekali mengalami kesalahan, seperti halnya noise yang terjadi selama
proses transmisi atau memang ada kerusakan perangkat keras. Untuk memastikan
integritas data yang hendak ditransmisikan atau disimpan, CRC dapat digunakan.
CRC bekerja secara sederhana, yakni dengan menggunakan perhitungan matematika
terhadap sebuah bilangan yang disebut sebagai Checksum, yang dibuat berdasarkan
total bit yang hendak ditransmisikan atau yang hendak disimpan.
Dalam transmisi jaringan, khususnya dalam jaringan berbasis teknologi
Ethernet, checksum akan dihitung terhadap setiap frame yang hendak
ditransmisikan dan ditambahkan ke dalam frame tersebut sebagai informasi dalam
header atau trailer. Penerima frame tersebut akan menghitung kembali apakah
frame yang ia terima benar-benar tanpa kerusakan, dengan membandingkan nilai
frame yang dihitung dengan nilai frame yang terdapat dalam header frame. Jika
dua nilai tersebut berbeda, maka frame tersebut telah berubah dan harus
dikirimkan ulang.
CRC didesain sedemikian rupa untuk memastikan integritas data terhadap
degradasi yang bersifat acak dikarenakan noise atau sumber lainnya (kerusakan
media dan lain-lain). CRC tidak menjamin integritas data dari ancaman
modifikasi terhadap perlakukan yang mencurigakan oleh para hacker, karena
memang para penyerang dapat menghitung ulang checksum dan mengganti nilai
checksum yang lama dengan yang baru untuk membodohi penerima.
Kode pendeteksian kesalahan yang paling umum serta paling hebat
adalah Cyclic
Redundancy Check (CRC) yang dapat digambarkan sebagai berikut,
dengan adanya blok bit k-bit, atau pesan, transmitter mengirimkan suatu deretan
n-bit, disebut sebagai Frame Check Sequence (FCS), sehingga frame yang
dihasilkan, terdiri dari k+n bit, dapat dibagi dengan jelas oleh beberapa nomor
yang sebelumnya sudah ditetapkan. Kemudian receiver membagi frame yang datang
dengan nomor tersebut dan, bila tidak ada sisa, maka diasumsikan tidak terdapat
kesalahan.
Untuk menjelaskan hal tersebut, kita dapat menggunakan dua cara
yaitu:
a. Modulo 2 Aritmatik
Modulo 2 aritmatik menggunakan penambahan biner tanpa pembawa, yang hanya
merupakan operasi EX-OR saja. Pengurangan biner tanpa pembawa juga
diterjemahkan sebagai operasi EX-OR. Sebagai contoh:
b. Polynomials
Cara kedua mengamati proses CRC adalah dengan menyatakan seluruh nilai
sebagai polynomial dalam suatu model variabel X, dengan koefisien-koefisien
biner. Koefisien berhubungan dengan bit-bit dalam angka biner. Jadi, untuk M =
110011, kita peroleh M(X) = X5 + X4 + X + 1, dan untuk P = 11001,
kita peroleh p (X) = X4 + X3 + 1. Operasi aritmetik lagi-lagi berupa
modulo 2. Sekarang, proses CRC digambarkan sebagai:
Error E(X) hanya akan menjadi tak terdeteksi bila dibagi dengan P(X). Hal
ini bisa ditunjukkan bahwa semua kesalahan berikut ini tidak dibagi dengan
pilihan P(X) yang sesuai dan karenanya mampu dideteksi:
· Semua bit kesalahan
tunggal
· Semua bit kesalahan
ganda, selama P(X) memiliki sedikitnya tiga 1s
· Apapun angka
kesalahan yang garijil, selama P(X) memuat faktor (X + 1)
· Apapun banyaknya
kesalahan dimana panjangnya kurang dari panjang polynomial pembagi; yakni,
kurang dari atau setara dengan panjang FCS.
· Kesalahan yang besar
sekali
Selain itu, dapat pula ditunjukkan bahwa bila semua pola kesalahan dianggap
sama, maka untuk kesalahan dari panjang r + 1, probabilitas dari kesalahan yang
tak terdeteksi E(X) dibagi dengan p (X) l adalah 1/2r-1, dan untuk
kesalahan yang lebih panjang, probabilitasnya adalah 1/2r-1, dimana r adalah
panjang FCS.
Empat versi P(X) yang telah digunakan secara luas adalah:
CRC-12
CRC-16
CRC-CCITT
CRC-32
|
= X12 + X11 + X3 + X2 + X + 1
= X16 + X15 + X2 + 1
= X16 + X12 + X5 + 1
= X32 + X26 + X23 + X22 +
X16 + X 12 + X11+ X10 + X8 + X7 +
X5 + X4 + X2+ X + 1
|
Sistem CRC-12 dipergunakan untuk transmisi sederatan sebesar 6-bit karakter
dan menbangkitkan 12-bit FCS. Baik CRC-16 maupun CRC-COTT populer untuk 8-bit karakter,
masing-masing di Amerika Serikat dan Eropa, di mana keduanya sama-sama
menghasilkan 16-bit FCS. Nampaknya ini sesuai untuk sebagian besar aplikasi,
meskipun CRC-32 ditentukan sebagai salah satu pilihan untuk standar transmisi
synchronous ujung-ke-ujung.
CRC Generasi The
Redundancy Check Siklus (CRC) lapangan adalah dua byte, yang berisi nilai biner
16-bit. Nilai CRC dihitung oleh perangkat transmisi, yang menambahkan CRC
ke pesan. Perangkat penerima kalkulasi ulang CRC saat penerimaan pesan,
dan membandingkan nilai yang dihitung dengan nilai aktual yang diterima di
lapangan CRC. Jika kedua nilai tidak sama, suatu hasil kesalahan.
CRC dimulai dengan terlebih dahulu preloading register 16-bit untuk semua 1 s. Kemudian proses dimulai dari penerapan berturut-turut delapan-bit byte pesan ke isi saat register.Hanya delapan bit data di masing-masing karakter yang digunakan untuk menghasilkan CRC. Start dan stop bit, dan bit paritas, tidak berlaku untuk CRC.
Selama generasi CRC, masing-masing karakter delapan-bit eksklusif ORed dengan isi register. Hasilnya digeser ke arah bit paling signifikan (LSB), dengan nol diisi ke dalam bit yang paling signifikan (MSB) posisi. LSB diambil dan diperiksa. Jika LSB adalah 1, register kemudian ORed eksklusif dengan nilai, preset tetap. Jika LSB adalah 0, tidak ada tempat eksklusif OR membutuhkan.
Proses ini diulang sampai delapan pergeseran telah dilakukan. Setelah pergeseran (kedelapan) lalu, karakter delapan-bit berikutnya adalah eksklusif ORed dengan nilai saat mendaftar, dan mengulangi proses selama delapan pergeseran lebih seperti dijelaskan di atas. Isi akhir register, setelah semua karakter pesan telah diterapkan, adalah nilai CRC.
CRC dimulai dengan terlebih dahulu preloading register 16-bit untuk semua 1 s. Kemudian proses dimulai dari penerapan berturut-turut delapan-bit byte pesan ke isi saat register.Hanya delapan bit data di masing-masing karakter yang digunakan untuk menghasilkan CRC. Start dan stop bit, dan bit paritas, tidak berlaku untuk CRC.
Selama generasi CRC, masing-masing karakter delapan-bit eksklusif ORed dengan isi register. Hasilnya digeser ke arah bit paling signifikan (LSB), dengan nol diisi ke dalam bit yang paling signifikan (MSB) posisi. LSB diambil dan diperiksa. Jika LSB adalah 1, register kemudian ORed eksklusif dengan nilai, preset tetap. Jika LSB adalah 0, tidak ada tempat eksklusif OR membutuhkan.
Proses ini diulang sampai delapan pergeseran telah dilakukan. Setelah pergeseran (kedelapan) lalu, karakter delapan-bit berikutnya adalah eksklusif ORed dengan nilai saat mendaftar, dan mengulangi proses selama delapan pergeseran lebih seperti dijelaskan di atas. Isi akhir register, setelah semua karakter pesan telah diterapkan, adalah nilai CRC.
Langkah 1 Muat register 16-bit dengan hex FFFF (semua 1
s). Panggilan ini register CRC.
Langkah 2 Eksklusif ATAU byte delapan-bit pertama dari pesan dengan urutan byte rendah dari 16-bit CRC mendaftar, menempatkan hasilnya dalam register CRC.
Langkah 3 Shift CRC mendaftar satu bit ke kanan (menuju LSB), zerofilling MSB. Ekstrak dan memeriksa LSB.
Langkah 4 Jika LSB adalah 0, ulangi Langkah 3 (pergeseran lain). Jika LSB adalah 1, Eksklusif ATAU register CRC dengan hex A001 nilai polinomial (1010 0000 0000 0001).
Langkah Langkah 5 Ulangi 3 dan 4 sampai delapan pergeseran telah dilakukan. Bila ini dilakukan, byte delapan-bit lengkap akan diproses.
Langkah Langkah 6 Ulangi 2 … 5 untuk byte delapan-bit berikutnya pesan. Terus melakukan hal ini sampai semua byte telah diproses.
Hasil akhir dari Isi register CRC adalah nilai CRC.
Langkah 7 Ketika CRC ditempatkan ke dalam pesan, byte yang atas dan bawah harus bertukar seperti yang dijelaskan di bawah ini.
Menempatkan CRC ke pesan yang
Ketika 16-bit CRC (dua delapan-bit byte) ditransmisikan dalam pesan, urutan byte rendah akan ditransmisikan pertama, diikuti oleh urutan tinggi byte-misalnya, jika nilai CRC 1241 hex (0001 0010 0100 0001) :
Langkah 2 Eksklusif ATAU byte delapan-bit pertama dari pesan dengan urutan byte rendah dari 16-bit CRC mendaftar, menempatkan hasilnya dalam register CRC.
Langkah 3 Shift CRC mendaftar satu bit ke kanan (menuju LSB), zerofilling MSB. Ekstrak dan memeriksa LSB.
Langkah 4 Jika LSB adalah 0, ulangi Langkah 3 (pergeseran lain). Jika LSB adalah 1, Eksklusif ATAU register CRC dengan hex A001 nilai polinomial (1010 0000 0000 0001).
Langkah Langkah 5 Ulangi 3 dan 4 sampai delapan pergeseran telah dilakukan. Bila ini dilakukan, byte delapan-bit lengkap akan diproses.
Langkah Langkah 6 Ulangi 2 … 5 untuk byte delapan-bit berikutnya pesan. Terus melakukan hal ini sampai semua byte telah diproses.
Hasil akhir dari Isi register CRC adalah nilai CRC.
Langkah 7 Ketika CRC ditempatkan ke dalam pesan, byte yang atas dan bawah harus bertukar seperti yang dijelaskan di bawah ini.
Menempatkan CRC ke pesan yang
Ketika 16-bit CRC (dua delapan-bit byte) ditransmisikan dalam pesan, urutan byte rendah akan ditransmisikan pertama, diikuti oleh urutan tinggi byte-misalnya, jika nilai CRC 1241 hex (0001 0010 0100 0001) :
Catatan: Fungsi ini melakukan swapping dari tinggi / rendah byte CRC
internal. Byte sudah bertukar dalam nilai CRC yang kembali dari
fungsi. Oleh karena itu nilai CRC kembali dari fungsi tersebut dapat
langsung ditempatkan ke dalam pesan untuk transmisi.
Sebuah frame check sequence (FCS) mengacu pada
tambahan kesalahan-mendeteksi kode yang ditambahkan kepada sebuah frame dalam
protokol komunikasi. Frame digunakan untuk mengirim data lapisan atas dan
akhirnya data aplikasi dari sumber ke tujuan.
Perhatikan bahwa deteksi tidak juga berarti pemulihan
kesalahan. Ethernet mendefinisikan bahwa kerangka errored harus dibuang, tetapi
Ethernet tidak mengambil tindakan untuk menyebabkan frame harus ditransmisikan
ulang. Protokol lain, terutama TCP, dapat melihat data yang hilang dan
menyebabkan error recovery terjadi.
Perhitungan Dijelaskan
NTCIP dan AB pengembang 3.418 protokol biasanya
menggunakan metode polinomial terbalik dengan menghitung
Frame Check Sequence (FCS). Metode ini pemeriksaan
terhadap "angka ajaib" dari 0xf0b8 untuk memastikan
bebas dari kesalahan transmisi. ISO 3309 menentukan
"angka ajaib" dari 0x1d0f, yang merupakan kebalikan dari bit
0xf0b8. Metode polinomial terbalik mengoreksi fakta
bahwa bit setiap byte ini dibalik di
waktu transmisi ketika ditransmisikan melalui saluran
serial, meskipun pemeriksaan terhadap metode frame
memerintahkan bit yang paling signifikan untuk paling
signifikan.
FCS Perhitungan di Transmitter
Metode untuk menghitung FCS pada pemancar adalah
sebagai berikut:
1 Invert pertama 16 bit dari frame yang akan dikirim,
1 ini menjadi 0 dan 0 menjadi 1 itu.
2 Tambahkan 16 angka nol pada akhir frame.
3 Bagilah frame oleh generator polinomial. Langkah ini
melibatkan XORing
sisanya berulang kali dengan 17 bit pembangkit polinomial
sampai sisanya adalah 16 bit
panjang.
0 komentar:
Posting Komentar