Answering the need for an accessible overview of the field, this text/reference presents a manageable introduction to both the theoretical and practical aspects of computer networks and network programming. Clearly structured and easy to follow, the book describes cutting-edge developments in network architectures, communication protocols, and programming techniques and models, supported by code examples for hands-on practice with creating network-based applications. Features: presents detailed coverage of network architectures; gently introduces the reader to the basic ideas underpinning computer networking, before gradually building up to more advanced concepts; provides numerous step-by-step descriptions of practical examples; examines a range of network programming techniques; reviews network-based data storage and multimedia transfer; includes an extensive set of practical code examples, together with detailed comments and explanations.