FLOW CONTROL PADA DATA LINK 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 7.1a, 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 ditransmisikan
bisa 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 7.1 Model Transmisi Frame
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 circuit-
switched 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 dikehendak 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 jalur2) lebih besar dari panjang frame, akan terjadi ketidakefisiensian yang parah. Hal ini diilustrasikan di gambar 7.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
ke penerima).Ditunjukkan
sebagai variable a.
sehingga bila a kurang dari 1, waktu perambatan lebih sedikit disbanding waktu transmisi.
Gambar 7.2 Penggunaan Jalur Stop and Wait
(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.
Lampiran
7A membahas mengenai
a dan kinerja jalur data.
2)Panjang
bit suatu jalur adalah jumlah bit yang ada pada jalur saat stream bit memenuhi
jalur. Secara
matematik,
panjang bit = R x (d/V), dimana R = data rate dalam bps, da = jarak jalur dalam
meter, dan V =
kecepatan
perambatan dalam m/s
Dua bagian dari 7.2
(a dan b) terdiri dari deretan beberapa proses transmisi sepanjang waktu. Dalam kedua
kasus
tersebut, keempat bagian pertama menunjukkan proses pentransmisian frame yang memuat data, sedangkan bagian
terakhir menunjukkan proses
kembalinya frame balasan. Perlu dicatat, bila untuk
kasis a>1, jalurnya selalu
kurang berguna dan bahkan untuk a<1, jalurnya tidak
digunakan
secara efisien.Intinya, untuk rate data dengan pengaplikasian stop-and-
wait
flow
control dimungkinkan terjadinya penggunaan
jalur yang
tidak efisien.
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.
Gambar 7.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 k-
bit kisaran urutan nomornya adalah 0 sampai 2k-1, dan frame-nya diberi nomor
modulo 2k.
Gambar
7.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 7.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 7.4 Contoh Sebuah Protokol Jendela
Penggeseran
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.
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.
Tidak ada komentar:
Posting Komentar