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.