Flow control adalah mekanisme dalam Transport Layer yang berfungsi untuk mengatur laju pengiriman data dari pengirim (sender) ke penerima (receiver) agar penerima tidak kewalahan menerima data. Sederhananya, flow control memastikan bahwa pengirim tidak mengirim data terlalu cepat, sehingga data yang masuk masih bisa diproses dan disimpan oleh penerima.

Gambar 1. Flow Control

Pada protokol TCP (Transmission Control Protocol), flow control dilakukan menggunakan konsep window atau sering disebut sliding window. Penerima akan memberikan informasi kepada pengirim mengenai seberapa banyak data yang masih dapat diterima melalui nilai yang disebut receiver window (rwnd). Nilai ini menunjukkan kapasitas buffer yang masih tersedia pada sisi penerima, sehingga pengirim hanya diperbolehkan mengirim data sebanyak ukuran window tersebut. Jika buffer penerima mulai penuh, ukuran window akan diperkecil agar pengirim mengurangi laju pengiriman data. Sebaliknya, jika buffer penerima kembali longgar, window dapat diperbesar sehingga pengirim bisa mengirim lebih banyak data. Dengan cara ini, TCP dapat menjaga agar pengiriman data tetap lancar tanpa menyebabkan penumpukan data pada penerima.

Flow control sangat penting karena pada kenyataannya kemampuan perangkat berbeda-beda. Ada perangkat yang cepat (misalnya server), ada juga yang lebih lambat (misalnya HP atau laptop lama). Jika server mengirim data terlalu cepat ke perangkat lambat, maka data bisa menumpuk dan akhirnya hilang.

Flow control dibutuhkan karena penerima memiliki keterbatasan seperti kapasitas buffer (memori penampung data) terbatas, kecepatan proses CPU penerima tidak selalu sama, aplikasi penerima belum tentu siap menerima data secara terus-menerus.
Jika pengirim terus mengirim tanpa kontrol, maka buffer penerima bisa penuh dan menyebabkan data terbuang (packet loss), pengiriman ulang (retransmission), jaringan menjadi lebih lambat

Salah satu contoh nyata adalah pada saat video call, data video dan audio dikirim terus-menerus, Jiika penerima tidak sanggup memproses data yang datang terlalu cepat, kualitas video bisa patah-patah.
Walaupun video call banyak memakai UDP, prinsip flow control tetap ada dalam sistem (biasanya melalui aplikasi atau protokol tambahan) supaya penerima tidak overload.

Apa itu Error Control ?

Gambar 2. Transport Layer Error Flow

Selanjutnya, dalam sebuah data, diperlukan sebuah sistem yang bertujuan untuk menangani segala error yang ada, terutama jika terdapat adanya suatu kesalahan dalam sistem. Sistem tersebut dinamakan sebagai error control. Error Control secara sederhananya dapat didefinisikan sebagai suatu teknik untuk mendeteksi dan memperbaiki kerusakan pada saat transmisi frame. Pengontrolan kesalahan terhadap error tersebut itu berkaitan dengan berbagai rangkaian proses yang bertujuan untuk mendeteksi dan memperbaiki kesalahan yang terjadi pada pentransmisian frame. Seperti yang telah dijelaskan sebelumnya sesuai dengan proses data yang ada sebelumnya, data dikirim sebagai deretan frame, kemudian frame tiba sesuai perintah yang sama saat dikirim, dan masing-masing frame yang ditransmisikan mengalami perubahan dan sejumlah variabel penundaan sebelum mencapai penerima.

Terdapat beberapa error yang biasa ditangani oleh fitur Error Control seperti hilangnya sebuah frame yang ada, dan terdapat kerusakan pada frame yang ada. Sebuah frame yang ada dapat dikatakan hilang jika satu frame yang ada gagal mencapai sisi satunya yang lain. Untuk contohnya dari kasus tersebut supaya bisa lebih jelas berupa derau yang kuat bisa merusak frame yang ada hingga mencapai tingkat dimana receiver menyadari bahwa frame tersebut sudah ditransmisikan. Sedangkan, frame dapat dikatakan mengalami kerusakan apabila sebuah frame yang diakui telah tiba, namun beberapa bit yang terdapat didalamnya mengalami kesalahan (sesudah berubah selama transmisi).

Prinsip kerja pada Sistem Error Control umumnya bekerja melalui teknik-teknik umum yang membutuhkan beberapa atau seluruh unsur-unsur tersebut sebagai berikut :

  1. Pendeteksian kesalahan adalah sama dengan bagian yang telah dijelaskan sebelumnya yang dinamakan sebagai Error Detection.
  2. Balasan positif adalah tujuan mengembalikan balasan positif untuk frame yang bebas dari kesalahan dan diterima dengan baik.
  3. Retransmisi setelah waktu habis adalah sumber melakukan retransmisi frame yang belum dibalas setelah beberapa saat tertentu.
  4. Balasan negatif dan retransmisi adalah tujuan mengembalikan balasan negatif kepada frame yang dideteksi mengalami kesalahan, sumber melakukan retransmisi terhadap frame yang demikian.

Agar bisa lebih jelas lagi, berikut akan dijelaskan mengenai contoh nyata Error Control pada Transport Layer. Contoh nyata dari Error Control yaitu terdapat pada penggunaan protokol TCP (Transmission Control Protocol) yang menjamin pengiriman data andal melalui mekanisme checksum untuk deteksi kesalahan dan Automatic Repeat Request (ARQ) untuk pengiriman ulang paket yang rusak atau hilang, memastikan data utuh diterima.

Berikut contoh-contoh nyata Error Control pada Transport Layer secara lebih jelas lagi :

  • Checksum pada TCP : Saat kita sedang mengirimkan sebuah file (misal : kita mengunduh sebuah dokumen yang ada), TCP menghitung nilai checksum dan menyertakannya di header Di sisi penerima, checksum dihitung ulang. Jika berbeda, paket dianggap rusak dan dibuang.
  • Retransmisi (ARQ – Automatic Repeat Request) : Jika penerima tidak mengirimkan Acknowledgement (ACK/konfirmasi) atas paket tertentu dalam waktu tertentu (timeout) atau menerima paket yang korup, pengirim akan mengirim ulang paket data yang sama.
  • Go-Back-N ARQ : Jika paket nomor 3 rusak, TCP tidak hanya mengirim ulang paket 3, tetapi juga semua paket setelahnya (4, 5, dst.) yang mungkin sudah dikirim, untuk menjamin urutan data tetap benar.
  • Pengirim Ulang Selektif (Selective Repeat) : Mekanisme yang lebih efisien di mana hanya paket yang benar-benar rusak atau hilang (misalkan : paket nomor 3 saja) yang dikirim ulang, sementara paket 4 dan 5 tidak perlu dikirim ulang.

Proses ini terjadi secara end-to-end (ujung ke ujung) untuk memastikan aplikasi pengguna menerima data yang akurat.

==_==

Penulis:

Class Group-4

KEANE AMADEUS KRISTIANTO
2902745270

IGNATIUS MICHAEL ALDRICH VAN MIRACLE
2902593081

FAUSTINE CHRISTABELLE INDY LISTYANTO LESTIONO
2902681336

LOUIS ALAN PRATAMA
2902590451

Uploader & Lecturer: Nico Yonatan Wicaksana, S.Kom., M.Kom.

==_==