Fungsi Khusus Layer Data Link Dalam jaringan komputer pastilah kita telah mengenal tentang model OSI Layer, yaitu sebuah model arsitektural jaringan yang dikembangkan oleh International Organization for Standardization (ISO). Model OSI layer terdiri dari tujuh layer atau lapisan dan salah satu lapisan yang penting dalam OSI layer ini adalah layer Data Link, layer ini berhubungan dengan hardware dan bersinggungan langsung dengan layer fisik yang sama-sama berhubungan dengan hardware. Dikutip dari wikipedia.org, layer Data Link adalah lapisan kedua dari bawah dalam model OSI, yang dapat melakukan konversi frame-frame jaringan yang berisi data yang dikirimkan menjadi bit-bit mentah agar dapat diproses oleh lapisan fisik. Lapisan ini merupakan lapisan yang akan melakukan transmisi data antara perangkat-perangkat jaringan yang saling berdekatan di dalam sebuah wide area network (WAN), atau antara node di dalam sebuah segmen local area network (LAN) yang sama. Lapisan ini bertanggungjawab dalam membuat frame, flow control, koreksi kesalahan dan pentransmisian ulang terhadap frame yang dianggap gagal. MAC address juga diimplementasikan di dalam lapisan ini. Selain itu, beberapa perangkat seperti Network Interface Card (NIC), switch layer 2 serta bridge jaringan juga beroperasi di sini. Setelah kita memahami apa itu layer Data Link, mari kita lihat fungsi khusus yang dimiliki oleh layer Data Link berikut ini: a. b. c. d. Penyediaan interface layanan bagi network layer Penentuan cara pengelompokan bit dari physical layer ke dalam frame Menangani error transmisi Mengatur aliran frame Dari fungsi khusus diatas dapat kita pahami lagi melalui fungsi-fungsi yang dapat dilakukan oleh layer Data Link berikut ini: a. 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: 1) Karakter penghitung 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. 2) Pemberian karakter awal dan akhir, dengan pengisian karakter Mengatasi masalah resinkronisasi setelah terjadi suatu error dengan membuat masingmasing 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 karakterkarakter 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. 3) Pemberian flag awal dan akhir, dengan pengisian bit 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. 4) Pelanggaran pengkodean physical layer 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 berlaku hanya bila terdapat delimiter yang sesuai pada posisi tertentu dan checksum-nya benar. Bila tidak, aliran input akan disisir untuk mencari delimiter berikutnya. b. 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. c. 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 memperoleh ijin (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). d. 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). Sumber: http://id.wikipedia.org/wiki/Lapisan_data-link http://kuliah.dinus.ac.id/ika/kmdt13.html