tulisan

Welcome Blog PT.Sony Music Indonesia

Senin, 17 Januari 2011

Teknik Sinyal Encoding,,Pendeteksi Error,,Automatic Refcat Request

Data Encoding
1. Pengenalan
Teknik Encoding dan modulasi :
• Untuk pensinyalan digital, suatu sumber data g(t) dapat berupa digital atau analog yang di encode menjadi suatu sinyal digital x(t)
• Untuk pensinyalan analog, input sinyal m(t) dapat berupa analog atau digital dan disebut sinyal pemodulasi (sinyal baseband), yang dimodulasi menjadi sinyal termodulasi s(t). Dasarnya adalah memodulasi sinyal carrier yang sesuai dengan medium transmisinya.
Modulasi adalah proses encoding sumber data dalam suatu sinyal carrier dengan frekuensi fc.
2. Teknik Pengkodean :
a. Data digital sinyal digital
Pendahuluan
Elemen sinyal : tiap pulsa dari sinyal digital. Data binary yang ditransmisiskan dengan meng-encode tiap bit data menjadi elemen-elemen sinyal.
Sinyal unipolar : semua elemen sinyal yang mempunyai tanda yang sama, yaitu positif semua atau negative semua.
Sinyal polar : elemen-elemen sinyal dimana salah satu kondisi logikanya diwakili oleh level tegangan positif dan yang lainnya level tegangan negatif.
Durasi : atau lebar suatu bit , yaitu waktu yang dibutuhkan oleh transmitter untuk memancarkan bit tersebut.
Modulation rate : kecepatan dimana level sinyal berubah, dinyatakan dalam Bauds atau elemen sinyal perdetik.
Mark = digit binary ‘1’
Space = digit binary ‘0’
Interpretasi Sinyal
Tugas Receiver dalam mengartikan sinyal digital :
• Receiver harus mengetahui timing setiap bit.
• Receiver harus menentukan apakah level sinyal dalam posisi bit 1 (high) atau 0 (low).
Tugas-tugas ini dilaksanakan dengan men-sampling tiap posisi bit pada tengah-tengah interval dan membandingkan nilainya dengan thereshold.
Faktor kesuksesan receiver mengartikan sinyal datang :
• Data rate (kecepatan data) : peningkatan data raa akan meningkatkan bit error rate (kecepatan terjadinya kesalahan bit).
• Rasio S/N (signal to Noise Ratio / SNR) : Peningkatan S/N akan menurunkan bit error rate.
• Bandwidth : peningkatan bandwidth dapat meningkatkan data rate.
Perbandingan Skema Encoding
Lima faktor yang perlu dinilai dan dibandingkan dari berbagai skema encoding :
• Spektrum sinyal : desain sinyal yang bagus harus mengkonsentrasikan kekuatan transmisinya pada daerah tengah dari bandwidth transmisi ; untuk mengatasi distorsi dalam penerimaan sinyal, digunakan desain kode yang sesuai dengan bentuk dari spektrum sinyal transmisi.
• Clocking : menentukan awal dan akhir dari setiap posisi bit dengan mekanisme sinkronisasi yang berdasarkan pada sinyal transmisi.
• Deteksi error : dibentuk dalam skema fisik encoding sinyal.
• Interferensi sinyal dan kekebalan terhadap noise : beberapa kode lebih baik dari yang lain.
• Biaya dan kompleksitas : semakin tinggi kecepatan pensinyalan untuk memenuhi data rate yang ada, semakin besar biayanya.
Skema Encoding
1. Non return to zero level (NRZ-L)
• Yaitu suatu kode dimana tegangan negatif dipakai untuk mewakili suatu binary dan tegangan positif untuk binary lainnya (dua perbedaan tegangan untuk bit-0 dan bit-1.
• Tegangan konstan selama interval bit ; tidak ada transisi untuk kembali ke tegangan nol, misalnya.
• Penerapan : tegangan konstan positif untuk ‘1’ dan tidak ada tegangan untuk ‘0’, atau tegangan negatif untuk nilai ‘1’ dan positif untyuk nilai yang lain.
2. Non return to zero inverted (NRZ-I)
• Yaitu suatu kode dimana suatu transisi (low ke high atau high ke low) pada awal suatu bit time akan dikenal sebagai binary ‘1’ untuk bit time tersebut. ; tidak ada transisi berarti binary ‘0’, sehingga NRZI merupakan salah satu
contoh dari deferensial encoding. Keuntungannya : lebih kebal noise, tidak dipengaruhi oleh level tegangan.
Kelemahan NRZ-L dan NRZ-I :
• Keterbatasan dalam komponen dc
• Kemampuan sinkronisasi yang buruk
Pengkodean Polar
Polar (kutub) adalah pengkodean yang penggunaan dua level tegangan yaitu positif dan
negatif. Dengan menggunakan dua level pada semua metode pengkodean tegangan ratarata
yang berada diatas garis (sumbu horisontal) akan direduksi dan problem komponen
DC seperti pada unipolar akan dikurangi.
Di pengkodean Manchester dan differensial Manchester, masing-masing bit terdiri atas
tegangan positif maupun negatif, oleh sebab itu komponen DC secara total dihapuskan.
Ada banyak variasi pengkodean polar, tetapi kita akan membahas hanya tiga paling
populer yaitu, nonreturn to zero (NRZ), return to zero(RZ), dan biphase.
Pengkodean NRZ mempunyai dua metode yaitu, Nonreturn to Zero-Level (NRZ-L), dan
Nonreturn to Zero- Invert (NRZ-I).
Biphase juga merujuk pada dua metode.
Yang pertama yaitu Manchester, yaitu metode yang digunakan oleh ethernet LAN.
Yang kedua yaitu Differensial Manchester, adalah metode yang dipakai oleh Token Ring
LAN.
Nonreturn to Zero (NRZ)
Kedua metode transmisi NRZ yang paling populer kita bahas berikut dibawah ini.

 NRZ-L
Dalam pengkodean NRZ-L,Level sinyal tergantung pada bit yang mewakili.
Tegangan positip biasanya berarti bit 0, dan tegangan negatif berarti bit 1 (atau
sebaliknya), dengan begitu level sinyal tergantung pada status bit tersebut. Masalah bisa
timbul kalau ada aliran panjang O atau 1 didalam data.
Penerima akan menerima tegangan kontinyu dan sebaiknya menyesuaikan bit yang
diterimanya dengan mengandalkan clocknya sendiri, yang mungkin tidak disinkronkan
dengan clock pengirim. Pengkodean ini yang digunakan pada interface V.24. atau
EIA.232.
NRZ-I
Dalam NRZ-I, terjadi pembalikan tegangan yang mewakili bit 1. Adanya peralihan antara
tegangan positif dan tegangan negatif, hal ini merepresentasikan bit 1.Sedang untuk bit 0
direpresentasikan tidak ada pergantian.
NRZ-I lebih baik daripada NRZ-L karena sinkronisasi terjadi setiap pergantian sinyal
saat didapat 1 bit. Keberadaan bit 1 dalam aliran data mengakibatkan penerima
menyinkronkan kembali timernya sampai datang transmisi berikutnya.
Dalam NRZ-L, tegangan positif dan negatif mempunyai arti yang spesifik: positif untuk 0
dan negatif untuk 1. Sedang dalam NRZ-I, tegangan pada hakekatnya tak berarti, karena
penerima melihat perubahan dari satu level ke level yang lain sebagai dasar pembacaan
bit 1.

 Teknik biphase memerlukan kecepatan pensinyalan yang tinggi relatif terhadap data rate sehingga lebih
mahal pada aplikasi jarak jauh sehingga digunakan teknik scrambling dimana serangkaian level
tegangan yang tetap pada line digantikan dengan serangkaian pengisi yang akan melengkapi transisi yang
cukup untuk clock receiver mempertahankan synchronisasi. Hasil dari disain ini :
• Tidak ada komponen dc
• Tidak ada serangkaian sinyal level nol yang panjang
• Tidak terjadi reduksi pada data rate
• Kemampuan deteksi error.
Bipolar with 8-Zeros Substitution (B8ZS) yaitu suatu kode dimana:
• Jika terjadi oktaf dari semua nol dan pulsa tegangan terakhir yang mendahului oktaf ini adalah
positif, maka 8 nol dari oktaf tersebut di-encode sebagai 000+ -0- +
• Jika terjadi oktaf dari semua nol dan pulsa tegangan terakhir yang mendahului oktaf ini adalah
negatif, maka 8 nol dari oktaf tersebut di-encode sebagai 000- +0+ -.
High-density bipolar-3 zeros (HDB3) yaitu suatu kode dimana menggantikan stringstring dari 4 nol
dengan rangkaian yang mengandung satu atau dua pulsa atau disebut kode violation, jika violation
terakhir positive maka violation ini pasti negative dan sebaliknya
Aturan subsitusi HDB3 
Bipolar dg substitusi 8 Nol (Bipolar With 8 Zeros Substitution)
Didasarkan pd bipolar-AMI
Jika octet dari semua nol dan tegangan pulsa terakhir sebelumnya positif code-kan sbg 000+-0-+
Jika octet dari semua nol dan tegangan pulsa terakhir negatif code kan sbg 000-+0+-
Menyebabkan dua pelanggaran thd AMI code
Kecil kemungkinannya terjadi sbg hasil dari noise
Penerima mendeteksi dan menginterpretasikan sbg octet dari semua nol

Deteksi Dan Koreksi Error

Sebagai akibat proses-proses fisika yang menyebabkannya terjadi, error pada beberapa media (misalnya, radio) cenderung timbul secara meletup (burst) bukannya satu demi satu. Error yang meletup seperti itu memiliki baik keuntungan maupun kerugian pada error bit tunggal yang terisolasi. Sisi keuntungannya, data komputer selalu dikirim dalam bentuk blok-blok bit. Anggap ukuran blok sama dengan 1000 bit, dan laju error adalah 0,001 per bit. Bila error-errornya independen, maka sebagian besar blok akan mengandung error. Bila error terjadi dengan letupan 100, maka hanya satu atau dua blok dalam 100 blok yang akan terpengaruh, secara rata-ratanya. Kerugian error letupan adalah bahwa error seperti itu lebih sulit untuk dideteksi dan dikoreksi dibanding dengan error yang terisolasi.

Kode-kode Pengkoreksian Error

Para perancang jaringan telah membuat dua strategi dasar yang berkenaan dengan error. Cara pertama adalah dengan melibatkan informasi redundan secukupnya bersama-sama dengan setiap blok data yang dikirimkan untuk memungkinkan penerima menarik kesimpulan tentang apa karakter yang ditransmisikan yang seharusnya ada. Cara lainnya adalah dengan hanya melibatkan redundansi secukupnya untuk menarik kesimpulan bahwa suatu error telah terjadi, dan membiarkannya untuk meminta pengiriman ulang. Strategi pertama menggunakan kode-kode pengkoreksian error (error-correcting codes), sedangkan strategi kedua menggunakan kode-kode pendeteksian error (error-detecting codes).
Untuk bisa mengerti tentang penanganan error, kita perlu melihat dari dekat tentang apa yang disebut error itu. Biasanya, sebuah frame terdiri dari m bit data (yaitu pesan) dan r redundan, atau check bits. Ambil panjang total sebesar n (yaitu, n=m+r). Sebuah satuan n-bit yang berisi data dan checkbit sering kali dikaitkan sebagai codeword n-bit.
Ditentukan dua buah codeword: 10001001 dan 10110001. Disini kita dapat menentukan berapa banyak bit yang berkaitan berbeda. Dalam hal ini, terdapat 3 bit yang berlainan. Untuk menentukannya cukup melakukan operasi EXCLUSIVE OR pada kedua codeword, dan menghitung jumlah bit 1 pada hasil operasi. Jumlah posisi bit dimana dua codeword berbeda disebut jarak Hamming (Hamming, 1950). Hal yang perlu diperhatikan adalah bahwa bila dua codeword terpisah dengan jarak Hamming d, maka akan diperlukan error bit tunggal d untuk mengkonversi dari yang satu menjadi yang lainnya.
Pada sebagian besar aplikasi transmisi data, seluruh 2m pesan data merupakan data yang legal. Tetapi sehubungan dengan cara penghitungan check bit, tidak semua 2n digunakan. Bila ditentukan algoritma untuk menghitung check bit, maka akan dimungkinkan untuk membuat daftar lengkap codeword yang legal. Dari daftar ini dapat dicari dua codeword yang jarak Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi kode yang lengkap.
Sifat-sifat pendeteksian error dan perbaikan error suatu kode tergantung pada jarak Hamming-nya. Untuk mendeteksi d error, anda membutuhkan kode dengan jarak d+1 karena dengan kode seperti itu tidak mungkin bahwa error bit tunggal d dapat mengubah sebuah codeword yang valid menjadi codeword valid lainnya. Ketika penerima melihat codeword yang tidak valid, maka penerima dapat berkata bahwa telah terjadi error pada transmisi. Demikian juga, untuk memperbaiki error d, anda memerlukan kode yang berjarak 2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword lainnya, maka perbaikan error dapat ditentukan secara unik.
Sebagai sebuah contoh sederhana bagi kode pendeteksian error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke data. Parity bit dipilih supaya jumlah bit-bit 1 dalam codeword menjadi genap (atau ganjil). Misalnya, bila 10110101 dikirimkan dalam parity genap dengan menambahkan sebuah bit pada bagian ujungnya, maka data itu menjadi 101101011, sedangkan dengan parity genap 10110001 menjadi 101100010. Sebuah kode dengan parity bit tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan parity yang salah. Cara ini dapat digunakan untuk mendeteksi erro-error tunggal.
Sebagai contoh sederhana dari kode perbaikan error, ambil sebuah kode yang hanya memiliki empat buah codeword valid :
0000000000,0000011111,1111100000 dan 1111111111
Kode ini mempunyai jarak 5, yang berarti bahwa code tersebut dapat memperbaiki error ganda. Bila codeword 0000011111 tiba, maka penerima akan tahun bahwa data orisinil seharusnya adalah 0000011111. Akan tetapi bila error tripel mengubah 0000000000 menjadi 0000000111, maka error tidak akan dapat diperbaiki.
Bayangkan bahwa kita akan merancang kode dengan m bit pesan dan r bit check yang akan memungkinkan semua error tunggal bisa diperbaiki. Masing-masing dari 2m pesan yang legal membutuhkan pola bit n+1. Karena jumlah total pola bit adalah 2n, kita harus memiliki (n+1)2m  2n.
Dengan memakai n = m + r, persyaratan ini menjadi (m + r + 1)2r. Bila m ditentukan, maka ini akan meletakkan batas bawah pada jumlah bit check yang diperlukan untuk mengkoreksi error tunggal.
Dalam kenyataannya, batas bawah teoritis ini dapat diperoleh dengan menggunakan metoda Hamming (1950). Bit-bit codeword dinomori secara berurutan, diawali dengan bit 1 pada sisi paling kiri. Bit bit yang merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check. Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check memaksa parity sebagian kumpulan bit, termasuk dirinya sendiri, menjadi genap (atau ganjil). Sebuah bit dapat dimasukkan dalam beberapa komputasi parity. Untuk mengetahui bit check dimana bit data pada posisi k berkontribusi, tulis ulang k sebagai jumlahan pangkat 2. Misalnya, 11=1+2+8 dan 29=1+4+8+16. Sebuah bit dicek oleh bit check yang terjadi pada ekspansinya (misalnya, bit 11 dicek oleh bit 1,2 dan 8).
Ketika sebuah codeword tiba, penerima menginisialisasi counter ke nol. Kemudian codeword memeriksa setiap bit check, k (k=1,2,4,8,....) untuk melihat apakah bit check tersebut mempunyai parity yang benar. Bila tidak, codeword akan menambahkan k ke counter. Bila counter sama dengan nol setelah semua bit check diuji (yaitu, bila semua bit checknya benar), codeword akan diterima sebagai valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah bit yang tidak benar. Misalnya bila bit check 1,2, dan 8 mengalami kesalahan (error), maka bit inversinya adalah 11, karena itu hanya satu-satunya yang diperiksa oleh bit 1,2, dan 8. Gambar 12 menggambarkan beberapa karakter ASCII 7-bit yang diencode sebagai codeword 11 bit dengan menggunakan kode Hamming. Perlu diingat bahwa data terdapat pada posisi bit 3,5,6,7,9,10,11.
Kode Hamming hanya bisa memperbaiki error tunggal. Akan tetapi, ada trick yang dapat digunakan untuk memungkinkan kode Hamming dapat memperbaiki error yang meletup. Sejumlah k buah codeword yang berurutan disusun sebagai sebuah matriks, satu codeword per baris. Biasanya, data akan ditransmisikan satu baris codeword sekali, dari kiri ke kanan. Untuk mengkoreksi error yang meletup, data harus ditransmisikan satu kolom sekali, diawali dengan kolom yang paling kiri. Ketika seluruh k bit telah dikirimkan, kolom kedua mulai dikirimkan, dan seterusnya. Pada saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per satuan waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k codeword akan terpengaruh. Akan tetapi kode Hamming dapat memperbaiki satu error per codeword, sehingga seluruh blok dapat diperbaiki. Metode ini memakai kr bit check untuk membuat km bit data dapat immune terhadap error tunggal yang meletup dengan panjang k atau kurang.

Kode-kode Pendeteksian Kesalahan

Kode pendeteksian error kadang kala digunakan dalam transmisi data. Misalnya, bila saturan simplex, maka transmisi ulang tidak bisa diminta. Akan tetapi sering kali deteksi error yang diikuti oleh transmisi ulang lebih disenangi. Hal ini disebabkan karena pemakaian transmisi ulang lebih efisien. Sebagai sebuah contoh yang sederhana, ambil sebuah saluran yang errornya terisolasi dan mempunyai laju error 10 –6 per bit.
Anggap ukuran blok sama dengan 1000 bit. Untuk melaksanakan koreksi error blok 1000 bit, diperlukan 10 bit check; satu megabit data akan membutuhkan 10.000 bit check. Untuk mendeteksi sebuah blok dengan error tunggal 1-bit saja, sebuah bit parity per blok akan mencukupi. Sekali setiap 1000 blok dan blok tambahan (1001) akan harus ditransmisikan. Overhead total bagi deteksi error + metoda transmisi ulang adalah hanya 2001 bit per megabit data, dibanding 10.000 bit bagi kode Hamming.
Bila sebuah bit parity tunggal ditambahkan ke sebuah blok dan blok dirusak oleh error letupan yang lama, maka probabilitas error dapat untuk bisa dideteksi adalah hanya 0,5 hal yang sangat sulit untuk bisa diterma. Bit-bit ganjil dapat ditingkatkan cukup banyak dengan mempertimbangkan setiap blok yang akan dikirim sebagai matriks persegi panjang dengan lebar n bit dan tinggi k bit. Bit parity dihitung secara terpisah bagi setiap kolomnya dan ditambahkan ke matriks sebagai baris terakhir. Kemudian matriks ditransmisikan kembali baris per baris. Ketika blok tiba, penerima akan memeriksa semua bit parity, Bila ada bit parity yang salah, penerima meminta agar blok ditransmisi ulang.
Metoda ini dapat mendeteksi sebuah letupan dengan panjang n, karena hanya 1 bit per kolom yang akan diubah. Sebuah letupan dengan panjang n+1 akan lolos tanpa terdeteksi. Akan tetapi bila bit pertama diinversikan, maka bit terakhir juga akan diinversikan, dan semua bit lainnya adalah benar. (Sebuah error letupan tidak berarti bahwa semua bit salah; tetapi mengindikasikan bahwa paling tidak bit pertama dan terakhirnya salah). Bila blok mengalami kerusakan berat akibat terjadinya error letupan yang panjang atau error letupan pendek yang banyak, maka probabilitas bahwa sembarang n kolom akan mempunyai parity yang benar adalah 0,5. Sehingga probabilitas dari blok yang buruk akan bisa diterima adalah 2 –n.
Walaupun metoda di atas kadang-kadang adekuat, pada prakteknya terdapat metode lain yang luas digunakan: Kode polynomial (dikenal juga sebagai cyclic redundancy code atau kode CRC). Kode polynomial didasarkan pada perlakuan string-string bit sebagai representatsi polynomial dengan memakai hanya koefisien 0 dan 1 saja. Sebuah frame k bit berkaitan dengan daftar koefisien bagi polynomial yang mempunyai k suku, dengan range dari xk-1 sampai x0.
Polynomial seperti itu disebut polynomial yang bertingkat k-1. Bit dengan orde tertinggi (paling kiri) merupakan koefisien dari xk-1; bit berikutnya merupakan koefisien dari xk-2, dan seterusnya. Misalnya 110001 memiliki 6 bit, maka merepresentasikan polynomial bersuku 6 dengan koefisien 1,1,0,0,0 dan 1:x5+x4+x0.
Aritmetika polynomial dikerjakan dengan modulus 2, mengikuti aturan teori aljabar. Tidak ada pengambilan untuk pertambahan dan peminjaman untuk pengurangan. Pertambahan dan pengurangan identik dengan EXCLUSIVE OR, misalnya :
Pembagian juga diselesaikan dengan cara yang sama seperti pada pembagian bilangan biner, kecuali pengurangan dikerjakan berdasarkan modulus 2. Pembagi dikatakan “masuk ke” yang dibagi bila bilangan yang dibagi mempunyai bit sebanyak bilangan pembagi.
Saat metode kode polynomial dipakai, pengirim dan penerima harus setuju terlebih dahulu tentang polynomial generator, G(x). Baik bit orde tinggi maupun bit orde rendah dari generator harus mempunyai harga 1. Untuk menghitung checksum bagi beberapa frame dengan m bit, yang berkaitan dengan polynomial M(x), maka frame harus lebih panjang dari polynomial generator. Hal ini untuk menambahkan checksum keakhir frame sedemikian rupa sehingga polynomial yang direpresentasikan oleh frame berchecksum dapat habis dibagi oleh G(x). Ketika penerima memperoleh frame berchecksum, penerima mencoba membaginya dengan G(x). Bila ternyata terdapat sisa pembagian, maka dianggap telah terjadi error transmisi.
Algoritma untuk perhitungan checksum adalah sebagai berikut :
  1. Ambil r sebagai pangkat G(x), Tambahkan bit nol r ke bagian orde rendah dari frame, sehingga sekarang berisi m+r bit dan berkaitan dengan polynomial xrM(x).
  2. Dengan menggunakan modulus 2, bagi string bit yang berkaitan dengan G(x) menjadi string bit yang berhubungan dengan xrM(x).
  3. Kurangkan sisa (yang selalu bernilai r bit atau kurang) dari string bit yang berkaitan dengan xrM(x) dengan menggunakan pengurangan bermodulus 2. Hasilnya merupakan frame berchecksum yang akan ditransmisikan. Disebut polynomial T(x).
Gambar 14 menjelaskan proses perhitungan untuk frame 1101011011 dan G(x) = x4 + x + 1. Jelas bahwa T(x) habis dibagi (modulus 2) oleh G(x). Dalam sembarang masalah pembagian, bila anda mengurangi angka yang dibagi dengan sisanya, maka yang akan tersisa adalah angka yang dapat habis dibagi oleh pembagi. Misalnya dalam basis 10, bila anda membagi 210.278 dengan 10.941, maka sisanya 2399. Dengan mengurangkan 2399 ke 210.278, maka yang bilangan yang tersisa (207.879) habis dibagi oleh 10.941.
Sekarang kita menganalisis kekuatan metoda ini. Error jenis apa yang akan bisa dideteksi ? Anggap terjadi error pada suatu transmisi, sehingga bukannya string bit untuk T(x) yang tiba, akan tetapi T(x) + E(X). Setiap bit 1 pada E(x) berkaitan dengan bit yang telah diinversikan. Bila terdapat k buah bit 1 pada E(x), maka k buah error bit tunggal telah terjadi. Error tunggal letupan dikarakterisasi oleh sebuah awalan 1, campuran 0 dan 1, dan sebuah akhiran 1, dengan semua bit lainnya adalah 0.
Begitu frame berchecksum diterima, penerima membaginya dengan G(x); yaitu, menghitung [T(x)+E(x)]/G(x). T(x)/G(x) sama dengan 0, maka hasil perhitungannya adalah E(x)/G(x). Error seperti ini dapat terjadi pada polynomial yang mengandung G(x) sebagai faktor yang akan mengalami penyimpangan, seluruh error lainnya akan dapat dideteksi.
Bila terdapat error bit tunggal, E(x)=xi, dimana i menentukan bit mana yang mengalami error. Bila G(x) terdiri dari dua suku atau lebih, maka x tidak pernah dapat habis membagi E(x), sehingga seluruh error dapat dideteksi.
Bila terdapat dua buah error bit-tunggal yang terisolasi, E(x)=xi+xj, dimana i > j. Dapat juga dituliskan sebagai E(x)=xj(xi-j + 1). Bila kita mengasumsikan bahwa G(x) tidak dapat dibagi oleh x, kondisi yang diperlukan untuk dapat mendeteksi semua error adalah bahwa G(x) tidak dapat habis membagi xk+1 untuk sembarang harga k sampai nilai maksimum i-j (yaitu sampai panjang frame maksimum). Terdapat polynomial sederhana atau berorde rendah yang memberikan perlindungan bagi frame-frame yang panjang. Misalnya, x15+x14+1 tidak akan habis membagi xk+1 untuk sembarang harga k yang kurang dari 32.768.
Bila terdapat jumlah bit yang ganjil dalam error, E(x) terdiri dari jumlah suku yang ganjil (misalnya,x5+x2+1, dan bukannya x2+1). Sangat menarik, tidak terdapat polynomial yang bersuku ganjil yang mempunyai x + 1 sebagai faktor dalam sistem modulus 2. Dengan membuat x + 1 sebagai faktor G(x), kita akan mendeteksi semua error yang terdiri dari bilangan ganjil dari bit yang diinversikan.
Untuk mengetahui bahwa polynomial yang bersuku ganjil dapat habis dibagi oleh x+1, anggap bahwa E(x) mempunyai suku ganjil dan dapat habis dibagi oleh x+1. Ubah bentuk E(x) menjadi (x+1)Q(x). Sekarang evaluasi E(1) = (1+1)Q(1). Karena 1+1=0 (modulus 2), maka E(1) harus nol. Bila E(x) mempunyai suku ganjil, pensubtitusian 1 untuk semua harga x akan selalu menghasilkan 1. Jadi tidak ada polynomial bersuku ganjil yang habis dibagi oleh x+1.
Terakhir, dan yang terpenting, kode polynomial dengan r buah check bit akan mendeteksi semua error letupan yang memiliki panjang <=r. Suatu error letupan dengan panjang k dapat dinyatakan oleh xi(xk-1 + .....+1), dimana i menentukan sejauh mana dari sisi ujung kanan frame yang diterima letupan itu ditemui. Bila G(x) mengandung suku x0, maka G(x) tidak akan memiliki xi sebagai faktornya. Sehingga bila tingkat ekspresi yang berada alam tanda kurung kurang dari tingkat G(x), sisa pembagian tidak akan pernah berharga nol.
Bila panjang letupan adalah r+1, maka sisa pembagian oleh G(x) akan nol bila dan hanya bila letupan tersebut identik dengan G(x). Menurut definisi letupan, bit awal dan bit akhir harus 1, sehingga apakah bit itu akan sesuai tergantung pada bit pertengahan r-1. Bila semua kombinasi adalah sama dan sebanding, maka probabilitas frame yang tidak benar yang akan diterima sebagai frame yang valid adalah ½ r-1.
Dapat juga dibuktikan bahwa bila letupan error yang lebih panjang dari bit r+1 terjadi, maka probabilitas frame buruk untuk melintasi tanpat peringatan adalah 1/2r yang menganggap bahwa semua pola bit adalah sama dan sebanding.



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.

Stop and wait
Bentuk paling sederhana dari flow-control adalah stop-and-wait flow-control yang bekerja sebagai berikut; entitas sumber mengirimkan frame, setelah diterima entitas tujuan memberi tanda untuk menerima frafe berikutnya dengan mengirimkan balasan sesuai frame yang telah diterima. entitas sumber harus menunggu sampai ia menerima balasan dari entitas tujuan sebelum mengirimkan frame berikutnya. Selanjutnya entitas sumber dapat menghentikan aliran data dengan menahan jawaban. Prosedur ini dapat bekerja dengan baik tentunya bila data dikirimkan dalam jumlah frame yang besar, dalam hal ini entitas sumber akan membagi blok data yang banyak menjadi blok data yang lebih kecil yang kemudian dikirimkan dalam beberapa frame.
Stop-and-wait digunakan untuk transmisi dengan keperluan tertentu, yang memiliki beberapa ciri-ciri :
  • Ukuran buffer pada receiver terbatas.
  • Transmisi dapat lebih banyak, sebab bila dikirimkan secara langsung sebanyak frame dari data yang ada, maka akan mudah menimbulkan error, sehingga dengan frame yang lebih kecil maka error dapat dideteksi lebih awal dari sejumlah frame data yang dikirimkan.
  • Pada pemakaian bersama sebuah media transmisi (misalkan LAN), umumnya tidak diijinkan untuk menempati media transmisi dalam waktu yang lama yang menyebabkan delay pada stasiun lain yang akan melakukan transmisi.
Pada gambar yang menyertai postingan ini berisi urutan gambar dari sebuah proses transmisi (dengan waktu transmisi = 1, dan waktu propagasi = a). Pada urutan 1 sampai dengan 4 ditunjukkan proses transmisi frame yang berisi data, dan pada gambar yang terakhir (urutan nomer 5) menunjukkan kembalinya frame jawaban yang kecil. Dengan catatan bahwa pada a>1 menunjukkan media transmisi sedang sibuk (dipergunakan statiun lain), sedangkan a<1 media transmisi sedang kosong sehingga dapat dipergunakan secara effisien.
 
Go-back-N ARQ

Bentuk pengkontrolan kesalahan didasarkan atas teknik kontrol arus sliding window yang biasa disebut juga dengan Go-back-N ARQ. Dalam metode ini, stasiun bisa mengirim deretan frame yang diurutkan berdasarkan suatu modulo bilangan. Jumlah frame balasan yang ada ditentukan oleh ukuran jendela, menggunakan teknik kontrol arus jendela penggeseran. Bila tidak terjadi suatu. kesalahan, stasiun tujuan akan membalas (RR = Receive Ready, atau piggybacked Acknowledgement) frame yang datang seperti biasa. Bila stasiun tujuan mendeteksi suatu kesalahan pada sebuah frame, stasiunt tujuan mengirim balasan negatif (REJ = reject) untuk frame tersebut. Stasiun tujuan kemudian membuang frame itu dan semua frame-frame yang nantinya akan datang sampai frame yang mengalami kesalahan diterima dengan benar. Jadi, stasiun sumber, bila menerima REJ, harus melakukan retransniisi terhadap frame yang mengalami kesalahan tersebut plus semua frame pengganti yang ditransmisikan sementara.
Pertimbangkan bahwa stasiun A mengirim frame ke stasiun B. Setelah setiap transmisi dilakukan, A menyusun pencatat waktu balasan untuk frame yang baru saja ditransmisi. Anggap saja bahwa B sebelumnya berhasil menerima frame (i – 1) dan A baru saja mentransmisikan frame i. Teknik go-back-N mempertimbangkan kemungkinan-kemungkinan berikut ini:
  1. Rusaknya frame: Bila frame yang diterima invalid (misalnya, B mendeteksi adanya kesalahan), B membuang frame dan tidak melakukan tindakan apa-apa. Dalam hal ini ada dua subkasus,yakni:
    1. Didalam periode waktu yang memungkinkan, A berturut-turut mengirim frame (i+1). B menerima frame (i+1) yang tidak beres dan mengirim REJ i. A harus melakukan retransmisi terhadap frame i dan semua frame urutannya.
    2. A tidak segera mengirim frame-frame tambahan. B tidak menerima apa-apa serta tidak mengembalikan RR maupun REJ. Bila pewaktu A habis, A mentransmisikan frame RR yang memuat bit yang disebut dengan bit P, yang disusun berdasarkan 1. B menerjemahkan frame RR dengan bit P dari 1 sebagai perintah yang harus dijawab dengan jalan mengirimkan RR, menunjukkan frame berikutnya yang diharapkan, yang berupa frame i. Bila A menerima. RR, ia kembali mentransmisikan frame i.
  2. Rusaknya RR. Terdapat dua subkasus:
    1. B menerima frame i dan mengirim RR (i+1), yang hilang saat singgah. Karena balasannya kumulatif (misalnya, RR 6 berarti semua frame sampai 5 dibalas), kemungkinan A akan menerima RR urutannya sampai frame berikutnya dan akan tiba sebelum pewaktu yang dihubungkan dengan frame i berakhir.
    Karena adanya penundaan perambatan pada jalur, dari saat itu di mana balasan (baik positif maupun negatif) tiba kembali di stasiun pengiriman, sedikitnya telah dikirim satu frame tambahan di luar frame yang sedang dibalas. Dalam contoh ini, frame 4 mengalami kerusakan. Frame 5 dan 6 diterima tidak sesuai yang diperintahkan dan dibuang oleh B. Saat frame 5 tiba, B segera mengirim REJ 4. Saat REJ untuk frame 4 diterima, tidak hanya frame 4 saja namun juga frame 5 dan 6 yang harus ditransmisikan kembali. Perlu dicatat bahwa transmitter harus menjaga tiruan semua frame yang tidak dibalas. Pada bagian flow control, telah dibahas bahwa untuk bidang bernomor urut k-bit, yang menyediakan jarak bernomor urut 2k, ukuran window maksimum dibatasi sampai 2k-l. Ini harus dilakukan dengan cara dilakukannya interaksi antara pengontrolan kesalahan dan balasan. Amati, bila data sedang dipindahkan ke dua arah, stasiun B harus mengirimkan piggybacked ACK ke frame yang dari stasiun A di dalam frame data yang sedang ditransmisikan oleh B. Bahkan bila balasannya sudah dikirim. Sebagaimana yang telah kita sebutkan tadi, hal ini karena B harus menempatkan beberapa nomor pada bidang di dalam balasan data framenya. Seperti yang nampak pada contoh, diasumsikan nomor urut 3-bit (jarak urutan nomor = 8). Anggap saja sebuah stasiun mengirim frame 0 dan menerima kembali RR 1 dan kemudian mengirim frame 1, 2, 3, 4, 5, 6, 7, 0 dan menerima RR 1 yang lain. Ini berarti bahwa kedelapan frame sudah diterima dengan benar dan RR 1 merupakan balasan kumulatif. Juga bisa berarti bahwa kedelapan frame rusak atau hilang saat transit, dan stasiun penerima mengulangi RR 1 sebelumnya. Problem seperti ini bisa dihindari bila ukuran jendela maksimum dibatasi sampai 7 (23 – 1).


    Dengan selective-reject ARQ, frame-frame yang hanya diretransmisikan adalah frame-frame yang menerima balasan negatif, dalam hal ini disebut SREJ atau frame-frame yang waktunya sudah habis. Gambar di posting ini menyajikan ilustrasi skema ini. Bila frame 5 diterima rusak, B mengirim SREJ 4, yang berarti frame 4 tidak diterima. Selanjutnya, B berlanjut dengan menerima frame-frame yang datang dan menahan mereka sampai frame 4 yang valid diterima. Dalam. hal ini, B dapat meletakkan frame sesuai pada tempatnya agar bisa dikirim ke software pada lapisan yang lebih tinggi.
    Selective Reject lebih efisien dibanding go-back-N, karena selective reject meminimalkan jumlah retransmisi. Dengan kata lain, receiver harus mempertahankan penyangga sebesar mungkin untuk menyimpan tempat bagi frame SREJ sampai frame yang rusak diretransmisi, serta harus memuat logika untuk diselipkan kembali frame tersebut pada urutan yang tepat. Selain itu, transrrdtter juga memerlukan logika yang lebih kompleks agar mampu mengirimkan frame diluar urutan. Karena komplikasi semacam itu, selective-reject ARQ tidak terlalu banyak dipergunakan dibanding go-back N ARQ.
    Batas ukuran jendela lebih terbatas untuk selective-reject daripada go-back-N. Amati kasus ukuran nomor urut 3-bit untuk selective reject. Dengan ukuran jendela sebesar tujuh, Ialu amati skenario berikut:
  3. Stasiun A mengirim frame 0 melalui 6 menuju stasiun B
  4. Stasiun B menerima ketujuh frame dan membalasnya secara komulatif dengan RR7.
  5. karena adanya derau besar, RR7 menghilang.
  6. Waktu habis dan mentransmisikan frame 0 kembali.
  7. B memajukan jendela penerimanya agar menerima frame 7, 0, 1, 2, 3, 4, dan 5. Jadi diasumsikan bahwa frame 7 sudah hilang dan berarti pula ini merupakan frame 0 yang baru diterimanya.
  8.  Masalah pada skenario tersebut, adalah adanya tumpang tindih antara jendela pengiriman dan penerimaan. Untuk mengatasinya, ukuran jendela maksimum harus tidak boleh lebih dari separuh jarak nomor urutan. Pada skenario sebelumnya, seandainya keempat frame tak terbalas belum diselesaikan, maka tidak akan terjadi kekacauan. Umumnya, untuk bidang bernomor urut k-bit, yang meneyediakan jarak urutan nomor sebesar 2k, ukuran maksimum jendela dibatasi sampai 2k-1.

Tidak ada komentar:

Posting Komentar