Check out the new USENIX Web site.
Protocol Independence Using the Sockets API Check out the new USENIX Web site. next up previous
Next: Introduction

Protocol Independence Using the Sockets API

Craig Metz
Department of Computer Science
University of Virginia
Charlottesville, VA 22904


The BSD sockets API provides abstractions and other features that help applications be protocol-independent. Unfortunately, not all of the API is abstract and generic, and many programs do not use the APIs in a protocol- independent way. This means that most network programs, in practice, only work with one layered set of communications protocols - usually TCP over IP. This hinders compatibility with older protocols and deployment of new ones, and is making IP a victim of its own success.

During the course of next-generation IP development, implementors worked to convert protocol-dependent applications into protocol-independent applications. Along the way, they defined new interfaces to fix some problems and they found a number of usage problems that lead to protocol dependencies.

This paper explains many of the problems encountered, using examples from freely available software, and how to solve them. It also explains many of the new protocol-independent interfaces.

Craig Metz 2000-05-08

This paper was originally published in the Proceedings of the Freenix 2000 USENIX Annual Technical Conference, June 18-23, 2000, San Diego, California, USA

Last changed: 24 May 2000 mc

Technical Program
Conference index