Sabtu, 16 November 2013

Deteksi dan Koreksi Eror

Bahasan ini berhubungan dengan algoritma bagi komunikasi yang reliabel dan efisien antara dua mesin yang berdekatan, yaitu dua mesin yang secara fisik terhubung oleh sebuah saluran komunikasi yang secara konseptual bekerja seperti halnya kabel. Sifat penting sebuah saluran yang membuatnya menyerupai kabel adalah bit-bit diteruskan dalam urutan yang sama dengan sewaktu bit-bit itu dikirimkan.
Rangkaian komunikasi sering membuat kesalahan, memiliki laju data yang terbatas, dan terdapat delay propagasi yang tidak nol antara saat bit dikirimkan dengan saat bit diterima. Keterbatasn ini mempunyai implikasi penting bagi efisiensi pemindahan data.
 
MASALAH-MASALAH RANCANGAN DATA LINK LAYER
Data link layer memiliki beberapa fungsi spesifik. Fungsi-fungsi ini meliputi :
  • penyediaan interface layanan-layanan baik bagi network layer,
  • penentuan cara pengelompokan bit dari physical layer ke dalam frame,
  • hal-hal yang berkaitan dengan error transmisi, 
  • pengaturan aliran frame sehingga receiver yang lambat tidak akan terbanjiri oleh pengirim yang cepat.

 
LAYANAN YANG DISEDIAKAN BAGI NETWORK LAYER
Fungsi data link layer adalah menyediakan layanan bagi network layer. Layanannya yang penting adalah pemindahan data dari network layer di mesin sumber ke network layer di mesin yang dituju. Tugas data link adalah mentransmisikan bit-bit ke mesin yang dituju, sehingga bit-bit tersebut dapat diserahkan ke network layer.

Tiga layanan dari Data Link Layer :
1. Layanan Unacknowledged Connectionless
Yaitu dimana mesin sumber mengirimkan sejumlah frame ke mesin yang dituju
dengan tidak memberikan acknowledgment bagi diterimanya frame-frame tersebut. Tidak ada koneksi yang dibuat baik sebelum atau sesudah dikirimkannya frame. Bila sebuah frame hilang sehubungan dengan adanya noise, maka tidak ada usaha untuk memperbaiki masalah tersebu di data link layer. Jenis layanan ini cocok bila laju error sangat rendah, sehingga recovery bisa dilakukan oleh layer yang lebih tinggi. Layanan ini sesuai untuk lalu lintas real time, seperti percakapan, dimana data yang terlambat dianggap lebih buruk dibanding data yang buruk. Sebagian besar LAN menggunakan layanan unacknowledgment connectionless pada data link layer.

2. Layanan Acknowledged Connectionless
Layanan inipun tidak menggunakan koneksi, akan tetapi setiap frame dikirimkan secara independent dan secara acknowledgment. Dalam hal ini, pengirim akan mengetahui apakah frame yang dikirimkan ke mesin tujuan telah diterima dengan baik atau tidak. Bila ternyata belum tiba pada interval waktu yang telah ditentukan, maka frame akan dikirimkan kembali, mungkin saja hilangnya knowledge akan menyebabkan sebuah frame perlu dikirimkan beberapa kali dan akan diterima beberapa kali juga. Layanan ini akan bermanfaat untuk saluran unreliablem, seperti sistem tanpa kabel.

 3. Layanan Acknowledged Connection Oriented
Dengan layanan ini, mesin sumber dan tujuan membuat koneksi sebelum memindahkan datanya. Setiap frame yang dikirim tentu saja diterima. Selain itu, layanan ini menjamin bahwa setiap frame yang diterima benar-benar hanya sekali dan semua frame diterima dalam urutan yang benar. Layanan ini juga menyediakan proses-proses network layer dengan ekivalen aliran bit reliabel. Pada layanan connection-oriented dipakai, pemindahan data mengalami tiga fase (tahap). 
  • Fase I koneksi ditentukan dengan membuat kedua mesinmenginisialisasi variabel-variabel dan counter yang diperlukan untukmengawasi frame yang mana yang telah diterima dan mana yang belum.
  • Fase II, satu frame atau lebih mulai ditransmisikan. 
  • Fase III koneksi dilepaskna, pembebasan variabel, buffer, dan resource lainnya yang dipakai untuk menjaga berlangsungnya koneksi.


Karena jarak dan peralatan,  pengiriman  informasi, dapat mengalami perubahan atau melemah. Umumnya interferensi listrik. Kesalahan timbul dalam bentuk  burst yaitu lebih dari  satu bit  terganggu  dalam satu  satuan  waktu. Deteksi error dengan Redundansi, yaitu data tambahan yang  tidak ada hubungannya dengan isi informasi yang dikirimkan, berupa bit pariti. Berfungsi menunjukkan ada tidaknya  kesalahan data. Yaitu dengan mendeteksi  dan  mengoreksi  kesalahan  yang terjadi. Makin banyak redundansi makin baik  deteksi errornya. Akibatnya  makin rendah  troughput dari data yang berguna. 

Troughput adalah perbandingan antara data yang berguna  dengan data keseluruhan. Banyaknya tambahan  pada redundansi sampai 100% dari jumlah bit data.

Ada dua pendekatan untuk deteksi kesalahan :
1. Forward Error Control
Dimana setiap karakter yang ditransmisikan atau frame berisi informasi tambahan (redundant) sehingga bila penerima tidak hanya dapat mendeteksi dimana error terjadi, tetapi juga menjelaskan dimana aliran bit yang diterima error.

2. Feedback (backward) Error Control
Dimana setiap karakter atau frame memilki informasi yang cukup untuk memperbolehkan penerima mendeteksi bila menemukan kesalahan tetapi tidak lokasinya. Sebuah transmisi kontro digunakan untuk meminta pengiriman ulang, menyalin informasi yang dikirimkan.

Feedback error control dibagi menjadi 2 bagian, yaitu :
1. Teknik yang digunakan untuk deteksi kesalahan
2. Kontrol algoritma yang telah disediakan untuk mengontrol transmisi ulang.

Metode Deteksi Kesalahan :
 1.   Echo
  • Metode  sederhana  dengan  sistem interaktif .
  • Operator memasukkan data melalui terminal  dan mengirimkan ke  komputer.
  • Komputer akan menampilkan kembali ke terminal, sehingga dapat memeriksa apakah data yang dikirimkan dengan benar.


2.   Error Otomatis
Metode dengan tambahan bit pariti.
Terdapat 2 cara  :
a. Pariti  Ganjil (Odd Parity)
   Yaitu  bit  pariti yang  ditambahkan supaya banyaknya bit "1" tiap karakter atau  data ganjil.
b. Pariti  Genap (Even Parity)
   Yaitu  bit  pariti yang  ditambahkan supaya banyaknya bit "1" tiap karakter atau data genap.

Dengan  bit  pariti  dikenal  3  deteksi kesalahan, yaitu :
a. Vertical Redundancy Check / VRC
Setiap   karakter  yang  dikirimkan   (7  bit) diberi  1  bit pariti. Bit pariti ini  diperiksa oleh penerima untuk mengetahui apakah karakter yang  dikirim benar atau salah. Cara ini hanya dapat melacak 1 bit dan berguna melacak kesalahan  yang  terjadi pada pengiriman  berkecepatan menengah, karena kecepatan tinggi lebih besar kemungkinan  terjadi kesalahan  banyak  bit.
Kekurangan : bila ada 2 bit yang terganggu ia tidak dapat melacaknya karena paritinya akan benar.
Contoh :
ASCII huruf "A" adalah 41h
  100 0001       ASCII 7 bit
1100 0001       ASCII dengan pariti ganjil
0100 0001       ASCII dengan pariti genap

Akibatnya huruf "A" kode ASCII dalam Hex :
- 41  bilamana pariti genapl
- A1 bilamana pariti ganjil

b. Longitudinal Redundancy Check / LRC
LRC untuk  data dikirim secara blok. Cara  ini seperti  VRC hanya saja penambahan  bit  pariti tidak saja pada akhir karakter tetapi juga pada akhir  setiap blok karakter  yang  dikirimkan. Untuk setiap bit dari seluruh blok karakter ditambahkan 1 bit pariti termasuk juga bit pariti dari masing-masing karakter.
Tiap blok mempunyai satu karakter khusus  yang disebut Block Check Character (BCC) yang dibentuk dari bit uji. dan dibangkitkan dengan cara sebagai berikut :
"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"
Kerugian : terjadi overhead akibat penambahan  bit pariti per 7 bit untuk karakter.

c. Cyclic Redundancy Check / CRC
Digunakan pengiriman  berkecepatan tinggi, sehingga perlu rangkaian elektronik yang sukar.
Cara CRC mengatasi masalah overhead dan disebut pengujian berorientasi bit, karena dasar pemeriksaan kemungkinan kesalahan adalah bit atau karakter dan menggunakan rumus matematika  yang khusus. Satu blok  informasi dilihat sebagai sederetan bit yang ditransmisikan. Bit yang ditransmisikan dimasukkan kedalam register geser siklis yang  disebut generator CRC.  Operasi ini didasarkan atas pembagian deretan bit dengan sebuah fungsi khusus. Hasil bagi pembagian diabaikan. Sisanya disalurkan  sebagai BCS (Block Check  Sequence). Fungsi khusus tersebut disebut generator polynominal.        

3.   Framing Check.
Dipakai pada  transmisi  asinkron dengan adanya bit awal dan akhir. Data berada diantara bit awal dan bit akhir. Dengan memeriksa kedua bit ini dapat diketahui apakah data dapat diterima dengan baik atau tidak. Transmisi asinkron mempunyai bentuk bingkai sesuai dengan ketentuan yang dipergunakan.

Pendekatan yang umum dipakai adalah data link layer memecah aliran bit menjadi frame-frame diskrit dan menghitung checksum setiap framenya. Ketika sebuah frame tiba di tujuan, checksum dihitung kembali. Bila hasil perhitungan ulang checksum tersebut berbeda dengan yang terdapat pada frame, maka data link layer akan mengetahui bahwa telah terjadi error dan segera akan mengambil langkah tertentu sehubungan dengan adanya error tersebut (misalnya, membuang frame yang buruk dan mengirimkan kembali laporan error).
Salah satu cara untuk melaksanakan pembuatan frame ini adalah dengan cara menyisipakn gap waktu di antara dua buah frame, sangat mirip seperti spasi antara dua buah katan dalam suatu teks. Akan tetapi, jaringan jarang memberikan jaminan tentang pewaktuan. Karena itu, mungkin saja gap ini dibuang, atau diisi oleh gap lainnya selama proses transmisi, karena sangat besar risikonya dalam menghitung pewaktuan untuk menandai awal dan akhir frame, telah dibuat metode lainnya, yaitu 4 buah metoda :
1. Karakter penghitung
2. Pemberian karakter awak dan akhir, dengan pengisian karakter
3. Pemberian flag awal dan akhir, dengan pengisian bit
4. Pelanggaran pengkodean physical layer.

Metoda framing pertama menggunakan sebuah field pada header untuk menspesifikasikan jumlah karakter di dalam frame. Ketika data link layer pada mesin yang dituju melihat karakter penghitung, maka data link layer akan mengetahui jumlah karakter yang mengikutinya, dan kemudian juga akan
mengetahui posisi ujung frame-nya.  Masalah yang dijumpai dalama algoritma ini adalah bahwa hitungan dapat dikacaukan oleh error transmisi.
Misal bila hitungan karakter 5 frame menjadi 7, maka tempat yang dituju akan tidak sinkron dan tidak dapat mengetahui awal frame berikutnya. Bahkan bila cheksum tidak benar sehingga tempat yang dituju mengetahui bahwa frame yang bersangkutan buruk, maka tidak mungkin untuk menentukan awal frame berikutnya. Pengiriman kembali sebuah frame ke sumber untuk meminta pengiriman ulangpun tidak  akan menolong, karena tempat yang dituju tidak mengetahui jumlah karakter yang terlewat untuk mendapatkan awal transmisi. Untuk alasan ini, metoda hitungan karakter ini sudah jarang digunakan lagi.

Metode framing yang kedua mengatasi masalah resinkronisasi setelah terjadi suatu error dengan membuat masing-masing frame diawali dengan sederetan karakter DLE STX ASCII dan diakhiri dengan DLE ETX (DLE=Data Link Escape, STX=Start Of Text, ETX=End Of Text). Dalam metoda ini, bila tempat yang dituju kehilangan track batas-batas frame, maka yang perlu dilakukan adalah mencari karakter-karakter DLE STX dan DLE ETX. 
Masalah serius yang terjadi pada metoda ini adalah ketika data biner, seperti program object, atau bilangan floating point, ditransmisikan. Karakter-karakter DLE STX dan DLE ETX yang terdapat pada data mudah sekali menganggu framing. Satu cara untuk mengatasi masalah ini adalah dengan membuat data link pengirim menyisipkan sebuah karakter DLE ASCII tepat sebelum karakter DLE "insidentil" pada data. Data link layer pada mesin penerima membuang DLE sebelum data diberikan ke network layer. Teknik ini disebut character stuffing (pengisian karakter). DLE-DLE pada data selalu digandakan. Kerugian penting dalam memakai metoda framing ini sangat berkaitan erat dengan karakter 8-bit secara umum dan kode karakter ASCII pada khususnya. Dengan berkembangnya jaringan, kerugian dari melekatkan kode karakter dalam mekanisma framing menjadi semakin jelas, sehingga suatu teknik baru perlu dibuat untuk memungkinkan pemakaian karakter berukuran sembarang. Teknik baru memungkinkan frame data berisi sembarang sejumlah bit dan mengijinkan kode karakter dengan sembarang jumlah bit per karakter.
Teknik ini bekerja seperti berikut, setiap frame diawali dan diakhiri oleh pola bit khusus, 01111110 yang disebut flag. Kapanpun data link layer pada pengirim menemukan lima buah flag yang berurutan pada data, maka data link layer secara otomatis mengisikan sebuah bit 0 ke aliran bit keluar.
Pengisian bit ini analog dengan pengisian karakter, dimana sebuah DLE diisikan ke aliran karakter keluar sebelum DLE pada data. Ketika penerima melihat 5 buah bit 1 masuk yang berurutan, yang diikuti oleh sebuah bit 0, maka penerima secara otomatis mengosongkan (menghapus) bit 0 tersebut. Seperti halnya pengisian karakter transparan sepenuhnya bagi network layer pada kedua buah komputer, demikian pula halnya dengan pengisian bit. Bila data pengguna berisi pola flag 01111110, maka flag ini akan ditransmisikan kembali sebagai 011111010 tapi akan disimpan di memory penerima sebagai 01111110. Dengan pengisian bit, maka batas antara dua frame dapat dikenal jelas oleh pola flag. Jadi bila penerima mengalami kehilangan track frame tertentu, yang perlu dilakukan adalah menyisir input deretan flag, karena flag tersebut hanya mungkin terdapat pada batas frame saja dan tidak pernah berada pada data.
Metode framing terakhir hanya bisa digunakan bagi jaringan yang encoding pada medium fisiknya mengandung beberapa redundansi (pengulangan). Misalnya, sebagian LAN melakukan encode bit 1 data dengan menggunakan 2 bit fisik. Umumnya, bit1 merupakan pasangan tinggi-rendah dan bit 0 adalah pasangan rendah-tinggi. Kombinasi pasangan tinggi-tinggi dan rendah-rendah tidak digunakan bagi data. Proses itu berarti bahwa setiap bit data memiliki transisi di tengah, yang memudahkan penerima untuk mencari batas bit. Manfaat kode fisik yang invalid merupakan bagian standard LAN 802.2.

Realisasi Generator CRC / Penguji
Data dimasukkan kedalam register geser pada  berbagai titik  melalui gerbang  XOR  yang mempunyai hubungan langsung dengan generator polynominal yaitu rumus matematika untuk membagi bit data.
Lebih baik dari VRC / LRC, 99% error dapat terdeteksi.
             
Polynominal yang umum :
- X16 + X12 + X5 + 1         Rekomendasi CCITT
- X16 + X15 + X2 + 1         CRC-16  
- X12 + X11 + X3 + X3 + 1    CRC-12
- X8 +


Tidak ada komentar:

Posting Komentar