FOCUS
Q HIGH-PERFORMANCE NETWORKS
Have
Sockets
Run Their
Course?
One of the most pervasive and longest-last-ing interfaces in software is the sockets API.
Developed by the Computer Systems Research
Group at the University of California at
Berkeley, the sockets API was first released
as part of the 4.1c BSD operating system in
George V. Neville-Neil, Consultant 1982. While there are longer-lived APIs—for
example, those dealing with Unix file
I/O—it is quite impressive for an API to have
remained in use and largely unchanged for 27
years. The only major update to the sock-
ets API has been the extension of ancillary
routines to accommodate the larger addresses
used by IPv6.2
The Internet and the networking world in
general have changed in very significant ways
since the sockets API was first developed, but
in many ways the API has had the effect of
narrowing the way in which developers think
about and write networked applications. This
article begins by briefly examining some of
the conditions present when the sockets API
was developed and considers how those conditions shaped the way in which networking
code was written. The remainder of the article
looks at ways in which developers have tried
to get around some of the inherent limitations in the API and talks about the future of
sockets in a changing networked world.
?