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].
[1]
Erik Nordmark,et al.
Stateless IP/ICMP Translation Algorithm (SIIT)
,
2000,
RFC.
[2]
Robert E. Gilligan,et al.
Basic Socket Interface Extensions for IPv6
,
1997,
RFC.
[3]
Stephen E. Deering,et al.
IP Version 6 Addressing Architecture
,
1995,
RFC.
[4]
Stephen E. Deering,et al.
Internet Protocol, Version 6 (IPv6) Specification
,
1995,
RFC.
[5]
Matt Thomas,et al.
Advanced Sockets API for IPv6
,
1998,
RFC.