i want to monitor the bandwidth usage per application or per IP, currently im using wireshark to do the work, but are there any software dedicated just for this type of job?
iftop (iftop homepage) gives you a realtime view over bandwidth usage of an network interface. It's very helpful when you want to discover connections which are using lots of bandwidth. After installing, just start "iftop -i eth0", where eth0 is your network interface.
EDIT: For Linux/Unix OS.
NetFlow monitoring is a good step up from Wireshark for this. Like with Wireshark, you're inferring application by server port. NetFlow reports on individual sessions, keeping track of bytes used, packets sent, etc. Because it's a much smaller format than packet capture, it's easier to read at a glance, and you can store a much longer history.
You'll need some means of getting NetFlow -- many routers and switches can be configured to export it, or you can get free flow exporter software from several sources. They send, or export, flow data to a collector. There are FOSS collectors and commercial ones at pretty much all price levels. (full disclosure, the company I work for produces a commercial NetFlow collector.)
Now, if you need to know the exact process generating the traffic, you do need to take the extra step of identifying the open client port, and using