Asumsikan kantor orang, mereka ingin membatasi unduhan HTTP hingga maksimal 40% bandwidth dari kecepatan koneksi internet mereka sehingga tidak memblokir lalu lintas lainnya.
Kami mengatakan "itu tidak didukung di firewall Anda", dan mereka mengatakan baris yang tak terhindarkan "kami dulu bisa melakukannya dengan Netgear / DLink / DrayTek kami".
Kalau dipikir-pikir, unduhannya seperti ini:
HTTP GET request
Server sends file data as TCP packets
Client acknowledges receipt of TCP packets
Repeat until download finished.
Kecepatan ditentukan oleh seberapa cepat server mengirimkan data kepada Anda, dan seberapa cepat Anda mengakuinya.
Jadi, untuk membatasi kecepatan unduh, Anda memiliki dua pilihan:
1) Instruksikan server untuk mengirim data kepada Anda lebih lambat - dan saya tidak berpikir ada fitur protokol untuk meminta itu dalam TCP atau HTTP.
2) Mengakui paket lebih lambat dengan membatasi kecepatan unggahan Anda, dan juga merusak kecepatan unggahan Anda.
Bagaimana cara perangkat membatasi ini? Apakah ada cara standar?
sumber
Jawaban:
TCP itu sendiri mengimplementasikan kontrol kemacetan.
Pembatas tarif ini hanya akan membuang paket di atas batas. TCP menangani ini, memastikan bahwa semua paket tiba dan semuanya tiba dalam urutan; klien tidak ACK untuk paket yang dijatuhkan, dan mereka dikirim ulang oleh server.
TCP stack server akan mengirim ulang paket-paket, dan juga akan memanggil kembali sedikit pada laju kirimnya karena ia memperkirakan ada kemacetan antara itu dan klien. Ini akan mempercepat kembali sampai pembatas tingkat menjatuhkan paket lagi, dan seterusnya.
sumber
Deskripsi terbaik yang pernah saya dengar yang menjelaskan metode pelambatan inheren TCP adalah dari podcast Security Now baru-baru ini . Mengutip Steve Gibson:
sumber
3) Perangkat router / firewall Anda memasukkan data yang masuk ke dalam ember QoS dan hanya mengosongkan ember itu pada tingkat yang Anda minta. Data yang masuk akan beradaptasi dengan kecepatan itu karena komputer di dalam hanya akan melihat penerimaan tanda terima pada kecepatan itu. Juga, paket yang dijatuhkan sesekali (dengan sengaja) bekerja sangat baik untuk memperlambat koneksi.
Ketika mencoba menemukan perangkat yang menangani ini, cari QoS (Kualitas Layanan) dalam konfigurasi / dokumentasi. Kotak Linux (atau BSD) juga berguna untuk ini.
sumber
Anda menggunakan firewall atau perangkat yang mendukung pembatasan QoS (kualitas layanan).
Anda bisa membangun sistem Linux untuk bertindak sebagai gateway kantor dan meminta dia menggunakan traffic traffic untuk mencapainya. Hanya perlu beberapa NIC diinstal dan kemudian setiap mesin menunjuk adalah sebagai gateway.
Sebagai bonus, Anda dapat mengonfigurasi server proxy di dalamnya untuk membantu memudahkan lalu lintas juga. Sesuatu seperti Squid. Mungkin ada distribusi alat routing turnkey yang dapat melakukan ini juga.
sumber
Protokol HTTP tidak menyediakan fasilitas untuk membatasi bandwidth yang digunakan, dan bahkan jika itu dilakukan, itu akan menjadi pengaturan sisi klien, di mana administrator jaringan tidak dapat memiliki kontrol apa pun.
Pembatasan bandwidth (juga dikenal sebagai "Kualitas Layanan") biasanya dikelola pada router / firewall, yang menangani semua lalu lintas masuk dan keluar ke / dari jaringan; yang mendukung ini biasanya memungkinkan Anda mengonfigurasi kebijakan seperti "biarkan komputer klien tunggal menggunakan paling banyak 10% dari semua bandwidth yang tersedia", atau "berikan prioritas SMTP melalui FTP sehingga email dapat mengalir bahkan ketika seseorang melakukan unduhan berat ".
Bagaimana tepatnya ini dicapai tergantung pada router / firewall yang digunakan, tetapi cara paling mendasar adalah dengan hanya membuang paket yang melebihi batas yang dikonfigurasi; TCP akan memastikan mereka dikirim ulang, dan pada akhirnya akan dapat melewati bottleneck.
sumber