While many C/C++ programmers know at least the basics of TCP/IP, becoming an expert network programmer usually requires a lot of experience and sometimes hard-to-find knowledge. Written to give the intermediate or advanced developer a leg-up in creating robust network applications using TCP/IP and related protocols, Effective TCP/IP Programming
offers a truly valuable review and guide to getting the most out of your networked programs based on this popular standard.
Packaged as a series of 44 tips for better TCP/IP programs, this book actually does much more. Early sections review the basics of the TCP, UDP and IP protocols (along with related standards). A winning feature here is the author's care to distinguish between the well-known BSD (for UNIX) and Winsock (for Windows) versions of sockets. (By using macros and "skeleton" programs, his sample C code will run easily on either implementation.)
Besides nuts-and-bolts programming advice, and plenty of hints for better performance, Snader also discusses how IP works under the hood. Standout sections here include a discussion of the pitfalls of scaling a standalone or LAN TCP/IP application to the Internet, as well as what a "reliable" protocol like TCP really means. He shows you how to handle misbehaving servers and clients, how to use multiple sockets effectively, as well as several useful tips for optimising data streamed across the wire. Though there is no mention of Java here (which offers strong socket support on its own), the author does provide Perl examples that work with sockets to get you started with sockets used within scripting languages.
Since IP is the protocol of choice for the Internet, more and more of us are faced with becoming socket programming experts in a hurry. In all, Effective TCP/IP Programming offers a good mix of basic and advanced tips on today's IP and related protocols. It's a valuable resource for any developer who programs for the Internet and wants both to write better code using sockets. --Richard Dragan, Amazon.com
Topics covered: TCP/IP overview and programming tips, Berkeley Socket Distribution (BSD) vs. Winsock/Windows socket implementation issues, connected and connectionless protocols, network programming frameworks, UDP vs. TCP, reliable protocols, network programming for single workstations, LANs and WANs; event-driven programming, improving write operations, IP packet layout, byte ordering issues, the Nagle and delayed ACK algorithms, using network utilities: inetd, tcpmux, tcpdump, traceroute, ttcp, and netstat; resources and hints for improving network programming skills.
From the Back Cover
Programming in TCP/IP can seem deceptively simple. Nonetheless, many network programmers recognize that their applications could be much more robust. Effective TCP/IP Programming is designed to boost programmers to a higher level of competence by focusing on the protocol suite's more subtle features and techniques. It gives you the know-how you need to produce highly effective TCP/IP programs.
In forty-four concise, self-contained lessons, this book offers experience-based tips, practices, and rules of thumb for learning high-performance TCP/IP programming techniques. Moreover, it shows you how to avoid many of TCP/IP's most common trouble spots. Effective TCP/IP Programming
offers valuable advice on such topics as:
- Exploring IP addressing, subnets, and CIDR
- Preferring the sockets interface over XTI/TLI
- Using two TCP connections
- Making your applications event-driven
- Using one large write instead of multiple small writes
- Avoiding data copying
- Understanding what TCP reliability really means
- Recognizing the effects of buffer sizes
- Using tcpdump, traceroute, netstat, and ping effectively
Numerous examples demonstrate essential ideas and concepts. Skeleton code and a library of common functions allow you to write applications without having to worry about routine chores.
Through individual tips and explanations, you will acquire an overall understanding of TCP/IP's inner workings and the practical knowledge needed to put it to work. Using Effective TCP/IP Programming
, you'll speed through the learning process and quickly achieve the programming capabilities of a seasoned pro.