Cos'è un Server? Sguardo generale.

Over View - Server


Oggi daremo uno sguardo generale al funzionamento dei server per capire a grandi linee come comunicano con i processi.
Non ti preoccupare man mano che andrai avanti con questo articolo ti sarà tutto più chiaro  .



Definizione di processo 

Il processo è un file in esecuzione.

È un elemento astratto creato e gestito dal Sistema Operativo. Inoltre, possono essere gestiti più processi alla volta. Questo lavoro è il fulcro di un Sistema Operativo che possiamo considerare come il lavoro principale che un S.O. deve svolgere; un lavoro arduo da gestire.
Come possiamo notare dall'immagine, per far avvenire la comunicazione sia il processo sia il server devono utilizzare entrambi un socket.

Come avviene la comunicazione tra Processi e Server  ?

I vari processi, come potete vedere dall’immagine, comunicano con il Server tramite il Socket.

Questo “messaggio” che viene inviato dal processo verso il server si chiama interrogazione ed è scritta in SQL; una tipologia di linguaggio comprensibile dai Server .


All'interno del Server risiede un programma nascosto chiamato Daemon (prende questo nome dal suo concetto di base: non risultando come un’entità al di sopra, ti aiuta e risponde alle richieste fatte).

Il Daemon comunica con il Socket e capisce il messaggio in entrata. Allora inizia a cercare nell'archivio: il Database. L’archivio ha lo scopo di mantenere le informazioni in modo permanente, così che se il server venisse spento, le informazioni resterebbero comunque. In tale programma le informazioni non spariranno mai a differenza di ciò che avviene sulle memorie RAM.

Questa tipologia di dati che non scompaiono vengono definiti persistenti.

Immaginatevi il Server come una biblioteca e il Deamon come il bibliotecario. Richiedendo qualcosa al Deamon, esso la cerca nell'archivio e se lo trova vi da tutto. Nel caso in cui non trovasse l’informazione richiesta, vi risponde con un errore .

Questo errore sarà composto da un numero e da un testo in inglese.


Il Deamon di default si chiama mysqld , ovviamente è un eseguibile quindi lo troveremo nei nostri PC come mysqld.exe. Lo si può trovare nella sezione dettagli delle macchine con S.O. windows.



Definizione di Socket 

Il socket è una porta atta alla comunicazione. Quest'ultima esiste grazie al Sistema Operativo.

Il Socket è un’entità astratta che nasce da una richiesta, essa viene creata dal S.O. 

Esempio: se il processo 1 manda un’interrogazione al Server , sta utilizzando un Socket che sarà solo suo finché non finisce di mandare il messaggio. Il Daemon legge le informazioni in entrata dal Socket, cerca nel database e restituisce il dato tramite lo stesso socket quindi rimanda il risultato al processo che lo ha richiesto. Fino alla fine di questa comunicazione il Socket potrà essere utilizzato soltanto da un solo processo alla volta .


Definizione breve: il socket è l'interfaccia di livello più basso che permette la comunicazione tra il server e un programma in esecuzione scritto in qualsiasi linguaggio.


Il socket è composto da 3 parti fondamentali: indirizzo IP (è l'indirizzo IP della macchina su cui è stato aperto il socket), numero di porta e tipologia di Socket.


Online potete trovare molte informazioni su alcuni numeri di porte che sono già note, come ad esempio per la comunicazione HTTP, la porta 8080.

Infatti per facilitare il collegamento tra server e processi si utilizzano nella maggior parte delle volte delle porte di default che salvo cambiamenti che possiamo effettuare vengono utilizzate per alcuni scopi prefissi. Esempio: la porte che solitamente vengono utilizzate per il protocollo HTTP sono la parta 80 , 8008 e la porta 8080 (quella più comunemente usata è la porta 80), queste come già detto possono essere cambiate, noi possiamo scegliere di dare al nostro server per il protocollo HTTP un'altra porta, ma servirebbe solo a complicare la comunicazione.

Qui potete trovare la lista di wikipedia con tutte le porte di default utilizzate per i vari protocolli.


Riassumendo :  il socket è una porta che viene aperta dal Sistema Operativo e nasce per comunicare con un processo , è quindi un qualcosa di astratto che viene creata sul momento per comunicare con i vari processi .

La backdoor (porta sul retro) non è altro che un Socket aperto per scopi malevoli (installare un malware). Essa è una porta che viene aperta di nascosto per permettere la comunicazione tra il server e un processo.

I Sistemi Operativi UNIX

I sistemi operativi che fin da subito sono riusciti a gestire tutti i processi sono della famiglia UNIX. Ad oggi di questo ramo di S.O. fanno parte MAC, Linux, UNix HP13 e altri. 

Immaginate i Sistemi Operativi come un enorme albero genealogico. Alcuni rami ben fatti continuano a crescere ed evolversi, altri muoiono poiché troppo obsoleti e quindi non più al passo coi tempi.


Molti dei vecchi sistemi operativi della famiglia UNIX venivano creati da matematici che, grazie ad un accurato studio sugli algoritmi per gestire i vari processi, hanno creato ottimi sistemi operativi. Sulla base di queste prime versioni c’è stata un’evoluzione che ha creato i Sistemi Operativi citati precedentemente.

Differenza tra UDP e TCP

Esistono due tipologie di Socket: i Socket UDP e i Socket TCP.


UDP: sono utilizzati per il gaming o per le dirette. La loro peculiarità è la velocità nel trasmettere le informazioni poiché i socket UDP non utilizzano controlli di conferma (ACK di conferma). Gli UDP non hanno questa tipologia di controllo e quindi risultano più veloci poiché nei contesti come il gaming o le dirette serve la velocità nella comunicazione.



TCP: hanno il controllo dell’arrivo dei pacchetti. Essi utilizzano quindi le ACK di conferma.

La comunicazione è più lenta ma si è sicuri che tutte le informazioni arrivino a destinazione.

Viene utilizzato nella messaggistica o in altri contesti dove sapere che il messaggio è arrivato a destinazione è di fondamentale importanza.

In questi contesti non importa la velocità nella comunicazione ma la sicurezza che tutti i dati arrivino.


Le ACK di conferma sono dei “messaggi” che hanno lo scopo di comunicare al mittente che il pacchetto è arrivato con successo, solo dopo l’arrivo della conferma viene mandato il pacchetto successivo. Questo processo rallenta lo scambio di dati tra 2 macchine ma in alcuni contesti è fondamentale che ogni singolo pacchetto arrivi a destinazione anche se questo significa rallentare la comunicazione. 


Differenza tra Client-Server e Peer-to-Peer

Esistono 2 tipologie di comunicazione online: Client-Server e Peer-to-Peer.


Client-Server: un processo manda uninterrogazione al Server che risponderà con le dovute informazioni che esso richiede. Ovviamente il Daemon non trovando l’informazione potrà anche mostrare un errore. 

ormai te l'ho detto in tutti i modi possibili


Peer-to-peer: tutti sono alla pari. Non esiste un server che ha tutte le informazioni, tutti possono chiedere e tutti possono inviare informazioni.

Cos'è un Server ?

Immaginatevi il Server come un professore a cui vengono fatte tante domande. Nella comunicazione peer-to-peer non c’è nessun professore, tutti sono sullo stesso livello, quindi si hanno solo studenti che tra di loro si passano le informazioni. Inoltre il server non è altro che un computer con all'interno molte informazioni. Queste ultime sono informazioni non volatili quindi resteranno sempre sul server anche al suo spegnimento.


Articoli Correlati : 

Cosa sono i DNS ? Perché sono così importanti ?


Commenti