Reti degli Elaboratori, Sintesi di Reti Di Calcolatori. Università degli Studi di Roma La Sapienza
andrea_ghezzi
andrea_ghezzi
Questo è un documento Store
messo in vendita da andrea_ghezzi
e scaricabile solo a pagamento

Reti degli Elaboratori, Sintesi di Reti Di Calcolatori. Università degli Studi di Roma La Sapienza

PDF (18 MB)
79 pagine
5Numero di download
67Numero di visite
100%su 1 votiNumero di voti
Descrizione
RIassunto delle slide, fatto da me, della mia professoressa e del libro "Reti degli Elaboratori - Un approccio Top-Down". Formato in PDF ottimizzato per stampa.
3.99
Prezzo del documento
Scarica il documento
Questo documento è messo in vendita dall'utente andrea_ghezzi: potrai scaricarlo in formato digitale subito dopo averlo acquistato! Più dettagli
Anteprima3 pagine / 79
Questa è solo un'anteprima
3 pagine mostrate su 79 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 79 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 79 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 79 totali
Scarica il documento
Microsoft Word - Reti di Elaboratori.docx

1

Reti di Elaboratori – Gaia Maselli 2017-2018

LEZIONE 1: LE RETI Una rete è composta di dispositivi in grado di scambiarsi informazioni, come Sistemi Terminali (end-system) e dispositivi di Interconnessione.

• Sistemi terminali: 1) HOST: macchina degli utenti dedicata ad eseguire applicazioni

2) SERVER: un computer con elevate prestazioni in grado di eseguire programmi che forniscono servizio ad applicazioni utente (es. posta elettronica).

• Dispositivi di Interconnesione: rigenerano o modificano il segnale che ricevono e sono: Router, Modem,Switch .

I collegamenti vengono effettuati mediante mezzi trasmissivi cablati o wireless.

• LAN: di solito è una rete privata. Ogni sistema terminale nella lan ha un indirizzo univoco

che lo identifica. Non esiste un numero max o min di dispositivi che vi si possono collegare. Alla LAN ci possiamo collegare in due modi: con cavo condiviso(broadcast) o a commutazione (con switch).

Il pacchetto inviato da un dispositivo viene ricevuto da tutti gli altri, solo il destinatario lo elabora, gli altri lo scartano.

2

Quando il mittente invia il pacchetto lo switch è in grado di spedirlo direttamente al destinatario senza passare per gli altri.

• WAN: rete di utilizzo geografico. Viene gestito da un operatore di telecomunicazione detto ISP. Esistono due tipi di WAN : 1. WAN punto-punto: Collega due mezzi di comunicazione tramite cavo o wireless.

W a c c 2. WAN a commutazione (switched): Rete con più di due punti di terminazione.

Reti LAN e WAN spesso vengono utilizzate insieme. Ad esempio se un’azienda ha un ufficio a Roma ed uno a Verona ed in entrambi gli uffici c’è una LAN, per metterle in comunicazione l’azienda affitta da un ISP un’apposita WAN punto-punto, ed i router instradano i pacchetti da una LAN ad un’altra. COMMUTAZIONE(SWITCHING) I sistemi terminali comunicano tra di loro mediante switch e router che si trovano nel percorso tra sorgente e destinazione. Esistono due tipi di reti basate su switch:

• RETI A COMMUTAZIONE DI CIRCUITO: tra due dispositivi è sempre disponibile un collegamento dedicato chiamato circuito . Anche se esitono più percorsi tra due dispositivi solo uno di questi verrà utilizzato per tutta la comunicazione. Esempio: la linea tra due switch può gestire in simultanea 4 canali voce. Possiamo avere che 4 persone da un lato comunicano con 4 persone dall’altro lato (linea completamente utilizzata), oppure solo una persona da un lato comunica con na sola persona dall’altro lato ( solo ¼ della linea viene utilizzata, è sottoutilizzata).

3

• RETE A COMMUTAZIONE DI PACCHETTO: la comunicazione tra i due lati viene effettuata trasmettendo blocchi di dati chiamati pacchetti. Non esiste un percorso specifico che viene usato per il trasferimento dei pacchetti. Se viene utilizzata tra i due switch una linea di comunicazione a bassa capacità ci saranno dei tempi di attesa per i pacchetti. Internet è una rete a commutazione di pacchetto.

INTERNET un utente se vuole connettersi ad Internet deve essere fisicamente connesso ad un ISP tramite WAN punto-punto. Il collegamento che connette l’utente al primo router di Internet è detto rete di accesso. Esistono tre tipi di accessi ad Internet:

1. Tramite rete telefonica: E’ possibile collegarsi a Internet modificando la linea telefonica fra la sede del dispositivo che vuole connettersi (casa, azienda, etc.) e la centrale telefonica con una WAN punto-punto.

2. Tramite Ethernet: Lo switch (Ethernet) della LAN è generalmente collegato a un router istituzionale che è connesso ai router Internet.

3. Tramite wireless: con Wi-Fi dove abiamo un access point connesso alla ethernet cablata e Cellulare dove viene usata la rete cellulare.

4

LEZIONE 2: CAPACITA’ E PRESTAZIONI DELLE RETI La struttura di Internet è gerarchica. Al centro troviamo ISP di livello 1 (gli ISP di livello 1 sono connessi a ciascuno degli altri ISP di liv.1). Poi troviamo ISP di livello 2 che sono più piccoli e si possono connettere solo tra di loro ed ad alcuni ISP di liv.1 . Infine troviamo ISP di livello 3 e ISP locali che sono le più vicine ai sitemi terminali. Per misurare le prestazioni di una rete di usano delle metriche:

Ampiezza di Banda: è una caratteristica del canale trasmissivo, si misura in hertz e rappresenta la larghezza dell’intervallo di frequenze usato dal sistema trasmissivo. Maggiore è l’ampiezza di banda e maggiore è la quantità di dati che possono essere trasportati.

Bit Rate: è la quantità di bit al secondo che un link garantisce di trasmettere. È proporzionale alla banda in hertz

Throughput: indica quanto velocemente riusciamo ad inviare i dati tramite una rete in realtà. (nel bit rate la misurazione era potenziale). Se abbiamo una sorgente T1 ed una destinazione T2 il Throughput sarà il minimo tra i due link di accesso che collegano la sorgente e la destinazione alla dorsale Internet. Se T1 è 200Mbps e T2 è 15Mbps, il Throughput sarà 15Mbps.

Latenza (Ritardo o Delay): quanto tempo serve affinché un pacchetto che è stato spedito arrivi completamente a destinazione dal momento in cui il primo bit parte dalla sorgente. Se un pacchetto ritarda nell’arrivo ci sono 4 motivazioni:

1. Ritardo di elaborazione del nodo (processing delay), ovvero il tempo richiesto per esaminare l’intestazione del pacchetto e per determinare dove dirigerlo;

2. Ritardo di accodamento (queueing delay), una volta in coda il pacchetto attende la trasmissione sul collegamento: Abbiamo:

R = frequenza di trasmissione (in bps); L = lunghezza dei pacchetti (in bit); a = tasso medio di arrivo dei pacchetti (pkt/s); L x a / R = Intensità di traffico

3. Ritardo di trasmissione (trasmission delay): il tempo di trasmissione è il tempo necessario al router per far uscire il pacchetto, in base al tempo di attesa di arrivo. Se il primo bit del pacchetto viene trasmesso al tempo T1 ed il secondo al tempo T2, il ritardo di trasmissione è T2 – T1. Abbiamo:

R = rate del collegamento (n bps) L = lunghezza del pacchetto (in bit); Ritardo di trasmissione = L / R.

4. Ritardo di propagazione (propagation delay): tempo che impiega un bit per propagarsi da un router all’altro sul mezzo trasmissivo una volta al di fuori del router. Abbiamo:

d = lunghezza del collegamento fisico; s = velocità di propagazione del collegamento; Ritardo di propagazione = d / s.

Effettivamente cosa significa ritardi e perdite in Internet? Grazie a Traceroute(tracert) (un programma diagnostico) che fornisce una misura del ritardo dalla sorgente a tutti i router lungo il percorso Internet punto-punto verso la destinazione. I passaggi che esegue sono 3:

• invia tre pacchetti con tempo di vita incrementale (da 1 a n, massimo valore = 30) che raggiungeranno il router i (i=1,n) sul percorso verso la destinazione;

5

• il router i restituirà i pacchetti al mittente; • il mittente calcola l’intervallo tra trasmissione e risposta. L’output presenta 6 colonne:

1. Il numero di router sulla rotta; 2. Nome del router; 3. Indirizzo del router; 4. Il tempo di andata e ritorno del 1° pacchetto; 5. Il tempo di andata e ritorno del 2° pacchetto; 6. Il tempo di andata e ritorno del 3° pacchetto.

Il tempo di andata e ritorno (RTT) include i 4 ritardi visti prima.

6

LEZIONE 3: INTRODUZIONE ALLO STACK PROTOCOLLARE TCP/IP Esempio classico di comunicazione:

Due interlocutori rispettano un protocollo di conversazione(interazione): 1. Si inizia con un saluto; 2. Si adotta un linguaggio appropriato al livello di conoscenza; 3. Si tace mentre l’altro parla; 4. La conversazione si sviluppa come dialogo piuttosto che un monologo; 5. Si termina con un saluto.

Che cos’è un protocollo? Un protocollo definisce le regole che il mittente ed il destinatario devono rispettare per poter essere in grado di comunicare. In situazioni particolarmente semplici potrebbe essere sufficiente un solo protocollo, in situazioni più complesse potrebbe essere opportuno suddividere i compiti fra più livelli (layer), nel qual caso è richiesto un protocollo per ciascun livello: si parla dunque di layering di protocolli. La strutturazione dei protocolli in livelli consente di suddividere un compito complesso in compiti più semplici. Quando avviene una comunicazione bidirezionale ciascun livello deve essere capace di effettuare i due compiti opposti come ad es. crittografare e decrittografare. Il protocollo che viene implementato in ciascun livello specifica una comunicazione diretta fra i pari livelli delle due parti.

In Internet viene utilizzato il TCP/IP la quale rappresenta in un certo modo l'insieme delle regole di comunicazione su internet e si basa sulla nozione d'indirizzamento IP, cioè il fatto di fornire un indirizzo IP ad ogni terminale di rete per poter inviare dei pacchetti di dati. TCP/IP rappresenta in un certo modo l'insieme delle regole di comunicazione su internet e si basa sulla nozione d'indirizzamento IP, cioè il fatto di fornire un indirizzo IP ad ogni terminale di rete per poter inviare dei pacchetti di dati. Si tratta di una gerarchia di protocolli, cioè ciascun protocollo di livello

7

superiore è supportato dai servizi forniti dai protocolli di livello inferiore. La pila dei protocolli TCP/IP è composta da:

1. Livello FISICO: definisce il modo in cui di dati sono fisicamente convertiti in segnali digitali sui media di comunicazione (impulsi elettrici, modulazioni della luce, ecc.).

2. Livello COLLEGAMENTO: trasmette i pacchetti da un nodo a quello successivo sul percorso. 3. Livello RETE: instradamento dei segmenti dall’origine alla destinazione. 4. Livello TRASPORTO: assicura l'invio dei dati, nonché i meccanismi che permettono di

conoscere lo stato della trasmissione. 5. Livello APPLICAZIONE: è la sede delle applicazioni di rete (HTTP, SMPT, DNS, FTP).

Ogni strato passa dati ed informazioni di controllo al livello inferiore, fino a raggiungere quello più basso. Argomenti correlati alla strutturazione a livelli sono l’incapsulamento ed il decapsulamento :

• Incapsulamento: un host sorgente genera ed invia un pacchetto dal suo livello applicazione e deve raggiungere il livello applicazione dell’host di destinazione. all’inizio il pacchetto è privo di intestazione, il livello applicazione lo passa al livello applicazione che gli aggiunge l’header(intestazione) costruendo così’ un segmento che verrà passato al livello di rete che aggiunge nuovamente un header a tutto ciò che ha ricevuto costruendo così un datagramma, poi viene passato al livello collegamento che ancora aggiunge un header a tutto il pacchetto e lo immetto sul collegamento fisico. Ogni livello aggiunge una propria intestazione perché aggiunge delle informazioni per gestire quel pacchetto quel pacchetto.

Un router quando riceve un pacchetto effettua sia il decapsulamento (per decidere dove inoltrare un pacchetto, deve risalire fino al lv.3 cioè quello di rete) che l’incapsulamento Qualsiasi comunicazione che coinvolge due parti richiede due indirizzi: sorgente e destinazione. Poiché il modello prevede una comunicazione logica fra coppie di livelli, è necessario un indirizzamento ad ogni livello:

Nomi: Esempio: nome sito web o indirizzo posta elettronica; • Numeri di porta: Programmi sorgente e destinazione (processi); • Indirizzi logici: Indirizzi IP • Indirizzi di livello collegamento: Indirizzi MAC

Un’altra operazione fondamentale nella strutturazione a livelli è quella del Multiplexing e Demultiplexing.

MULTIPLEXING: usato nella sorgente, incapsula i vari pacchetti ottenuti dai vari protocolli di livello superiore.

• DEMULTIPLEXING: usato nella destinazione, decapsula e consegna i vari pacchetti ai protocolli di livello superiore.

8

Non esiste solamente il modello TCP/IP, l’ISO ha definito il modello OSI (Open System Interconnection) come modello alternativo al TCP/IP. È composto da 7 livelli, 2 in più rispetto al TCP/IP e sono il livello presentazione ed il livello sessione. L’OSI non ebbe mai successo, poiché fu pubblicato quando il modello TCP/IP era già stato ampiamente diffuso e quindi la sostituzione da TCP/IP a OSI avrebbe comportato un notevole costo. Il livello sessione e presentazione non furono mai ben specificati.

9

LEZIONE 4: LIVELLO APPLICAZIONE WEB E HTTP

Il livello applicazione fornisce dei servizi all’utente. La comunicazione avviene attraverso una connessione logica, nel senso che i livelli applicazione nei due lati della comunicazione agiscono come se esistesse un collegamento diretto attraverso il quale poter inviare e ricevere i messaggi. L’applicazione web è il WWW (World Wide Web), che opera su richiesta (nel momento in cui vogliamo visualizzare una pagina web la utilizziamo), e la base del suo funzionamento si basa sui collegamenti ipertestuali ed i motori di ricerca permettono di navigare nei vari siti. Le componenti del World Wide Web sono:

• Web client: ad es. browser che sarebbe l’interfaccia con l’utente. • Web Server: ad es. Apache dove sono memorizzare le pagine che vogliamo memorizzare • HTML: linguaggio standard per le pagine WEB • HTTP: protocollo per la comunicazione tra Web Client e Web Server.

L’architettura generale prevede un controllore che utilizza i protocolli di comunicazione per accedere ai documenti come ad es. HTTP, FTP, SSH, SMPT (…), e interagisce con degli script per visualizzare le pagine. Terminologia del WEB:

• Una pagina web è costituita da oggetti • rUn oggetto può essere un file HTML, un’immagine JPEG, un’applet Java, un file audio, … . • Una pagina web è formata da un file base HTML(HyperText Markup Language) che include

diversi oggetti referenziati. • � Ogni oggetto è referenziato da un URL (Uniform Resource Locator).

Come si chiama la pagina che vogliamo visualizzare? Dove si trova? Come possiamo accedervi? La soluzione è l’ URL (Uniform Resource Locator) il quale è composto di tre parti:

1. Il Protocollo; 2. Il nome della macchina in cui si trova la pagina; 3. Il percorso del file che indica la pagina, il nome del file e la posizione nel filesystem.

http://www.someschool.edu/someDepartment/home.index protocollo nome dell’host Percorso relativo del file La comunicazione tra Client e Server avviene tramite l’ HTTP (HyperText Transfer Protocol) che definisce in che modo i client web richiedono le pagine ai server web e come questi le trasferiscono ai client. Il Client è il browser che richiede la pagina e la visualizza, mentre il Server è colui che invia oggetti i risposta ad una data richiesta.

Risposta HTTP Risposta HTTP

10

Lato Client (Il browser web implementa l’interfaccia verso l’utente e il protocollo applicativo): 1. Il browser determina l’URL ed estrae host e filename 2. Esegue connessione TCP alla porta 80 dell’host indicato nella URL 3. Invia richiesta per il file 4. Riceve il file dal server 5. Chiude la connessione 6. Visualizza il file

Lato Server 1. Accetta una connessione TCP da un client 2. Riceve il nome del file richiesto 3. Recupera il file dal disco 4. Invia il file al client 5. Rilascia la connessione

Esistono due tipi di connessioni: Connessioni non persistenti

• Un solo oggetto viene rasmesso su una connessione TCP (un file http,un’immagine, etc.). • Ciascuna coppia richiesta/risposta viene inviata su una connessione TCP separata. • Prima di inviare una richiesta al server è necessario stabilire una connessione.

Connessioni persistenti: • Modalità di default. • Più oggetti possono essere trasmessi su una singola connessione TCP tra client e server. • La connessione viene chiusa quando rimane inattiva per un lasso di tempo (timeout)

configurabile. ESEMPI: CONNESSIONI NON PERSISTENTI: Supponiamo che l’utente inserisca l’URL : www.someSchool.edu/someDepartment/home.index che contiene testo e riferimenti a 10 immagini jpeg, quindi in totale 11 oggetti diversi.

1.1 Il client HTTP avvia una connessione TCP con il processo server HTTP a www.someSchool.edu sulla porta 80 (poiché non viene indicata altra porta) 1.2 Il server HTTP che è in attesa nell’host www.someSchool.edu è in attesa di una connessione TCP sempre nella porta 80, accetta la connesione ed avvisa il client.

Una volta stablita la conessione … 2 Il client HTTP trasmette un messaggio di richiesta nella socket della connessione TCP e nel messaggio viene indicato che il client vuole l’oggetto someDepartment/home.index (il file principale della pagina).3 Il server HTTP riceve il messaggio di richiesta, crea il messaggio di risposta il quale contiene l’oggetto richiesto ed invia il messagio nella sua socket. Una volta inviato il messaggio di risposta … 4 Il server HTTP chiude la connessione TCP. 5 Il client HTTP riceve il messaggio di risposta ed esamina il contenuto. I passi 1 – 5 sono ripetuti per ciascuno dei 10 elementi Jpeg.

11

FORMATO GENERALE DEI MESSAGGI DI RICHIESTA HTTP:

ESEMPIO RICHIESTA HTTP: GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language: fr (carriage return e line field extra) Tipi di metodi in HTTP 1.1 : GET Usato quando il client vuole scaricare un documento dal server che viene specificato

nell’URL. Il server risponde con il documento richiesto nel corpo del messaggio di risposta.

HEAD Usato quando il client non vuole il documento inteto ma solo alcune informazioni. Il server risponde con degli header informativi.

POST Il client invia al server degli input PUT Usato per memorizzare un documento nel server. Il documento è fornito nel corpo del

messaggio mentre la posizione nell’URL.

Campo lasciato vuoto per il GET; Utilizzato per il POST.

Righe di richiesta “Request line” (comandi GET, POST, HEAD)

Righe di intestazione “Header line”

Un carriage return ed un line field (cr e lf) “Blank line” indicano la fine del messaggio

12

FORMATO GENERALE DEI MESSAGGI DI RISPOSTA HTTP:

ESEMPIO RISPOSTA HTTP: HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 ... Content-Length: 6821 (in Byte) Content-Type: text/html dati dati dati dati dati ... CODICI DI RISPOSTA HTTP: CODE MEANING EXAMPLES 1XX Information 100=Il server accetta di gestire la richiesta del cliente 2XX Success 200= richiesta riuscita; 204= nessun contenuto presente 3XX Redirection 301= pagina spostata; 304= la pagina memorizzata nella cache è ancora

valida 4XX Client Error 403= pagina proibita; 404= pagina non trovata 5XX Server Error 500= errore interno al server; 503= riprova più tardi ESEMPIO DI GET:

Riga di stato “Status line” Protocollo,Codice di stato, Espressione di stato

Righe di intestazione“Header line”

Dati“Entity Body”

13

• La riga di richiesta contiene il metodo (GET), l’URL e la versione (1.1) del protocollo HTTP. L’intestazione è costituita da due righe in cui si specifica che il client accetta immagini nei formati GIF e JPEG. Il messaggio di richiesta non ha corpo.

• Il messaggio di risposta contiene la riga di stato e quattro righe di intestazione che contengono la data, il server, il metodo di codifica del contenuto (la versione MIME, argomento che verrà descritto nel paragrafo dedicato alla posta elettronica) e la lunghezza del documento.

• Il corpo del messaggio segue l’intestazione. COOKIE Essendo il protocollo HTTP un protocollo senza stato, a volte si trova la necessità, da parte del server di ricordarsi degli utenti e questo è risolto tramite i Cookie. I server inviano i cookie nella risposta HTTP e ci si aspetta che i browser salvino e inviino i cookie al server, ogni qual volta si facciano richieste aggiuntive al server. Tale riconoscimento permette di realizzare meccanismi di autenticazione, usati ad esempio per i login, di tracciare la navigazione dell'utente o ad esempio per fini statistici o pubblicitari. ESEMPIO:

• L’utente A accede sempre a Internet dallo stesso PC (non necessariamente con lo stesso IP) • Visita per la prima volta un particolare sito di commercio elettronico • Quando la richiesta HTTP iniziale giunge al sito, il sito crea un identificativo unico (ID) e una

entry nel database per ID • L’utente A invierà ogni futura richiesta inserendo l’ID nella richiesta

Un cookie è un header aggiuntivo presente in una richiesta (Cookie:) o risposta (Set-cookie:) HTTP: nel caso il server voglia assegnare un cookie all'utente, lo aggiungerà tra gli header di risposta. Il client deve notare la presenza del cookie e memorizzarlo in un'area apposita. Il cookie è composto da una stringa di testo arbitraria, una data di scadenza (oltre la quale non deve essere considerato valido) e un modello per riconoscere i domini a cui rimandarlo. CACHING Con il termine cache in informatica si indica un'area di memoria estremamente veloce ma solitamente di un basso ordine di grandezza di capacità. Il suo scopo è di velocizzare l'esecuzione dei programmi.

Richiesta HTTP Richiesta HTTP

Richiesta HTTP

Risposta HTTP

Risposta HTTP

Risposta HTTP

Server proxy

client Server d’origine

LA RICHIESTA NON VIENE ESEGUITA SE IL SERVER PROXY HA UNA COPIA DELL’OGGETTO RICHIESTO.

client

14

È una parte di hard disk dedicata da un server proxy http, oppure dal browser di un utente, a salvare le pagine man mano caricate durante la navigazione, che potranno pertanto essere riproposte senza doverle chiedere di nuovo al sistema remoto.

15

LEZIONE 5: PROTOCOLLO DNS Il problema che si affronta è quello dell’identificazione degli host. Le persone per essere identificate hanno un nome, un cognome , un codice fiscale. Allo stesso modo anche gli host devono essere identificati e vengono identificati con nomi come ad esempio “ www.uniroma1.it “ , il nome è facile da ricordare ma fornisce poche informazioni riguardo la collocazione in internet. Per risolvere questo problema si usano gli indirizzi IP (32 bit). Un indirizzo IP consiste di 4byte, è costituito da una stringa dove ogni punto separa uno dei byte espressi mediante un numero decimale compreso tra 0 e 255 . Un esempio può essere “ 121.34.230.94 “, leggendolo da destra verso sinistra otteniamo informazioni sempre più dettagliate sulla collocazione dell’host in internet. Come facciamo ad associare un host name ad un indirizzo IP? Grazie al DNS che funziona da traduttore www.uniroma1 192.87.127.32 Che cos’è il DNS ? È un database distribuito implementato in una gerarchia di server DNS. Viene usato anche dagli altri protocolli a livello applicazione (HTTP,FTP…) per tradurre host name in indirizzi IP. Non è un applicazione con cui interagiscono direttamente gli utenti. Utilizza il protocollo di trasporto end-to- end per trasferire messaggi tra gli end-system (UDP). Un esempio di interazione tra HTTP e DNS può essere: UN BROWSER (client HTTP) DI UN HOST UTENTE RICHIEDE L’URL www.someschool.edu

1. L’host esegue il lato client dell’applicazione DNS. Il client HTTP esegue una query verso il client DNS perché vuole recuperare l’indirizzo IP di www.someschool.edu

2. Il client HTTP esegue una query verso il client DNS perché vuole recuperare l’indirizzo IP di www.someschool.edu

3. Il client DNS invia una query contenente l’hostname a un server DNS. 4. Il client DNS riceve una risposta che include l’indirizzo IP corrispondente all’hostname. 5. Ottenuto l’indirizzo IP dal DNS, il browser può dare inizio alla connessione TCP verso il

server HTTP localizzato a quell’indirizzo IP. Il DNS oltre alla traduzione fornisce un servizio di aliasing , cioè permette di fornire un nome più semplice da ricordare rispetto a quello canonico. Ad esempio:

• www.uniroma1.informatica-statistica.i3s.it è un nome canonico. • www.informatica.com oppure informatica.com è un alias.

Un altro servizio offerto dal DNS è quello della distribuzione del carico. Un sito molto visitato come ad esempio quello della CNN deve gestire continuamente un flusso molto grande di accessi ad esso, per questo il DNS distribuisce questo sito su più server e presenta quindi indirizzi IP differenti. Il DNS è formato da una gerarchia di tre classi:

• DNS di tipo Root (radice) e sono 13 distribuiti in tutto il mondo (sono replicati per motivi di sicurezza ed affidabilità e quindi in totale sono 247);

• DNS di tipo Top-level domain (TLD) e si occupano dei domini com , edu, org, … , ma anche dei domini locali come it, uk, fr, … ;

• DNS di tipo Authoritative (di competenza)ogni organizzazione che ha host Internet di pubblico accesso come sapienza, amazon ecc…, devono fornire i record DNS di pubblico dominio che mappano i nomi di tali host in indirizzi IP.

Al di fuori della gerarchia ci sono DNS locali con cui interagiscono le applicazioni.

DNS

16

Server DNS Root (radice)

Server DNS com Server DNS org Server DNS edu Server DNS Server DNS Server DNS Server DNS Server DNS di yahoo.com di amazon.com di pbs.org di poly.edu di uni.edu Se un client vuole l’indirizzo IP di www.amazon.com avviene questo:

1. Il client interroga il server Root per trovare il DNS com ; 2. Il client interroga il server DNS com per ottenere il server DNS amazon.com ; 3. Il client interroga il server DNS amazon.com per ottenere il relativo indirizzo IP di

www.amazon.com . Il server DNS locale come visto prima non appartiene alla gerarchia dei server. Ciascun ISP ha un DNS locale poiché il server DNS locale opera da proxy ed inoltra la query in una gerarchia di server DNS. Esistono due tipi di query: Query Iterative e Query Ricorsive.

• Query Iterativa: Supponiamo che l’host “cis.poly.edu“ vuole l’indirizzo di “gaia.cs.umass.edu“. Nella query iterativa il sevrer che viene contattato risponde come il server da contattare cioè se non ha l’informazione risponde “io non ho l’informazione ma puoi chiederlo a questo server … “.

Esempio: L’host richiedente “cis.poly.edu” fa una richiesta ad il server DNS locale “dns.poly.edu” che non ha questa informazione e la inoltra al DNS Radice. Anche il server DNS Radice non ha queste informazioni e dice di chiedere al server DNS TLD che a sua volta anche lui non sa il mapping quindi dice di chiedere al server DNS di Competenza “dns.cs.umass.edu” il quale conosce la mappatura e la manda al DNS locale che poi la manda al client richiedente.

17

• Query Ricorsiva: Affida il compito di tradurre il nome al server DNS contattato. Esempio: l’Host richiedente fa una richiesta al DNS locale attendendo una risposta, il DNS locale contatta il DNS Radice che non sa la risposta, così contatta il DNS TLD che anch’esso non conosce la risposta e la chiede al DNS di competenza il quale la consce ed inolta all’indietro la traduzione dell’indirizzo che ritorna al DNS locale e lo fa avere all’Host richiedente.

Ogni volta che facciamo una ricerca è sempre necessario fare una nuova richiesta al DNS? No, perché si può sfruttare il caching, il DNS impara una mappatura e la mette in cache per un determinato tempo (es. 2 giorni), questo per migliorare le prestazioni e ridurre il numero di messaggi DNS che girano in Internet. Di solito il DNS memorizza nella cache gli indirizzi IP dei Server TLD ed anche quelli di competenza per ridurre il numero di accessi al DNS Root. Come avviene lo scambio di messaggi tra i vari Server DNS? Il mapping è mantenuto nei database sotto forma di Resource Record (RR). I recordo vengono spediti tra server e all’host richiedente all’interno di messaggi DNS. Il RR è formato da 4 campi, {Nome, Valore, Tipo e TTL (Time-To-Live , tempo di vita) } e ne esistono 4 tipi:

1. Type-A :contiene il mapping tra un Host Name ed il relativo indirizzo IP. • Name = nome dell’host • Value = indirizzo IP

Esempio (relay1.ba.foo.com, 45.37.93.126,A) non viene specificato il TTL. 2. Type-CNAME : contiene la mappatura tra l’alias ed il relativo nome canonico.

• Name = nome alias di qualche nome canonico • Value = nome canonico

Esempio (foo.com , relay1.ba.foo.com , CNAME)

18

3. Type-NS : contiene il mapping tra il nome dominio ed il nome del server di competenza di questo dominio.

• Name = dominio • Value = nome dell’host del server di competenza di questo dominio

Esempio: (foo.com, dns.foo.com , NS) 4. Type-MX : contiene l’associazione tra un alias ed il nome canonico di un mail server

• Name = alias di qualche nome canonico di mail server • Value = nome canonico

Esempio (foo.com , mail.bar.foo.com , MX) Il formato del messaggio di query e risposte è lo stesso.

Identificazione: un numero di 16 bit che identifica la domanda, stesso valore per identificare

la risposta, così domanda e risposta hanno la stessa identificazione e possono essere correlate tra di loro;

Flag: ci indicano se il messaggio è una domanda o una risposta , se è richiesta la ricorsione, se la ricorsione è disponibile e se la risposta è di competenza (servere competente per il nome richiesto);

Numero di … : sono il numero di occorrenze delle 4 sezioni di tipo di dato che seguono (Domande ,Risposte, Competenza, Informazioni Aggiuntive)

ESEMPIO INSERIMENTO RECORD NEL DATABASE DNS Abbiamo appena avviato una nuova società chiamata “Network MCC”. Per registrare il nome networkmcc.it bisogna rivolgersi al registrar, ci sono delle società afiliate che mantengono il mapping dei server DNS e verificano che il nome networkmcc.it non sia già stato utilizzato. Forniamo al registrar i nomi e gli indirizzi IP dei server DNS di competenza (primario e secondario). Il Registrar verifica che il nome non sia stato già utilizzato ed inserisce due RR nel server TLD it :

• (networkmcc.it, dns1.networkmcc.it, NS) • (dns1.networkmcc.it, 212.212.212.1, A) specificando in questo caso quale sia l’IP

(A , MX)

19

poi inseriremo nel server di competenza un record di tipo A per www.networkmcc.it ed un record di tipo MX per networkmcc.it . In che modo gli utenti otterranno l’indirizzo IP del nostro sito web? Quando cercheranno il nostro sito www.networkmcc.it il browser che implementail protocollo HTTP farà una richiesta al DNS locale che a sua volta interrogherà il DNS Radice che interrogherà il DNS TLD ed infine esso interrogherà il server di competenza con www.networkmcc.it e così ritornerà l’IP del name server da interrogare cioè 212.212.212.1, a questo punto si potrà interrogare direttamente questo server per ottenere l’indirizzo IP di www.networkmcc.it

20

LEZIONE 6: (RFC),PROTOCOLLI PER LA POSTA ELETTRONICA (SMTP, POP, IMAP) ED IL TRASFERIMENTO FILE (FTP) Che cosa è uno standard? Uno standard in Internet è un insieme di regole formalizzate che devono necessariamente essere eseguite. Una specifica per diventare standard segue una procedura:

1. PROPOSTA DI STANDARD: stabile, interessante ma la specifica è ancora immatura. 2. DRAFT: 2 implementazioni di successo e specifica matura. 3. STANDARD: numero di implementazioni significativo e notevole esperienza dimostrata

dagli utenti su questo standard, gli si assegna un numero progressivo nella lista degli standard (STD).

In Internet gli standard sono denominati con RFC e sono documenti pubblici. Se si vuole sviluppare un programma capace di comunicare con un altro programma, è necessario un nuovo insieme di istruzioni per chiedere ai primi quattro livelli dello stack TCP/IP di aprire la connessione, inviare/ricevere dati e chiudere la connessione. Un insieme di istruzioni di questo tipo viene chiamato API (Application Programming Interface). Come avviene la comunicazione tra processi? Grazie ai SOCKET. Comunicare tra un processo client ed un processo server significa comunicare tra due socket create nei due lati di comunicazione.

• Processo client: processo che dai inizio alla comunicazione • Processo server: processo che attende di essere contattato.

Affinché un processo su un host invii un messaggio a un processo su un altro host, il mittente deve identificare il processo destinatario. Ogni host ha un indirizzo IP univoco a 32 bit (es. 127.0.0.1). Per identificare si intende usare un identificatore che comprende indirizzo IP e numero di porta su cui si trova il processo. Come avviene la comunicazione tra Client e Server? Di solito più client possono inviare ricieste ad uno stesso server. La comunicazione è bidirezionale quindi si necessita di una coppia di indirizzi socket : locale (mittente) e remoto(destinatario).

• Socket lato client: Il client ha bisogno di un socket address locale (client) e uno remoto (server) per comunicare: ◦ locale: conosce l’indirizzo IP del computer su cui il client è in esecuzione. Il numero di

porta è temporaneo e lo assegna il SO.remoto: l’indirizzo IP è fornito dal DNS ed il nuemro di porta varia in base

all’applicazione (http porta 80).• Socket lato server: Il server ha bisogno di un socket address locale (server) e uno remoto

(client) per comunicare:

21

locale: conosce l’indirizzo IP del computer su cui il server è in esecuzione, il numero di porta è noto al server perché assegnato dal progettista.

remoto: è il socket address locale del client che is connette, visto che vengono effettuate tante connessioni al server esso non può conoscere tutti i socket address quindi li trova per ognuno nel pacchetto di richiesta.

Quali sono i servizi dei protocolli di trasporto Internet?

• Servizio TCP: è orientato alla connessione, l’tente deve stabilire la connessione, usarla e quindi rilasciarla, il trasmettitore vi spinge oggetti (bit) a una estremità e il ricevitore li prende dall’altra. È un protocollo affidabile, fa un controllo di flusso in questo modo il mittente non vuole sovraccaricare il destinatario e controlla la congestione.Per far sì che ci sia un servizio orientato alla connessione vengono usate un insieme di primitive:

Primitiva Significato LISTEN Attesa bloccante di una connessione in arrivo

CONNECT Stabilisce una connessione con un pari in attesa RECEIVE Attesa bloccante per un messaggio in arrivo

SEND Manda un messaggio al pari DISCONNECT Termina una connessione

• Servizio UDP : senza connessione, trasferimento dati inaffidabile fra i processi d’invio e di ricezione, ogni messaggio è instradato attraverso ilsistema postale in modo indipendente dagli altri. E’ possibile che due messaggi mandati alla stessa destinazione arrivino in tempi diversi.

Cosa è il File Transfer Protocol (FTP)? È un programma di trasferimento file DA/A un host remoto. Usa un modello client/server:

• Client: il lato che inizia il trasferimento. • Server: colui che riceve.

Quando l’utente fornisce il nome dell’host remoto (ftp NomeHost), il processo client FTP stabilisce una connessione TCP sulla porta 21 con il processo server FTP. Stabilita la connessione, il client fornisce nome utente e password che vengono inviate sulla connessione TCP come parte dei comandi. Ottenuta l’autorizzazione del server il client può inviare uno o più file memorizzati nel file system locale verso quello remoto (o viceversa) . Ci sono due connessioni:

di controllo: si occupa delle informazioni di controllo del trasferimento. Lavora sulla porta 21. l’apertura della connessione di controllo la richiede il client con il comando ftp NomeHost così tutti i comandi che eseguirà verranno trasferiti sulla connessione di controllo. La connessione rimane attiva durante tutta l’intera sessione FTP

dati: si occupa del trasferimento del file. Quando il server riceve un comando di trasferiemnto file ( get , put) apre una connessione dati TCP sulla porta 20 con il client. A fine trasferimento il server chiude la connessione. Si crea una nuova connessione per ogni file trasferito all’interno della sessione.

22

I principali comandi FTP sono:

Esempi di risposte FTP: sono composte da due parti, un numero di 3 cifre(il codice della risposta) ed un testo (contiene i parametri necessari).

La tabella contiene i codici NON il testo.

Lo scambio dei dati avviene mediante 3 passaggi:

1. il client effettua un’apertura passiva su una porta momentanea 2. sempre il client invia il numero di porta al server con il comando port 3. il server ricevuto il numero di porta effettua un’apertura attiva sulla porta momentanea

segnalata dal client.

23

Come avviene lo scambio di messaggi con la posta elettronica? Lo scenario classico per la posta elettronica prevede un mittente ed un destinatario e due programmi, lo user-agent, per mittente e destinatario che permettono di scrivere e leggere il messaggio. Nel trasferimento da user-agent del mitt e user-agent del dest sono coinvolti tre componenti: • 2 MAIL SERVER: forniscono il servizio di posta elettronica a mittente e destinatario. • MESSAGE TRANSFER AGENT (MTA): usato per trasferire il messaggio attraverso internet. • MESSAGE ACCESS AGENT (MAA): legge la mail in arrivo. Cos’è lo user agent? Lo user-agent detto anche “mail reader” si occupa della composizione, editing e lettura dei messaggi di posta elettronica. User-agent sono ad esempio outlook, thunderbird ecc… . Il messaggio da inviare viene passato al MTA. Ma come comunicano i due MTA? Per comunicare fanno uso di un protocollo di comunicazione, il SMTP (Simple Mail Transfer Protocol) che viene anche utilizzato dallo user-agent per mettersi in comunicazione con il server. Il SMTP fa uso del protocollo TCP per effettuare il trasferiemnto in modo affidabile dei messaggi dal client al server (sulla porta 25). Il trasferimento è diretto ed avvengono 3 fasi: 1. Handshaking(è il processo attraverso il quale due calcolatori, tramite software o hardware, stabiliscono le regole comuni, ovvero la velocità, i protocolli di compressione, di criptazione, ecc...) 2. Trasferimento di messaggi 3. Chiusura Esempio : A invia un messaggio a B.

1. Alice usa il suo user-agent per comporre il messaggio da inviare ad “B@someschool.it”. 2. L’user-agent di A invia il messaggio sul server di posta di A, viene messo in coda. 3. Il lato client SMTP apre una connessione TCP con il server di posta di B. 4. Il client SMTP invia il messaggio di A sulla connessione TCP. 5. Il server di posta di B riceve il messaggio e lo mette nella casella di posta di B. 6. B invoca il suo user-agent per leggere il messaggio.

Per effettuare questa connessione vengono usati questi protocolli:

A livello protocollo lo scambio di messaggi avviene tra client SMTP (che gira sull’host server di posta in invio) che fa stabilire una connessione sulla porta 25 verso il server SMTP (che gira sull’host server di posta in ricezione). Se il server è inattivo riprova più tardi, altrimenti viene stabilita la connessione. Il client invia il messaggio. Il messaggio grazie al TCP arriva al server destinatario. Se esistono altri messaggi si usa sempre la stessa connessione altrimenti il client invia una richiesta di chiusura. Il formato dei messaggi è abbastanza semplice:

Intestazione

Corpo

24

Per poter inviare un messaggio che non sia in codice ascii, quindi se dobbiamo inviare una immagine come facciamo? Dobbiamo convertire i dati, in questo caso lo user-agent deve usare un protocollo che converte da ascii ad ascii a 7-bit. Questo protocollo si chiama MIME .

Per inviare contenuti diversi dal testo ASCII si usano intestazioni aggiuntive.

Protocollo di accesso.

Per il terzo passaggio, il protocollo SMTP non può essere utilizzato dal client destinatario perché è un protocollo push, mentre il destinatario deve utilizzare un protocollo di pop (deve prelevare un messaggio e non spedirlo). Questi protocolli sono:

• POP3 : permette al client ricevente della posta di aprire una connessione TCP verso il server sulla porta 110. una volta stabilita la connessione si procede in tre fasi: 1. Autorizazione: lo user-agent invia nome utente e password per essere identificato 2. Transazione: lo user agent recupera i messaggi 3. Aggiornamento: dopo che il client ha inviato il QUIT la connessione si conclude.

Esistono due modalità “scarica e cancella” dove una volta cambiato client non si possono rileggere le mail. Modalità “scarica e mantieni” mantiene i messaggi sul server dopo averli scaricati.

• IMAP: mantiene tutti i messaggi in un nico posto cioè il server. Permette all’utente di organizzare i messaggi in cartelle. I server IMAP conservano informazioni di stato sull’utente da una sessione all’altra.

• HTTP (Gmail, yahoo, ecc…): alcuni mail server forniscono accesso alla mail tramite il web. Lo user-agent in questo caso è il web browser. l’utente comunica con il suo mail box mediante protocollo HTTP. Il protocollo di comunicazione rimane sempre l’ SMTP.

25

LEZIONE 7: PARADIGMA P2P (PEER TO PEER) Supponiamo di voler creare una nuova applicazione di rete, allora è necessario avere un piano architetturale:

1. Che tipo di architettura utilizzare (Client-Server , Peer-To-Peer)? 2. Come comunicano i processi dell’applicazione? 3. Che tipo di servizi (di rete) richiede l’applicazione( affidabilità, banda)?

Per quanto riguarda l’architettura verrà utilizzato un paradigma in base al tipo di necessità, ad esempio il paradigma Client-Server la comunicazione a livello applicazione avviene tra due programmi applicativi in esecuzione chiamati processi : un client(inizia la comunicazione) ed un server(attende la richiesta del client). Questo paradigma ha dei grandi svantaggi come ad esempio il grosso carico di comunicazione che risulta concentrato tutto sul server quindi bisogna creare dei server farm (virtuali) per gestire questo carico e poi anche i costi di gestione per il servizio sono molto alti. Il paradigma Peer-To-Peer (P2P) prevede che le entità che comunicano tra di loro nell’applicazione sono entità alla pari , ad esempio 2 laptop all’interno della stessa rete LAN, 2 laptop all’interno di 2 reti LAN differenti e vicine, 2 laptop all’interno di 2 reti LAN differenti e lontane. Questo paradigma è vantaggioso poiché il carico di comunicazione è distribuito, infrastrutture non costose , scalabile (capacità di un sistema di "crescere" o diminuire in funzione delle necessità e delle disponibilità) mentre risulta svantaggioso poiché in esso è difficile gestire la sicurezza e non tutte le applicazioni come il Web non si prestano a questo paradigma. Tutti possiamo diventare dei peer formando una rete e condividendo delle risorse, come un file, e renderle disponibili, chi è interessato può connettersi al computer dove è situato il file e prelevarlo e poi a sua volta se vuole ri-condividerlo, in questo modo vengono create varie copie della risorsa condivisa. In questo modo però è sorto un problema , cioè quello delle copie disponibili in rete. Questo problema è risolto in due modi, tramite:

reti centralizzate: il sistema delle directory (elenco dei peer e delle risorse condivise) usa il paradigma Client-Server, mentre la memorizzazione ed il dowload avviene tramite paradigma P2P. Come funziona? Un peer ,che vuole condividere, si registra sul server centrale al quale fornisce il proprio indirizzo IP e l’elenco dei file che vuole condividere. Un altro peer che invece è alla ricerca di un determinato file, invia la richiesta al server, il quale risponde con l’indirizzo IP dei varii nodi che hanno la copia dei file. Infine il peer “ricercatore” contatta uno o più nodi ed al primo che risponde preleva il file. Nel frattempo le directory vengono smepre aggiornate.

reti decentralizzate: non esistono punti di centralizzazione ed i peer si organizzano formando una overlay network (una rete logica che si trova sopra la rete fisica usata per la gestione dei peer) ed in base a come sono collegati i nodi della overlay la rete P2P si può classifiacare in due modi: ◦ Strutturata (Bit Torrent): i nodi vengono organizzati seguendo un ordine preciso per

migliorare l’efficienza, non si ha semplicemente un peer che permette ad un altro di peer di prelevare un intero file, ma bensì la condivisione dei file avviene tramite torrent , dove ogni peer che vi partecipa (se ne tiene traccia di chi partecipa con il tracker) preleva parti del file, dette chunk(pezzo) da 256 Kb, da un altro peer e nel frattempo condivide i propri chunk ad altri peer che ancora non ce l’hanno.

Non strutturata: i nodi sono collegati in modo casuale e questo comporta ad una ricerca poco efficiente poiché l’interrogazione deve essere estesa a tutta la rete

commenti (0)
non sono stati rilasciati commenti
scrivi tu il primo!
Questa è solo un'anteprima
3 pagine mostrate su 79 totali
Scarica il documento