IPv6 Network Programming

Book description

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

Table of contents

  1. Front Cover
  2. IPv6 Network Programming
  3. Copyright Page
  4. Contents
  5. Preface
  6. About This Book
    1. Write Portable Application Programs
    2. Be Security Conscious When Writing Programs
    3. Terminology and Portability
  7. Chapter 1. Introduction
    1. 1.1 A History of IPv6 and Its Key Features
    2. 1.2 Transition from IPv4-Only Internet to IPv4/v6 Dual Stack Internet
    3. 1.3 UNIX Socket Programming
    4. 1.4 IPv6 Architecture from a Programmer's Point of View
  8. Chapter 2. IPv6 Socket Programming
    1. 2.1 AF_INET6: The Address Family for IPv6
    2. 2.2 Why Programs Need to Be Address-Family Independent?
    3. 2.3 Guidelines to Address-Family Independent Socket Programming (1/2)
    4. 2.3 Guidelines to Address-Family Independent Socket Programming (2/2)
  9. Chapter 3. Porting Applications to Support IPv6
    1. 3.1 Making Existing Applications IPv6 Ready
    2. 3.2 Finding Where to Rewrite, Reorganizing Code
    3. 3.3 Rewriting Client Applications
    4. 3.4 Rewriting Server Applications (1/4)
    5. 3.4 Rewriting Server Applications (2/4)
    6. 3.4 Rewriting Server Applications (3/4)
    7. 3.4 Rewriting Server Applications (4/4)
  10. Chapter 4. Tips in IPv6 Programming
    1. 4.1 Parsing a IPv6 Address out of String
    2. 4.2 Issues with ":" As a Separator
    3. 4.3 Issues with an IPv4 Mapped Address
    4. 4.4 bind(2) Ordering and Conflicts
    5. 4.5 How IPv4 Traffic Gets Routed to Sockets
    6. 4.6 Portability across Systems
    7. 4.7 RFCs 2292/3542, Advanced API
    8. 4.8 Platform Support Status
  11. Chapter 5. A Practical Example
    1. 5.1 Server Program Example—popa3d
    2. 5.2 Further Extensions
    3. 5.3 Client Program Example—nail
  12. A. Coming updates to IPv6 APIs
  13. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (1/9)
  14. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (2/9)
  15. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (3/9)
  16. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (4/9)
  17. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (5/9)
  18. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (6/9)
  19. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (7/9)
  20. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (8/9)
  21. B. RFC2553 "Basic Socket Interface Extensions for IPv6" (9/9)
  22. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (1/8)
  23. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (2/8)
  24. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (3/8)
  25. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (4/8)
  26. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (5/8)
  27. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (6/8)
  28. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (7/8)
  29. C. RFC3493 "Basic Socket Interface Extensions for IPv6" (8/8)
  30. D. RFC2292 "Advanced Sockets API for IPv6" (1/14)
  31. D. RFC2292 "Advanced Sockets API for IPv6" (2/14)
  32. D. RFC2292 "Advanced Sockets API for IPv6" (3/14)
  33. D. RFC2292 "Advanced Sockets API for IPv6" (4/14)
  34. D. RFC2292 "Advanced Sockets API for IPv6" (5/14)
  35. D. RFC2292 "Advanced Sockets API for IPv6" (6/14)
  36. D. RFC2292 "Advanced Sockets API for IPv6" (7/14)
  37. D. RFC2292 "Advanced Sockets API for IPv6" (8/14)
  38. D. RFC2292 "Advanced Sockets API for IPv6" (9/14)
  39. D. RFC2292 "Advanced Sockets API for IPv6" (10/14)
  40. D. RFC2292 "Advanced Sockets API for IPv6" (11/14)
  41. D. RFC2292 "Advanced Sockets API for IPv6" (12/14)
  42. D. RFC2292 "Advanced Sockets API for IPv6" (13/14)
  43. D. RFC2292 "Advanced Sockets API for IPv6" (14/14)
  44. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (1/16)
  45. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (2/16)
  46. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (3/16)
  47. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (4/16)
  48. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (5/16)
  49. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (6/16)
  50. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (7/16)
  51. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (8/16)
  52. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (9/16)
  53. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (10/16)
  54. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (11/16)
  55. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (12/16)
  56. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (13/16)
  57. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (14/16)
  58. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (15/16)
  59. E. RFC3542 "Advanced Sockets Application Program Interface (API) for IPv6" (16/16)
  60. F. IPv4-Mapped Address API Considered Harmful (1/2)
  61. F. IPv4-Mapped Address API Considered Harmful (2/2)
  62. G. IPv4-Mapped Addresses on the Wire Considered Harmful (1/2)
  63. G. IPv4-Mapped Addresses on the Wire Considered Harmful (2/2)
  64. H. Possible Abuse Against IPv6 Transition Technologies (1/2)
  65. H. Possible Abuse Against IPv6 Transition Technologies (2/2)
  66. I. An Extension of format for IPv6 Scoped Addresses (1/3)
  67. I. An Extension of format for IPv6 Scoped Addresses (2/3)
  68. I. An Extension of format for IPv6 Scoped Addresses (3/3)
  69. J. Protocol Independence Using the Sockets API (1/2)
  70. J. Protocol Independence Using the Sockets API (2/2)
  71. References (1/2)
  72. References (2/2)

Product information

  • Title: IPv6 Network Programming
  • Author(s): Jun-ichiro itojun Hagino
  • Release date: October 2004
  • Publisher(s): Digital Press
  • ISBN: 9780080478791