1. Overview
2. Communication Modes
3. Blocking v Non-blocking
4. Programming Recommendations
5. References