Como os sockets de domínio Unix estão relacionados à rede?

3

Eu entendo que a rede também usa sockets, mas estou me perguntando se os soquetes do domínio Unix (IPC) de alguma forma estão relacionados à camada de rede. Em caso afirmativo, isso usa a rede HW de alguma forma? Funciona como um loopback? Se não, então por que são listados por netstat no Linux?

    
por Arkonix 29.11.2014 / 14:35

1 resposta

2

Os sockets de domínio Unix compartilham a mesma semântica dos sockets regulares, mas é sobre isso, o código subjacente não tem nada a ver com a camada de rede. Eles fornecem um meio eficiente de comunicação para processos no mesmo host (IPC), onde a semântica em rede é desejável (ouvir, conectar ...)

Veja O que é o custo de estabelecer conexão usando sockets de Domínio Unix vs sockets TCP por exemplo:

Messages sent through TCP sockets have to go all the way through the networking stack to the loopback interface (which is a virtual network interface device typically called "lo" on Unix-style systems), and then back up to the receiving socket. The networking stack code tacks on TCP and IP headers, makes routing decisions, forwards a packet to itself through "lo", then does more routing and strips the headers back off. Furthermore, because TCP is a networking protocol, the connection establishment part of it has all kinds of added complexity to deal with dropped packets. Most significantly for you, TCP has to send three messages just to establish the connection (SYN, SYN-ACK, and ACK).

No caso de soquetes unix, o kernel pode ignorar tudo isso e apenas passar os dados entre os dois processos para que haja menos sobrecarga.

Googling em torno de você pode se deparar com alguns benchmarks .

    
por 29.11.2014 / 17:26