Flow Control
2.1 Pengertian 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 computer 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.
2.2 Dua Teknik flow control
Teknik flow control ada 2 yaitu Stop dan wait flow control dan sliding window flow control ( flow control jendela pergeseran )
Stop and wait flow control.
Cara kerjanya :
Protokol ini memiliki karakteristik dimana sebuah pengirim mengirimkan sebuah frame dan kemudian menunggu acknowledgment sebelum memprosesnya lebih lanjut.
Mekanisme stop and wait dapat dijelaskan dengan menggunakan gambar di atas, dimana DLC(Data Line Carrier) mengizinkan sebuah message untuk ditransmisikan (event 1), pengujian terhadap terjadinya error dilakukan dengan teknik seperti VCR (Vertical Redundancy Check) atau LRC (Longitudinal Redundancy Check) terjadi pada even 2 dan pada saat yang tepat sebuah ACK(Acknowledgment) atau NAK(Negative acknowledgment) dikirimkan kembali untuk ke stasiun pengirim (event 3). Tidak ada messages lain yang dapat ditransmisikan selama stasiun penerima mengirimkan kembali sebuah jawaban. Jadi istilah stop and wait diperoleh dari proses pengiriman message oleh stasiun pengirim, menghentikan transmisi berikutnya, dan menunggu jawaban. Pendekatan stop and wait adalah sesuai untuk susunan transmisi half duplex, karena dia menyediakan untuk transmisi data dalam dua arah, tetapi hanya dalam satu arah setiap saat. Kekurangan yang terbesar adalah disaat jalur tidak jalan sebagai akibat dari stasiun yang dalam keadaan menunggu, sehingga kebanyakan DLC stop and wait sekarang menyediakan lebih dari satu terminal yang on line.Terminal.Ketika ACK atau NAK hilang pada saat pentransmisian terjadi maka ini akan menjadi masalah yang serius. Jika ACK pada event 3 hilang, setelah habis batas waktunya stasiun master mengirim ulang message yang sama untuk kedua kalinya. Transmisi yang berkelebihan mungkin terjadi dan menciptakan sebuah duplikasi record pada tempat kedua dari file data pengguna. Akibatnya, DLC harus mengadakan suatu cara untuk mengidentifikasi dan mengurutkan message yang dikirimkan dengan berdasarkan pada ACK atau NAK sehingga harus dimiliki suatu metoda untuk mengecek duplikat message.
Pada gambar di bawah ditunjukkan bagaimana urutan pendeteksian duplikasi message bekerja, pada event 1 stasiun pengirim mengirikan sebuah message dengan urutan 0 pada headernya. Stasiun penerima menjawab dengan sebuah ACK dan sebuah nomor urutan 0 (event 2). Pengirim menerima ACK, memeriksa nomor urutan 0 di headernya, mengubah nomor urutan menjadi 1 dan mengirimkan message berikutnya (event 3).
Gambar: Stop-and-wait alternating sequence
Stasiun penerima mendapatkan message dengan ACK 1 di event 4. Akan tetapi message ACK ini diterima dalam keadaan rusak atau hilang pada jalan. Stasiun pengirim mengenali bahwa message di event 3 tidak dikenali. Setelah batas waktu terlampau (timeout) stasiun pengirim mengirim ulang message ini (event 5). Stasiun penerima mencari sebuah message dengan nomor urutan 0. Dia membuang message(message 0 didata pengirim), sejak itu dia message 1 yang dikirim di event 5 adalah sebuah duplikat dari message yang dikirim pada event 3. Untuk melengkapi pertanggungjawaban, stasiun penerima mengirim ulang ACK 1 (event 6).
Flow Control Jendela Pergeseran(sliding-window flow control)
Masalah utama yang selama ini adalah bahwa hanya satu frame yang dapat dikirimkan pada saat yang sama. Dalam keadaan antrian bit yang akan dikirimkan lebih besar dari panjang frame maka diperlukan suatu efisiensi. Untuk memperbesar efisiensi yang dapat dilakukan dengan memperbolehkan transmisi lebih dari satu frame pada saat yang sama. Bila suatu station A dan B dihubungkan dengan jalur full-duplex, station B mengalokasikan buffers dengan selebar n frame, yang berarti stasiun B dapat menerima n frame, dan station A diperbolehkan untuk mengirim frame sebanyak n tanpa menunggu adanya jawaban. Untuk menjaga jejak dimana frame yang dikirimkan sedang dijawab maka masing-masing jawaban diberi label dengan nomor yang urut. Station B menjawab frame dengan mengirimkan jawaban yang dilengkapi nomor urut dari frame berikutnya yang diinginkan. Jawaban ini juga memiliki maksud untuk memberitahukan bahwa station B siap untuk menerima n frame berikutnya, dimulai dengan nomor urut yang telah tercantum. Skema ini juga dapat dipergunakan untuk menjawab lebih dari satu frame. Misalnya station B dapat jawaban sampai frame ke 4 tiba, dengan kembali jawaban dengan nomor urut 5, station B menjawab frame 2, 3, dan 4 pada satu saat. Station A memelihara daftar nomor urutan yang boleh dikirim, sedangkan station B memelihara daftar nomor urutan yang siap akan diterima. Masing-masing daftar tersebut dapat dianggap sebagai window dari frame, sehingga prinsip kerjanya disebut dengan pengontrol aliran sliding-window. Diperlukan untuk dibuat komentar tambahan untuk masing-masing, karena nomor urut yang dipakai menempati daerah didalam frame, komentar tambahan ini dibatasi oleh terbatasnya tempat yang tersedia. Misalnya untuk daerah dengan panjang 3 bit, maka nomor urut jangkauannya antara 0 s/d 7 saja, sehingga frame diberi nomor dengan modulo 7, jadi sesudah nomor urut 7 berikutnya adalah nomor 0. Pada gambar dibawah menggambarkan proses sliding-windows, dengan diasumsikan nomor urut menggunakan 3 bit sehingga frame diberi nomor urut 0 s/d 7, selanjutnya nomor yang sama dipakai kembali sebagai bagian urutan frame. Gambar segiempat yang diberi bayangan kuning (disebut window)menunjukkan transmitter dapat mengirimkan 7 frame, dimulai dengan frame nomor 7. Setiap waktu frame dikirimkan maka window yang digambarkan sebagai kotak dibayangi akan menyusut, setiap waktu jawaban diterima, window akan membesar. Ukuran panjang window sebenarnya tidak diperlukan sebanyak ukuran maksimumnya untuk diisi sepanjang nomor urut. Sebagai contoh, nomor urut menggunakan 3 bit, stasiun dapat membentuk window dengan ukuran 4, menggunakan protokol pengatur aliran sliding-window. Sebagai contoh diasumsikan memiliki daerah nomor urut 3 bit dan maksimum ukuran window adalah 7 frame. Dimulai dari station A dan B telah menandai window dan station A mengirimkan 7 frame yang dimulai dengan frame 0 (F0), sesudah mengirimkan 3 frame (F0, F1, dan F2) tanpa jawaban maka station A telah menyusutkan window-nya menjadi 4 frame.
Window menandai bahwa station A dapat mengirimkan 4 frame, dimulai dari frame nomor 3 selanjutnya stasiun B mengirim receive-ready (RR) yang berarti semua frame telah diterima sampai frame nomor 2 dan selanjutnya siap menerima frame nomor 3, tetapi pada kenyataannya disiapkan menerima 7 frame, dimulai frame nomor 3. Station A terus mengirimkan frame nomor 3, 4, 5, dan 7, kemudian station B menjawab RR7 sebagai jawaban dari semua frame yang diterima dan mengusulkan station A mengirim 7 frame, dimulai frame nomor 0.
Receiver harus dapat menampung 7 frame melebihi satu jawaban yang telah dikirim, sebagian besar protokol juga memperbolehkan suatu station untuk memutuskan aliran frame dari sisi (arah) lain dengan cara mengirimkan pesan receive-not-ready (RNR), yang dijawab frame terlebih dulu, tetapi melarang transfer frame berikutnya. Bila dua stasiun saling bertukar data (dua arah) maka masing-masing perlu mengatur duawindow, jadi satu untuk transmit dan satu untuk receive dan masing-masing sisi (arah) saling mengirim jawaban. Untuk memberikan dukungan agar efiisien seperti yang diinginkan, dipersiapkan piggybacking (celengan), masing-masing frame data dilengkapi dengan daerah yang menangkap urutan nomor dari frame, ditambah daerah yang menangkap urutan nomor yang dipakai sebagai jawaban. Selanjutnya bila suatu station memiliki data yang akan dikirim dan jawaban yang akan dikirimkan, maka dikirimkan bersama-sama dalam satu frame, cara yang demikian dapat meningkatkan kapasitas komunikasi. Jika suatu station memiliki jawaban tetapi tidak memiliki data yang akan dikirim, maka station tersebut mengirimkan frame jawaban yang terpisah. Jika suatu station memiliki data yang akan dikirimkan tetapi tidak memiliki jawaban baru yang akan dikirim maka station tersebut mengulangi dengan mengirimkan jawaban terakhir yang dikirim, hal ini disebabkan frame data dilengkapi daerah untuk nomor jawaban, dengan suatu nilai (angka) yang harus diletakkan kedalam daerah tersebut. Jika suatu station menerima jawaban yang sama (duplikat) maka tinggal mengabaikan jawaban tersebut. Sliding-window dikatakan lebih efisien karena jalur komunikasi disiapkan seperti pipa saluran yang setiap saat dapat diisi beberapa frame yang sedang berjalan, tetapi pada stop and wait hanya satu frame saja yang boleh mengalir dalam pipa saluran tersebut.
Berikut ilustrasi cara kerja sliding window flow control:
Kontrol kesalahan
Bagaimana meyakinkan semua frame akan dikirimkan dengan segera ke network layer di
mesin tujuan dengan urutan yang benar. Cara yang umum untuk menjamin pengiriman reliabel
adalah memberikan pengirim beberapa umpan balik tentang apa yang terjadi di sisi lain dari
saluran. Umumnya protokol meminta penerima untuk mengirimkan kembali frame-frame kontrol
khusus yang berkaitan dengan acknowledgement positif atau negatif tentang frame yang datang.
Bila pengirim menerima acknowledgement positif, maka pengirim akan mengetahui bahwa frame
telah sampai dengan baik. Sebaliknya, acknowledgement negatif berarti sesuatu yang salah,
maka frame harus ditransmisikan ulang.
Kemungkinan masalah lain bisa muncul karena berasal dari hardware, dimana frame bisa
musnah sama sekali. Dalam kasus ini, penerima tidak akan bereaksi sama sekali, karena tidak
memiliki alasan untuk bereaksi. Kemungkinan ini berkaitan dengan pemakaian timer kedalam
data link layer.
Pada saat pengirim mentransmisikan sebuah frame, pengirim juga mengaktifkan timer.
Timer akan mati setelah melalaui interval yang cukup panjang bagi frame untuk mencapai mesin
yang dituju, diproses disana, dan acknowledgement akan kembali sebelum timer habis. Akan
tetapi, bila salah satu frame atau acknowledgment hilang, timer akan segera berhenti,
memperingatkan pengirim akan terjadinya masalah penting.
Penyelesainnya adalah dengan mengirimkan kembali frame. Tetapi, bila frame dikirimkan
kembali bebrapa kali terdapat bahaya yaitu penerima akan menerima dua kali atau lebih frame
yang sama, dan meneruskannya ke network layer lebih dari satu kali.Untuk menjaga terjadinya
hal ini, umumnya perlu diberikan nomor urut yang keluar sehingga penerima dapat membedakan
transmisi ulang dari frame aslinya.
Dua strategi dasar mengenai kesalahan, yaitu:
1. Menggunakan kode-kode pendeteksi kesalahan.Yaitu dengan melibatkan redundansi secukupnya untuk menarik kesimpulan bahwa suatu kesalahan telah terjadi, dan membiarkannya untuk meminta pengiriman ulang.
2. Menggunakan kode-kode pengkoreksi kesalahan.Yaitu dengan melibatkan informasi redundansi secukupnya bersama-sama dengan setiap blok data yang dikirimkan untuk memungkinkan penerima menarik kesimpulan tentang apa karakter yang ditransmisikan yang seharusnya ada.
2.3. Deteksi Error
Deteksi Error ini dapat dibedakan menjadi tiga metode, yaitu :
1. Vertical Redudancy Check (VRC)
2. Longitudinal Redundancy Checking (LRC)
3. Polinomial Checking, yang terdiri dari dua metode, yaitu :
a. Checksum
b. Cyclical Redundancy Chek (CRC).
2.4. Metode Vertical Redundancy Check (VRC)
Vertical Redundancy Check disebut juga dengan Parity Checking merupakan salah satu
dari metode pendeteksi error yang tertua dan paling sederhana. Dengan teknik ini satu blok bit tambahan ditambahkan ke tiap byte pada message, sehingga jumlah bit paritasnya genap.Caranya hanya dengan membandingkan data dikirim dan diterima sama atau tidak.
Contoh ilustrasi:
Parity bit ini diset untuk membuat jumlah total dari 1 di dalam byte (termasuk parity bit) menjadi
genap atau ganjil. Contohnya untuk data empat bit, 1001, terdapat 1 sebanyak dua bit. Untuk parity genap nol (0) ditambahkan di akhir data agar paritynya genap. Kemudian untuk parity ganjil 1 ditambahkan agar partynya ganjil. Seperti ditunjukkan pada table berikut ini.
Kelemahan parity cecking dapat mendeteksi terjadinya kesalahan, tetapi tidak dapat mendeteksi kesalahan apa yang terjadi. Lebih lanjut jika ada dua bit dipertukarkan, parity cek tidak dapat mendeteksi error. Secara mudah hal ini dapat dilihat bahwa parity dapat mendeteksi error hanya ketika sebuah bit ganjil ditukar Bila jumlah bit genap maka pendeteksian error gagal. Oleh karena itu kemungkinan pendeteksian error dengan parity checking hanya 50%, akibatnya sekarang teknik ini jarang digunakan.
2.5. Metode Longitudinal Redundancy Check (VRC)
Metode Longitudinal Redundancy Checking dikembangkan untuk mengatasi kelemahan dari parity checking. LRC menambahkan satu karakter tambahan yang disebut blok check caracter (BCC) pada akhir setiap blok data sebelum blok ditransmisi. Nilai dari BCC ditentukan dengan cara yang sama seperti pada parity bit tetapi dengan menghitung secara longitudinal melalui message, lebih baik daripada dengan menghitung secara vertical melalui setiap karakter,atau dapat dijelaskan pada gambar berikut:
2.6 Polynomial Checking
Metode ini menambahkan sebuah karakter atau susunan karakter pada akhir sebuah message berdasar pada algoritma matematika. Dua teknik Polynomial Checking yang sangat populer adalah Checksum dan Cyclical Redundancy (CRC).
2.6.1. Checksum
Dengan teknik checksum, sebuah checksum ditambahkan pada akhir dari sebuah message. Receiver menghitung checksumnya dengan cara yang sama dan membandingkannya dengan checksum yang ditransmisi sender. Jika dua nilai tersebut sama, maka message diduga tidak ada error.Dibawah ini adalah ilustrasi nya:
Kelemahan dari metode checksum ini adalah tidak dapat mendeteksi error jika terdapat satu atau lebih segmen bit yang rusak dan bit yang berhubungan atau bit yang berlawanan nilainya pada segmen kedua juga mengalami kerusakan.
Checksum mendeteksi sampai 95% dari error, tetapi tidak dapat memperbaiki error.
2.6.2 Cyclical Redundancy Check (CRC)
Metode CRC merupakan metode yang dapat menangani deteksi error yang paling baik diantara metode-metode yang telah dibahas sebelumnya. Metode ini pada prinsipnya menggunakan pembagian bilangan biner dengan CRC checker dan pembagian biner dengan CRC generator. Dalam gambar berikut dijelaskan prinsip CRC secara umum. Secara prinsip untuk pembagian biner CRC Checker dapat dijelaskan melalui gambar berikut :
Jika hasil 0 maka berarti message no error dan dan jika bernilai 1 maka terdapat error


Comments
Post a Comment