Minggu, 23 September 2012

Data Link





Layer ini sedikit lebih “cerdas” dibandingkan dengan layer physical, karena menyediakan transfer data yang lebih nyata. Sebagai penghubung antara media network dan layer protocol yang lebih high-level, layer data link bertanggung-jawab pada paket akhir dari data binari yang berasal dari level yang lebih tinggi ke paket diskrit sebelum ke layer physical. Akan mengirimkan frame (blok dari data) melalui suatu network. Ethernet (802.2 & 802.3), Tokenbus (802.4) dan Tokenring (802.5) adalah protocol pada layer Data-link. 
Tugas utama data link layer adalah sebagai fasilitas transmisi raw data dan mentransformasi data tersebut ke saluran yang bebas dari kesalahan transmisi. Sebelum diteruskan kenetwork layer, data link layer melaksanakan tugas ini dengan memungkinkan pengirim memecag-mecah data input menjadi sejumlah data frame (biasanya berjumlah ratusan atau ribuan byte).
 Kemudian data link layer mentransmisikan frame tersebut secara berurutan, dan memproses acknowledgement frame yang dikirim kembali oleh penerima. Karena physical layer menerima dan mengirim aliran bit tanpa mengindahkan arti atau arsitektur frame, maka tergantung pada data link layer-lah untuk membuat dan mengenali batas-batas frame itu. Hal ini bisa dilakukan dengan cara membubuhkan bit khusus ke awal dan akhir frame. Bila secara insidental pola-pola bit ini bisa ditemui pada data, maka diperlukan perhatian khusus untuk menyakinkan bahwa pola tersebut tidak secara salah dianggap sebagai batas-batas frame.
Terjadinya noise pada saluran dapat merusak frame. Dalam hal ini, perangkat lunak data link layer pada mesin sumber dapat mengirim kembali frame yang rusak tersebut. Akan tetapi transmisi frame sama secara berulang-ulang bisa menimbulkan duplikasi frame. Frame duplikat perlu dikirim apabila acknowledgement frame dari penerima yang dikembalikan ke pengirim telah hilang. Tergantung pada layer inilah untuk mengatasi masalah-masalah yang disebabkan rusaknya, hilangnya dan duplikasi frame. Data link layer menyediakan beberapa kelas layanan bagi network layer. Kelas layanan ini dapat dibedakan dalam hal kualitas dan harganya.
Masalah-masalah lainnya yang timbul pada data link layer (dan juga sebagian besar layer-layer di atasnya) adalah mengusahakan kelancaran proses pengiriman data dari pengirim yang cepat ke penerima yang lambat. Mekanisme pengaturan lalu-lintas data harus memungkinkan pengirim mengetahui jumlah ruang buffer yang dimiliki penerima pada suatu saat tertentu. Seringkali pengaturan aliran dan penanganan error ini dilakukan secara terintegrasi.
Saluran yang dapat mengirim data pada kedua arahnya juga bisa menimbulkan masalah. Sehingga dengan demikian perlu dijadikan bahan pertimbangan bagi software data link layer. Masalah yang dapat timbul di sini adalah bahwa frame-frame acknoeledgement yang mengalir dari A ke B bersaing saling mendahului dengan aliran dari B ke A. Penyelesaian yang terbaik (piggy backing) telah bisa digunakan; nanti kita akan membahasnya secara mendalam.
Jaringan broadcast memiliki masalah tambahan pada data link layer. Masalah tersebut adalah dalam hal mengontrol akses ke saluran yang dipakai bersama. Untuk mengatasinya dapat digunakan sublayer khusus data link layer, yang disebut medium access sublayer.


Fungsi spesifik data link layer :
a.  Penyediaan interface layanan bagi network layer
b.  Penentuan cara pengelompokan bit dari physical layer ke dalam frame
c.  Menangani error transmisi
d.  Mengatur aliran frame

Layanan Data Link Layer
a.  Connectionless
b.  Connection
c.  Oriented Connection

1.  Framing
Salah satu cara pembuatan frame adalah dengan menyisipkan gap waktu diantara dua buah frame, (seperti spasi antara 2 kata).
Empat metode framing yang digunakan :
a.  Karakter penghitung
b.  Pemberian karakter awal dan akhir, dengan pengisian karakter
c.  Pemberian flag awal dan akhir, dengan pengisian bit
d.  Pelanggaran pengkodean physical layer

Metode 1
          Menggunakan sebuah field pada header untuk menspesifikasikan jumlah karakter didalam frame. Ketika data link layer pada mesin yang dituju melihat karakter penghitung, maka data link layer akan mengetahui jumlah yang mengikutinya, dan kemudian juga akan mengetahui posisi ujung framenya.
Metode 2
          Mengatasi masalah resinkronisasi setelah terjadi suatu error dengan membuat masing-masing frame diawali dengan deretan karakter DLE STX ASCII dan diakhiri dengan DLE ETX (DLE=Data Link Escape, STX= Start of TeXt, ETX=End of TeXt). Bila tempat yang dituju kehilangan track batas-batas frame, maka yang perlu dilakukan adalah mencari karakter-karakter DLE STX dan DLE ETX. Character stuffing (pengisian karakter) adalah teknik membuat data link layer pengirim menyisipkan sebuah karakter DLE ASCII tepat sebelum karakter DLE "insidentil" pada data, sehingga data link pada mesin penerima membuang DLE sebelum data diberikan ke network layer. Hal tersebut digunakan untuk menangani masalah transmisi untuk data biner, seperti program object, bilangan floating-point yang mudah sekali menganggu framing. Kerugiannya adalah berkaitan erat dengan karakter 8-bit secara umum dan kode karakter ASCII pada khususnya.
Metode 3
          Teknik baru adalah setiap frame diawali dan diakhiri oleh pola bit khusus, 01111110, yang disebut byte flag. Kapanpun data link layer pada pengirim menemukan lima buah flag yang berurutan pada data, maka datalink 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.
Metode 4
          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. Manfaat kode fisik tersebut merupakan bagian standar LAN 802. Banyak protokol datalink yang memakai kombinasi sebuah hitungan karakter menggunakan metode lainnya dengan alasan keamanan tambahan. Frame akan berlakuk hanya bila terdapat delimiter yang sesuai pada posisi tertentu dan checksum-nya benar. Bila tidak, aliran input akan disisir untuk mencari delimiter berikutnya.

2. Kontrol Error
          Cara umum menjamin pengiriman reliabel adalah memberikan pengirim beberapa feedback tentang apa yang terjadi di sisi lain dari saluran, yaitu kontrol khusus berupa acknowledgement positif atau negatif. Acknowledgement positif, bahwa frame telah sampai dengan baik, begitu sebaliknya. Masalah timbul bila terjadi letupan noise (fungsi hardware tidak baik), yaitu bahwa penerima tidak bereaksi sama sekali (posisi menggantung). Untuk itu pemakaian timer ke dalam data link layer sangat dibutuhkan, yaitu pada saat pengirim mentransmisikan sebuah frame, pengirim juga mengaktifkan timer. Umumnya frame akan diterima dengan benar dan acknowledgment akan kembali sebelum timer habis. Pada saat terjadi kegagalan transmisi, akan terjadi permintaan ulang frame yang dikirimkan. Untuk menghindari duplikasi frame-frame yang diulang tersebut, diberikan urutan nomor.

3. Pengontrolan Aliran
          Masalah yang muncul adalah tentang apa yang dikerjakan oleh sebuah pengirim yang secara sistematis ingin mentransmisikan frame lebih cepat dibanding kecepatan penerima untuk menampungnya. Untuk mengatasi masalah tersebut, protokol berisi peraturan tentang kapan
sebuah pengirim boleh mentransmisikan frame berikutnya. Peraturan-peraturan ini seringkali tidak mengijinkan frame dikirimkan sampai penerima memperolehijin (Anda dapat mengirim saya n buah frame sekarang, tapi sesudah frame-frame tersebut dikirimkan, jangan mengirimkan frame lainnya lagi sampai saya memberitahu anda untuk melanjutkan pengiriman).

4. Deteksi dan Koreksi Kesalahan
          Strategi pertama menggunakan kode-kode pengkoreksian error (error-correcting codes) dan strategi kedua menggunakan kode-kode pendeteksian error (error-detecting codes). Ketika penerima melihat codeword yang tidak valid, maka penerima dapat berkata bahwa telah terjadi error pada tranmisi (Codeword Hamming).
Salah satu kode pendeteksian yang digunakan adalah kode polynomial/cyclic redundancy code (CRC).
Contoh-contoh protokol data link
· HDLC (High Level Data Link Control)
Digunakan dalam jaringan X.25. 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

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.
DATA FLOW 
               longitudinal check
V C                        1 0 1 0 0 1 1 0        1  LRC
E H                        1 0 0 1 0 1 0 0        0  Horizontal
R E                        0 1 1 0 0 0 0 0        1  Parity
T C                        0 0 0 1 1 1 0 1        1  Bits
I  K                        1 0 0 0 1 0 0 1        0
C                            0 0 0 1 1 0 1 0        0
A                            1 1 1 0 0 1 1 0        0
L                              1 1 0 0 0 1 0 1       0
          
           Gambar  Longitudinal Redundancy Check
     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".
Contoh :
       Bit 0 : 1 1 1 1   0
       Bit 1 : 1 0 0 0   1  B
       Bit 2 : 0 0 0 0   0  C
       Bit 3 : 0 0 0 0   0  C
       Bit 4 : 0 0 0 0   0
       Bit 5 : 0 0 0 0   0
       Bit 6 : 1 1 1 1   0
Parity      : 0 1 1 1                   0
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.