Anteprima
Vedrai una selezione di 10 pagine su 89
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 1 Riassunto Reti di Calcolatori, prof. Riccobene Pag. 2
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 6
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 11
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 16
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 21
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 26
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 31
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 36
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Riassunto Reti di Calcolatori, prof. Riccobene Pag. 41
1 su 89
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

SOCKET

2. , per collegarlo ad un indirizzo specifico

BIND

3. , per rimanere in ascolto in attesa di connessioni

LISTEN

4. , per collegare la socket alla prima connessione (riuscita) in arrivo

ACCEPT

Un client esegue in ordine:

1. , per creare l'endpoint

SOCKET

2. , per tentare la connessione con il server

CONNECT

Il client non ha bisogno di un indirizzo specifico, quindi non viene usata . Il sistema operativo assegnerà un indirizzo automaticamente.

BIND

Dopodiché entrambi usano e per scambiare dati. Ognuno poi chiude unilateralmente la sua “metà” della connessione con

SEND RECEIVE

.

CLOSE

Fairness tra connessioni TCP

Se sessioni TCP condividono un canale a banda limitata (bottleneck link

), ognuna di esse dovrebbe ottenere della capacità del

N 1/N

collegamento. (Additive increase/multiplicative decrease)

Il metodo AIMD usato per il controllo della congestione assicura che, dopo un certo numero di

iterazioni, questo risultato sarà approssimativamente raggiunto.

L'algoritmo TCP Reno, il più utilizzato in Internet, garantisce una buona fairness.

Dimostrazione grafica

Prendiamo il caso di due connessioni TCP su un canale stretto.

Il grafico sottostante mostra l'andamento della finestra di congestione complessiva.

La linea tratteggiata indica un uso equo del canale, la linea continua indica il pieno utilizzo del canale.

L'intersezione tra queste due linee è il punto ideale di fairness (massima utilizzazione e massima equità).

L'incremento della finestra di congestione è indicato dalle linee di 45°, che indicano che inizialmente entrambe le finestre crescono

linearmente.

Al primo segmento perso la finestra si dimezzerà, come indicato dalle linee che tornano verso l'origine.

Dopo un certo numero di iterazioni, entrambe le finestre convergeranno al punto di fairness , ovvero l'intersezione delle due linee principali.

Appunti Reti - © 2017 Mario Cianciolo <mr.udda@gmail.com>

Livello applicazione

Il livello Applicazione contiene i protocolli per le comunicazioni Internet da processo a processo, con modelli peer-to-peer o client-server.

L'unico livello superiore a questo è l'interfaccia utente.

Comunicazione tra processi

Le applicazioni richedono un canale bidirezionale per scambiare dati. Questo canale è, come sappiamo, fornito dal livello di trasporto (in UNIX tramite i Socket

).

I processi dello strato applicazione scambiano dati attraverso uno o più protocolli

, in base alla loro natura e al loro scopo.

Sistemi distribuiti

In un sistema distribuito due processi remoti possono procedere in parallelo solo se riescono a sincronizzarsi. Lo scambio dei messaggi consente la sincronizzazione.

Modello Client-Server

In un modello di comunicazione client-server, esistono due tipi di applicazione:

Applicazione server-side , che fornisce i servizi e condivide risorse

Applicazione client-side , normalmente più semplice, utilizza servizi e risorse del server

Indirizzamento nella comunicazione tra processi

Due processi comunicano collegando i rispettivi livelli di trasporto. In UNIX, vengono usati i Socket

.

Numeri di porta

I possibili numeri di porta vanno da 0 a 65535 (valore 16 bit).

Le porte sono suddivise in tre gruppi:

G I N

RUPPO NTERVALLO OTE

Well known ports o 0-1023 riservate a processi di sistema, per usarle servono privilegi di superuser

System ports 1024-

Registered ports assegnate per qualche uso da IANA, per usarle non servono privilegi di superuser

49151

49152- contiene porte dinamiche (utilizzate per una singola connessione e poi liberate) o private, non possono

Dynamic/Private ports 65535 essere registrate da IANA

Molti protocolli largamente usati hanno dei numeri di porta fissi nell'intervallo delle well known ports.

Requisiti delle applicazioni

In base alla natura dell'applicazione, i requisiti sono diversi:

Affidabilità

: alcune applicazioni (streaming, videochiamate) possono permettersi di perdere qualche pacchetto, altre invece no (e-mail, trasferimento file)

Larghezza di banda

: alcune applicazioni scambiano pochi dati (chat), mentre altre hanno bisogno di più larghezza di banda (trasferimento file, e-mail con allegati)

Sensibilità al tempo : alcune applicazioni hanno bisogno di bassi ritardi (video in tempo reale, giochi interattivi), altre invece non hanno particolari esigenze in

termini di tempo (e-mail, trasferimento file)

I requisiti condizionano la scelta del protocollo di trasporto, ad esempio:

dove è importante l'affidabilità, l'applicazione sceglierà di usare TCP al livello di trasporto

dove è importante la latenza, l'applicazione potrebbe preferire UDP per via della maggiore velocità di elaborazione

Il protocollo HTTP

HTTP è un tipico protocollo client-server. Il client invia una HTTP Request e il server restituisce una HTTP Response .

HTTP è generalmente in ascolto sulla porta 80

, e utilizza TCP per assicurare la correttezza della trasmissione.

HTTP è un protocollo testuale, che utilizza solo caratteri ASCII (tranne che per il corpo che può contenere dati binari). I client normalmente sono i Web browser

, che

visualizzano le pagine web (spesso HTML) presenti sui server.

Se la pagina contiene riferimenti ad altri oggetti (immagini, script, etc) questi vengono richiesti sempre tramite HTTP, in parallelo o sequenzialmente.

Versioni di HTTP

HTTP 1.0 chiude la connessione dopo il trasferimento di un singolo oggetto.

HTTP 1.1 utilizza connessioni permanenti (keep-alive ) che migliorano le prestazioni perché non serve un handshake a tre vie per ogni oggetto.

Esiste anche lo standard HTTP 2.0, compatibile con i precedenti, che migliora le prestazioni generali.

HTTP Request

Il formato di una richiesta HTTP è il seguente.

Alla fine delle opzioni deve esserci una linea vuota, anche se non ci sono opzioni o non c'è corpo.

I fine linea devono contenere il doppio byte ( ).

CR LF \r\n

[METODO] [URL] [VERSIONE]

[HEADER_1]: [VALORE_1]

[HEADER_2]: [VALORE_2]

...

[HEADER_N]: [VALORE_N]

[CORPO REQUEST]

METODO : i metodi più utilizzati sono GET e POST

, ma ne esistono altri

Uniform Resource Locator,

URL : stringa che identifica in modo univoco una data risorsa

VERSIONE : o

HTTP/1.0 HTTP/1.1

HEADER

: un'intestazione valida per le request (come o ), seguita dal suo valore

Host User-Agent

Metodi HTTP

I possibili metodi da utilizzare nelle request sono i seguenti:

M S

ETODO COPO

GET Ottenere una pagina web

HEAD Ottenere gli header di una pagina web

PUT Memorizzare una pagina web

POST Inviare dati al server (come il contenuto di un form)

DELETE Eliminare una pagina web

TRACE Ottenere indietro la request ricevuta dal server

CONNECT Riservato per usi futuri

OPTIONS Legge il valore di alcune opzioni

HTTP Response

Il formato di una richiesta HTTP è il seguente.

Alla fine delle opzioni deve esserci una linea vuota, anche se non ci sono opzioni o non c'è corpo.

I fine linea devono contenere il doppio byte ( ).

CR LF \r\n

[VERSIONE] [STATO] [FRASE]

[HEADER_1]: [VALORE_1]

[HEADER_2]: [VALORE_2]

...

[HEADER_N]: [VALORE_N]

[CORPO RESPONSE]

VERSIONE : o

HTTP/1.0 HTTP/1.1

STATO : un codice di stato HTTP (numerico)

FRASE : un breve testo che descrive il codice di stato

HEADER

: un'intestazione valida per le response (come ), seguita dal suo valore

Content-Length

Codici di stato

I possibili codici di stato sono di tipo diverso in base alla prima cifra:

1

: Informazioni ( )

100 Continue

2

: Successo ( , )

200 OK 204 No Content

3

: Reindirizzamento ( )

305 Use Proxy

4

: Errore client ( , , )

400 Bad Request 403 Forbidden 404 Not Found

5

: Errore server ( , )

500 Internal Server Error 505 HTTP Version not supported

HTML dinamico

Molti web server creano la pagina web al momento della richiesta, utilizzando appositi sistemi (PHP, ASP, …).

statica, dinamica.

In questo modo, pur essendo la response di per sé la pagina web è generata ad ogni request ed è quindi

Il protocollo FTP

FTP è un protocollo client-server che usa TCP per lo scambio affidabile di file tra host. Generalmente il server FTP è in ascolto sulla porta 21

.

I due canali FTP

FTP utilizza due connessioni separate per gestire comandi e dati.

Un server FTP generalmente rimane in ascolto sulla porta 21, a cui si connette il client.

La connessione comporta l'inizializzazione del canale comandi

, attraverso il quale client e server si scambiano comandi e risposte.

Lo scambio effettivo di dati (come per esempio un file) richiede l'apertura del canale dati

, che può essere di due tipi:

attivo : il client apre una porta solitamente casuale, tramite il canale comandi rende noto il numero di tale porta al server. Il server connette la propria porta 20 alla

porta del client

passivo : il server apre una porta solitamente casuale (superiore alla 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che si

connetta

Sia il canale comandi, sia il canale dati sono delle connessioni TCP.

FTP crea un nuovo canale dati per ogni file trasferito, mentre il canale comandi rimane aperto per l'intera durata della sessione utente.

In altre parole il canale comandi è persistente mentre il canale dati è non persistente .

Funzioni di FTP

Un server FTP offre funzioni per interagire con il suo filesystem, tra cui:

download/upload di file

resume di trasferimenti interrotti

rimozione e rinomina di file

creazione di directory

navigazione tra directory

Autenticazione

FTP fornisce inoltre un sistema di autenticazione in chiaro (non criptato).

Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem.

L'autenticazione cosiddetta anonima prevede che il client non specifichi nessuna password di accesso e che lo stesso abbia privilegi che sono generalmente di sola lettura.

Differenze con HTTP

Le principali differenze tra FTP e HTTP sono le seguenti:

M FTP HTTP

ETRICA

Connessioni TCP Due connessioni (controllo e dati) Headers e dati nella stessa connessione

Dati trasferiti File (salvati in locale) Pagine web (soltanto visualizzate)

Dati aggiuntivi Solo controllo (poco overhead) Controllo e metadati (molto overhead per file piccoli)

Protocolli di posta

La posta elettronica viene implementata in Internet attraverso la cooperazione dei seguenti sottosistemi:

(MUA):

Mail User Agent client (applicazione di posta), usa SMTP in invio e POP/IMAP in ricezione

(MTA):

Mail Transport Agent server (interfaccia con la r

Dettagli
Publisher
A.A. 2017-2018
89 pagine
2 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher udda di informazioni apprese con la frequenza delle lezioni di Reti di calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Riccobene Salvatore.