FLOW CONTROL
Flow Control adalah teknik untuk memastikan bahwa entitas pentransmisi tidak membanjiri entitas penerima dengan data. Entitas penerima biasanya mengalokasikan penyangga data dengan panjang maksimum untuk transfer.Bila data diterima, receiver harus melakukan beberapa kegiatan pengolahan tertentu sebelum menyalurkan data ke software yang level-nya lebih tinggi. Bila tidak ada flow control, penyangga receiver akan meluap selagi mengolah data yang lama. Untuk memulai, kita mengamati mekanisme flow control tanpa ada kesalahan. Model yang akan kita gunakan digambarkan pada gambar 1, yang berupa diagram deretan waktu vertical. Yang memilki kelebihan karena menunjukkan ketergantungan terhadap waktu dan menggambarkan hubungan pengiriman-penerimaan yang benar.
Masing-masing anak panah menunjukkan frame tunggal yang membawa data link diantara dua stasiun. Data dikirim dalam deretan frame, dimana masing-masing frame berisikan bagian-bagian dari data serta beberapa kontrol informasi. Waktu yang dipergunakan station untuk memancarkan seluruh bit dari frame ke media disebut waktu transmisi; waktu ini sebanding dengan panjang frame. Waktu perambatan adalah waktu yang diambil bit untuk melintasi jalur diantara sumber dan tujuan. Saat ini, kita mengasumsikan bahwa keseluruhan frame yang ditransmisikanbisa diterima dengan baik; dalam arti tidak ada frame yang ditransmisikan datang dalam keadaan kesalahan.Selanjutnya, masing-masing frame yang ditransmisikan mengalami beberapa perubahan dan sejumlah perbedaan sebelum mencapai penerima.
Gambar 1
Stop-and-Wait Flow Control
Bentuk paling sederhana dari flow control, disebut juga dengan stop-and-wait flow control (kontrol flow berhenti-dan-tunggu). Proses kerjanya sebagai berikut:
Entitas sumber mentransmisikan frame. Setelah entitas tujuan menerima frame, maka entitas tujuan akan mengirim balasan bahwa frame tersebut baru diterima dan siap untuk menerima frame yang berikutnya. Sumber harus menunggu balasan diterima sebelum mengirimkan frame berikutnya. Tujuan dapat menghentikan arus data dengan mudah dengan cara tidak memberi balasan. Prosedur ini bekerja dengan baik dan tentunya, dapat lebih ditingkatkan bila pesan dikirim dengan frame yang lebih sedikit. Namun yang sering terjadi adalah blok data yang dalam jumlah besar akan dipecah-pecah oleh sumber menjadi blok-blok yang lebih kecil serta mentransmisikan data dalam beberapa frame. Hal ini dikarenakan karena:
Ukuran penyangga receiver terbatas.
Blok data dalam jumlah besar dapat menyebabkan transmisi menjadi lebih lama, akibatnya dimungkinkan terjadinya kesalahan lebih besar, sehingga
1) Pada jalur ujung ke ujung langsung, sejumlah penundaan lebih dipastikan dibanding sebagai variabel.
Bagaimanapun, protokol data link control juga dapat dipergunakan pada koneksi jaringan, misalnya, jaringan circuitswitched atau ATM, dimana dalam hal ini kasus penundaan merupakan variabel.mengharuskan dilakukannya transmisi ulang keseluruhan frame. Dengan frame yang lebih kecil, kesalahan bisa terdeteksi lebih cepat, dan data yang harus ditransmisikan ulang juga lebih sedikit.
Pada media yang dipakai bersama, seperti LAN, biasanya tidak dikehendaki satu station menempati media dalam waktu panjang, karena bisa menyebabkan penundaan yang lama pada station-station pengirim lain. Dengan penggunaan frame multiple untuk sebuah pesan tunggal, prosedur stop-and-wait saja tidak cukup. Inti permasalahannya, karena hanya ada satu frame saja yang dapat dilintaskan dalam watu. Dalam situasi dimana panjang bit dari jalur.
2) Lebih besar dari panjang frame, akan terjadi ketidakefisiensian yang parah. Hal ini diilustrasikan di gambar 2. Dalam gambar tersebut, waktu transmisi (-waktu yang dipergunakan station untuk mentransmisikan frame) dinormalkan ke satu, dan penundaan perambatan (waktu yang diambil bit untuk melintas dari pengirim kepenerima).Ditunjukkan sebagai variable a. sehingga bila a kurang dari 1, waktu perambatan lebih sedikit disbanding waktu transmisi
Gambar 2 Penggunaan Jalur Stop and Wait
(waktu transmisi = 1; waktu perambatan = a)
(waktu transmisi = 1; waktu perambatan = a)
Dalam hal ini, frame cukup panjang sehingga bit pertama dari frame dapat tiba ke tujuan sebelum sumber menyelesaikan transmisi frame. Bila a lebih besar dari 1, maka waktu perambatan lebih besar dari waktu transmisi. Dalam hal ini, pengirim menyelesaikan transmisi semua frame sebelum bit yang utama dari frame tersebut tiba di penerima. Dengan kata lain, nilai-nilai yang lebih besar dari a sesuai dengan rate data yang lebih tinggi dan/atau jarak yang lebih panjang diantara setasiun.
Flow Control Jendela Penggeseran
Dari yang sudah digambarkan sebegitu jauh, inti permasalahannya adalah tidak hanya satu frame sekaligus yang dapat dikirim. Dalam situasi di mana panjang bit dari jalur yang lebih besar dari panjang frame (a>1), terjadi ketidakefisiensian yang sangat parah.tingkat efisiensi bisa diperoleh dengan cara membiarkan frame multiple diangkut dalam waktu yang sama. Mari kita mengamati bagaimana hal ini bisa terjadi untuk dua station, A dan B, yang dihubungkan melalui jalur full duplex. Station mengalokasikan ruang penyangga untuk frame W. Sehingga B dapat menerima frame W, dan A dibiarkan mengirimkan frame W tanpa menunggu balasan apapun. Untuk menjaga jalan dimana frame dibalas, masing-masing diberi nomor. B membalas frame dengan cara mengirim balasan yang memuat urutan nomor frame berikutnya. Balasan ini secara implisit mengumumkan bahwa B dipersiapkan untuk menerima frame-frame W berikutnya, dimulai dengan nomor yang ditentukan.Skema ini juga bisa dipergunakan untuk membalas frame-frame multiple.Sebagai contoh, B dapat menerima frame 2, 3, dan 4, namun menahan balasan sampai frame 4 tiba. Kemudian Gambar 3
Gambar 3 Gambaran Jendela Penggeseran
Mari kita mengamati bagaimana hal ini bisa terjadi untuk dua station, A dan B, yang dihubungkan melalui jalur full duplex. Station mengalokasikan ruang penyangga untuk frame W. Sehingga B dapat menerima frame W, dan A dibiarkan mengirimkan frame W tanpa menunggu balasan apapun. Untuk menjaga jalan dimana frame dibalas, masing-masing diberi nomor. B membalas frame dengan cara mengirim balasan yang memuat urutan nomor frame berikutnya. Balasan ini secara implisit mengumumkan bahwa B dipersiapkan untuk menerima frame-frame W berikutnya, dimulai dengan nomor yang ditentukan.Skema ini juga bisa dipergunakan untuk membalas frame-frame multiple.Sebagai contoh, B dapat menerima frame 2, 3, dan 4, namun menahan balasan sampai frame 4 tiba.Kemudian dengan mengembalikan balasan dengan nomor urut 5, B membalas frame 2, 3 dan 4 sekaligus.A mempertahankan daftar berisikan urutan yang dibiarkan dikirim, sedangkan B mempertahankan daftar ini diibaratkan sebagai jendela frame. Sedangkan operasi ini disebut sliding -window flow control (kontrol arus jendela penggeseran).
Perlu dibuat beberapa penjelasan tambahan. Karena urutan nomor yang digunakan menempati suatu bidang di dalam frame diperjelas dengan ukurannya yang memiliki batas sendiri. Sebagai contoh, untuk bidang 3-bit, urutan nomornya berkisar dari 0 sampai 7.Jadi, frame-frame yang diberi nomor modulo 8; maksudnya, setelah urutan nomor urut 7, nomor berikutnya adalah 0. Umumnya, untuk bidang kbit kisaran urutan nomornya adalah 0 sampai 2k-1, dan frame-nya diberi nomor modulo 2k. Gambar 3 merupakan cara yang terbaik untuk menggambarkan proses jendela penggeseran. Seandainya dipergunakan urutan nomor 3-bit, sehingga frame tersebut diberi nomor yang berurutan mulai dari 0 sampai 7, lalu nomor yang sama digunakan kembali untuk frame berikutnya. Kotak persegi panjang yang diarsir menunjukkan frame yang dikirim, dalam gambar ini, pengirim mentransmisikan lima frame, dimulai dengan frame 0. Tiap frame dikirim, jendela yang diarsir menjadi menyusut; dan tiap balasan diterima, jendela yang diarsir mengembang. Frame di antara garis vertical dan jendela yang diarsir telah dikirim namun belum dibalas. Sebagaimana yang kita lihat, pengirim harus menahan frame-frame ini bila mereka harus ditransmisikan kembali. Ukuran jendela yang sebenarnya tidak harus berukuran maksimum untuk urutan nomor panjang tertentu.Sebagai contoh, bila menggunakan urutan nomor 3-bit, ukuran jendela sebesar 4 dapat dikonfigurasikan untuk station-station menggunakan protocol kontrol arus jendela penggeseran. Dalam gambar 4 menunjukkan sebuah contoh.Dimana diasumsikan suatu bidang dengan nomor urut 3-bit serta ukuran jendela maksimum 7 frame.Awalnya, A dan B yang memiliki jendela menunjukkan bahwa A mentransmisikan 7 frame, dimulai dengan frame 0 (F0). Setelah mentransmisikan tiga frame (F0, F1, F2) tanpa balasan, A menyusutkan jendelanya untuk empat frame dan mempertahankan tiruan tiga frame yang ditransmisikan. Jendela menunjukkan bahwa A mentransmisikan empat frame, dimulai dengan frame nomor 3. Kemudian B mentransmisikan RR (Receive Ready) 3, yang maksudnya “Saya sudah menerima semua frame melalui frame nomor 2 dan sekarang saya siap menerima frame nomor 3; kenyataannya, saya dipersiapkan untuk menerima tujuh frame, dimulai dengan frame nomor 3.” Dengan balasan ini, A mundur untuk meminta ijin mentransmisikan tujuh frame, masih dimulai dengan frame nomor 3; A juga membuang frame-frame yang disangga yang belum dibalas. A mulai mentransmisikan frame 3, 4, 5 dan 6.B mengembalikan RR 4, yang dibalas F3, dan membiarkan transmisi F4 melalui contoh F2 berikutnya. Sampai saat itu RR tersebut mencapai A, yang sudah mentransmisikan F4, F5 dan F6 dan karenanya A hanya akan membuka jendelanya untuk membiarkan pengiriman empat frame yang dimulai dengan F7.
Gambar 4
Mekanisme yang digambarkan sedemikian rupa memang menyediakan suatu bentuk kontrol arus. Receiver harus mampu memuat tujuh frame melampaui frame yang dibalas terakhir kali. Sebagai besar protocol juga membiarkan station memotong aliran frame dari sisi yang lain dengan cara mengirimkan pesan Receive Not Ready (RNR), yang membalas frame yang lebih awal namun melarang pengiriman frame selanjutnya. Jadi RNR 5 bisa berarti “Saya sudah menerima semua frame melalui frame nomor 4 namun saya tidak mampu menerima apa apa lagi.”
Pada beberapa hal berikutnya, station harus mengirim suatu balasan normal untuk membuka jendela kembali. Sejauh ini, kita sudah membahas transmisi dalam satu arah saja. Bila dua station melakukan pertukaran data, masing-masing harus mempertahankan dua jendela, satu untuk transmisi dan satunya lagi untuk menerima, serta masing-masing pihak harus mengirim data dan membalas ke pihak yang lain. Agar mampu melakukan hal ini, diperlukan bentuk yang biasa disebut piggybacking. Setiap frame data termasuk bagian yang memuat urutan nomor frame tersebut plus bagian yang memuat urutan nomor yang digunakan untuk balasan. Jadi, bila sebuah station tersebut akan mengirimkan keduanya bersama-sama dalam satu frame, sekaligus menyimpan kapasitas komunikasi. Begitu pula, bila sebuah station memiliki sebuah balasan namun tanpa data untuk dikirim, setasiun tersebut akan mengirim sebuah frame acknowledgement yang terpisah, seperti RR atau RNR. Bila station memiliki data untuk dikirim namun tanpa balasan baru untuk dikirim, setasiun tersebut harus mengulang urutan nomor balasan terakhir yang telah dikirimkannya. Ini disebabkan karena data frame termasuk bagian untuk nomor balasan, serta beberapa nilai harus dimasukkan ke dalam bagian tersebut. Bila station menerima duplikat balasan, maka ia harus mengabaikannya.
Pada beberapa hal berikutnya, station harus mengirim suatu balasan normal untuk membuka jendela kembali. Sejauh ini, kita sudah membahas transmisi dalam satu arah saja. Bila dua station melakukan pertukaran data, masing-masing harus mempertahankan dua jendela, satu untuk transmisi dan satunya lagi untuk menerima, serta masing-masing pihak harus mengirim data dan membalas ke pihak yang lain. Agar mampu melakukan hal ini, diperlukan bentuk yang biasa disebut piggybacking. Setiap frame data termasuk bagian yang memuat urutan nomor frame tersebut plus bagian yang memuat urutan nomor yang digunakan untuk balasan. Jadi, bila sebuah station tersebut akan mengirimkan keduanya bersama-sama dalam satu frame, sekaligus menyimpan kapasitas komunikasi. Begitu pula, bila sebuah station memiliki sebuah balasan namun tanpa data untuk dikirim, setasiun tersebut akan mengirim sebuah frame acknowledgement yang terpisah, seperti RR atau RNR. Bila station memiliki data untuk dikirim namun tanpa balasan baru untuk dikirim, setasiun tersebut harus mengulang urutan nomor balasan terakhir yang telah dikirimkannya. Ini disebabkan karena data frame termasuk bagian untuk nomor balasan, serta beberapa nilai harus dimasukkan ke dalam bagian tersebut. Bila station menerima duplikat balasan, maka ia harus mengabaikannya.
Kontrol arus jendela penggeseran Nampak jauh lebih efisien disbanding kontrol arus stop-and wait. Alasannya karena, dengan kontrol arus jendela penggeseran, jalur transmisi diperlaukan sebagai pipa saluran yang bisa terpenuhi dengan frame-frame saat transit. Sebaliknya, dengan kontrol arus stop-and-wait, hanya satu frame saja yang berada di dalam pipa sekaligus. Lampiran 7A mennunjukkan peningkatan efisiensi yang dimaksud.
Published By : Alif Naufal Chyfa
Sumber : Stitrusta Sukaridhoto, ST. Ph.D. 2016. Komunikasi Data & Komputer. Politeknik Elektronika Surabaya.