IPv6 Core Protocols Implementation

Chapter 7: Socket API Extensions

7.1 Introduction

Network applications use standard application programming interfaces (APIs) that are provided by the underlying operating system to access the available network services. The BSD socket API is one of the most commonly deployed APIs that is supported by a wide variety of operating systems. Although the socket API has a flexible design that can accommodate various network protocols including IPv6, additional extensions for providing useful and portable interfaces for IPv6 network programming are still necessary.

The IETF standardized two sets of extensions: One is classified as the Basic Socket API Extensions defined in [RFC3493], and the other is classified as the Advanced Socket API Extensions defined in [RFC3542].

The Basic Socket API provides standard definitions which represent IPv6 addresses, name and address conversion functions, and multicast-related interfaces. Most IPv6 network applications can be implemented on top of this API. On the other hand, the Advanced Socket API defines interfaces for accessing special IPv6 packet information such as the IPv6 header and the extension headers. The Advanced Socket API is also used to extend the capability of IPv6 raw sockets. Not all applications need this API, but a wide range of applications such as unicast and multicast routing daemons or network management tools such as traceroute or ping for IPv6 require the services provided by the Advanced Socket API.

In this chapter, we first provide a brief overview of these API specifications along with sample code usage. We will then explain the internal kernel implementation that realizes the services...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Internet of Things (IoT) Services
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.