Limiting single interface is easy, but global rate limits need more complex rules as do application based rules. I'm not saying that it can't be done, but it requires quite a bit digging in to the internals of the networking.
Here is a quick How to on setting up a per interface limit
If you really want to set up application based rules, you should look in to some firewall framework, like shorewall, which have helper features to configure shaping. Even with these tools, it requires quite bit of forethought and testing to get it in to place. Doing something like this ad-hoc is not yet quite that easy.
For the general case, it is theoretically possible in the kernel, using the owner extension to netfilter. I can see the option --pid-owner on the man page of iptables on die.net, but it says it is broken with SMP :(
In my own system, a 10.04, there is no such option on the manual :( . So I believe we are out of luck this time ;( . Maybe there will be another incarnation of the --pid-owner option some time in the future. A gui on top of that would not be rocket science.
The first step must be taken on Linux itself and iptables.
As for more specific types of traffic, such as HTTP. There should be ways to make accommodations using proxies, but it probably needs some hacking because this use-case does not arise often.
Limits are configured through VBoxManage. The example below creates a
bandwidth group named "Limit", sets the limit to 20 Mbit/s and assigns
the group to the first and second adapters of the VM:
Best Answer
Limiting single interface is easy, but global rate limits need more complex rules as do application based rules. I'm not saying that it can't be done, but it requires quite a bit digging in to the internals of the networking.
Here is a quick How to on setting up a per interface limit
If you really want to set up application based rules, you should look in to some firewall framework, like shorewall, which have helper features to configure shaping. Even with these tools, it requires quite bit of forethought and testing to get it in to place. Doing something like this ad-hoc is not yet quite that easy.