Why does the Satoshi client not use blocking synchronous communication with peers? Why does the Satoshi client not use blocking synchronous communication with peers? I think that is mush simpler than the current asynchronous scheme.

I mean after a node sends out a request, it waits for the response in a blocking manner, with a timeout deadline. After the response has arrived, it starts to send the next request. Doesn't this way have better control of communication context?
If all clients in a network used blocking synchronous communications, then a single bad client could potentially bring down the entire network.

In a distributed untrusted network, asynchronous communications are required for robustness and reliability.