Is there an application to monitor bandwidth usage broken out to the application level for Linux (Ubuntu)?

I'm currently running Ubuntu on several machines and I need to track bandwidth usage per application. Is there a pre-built package or system that will track bandwidth usage and report on that usage broken out by application (or even just by port)?

Ideally I would like to be able to compare overall network utilization based on the running service and I've poked around a bit but haven't found anything that seems to be what I'm looking for. Any ideas?


iftop will display bandwidth usage by pairs of hosts, one of them being yours

nethogs will display bandwidth usage per process

iptraf will display bandwidth usage per connection