Apparently, a data transfer starts but a packet gets dropped and that leaves a "hole". Your machine sends ack's letting the far end know about the hole, but they never get there. SO the far end eventually sees that something's wrong, and re-xmits what it thinks is the missing packet. BUT, since it never sees the right ack, it sends the wrong packet and the connection sits forever, until you kill it.

What does cat /proc/net/devices tell you?

How are you connected to the internet? Be specific.

Have a look through tcpdump up until the point to where it drops a packet. You should be able to see which one it's happening on. Then, see if it's always the same one maybe. Check out Ethereal- it will make your life easier.

Go and read this

My guess is still the server you are trying to connect to. It seems to me that there are several to choose from.

You have two Linux boxes? Do they share your internet connection? If so how?

In your original post you say you're "trying to install software" and then "during the updates"- so which is it? You've installed the Steam software and while you're trying to get the automatic patch this is happening? Do you invoke the patching process yourself or does it happen when you log on their network?