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.
?
References:
Archives