Kategori
Networking

Flow Control dan Error Control

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

Stop-and-wait adalah bentuk paling sederhana dari kontrol aliran. Dalam metode ini, penerima menunjukkan kesiapannya untuk menerima data untuk setiap frame, pesan akan dipecah menjadi beberapa frame. Menunggu pengirim untuk ACK (pengakuan) setelah setiap frame untuk waktu tertentu (disebut waktu). Hal ini dikirim untuk memastikan bahwa penerima telah menerima frame dengan benar. Ini kemudian akan mengirimkan frame berikutnya setelah ACK telah diterima.
 
Operasi :
  1. Pengirim: Mengirim satu frame pada suatu waktu.
  2. Penerima: Mengirim pengakuan (ACK) karena menerima sebuah frame.
  3. Pengirim menerima ACK dalam waktu.
  4. Lanjutkan ke langkah 1.
Jika bingkai atau ACK hilang selama transmisi maka itu harus ditransmisikan kembali oleh pengirim. Proses pengiriman ulang ini dikenal sebagai ARQ (mengulangi permintaan otomatis).
Masalah dengan Stop-and-wait adalah bahwa hanya satu frame dapat ditularkan pada satu waktu dan sering menyebabkan saluran transmisi tidak efisien sampai kita mendapatkan pengakuan pengirim tidak dapat mengirimkan setiap paket baru. Selama ini baik pengirim dan saluran yang tidak digunakan.
Baca juga : Data Link Layer

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.
Kelebihan Stop-and-wait 
  • Satu-satunya keuntungan dari metode ini pengendalian aliran adalah kesederhanaannya.
Kekurangan Stop-and-wait 
  • 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

Sebuah metode kontrol aliran di mana penerima memberikan izin pemancar untuk mengirimkan data sampai jendela penuh. Ketika jendela penuh, pemancar harus menghentikan transmisi sampai penerima mengiklankan jendela yang lebih besar.
 
Flow control Sliding window yang terbaik digunakan ketika ukuran buffer terbatas dan pra-ditetapkan. Selama komunikasi yang khas antara pengirim dan penerima penerima mengalokasikan ruang buffer untuk frame n (n adalah ukuran buffer dalam frame). Pengirim dapat mengirim dan penerima dapat menerima frame n tanpa harus menunggu pengakuan. Sebuah nomor urut ditugaskan untuk frame untuk membantu melacak mereka frame yang tidak menerima pengakuan. Penerima mengakui frame dengan mengirimkan pengakuan yang mencakup nomor urut dari frame berikutnya yang diharapkan. Pengakuan ini mengumumkan bahwa penerima siap untuk menerima frame n, dimulai dengan nomor tertentu. Kedua pengirim dan penerima memelihara apa yang disebut jendela. Ukuran jendela kurang dari atau sama dengan ukuran buffer.
 
Sliding jendela kontrol aliran memiliki kinerja jauh lebih baik daripada kontrol aliran stop-and-wait. Misalnya dalam lingkungan nirkabel kecepatan data yang sangat rendah dan tingkat kebisingan yang sangat tinggi, sehingga menunggu pengakuan untuk setiap paket yang ditransfer tidak sangat layak. Oleh karena itu, mentransfer data massal akan menghasilkan kinerja yang lebih baik dalam hal throughput yang lebih tinggi.
 
Baca juga : Physical Layer
 
Sliding window adalah titik ke titik protokol asumsi bahwa tidak ada entitas lain mencoba untuk berkomunikasi hingga transfer data saat selesai. Jendela dikelola oleh pengirim menunjukkan yang membingkai dia bisa mengirim. Pengirim mengirimkan semua frame di jendela dan menunggu pengakuan (sebagai lawan mengakui setelah setiap frame). Pengirim kemudian menggeser jendela ke nomor urut sesuai, yang mengindikasikan bahwa frame dalam jendela mulai dari nomor urut saat ini dapat dikirim.

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 :

  1. Lost Frame : suatu frame gagal mencapai sisi yang lain
  2. 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

  1. Error Detection : menggunakan CRC.
  2. Positive acknowledgment : tujuan mengembalikan suatu positif acknowledgment untuk penerimaan yang sukses, frame bebas error.
  3. Retransmission after timeout : sumber mentransmisi ulang suatu frame yang belum diakui setelah suatu waktu yang tidak ditentukan.
  4. 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

Ref : [1][2][3][4][5]