Interfejs gniazd

Standardy protokołów komunikacyjnych nie określają zwykle interfejsu, którego programy mają używać przy interakcji z nimi. Protokoły określają ogólne operacje, które powinny być udostępnione, oraz umożliwiają systemowi operacyjnemu zdefiniowanie konkretnego interfejsu API, którego programy będą używać do wykonywania tych operacji. W ten sposób standard protokołu może zasugerować, że jest potrzebna operacja umożliwiająca programowi wysyłanie danych, a w interfejsie API jest określona dokładna nazwa funkcji oraz typ każdego z jej argumentów.
Chociaż standardy protokołów dają projektantom systemów operacyjnych możliwość wyboru Interfejsu API, to wielu z nich wybrało interfejs gniazd, który jest dostępny dla wielu systemów operacyjnych, w tym dla systemów na komputerach osobistych (np. Windows) i dla rożnych systemów uniksowych ( np. Linux openSUSE czy Solaris firmy Sun Microsystem ).
Interfejs gniazd pierwotnie był częścią systemu operacyjnego UNIX BSD. Praca nad nim była wspierana była rządowym grantem, dzięki któremu University of California w Berkeley opracował i rozpowszechnił wersję UNIX-a zawierającą protokoły intersieciowe TCP/IP. Wielu producentów komputerów zaadaptowało system BSD na ich sprzęt i zastosowało jako podstawę komercyjnych systemów operacyjnych. W ten sposób interfejs gniazd stał się de facto standardem w przemyśle informatycznym.