Le socket Flashcards

1
Q

Cosa sono le socket

A

Le socket rappresentano un’astrazione di canale di comunicazione tra processi
Attraverso di esse un’applicazione può ricevere o trasmettere dati
Si presentano sotto la forma di un’API (Application Programming Interface), cioè un insieme di funzioni scritte in C, che le applicazioni possono invocare per ricevere il servizio desiderato.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

E’ possibile un tipo di comunicazione locale con le socket

A

Due applicazioni, localizzate sulla stessa macchina, scambiano dati tra di loro utilizzando l’interfaccia delle socket.
Le socket utilizzate a questo scopo vengono comunemente definite Unix-domain socket.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

E’ possibile la comunicazione remota via TCP/IP

A

Anche due applicazioni situate su macchine distinte possono scambiare informazioni secondo gli stessi meccanismi.
Così funzionano telnet, ftp, Emule, BitTorrent.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nel momento in cui una entità decide di instaurare una comunicazione con un’entità paritaria, come assicurarsi che quest’ultima sia disponibile?

A

E’ necessario che il chiamante conosca l’indirizzo del chiamato e che il chiamato sia in attesa di eventuali comunicazioni.
Il chiamato è il server:
* deve aver divulgato il proprio indirizzo
* resta in attesa di chiamate
* in genere viene contattato per fornire un servizio
Il chiamante è il client:
* conosce l’indirizzo del server
* prende l’iniziativa di comunicare
* usufruisce dei servizi messi a disposizione dal server

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Come è composto un indirizzo delle socket

A

Una comunicazione può essere identificata attraverso la quintupla:
{protocol, local-addr, local-process, foreign-addr, foreign-process}
Una coppia {addr, process} identifica univocamente un terminale di comunicazione (end-point).
Nel mondo IP, ad esempio:
* local-addr e foreign-addr rappresentano indirizzi IP
* local-process e foreign-process rappresentano numeri di porto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Differenza tra server concorrente e iterativo

A

Un server che accetti più comunicazioni contemporaneamente si definisce concorrente.
Un server che accetti una sola comunicazione alla volta è detto iterativo. In questo ultimo caso una richiesta può essere servita solo quando la precedente si è già conclusa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cosa succede in una comunicazione connection-oriented

A

In una comunicazione dati Connection-Oriented, i due end-point dispongono di un canale di comunicazione che:
* trasporta flussi
* è affidabile
* è dedicato
* preserva l’ordine delle informazioni
Il canale si comporta cioè come una sorta di “tubo”: tutto quello che viene inserito al suo interno, arriverà inalterato dall’altro lato e nello stesso ordine con cui è stato immesso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cosa succede in una comunicazione Datagram

A

In una comunicazione Datagram (anche detta connectionless), il canale
* trasporta messaggi
* non è affidabile
* è condiviso
* non preserva l’ordine delle informazioni
Se si inviano dieci messaggi dall’altro lato essi possono anche arrivare mescolati tra di loro e tra i messaggi appartenenti ad altre comunicazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Cosa si intende per Naming/Binding

A

È l’operazione in cui associamo un indirizzo transport ad una socket già creata. In questo modo l’indirizzo diventa noto al sistema operativo ed altre socket sono in grado di stabilire una connessione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quali sono i protocolli utilizzati per il trasferimento dei dati

A

È possibile impostare il protocollo che verrà utilizzato per il trasferimento dei dati
Nel caso delle socket abbiamo due opzioni:
-byte-stream: I dati vengono trasferiti come una sequenza ordinata ed affidabile di byte
-Datagram: I dati vengono inviati come messaggi indipendenti ed inaffidabili

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cosa si intende con il termine marshalling

A

Con il termine marshalling si intende la traduzione di un’informazione in un formato prefissato e comprensibile universalmente
E’ un’operazione tipica del sesto livello della pila OSI (presentazione) il cui intento è di assicurare portabilità ad un programma.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly