Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Internet Una rete di reti
2
Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici digitali, automobili, …) La connessione è fatta attraverso una rete di collegamenti e commutatori di pacchetto I collegamenti avvengono attraverso mezzi fisici (cavi coassiali, fili di rame, fibre ottiche e onde elettromagnetiche) La velocità di trasmissione è misurata in bit/secondo (bps) Vengono trasmessi pacchetti
3
Quadro generale I commutatori di pacchetto ricevono pacchetti e li ritrasmettono instradandoli verso la destinazione Due tipi di commutatori di pacchetto: Router Commutatori a livello di collegamento I router vengono usati nel nucleo della rete I commutatori a livello di collegamento sono usati nelle reti di accesso Dall’invio alla ricezione un pacchetto segue un percorso: path
4
Quadro generale I sistemi periferici accedono ad internet tramite gli ISP (Internet Service provider: aziende, compagnie telefoniche,università,…) I provider sono organizzati in modo gerarchico (livello basso, livello nazionale, livello internazionale)
5
Quadro generale Tutte le parti in gioco nella comunicazione rispettano dei protocolli TCP e IP sono i due protocolli principali di internet e vengono indicati collettivamente con TCP/IP Gli standard di Internet vengono sviluppati dall’Internet Engineering Task Force IETF Gli standard sono documentati e i documenti vengono detti RFC (Request For Comment) La parola ‘comment’ ha una derivazione antecedente ad internet
6
Quadro generale Internet può essere vista come un’infrastruttura che fornisce servizi alle applicazioni Applicazioni tipiche: posta elettronica, navigazione web, telefonia (VoIP), streaming video, condivisione di file peer-to-peer (P2P), … Queste applicazioni sono dette distribuite Le applicazioni sono eseguite sui sistemi periferici
7
Quadro generale PROTOCOLLO
Definisce il formato e l’ordine dei messaggi scambiati tra due o più entità in comunicazione, cosi come le azioni intraprese in fase di trasmissione e/o ricezione di un messaggio o di un altro evento
8
Quadro generale I sistemi periferici vengono anche chiamati host
Gli host sono di due categorie: client e server I client richiedono servizi ai server
9
Quadro generale Da una qualunque rete (domestica, residenziale, mobile) si accede all’esterno attraverso un edge router I due accessi più diffusi sono: DSL e via cavo Le linee telefoniche trasportano dati e segnali telefonici in tre bande distinte in modo da condividere lo stesso collegamento DSL: Downstream (verso l’abitazione ad alta velocità tra 50KHZ e 1 MHZ) Upstream (verso DSLAM media velocità tra 4 e 50 KHZ) Canale telefonico a due vie (tra 0 e 4 kHz) Il DSLAM è un collettore che ha anche la funzione di separare dati e telefonia
10
Quadro generale La DSL utilizza l’infrastruttura esistente della compagnia telefonica L’accesso a internet VIA CAVO utilizza quelle della televisione via cavo Esistono inoltre l’accesso Ethernet e WiFi che avviene nel raggio di pochi metri l’accesso 3G e LTE in un raggio di decine di chilometri dalla stazione base
11
Quadro generale Le applicazioni distribuite scambiano tra loro messaggi Ogni messaggio viene suddiviso in pacchetti I pacchetti viaggiano attraverso commutatori di pacchetto (router e commutatore a livello di collegamento) che connette più collegamenti Ogni commutatore di pacchetto, dopo aver ricevuto l’intero pacchetto inizia a trasferirlo in uscita Per un pacchetto di L bit trasmesso su un canale con velocità di R bps, il tempo di trasmissione è L/R secondi I router necessitano di memorizzare l’intero pacchetto prima di inviarlo (ritardo di trasmissione)
12
Quadro generale Ogni pacchetto in arrivo al commutatore di pacchetto attende in coda di output per il suo turno (ritardo di accodamento) La coda ha dimensione finita e come conseguenza si ha perdita di pacchetti
13
Quadro generale Ciascun router ha una tabella di inoltro che utilizza per stabilire su quale collegamento instradare il pacchetto Più avanti vedremo come vengono impostate le tabelle di inoltro attraverso i protocolli di instradamento
14
Quadro generale Nella commutazione di circuito le risorse sono allocate per tutto il tempo della comunicazione (per esempio la telefonata) Internet usa la commutazione di pacchetto Molte reti telefoniche stanno migrando verso la commutazione di pacchetto, utilizzata in particolare per le comunicazioni internazionali
15
Quadro generale I sistemi periferici si collegano ad internet tramite un ISP di accesso La connettività avviene attraverso DSL, cavo, wifi, cellulare, … ISP, oltre che una compagnia di telecomunicazione o televisione, può essere un’azienda o università o altro Gli ISP si connettono tra loro creando una rete di reti Gli ISP di accesso si connettono agli ISP regionali che a loro volta si connettono all’ ISP di primo livello (ne esistono una dozzina) Gli ISP si distinguono per la copertura geografica
16
VIAGGIO DEI PACCHETTI Un pacchetto parte da un host ed attraversa una serie di router prima di giungere a destinazione (host destinazione) Ad ogni tappa subisce ritardi di: Elaborazione Accodamento Trasmissione Propagazione La somma dei ritardi è detta ritardo totale di nodo
17
VIAGGIO DEI PACCHETTI Ritardo di elaborazione (microsecondi o meno)
Il router esamina il pacchetto per determinare dove dirigerlo Ritardo di accodamento (microsecondi o millisecondi) Attende in coda la trasmissione sul collegamento Ritardo di trasmissione (microsecondi o millisecondi) Come abbiamo visto è L/R
18
VIAGGIO DEI PACCHETTI Ritardo di propagazione (millisecondi)
Tempo impiegato dal pacchetto per giungere dal router A al router B Dipende dal mezzo fisico e dalla distanza tra i due router ed è dato da d/v, dove d è la distanza tra i router e v la velocità di propagazione nel collegamento La velocità di trasmissione dipende dalla lunghezza del pacchetto (oltre che dalla velocità di trasmissione del collegamento), mentre quella di propagazione dipende dalla distanza tra i router (oltre che dalla velocità di propagazione del collegamento)
19
VIAGGIO DEI PACCHETTI A differenza degli altri ritardi, il ritardo di accodamento può variare da pacchetto a pacchetto Se a è la velocità di arrivo dei pacchetti ed L la lunghezza dei pacchetti, L x a è la velocità di arrivo dei bit in coda. Se R è la velocità di trasmissione, L x a / R è detta intensità di traffico. E’ auspicabile che tale rapporto sia inferiore ad 1. Si ha perdita di pacchetti quando l’intensità di traffico si approssima ad 1
20
VIAGGIO DEI PACCHETTI Throughput istantaneo: velocità alla quale B riceve il file inoltrato da A Throughput medio è dato da F/T bps dovee F è la lunghezza del file da ricevere e T il tempo necessario affinché B riceva tutti i bit inviati. Se su una rete vi sono solo A mittente e B ricevente, il throughput è dato dal minimo delle velocità di trasmissione dei vari collegamenti attraversati (collo di bottiglia) Se uno dei collegamenti, ad esempio quello a più alta velocità è condiviso tra più operazioni, potrebbe diventare il più lento e costituire esso il collo di bottiglia Quindi il throughput dipende dalla velocità di trasmissione dei collegamenti e dal traffico della rete
21
Livelli dei protocolli
Pila di protocolli di internet consiste di 5 livelli ed assume come modello la pila OSI: APPLICAZIONE (corrispondente ad applicazione, sessione e presentazione nel modello OSI) TRASPORTO RETE COLLEGAMENTO FISICO
22
Livelli dei protocolli
Applicazione – fornisce messaggi HTTP, SMTP, FTP, DNS, … Trasporto – fornisce segmenti + indirizzo TCP, UDP Rete – fornisce instradamento datagrammi IP e protocolli di instradamento Collegamento – effettua trasporto al nodo successivo (frame) Ethernet, PPP, … Fisico – sposta singoli bit del frame Protocolli dipendenti dal mezzo fisico
23
Livelli dei protocolli
Ogni livello trasmette al livello successivo nella pila Il mittente trasmette un messaggio a partire dal livello ‘applicazione’ fin giù verso il livello ‘fisico’ Il destinatario riceve i pacchetti sul ‘fisico’ . Questi vengono spostati via via verso il livello superiore fino al livello ‘applicazione’
24
Livello APPLICAZIONE La maggior parte delle applicazioni consiste di coppie di processi che si scambiano messaggi attraverso la rete La SOCKET è un’interfaccia attraverso cui il livello applicazione riceve e trasmette messaggi da e verso il suo livello successivo: livello di trasporto Il processo ricevente è identificato da: IP e socket L’interfaccia socket è anche detta ‘PORTA’
25
Livello APPLICAZIONE Esempi di applicazioni
WEB – HTTP TRASFERIMENTO FILE – FTP POSTA ELETTRONICA – SMTP SERVIZIO DI DIRECTORY – DNS
26
Livello APPLICAZIONE utilizzo protocolli del livello di trasporto
Nella progettazione di un’applicazione si dovrà scegliere tra i protocolli di trasporto forniti da Internet: TCP UDP
27
Livello APPLICAZIONE utilizzo protocolli del livello di trasporto
TCP Servizio orientato alla connessione-effettua handshaking prima di iniziare la comunicazione e la chiude la connessione dopo l’invio Servizio di trasferimento affidabile-trasporta i dati senza errori e nel giusto ordine Effettua controlli di congestione effettuando strozzature negli invii (client e server) I progettisti di applicazioni web scelgono TCP
28
Livello APPLICAZIONE utilizzo protocolli del livello di trasporto
UDP Senza connessione-non effettua handshaking Trasferimento dati non affidabile-non garantisce l’arrivo del messaggio e non garantisce l’ordine Non effettua controlli di congestione I progettisti di applicazioni di telefonia come Skype scelgono UDP
29
Livello APPLICAZIONE HTTP
E’ il principale protocollo a livello di applicazione Definisce le regole di colloquio tra client e server E’ implementato in due programmi: client e server Un browser web implementa il lato client di HTTP Un web server implementa il lato server di HTTP HTTP utilizza TCP anziché UDP Quando il client ha mandato un messaggio alla sua interfaccia socket, questo è gestito dall’altro protocollo HTTP è un protocollo senza memoria di stato (stateless protocol)
30
Livello APPLICAZIONE HTTP
Il modello è un client che invia una richiesta al server ed il server che risponde Ciascuna coppia richiesta/risposta può avvenire su Connessioni TCP distinte - connessione NON persistente Unica connessione TCP – connessione persistente HTTP usa di default la connessione persistente ma può usarle entrambi RTT (round-trip-time) è il tempo impiegato da un piccolo pacchetto per viaggiare dal client al server e tornare indietro
31
Livello APPLICAZIONE HTTP: formato del messaggio RICHIESTA
Riga di richiesta: metodo, campo URL, campo versione HTTP Righe di intestazione Metodi principali: GET – POST Nel metodo GET, l’URL contiene i dati trasmessi Nel metodo POST i dati sono presenti nel ‘body’ del messaggioche è vuoto nel caso di GET Il campo URL contiene l’oggetto richiesto Nelle righe di intestazione viene tra l’altro indicato: L’host in cui risiede l’oggetto richiesto Il tipo di connessione richiesto (persistente o non persistente) Il tipo di browser
32
Livello APPLICAZIONE HTTP: formato del messaggio RISPOSTA
Riga di stato: versione protocollo, codice di stato, messaggio di stato Righe di intestazione: tipo di connessione, data, data ultima modifica, lunghezza del contenuto, tipo del contenuto Corpo Esempio di riga di stato: HTTP/ OK
33
Livello APPLICAZIONE HTTP: cookie
I server HTTP sono privi di stato Per ovviare a ciò, HTTP adotta i cookie Al primo collegamento, il sito crea un identificativo nel proprio database e risponde inviando l’identificativo Il browser riceve la risposta e registra il cookie nel client Ad ogni richiesta, il browser invia l’identificativo al server
34
Livello APPLICAZIONE HTTP: proxy server
Per ottimizzazione, le richieste HTTP possono essere dirette verso un proxy server che contiene gli oggetti precedentemente richiesti Ad ogni richiesta il proxy server confronta la data dell’oggetto richiesto con quella del corrispondente oggetto sul server A seconda della data inoltra la richiesta al server o restituisce l’oggetto al client Generalmente un proxy server è installato ed acquistato da un ISP
35
Livello APPLICAZIONE HTTP: prova su PC
telnet /index.php 80 GET /index.php HTTP/1.1 Host: Connection: close
36
Livello APPLICAZIONE FTP
Usato per trasferire file tra host locale ed host remoto L’host locale fornisce il nome dell’host remoto per ottenere una connessione e poi utente e password sulla connessione FTP utilizza due connessioni Connessione di controllo per informazioni di controllo come utente e password e informazioni relative alle cartelle Connessione dati per l’invio dei file La connessione di controllo avviene sulla porta 21 La connessione dati avviene sulla porta 20 Ad ogni invio di file, viene aperta una nuova connessione dati (non persistente) e rimane la stessa connessione di controllo per tutta la durata della sessione (persistente) Mantenere lo stato dell’utente e della sessione limita di molto il numero totale di sessioni
37
Livello APPLICAZIONE FTP ed HTTP
HTTP e FTP sono entrambi protocolli di trasferimento file Entrambi fanno uso di TCP A differenza di FTP, nell’HTTP non ci sono informazioni di stato da mantenere
38
Livello APPLICAZIONE FTP: comandi
I comandi inviati e le risposte usano la connessione di controllo e sono inviati in formato ascii a 7 bit Esempi di comandi: USER username PASS password Esempi di risposte: 331 Username OK, password required 125 Data connection already open
39
Livello APPLICAZIONE FTP: esempio
Si possono verificare facilmente su un server di test come ftptest.net con cui si crea una connessione con: telnet ftptest.net 21
40
Livello APPLICAZIONE Posta elettronica: SMTP
Vi sono tre componenti: User agent (per esempio Microsoft Outlook) per inoltrare e leggere messaggi Server di posta che contiene le caselle di posta Protocollo SMTP SMTP trasferisce i messaggi dal mail server del mittente a quello del destinatario SMTP fa uso del servizio di trasferimento dati affidabile TCP SMTP presenta un lato client in esecuzione sul mail server del mittente ed un lato server presente sul mail server del destinatario Client e server sono interscambiabili a seconda di chi dei due trasmette
41
Livello APPLICAZIONE Posta elettronica: SMTP
SMTP fa uso di connessioni persistenti: se il mail server di invio ha molti messaggi da inviare allo stesso mail server in ricezione, può mandarli tutti sulla stessa connessione TCP telnet serverName 25 o 465
42
Livello APPLICAZIONE Posta elettronica: SMTP e POP3
SMTP è usato per trasferire la posta dal server del mittente a quello del destinatario ed anche per trasferire la posta dal server agent del mittente al server di posta del mittente Dal server del destinatario al suo user agent è usato un altro protocollo: POP3 E’ un protocollo di accesso alla posta. Entra in funzione quando lo user agent (il client) apre una connessione TCP verso il mail server (il server) sulla porta 110. A connessione stabilita il POP3 procede in 3 fasi: Autorizzazione Transazione Aggiornamento
43
Livello APPLICAZIONE Posta elettronica: SMTP e POP3
SMTP è usato per trasferire la posta dal server del mittente a quello del destinatario ed anche per trasferire la posta dal server agent del mittente al server di posta del mittente Dal server del destinatario al suo user agent è usato un altro protocollo: POP3 E’ un protocollo di accesso alla posta. Entra in funzione quando lo user agent (il client) apre una connessione TCP verso il mail server (il server) sulla porta 110. A connessione stabilita il POP3 procede in 3 fasi: Autorizzazione Transazione Aggiornamento
44
Livello APPLICAZIONE Posta elettronica: SMTP e IMAP
In alternativa al POP3 esiste l’IMAP con le stesse peculiarità ed in più la capacità di gestire cartelle sul server
45
Livello APPLICAZIONE Posta elettronica: SMTP e posta web
Sostituisce POP3 ed IMAP con HTTP quando gli user agent sono browser
46
Livello APPLICAZIONE SMTP e HTTP
Entrambi i protocolli trasferiscono file da un host ad un altro Sia HTTP persistente che SMTP utilizzano connessioni persistenti HTTP è un protocollo pull, mentre SMTP è un protocollo push HTTP incapsula ogni oggetto in un separato messaggio: se vi sono N immagini in una pagina, crea N+1 messaggi. SMTP pone tutti gli oggetti in un unico messaggio. Il formato tipico di un messaggio costituito da un’intestazione: From: To: Subject: abcdefghijkl seguita da una riga vuota e poi dal testo del messaggio
47
Livello APPLICAZIONE DNS
Ciascun host all’interno di internet è identificato attraverso un indirizzo detto IP e composto di 4 byte (ciascuno varia da 0 a 255) Quindi esistono due modi per identificare gli host: il nome e l’indirizzo IP DNS è un database distribuito implementato in una gerarchia di DNS server ed un protocollo a livello di applicazione che consente agli host di interrogare il database Il protocollo DNS utilizza UDP e la porta 53 DNS viene utilizzato da altri protocolli a livello di applicazione: HTTP,SMTP, FTP per tradurre i nomi degli host in indirizzi IP Ciò avviene nel modo che illustreremo:
48
Livello APPLICAZIONE DNS
Il browser estrae il nome dell’host dall’URL e lo passa al lato client dell’applicazione DNS Il client DNS invia un’interrogazione contenente l’hostname ad un DNS server Il client DNS riceve la risposta A questo punto il browser può dare inizio ad una connessione TCP verso il processo server HTTP collegato alla porta 80 di quell’indirizzo IP Il DNS può avere a fronte di un hostname una famiglia di indirizzi IP. Questo è il caso di server replicati. Il DNS fornirà l’insieme degli indirizzi sempre in ordine diverso per consentire un utilizzo più equilibrato dei server.
49
Livello APPLICAZIONE DNS
Il browser estrae il nome dell’host dall’URL e lo passa al lato client dell’applicazione DNS Il client DNS invia un’interrogazione contenente l’hostname ad un DNS server Il client DNS riceve la risposta A questo punto il browser può dare inizio ad una connessione TCP verso il processo server HTTP collegato alla porta 80 di quell’indirizzo IP Il DNS può avere a fronte di un hostname una famiglia di indirizzi IP. Questo è il caso di server replicati. Il DNS fornirà l’insieme degli indirizzi sempre in ordine diverso per consentire un utilizzo più equilibrato dei server. Anche il DNS gestisce il caching
50
Livello APPLICAZIONE P2P
Lo scenario è quello di coppi di host connessi in modo intermittente, chiamati peer, che comunicano direttamente l’uno con l’altro. I peer sono computer fissi e portatili di utenti privati In una Client/Server, il server dovrebbe provvedere ad uploadare il file su ciascun client. In una P2P (di cui BitTorrent è un esempio), ciascun peer può redistribuire agli altri qualsiasi porzione del file abbia ricevuto aiutando cosi il server
51
Livello TRASPORTO INTRODUZIONE
Un protocollo a livello di trasporto mette a disposizione una comunicazione logica tra processi applicativi di host differenti I protocolli a livello di trasporto sono implementati nei sistemi periferici, ma non nei router della rete. Lato mittente il livello di trasporto converte i messaggi che riceve da un processo applicativo in pacchetti a livello di trasporto Il livello di trasporto passa il segmento al livello di rete dove viene incapsulato all’interno di un pacchetto a livello di rete (datagramma). I router leggono solo i campi del datagramma e non quelli applicativi Il livello di rete del ricevente estrae il segmento dal datagramma e lo passa al livello di trasporto che a sua volta ne estrae il messaggio passandolo al livello applicativo
52
Livello TRASPORTO Overview
Il livello di trasporto mette a disposizione due protocolli: UDP che fornisce un servizio non affidabile e non orientato alla connessione TCP che offre un servizio affidabile ed orientato alla connessione Un’applicazione sceglie uno di questi due protocolli Il protocollo a livello di rete è IP e fornisce comunicazione logica tra host Entrambi i protocolli hanno le seguenti due funzionalità: Consegna dati da processo a processo Controllo degli errori In particolare le due funzioni di sopra sono le uniche fornite da UDP, invece TCP ne fornisce molte altre che esamineremo in seguito
53
Livello TRASPORTO Multiplexing e Demultiplexing
E’ la funzione «Consegna dati da processo a processo» Se ad esempio sul nostro computer abbiamo una sessione FTP, due sessioni Telnet e stiamo scaricando pagine web, avremo 4 processi applicativi in esecuzione: 2 Telnet, 1 FTP ed 1 HTTP. Quando la nostra macchina riceve dati dal livello di rete sottostante deve indirizzare i dati ricevuti ad uno di questi processi Un processo può gestire una o più socket, attraverso le quali i dati passano per raggiungere il processo Quindi il livello di trasporto non trasferisce i dati direttamente ad un processo ma ad una socket Una socket ha un identificatore univoco che ha un formato differente a seconda del protocollo di trasporto utilizzato (TCP o UDP)
54
Livello TRASPORTO >> Multiplexing e Demultiplexing
Demultiplexing: trasportare i dati dei segmenti/pacchetti verso la giusta socket Multiplexing: processo inverso, prende i dati provenienti dalle socket e li inserisce in pacchetti con intestazione per passarli al livello di rete
55
Livello TRASPORTO Multiplexing e Demultiplexing UDP
All’interno di un pacchetto a livello di trasporto viaggiano, tra le altre, le informazioni sulla porta origine, ip origine, porta destinazione e ip destinazione Il lato client dell’applicazione consente al livello di trasporto l’assegnazione automatica del numero di porta Il lato server dell’applicazione assegna un numero di porta specifico Una socket UDP viene identificata dalla coppia: indirizzo IP, numero porta di destinazione Quindi in UDP due pacchetti provenienti da diversi client ma diretti verso lo stesso processo verranno presi in carico dalla stessa socket L’indirizzo IP di origine ed il numero di porta di origine servono come indirizzo di ritorno
56
Livello TRASPORTO Multiplexing e Demultiplexing TCP
All’interno di un pacchetto a livello di trasporto viaggiano, tra le altre, le informazioni sulla porta origine, ip origine, porta destinazione e ip destinazione Il lato client dell’applicazione consente al livello di trasporto l’assegnazione automatica del numero di porta Il lato server dell’applicazione assegna un numero di porta specifico Una socket TCP viene identificata da 4 parametri: indirizzo IP di origine, numero porta di origine, indirizzo IP di destinazione, numero porta di destinazione Quindi in TCP due pacchetti provenienti da diversi client ma diretti verso lo stesso processo verranno presi in carico socket differenti L’indirizzo IP di origine ed il numero di porta di origine servono come indirizzo di ritorno
57
Livello TRASPORTO WEB server e TCP
Sia i segmenti per stabilire la connessione iniziale, sia quelli che trasportano messaggi di richiesta HTTP hanno la porta destinazione 80 In generale un web server genera un nuovo processo per ogni connessione e ciascuno di questi processi ha una propria socket attraverso la quale giungono richieste e sono inviate risposte HTTP Se client e server usano HTTP persistente, allora scambiano messaggi HTTP attraverso la stessa socket per tutta la durata della connessione Se client e server usano HTTP non persistente allora viene creata e chiusa una nuova connessione TCP per ciascuna coppia richiesta/risposta, e da quel momento viene creata e chiusa una nuova socket per ogni richiesta/risposta
58
Livello TRASPORTO UDP UDP è un protocollo di trasporto con le seguenti funzionalità: Consegna dati da processo a processo Controllo degli errori In pratica questo protocollo prende i messaggi dal processo applicativo, aggiunge il numero di porta di origine e di destinazione per il multiplexing / demultiplexing e passa il segmento risultante al livello di rete (IP) UDP utilizza il numero di porta di destinazione per consegnare il pacchetto al processo applicativo UDP non è orientato alla connessione
59
Livello TRASPORTO UDP: struttura dei pacchetti
L’intestazione UDP presenta solo 4 campi di 2 byte ciascuno: Lunghezza: indica il numero di byte del pacchetto Checksum Numero di porta di origine Numero di porta di destinazione CHECKSUM Viene utilizzato per verificare che i bit del segmento siano rimasti inalterati durante il trasporto Lato mittente UDP effettua il complemento a 1 della somma di tutte le parole da 16 bit nel segmento e l’eventuale riporto viene sommato al primo bit. Tale risultato viene posto nel campo checksum del pacchetto
60
Livello TRASPORTO UDP: esempio per checksum
Supponiamo di avere le seguenti tre parole di 16 bit: La somma delle prime due è: A cui sommo la terza ed ottengo Sommo il riporto al primo bit ed ottengo Calcolo il complemento a 1 In ricezione si sommano le tre parole iniziali ed il checksum. Se non ci sono errori il risultato della somma dovrebbe essere
61
Livello TRASPORTO UDP Sebbene UDP metta a disposizione tale controllo, non fa niente per risolvere la situazione di errore. Alcune implementazione di UDP scartano il segmento, altre lo trasmettono all’applicazione con un avvertimento di errore
62
Livello TRASPORTO TCP: inizio
Viene detto ‘ORIENTATO ALLA CONNESSIONE’ -> handshake Handshake a tre vie: il client invia un pacchetto TCP-il server risponde con un secondo pacchetto-il client risponde con un terzo pacchetto Lo stato della connessione risiede nei due sistemi periferici -> i router sono ignari La connessione TCP è full-duplex -> può esserci passaggio contemporaneo di dati nei due versi sulla stessa connessione La connessione TCP è punto-punto -> tra singolo mittente e singolo destinatario -> non è possibile il multicast (da un mittente a molti destinatari)
63
Livello TRASPORTO TCP: invio dei dati
Dopo aver instaurato la connessione, i due processi C/S possono scambiarsi dati (pacchetti) Il client manda dati attraverso la socket Dalla socket passano al TCP in esecuzione sul client TCP dirige i dati al buffer di invio Dal buffer di invio di tanto in tanto preleverà blocchi di dati e li invierà al livello di rete Ogni lato della connessione presenta un proprio buffer di invio e ricezione Una connessione conserva: buffer, variabili e connessione socket
64
Livello TRASPORTO TCP: pacchetti o segmenti
La massima quantità di dati prelevabili e posizionabili in un pacchetto viene limitata dal MSS (maximun segment size) Ogni segmento ha un’intestazione a lunghezza variabile da 20 a 32 byte Struttura di un pacchetto TCP: Numero porta origine 16 bit Numero porta destinazione 16 bit Checksum 16 bit Numero di sequenza e numero di acknowledgement: usati per trasferimento dati affidabile - entrambi da 32 bit Campo finestra di ricezione indica il numero di byte che il destinatario può accettare e viene usato per il controllo del flusso 16 bit Campo lunghezza intestazione 4 bit Campo flag: ack, rst, syn, fin, psh, urg lungo 6 bit Il bit ack indica che trattasi di un segmento di acknowledgement
65
Livello TRASPORTO TCP: numeri sequenza e acknowledgement
Numero di sequenza: numero nel flusso di byte del primo byte del pacchetto Numero di acknowledgement: scritto dal processo mittente è il numero di sequenza del byte successivo che l’host A attende dall’host B Se A ha ricevuto 500 byte da B, scriverà 501 nell’acknowledgement number TCP effettua l’acknowledgement solo dei byte fino al primo mancante nel flusso -> TCP offre acknowledgement cumulativi
66
Livello TRASPORTO TCP:sequenza e acknowledgement
Cosa fa un host destinatario quando riceve segmenti fuori sequenza? Due approcci comunemente seguiti: Scarta i pacchetti non ordinati Li mantiene ed attende quelli mancanti (più seguito)
67
Livello TRASPORTO TCP: trasferimento dati affidabile
Il servizio di rete IP non è affidabile –> Non garantisce la sequenza Non garantisce la consegna Non garantisce l’integrità dei dati I datagrammi di IP possono: Sovraffollare i buffer dei router Non raggiungere la destinazione Arrivare in ordine casuale Arrivare con bit alterati
68
Livello TRASPORTO TCP: trasferimento dati affidabile
TCP usa: TIMER ACKNOWLEDGEMENT duplicati Ciascun segmento include un numero di sequenza Se il timer non è già in funzione TCP lo avvia quando il segmento viene passato ad IP Il timer è associato al più vecchio segmento che non ha ricevuto acknowledgement (variabile TimeoutInterval) Per timeout su ack, TCP ritrasmette il segmento che lo ha causato e riavvia il timer Se riceve un segmento di acknowledgement (lo capisce dal bit ack impostato) confronta il numero di sequenza con la sua variabile relativa all’ultimo numero di sequenza che non ha ricevuto acknowledgement e si comporta di conseguenza Ricordare che TCP adotta acknowledgement cumulativi
69
Livello TRASPORTO TCP: trasferimento dati affidabile
Quando il destinatario riceve un segmento con numero di sequenza superiore a quella attesa, invia nuovamente un ack relativo all’ultimo segmento ricevuto nella corretta sequenza Se il mittente riceve 3 ack duplicati per lo stesso dato, il mittente ritrasmette il segmento mancante
70
Livello TRASPORTO TCP: controllo di flusso e di congestione
TCP evita che il mittente saturi il buffer del ricevente TCP regola l’invio a seconda della congestione percepita Entrambi gli obiettivi si raggiungono rallentando il mittente TCP usa la variabile ‘finestra di ricezione’ per fornire al mitt un’indicazione dello spazio libero nel buffer del dest Il dato relativo alla ‘finestra’ viene inviato dal ricevente nel pacchetto Il mittente verifica costantemente che la differenza tra l’ultimo byte inviato e l’ultimo byte per cui ha ricevuto ack non superi il valore della finestra Quando la finestra è zero, il mittente continua ad inviare segmenti con dati da 1 byte ed il destinatario risponderà con un ack fino a che non si torni ad una situazione di finestra > 0
71
Livello TRASPORTO TCP: gestione della connessione
Passo 1. Il TCP client invia uno speciale segmento al TCP server che non contiene dati applicativi ed il bit SYN è ad 1. il numero di sequenza è inizializzato. Passo 2. Il TCP server estrae il pacchetto dal datagramma, alloca i buffer e le variabili TCP ed invia un segmento al client TCP senza dati applicativi, con bit SYN ad 1 e campo ACK con valore inizializzato lato server che corrisponde ad un numero di sequenza iniziale lato server. Passo 3. Alla ricezione del pacchetto SYNACK il client alloca buffer e variabili ed invia un altro segmento con bit SYN posto a zero, il campo ack impostato con il valore ricevuto dal server ed il campo dati del segmento può contenere informazioni Per terminare una connessione ciascuno dei due (mittente o destinatario) può inviare un pacchetto con il bit FIN posto ad 1.
72
Livello TRASPORTO TCP: controllo di congestione
Principi guida del controllo di congestione: Un segmento perso implica congestione e TCP decrementerà il tasso di trasmissione del mittente La ricezione di un acknowledgement non duplicato comporterà un aumento del tasso di trasmissione Per la verifica di questi eventi, mittente e destinatario utilizzano variabili associate alla connessione
73
Livello RETE Introduzione
Il ruolo del livello di rete è quello di trasferire pacchetti da un host ad un altro In una generica trasmissione da H1 ad H2 Il livello di rete in H1 prende i segmenti dal livello di trasporto, li incapsula in un datagramma (pacchetto a livello di rete) e li trasmette al proprio router limitrofo (il più vicino), R1. Nell’host H2 il livello di rete riceve i datagrammi (che hanno una loro struttura definita) dal proprio router contiguo R2, estrae i segmenti e li consegna al livello di trasporto In questo schema i router hanno la sola funzione di inoltrare i datagrammi dai loro collegamenti di ingresso a quelli di uscita
74
Livello RETE Introduzione
Due importanti funzioni del livello di rete: Inoltro: quando un router riceve un pacchetto lo deve trasferire da uno dei collegamenti di input (quello a cui è giunto) ad uno di output Instradamento: il livello di rete deve determinare tramite algoritmo di instradamento il percorso che i pacchetti devono seguire Per inoltrare i pacchetti i router estraggono dal campo di intestazione il valore che utilizzano come indice nella tabella di inoltro per ottenere l’interfaccia di collegamento a cui il pacchetto dovrà essere inoltrato. Il router riceve messaggi di instradamento che vengono utilizzati per configurare la sua tabella di inoltro. Tra i vari servizi che una rete può offrire (consegna garantita, consegna ordinata, …), il livello di rete Internet mette a disposizione un solo servizio: servizio best- effort. In realtà questo vuol dire ‘nessun servizio’ in quanto anche non consegnando nulla soddisferebbe la definizione di ‘servizio best-effort’.
75
Livello RETE Reti datagram
Quando un pacchetto giunge al router, questo utilizza l’indirizzo di destinazione per cercare nella tabella di inoltro a quale interfaccia di collegamento avviarlo Nella tabella di inoltro presente in ciascun router non ci sono tutti gli indirizzi IP presenti nella rete (sarebbero 2^32 = ). In genere nelle tabelle sono presenti prefissi o intervalli di valori. In caso di prefissi sceglie il prefisso più lungo per inoltrare Le tabelle di inoltro vengono gestite da algoritmi che le aggiornano con periodicità che va da 1 a 5 minuti
76
Livello RETE Architettura di un router
Porte di ingresso Sono interfacce fisiche di input: nulla a che fare con le porte software associate alle applicazioni di rete ed alle socket E’ qui che, utilizzando le informazioni della tabella di inoltro, viene determinata la porta di uscita a cui dirigere un pacchetto attraverso la struttura di commutazione Una volta determinata la porta di output di un pacchetto esso può essere inviato alla struttura di commutazione. Se la struttura di commutazione è impegnata, il pacchetto viene accodato sulla porta di input
77
Livello RETE Architettura di un router
Struttura di commutazione Connette fisicamente le porta di ingresso e quelle di uscita Porte di uscita Memorizzano i pacchetti che provengono dalla struttura di commutazione e li trasmettono sul collegamento in uscita Processore di instradamento Esegue i protocolli di instradamento Gestisce le tabelle di inoltro Gestisce le informazioni sui collegamenti attivi Implementa le funzioni di gestione della rete
78
Livello RETE Architettura di un router
Le porte di input, le porte di output e la struttura di commutazione implementano la funzione di inoltro Questa implementazione avviene quasi sempre in modalità hardware per ragioni di ottimizzazione dei tempi di elaborazione (nanosecondi)
79
Livello RETE Architettura di un router
Si possono formare code di pacchetti sia presso le porte di ingresso che presso quelle di uscita Quando queste code crescono, la memoria dei router può esaurirsi e quindi può avvenire perdita di pacchetti.
80
Livello RETE Indirizzamento IPv4
Il collegamento tra Host e collegamento fisico è detto interfaccia Un router è connesso almeno a due collegamenti Anche il confine tra un router ed il suo collegamento è detto interfaccia Ad ogni interfaccia è associato un indirizzo IP e non all’host o al router che la contiene Un router può interconnettere tre sottoreti su tre collegamenti. Ciascuno di questi collegamenti ha un proprio indirizzo IP. Ciascuna sottorete ha un indirizzo di sottorete L’indirizzo di una sottorete è nella forma a.b.c.d/x dove x rappresenta il numero di bit prefisso della sottorete
81
Livello RETE Indirizzamento IPv4
Nella figura vi sono 6 sottoreti /24 /24 /24 /24 /24 /24
82
Livello RETE Indirizzamento Internet globale
La strategia di assegnazione degli indirizzi Internet è detta CIDR (classless interdomain routing). L’indirizzo IP viene diviso in due parti ed ha la forma a.b.c.d/x dove x indica il numero di bit nella prima parte dell’indirizzo (prefisso) I router esterni alla rete dell’organizzazione considerano solo gli x bit del prefisso I bit 32-x possono essere usati per distinguere i dispositivi interni all’organizzazione che quindi avranno tutti lo stesso prefisso e saranno usati dai router interni alla rete Prima dell’adozione del CIDR le part di rete di un indirizzo IP dovevano essere lunghe 8, 16 o 24 bit. Tale schema di indirizzamento era noto come classful addressing dato che le sottoreti con indirizzi di sottorete 8, 16 e 24 erano note rispettivamente come reti di classe A, B e C
83
Livello RETE Indirizzamento Internet globale
Il classful addressing portò ad un rapido esaurimento degli indirizzi della classe B e ad uno scarso utilizzo dello spazio di indirizzamento assegnato Indirizzo IP broadast Quando un host emette un datagramma con destinazione , il messaggio viene consegnato a tutti gli host sulla stessa sottorete
84
Livello RETE Ottenimento blocco indirizzi
Un blocco di indirizzi viene fornito dal provider a varie organizzazioni. Ad esempio, un provider che dispone del blocco di indirizzi /20 può fornire i seguenti blocchi di indirizzi a varie organizzazioni: /23 /23 /23 … /23 Notiamo che la terza parte di 20 bit è di 4 bit, cioè 16, quindi gli altri 4 bit possono variare generando i numeri da 17 a 255, fermo restando i primi 20 bit L’autorità globale per l’assegnazione degli indirizzi è ICANN (Internet Corporation for Assigned Names and Numbers), società senza scopo di lucro, che si occupa anche dell’assegnazione dei nomi di domini Esistono anche i registri internet regionali. Per l’europa è il RIPE
85
Livello RETE DHCP e NAT In una sottorete, ciascun host può ottenere un indirizzo IP sia in modo manuale che automatico e dinamico Esiste il protocollo DHCP che consente attraverso un server della sottorete di assegnare un indirizzo IP ad un host Nelle reti domestiche, ai dispositivi interni viene assegnato un IP che ha significato solo all’interno della rete Gli IP dei dispositivi sono ‘nattati’ attraverso un router NAT che ha un indirizzo IP riconosciuto all’esterno Un dispositivo che richiede una pagina web, ha nella sua richiesta numero di porta e indirizzo IP. Il router inoltra questa richiesta al destinatario sostituendo IP e porta e tenendo traccia in una tabella di traduzione NAT (NAT translation table) per il response
86
Livello RETE ICMP Le tre componenti del livello di rete sono:
Protocollo IP Protocollo di instradamento (RIP,… che vedremo) Protocollo ICMP ICMP viene utilizzato per scambiarsi messaggi tra host e router. Tipicamente questi sono messaggi di errore. Per esempio quando un router non ha potuto trovare un percorso verso un host, il router stesso emette un messaggio di errore verso l’host mittente
87
Livello RETE Algoritmi di instradamento
Un host è connesso direttamente ad un router di default che chiameremo router sorgente, cui trasferisce tutti i pacchetti diretti all’esterno della sottorete Anche l’host di destinazione ha un router di default che chiameremo router di destinazione La rete è un grafo fatto da nodi (router) collegati da archi (collegamenti). Ciascun arco ha un costo associato. Il problema è instradare un pacchetto tra questi due router, cercando un percorso a costo minimo La ricerca di un percorso fa uso di algoritmi detti ‘algoritmi di instradamento’
88
Livello RETE Algoritmo di Dijkstra
In quest’algoritmo la topologia di rete e tutti i costi dei collegamenti sono disponibili in input all’algoritmo. Ciò si ottiene facendo inviare a ciascun nodo pacchetti sullo stato (identità e costo) dei suoi collegamenti a tutti gli altri nodi della rete (broadcast) Tutti i nodi avranno la stessa vista della rete e ciascun nodo che lancerà l’algoritmo avrà lo stesso risultato degli altri L’algoritmo in esame calcola il percorso a costo minimo da un dato nodo a tutti gli altri nodi della rete Al termine dell’algoritmo per ciascun nodo si avrà il suo predecessore lungo il percorso a costo minimo da nodo origine. Da qui si potrà costruire la tabella di inoltro.
89
Livello RETE Algoritmo di Dijkstra
5 Calcoliamo i percorsi a costo minimo da u a tutte le destinazioni v 3 w 2 5 u 2 3 z 1 1 2 x 1 y
90
Livello RETE Algoritmo di Dijkstra
Indichiamo con D(v): il costo minimo del percorso dal nodo origine alla destinazione v per quanto concerne l’iterazione corrente dell’algoritmo P(v): il predecessore immediato di v lungo il percorso a costo minimo dall’origine a v N’: il sottoinsieme di nodi v già considerati, cioè quelli per cui il percorso a costo minimo dall’origine a v è già noto definitivamente
91
Livello RETE Algoritmo di Dijkstra
Passo 0: inizializzazione N’ è composto solo da u Per ogni nodo n adiacente imposta D(n)=c(n , v) dove c(n , v) è il costo del collegamento Qui i valori dei percorsi a costo minimo noti da u ai suoi nodi adiacenti v, w, e x sono posti rispettivamente a 2,5,1 I costi verso y e z non sono impostati Passo N’ D(v) p(v) D(w) -p(w) D(x) - p(x) D(y) - p(y) D(z) - p(z) u 2 – u 5 – u 1 – u -
92
Livello RETE Algoritmo di Dijkstra
Passo 1: prima iterazione Individua un nodo n non in N’ tale che D(n) sia minimo ed aggiungilo ad N’ (dalla tabella, nel nostro esempio n è x) Aggiorna D(s) per ciascun nodo s adiacente a n e non in N’ nel seguente modo: D(s) = min (D(s), D(n)+c(n , s)) Nel nostro esempio i nodi s adiacenti ad x sono y, w, v, quindi la tabella diventa la seguente Passo N’ D(v) - p(v) D(w) -p(w) D(x) - p(x) D(y) - p(y) D(z) - p(z) u 2 - u 5 - u 1 - u - 1 ux 4 - x 2 - x
93
Livello RETE Algoritmo di Dijkstra
Passo 2 : seconda iterazione I nodi v ed y hanno il costo D minimo, quindi scegliamo uno dei due, per esempio y. Aggiungiamo y ad N’ I nodi adiacenti non ancora in N’ da considerare sono w e z Applicando l’iterazione otteniamo la tabella seguente Passo N’ D(v) - p(v) D(w) -p(w) D(x) - p(x) D(y) - p(y) D(z) - p(z) u 2 - u 5 - u 1 - u - 1 ux 4 - x 2 - x 2 uxy 3 - y 4 - y
94
Livello RETE Algoritmo di Dijkstra
Passo 3 : terza iterazione Il nodo v ha il costo D minimo Aggiungiamo v ad N’ I nodi adiacenti non ancora in N’ da considerare è solo w Applicando l’iterazione otteniamo la tabella seguente Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z) u 2 - u 5 - u 1 - u - 1 u x 4 - x 2 - x 2 u x y 3 - y 4 - y 3 u x y v
95
Livello RETE Algoritmo di Dijkstra
Passo 4 : quarta iterazione Il nodo w Aggiungiamo w ad N’ I nodi adiacenti non ancora in N’ da considerare è solo z Applicando l’iterazione otteniamo la tabella seguente Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z) u 2 - u 5 - u 1 - u - 1 u x 4 - x 2 - x 2 u x y 3 - y 4 - y 3 u x y v 4 u x y v w 4 – y
96
Livello RETE Algoritmo di Dijkstra
Passo 5 : quinta iterazione Il nodo z Aggiungiamo z ad N’ I nodi adiacenti non ancora in N’ da considerare … non ve ne sono Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z) u 2 - u 5 - u 1 - u - 1 u x 4 - x 2 - x 2 u x y 3 - y 4 - y 3 u x y v 4 u x y v w 4 – y 5 u x y v w z
97
Livello RETE Algoritmo di Dijkstra
Per ciascun nodo abbiamo il suo predecessore. Quindi possiamo costruire il percorso minimo da u a qualunque nodo. Per esempio da u a z: il predecessore di z è y, il cui predecessore è x, il cui predecessore è u, dunque il percorso sarà: u x y z. Un utile esercizio è cambiare i costi e vedere come variano i percorsi Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z) u 2 - u 5 - u 1 - u - 1 u x 4 - x 2 - x 2 u x y 3 - y 4 - y 3 u x y v 4 u x y v w 4 – y 5 u x y v w z
98
Livello RETE Algoritmo distance vector (DV)
L’algoritmo di Dijkstra usa informazioni globali, mentre il seguente algoritmo è iterativo, asincrono e distribuito. Iterativo: si ripete finché non avviene ulteriore scambio informativo tra nodi vicini Asincrono: non richiede che tutti i nodi operino al passo con gli altri Distribuito: ciascun nodo riceve informazioni dai nodi vicini e restituisce a questi i risultati
99
Livello RETE Algoritmo distance vector (DV)
Relazione importante (formula di Bellman-Ford): Sia d (x,y) il costo del percorso a costo minimo dal nodo x al nodo y Sia c (x,y) il costo del percorso sull’arco che congiunge x ed y Allora d (x , y) = min ( c(x , v) + d(v , y) ) al variare di v dove v indica tutti i nodi vicini ad x La relazione dice che dopo aver viaggiato da x a v, consideriamo il costo minimo da v ad y; dunque il problema è individuare quel v per cui sia minima la somma.
100
Livello RETE Algoritmo distance vector (DV)
Indichiamo con D(x , y) una stima del costo del percorso a costo minimo da x ad y per tutti i nodi y del grafo. Indichiamo con D(x) l’insieme (o vettore) delle distanze dal nodo x a tutti i nodi del grafo Nell’algoritmo che presentiamo, ciascun nodo x mantiene le seguenti informazioni: c(x , v) per tutti i suoi vicini v D(x) costo del percorso da x verso tutti i nodi D(v) per ciascun vicino v, cioè i vettori di tutti i suoi vicini (di x)
101
Livello RETE Algoritmo distance vector (DV)
Di quando in quando un nodo invia una copia del proprio vettore delle distanze a ciascuno dei suoi vicini. Quando il generico nodo x riceve un nuovo vettore da uno dei suoi vicini v, applica la formula di Bellman-Ford per aggiornare il proprio vettore (e lo distribuisce a sua volta ai suoi vicini) come segue: D (x , y) = min ( c(x , v) + D(v , y) ) per ciascun nodo y del grafo Ogni volta che il vettore delle distanze cambia in un nodo, questo manderà il proprio vettore a tutti i suoi vicini. In questo modo la stima de costi D(x,y) convergerà verso d(x,y) che è l’effettivo costo minimo da x ad y. Ogni nodo quindi attende aggiornamento dai suoi vicini.
102
Livello RETE Algoritmo distance vector (DV)
D (x , y) = min ( c(x , v) + D(v , y) ) per ciascun nodo y del grafo Vediamo con un semplice grafo il funzionamento dell’algoritmo: y 2 1 x z 7 X x y z 2 7 Y x y z 2 1 Z x y z 7 1
103
Livello RETE Algoritmo distance vector (DV)
Quando x riceve il vettore da y e da z aggiorna il proprio così: D(x,x)=0 (non varia) D(x,y)=min(c(x,y)+D(y,y), c(x,z)+D(z,y))=min(2+0, 7+1)=2 (non varia) D(x,z)=min(c(x,z)+D(z,z), c(x,y)+D(y,z))=min(7+0, 2+1)=3 (varia) A questo punto x aggiorna la propria tabella di inoltro verso il nodo z: il percorso minimo passa da y per andare verso z Oltre ad aggiornare la propria tabella di inoltro invia il proprio vettore modificato ai suoi nodi vicini che aggiorneranno i propri rispettivi vettori y X x y z 2 7 Y x y z 2 1 Z x y z 7 1 2 1 x z 7 X x y z 2 3 1 7
104
Livello RETE Algoritmo distance vector (DV)
Quando z riceve il vettore da x si aggiorna D(z,z)=0 (non varia) D(z,y)=min(c(z,y)+D(y,y), c(z,x)+D(x,y))=min(1+0, 7+2)= 1 (non varia) D(z,x)=min(c(z,x)+D(x,x), c(z,y)+D(y,x))=min(7+0, 1+2)=3 (varia) A questo punto z aggiorna la propria tabella di inoltro verso il nodo x: il percorso minimo passa da y per andare verso x Oltre ad aggiornare la propria tabella di inoltro invia il proprio vettore modificato ai suoi nodi vicini che aggiorneranno i propri rispettivi vettori y X x y z 2 7 Y x y z 2 1 Z x y z 7 1 2 1 x z 7 Z x y z 2 3 1
105
Livello RETE Algoritmo distance vector (DV)
Anche y riceverà i vettori dai vicini e resta come esercizio per il lettore. Si noterà che il vettore delle distanze di y non cambia e quindi non invierà nulla ai vicini. In generale, ogni qualvolta interviene una modifica nel costo di un collegamento, il nodo interessato invia il vettore ai suoi vicini. Nell’algoritmo DV, ciascun nodo comunica solo con i vicini inviando i costi da sé stesso verso tutti i nodi che conosce. Nell’algoritmo Dijkstra invece comunica in modalità broadcast con tutti i nodi comunicando soltanto i costi dei collegamenti direttamente connessi.
106
Livello RETE Instradamento gerarchico
Al crescere del numero dei router accade che: il tempo di calcolo diventa proibitivo è necessaria un’enorme quantità di memoria Il traffico generato dal broadcast occupa parecchia banda Per risolvere questi problemi si organizzano i router in sistemi autonomi (AS), mettendoli sotto l stesso controllo amministrativo (stesso ISP o stessa rete aziendale). I router sotto lo stesso AS eseguono lo stesso algoritmo di instradamento Vi sarà dunque un protocollo di instradamento intra-AS per ciascun AS ed un protocollo di instradamento inter-AS In internet tutti i sistemi autonomi usano lo stesso protocollo intra-AS chiamato BGP4 Ciascun router riceve informazioni sia dal protocollo intra-AS che da quello inter-AS per configurare la propria tabella di inoltro
107
Livello RETE Instradamento in internet
In internet è usato RIP come protocollo di instradamento all’interno di un sistema autonomo. RIP è di tipo DV in cui tutti i collegamenti hanno costo unitario In RIP i router adiacenti si scambiano gli aggiornamenti approssimativamente ogni 30 secondi Ciascun router mantiene una tabella di instradamento che include il vettore delle distanze e la tabella di inoltro Una tabella di instradamento avrà una riga per ciascuna sottorete del sistema autonomo Per il routing interno ai sistemi autonomi a livello di ISP di livello superiore, viene usato OSPF e l’algoritmo Dijkstra BGP è lo standard dei protocollo di instradamento tra sistemi autonomi
108
Livello RETE Livello di collegamento
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.