Explains the client-server paradigm and socket API that application programs use for network communication. This work discusses how the basic tools can be used to create servers, emphasizing practical designs and techniques that are important to programmers. It examines techniques such as application gateways and tunneling.