Prioritizing empty TCP ACKs with Mikrotik

Bagi pelanggan Internet ADSL TelkomSpeedy dengan layanan bandwidth downstream dari TelkomSpeedy sebesar Up to 384kbps dan upstream sebesar 64kbps, selama ini sering merasa tidak nyaman dengan sajian bandwdith upstream dari TelkomSpeedy ini. Bandwidth upstream yang kecil akan berpengaruh terhadap bandwidth downstream yang besar dalam melakukan aktifitas Internet-annya.

Hal ini disebabkan terdesaknya kecepatan downstream apabila trafik upstream anda penuh, katakanlah diperoleh besarnya downstream 352kbps dan upstream 56kbps, apabila ada yang melakukan upload attachment ke Yahoo, maka sesi browsing akan terasa lambat (walaupun saat itu tidak ada aktivitas download sekalipun).

Mengapa terjadi seperti itu dapat dijelaskan, bahwa secara teoritis ini masih berkaitan dengan proses TCP Handshaking, atau dikenal dengan istilah TCP Three-way handshake.

Proses pembuatan koneksi (TCP Three way handshake)

Proses pembuatan koneksi TCP disebut juga dengan “Three-way Handshake”. Tujuan metode ini adalah agar dapat melakukan sinkronisasi terhadap nomor urut dan nomor acknowledgement yang dikirimkan oleh kedua pihak dan saling bertukar ukuran TCP Window. Prosesnya dapat digambarkan sebagai berikut:

  • Host pertama (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN diaktifkan kepada host kedua (yang hendak diajak untuk berkomunikasi).
  • Host kedua akan meresponsnya dengan mengirimkan segmen dengan acknowledgment dan juga SYN kepada host pertama.
  • Host pertama selanjutnya akan mulai saling bertukar data dengan host kedua.

TCP menggunakan proses jabat tangan yang sama untuk mengakhiri koneksi yang dibuat. Hal ini menjamin dua host yang sedang terkoneksi tersebut telah menyelesaikan proses transmisi data dan semua data yang ditransmisikan telah diterima dengan baik.

Nah, setiap sebuah TCP connection terjadi maka hanya akan mengirimkan data balasan searah (Seperti ketika melakukan download file melalui FTP), berupa TCP acknowledgements (ACKs). Singkatnya setiap sekali ada sesi permintaan, maka dilanjutkan dengan sesi balasan.

Ketika uplink di penuhi oleh berbagai koneksi sehingga mencapai titik jenuhnya (seperti adanya upload data serentak), maka semua trafik yang keluar akan mengalami masa delay. Seperti koneksi ACK untuk proses downloading data, akibatnya trafik downlink turun dratis.

Karena itu perlu dilakukan pemecahan serta prioritas paket, dimana koneksi upload yang dilakukan secara serentak sampai terjadi antrian, perlu di seleksi besar paket data yang dikeluar. Sehingga tidak ada lagi waktu delay, artinya koneksi TCP nya betul penuh digunakan. Terlebih digunakan dalam proses downloading data. CMIIW

Diperlukan suatu cara untuk memanajemen koneksi TCP ini, dengan harapan, bagi yang mempunyai koneksi Broadband ADSL dapat merasa puas dalam beraktifias. Saya melakukan percobaan ini dengan bantuan Router Mikrotik. Skript yang sedang dicoba adalah TCP Ack.txt, Selanjutnya ditambahkan rule pada queue tree yang telah diberi prioritas utama, jadi hanya length antara 40-100 yang di prioritaskan sementara untuk packet berukuran besar, diberi priority selanjutnya. Lebih bagus dikombinasikan dengan manipulasi ToS ICMP dan DNS.

Harapan dari percobaan ini, adalah meminimalkan tingginya latency yang diakibat oleh penuh trafik upsteam pada koneksi downstream/download data. Sehingga kalaupun ada yang melakukan upload data yang besar masih dapat leluasa melakukan download data, browsing serta chatting.

Terimakasih atas inspirasi dari Sdr. slashdotfx

(** Masih dalam percobaan **)

Tautan:

http://www.ibiblio.org/

2 Tanggapan ke “Prioritizing empty TCP ACKs with Mikrotik”


  1. 1 jhuni 4 April , 2008 pukul 1:15 pm

    rules untuk queue tree nya gimana ?

  2. 2 paul_ivan 10 Juli , 2008 pukul 11:54 pm

    kemaren malem iseng2 nyobain.
    tapi koq ga bisa yah. kalo pas uplot, tetep aja download nya mlemplem.

Tinggalkan Balasan