Basic Socket Interface Extensions for IPv6
RFC 2553
Document | Type |
RFC - Informational
(March 1999; No errata)
Obsoleted by RFC 3493
Updated by RFC 3152
Obsoletes RFC 2133
|
|
---|---|---|---|
Authors | Robert Gilligan , Jim Bound , Susan Thomson , W. Stevens | ||
Last updated | 2013-03-02 | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized bibtex | ||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 2553 (Informational) | |
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | (None) | ||
Send notices to | (None) |
Network Working Group R. Gilligan Request for Comments: 2553 FreeGate Obsoletes: 2133 S. Thomson Category: Informational Bellcore J. Bound Compaq W. Stevens Consultant March 1999 Basic Socket Interface Extensions for IPv6 Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (1999). All Rights Reserved. Abstract The de facto standard application program interface (API) for TCP/IP applications is the "sockets" interface. Although this API was developed for Unix in the early 1980s it has also been implemented on a wide variety of non-Unix systems. TCP/IP applications written using the sockets API have in the past enjoyed a high degree of portability and we would like the same portability with IPv6 applications. But changes are required to the sockets API to support IPv6 and this memo describes these changes. These include a new socket address structure to carry IPv6 addresses, new address conversion functions, and some new socket options. These extensions are designed to provide access to the basic IPv6 features required by TCP and UDP applications, including multicasting, while introducing a minimum of change into the system and providing complete compatibility for existing IPv4 applications. Additional extensions for advanced IPv6 features (raw sockets and access to the IPv6 extension headers) are defined in another document [4]. Gilligan, et. al. Informational [Page 1] RFC 2553 Basic Socket Interface Extensions for IPv6 March 1999 Table of Contents 1. Introduction.................................................3 2. Design Considerations........................................3 2.1 What Needs to be Changed....................................4 2.2 Data Types..................................................5 2.3 Headers.....................................................5 2.4 Structures..................................................5 3. Socket Interface.............................................6 3.1 IPv6 Address Family and Protocol Family.....................6 3.2 IPv6 Address Structure......................................6 3.3 Socket Address Structure for 4.3BSD-Based Systems...........7 3.4 Socket Address Structure for 4.4BSD-Based Systems...........8 3.5 The Socket Functions........................................9 3.6 Compatibility with IPv4 Applications.......................10 3.7 Compatibility with IPv4 Nodes..............................10 3.8 IPv6 Wildcard Address......................................11 3.9 IPv6 Loopback Address......................................12 3.10 Portability Additions.....................................13 4. Interface Identification....................................16 4.1 Name-to-Index..............................................16 4.2 Index-to-Name..............................................17 4.3 Return All Interface Names and Indexes.....................17 4.4 Free Memory................................................18 5. Socket Options..............................................18 5.1 Unicast Hop Limit..........................................18 5.2 Sending and Receiving Multicast Packets....................19 6. Library Functions...........................................21 6.1 Nodename-to-Address Translation............................21 6.2 Address-To-Nodename Translation............................24 6.3 Freeing memory for getipnodebyname and getipnodebyaddr.....26 6.4 Protocol-Independent Nodename and Service Name Translation.26 6.5 Socket Address Structure to Nodename and Service Name......29 6.6 Address Conversion Functions...............................31 6.7 Address Testing Macros.....................................32 7. Summary of New Definitions..................................33 8. Security Considerations.....................................35 9. Year 2000 Considerations....................................35 Changes From RFC 2133..........................................35 Acknowledgments................................................38 References.....................................................39 Authors' Addresses.............................................40Show full document text