Computers are quite good at waiting. My computer spends a substantial proportion of its day in an idle state waiting for me to do something. It also spends time waiting for network resources, and it makes me wait too.
When I go to a webpage or request something online the computer needs to download everything it needs from a server in the cloud. This might be hundreds of miles away, and the data might need to propagate through tens of separate machines before it gets here. This inevitably takes time, and computers deal with this by waiting. What if the item can’t be found, however? I don’t mean “the item isn’t on the server” but “we can’t even find the server – it’s not answering.” This is dealt with by waiting – but not waiting too long. If a response doesn’t come back after a certain amount of time then the computer decides that it isn’t going to come at all.
This all seems quite sensible. It’s difficult to detect the absence of something at the end of your wire except by seeing whether it responds or not. This decision is complicated by the latency in the network. So we have to set a threshold, i.e. a network timeout. If the server usually takes .5 seconds to respond, and we’ve waited for 3 seconds, then it probably isn’t going to answer.
“Connection timed out” error messages via your web browser of choice are annoying, but not infuriatingly so. There are more significant problems inherent in operating systems, however. If your computer uses a logon script to connect to shared network drives then subtle problems start to develop. Usually you’d log on in a few seconds, but now a blank screen appears for half a minute after clicking the “Enter” button.
A better solution would be helpful, but it doesn’t seem likely that there is one. The network timeout isn’t dead at all and isn’t going away anytime soon. All I have to do now is figure out how to decrease it…