DCN - Kontrol & Protokol Data-link
Lapisan data-link bertanggung jawab atas implementasi aliran titik-ke-titik dan mekanisme kontrol kesalahan.
Alur kontrol
Ketika sebuah bingkai data (data Layer-2) dikirim dari satu host ke host lain melalui satu media, pengirim dan penerima harus bekerja pada kecepatan yang sama. Artinya, pengirim mengirim dengan kecepatan di mana penerima dapat memproses dan menerima data. Bagaimana jika kecepatan (perangkat keras / perangkat lunak) pengirim atau penerima berbeda? Jika pengirim mengirim terlalu cepat, penerima mungkin kelebihan beban, (kebanjiran) dan data mungkin hilang.
Dua jenis mekanisme dapat digunakan untuk mengontrol aliran:
Stop and WaitMekanisme kontrol aliran ini memaksa pengirim setelah mengirimkan bingkai data untuk berhenti dan menunggu hingga penerimaan bingkai data yang dikirim diterima.
Sliding Window
Dalam mekanisme kontrol aliran ini, baik pengirim maupun penerima menyetujui jumlah data-frame setelah itu pengakuan harus dikirim. Seperti yang kita pelajari, mekanisme kontrol aliran berhenti dan tunggu menghabiskan sumber daya, protokol ini mencoba untuk menggunakan sumber daya yang mendasarinya sebanyak mungkin.
Kontrol Kesalahan
Ketika data-frame ditransmisikan, ada kemungkinan bahwa data-frame mungkin hilang saat transit atau diterima rusak. Dalam kedua kasus, penerima tidak menerima bingkai data yang benar dan pengirim tidak tahu apa-apa tentang kehilangan. Dalam kasus seperti itu, pengirim dan penerima dilengkapi dengan beberapa protokol yang membantu mereka mendeteksi kesalahan transit seperti kehilangan data- bingkai. Oleh karena itu, pengirim mentransmisikan ulang bingkai data atau penerima dapat meminta untuk mengirim ulang bingkai data sebelumnya.
Persyaratan untuk mekanisme kontrol kesalahan:
Error detection - Pengirim dan penerima, baik keduanya atau apapun, harus memastikan bahwa ada kesalahan dalam perjalanan.
Positive ACK - Saat penerima menerima bingkai yang benar, penerima harus mengakuinya.
Negative ACK - Ketika penerima menerima bingkai yang rusak atau bingkai duplikat, ia mengirimkan NACK kembali ke pengirim dan pengirim harus mengirimkan kembali bingkai yang benar.
Retransmission: Pengirim mempertahankan jam dan menetapkan periode batas waktu. Jika pengakuan bingkai data yang dikirimkan sebelumnya tidak sampai sebelum batas waktu, pengirim mentransmisikan ulang bingkai, mengira bahwa bingkai atau pengakuannya hilang saat transit.
Ada tiga jenis teknik yang tersedia yang dapat diterapkan lapisan Data-link untuk mengontrol kesalahan dengan Permintaan Pengulangan Otomatis (ARQ):
Hentikan dan tunggu ARQ
Transisi berikut mungkin terjadi di Stop-and-Wait ARQ:
- Pengirim memiliki penghitung batas waktu.
- Saat bingkai dikirim, pengirim memulai penghitung batas waktu.
- Jika pengakuan frame datang tepat waktu, pengirim mengirimkan frame berikutnya dalam antrian.
- Jika pengakuan tidak datang tepat waktu, pengirim berasumsi bahwa bingkai atau pengakuannya hilang dalam perjalanan. Pengirim mentransmisikan ulang frame dan memulai penghitung batas waktu.
- Jika pengakuan negatif diterima, pengirim mengirimkan kembali frame tersebut.
Go-Back-N ARQ
Berhenti dan menunggu mekanisme ARQ tidak memanfaatkan sumber daya dengan baik. Saat pengakuan diterima, pengirim diam dan tidak melakukan apa pun. Dalam metode Go-Back-N ARQ, pengirim dan penerima memiliki jendela.
Ukuran jendela pengiriman memungkinkan pengirim untuk mengirim banyak bingkai tanpa menerima pengakuan dari yang sebelumnya. Jendela penerima memungkinkan penerima untuk menerima banyak bingkai dan mengakuinya. Penerima melacak nomor urut frame yang masuk.
Ketika pengirim mengirim semua bingkai di jendela, ia memeriksa nomor urut apa yang telah menerima pengakuan positif. Jika semua frame diakui secara positif, pengirim mengirimkan rangkaian frame berikutnya. Jika pengirim menemukan bahwa ia telah menerima NACK atau belum menerima ACK untuk frame tertentu, ia mentransmisikan ulang semua frame setelah itu tidak menerima ACK positif.
ARQ Ulangi Selektif
Dalam Go-back-N ARQ, diasumsikan bahwa receiver tidak memiliki ruang buffer untuk ukuran jendelanya dan harus memproses setiap frame saat datang. Ini memaksa pengirim untuk mengirim ulang semua frame yang tidak diakui.
Dalam Selective-Repeat ARQ, penerima sambil melacak nomor urut, menyangga bingkai di memori dan mengirim NACK hanya untuk bingkai yang hilang atau rusak.
Pengirim dalam hal ini, hanya mengirim paket yang NACK-nya diterima.