Data link control atau data link protocol merupakan proses terkirimnya data/komunikasi melalui sebuah siklus komunikasi data yang terlaksana dengan penambahan kontrol layer dalam tiap alat yang berperan dalam proses komunikasi. Adapun yang dimaksud dengan data link ialah media transmisi antar-device ketika suatu prosedur data link control digunakan.
Data link control membutuhkan lapisan-lapisan logika (layer of logic) di atas hardware untuk mengelola pertukaran data yang melewati sebuah link. Untuk mengelola pertukaran data tersebut, dibutuhkan langkah-langkah di antaranya: sinkronisasi frame (frame synchronization), kontrol aliran data (flow control), kontrol kesalahan (error control), pengalamatan (addressing), control and data, serta link management.
Definisi Flow Control
Dalam komunikasi data, flow control adalah proses mengelola laju transmisi data antara dua node untuk mencegah pengirim terlalu cepat kehabisan data dan penerima lambat dalam menerima data. Ini adalah mekanisme untuk pengirim dan penerima untuk mengontrol kecepatan transmisi, sehingga node penerima tidak kewalahan dengan data dari transmisi node. Flow control harus dibedakan dari kontrol kongesti, yang fungsinya digunakan untuk mengendalikan aliran data ketika kemacetan telah benar-benar terjadi.
Flow control ini penting karena adalah mungkin jika komputer pengirim mengirimkan informasi pada tingkat yang lebih cepat dari komputer tujuan untuk menerima dan memproses mereka. Hal ini dapat terjadi jika komputer penerima memiliki beban lalu lintas berat dibandingkan dengan komputer pengirim, atau jika komputer penerima memiliki lebih sedikit daya pemrosesan dari komputer pengirim.
Teknik Flow Control
Teknik flow control ada 2 yaitu Stop-and-wait dan Sliding Window
1. Stop-and-wait
- Pengirim: Mengirim satu frame pada suatu waktu.
- Penerima: Mengirim pengakuan (ACK) karena menerima sebuah frame.
- Pengirim menerima ACK dalam waktu.
- Lanjutkan ke langkah 1.
Gambar diatas adalah skema dari prinsip kerja Stop-and-wait. Proses kerja atau prinsip kerja dari Stop-and-wait adalah sebagai berikut:
- Transmitter mengirimkan deretan data dalam bentuk frame ke receiver.
- Setelah receiver telah menerima frame yang dikirimkan tadi, maka receiver akan mengirimkan balasan ke transmitter bahwa frame sudah diterima di receiver dan receiver siap menerima deretan frame selanjutnya.
- Transmitter tidak akan mengirimkan deretan frame berikutnya jika receiver belum memberikan balasan.
- Receiver dapat menghentikan pengiriman frame dengan cara tidak memberikan balasan, maka transmitter juga tidak akan mengirimkan deretan frame lagi pada receiver.
Stop-and-wait flow control akan lebih efisien jika digunakan untuk mengirimkan suatu pesan atau data dengan jumlah frame yang sedikit. Jika jumlah frame yang dikirimkan ternyata banyak, maka sebelum deretan frame dikirimkan, frame akan dipecah-pecah menjadi blok-blok frame dengan ukuran yang lebih kecil, karena:
- Terbatasnya ukuran data atau frame yang dapat ditampung oleh receiver
- Jumlah blok data yang besar akan mengakibatkan proses transmisi berjalan lambat dan dikhawatirkan jika terjadi kesalahan sehingga frame harus dikirim ulang dari awal. Jika ukuran frame lebih kecil, maka deteksi kesalahan akan lebih cepat, dan jika terjadi kesalahan data yang harus ditransmisikan ulang lebih sedikit.
Terdapat dua keadaan dalam pentransmisian frame dengan Stop-and-wait:
- Jika waktu propagasi lebih besar dari waktu transmisi (gambar a): Maka yang terjadi adalah transmitter telah selesai mentransmisikan deretan frame sebelum receiver menerima bit utama dari deretan frame tersebut
- Jika waktu transmisi lebih besar dari waktu propagasi (gambar b): Maka yang terjadi adalah sebelum transmitter menyelesaikan transmisi deretan frame, ternyata bit pertama dari frame tersebut telah sampai di receiver.
- Satu-satunya keuntungan dari metode ini pengendalian aliran adalah kesederhanaannya.
- Pengirim perlu menunggu ACK setelah setiap frame transmit. Ini adalah sumber inefisiensi, dan sangat buruk ketika delay propagasi lebih lama dari delay transmisi.
- Berhenti dan menunggu juga dapat membuat inefisiensi saat mengirim transmisi lebih lama.
- Ketika transmisi lagi yang dikirim ke sana lebih mungkin kesempatan untuk kesalahan dalam protokol ini. Jika pesan pendek kesalahan lebih mungkin untuk dideteksi dini. Lebih inefisiensi dibuat ketika pesan tunggal yang rusak menjadi frame yang terpisah karena membuat transmisi lebih lama.
2. Sliding Window
Sliding window dirancang untuk membenahi sistem flow control sebelumnya, yakni stop and wait flow control. Pada stop and wait flow control seolah-olah blok-blok data dikirimkan satu persatu dan mengirimkannya menunggu balasan jika blok data tersebut sudah sampai di receiver dan receiver sudah memberikan balasan. Berbeda pada sliding window, transmitter dapat mengirimkan blok-blok frame lebih banyak lalu setelah beberapa frame telah terkirim, barulah receiver memberikan balasan. Pada sliding window tiap-tiap blok frame diberi nomor.
Sliding window flow control jauh lebih efisien dibandingkan dengan stop and wait karena:
- Dapat mengirimkan lebih dari satu blok frame
- Waktu penundaan/delay lebih sedikit
- Transfer data menjadi lebih cepat
Dalam pengaplikasiannya, Sliding window sangat dibutuhkan dalam komunikasi data karena memiliki nilai efisiensi yang tinggi.
Definisi Error Control
Berfungsi untuk mendeteksi dan memperbaiki error-error yang terjadi dalam transmisi
frame-frame. Ada 2 tipe error yang mungkin :
- Lost Frame : suatu frame gagal mencapai sisi yang lain
- Damaged Frame : suatu frame tiba tetapi beberapa bit-bit-nya error.
Mekanisme Error Control meliputi :
- Ack/Nak : Provide sender some feedback about other end
- Time-out: for the case when entire packet or ack is lost
- Sequence numbers: to distinguish retransmissions from originals
Untuk menghindari terjadinya error atau memperbaiki jika terjadi error yang dilakukan adalah melakukan pengiriman message secara berulang, proses ini dilakukan secara otomatis dan dikenal sebagai Automatic Repeat Request (ARQ).
Pada proses ARQ dilakukan beberapa langkah diantaranya
- Error Detection : menggunakan CRC.
- Positive acknowledgment : tujuan mengembalikan suatu positif acknowledgment untuk penerimaan yang sukses, frame bebas error.
- Retransmission after timeout : sumber mentransmisi ulang suatu frame yang belum diakui setelah suatu waktu yang tidak ditentukan.
- Negative acknowledgment and retransmission : tujuan mengembalikan negative acknowledgment dari frame-frame dimana suatu error dideteksi. Sumber mentransmisi ulang beberapa frame.
Mekanisme Error Control
Mekanisme ini dinyatakan sebagai Automatic repeat Request (ARQ) yang terdiri dari 3 versi :
1. Stop-and-wait ARQ
Berdasarkan pada teknik flow control stop and wait dan digambarkan dalam gambar 1. Stasiun sumber mentransmisi suatu frame tunggal dan kemudian harus menunggu suatu acknowledgment (ACK) dalam periode tertentu. Tidak ada data lain dapat dikirim sampai balasan dari stasiun tujuan tiba pada stasiun sumber. Bila tidak ada balasan maka frame ditransmisi ulang. Bila error dideteksi oleh tujuan, maka frame tersebut dibuang dan mengirim suatu Negative Acknowledgment (NAK), yang menyebabkan sumber mentransmisi ulang frame yang rusak tersebut.
Bila sinyal acknowledgment rusak pada waktu transmisi, kemudian sumber akan habis waktu dan mentransmisi ulang frame tersebut. Untuk mencegah hal ini, maka frame diberi label 0 atau 1 dan positive acknowledgment dengan bentuk ACK0 atau ACK1 : ACK0 mengakui menerima frame 1 dan mengindikasi bahwa receiver siap untuk frame 0. Sedangkan ACK1 mengakui menerima frame 0 dan mengindikasi bahwa receiver siap untuk frame 1.
2. Go-back-N ARQ
Termasuk continuous ARQ, suatu stasiun boleh mengirim frame seri yang ditentukan oleh ukuran window, memakai teknik flow control sliding window. Sementara tidak terjadi error, tujuan akan meng-acknowledge (ACK) frame yang masuk seperti biasanya.
Teknik Go-back-N ARQ yang terjadi dalam beberapa kejadian :
a. Frame yang rusak.
Ada 3 kasus :
- A mentransmisi frame i. B mendeteksi suatu error dan telah menerima frame (i-1) secara sukses. B mengirim A NAKi, mengindikasi bahwa frame i ditolak. Ketika A menerima NAK ini, maka harus mentransmisi ulang frame i dan semua frame berikutnya yang sudah ditransmisi.
- Frame i hilang dalam transmisi. A kemudian mengirim frame (i+1). B menerima frame (i+1) diluar permintaan, dan mengirim suatu NAKi.
- Frame i hilang dalam transmisi dan A tidak segera mengirim frame -frame tambahan. B tidak menerima apapun dan mengembalikan baik ACK atau NAK. A akan kehabisan waktu dan mentransmisi ulang frame i.
b. ACK rusak.
Ada 2 kasus :
- B menerima frame i dan mengirim ACK (i+1), yang hilang dalam transmisi. Karena ACK dikomulatif (contoh, ACK6 berarti semua frame sampai 5 diakui), hal ini mungkin karena A akan menerima sebuah ACK yang berikutnya untuk sebuah frame berikutnya yang akan melaksanakan tugas dari ACK yang hilang sebelum waktunya habis.
- Jika waktu A habis, A mentransmisi ulang frame I dan semua frame -frame berikutnya.
c. NAK rusak.
Jika sebuah NAK hilang, A akan kehabisan waktu (time-out) pada serangkaian frame dan mentransmisi ulang frame tersebut berikut frame-frame selanjutnya.
Contoh :
Menampilkan aliran frame untuk mekanisme go-back-and ARQ pada sebuah jalur full-duplex. Ketika frame 2,3, dan 4 ditransmisikan, dari stasiun A ke stasiun B, sebuah ACK dari penerimaan sebelumnya frame 1 mengalir dari B ke A. Beberapa waktu kemudian, frame 2 diterima dalam kondisi error. Frame-frame 2,3,4 dan 5 dikirimkan, stasiun B mengirim sebuah NAK2 ke stasiun A yang diterima setelah frame 5 dikirimkan tetapi sebelum stasiun A siap mengirim frame 6. Sekarang harus dilakukan pengiriman ulang frame-frame 2,3,4, dan 5 waluapun hanya pada frame 2 terjadinya kesalahan. Sekali lagi, catat bahwa stasiun A harus sebuah copy dari setiap unacknowledgment frame.
3. Selective-reject ARQ
Pada mekanisme ini sebenarnya mirip dengan mekanisme go-back-N ARQ bedanya, pada selective-report ARQ yang dikirimkan hanyalah frame yang terjadi kesalahan saja. Gambar dibawah menjelaskan mekanisme tersebut.
Hanya mentransmisi ulang frame-frame bila menerima NAK atau waktu habis. Ukuran window yang perlu lebih sempit daripada go-back-N. Untuk go-back-N, ukuran window 2n-1 sedangkan selective -reject 2n.
Skenario dari teknik ini untuk 3 bit penomoran yang mengizinkan ukuran window sebesar 7 :
- Stasiun A mengirim frame 0 sampai 6 ke stasiun B.
- Stasiun B menerima dan mengakui ketujuh frame-frame.
- Karena noise, ketujuh acknowledgment hilang.
- Stasiun A kehabisan waktu dan mentransmisi ulang frame 0.
- Stasiun B sudah memajukan window penerimanya untuk menerima frame 7,0,1,2,3,4 dan 5. Dengan demikian dianggap bahwa frame 7 telah hilang dan bahwa frame nol yang baru, diterima.
Problem dari skenario ini yaitu antara window pengiriman dan penerimaan. Yang diatasi dengan memakai ukuran window max tidak lebih dari setengah range penomoran.
Baca juga : Network Layer