Lorsque deux programmes veulent se parler sur le réseau, un programme peut ouvrir une connexion TCP (un "socket") avec l'autre. Le premier programme doit connaître l'adresse IP du deuxième ordinateur et le port sur lequel le programme écoute.
Sous Linux, lorsque deux programmes sur le même ordinateur veulent se parler, ils peuvent toujours ouvrir une connexion TCP. Mais ils peuvent également ouvrir une connexion via un "fichier socket". Linux rend l'API de fichier de socket assez similaire à l'API TCP, donc ce n'est pas grave de mettre à jour un programme qui communique déjà sur le réseau via TCP pour prendre également en charge la communication via des fichiers de socket. Les fichiers socket sont plus rapides que TCP, mais ne fonctionnent que lorsque les deux programmes sont sur le même ordinateur.