Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


I Socket cosa sono e tipologie, Schemi e mappe concettuali di Sistemi di reti

Datagram Socket, Stream Socket, Famiglie di socket, cosa sono le socket

Tipologia: Schemi e mappe concettuali

2022/2023

Caricato il 25/02/2023

giulia-24829
giulia-24829 🇮🇹

5

(1)

5 documenti

1 / 2

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SOCKET
Unsocketèun canale di comunicazione che permette l'invio e la ricezione di dati,(tramiteunarete), tra
host remotio tra processi locali(Inter-ProcessCommunication).
IlconcettodisocketsibasasulmodelloInput/OutputsufilediUnix,quindisulleoperazioni
diopen,read,writeeclose;l'utilizzoavvieneaggiungendoindirizzi,numeridi portaeprotocolli.
UnSocketèunidentificatoreformatodallacoppiaindirizzo+porta, cioèunpunto di accesso/uscita unicox
ognirete.SolitamenteisistemioperativifornisconodelleAPIperpermetterealleapplicazionidicontrollare
eutilizzareisocketdirete. Fannodaintermediaritraillivello applicazioneeditrasportonellostack
TCP/IP.Lafunzionedeisocketèquelladiindirizzamento dei processi.
Datochesuisistemiinterlocutoripossonoessercimolti processi,bisognaavereunmodo
perindirizzareprecisamenteilprocessoconcuisistadialogando.Perquestosiusanoleporte:deinumeri
cheidentificanoiprocessiinesecuzione.
Gliinterlocutori,quindi,memorizzanoindirizzo e portadellacontroparte,inunindirizzo socket,formato
così:
- IndirizzoIP:32bit; -Numerodiporta:16bit.
Inumeri di portasonostatidefinitidallaIANA,esidividonoin:
Well-known (riservateaprotocollispecifici):1-1023
Registered :xporteregistrate.Usatedaclient:1024-49151
Dynamic/private ports:49152-65535:libere.
Famiglie di socket
Itipidiprotocolliutilizzatidalsocket,nedefinisconolafamiglia(odominio).Possiamodistinguere:
AF_INET:comunicazionetrahostremoti,tramiteInternet;
AF_UNIX:comunicazionetraprocessilocali,sumacchineUnix.
Tipi di socket
All'internodellafamigliapossiamodistinguereiltipo di socket,asecondadellamodalitàdiconnessione:
Stream socket:connection-oriented,basatisuprotocolliaffidabilicomeTCPoSCTP;
Datagram socket:connectionless,basatisulprotocollovelocemainaffidabileUDP;
Raw socket(rawIP):illivelloditrasportovienebypassato,el'headerèaccessibileallivello
applicativo.
Stream Socket
BasandosisuprotocollialivelloditrasportocomeTCP,garantisconounacomunicazioneaffidabile,full-
duplex,orientata alla connessione,econunflusso di bytedilunghezzavariabile.Sicomponediquestefasi:
#1 – Creazione dei socket: Clienteservercreanoilororispettivisocket,eilserverloponeinascoltosu
unaporta.
pf2

Anteprima parziale del testo

Scarica I Socket cosa sono e tipologie e più Schemi e mappe concettuali in PDF di Sistemi di reti solo su Docsity!

SOCKET

Un socket è un canale di comunicazione che p ermette l'invio e la ricezione di dati, (tramite una rete) , tra host remoti o tra processi locali (Inter-Process Communication). Il concetto di socket si basa sul modello Input/Output su file di Unix, quindi sulle operazioni di open , read , write e close ; l'utilizzo avviene aggiungendo indirizzi , numeri di porta e protocolli. Un Socket è un identificatore formato dalla coppia indirizzo + porta, cioè un punto di accesso/uscita unico x ogni rete. Solitamente i sistemi operativi forniscono delle API per permettere alle applicazioni di controllare e utilizzare i socket di rete. Fanno da intermediari tra il livello applicazione e di trasporto nello stack TCP/IP. La funzione dei socket è quella di indirizzamento dei processi. Dato che sui sistemi interlocutori possono esserci molti processi , bisogna avere un modo per indirizzare precisamente il processo con cui si sta dialogando. Per questo si usano le porte : dei numeri che identificano i processi in esecuzione. Gli interlocutori, quindi, memorizzano indirizzo e porta della controparte, in un indirizzo socket , formato così:

  • Indirizzo IP: 32 bit; - Numero di porta: 16 bit. I numeri di porta sono stati definiti dalla IANA, e si dividono in:  Well-known (riservate a protocolli specifici): 1-  Registered: x porte registrate. Usate da client: 1024-  Dynamic/private ports: 49152-65535: libere.

Famiglie di socket

I tipi di protocolli utilizzati dal socket , ne definiscono la famiglia (o dominio). Possiamo distinguere:  AF_INET : comunicazione tra host remoti, tramite Internet;  AF_UNIX : comunicazione tra processi locali, su macchine Unix. Tipi di socket All'interno della famiglia possiamo distinguere il tipo di socket , a seconda della modalità di connessione:  Stream socket : connection-oriented, basati su protocolli affidabili come TCP o SCTP;  Datagram socket : connectionless, basati sul protocollo veloce ma inaffidabile UDP;  Raw socket (raw IP): il livello di trasporto viene bypassato, e l'header è accessibile al livello applicativo. Stream Socket Basandosi su protocolli a livello di trasporto come TCP , garantiscono una comunicazione affidabile , full- duplex , orientata alla connessione , e con un flusso di byte di lunghezza variabile. Si compone di queste fasi: #1 – Creazione dei socket: Client e server creano i loro rispettivi socket , e il server lo pone in ascolto su una porta.

SOCKET

Dato che il server può creare più connessioni con client diversi (ma anche con lo stesso), ha bisogno di una coda per gestire le varie richieste. #2 – Richiesta di connessione Il client effettua una richiesta di connessione verso il server. Da notare che possiamo avere due numeri di porta diversi, perchè una potrebbe essere dedicata solo al traffico in uscita, l'altra solo in entrata; questo dipende dalla configurazione dell'host. In sostanza, non è detto che la porta locale del client coincida con quella remota del server Il server riceve la richiesta e, nel caso in cui sia accettata, viene creata una nuova connessione. #3 – Comunicazione Ora client e server comunicano attraverso un canale virtuale , tra il socket del primo, ed uno nuovo del server, creato appositamente per il flusso dei dati di questa connessione: data socket. Coerentemente a quanto accennato nella prima fase, il server crea il data socket perchè il primo serve esclusivamente alla gestione delle richieste. È possibile, quindi, che ci siano molti client a comunicare con il server, ciascuno verso il data socket creato dal server per loro. #4 – Chiusura della connessione Essendo il TCP un protocollo orientato alla connessione, quando non si ha più la necessità di comunicare, il client lo comunica al server, che ne deistanzia il data socket. La connessione viene così chiusa. Datagram Socket Sono basati su UDP , un protocollo a livello di trasporto che garantisce comunicazioni a bassa latenza (es x videochat), a discapito dell'affidabilità dei dati. Non esiste, infatti, controllo di flusso. Dato che l'UDP non è un protocollo orientato alla connessione, non esiste la fase di connessione vista poco fa, ma il client comunica direttamente con il server , quando vuole. #1 – Creazione dei socket Client e server creano i loro rispettivi socket , e il server lo pone in ascolto su una porta. Il socket del server non ha bisogno di una coda, in quanto i dati in entrata e in uscita non devono essere circoscritti all'interno di una connessione, quindi la comunicazione con diversi client si svolte sulla stessa interfaccia. #2 – Invio dei dati Il client invia direttamente i datagrammi al server. Anche in questo caso vale quanto detto in precedenza riguardo i numeri di porta. #3 – Risposta del server Il server manda al client un eventuale risposta. La comunicazione è quindi, costituita da un loop che dura finchè ci sono dati da inviare e, ovviamente, finchè gli host sono raggiungibili.