Rabu, 24 September 2014

PRINSIP KERJA DAN CARA MENEMUKAN KESALAHAN PENGIRIMAN DATA


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

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. 

Menghasilkan 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) :

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

luvne.com ayeey.com cicicookies.com mbepp.com kumpulanrumusnya.comnya.com tipscantiknya.com