Client server

Cos’è Client-server?

Client-server è una relazione in cui un programma, il client, richiede un servizio o una risorsa da un altro programma, il server. L’etichetta client-server era precedentemente utilizzata per distinguere l’elaborazione distribuita dai PC dal modello di elaborazione centralizzata monolitica utilizzato dai mainframe.

Oggi, le transazioni informatiche in cui il server soddisfa una richiesta effettuata da un client sono molto comuni. Il modello client-server è diventato una delle idee centrali dell’elaborazione di rete. In questo contesto, il client stabilisce una connessione al server tramite una LAN o WAN, come Internet.

Una volta che il server soddisfa la richiesta del client, la connessione termina. Poiché più programmi client condividono i servizi dello stesso programma server, un server speciale chiamato daemon potrebbe attivarsi per attendere le richieste del client.

Nei primi giorni di Internet, la maggior parte del traffico di rete viaggiava attraverso quello che è noto come traffico nord-sud. Questo è il momento in cui i dati si spostano tra client remoti che richiedono contenuti Web e server del data center che forniscono i contenuti. Oggi, con la maturità della virtualizzazione e del cloud computing, è più probabile che il traffico di rete scorra da server a server, un modello noto come traffico est-ovest.

Questo ha cambiato l’attenzione dell’amministrazione di rete da un modello di sicurezza centralizzato progettato per proteggere il perimetro di rete a un modello di sicurezza decentralizzato che controlla l’accesso dei singoli utenti ai servizi e ai dati. I professionisti della rete verificano anche il comportamento della rete per garantire la conformità con le policy e le normative.

Vantaggi e svantaggi del modello client-server

Un importante vantaggio del modello client-server è che la sua architettura centralizzata semplifica la protezione dei dati con controlli di accesso imposti dalle policy di sicurezza. Inoltre, non importa se i client e il server esistono sullo stesso sistema operativo perché i dati vengono trasferiti tramite protocolli client-server indipendenti dalla piattaforma.

Un importante svantaggio del modello client-server è che se troppi client richiedono dati contemporaneamente, il server potrebbe sovraccaricarsi. Ciò può causare congestione della rete o provocare un diniego di servizio.

Protocolli client-server

I client in genere comunicano con i server utilizzando la suite di protocolli TCP/IP. TCP è un protocollo orientato alla connessione, il che significa che il protocollo stabilisce e mantiene le connessioni finché i programmi applicativi a ciascuna estremità non hanno terminato lo scambio di messaggi. I protocolli TCP aiutano con quanto segue:

  • Determina come suddividere i dati dell’applicazione in pacchetti.
  • Invia pacchetti e accetta pacchetti dal livello di rete.
  • Gestisce il controllo del flusso di traffico.
  • Gestisce la ritrasmissione di pacchetti persi o distorti.
  • Riconosce tutti i pacchetti che arrivano nella rete.

Nel modello di comunicazione Open Systems Interconnection (OSI), TCP copre parti del Livello 4, il livello di trasporto, e parti del Livello 5, il livello di sessione.

Al contrario, IP è un protocollo senza connessione, il che significa che gli endpoint non continuano a comunicare dopo la trasmissione iniziale perché non c’è connessione. Internet tratta ogni pacchetto che viaggia attraverso la rete come un’unità di dati indipendente senza alcuna relazione con altre unità, mentre TCP organizza i pacchetti nell’ordine corretto. Nel modello di comunicazione OSI, IP è nel Livello 3, il livello di rete.

Altri modelli di relazione di programma

Altri modelli di relazione di programma includono peer-to-peer (P2P) e primario/secondario. Nel modello P2P, ogni nodo della rete può funzionare sia come client che come server. Nel modello primario/secondario, il dispositivo o processo primario controlla uno o più altri dispositivi o processi secondari. Una volta che la rete stabilisce la relazione primario/secondario, la direzione del controllo è sempre dal primario al secondario.