title: Networked systems - what's the difference between a "blocking" and a "non-blocking" protocol?
body: <p>In computer networking - and in a lot of other fields actually - I hear a lot of reference to the terms "blocking", "non-blocking", "synchronous", and "asynchronous". I was wondering if anyone could explain in pretty straightforward/simple terms what these are supposed to mean?</p>