Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs (Paperback)
內容描述
Description
An excellent next-step for students who have read Stevens' TCP/IP Illustrated series, this book is designed to boost programmers to a higher level of competence by focusing on the protocol suite's more subtle features and techniques. 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. 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.
Appropriate Courses
Networking--Advanced Topics.
Table Of Contents
Preface. 1. Introduction. A Few Conventions. Road Map to the Rest of the Book. Client-Server Architecture. Basic Sockets API Review. Summary. 2. Basics. Tip 1: Understand the Difference between Connected and Connectionless Protocols. Tip 2: Understand Subnets and CIDR. Tip 3: Understand Private Addresses and NAT. Tip 4: Develop and Use Application “Skeletons.” Tip 5: Prefer the Sockets Interface to XTI/TLI. Tip 6: Remember That TCP Is a Stream Protocol. Tip 7: Don't Underestimate the Performance of TCP. Tip 8: Avoid Reinventing TCP. Tip 9: Realize That TCP Is a Reliable Protocol, Not an Infallible Protocol. Tip 10: Remember That TCP/IP Is Not Polled. Tip 11: Be Prepared for Rude Behavior from a Peer. Tip 12: Don't Assume That a Successful LAN Strategy Will Scale to a WAN. Tip 13: Learn How the Protocols Work. Tip 14: Don't Take the OSI Seven-Layer Reference Model Too Seriously. 3. Building Effective and Robust Network Programs. Tip 15: Understand the TCP Write Operation. Tip 16: Understand the TCP Orderly Release Operation. Tip 17: Consider Letting inetd Launch Your Application. Tip 18: Consider Letting tcpmux “Assign” Your Server's Well-Known Port. Tip 19: Consider Using Two TCP Connections. Tip 20: Consider Making Your Applications Event Driven (1). Tip 21: Consider Making Your Applications Event Driven (2). Tip 22: Don't Use TIME-WAIT Assassination to Close a Connection. Tip 23: Servers Should Set the SO_REUSEADDR Option. Tip 24: When Possible, Use One Large Write Instead of Multiple Small Writes. Tip 25: Understand How to Time Out a Connect Call. Tip 26: Avoid Data Copying. Tip 27: Zero the sockaddr_in Structure Before Use. Tip 28: Don't Forget about Byte Sex. Tip 29: Don't Hardcode IP Addresses or Port Numbers in Your Application. Tip 30: Understand Connected UDP Sockets. Tip 31: Remember That All the World's Not C. Tip 32: Understand the Effects of Buffer Sizes. 4. Tools and Resources. Tip 33: Become Familiar with the ping Utility. Tip 34: Learn to Use tcpdump or a Similar Tool. Tip 35: Learn to Use traceroute. Tip 36: Learn to Use ttcp. Tip 37: Learn to Use lsof. Tip 38: Learn to Use netstat. Tip 39: Learn to Use Your System's Call Trace Facility. Tip 40: Build and Use a Tool to Capture ICMP Messages. Tip 41: Read Stevens. Tip 42: Read Code. Tip 43: Visit the RFC Editor's Page. Tip 44: Frequent the News Groups. Appendix A: Miscellaneous UNIX Code. etcp.h Header. The daemon Function. The signal Function. Appendix B: Miscellaneous Windows Code. The skel.h Header. Windows Compatibility Routines. Bibliography. Index. 0201615894T04062001