vii
Contents
About the Authors ������������������������������������������������������������������������������������������������������������� xvii
About the Technical Reviewers ����������������������������������������������������������������������������������������� xix
Acknowledgments ������������������������������������������������������������������������������������������������������������� xxi
Introduction ��������������������������������������������������������������������������������������������������������������������� xxiii
■ Chapter 1: Introduction to Client-Server Networking ��������������������������������������������������������1
The Building Blocks: Stacks and Libraries ������������������������������������������������������������������������������������1
Application Layers �������������������������������������������������������������������������������������������������������������������������4
Speaking a Protocol ����������������������������������������������������������������������������������������������������������������������5
A Raw Network Conversation ��������������������������������������������������������������������������������������������������������6
Turtles All the Way Down ���������������������������������������������������������������������������������������������������������������9
Encoding and Decoding ���������������������������������������������������������������������������������������������������������������10
The Internet Protocol �������������������������������������������������������������������������������������������������������������������11
IP Addresses �������������������������������������������������������������������������������������������������������������������������������� 12
Routing ���������������������������������������������������������������������������������������������������������������������������������������� 13
Packet Fragmentation �����������������������������������������������������������������������������������������������������������������14
Learning More About IP ���������������������������������������������������������������������������������������������������������������15
Summary ������������������������������������������������������������������������������������������������������������������������������������� 16
■ Chapter 2: UDP ����������������������������������������������������������������������������������������������������������������17
Port Numbers ������������������������������������������������������������������������������������������������������������������������������ 18
Sockets ���������������������������������������������������������������������������������������������������������������������������������������� 19
Promiscuous Clients and Unwelcome Replies ����������������������������������������������������������������������������������������������������� 23
Unreliability, Backoff, Blocking, and Timeouts ����������������������������������������������������������������������������������������������������� 24