Concetti Chiave

  • La porta, o Port Address, identifica il TCP/IP per la trasmissione dati, ma richiede una quintupla, chiamata "Association", per descrivere una connessione completa.
  • Una "Half Association" è composta da elementi locali e remoti, e insieme formano un Socket, fondamentale per l'invio e la ricezione di dati in rete.
  • Per sviluppare applicazioni Client-Server in Java, è necessario importare il package Java.net, che contiene classi per gestire i socket.
  • Nella comunicazione, si può scegliere tra Unicast, che connette un solo client alla volta, e Multicast, che consente a più client di connettersi simultaneamente.
  • In Unicast, il server accetta una connessione solo se non ci sono altri client attivi, mentre in Multicast crea nuovi socket per gestire più connessioni contemporaneamente.

Concetto di porta e associazione

Ora recuperiamo un concetto introdotto poco sopra ossia quello di Porta o Port Address. Una porta serve a farsi identificare dal TCP/IP per poi procedere alla trasmissione dati. Tuttavia il numero della porta non è in grado di descrivere una connessione quindi si ricorre alla seguente quintupla, definita “Association”, composta da:

- Protocollo = ad esempio il TCP;

- Indirizzo Locale = ossia l’indirizzo IP del computer mittente;

- Processo Locale = corrispondente alla porta del processo locale;

- Indirizzo Remoto = ossia l’indirizzo IP del computer destinatario;

- Processo Remoto = porta del processo remoto;

Che cosa sono i socket e come avviene la comunicazione in rete?

I due elementi “locale” formano una mezza Association mentre i “remoto” ne formano un’altra. Insieme, queste due Half Association decidono un protocollo da utilizzare per scambiarsi i dati. Queste due Half Association sono anche dette Socket, ossia quel meccanismo attraverso il quale un’applicazione invia e riceve dati tramite rete.
Per creare in Java delle applicazioni che si basano su di una struttura Client-Server si deve importare necessariamente il package Java.net che contiene tutte quelle definizioni di classe utili allo sviluppo di applicazioni basate su socket.

Nella realizzazione di una nuova applicazione basata su Connection Oriented bisogna prima chiedersi se si vuole comunicare con un solo client alla volta (Unicast) o con più client contemporaneamente (Multicast). Nel primo caso il server accetterà una richiesta solamente se non c’è nessun altro client già connesso; se la connessione va a buon fine allora il server accetta la connessione stabilendo il canale di comunicazione con il client che, una volta ricevuta, la conferma e crea un socket su una porta locale in cui trasmettere i pacchetti. Nel caso Multicast se la connessione va a buon fine, il server prima di creare una nuova connessione crea un nuovo socket associato ad una nuova porta a cui cede la gestione del canale di trasmissione con il client.

Domande da interrogazione

  1. Che cos'è una porta e come viene utilizzata nel contesto della comunicazione TCP/IP?
  2. Una porta, o Port Address, è utilizzata per identificare un dispositivo nel protocollo TCP/IP e per facilitare la trasmissione dei dati. Tuttavia, il numero della porta da solo non descrive una connessione, per cui si utilizza una quintupla chiamata "Association" che include protocollo, indirizzo locale, processo locale, indirizzo remoto e processo remoto.

  3. Cosa sono le Half Association e come si collegano ai Socket?
  4. Le Half Association sono costituite dai due elementi "locale" e "remoto" che, insieme, formano un Socket. Questo meccanismo consente a un'applicazione di inviare e ricevere dati attraverso la rete, decidendo anche il protocollo da utilizzare per lo scambio di informazioni.

  5. Qual è la differenza tra Unicast e Multicast nella comunicazione Client-Server?
  6. Nel modello Unicast, il server comunica con un solo client alla volta, accettando una connessione solo se non ci sono altri client già connessi. Al contrario, nel modello Multicast, il server può gestire più client contemporaneamente, creando un nuovo socket e associando una nuova porta per ciascun client connesso.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community