Let's imagine the following situation:
We have 115,2 kbits/s ppp (modem) internet link (115,2/10 = 11,5 kbytes/s). Note: with eth connections (network card) we would divide 115,2 by 8; with ppp we divide by 10, because of start/stop bits (8 + 1 + 1 = 10). .:: telegra.ph ::. [NPM Package: Malware]
We have some LAN stations and their users are doing bulk downloads all the time. .:: www.arc.agric.za ::.
We want web pages to open fast, no matter how many dowloads are happening. .:: telegra.ph ::.
Our internet interface is ppp0.
Our LAN interface is eth0.
Our network is 192.168.1.0/24
Believe it or not, shaping the incoming traffic is an easy task and you don't have to read tons of books about routing or queuing algorithms. .:: computer.ju.edu.jo ::.
To make it work, we need at least Squid proxy; if we want to fine tune it, we will have to get familiar with ipchains or iptables and CBQ. [Debug Scala]
To test our efforts, we can install IPTraf.
Squid is probably the most advanced HTTP proxy server available for Linux. It can help us save bandwidth in two ways:
The first is a main characteristic of proxy servers -- they keep downloaded web pages, pictures, and other objects in memory or on a disk. So, if two people are requesting the same web page, it isn't downloaded from the internet, but from the local proxy. .:: forum.prusa3d.com ::.
Apart from normal caching, Squid has a special feature called delay pools. Thanks to delay pools, it is possible to limit internet traffic in a reasonable way, depending on so-called 'magic words', existing in any given URL. For example, a magic word could be '.mp3', '.exe' or '.avi', etc. Any distinct part of a URL (such as .avi) can be defined as a magic word. .:: podcasts.apple.com ::. .:: md.darmstadt.ccc.de ::.
With that, we can tell the Squid to download these kinds of files at a specified speed (in our example, it will be about 5 kbytes/s). If our LAN users download files at the same time, they will be downloaded at about 5 kbytes/s altogether, leaving remaining bandwidth for web pages, e-mail, news, irc, etc.
Of course, the Internet is not only used for downloading files via web pages (http or ftp). Later on, we will deal with limiting bandwidth for Napster, Realaudio, and other possibilities.