Estratto del documento

Livello applicativo

sabato 28 aprile 2018 19:09

Un'applicazione di rete è un software che può essere eseguito su diversi terminali e può comunicare tramite la rete.

Comunicazione tra processi

Host: dispositivo utente (laptop, smartphone etc.)

Processo: programma software in esecuzione su un host.

Comunicazione inter-processo (IPC): tecnologie software con lo scopo di consentire a diversi processi di comunicare.

Lo scopo della rete è appunto quello di consentire la comunicazione tra processi che risiedono su host diversi.

Per fare ciò sono necessari l'indirizzamento dei processi e un protocollo di scambio dati.

Lo scambio di messaggi fra processi applicativi avviene utilizzando i servizi dei livelli inferiori attraverso i SAP (Service

Access Point). Ogni processo è associato ad un SAP.

Per identificare un processo (es. browser) in esecuzione sul host sono necessari l'indirizzo del host (indirizzo ip) e

l'indirizzo del SAP del processo (numero di porta).

Indirizzo ip e numero di porta costituiscono una socket, o porta di comunicazione.

Le applicazioni possono avere requisiti diversi a seconda della loro funzione.

Alcune necessitano di completa affidabilità (file transfer etc.), altre possono tollerare perdite parziali (audio etc.).

Altre richiedono un basso ritardo (giochi, videochiamate etc.), e alcune possono aver bisogno di un minimo di velocità di

trasferimento (streaming etc.) o adattarsi alla velocità disponibile.

Servizi di trasporto

I principali servizi di trasporto sono: Servizio TCP Servizio UDP

Connection oriented: instaurazione connessione Senza connessione

prima dello scambio dati

Trasporto affidabile: senza perdita di dati Trasferimento non affidabile

Controllo di flusso: il trasmettitore regola la velocità Senza controllo sul traffico

in base al ricevitore

Controllo di congestione : per impedire di sovraccaricare la rete Senza garanzie

Non fornisce garanzie di ritardo e di bande Trasferimento "veloce"

Architetture applicative

Client Server:

I dispositivi coinvolti nella comunicazione implementano o solo il processo client o solo il processo server.

I dispositivi client e server hanno caratteristiche diverse (client eseguono richieste, server rispondono alle richieste

ricevute).

Peer-to-peer:

I dispositivi implementano sia il processo client che server.

Server: Architettura P2P (pura)

Host sempre attivo • Non ci sono server

Indirizzo IP permanente sempre connessi

Possibilità di utilizzo di macchine • Terminali (peers)

in cluster comunicano direttamente

Possono ricevere richieste da • I peers sono collegati in

Fondamenti di Internet e Reti Pagina 1

Indirizzo IP permanente sempre connessi

Possibilità di utilizzo di macchine • Terminali (peers)

in cluster comunicano direttamente

Possono ricevere richieste da • I peers sono collegati in

molti client modo intermittente e

Client: possono cambiare

Comunicano con il server indirizzo IP

Possono essere connessi in Esempio: BitTorrent

modo discontinuo

Possono cambiare indirizzo IP

Non comunicano con altri client

Possono inviare molte richieste

allo stesso server Fondamenti di Internet e Reti Pagina 2

HTTP

sabato 28 aprile 2018 19:42

Messaggi HTTP

Le pagine web sono fatte di oggetti, che possono essere file html, immagini, file audio, video,

collegamenti ad altre pagine etc.

Ogni oggetto è indirizzato da un Uniform Resource Locator (URL).

Client/Server:

Il client effettua richieste HTTP di pagine web, le riceve e le mostra all'utente finale.

Il server invia gli oggetti richiesti tramite risposte HTTP.

Nessuna memoria delle richieste viene mantenuta nei server (protocollo stateless).

HTTP si appoggia su TCP a livello di trasporto.

Il client HTTP inizia una connessione TCP verso il server

Il server HTTP accetta connessioni TCP da client HTTP

Client e Server HTTP si scambiano informazioni (pagine web e messaggi di controllo).

La connessione TCP tra client e server HTTP viene chiusa.

Modalità di connessione tra client e server

La connessione può essere:

Non persistente:

Una connessione TCP per ogni sessione richiesta-risposta: il server chiude la connessione dopo

aver inviato l'oggetto.

La procedura viene quindi ripetuta per ogni richiesta (es. ogni singolo file collegato al

documento html base)

Più connessioni TCP possono essere aperte in parallelo per minimizzare il ritardo.

Persistente:

La connessione TCP rimane aperta e può essere usate per trasferire più oggetti della stessa

pagina o più pagine.

Le richieste possono essere inviate in parallelo (pipelining)

Stima del tempo di trasferimento

Round trip time (RTT) : tempo per trasferire un messaggio "piccolo" dal client al server e ritorno.

Tempo di risposta di HTTP:

Un RTT per iniziare la connessione

Un RTT per inviare i primi byte della richiesta HTTP

e riceve i primi byte della risposta.

Tempo di trasmissione dell'oggetto

Metodi HTTP: GET HEAD POST PUT DELETE

Gli header servono per scambiare informazioni di servizio aggiuntive (è possibile inserire più linee di

header per messaggio).

HTTP da linea di comando Fondamenti di Internet e Reti Pagina 3

HTTP da linea di comando

cURL è un tool da linea di comando per la manipolazione ed il trasferimento di dati basato su URL.

Ex.: curl www.antlab.polimi.it

curl -- head www.antlab.polimi.it

Curl --trace-ascii filename.txt --trace-time www.antlab.polimi.it

Cookie: sono dei "gettoni identificativi" che consentono alle applicazioni web lato server di

archiviare e recuperare informazioni a lungo termine sul lato client.

Permettono di realizzare meccanismi di autenticazioni quali login, o memorizzare le preferenze

dell'utente o tracciarne la navigazione.

Date le implicazioni di riservatezza, l'utilizzo di cookie è disciplinato dagli ordinamenti giuridici di

numerosi paesi

Proxy HTTP

I proxy sono degli application gateway, ovvero degli instradatori di messaggi di livello applicativo.

Devono essere sia client che server, ricevendo le richieste dal client e inviandole ad un server

(mascheramento degli utenti del proxy).

Compressione deli header

Codifica di Huffman: assegno stringhe binarie a simboli più comuni.

Indexing: assegno un indice a header line più comuni ed invio nei messaggi solo l'indice.

Codifica differenziale: l'header di richieste successive riporta per esteso solo la differenza con

l'header delle richieste precedenti.

Multiplazione

Lo scambio di frame tra client e server è organizzato in stream (sequenza logica di frame).

Ogni stream ha una priorità (impostata dal browser).

La connessione è occupata da frame di stream diversi, nessun oggetto lento blocca la connessione.

Il server può inviare informazioni utili al client senza che esso ne faccia esplicita richiesta (la

funzionalità è richiesta dal client).

Rendere sicuro HTTP: HTTPs

Secure Socket Layer (SSL) e Transport Layer Security (TLS) aggiungono confidenzialità, integrità ed

autenticazione alle connessioni TCP.

Connessioni SSL/TLS

Handshake:

fase in cui server (e client) si autenticano e si accordano

sul tipo di cifratura da

applicare ai dati

Trasferimento dati

I dati applicativi sono suddivisi in record (PDU)

ciascuno dei quali è cifrato con l'algoritmo scelto nella

fase precedente

Chiusura connessione

un messaggio speciale è usato per chiudere la

connessione in modo sicuro

Fondamenti di Internet e Reti Pagina 4

Posta elettronica

sabato 28 aprile 2018 21:34

User Agent: client d'utente ( Outlook. Thunderbird, etc.)

Mail Server

Simple Mail Transfer Protocol: per trasferire email da client d'utente fino al mail server

destinatario.

Protocolli di accesso ai mail server: per scaricare email dal proprio server (POP3, IMAP)

I mail server contengono per ogni client controllato:

Una coda di email in ingresso (mailbox)

Una coda di email in uscita

I mail server

Ricevono le email in uscita da tutti i client d'utente che controllano

Ricevono da altri mail server tutte le mail destinate ai client d'utente controllati

I mail server "parlano"

SMTP con altri mail server e con i client d'utente in uplink

POP3/IMAPP con i client d'utente in downlink

SMTP

È un protocollo applicativo client-server.

L'interazione tra client SMTP e server SMTP è di tipo comando/risposta.

Comandi e risposte sono testuali.

Richiede che anche il corpo dei messaggi sia ASCII

Formato delle email

Il formato dei messaggi inviati (tutto ciò che segue il comando SMTP DATA è specificato

Header:

To:

From:

Subject:

Body: Contenuto dell'email (ASCII readable)

Multipurpose Internet Mail Extensions (MIME): estende il formato dei messaggi per supportare

contenuti multimediali, definisce header per specificare il tipo di contenuto ed il tipo di codifica.

MIME consente anche il trasferimento di più oggetti come parti di uno stesso messaggio.

Protocolli di accesso al mailbox

Diversi protocolli sono stati sviluppati per il colloquio tra user agent e server in fase di lettura dei

messaggi presenti nel mailbox.

POP3: download dei messaggi

IMAP: download dei messaggi, gestione della mailbox sul mail server

HTTP Fondamenti di Internet e Reti Pagina 5

Fondamenti di Internet e Reti Pagina 6

Risoluzione di nomi simbolici

sabato 28 aprile 2018 22:21

Domain Name System (DNS)

Gli indirizzi IP sono poco adatti ad essere utilizzati dagli applicativi, e risulta più comodo utilizzare

degli indirizzi simbolici (es. www.google.com è meglio di 74.125.206.99).

Occorre quindi una mappatura fra indirizzi IP (utilizzati dalle macchine) e nomi simbolici (usati dagli

esseri umani).

Si utilizzano:

Database distribuito costituito da molti name servers con organizzazione gerarchica

Protcollo applicativo basato su UDP tra name servers e host per risolvere nomi simbolici.

Servizi agguintivi:

Host aliasing

Mail server aliasing

Load distribution

Ogni livello ha una diversa "profondità" di informazione

Ex: per trovare l'ip di www.google.com :

– Root name server sanno come “trovare” i name server di che gestiscono i domini .com \

– I name server .com sanno come trovare i name server che gestiscono il dominio google.com

– I name server google.com sanno risolvere il nome simbolico www.google.com

Altri tipi di NS

Local Name Servers

Ogni ISP (Internet Service Provider) ha un NS locale

Direttamente collegati agli host

Tutte le volte che un host deve risolvere un indirizzo simbolico contatta il LNS

Il LNS (eventualmente) contatta i Root Name Server nella gerarchia

Fondamenti di Internet e Reti Pagina 7

Il LNS (eventualmente) contatta i Root Name Server nella gerarchia

Authoritative Name Servers

NS "responsabile" di un particolare hostname

Esempi di risoluzione di un nome simbolico

CACHING

Un server, dopo aver reperito un'informazione si cui non è authoritative può memorizzarla

temporaneamente.

All'arrivo di una nuova richiesta può fornire l'informazione senza risalire sino al server authoritative.

Il TimeToLive (TTL) è deciso dal server authoritative ed è un indice di quanto stabile nel tempo è

l'informazione relativa.

I server non-authoritative utilizzano il TTL per decidere un time-out.

I TLD server (Top Level Domain Server) sono generalmente memorizzati nei LNS.

Comandi DNS

nslookup: consente di inviare richieste DNS a server specificati

Fondamenti di Internet e Reti Pagina 8

dig: simile a nslookup, fornisce più dettagli sui messaggi del protocollo DNS.

Content Distribution Networks (CDNs)

Per distribuire in maniera efficiente moltissimi contenuti contemporaneamente a moltissimi utenti,

lontanissimi gli uni dagli altri, si utilizza una rete di server geograficamente distribuita che "ospita"

copie dei contenuti richiesti.

La rete di server (CDN) può essere proprietà di chi offre il servizio (Netflix, Facebook etc.) o di terze

parti (Akamai, Limelight etc.) Fondamenti di Internet e Reti Pagina 9

Peer to Peer

sabato 28 aprile 2018 22:52

Funzionamento:

Gli utenti utilizzano il software P2P sul proprio pc, collegandosi in modo intermittente a

internet prendendo indirizzi IP diversi ogni volta.

Se un utente cerca un file l'applicazione trova altri utenti che lo hanno, quindi l'utente

sceglie da chi scaricarlo.

Il file è scaricato usando un protocollo (come HTTP)

Altri utenti potranno (in seguito o in contemporanea) scaricare i file dall'utente.

Directory centralizzata

Meccanismo di Napster:

Quando i peer si connettono informano il server centrale (indirizzo IP, file condivisi).

Il peer interroga il server centrale per uno specifico file

Il file viene scaricato

Problemi: se il server si rompe il sistema si blocca; chi gestisce il server può essere

accusato di infrangere le regole sul copyright.

Completamente Distribuita

Meccanismo di Nugtella:

Nessun server centrale, protocollo di pubblico dominio.

I peer si attivano e si collegano ad un numero di altri vicini.

La ricerca dei vicini è distribuita.

Basato su una rete di overlay.

Ex. BitTorrent

I file sono divisi in chunk di 256kbyte

Fondamenti di Internet e Reti Pagina 10

Meccanismo di richiesta di chunk

Rarest First: il peer entrante, tra tutti i chunk mancanti, scarica prima i chunk più rari nelle liste

di chunk ricevute da tutti i neighboring peer

Meccanismo di invio di chunk

Il peer entrante risponde a richieste che provengono dagli n peer che inviano chunk al massimo

rate.

Tutti gli altri peer sono strozzati (chocked)I migliori n peer sono ricalcolati periodicamente.

Ogni tot secondi un nuovo peer può essere scelto casualmente per l'invio di chunk (Optimistic

unchoking) Fondamenti di Internet e Reti Pagina 11

Livello trasporto

domenica 29 aprile 2018 16:17

Il livello trasporto ha il compito di instaurare un collegamento logico tra le applicazioni residenti su

host remoti.

Rende trasparente il trasporto fisico (attraverso la rete= dei messaggi alle applicazioni.

Il livello di trasporto è presente solo negli end system (host), consentendo il collegamento logico tra

processi applicativi.

Servizio di multiplazione

Più applicazioni possono essere attive su un end system.

Il livello trasporto svolge funzioni di multiplexing/demultiplexing per applicazioni.

Ciascun collegamento logico tra applicazioni è indirizzato dal livello trasporto.

Le porte

In internet le funzioni di multiplexing/demultiplexing vengono gestite mediante indirizzi contenuti

nelle PDU di livello trasporto, che sono lunghi 16bit e prendono il nome di porte.

16

I numeri di porta possono assumere valori compresi tra 0 e 65535 (2 -1).

I numeri noti sono assegnati ad importanti applicativi lato server (HTTP,FTP,SMTP,NDS etc.)

I numeri dinamici sono assegnati dinamicamente ai processi applicativi lato client.

I numeri registrati sono assegnati a specifiche applicazioni da chi ne faccia richiesta (tipicamente

protocolli proprietari).

Socket e multiplazione Fondamenti di Internet e Reti Pagina 12

Servizio di buffering

Quando un processo viene associato ad una porta (lato client o server) viene associato dal sistemo

operativo a due code,Nellauna d'ingresso e una d'uscita.

Servizio di trasporto

Il servizio di rete non è affidabile, può infatti capire che dei messaggi non raggiungano la

destinazione.

Il servizio trasporto fornito può essere:

Affidabile: garanzia di consegna dei messaggi nel corretto ordine

Non affidabile: solo funzionalità di multiplexing

Orientato alla connessione

Senza connessione

Nella suite IP sono definiti due tipi di trasporto:

TPC ( Transmission Control Protocol): affidabile e orientato alla connessione

UDP (User Datagram Protocol): senza connessione e non affidabile

Fondamenti di Internet e Reti Pagina 13

Protocollo UDP

domenica 29 aprile 2018 22:08

È il modo più semplice di usare le funzionalità di IP, in quanto non aggiunge nulla se non:

Indirizzamento delle applicazioni (mux/demux).

Blando controllo d'errore sull'header (senza correzione).

È infatti un protocollo datagram che non garantisce la consegna e non esercita nessun contrllo (né di

flusso né di errore).

Perché usare UDP e non TCP?

Minore latenza: non serve stabilire una connessione

Maggiore semplicità: non occorre tener traccia dello stato della connessione

poche regole da implementare

Minore overhead: header UDP più piccolo dell'header TCP

Checksum: controllo di integrità

Informazione ridondante inserita nell'header del segmento UDP per controllo d'errore, calcolato dal

trasmettitore ed inserito nell'header.

Il ricevitore ripete lo stesso calcolo sul segmento ricevuto (comprensivo di checksum).

Se il risultato è corretto accetta il segmento, altrimenti lo scarta.

Viene calcolato considerando l'header UDP, uno pseudo-header IP e i dati.

Calcolo del Checksum: lato ricevitore

L'insieme di bit è diviso ancora in blocchi da 16 bit.

Tutti i blocchi vengono sommati in aritmetica complemento a uno.

Il risultato è complementato.

Se sono tutti 0 il pacchetto è accettato, altrimenti è scartato.

Fondamenti di Internet e Reti Pagina 14

Trasporto affidabile

domenica 29 aprile 2018 22:15

Recupero d'errore

Ciascuna trama ricevuta correttamente viene riscontrata positivamente con un messaggio di

Acknowledgement o ACK.

A volte l'errore può essere segnalato da un messaggio detto Not Ack (NACK).

La mancanza di ACK o la presenza di NACK segnala la necessità di ritrasmettere.

La procedura si ripete finché la trama viene ricevuta correttamente.

Necessita di canale di ritorno e di messaggi di servizio (ACK, NACK).

N.B. anche i messaggi di

Anteprima
Vedrai una selezione di 10 pagine su 61
Fondamenti di Internet e Reti - appunti Pag. 1 Fondamenti di Internet e Reti - appunti Pag. 2
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 6
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 11
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 16
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 21
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 26
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 31
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 36
Anteprima di 10 pagg. su 61.
Scarica il documento per vederlo tutto.
Fondamenti di Internet e Reti - appunti Pag. 41
1 su 61
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher AndreaNocito di informazioni apprese con la frequenza delle lezioni di Fondamenti di internet e reti e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Filippini Ilario.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community