This document summarizes the Boost Asio library for asynchronous network programming in C++. It introduces sockets and the Boost Asio programming model using an io_service object and asynchronous I/O functions. Key challenges to scaling synchronous network I/O are discussed, along with how asynchronous I/O addresses these issues using callbacks without blocking. The document also describes Boost coroutines as an alternative approach to asynchronous I/O that preserves context across callbacks through cooperative yielding.