Du point de vue matériel j´en sais rien. Du point de vue logiciel considère que c´est un tuyau entre deux programmes sur une même machie ou à travers un réseau par lequel des données transitent dans un sens.
Par exemple, quand tu veux charger une page, tu la demandes à ton navigateur, qui ouvre un socket vers le serveur ( par exemple www.jeuxvideo.com) pour envoyer ta demande. Le serveur ouvre un autre socket vers ton navigateur, lui envoie la page. Le navigateur n´a plus qu´à afficher la page.