Pada saat saya memulai download, saya akan mendapatkan throughput yang cukup lumayan pada awalnya (sekitar 40 - 55Kbps), tetapi akan langsung anjlok (sampai 20kbps an) setelah beberapa saat saya melakukan browsing sambil download tetap berjalan. Teman-teman mungkin pernah mengalami seperti ini. Yang terjadi adalah begini: pada saat terjadi koneksi satu arah (misal download melalui ftp), maka dibutuhkan trasmit ACK dari sisi yang berlawanan (misal saya mendownload file lewat protokol ftp dari sebuah server di luar, maka host saya harus secara konstan mengirimkan ACK), untuk menjaga koneksi agar server ftp tersebut tidak menganggap packet yang ditransmit loss di tengah jalan, sehingga akan mentransmit ulang packet yang dianggap hilang. Nah pada saat uplink saya juga mengalami saturasi (misal untuk upload, request, kirim email, dan lain sebagainya), maka TCP ACK saya yang harusnya saya kirim ke server ftp tersebut juga terhalang yang lalu menyebabkan delay transmit ACK, yang berlanjut menurunnya throughput download.
Sebenarnya outgoing ACK ini sangat kecil, hal seperti itu tidak perlu terjadi. Jadi sekarang bagaimana kita bisa meloloskan packet ACK ini sehingga download kita tidak terganggu oleh aktivitas upload kita dengan menggunakan pf dan ALTQ. Kira-kira rule nya adalah seperti ini:
extif="rl1"
altq on $extif priq bandwidth 32Kb queue { qprior, qdflt }
queue qprior priority 7
queue qdflt priority 1 priq(default)
pass out on $extif proto tcp from $extif to any flags S/SA \
keep state queue (qdflt, qprior)
pass in on $extif proto tcp from any to $extif flags S/SA \
keep state queue (qdflt, qprior)
Baris pertama adalah definisi makro untuk interface yang menghadap ke luar. Hal ini untuk memudahkan re-setting rule kalau-kalau ganti interface. Yang kedua adalah mengaktifkan altq di interface tersebut, yang kemudian mendefinisikan speed rate uplink pada interface tersebut. Di sini juga kita definisikan dua queue yang kita beri nama qprior dan qdflt (penamaan ini bebas). Queue dengan prioritas kecil kita jadikan sebagai default (priority 1).
NB: Untuk teman-teman yang masih menggunakan link PPPoE, uplinknya harus diperhitungkan juga dengan overhead packet PPPoE. Jadi jika uplink nya 64Kbps, kemungkinan tidak akan full 64Kbps, karena enkapsulasi PPPoE juga membutuhkan overhead dari speed rate tersebut.
NB: Gunakan plugin pf seperti pfsysinfo atau hatchet untuk mengetahui perbedaan throughput yang dihasilkan dengan rule di atas, dan lakukan beberapa experimen untuk mendapatkan hasil yang pas.
| < Prev | Next > |
|---|



Comments