Un’applicazione in esecuzione su di un sistema potrà utilizzare un’interfaccia di rete per comunicare con un’altra applicazione che è in esecuzione, in generale, su un altro sistema1. In particolare si distinguono due categorie di applicazioni che utilizzano la comunicazione via rete: le applicazioni di tipo client e quelle di tipo server. Un’applicazione client è quella che richiede un servizio ad un’altra applicazione (server). Un’applicazione server non fa altro che attendere eventuali richieste da altre applicazioni (client) e servirle.
La differenziazione tra server e client è estesa anche alle macchine: una machina server è utilizzata per fornire uno o più servizi all’interno di una rete, quindi generalmente si tratta di macchine con hardware in grado di offrire prestazioni elevate (bassi tempi di accesso ai dischi, grande quantità di memoria centrale, ...), dipendentemente dai servizi che la stessa deve fonire. Una macchina client è utilizzata per lavorare (si parla infatti anche di workstation) e per utilizzare i servizi messi a disposizione dai server presenti sulla rete.