Recently, network performance on my Ubuntu box was appalling - to say the least.
Pings were taking 3,500 to 4,000 msec, a traceroute would take forever and a day to complete. Webpages were affected too, sometimes taking up to 30 seconds to load.
I could see that DNS resolution was slow but this wasn't a problem just with Firefox. It seemed to be affecting the whole OS.
I checked that DNS wasn't using IPv6 (which it wasn't) and also double-checked all the usual suspects; namely /etc/resolv.conf and /etc/nsswitch.conf
Originally I suspected that my Sony Ericsson K800i was causing a problem as I've taken to connecting the phone quite regularly nowadays, for transferring photos and also charging it. When connected, a message appeared on screen saying Network disconnected, and this made me think that perhaps Ubuntu was using the GPRS on my phone to access the 'tinterweb' ;-) This wasn't the case though.
The problem turned out to be a service called 'Ubuntu One'. I use it for syncing my local data to the so-called cloud. It seemed to be working fine but after checking the settings, I saw that the Limit Bandwidth option was set to On, but the default limits were set to Upload 2,048 and Download 2,048. As soon as I disabled this service, my pings went from 3000-4000 msec down to 20-300 as I would normally expect.
I think I'll be syncing manually from now...