I have very recently gone through the hassle of changing ISPs at home because DSL just wasn't reliable enough (or fast enough) for my working-at-home needs. However, in all the troubleshooting I had to do to try to get DSL to behave more reliably for me, I made an interesting discovery: setting the MTU on your network interface on your computer can have a profound impact on its reliability. Before I get into the details, trust me on this, figure out how to set your MTU and set it to lower than the default (which is usually 1500).
I am not a network professional, so please forgive my very basic grasp of the facts, but, from my understanding, the MTU is the size of the information packets your computer sends through your computer's network interface. The default MTU is 1500, which is an ideal, "everything is working great" number. Now, the rest of the network upstream from you can split those ideal packets into smaller sizes, to get them to where they need to go. Splitting them up creates a burden on whatever is doing the splitting, it has to keep track of all the pieces, and put the responses back together, before it passes them back to your computer.
So, anyway, if you set your MTU to a lower value (there are ways of figuring out the ideal number)---in my case, I set it to 1428---you increase the reliability of your network connection. In practice, I've seen dramatic improvements for previously un-usable free Wi-Fi access points. Like the gym where my son goes for his Nerf gun battles. Or the neighborhood pool.