Bandwidth monitor app for linux?
Hi everybody,
Bandwidth is costly where I live, and "broadband" home connections
start at 64/128 kbps and have monthly caps like 500MB. For people
who face such constraints it would be useful to have a breakdown
of their bandwidth utilization app-wise so that they can modify
their 'net usage habits accordingly.
I looked around to see if such an app exists, but while there are
a zillion bandwidth monitor apps for *nix they are aimed at
sysadmins and don't show app-wise breakdowns. Also, most show
only real time data and not consolidated graphs over a time period.
I found a (proprietary) software called netlimiter for
Windows that does roughly what I was looking for.
If there isn't anything for linux I would like to write one.
The design of this hypothetical app for linux would be like this:
* The backend would be a daemon coupled with a kernel module that
would intercept TCP send/recv calls and log them. The data logged
would be name of the executable, user, and size of packet. The
daemon would listen on some port and pass this data on to clients
(there should be some security rules to specify which clients are
allowed to connect.) The backend should also offer a way to throttle
bandwidth in an app-wise manner. If the limit is exceeded the packet
should be dropped. The challenge is to do all this without greatly
impacting performance.
* The frontend collects this data and presents it in various pretty
ways to the user. Some examples:
-- Show real time bandwidth usage graphs, app wise, user wise and
machine wise, both incoming and outgoing.
-- Show aggregate graphs ala webalizer, again app wise, user wise
and machine wise.
-- Allow throttling and bandwidth quotas.
etc. Of course, multiple frontends can exist.
Any thoughts/criticisms/suggestions? Anyone want to join me?
Bandwidth is costly where I live, and "broadband" home connections
start at 64/128 kbps and have monthly caps like 500MB. For people
who face such constraints it would be useful to have a breakdown
of their bandwidth utilization app-wise so that they can modify
their 'net usage habits accordingly.
I looked around to see if such an app exists, but while there are
a zillion bandwidth monitor apps for *nix they are aimed at
sysadmins and don't show app-wise breakdowns. Also, most show
only real time data and not consolidated graphs over a time period.
I found a (proprietary) software called netlimiter for
Windows that does roughly what I was looking for.
If there isn't anything for linux I would like to write one.
The design of this hypothetical app for linux would be like this:
* The backend would be a daemon coupled with a kernel module that
would intercept TCP send/recv calls and log them. The data logged
would be name of the executable, user, and size of packet. The
daemon would listen on some port and pass this data on to clients
(there should be some security rules to specify which clients are
allowed to connect.) The backend should also offer a way to throttle
bandwidth in an app-wise manner. If the limit is exceeded the packet
should be dropped. The challenge is to do all this without greatly
impacting performance.
* The frontend collects this data and presents it in various pretty
ways to the user. Some examples:
-- Show real time bandwidth usage graphs, app wise, user wise and
machine wise, both incoming and outgoing.
-- Show aggregate graphs ala webalizer, again app wise, user wise
and machine wise.
-- Allow throttling and bandwidth quotas.
etc. Of course, multiple frontends can exist.
Any thoughts/criticisms/suggestions? Anyone want to join me?
