(Source: Wikipedia.fr)
Les sockets sont introduits en premier par BSD pour enrichir les possibilités de communication entre programme et à travers le réseau.
Sous UNIX, on trouve alors deux domaines pour les sockets: le domaine UNIX pour la communication entre processus exécutés localement et le domaine internet qui permet de communiquer sur un réseau IP.
On trouve 4 types différents de sockets:
Stream: bidirectionnelle, sûre, séquencée et un flux de données sans duplication pouvant entraîner une fragmentation des paquets transmis (TCP).
Datagram: bidirectionnelle qui n'est pas séquencée, pas sûre, et peut éventuellement entraîner une duplication des données (UDP).
Raw: permet aux utilisateurs d'accéder à des protocoles de communication différents en même temps. Les sockets raw ne sont pas destinées aux utilisateurs courants — seul l'utilisateur root peut y avoir accès sur la plupart des systèmes UNIX® — elles permettent d'avoir accès aux données “brutes” et sont utilisées par exemple pour analyser le trafic d'un réseau.
Sequenced packet: ressemble à une socket stream sauf qu'elle n'utilise pas de fragmentations de paquets.