This book contains everything you need to make your application program support IPv6. IPv6 socket APIs (RFC2553) are fully described with real-world examples. It covers security, a great concern these days. To secure the Internet infrastructure, every developer has to take a security stance - to audit every line of code, to use proper API and write correct and secure code as much as possible. To achieve this goal, the examples presented in this book are implemented with a security stance. Also, the book leads you to write secure programs. For instance, the book recommends against the use of some of the IPv6 standard APIs - unfortunately, there are some IPv6 APIs that are inherently insecure, so the book tries to avoid (and discourage) the use of such APIs. Another key issue is portability. The examples in the book should be applicable to any of UNIX based operating systems, MacOS X, and Windows XP. * Covers the new protocol just adopted by the Dept of Defense for future systems * Deals with security concerns, including spam and email, by presenting the best programming standards * Fully describes IPv6 socket APIs (RFC2553) using real-world examples * Allows for portability to UNIX-based operating systems, MacOS X, and Windows XP
Author(s): Jun-ichiro itojun Hagino
Edition: 1
Publisher: Elsevier/Digital Press
Year: 2005
Language: English
Pages: 374
City: Amsterdam; Boston
Cover......Page 1
Contents......Page 6
Preface......Page 8
Be Security Conscious When Writing Programs......Page 10
Terminology and Portability......Page 11
1.1 A History of IPv6 and Its Key Features......Page 13
1.2 Transition from IPv4-Only Internet to IPv4/v6 Dual Stack Internet......Page 16
1.3 UNIX Socket Programming......Page 18
1.4 IPv6 Architecture from a Programmer's Point of View......Page 22
2.1 AF_INET6: The Address Family for IPv6......Page 25
2.2 Why Programs Need to Be Address-Family Independent?......Page 26
2.3 Guidelines to Address-Family Independent Socket Programming......Page 29
3.2 Finding Where to Rewrite, Reorganizing Code......Page 39
3.3 Rewriting Client Applications......Page 41
3.4 Rewriting Server Applications......Page 43
4.2 Issues with......Page 61
4.3 Issues with an IPv4 Mapped Address......Page 62
4.4 bind(2) Ordering and Conflicts......Page 63
4.6 Portability across Systems......Page 64
4.8 Platform Support Status......Page 66
5.1 Server Program Example—popa3d......Page 71
5.3 Client Program Example—nail......Page 74
A: Coming updates to IPv6 APIs......Page 93
B: RFC2553......Page 95
C: RFC3493......Page 137
D: RFC2292......Page 177
E: RFC3542......Page 245
F: IPv4-Mapped Address API Considered Harmful......Page 323
G: IPv4-Mapped Addresses on the Wire Considered Harmful......Page 329
H: Possible Abuse Against IPv6 Transition Technologies......Page 335
I: An Extension of format for IPv6 Scoped Addresses......Page 345
J: Protocol Independence Using the Sockets API......Page 357
References......Page 367
C......Page 369
I......Page 370
P......Page 371
S......Page 372
W......Page 373