DIMEG
Dipartimento di Ingegneria Meccanica Energetica e Gestionale
Prototipazione Rapida
Comunicazione tra calcolatori interconnessi da
una rete di comunicazione
- Unity -
Prof. Fabio Bruno dott. Marco Cozza
Socket
Un socket è un canale di comunicazione tra due processi
in esecuzione sullo stesso calcolatore o su due computer
diversi interconnessi da una rete di comunicazione.
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
Architettura client-server
I socket sono stati progettati con in mente un’architettura
client-server.
Per server si intende un processo che fornisce un servizio.
Per client si intende un processo che usufruisce di un
servizio.
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
Come funziona?
Per capire come funziona un socket bisogna pensare ad
un’applicazione server che rimane in ascolto su una porta
specifica in attesa di richieste di connessione da un client.
Quando arriva una richiesta di connessione, il client e il
server stabiliscono una connessione dedicata su cui essi
possono comunicare.
Tramite gli indirizzi IP e le porte è possibile scambiare
messaggi in maniera bi-direzionale.
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
Protocolli di comunicazione
I protocolli coinvolti nell’implementazione dei Socket
sono, fondamentalmente, 2:
• TCP (Transfer Control Protocol)
• UDP (User Datagram Protocol)
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
TCP (Transfer Control Protocol)
Il protocollo TCP si occupa della trasmissione affidabile dei dati
da un host ad un altro. Crea una sessione orientata alla
connessione tra i due.
Per stabilire la connessione il TCP crea ed invia un pacchetto che
richiede una connessione all’host destinatario. Dopo l’invio
attende, per verificare se l’host contattato è disponibile. Nel caso
in cui lo sia, la macchina di destinazione risponde con un “Sono
disponibile, richiedo ulteriori informazioni da te”. Il mittente
risponde con un “OK, eccoti il resto dell’informazione”.
Dunque, questo protocollo assicura l’arrivo dei dati. Nel caso in
cui questi non arrivino o arrivino danneggiati, ne viene richiesto
il rinvio.
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
TCP: pregi e difetti
Pregi:
• Affidabilità
• Certezza nell’arrivo dei pacchetti
Difetti:
• Velocità inferiore rispetto all’UDP
• Maggiore consumo di dati
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
UDP (User Datagram Protocol)
Questo protocollo non stabilisce alcuna connessione. Si
limita soltanto a inviare i dati e non verifica se l’host di
destinazione abbia o meno ricevuto le informazioni che
sono stati inviate.
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
UDP: pregi e difetti
Pregi:
• Velocità
• Ridotto consumo dati
• Possibilità di saltare al pacchetto successivo senza intoppi
Difetti:
• Inaffidabilità
• Necessità di assicurare la consegna dei dati con altri metodi
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D
Esempio comunicazione
Applicativo Unity
&
Arduino
Corso di Prototipazione Rapida – Prof. [Link] Unity 3D