Lapis taut data (
data link layer) 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.
Lapisan
data-link menawarkan layanan pentransferan data melalui saluran fisik. Pentransferan
data tersebut mungkin dapat diandalkan atau tidak: beberapa protokol lapisan
data-link tidak mengimplementasikan fungsi
Acknowledgment untuk sebuah
frame yang sukses diterima, dan beberapa protokol bahkan tidak memiliki fitur pengecekan kesalahan transmisi (dengan menggunakan
checksumming). Pada kasus-kasus tersebut, fitur-fitur
acknowledgment dan pendeteksian kesalahan harus diimplementasikan pada lapisan yang lebih tinggi, seperti halnya
protokol Transmission Control Protocol (TCP) (
lapisan transport).
Tugas utama dari
data link layer adalah sebagai fasilitas
transmisi data mentah dan mentransformasi data tersebut ke saluran yang
bebas dari kesalahan transmisi. Sebelum diteruskan ke
Network Layer, lapisan
data link melaksanakan tugas ini dengan memungkinkan pengirim memecah-mecah data input menjadi sejumlah data
frame (biasanya berjumlah ratusan atau ribuan
byte). Kemudian lapisan data link mentransmisikan
frame tersebut secara berurutan dan memproses
acknowledgement frame yang dikirim kembali oleh penerima. Karena
lapisan fisik menerima dan mengirim aliran
bit tanpa mengindahkan arti atau arsitektur
frame, maka tergantung pada lapisan
data-link-lah untuk membuat dan mengenali batas-batas
frame itu. Hal ini bisa dilakukan dengan cara membubuhkan
bit khusus ke awal dan akhir
frame.
Layanan yang disediakan bagi lapisan jaringan
Fungsi dari lapisan
data link adalah menyediakan layanan bagi lapisan jaringan. Layanannya yang penting adalah pemindahan data dari lapisan jaringan pada
node sumber ke lapisan jaringan di pada
node yang dituju. Tugas lapisan
data link adalah menstransmisikan bit-bit ke komputer yang dituju, sehingga bit-bit tersebut dapat diserahkan ke lapisan jaringan.
Berkas:Heru1.GIF
Transmisi aktual yang mengikuti lintasan akan lebih mudah lagi jika
dianggap sebagai proses dua lapisan data-link yang berkomunikasi
menggunakan
protokol data link (Gambar 2). Lapisan
data-link
dapat dirancang sehingga mampu menyediakan bermacam-macam layanan.
Layanan aktual yang ditawarkan suatu sistem akan berbeda dengan layanan
sistem yang lainnya. Tiga layanan yang disediakan adalah sebagai
berikut :
- layanan unacknowledged connectionless
- layanan acknowledged connectionless
- layanan acknowledged connection-oriented
Setiap layanan yang diberikan data link layer akan dibahas satu persatu.
Layanan unacknowledged connectionless
Layanan jenis ini mempunyai arti di mana
node sumber mengirimkan sejumlah
frame ke node lain 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 tersebut di lapisan data-link. Jenis layanan ini cocok bila laju kesalahan (
error rate) sangat rendah, sehingga
recovery bisa dilakukan oleh lapisan yang lebih tinggi. Sebagian besar teknologi [LAN] meggunakan layanan
unacknowledgment connectionless pada lapisan
data link.
Layanan acknowledged connectionless
Pada layanan jenis ini berkaitan dengan masalah reabilitas. Layanan ini juga tidak menggunakan koneksi, akan tetapi setiap
frame dikirimkan secara independen dan secara
acknowledged. Dalam hal ini, si pengirim akan mengetahui apakah
frame
yang dikirimkan ke komputer tujuan telah diterima dengan baik atau
tidak. Bila ternyata belum tiba pada interval waktu yang telah
ditentukan, maka
frame akan dikirimkan kembali. Layanan ini akan berguna untuk saluran
unreliable, seperti
sistem nirkabel.
Layanan acknowledged connection-oriented
Layanan jenis ini merupakan layanan yang paling canggih dari semua layanan yang disediakan oleh lapisan
data-link bagi lapisan jaringan. Dengan layanan ini,
node sumber dan
node 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. Sebaliknya dengan layanan
connectionless, mungkin saja hilangnya
acknowledgment akan meyebabkan sebuah
frame perlu dikirimkan beberapa kali dankan diterima dalam beberapa kali juga. Sedangkan layanan
connection-oriented menyediakan proses-proses
lapisan jaringan dengan aliran
bit yang bisa diandalkan.
Pada saat layanan connection oriented dipakai, pemindahan data mengalami tiga fase. Pada fase pertama koneksi ditentukan dengan membuat kedua node menginisialisasi variabel-variabel dan counter-counter yang diperlukan untuk mengawasi frame yang mana yang diterima dan yang belum diterima. Dalam fase kedua, satu frame atau lebih mulai ditransmisikan dari node sumber ke node tujuan. Pada fase ketiga, koneksi dilepaskan, pembebasan variabel, buffer dan sumber daya yang lain yang dipakai untuk menjaga berlangsungnya koneksi.
Framing
Untuk melayani lapisan jaringan, lapisan data-link harus menggunakan
layanan yang disediakan oleh lapisan fisik. Apa yang dilakukan lapisan
fisik adalah menerima aliran bit-bit mentah dan berusaha untuk
mengirimkannya ke tujuan. Aliran bit ini tidak dijamin bebas dari
kesalahan. Jumlah bit yang diterima mungkin bisa lebih sedikit, sama
atau lebih banyak dari jumlah bit yang ditransmisikan dan juga bit-bit
itu memiliki nilai yang berbeda-beda. Bila diperlukan, lapisan data-link
juga dapat diserahi tanggung jawab untuk mendeteksi dan mengoreksi
kesalahan yang terjadi.
Pendekatan yang umum dipakai adalah lapisan data link memecah aliran bit menjadi frame-frame dan menghitung nilai checksum untuk setiap frame-nya. Memecah-mecah aliran bit menjadi frame-frame
lebih sulit dibandingkan dengan apa yang kita kira. Untuk memecah-mecah
aliran bit ini, digunakanlah metode-metode khusus. Ada empat buah
metode yang dipakai dalam pemecahan bit menjadi frame, yaitu :
- Karakter penghitung
- pemberian karakter awal dan akhir, dengan pengisian karakter
- Pemberian flag awal dan akhir, dengan pengisian bit
- Pelanggaran pengkodean Physical layer
Berikut ini akan disajikan pembahasan mengenai metode-metode ini.
Karakter Penghitung
Metode ini menggunakan sebuah field pada header untuk menspesifikasi
jumlah karakter di dalam frame. Ketika data link layer pada komputer
yang dituju melihat karakter penghitung, maka data link layer akan
mengetahui jumlah karakter yang mengikutinya dan kemudian juga akan
mengetahui posisi ujung framenya. Teknik ini bisa dilihat pada gambar 3
di bawah ini, dimana ada empat buah frame yang masing-masing berukuran
5,5,8 dan 8 karakter.
Masalah yang akan timbul pada aliran karakter ini apabila terjadi
error transmisi. Misalnya, bila hitungan karakter 5 pada frame kedua
menjadi 7 (Gambar 4), maka tempat yang dituju tidak sinkron dan tidak
akan dapat mengetahui awal frame berikutnya. Oleh karena permasalahan
ini, metode hitungan karakter sudah jarang dilakukan.
Pemberian Karakter Awal dan Akhir
Metode yang kedua ini 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
adalah Data Link Escape, STX adalah Start of Text, ETX adalah End of
Text. Dalam metode ini, bila tempat yang dituju kehilangan batas-batas
frame, maka yang perlu dilakukan adalah mencari karakter-karakter DLE,
STX, DLE dan ETX.
Masalah yang akan terjadi pada metode ini adalah ketika data biner
ditransmisikan. Karakter-karakter DLE, STX, DLE dan ETX yang terdapat
pada data akan mudah sekali mengganggu framing. Salh satu car untuk
mengatasi masalah ini adalah dengan membuat data link layer, yaitu
pengirim menyisipkan sebuah karajter DLE ASCII tepat sebeum karakter DLE
pada data. Teknik ini disebut character stuffing (pengisian karakter)
dan cara pengisiannya dapat dilihat pada gambar 5
Pemberian Flag Awal dan akhir
Teknik baru memungkinkan frame data berisi sejumlah bit dan
mengijinkan kod karakter dengan sejumlah bit per karakter. Setip 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 data link layer secara otomatis
mengisikan sebuah bit 0 ke aliran bit keluar. Pengisian bit analog
dengan pengisian karakter, dimana sebuah DLE diisikan ke aliran karakter
keluar sebelum DLE pada data (Gambar 6). Ketika penerima melihat lima
buah bit 1 masuk yang berurutan, yang diikuti oleh sebuah bit 0, maka
penerima secara otomatis menghapus bit 0 tersebut. Bila data pengguna
berisi pola flag, 01111110, maka flag ini ditrnsmisikan kembali sebagai
011111010 tapi akan disimpan di memori penerima sebagai 01111110.
Pelanggaran Pengkodean Physical Layer
Metode yang terakhir hanya bisa digunakan bagi jaringan yang encoding
pada medium fisiknya mengandung pengulangan. Misalnya, sebagian LAN
melakukan encode bit 1 data dengan menggunakan 2 bit fisik. Umumnya, bit
1 merupakan pasangan tinggi rendah dan bit 0 adalah pasangan rendah
tinggi. Kombinasi pasangan tinggi-tinggi dan rendah-rendah tidak
digunakan bagi data.
Kontrol Aliran
Flow control adalah suatu teknik untuk menjamin bahwa sebuah stasiun
pengirim tidak membanjiri stasiun penerima dengan data. Stasiun penerima
secara khas akan menyediakan suatu buffer data dengan panjang tertentu.
Ketika data diterima, dia harus mengerjakan beberapa poses sebelum dia
dapat membersihkan buffer dan mempersiapkan penerimaan data berikutnya.
Bentuk sederhana dari kontrol aliran dikenal sebagai stop and wait,
dia bekerja sebagai berikut. Penerima mengindikasikan bahwa dia siap
untuk menerima data dengan mengirim sebual poll atau menjawab dengan
select. Pengirim kemudian mengirimkan data.
Flow control ini diatur/dikelola oleh Data Link Control (DLC) atau
biasa disebut sebagai Line Protocol sehingga pengiriman maupun
penerimaan ribuan message dapat terjadi dalam kurun waktu sesingkat
mungkin. DLC harus memindahkan data dalam lalu lintas yang efisien.
Jalur komunikasi harus digunakan sedatar mungkin, sehingga tidak ada
stasiun yang berada dalam kadaan idle sementara stasiun yang lain
saturasi dengan lalu lintas yang berkelebihan. Jadi flow control
merupakan bagian yang sangat kritis dari suatu jaringan. Berikut ini
ditampilkan time diagram Flow control saat komunikasi terjadi pada
kondisi tanpa error dan ada error.
Mekanisme Flow control yang sudah umum digunakan adalah Stop and Wait
dan Sliding window, berikut ini akan dijelaskan kedua mekanisme
tersebut.
Stop and wait
Protokol ini memiliki karakteristik dimana sebuah pengirim mengirimkan sebuah frame dan kemudian menunggu acknowledgment
sebelum memprosesnya lebih lanjut. Mekanisme stop and wait dapat
dijelaskan dengan menggunakan gambar 8, dimana DLC mengizinkan sebuah
message untuk ditransmisikan (event 1), pengujian terhadap terjadinya
error dilakukan dengan teknik seperti VCR (Vertical Redundancy Check)
atau LRC (Longitudinal Redundancy Check) terjadi pada even 2 dan pada
saat yang tepat sebuah ACK atau NAK dikirimkan kembali untuk ke stasiun
pengirim (event 3). Tidak ada messages lain yang dapat ditransmisikan
selama stasiun penerima mengirimkan kembali sebuah jawaban. Jadi istilah
stop and wait diperoleh dari proses pengiriman message oleh stasiun
pengirim, menghentikan transmisi berikutnya, dan menunggu jawaban.
Pendekatan stop and wait adalah sesuai untuk susunan transmisi half
duplex, karena dia menyediakan untuk transmisi data dalam dua arah,
tetapi hanya dalam satu arah setiap saat. Kekurangan yang terbesar
adalah disaat jalur tidak jalan sebagai akibat dari stasiun yang dalam
keadaan menunggu, sehingga kebanyakan DLC stop and wait sekarang
menyediakan lebih dari satu terminal yang on line. Terminal-terminal
tetap beroperasi dalam susunan yang sederhana. Stasiun pertama atau host
sebagai penaggung jawab untuk peletakkan message di antara
terminal-terminal (biasanya melalui sebuah terminal pengontrol yang
berada di depannya) dan akses pengontrolan untuk hubungan komunikasi.
Urutan sederhana ditunjukkan pada gambar 8 dan menjadi masalah yang
serius ketika ACK atau NAK hilang dalam jaringan atau dalam jalur. Jika
ACK pada event 3 hilang, setelah habis batas waktunya stasiun master
mengirim ulang message yang sama untuk kedua kalinya. Transmisi yang
berkelebihan mungkin terjadi dan menciptakan sebuah duplikasi record
pada tempat kedua dari file data pengguna. Akibatnya, DLC harus
mengadakan suatu cara untuk mengidentifikasi dan mengurutkan message
yang dikirimkan dengan berdasarkan pada ACK atau NAK sehingga harus
dimiliki suatu metoda untuk mengecek duplikat message.
Pada gambar 9 ditunjukkan bagaimana urutan pendeteksian duplikasi
message bekerja, pada event 1 stasiun pengirim mengirikan sebuah message
dengan urutan 0 pada headernya. Stasiun penerima menjawab dengan sebuah
ACK dan sebuah nomor urutan 0 (event 2). Pengirim menerima ACK,
memeriksa nomor urutan 0 di headernya, mengubah nomor urutan menjadi 1
dan mengirimkan message berikutnya (event 3).
Stasiun penerima mendapatkan message dengan ACK 1 di event 4. Akan
tetapi message ini diterima dalam keadaan rusak atau hilang pada jalan.
Stasiun pengirim mengenali bahwa message di event 3 tidak dikenali.
Setelah batas waktu terlampau (timeout) stasiun pengirim mengirim ulang
message ini (event 5). Stasiun penerima mencari sebuah message dengan
nomor urutan 0. Dia membuang message, sejak itu dia adalah sebuah
duplikat dari message yang dikirim pada event 3. Untuk melengkapi
pertang-gung-jawaban, stasiun penerima mengirim ulang ACK 1 (event 6).
Model OSI
Tujuan utama penggunaan model OSI adalah untuk membantu desainer jaringan memahami fungsi dari tiap-tiap layer yang berhubungan dengan aliran komunikasi data. Termasuk jenis-jenis protoklol jaringan dan metode transmisi.
Model dibagi menjadi 7 layer, dengan karakteristik dan fungsinya masing-masing. Tiap layer harus dapat berkomunikasi dengan layer di atasnya maupun dibawahnya secara langsung melalui serentetan protokol dan standard.
Model OSI
Application Layer: Menyediakan jasa untuk aplikasi pengguna. Layer ini bertanggungjawab atas pertukaran informasi antara program komputer, seperti program e-mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya.
Presentation Layer: Bertanggung jawab bagaimana data dikonversi dan diformat untuk transfer data. Contoh konversi format text ASCII untuk dokumen, .gif dan JPG untuk gambar. Layer ini membentuk kode konversi, translasi data, enkripsi dan konversi.
Session Layer: Menentukan bagaimana dua terminal menjaga, memelihara dan mengatur koneksi,- bagaimana mereka saling berhubungan satu sama lain. Koneksi di layer ini disebut “session”.
Transport Layer: Bertanggung jawab membagi data menjadi segmen, menjaga koneksi logika “end-to-end” antar terminal, dan menyediakan penanganan error (error handling).
Network Layer: Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus diambil selama perjalanan, dan menjaga antrian trafik di jaringan. Data pada layer ini berbentuk paket.
Data Link Layer: Menyediakan link untuk data, memaketkannya menjadi frame yang berhubungan dengan “hardware” kemudian diangkut melalui media. komunikasinya dengan kartu jaringan, mengatur komunikasi layer physical antara sistem koneksi dan penanganan error.
Physical Layer: Bertanggung jawab atas proses data menjadi bit dan mentransfernya melalui media, seperti kabel, dan menjaga koneksi fisik antar sistem.