Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf ·...

126
Lezione 6 Lezione 6 Internet Gianluca Reali

Transcript of Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf ·...

Page 1: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Lezione 6

Internet

Gianluca Reali

Page 2: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Caratteristiche generali (1/2)

Le entità di elaborazione fondamentali all’interno di questa struttura sono gli host e i router

Gli host:sono sorgente e destinazione di informazione, hanno unun indirizzo IP e unaunainterfaccia di retesono connessi tramite connessioni di rete che supportano capacità di trasferimento comprese tra decine di byte e megabyte al secondo

I router:hanno due o piùdue o più interfacce di rete con corrispondenti indirizzi IPinoltrano le unità informative IP

La modalità di trasferimento, nello strato di rete, è senza La modalità di trasferimento, nello strato di rete, è senza connessioneconnessione

Page 3: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Caratteristiche generali (2/2)

Lo strato di rete non fornisce alcuna garanzia sulla qualità di servizio (grado di integrità informativa, ritardo di trasferimento, grado di trasparenza temporale, etc.)

Il compito di rendere la qualità di servizio adeguata alle esigenze degli utenti è demandato agli strati superiori residenti negli host

I suoi protocollisono logicamente situati al di sopra di qualsivoglia altro protocollo di rete (eventualmente duplicandone le funzioni) sono in grado di operare su diverse piattaforme hardware utilizzando qualsiasi sistema operativo (UNIX, Mac OS, Windows...)

Page 4: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Struttura di rete

Internet è la particolare inter-rete basata sui protocolli TCP/IP

Internet non è quindi una nuova rete ma un insieme di risorse e di convenzioni per interconnettere delle reti (che sono quindi viste da Internet come sotto-reti)

Scopo di Internet è quindi consentire a host appartenenti a sotto-reti disomogenee (per topologia, struttura fisica, modi di trasferimento e prestazioni) di comunicare tra loro

Internet non prevede una traduzione dei protocolli nel passare da una sotto-rete all’altra ma incapsula (tunneling) le unità informative di IP nelle unità dati dei protocolli di strato di rete delle sotto-reti che attraversa

Page 5: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Struttura di reteLe inter-connessioni tra diverse sotto-reti sono assicurate da elaboratori operanti come router

Page 6: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Struttura di rete

RSotto-rete 1 Sotto-rete 2H

H

H

H

H

i router instradano i pacchetti solo verso la sotto-rete di destinazione e non verso il singolo host di destinazione

una volta che il pacchetto arriva alla sotto-rete di destinazione sono i protocolli di questa sotto-rete ad indirizzarlo verso lo specifico host di destinazione

Page 7: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Struttura di rete

Al crescere della complessità della inter-rete il funzionamento dei router dipende dall’intera topologia di Internet, ossia occorre un grado di conoscenza delle interconnessioni di rete oltre a quella delle sotto-reti alle quali i router sono direttamente connessi

R1 Sotto-Rete 3

Sotto-Rete 2

R2Sotto-Rete 1

Page 8: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Struttura di rete

La struttura di rete è non gerarchica

Le sotto-reti componenti possono essere distinte insotto-reti che utilizzano direttamente IP come protocollo di strato 3sotto-reti basate su altri protocolli di strato 3

I protocolli TCP/IP trattano tutte le sotto-reti in modo omogeneo; ad esempio, ognuno dei seguenti sistemi di comunicazione è visto da Internet come una singola sotto-rete

una rete in area locale (es. Ethernet)una rete in area metropolitana (es. FDDI)una rete geografica (es. la rete telefonica)una connessione punto-punto dedicata

Page 9: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempio di sotto-rete IP

Page 10: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Interconnessione di reti non IP - Gateway

Page 11: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

L’insieme di protocolli TCP/IPriesce a inter-connettere tutti i tipi di sotto-rete in quanto assume che le funzionalità degli strati sottostanti costituiscano solo una piattaforma per il trasferimento fisicorealizza tutte le funzioni tipiche del trasporto: controllo di errore, indirizzamento, instradamento, frammentazione e aggregazione delle unità informative, loro inoltro in rete

Se alcune o tutte queste funzioni non erano state svolte da una particolare rete, TCP/IP le realizza; se erano già state volte le duplica, realizzandole nuovamente

Ciò conduce ad eventuali duplicazioni di funzioni ma consente di non imporre alcun vincolo sulla tecnologia e sui protocolli delle sotto-reti di trasporto che interconnette (X.25, Frame Relay, ATM, LAN, MAN, rete telefonica etc.)

Page 12: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

Le prestazioni da estremo a estremo (velocità di trasmissione delle informazioni, grado di trasparenza temporale e di integrità informativa) sono quindi fortemente legate alle caratteristiche delle sotto-reti attraversate

Il trasferimento delle unità informative può richiedere una frammentazione delle stesse laddove le dimensioni delle unità informative gestite dalle sotto-reti non coincidano con le dimensioni massime consentite

Page 13: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

Strati ProtocolliServizi applicativi:

TELNETSMTP

FTPX-Window

5-7 HTTPTALK

GOPHER

ARCHIE

WAIS

WHOIS News

Listserv

4 TCP UDP3c IP

ICMP

3b ARP/RARP≈3a X.25 strato 3, SNA, DECnet, ATM+AAL, PPP, LLC, etc.≈2 X.25 strato 2, 802.3, 802.4, Ethernet etc.1 Strato fisico

RIP

DNS

NFS

SNMPTFTP

Tutti gli strati inferiori a IP, fino a 3a compreso, sono considerati come "Network Access Layer" e sono trattati indifferentemente dalla loro costituzione

Page 14: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

IP è un protocollo di strato di rete; le sue principali funzionisono

l’indirizzamentol’instradamentola frammentazione e l’aggregazione delle unità informative

Tratta ciascun pacchetto come un messaggio indipendente da tutti gli altri; non esistono pertanto, a questo strato, i concetti di connessione e di circuito logico: il protocollo IP è senza connessione

Page 15: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

Il servizio è inaffidabile e basato sul paradigma del “best effort”, ossia la rete cerca di “fare del suo meglio”

Il servizio è definito inaffidabile perché la consegna di una unità informativa non è garantita. Queste possono essere perse, duplicate o consegnate fuori sequenza

Il protocollo TCP offre un servizio affidabile orientato alla connessione

1) trasferisce un flusso informativo continuo e bi-direzionale2) può sopperire a problemi di perdita, duplicazione e consegna fuori

sequenza dei dati3) attua anche un controllo di flusso che consente di adeguare il volume

dei dati trasferito alle possibilità di ricezione4) a questo scopo viene utilizzato un meccanismo a finestra scorrevole e

variabile

Page 16: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

ICMP (Internet Control Message Protocol) è un protocollo senza connessione ed è utilizzato per

risolvere eventuali situazioni anomalecontrollare il trasferimento (controllo di flusso di tipo On-Off)comunicare alle sorgenti eventuali problemi (ad es. di indirizzamento)

Esempi:Source Quench: inviato dal destinatario, interrompe l'emissione di datagrammi del mittente;Redirect: il destinatario segnala al mittente di re-instradare il datagramma verso un altro host;Echo: controlla se un possibile destinatario è attivo,Destination Unreacheable: notifica al mittente la non-raggiungibilità di un host

Page 17: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Architettura protocollare

SNMP (Simple Network Management Protocol) è il protocollo di gestione di rete

I protocolli ARP e RARP (Address Resolution Protocol, Reverse Address Resolution Protocol) sono di supporto, e servono a determinare l'indirizzo fisico locale corrispondente ad un indirizzo Internet, (ARP), o viceversa (RARP)

Page 18: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Il protocollo IP (Internet Protocol)

Fornisce le seguenti funzionalità:definisce lo schema di indirizzamento;definisce l’unità base per il trasferimento dei dati;definisce la strada che un’unità dati deve percorrere per arrivare a destinazione;specifica un insieme di regole che host e gateway devono seguire per elaborare le unità informativeframmenta e ri-assembla le unità dati

Page 19: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati

Le unità-dati dello strato IP sono dette datagrammi. La lunghezza massima di un segmento è di 65536 ottetti

0 4 8 16 19 24 31VERS HLEN SERVICE

TYPETOTAL LENGTH

IDENTIFICATION Flags FRAGMENT OFFSETTIME TO

LIVEPROTOCOL HEADER CHECKSUM

SOURCE IP ADDRESSDESTINATION IP ADDRESS

OPTIONS PADDINGDATADATA

...

Page 20: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità datiVers: versione del protocollo usata; grazie a tale campo è possibileche più versioni di IP operino contemporaneamenteHLEN: lunghezza dell'intestazione (specificata in parole di 32 bit)Service type: specifica parametri della qualità di servizio richiesti dall’utente: affidabilità, velocità di trasferimento)Total length: (16 bit) specifica la lunghezza del datagramma, misurata in ottetti, includendo l'intestazione ed i dati (216-1=65535 byte)Identification: (16 bit) numero del datagramma; è un valore identificativo assegnato dal processo sorgente al datagramma o ai suoi frammentiFlags: è un campo di 3 bit: X, DF e MF

–X: non usato e posto a zero

–DF: Don't Fragment; se 0 indica che il datagramma può essere frammentato, se 1 non può esserlo

–MF: More Fragment; se 0 indica che è l'ultimo frammento, se 1 che ci sono altri frammenti

Page 21: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità datiFragment Offset: (13 bit); posizione del frammento all'interno del datagramma, espresso in unità di 8 byte può numerare 8192 frammenti; se uno o più frammenti non viene ricevuto, verrà scartato l'intero datagrammaTime to Live: (8 bit); indica quanto tempo il datagramma può rimanere all'interno della reteProtocol: indica a quale protocollo dello stato superiore deve essere trasferito il contenuto informativo del datagramma Header Cecksum: l'intestazione è protetta da un controllo di erroreSource Address: (32 bit); indirizzo di sorgente IP (ovvero dell’host, non dell’utente finale)Destination Address: (32 bit); indirizzo di destinazione IP (ovvero dell’host, non dell’utente finale)

Page 22: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati

Options: campo di lunghezza variabile (multipli di 8 bit) che può essere omesso. È composto da tanti ottetti quante sono le opzioni implementate. Ad esempio:

– Record Route Option (RRO): consente al mittente di creare una lista vuota di indirizzi IP in modo che ogni nodo attraversato inserisce il suo indirizzo in questa lista

– Source Route Option: consente al mittente di specificare i nodi attraverso i quali vuole che transiti il datagramma

– Timestamp Option: come RRO con in più l'istante temporale in cui il datagramma attraversa i diversi nodi

Padding: rende la lunghezza dell'intestazione multipla intero di 32 bit mediante introduzione di zeri

Page 23: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Frammentazione e ri-assemblaggio

Le reti individuali possono avere diverse limitazioni per la lunghezza dei pacchetti; il datagramma deve quindi poter essere frammentato per attraversare le diverse reti

Le procedure di segmentazione e ri-assemblaggio devono essere in grado di frammentare il pacchetto originario in un numero arbitrario di unità che, giunte a destinazione, devono poter essere ricomposte nella forma originaria

Page 24: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Frammentazione e ri-assemblaggio

Diversi collegamenti di rete hannoMTU (Maximum Transfer Unit) diverse, corrispondenti a diverse dimensioni della trama sottostante

Differenti tipi di collegamenti, differenti MTU

Grandi datagrammi IP divisi(frammentati) nella rete

Un datagramma suddiviso in piùdatagrammiRiassemblato soltanto alladestinazione finaleI bit dell’intestazione IP sono usatiper identificare e ordinare i varisegmenti

frammentazione: in: un datagramma grandeout: 3 datagrammi più piccoli

reassembly

Page 25: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Frammentazione e ri-assemblaggioLength=4000 =

20 Header+

3980 Dati

ID=x

offset=0

Frag-flagDF=0, MF=0

length=4000

ID=x

offset=0

Frag-flagDF=0, MF=1

length=1500

Un datagramma grande è suddiviso in datagrammi più piccoli

Length=1500 =20 Header +

1480 Dati

ID=x

offset=1480

Frag-flagDF=0, MF=1

length=1500

Length=1500 =20 Header +

1480 Dati

Length=1040 =20 Header +

1020 DatiID=x

offset=2960

Frag-flagDF=0, MF=0

length=1040

=> Lunghezza totale 3 datagr. = 4040 (2 intestaz. in più)

Page 26: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamento

Internet è stata definita sistema di comunicazione universale perché consente ad ogni host di comunicare con ogni altro host

Al tal fine è necessario stabilire un metodo globalmente accettato per identificare ed indirizzare in modo univoco tutti gli host

Ciò ha reso necessaria la definizione di un nuovo schema di indirizzamento, dato che ognuna delle sotto-reti ne ha uno proprio, e quindi potenzialmente non univoco (a livello globale), (indirizzi MAC, indirizzi X.25, numeri telefonici etc.)

Page 27: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamentoGli indirizzi devono essere unici in tutta la rete (è possibile attribuire indirizzi arbitrari ad una sub-rete TCP/IP solo se questa non è connessa con altre reti)

Un indirizzo IP identifica una interfaccia di rete. Nel caso di host, un indirizzo IP corrisponde anche allo stesso host, ma non ad uno specifico utente dei servizi IP. L’identificazione di un utente (processo applicativo, in senso OSI e TCP/IP) all’interno di un host è affidata ai protocolli di strato superiore (TCP o UDP)

Lo schema di indirizzamento IP è stato progettato per consentire un efficiente instradamento. Un indirizzo IP identifica prima la rete alla quale un host è connesso e poi l’host all’interno di quella rete

Page 28: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamentoUn indirizzo IPv4 è costituito da 32 bit, logicamente suddivisi in due parti: Net_Id e Host_Id. L’indirizzo completo può quindi essere scritto come:

IP_AddressIP_Address = = Net_IdNet_Id . . Host_IdHost_Id

La lunghezza dei due campi determina la classe degli indirizzi

Page 29: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamentoIndirizzamento “per Indirizzamento “per classiclassi”:”:

127 reti, 16 777 216 host

16384 reti, 65 536 host

2 097 152 reti, 256 host

268 435 456 indirizzi

Page 30: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamento

Notazione numerica, “dotted decimal” e “mnemonica”; esempio:

Un opportuno protocollo (DNS) provvede a tradurre un indirizzo numerico in mnemonico e viceversa

10001101 11111010 00101000 01100101

141. 250. 40. 101

net5.diei.unipg.it

Page 31: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamentoAl fine di assicurare che ogni indirizzo di Internet sia unico è stata costituita un’autorità centrale con il compito di assegnare gli indirizzi: Internet Assigned Number Authority (IANA), recentemente sostituita da Internet Corporation for Assigned Names and Numbers (ICANN)

Viene però assegnata solo la parte Net_Id delegando poi l’organizzazione richiedente per l’assegnazione della restante parte dell’indirizzo, l’Host_Id

La IANA ha definito degli indirizzi IP privati

BLOCCO Indirizzo iniziale Indirizzo finale I 10.0.0.0 10.255.255.255 II 172.16.0.0 172.31.255.255 III 192.160.0.0 192.168.255.255

Page 32: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamentoL’organizzazione alla quale è assegnata una Net_Id potrà suddividere la parte di Host_Id per creare, al suo interno, delle sotto-reti (subnetting) ognuna delle quali avrà la stessa Net_Id; il processo può essere iterativo

Indirizzo di classe B

Indirizzo con definizione di sotto-rete

netmask

L’operazione di XOR fra l’indirizzo IP e la netmask consente di individuare l’indirizzo della sotto-rete. Dal punto di vista dei core router, che instradano i datagrammi sulla base del Net-id, il subnetting è trasparente

Page 33: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamento

Come determinare una rete:

Staccare ogni interfaccia dairouter / host

Creare “isole” di indirizzi IP

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.2223.1.2.1

223.1.2.6

223.1.3.2223.1.3.1

223.1.3.27

223.1.1.2

223.1.7.0

223.1.7.1223.1.8.0223.1.8.1

223.1.9.1

223.1.9.2

Il Il sistemasistema interconnessointerconnessoè è compostocomposto dada 6 sotto6 sotto--retireti

Page 34: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Schema di indirizzamentoEsempio di subnetting di una rete ethernet interconnessa

Page 35: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Indirizzamento IP: CIDRIndirizzamento per classi:

Uso inefficiente dello spazio degli indirizzi => si stanno esaurendorapidamenteEsempio: una organizzazione che necessita di alcune migliaia di indirizziIP è costratta a richiedere un blocco di classe B, che consente diindirizzare 64K host.

CIDR: Classless InterDomain RoutingLa porzione di rete dell’indirizzo può essere dimensione qualsiasiFormato degli indirizzi: a.b.c.d/x, dove x è il numero di bit nella porzionedi rete nell’indirizzo (numero di bit più significativi in comune nel blocco)

11001000 00010111 00010000 00000000

Parterete

Partehost

200.23.16.0/23

Page 36: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Indirizzamento IP: CIDR

In questo caso l’instradamento dei core router deve tener conto del formato variabile del Net-id

Per determinare il Net-id si usa la tecnica del “longestprefix match”, che consiste nel porre in AND l’indirizzo IP del datagramma con una netmask composta da x simboli “1”, i più significativi, e 32-x simboli “0”, con x che decrescente a partire da 32. Il processo si arresta quando viene individuato un indirizzo di rete noto

Se l’indirizzo di rete risulta sconosciuto il datagramma si instrada verso la porta di default

Page 37: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Come ottenere l’indirizzo IP

Porzione host-id dell’indirizzo:

Codificato dall’amministratore di sistema in un file

DHCP: Dynamic Host Configuration Protocol: serve adottenere dinamicamente l’indirizzo IP (approccio “plug-and-play”)

L’host invia in broadcast il messaggio “DHCP discover”Il DHCP server risponde con il messaggio “DHCP offer”L’host richiede l’indirizzo IP con il messaggio “DHCP request”DHCP server invia l’indirizzo con il messaggio “DHCP ack”

Page 38: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Come ottenere l’indirizzo IP

Porzione Net-id dell’indirizzo:

Porzione allocata dello spazio degli indirizzi dell’ISP

Blocco ISP 11001000 00010111 00010000 00000000 200.23.16.0/20

Organizzazione 0 11001000 00010111 00010000 00000000 200.23.16.0/23

Organizzazione 1 11001000 00010111 00010010 00000000 200.23.18.0/23

Organizzazione 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….

Organizzazione 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Page 39: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Indirizzamento Gerarchico

L’indirizzamento gerarchico permette di esportare in modoefficiente le informazioni di instradamento:

“Mandami i datagrammi conindirizzo che comincia per

200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

Fly-By-Night-ISP

Organization 0

Organization 7Internet

Organization 1

ISPs-R-Us “Mandami i datagrammi conindirizzo che comincia per

199.31.0.0/16”

200.23.20.0/23Organization 2

...

...

Page 40: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Indirizzamento Gerarchico

ISPs-R-Us esporta una strada più specifica verso Organization 1

“Mandami i datagrammi conindirizzo che comincia per

200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

Fly-By-Night-ISP

Organization 0

Organization 7Internet

Organization 1

ISPs-R-Us “Mandami i datagrammi conindirizzo che comincia per

199.31.0.0/16o

200.23.18.0/23”

200.23.20.0/23Organization 2

...

...

Page 41: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Indirizzamento IP: per finire …

Come può un ISP ottenere un blocco di indirizzi ?

Risposta: Internet Corporation for Assigned Names and Numbers (ICANN):

Alloca gli indirizziGestisce il servizio di Guida (DNS)Assegna i nomi ai domini, risolve le dispute

Page 42: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instradamento

Ogni datagramma IP attraversa un cammino composto da router e da sotto-reti

Quando un router consegna un datagramma ad una sotto-rete questo diventa una unità dati propria della sotto-rete

La rete individuale consegna tale unità dati al routersuccessivo o alla stazione host di destinazione (se questo è all'interno della rete stessa) con le stesse modalità con le quali tratta una qualsiasi unità dati

Page 43: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instradamento

Bridge

host mittente

router X

router Y

sub-rete A (X25)

sub-rete B (?)

host destinatario

LAN 1

LAN 2

INTERNETNet_id Data

PCI ? Net_id Data

PCIPCI tramapacchet. Net_id Data

MACLLC

Net_id Data

Net_id Data

Net_id Data

Net_id Data

Page 44: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instradamento

L'instradamento in Internet può essere suddiviso in due classi

direttoindiretto

L’instradamento diretto è possibile solo se l’hostdestinatario è connesso alla sotto-rete fisica nella quale il datagramma è presente. In particolare si effettua solo un instradamento diretto quando gli host mittete e destinatario si trovano nella stessa sotto-rete.

l’instradamento indiretto si applica quando l’host destinatario è connesso ad una sotto-rete diversa da quella in cui si trova l’host mittente

Page 45: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Tabelle di instradamento

Il meccanismo per l’instradamento in IP è basato su una tabella che ogni host o router mantiene allo scopo di conoscere le possibili destinazioni e le modalità per raggiungerle

Una tabella di instradamento contiene delle coppie (R,I) dove R è l’indirizzo della rete di destinazione e I è l’indirizzo del router successivo lungo la strada che porta alla rete di destinazione

La tabella di instradamento specifica quindi solo un passo lungo il cammino verso la destinazione

Un router non conosce quindi il cammino completo che il datagramma dovrà compiere

Page 46: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Tabelle di instradamento

20.0.0.5

20.0.0.6

30.0.0.6 40.0.0.7

30.0.0.7

Rete10.0.0.0

Rete20.0.0.0

Rete30.0.0.0

Rete40.0.0.0R1 R2 R3

10.0.0.5

Per raggiungere hostindirizzati alla rete:

indirizzare i datagrammiverso questa strada (o

router):20.0.0.0 inoltrare direttamente30.0.0.0 inoltrare direttamente10.0.0.0 20.0.0.540.0.0.0 30.0.0.7

Tabella di instradamento di R2

Page 47: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Algoritmo di instradamento del nodo X1)Estrazione dell’l’indirizzo IP di destinazione dal datagramma in arrivo2)se tale indirizzo coincide con quello di X (cioè con il nodo stesso) si estrae il

contenuto informativo e lo si consegna agli strati superiori per ulteriore elaborazione

3)altrimenti si determina la Net-Id dell’indirizzo e si decrementa il Time to Live del datagramma; se il Time to Live arriva a zero si scarta il datagramma

4)se la Net-Id coincide con quella di una sotto-rete alla quale è direttamente connesso il router X (cioè il router stesso) si invia il datagramma direttamente (cioè con instradamento diretto; ciò implica la traduzione dell’indirizzo IP in indirizzo fisico e l’incapsulamento nell’unità dati della rete in questione)

5)altrimenti se è stata richiesta una strada specifica si invia verso tale strada6)altrimenti se la Net-Id è compresa nella tabella di instradamento si inoltra il

datagramma come specificato nella tabella7)altrimenti, se è stata specificata una strada di default, si invia il datagramma al

default gateway8)altrimenti si dichiara un errore di instradamento e si scarta il datagramma

Page 48: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempio di invio di un datagrammaTabella di routing in A

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

Dest. Net. next router N hops223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

Datagramma IP:

miscfields

sourceIP addr

destIP addr data

Page 49: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempio di invio di un datagramma

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

Dest. Net. next router N hops223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

miscfields 223.1.1.1 223.1.1.3 data

Partendo da A, dato un datagramma IP indirizzato a B:

Guarda alla porzione retedell’indirizzo di B

Trova B nella stessa rete di A

Lo strato di collegamento invia ildatagramma direttamente a B dentro una trama di strato 2

B e A sono connessi direttamente

Page 50: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempio di invio di un datagrammamisc

fields 223.1.1.1 223.1.2.2 data

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

Dest. Net. next router N hops223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

Partendo da A, destinazione E:

Guarda alla porzione di retedell’indirizzo di E

E è su una rete differenteA ed E non sono direttamente connessi

Tabella di instradamento: ilprossimo salto (router) verso E è 223.1.1.4

Lo strato di collegamento invia ildatagramma al router 223.1.1.4 dentro una trama di stato 2

Il datagramma arriva a 223.1.1.4

Page 51: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempio di invio di un datagramma

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

Dest. Net router N hops interface223.1.1 - 1 223.1.1.4223.1.2 - 1 223.1.2.9223.1.3 - 1 223.1.3.27

nextmisc

fields 223.1.1.1 223.1.2.2 data

Arrivando a 223.1.1.4, destinato a 223.1.2.2

Guarda la parte di rete dell’indirizzodi E

E è sulla stessa rete dell’interfacciadel router 223.1.2.9

Router ed E sono direttamenteconnessi

Lo strato di collegamento inviaildatagramma a 223.1.2.2 dentro unatrama di strato 2 attraversol’interfaccia 223.1.2.9

Il datagramma arriva a 223.1.2.2

Page 52: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Determinazione delle tabelleLe tabelle di instradamento sono dinamiche: ogni router ed ogni host “imparano” nel tempo ed aggiornano le informazioni di instradamento

La necessità di un aggiornamento dinamico è dovuta al fatto che Internet non può essere considerata stabile; inoltre in caso di guasti alcune strade non sono utilizzabili

Se l’instradamento si basa su un algoritmo adattativo, allora l’aggiornamento deve anche tener conto di altre informazioni, come lo stato di occupazione delle risorse di rete

Le tabelle di instradamento devono quindi tenere conto di tutti questi cambiamenti ed essere aggiornate continuamente (anche ad intervalli di pochi secondi)

Questa operazione è attuata mediante opportuni protocolli che consentono ai router di comunicare

Page 53: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Sistemi autonomi

Si definisce come sistema autonomo un insieme di host, router e reti fisiche controllate da una singola autorità amministrativa; si distinguono anche router interni (core) ad un sistema autonomo e router di frontiera (edge-border)

I router all’interno di un sistema autonomo possono essere configuarti liberamente per utilizzare qualsiasi meccanismo per scoprire, comunicare ad altri routerinterni e controllare la consistenza dei percorsi

Ogni sistema autonomo deve però affidare in modo specifico ad uno o più dei suoi router il compito di informare il mondo esterno della sua topologia

Page 54: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instradamento in InternetLe informazioni di instradamento riguardanti le strade all’interno di un sistema autonomo sono gestite in proprio per mezzo degli Interior GatewayProtocol (IGP)

Le informazioni di instradamento riguardanti strade che coinvolgono più di un sistema autonomo sono effettuate mediante gli Exterior Gateway Protocol(EGP)

La Internet Globale consiste di Sistemi Autonomi (AS) interconnessi l’uno con l’altro:

Transit AS: fornitori solo del servizio di connettività ad altri ASStub AS: piccole corporazioni (un solo link verso un solo transit AS)Multihomed AS: grandi corporazioni (più link verso diversi transit AS)

Instradamento su due livelli: Intra-AS: l’amministratore è responsabile per le scelte algoritmicheInter-AS: standard unico

Page 55: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instradamento in Internet

Inter-AS border router (exterior gateway)

Itra-AS interior router (gateway)

Page 56: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Interior Gateway Protocol

Il modo in cui questi protocolli determinano le tabelle di instradamento può essere diverso, cioè basato sull’uso di diversi algoritmi, ognuno dei quali ha vantaggi e svantaggi

Gateway to Gateway Protocol (GGP)

Shortest Path First (SPF) e Open SPF (OSPF)

HELLO

Routing Information Protocol (RIP)

Interior Gateway Routing Protocol (IGRP)

Page 57: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

SPF (Shortest Path First)Il percorso migliore è determinato localmente mediante l’algoritmo di Dijkstra (secondo diversi criteri)

dal momento che la topologia cambia continuamente (per guasti edaggiunte od eliminazioni di link e di host) un continuo scambio di messaggi mantiene aggiornata la topologia memorizzata da ogni gateway

Il principale vantaggio di questo algoritmo è la velocità: al momento di determinare una strada l’algoritmo risponde immediatamente senzabisogno di interrogare altri gateway

Lo svantaggio principale è che per mantenere aggiornata la topologia di rete, è necessario un continuo scambio di messaggi.

Page 58: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

OSPF“Open”: disponibile in modo pubblico

Basato sull’algorotmo di Dijstra

L’OSPF Advertisement prevede una voce nella tabella esportata per tuttirouter vicini, che specifica la “distanza” da questi

Advertisements disseminati per l’intero AS (tramite flooding)

Include l’instradamento basato sul Service Type e quindi tiene conto delle richieste degli utenti in termini di prestazioni

Consente di bilanciare il carico in rete

Consente di dividere gerarchicamente un sistema autonomo

Le sue comunicazioni prevedono un’autenticazione per garantire la sicurezza

Page 59: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

OSPFSuddivisione gerarchica di un AS

Page 60: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

OSPF

Gerachia a due livelli: area locale, backbone.Link-state advertisements solo nell’area localeOgni nodo mantiene un topologia dell’area; conosce soltantodirezioni (cammino più corto) alle reti nelle altre aree.

Area border router: appartengono sia all’area specifica siaalla backbone.

Backbone router: OSPF routing limitato al backbone.

Boundary router: connessi ad altri AS.

Page 61: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

RIPAlgoritmo Distance Vector (Bellman-Ford)

È uno dei protocolli più usati, non perché abbia particolari vantaggi rispetto agli altri, ma perché è stato incluso nella Distribuzione BSD-UNIX nel 1982

Metrica delle Distanze: # di salti (max = 15 hop)massimo costo di un percorso fissato a 15aumenta artificialmente il numero di salti di un cammino attraverso reti lente

Distance Vector: messaggi scambiati ogni 30 secondi via ResponseMessage (chiamato anche Advertisement)

Ogni avviso include strade fino a 25 reti di destinazione

Se non pervengono avvisi dopo 180 sec => il link è dichiarato mortoLe strade per quel vicino sono invalidateNuovi avvisi inviati ai vicini

Page 62: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

RIP

Elaborazione delle Tabelle:Tabelle di Instradamento di RIP gestite da processi applicativichiamati route-d (d da daemon)Advertisements incapsulati in pacchetti UDP, ripetutiperiodicamente

Page 63: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

RIP

Router: giroflee.eurocom.fr

Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ ---------127.0.0.1 127.0.0.1 UH 0 26492 lo0 loopback192.168.2. 192.168.2.5192.168.2. 192.168.2.5 U 2 13 fa0 C193.55.114. 193.55.114.6193.55.114. 193.55.114.6 U 3 58503 le0 C192.168.3. 192.168.3.5192.168.3. 192.168.3.5 U 2 25 qaa0 C224.0.0.0 193.55.114.6 U 3 0 le0 multicastdefault 193.55.114.129 UG 0 143454 le0 (subnet 193.55.114)

Tre reti di classe C attaccate (LAN)

Router conosce solo strade attaccate alle LAN

Default router usato per uscire

Indirizzo multicast: 224.0.0.0

Interfaccia di Loopback (per il debugging)

Page 64: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Exterior Gateway ProtocolsExterior Gateway Protocol (EGP): classe di protocolli che svolgono tre funzioni:1.individuazione dei gateway logicamente adiacenti con i quali scambiare le

informazioni di instradamento; i gateway delegati allo scambio di informazioni possono essere separati anche da altri gateway

2.verifica continua della funzionalità dei gateway interlocutori3.scambio periodico delle informazioni di instradamento, contenute in

appositi messaggi; queste riguardano la sola raggiungibilità delle reti, non la distanza

4. Il protocollo EGP

Non tiene conto di alcuna metrica di distanza, ma comunica solo il percorso da seguire (dal momento che non può verificare se un percorso conviene rispetto ad un altro ne comunica uno solo)

Page 65: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

BGP (Border Gateway Protocol)Standard de facto

è una evoluzione dell'EGP, poiché lo scambio di informazioni consente ai gateway di costruire il grafo di connettività dei sistemi autonomiL'informazione sulla raggiungibilità delle reti ha ovviamente maggior impatto nel caso in cui sia presente, lungo il percorso tra un sistema autonomo sorgente e uno di destinazione, un certo numero di altri sistemi autonomi con funzioni di transitoCiò consente al protocollo la scelta tra più instradamenti disponibili e la possibilità di effettuare la ri-distribuzione del traffico

Protocollo Path VectorPath Vector :Simile al protocollo Distance Vector Il protocollo effettua la verifica dello stato di un link o di un host inviando periodicamente messaggi di keepalive (il periodo raccomandato è di 30 sec.).Ogni Border Gateway invia in broadcast ai vicini (peers) l’intero cammino(cioè la sequenza di AS) verso le destinazioni

Il Gateway X può inviare il suo cammino verso la destinazione Z:

Path (X,Z) = X,Y1,Y2,Y3,…,Z

Page 66: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

BGP

Il gateway X invia il suo cammino al peer gateway W

W può selezionare o non selezionare il cammino offerto da Xcosto, criteri di policy (non inoltrare strade/traffico verso un AS concorrente), criteri di prevenzione dei cicli chiusiconsente di utilizzare opportune politiche di restrizione per il traffico in transito, stabilite dal gestore del sistema e codificate in tabelle di configurazione, che vengono poi passate al protocollo

Se W seleziona il cammino esportato da X, allora:

Path (W,Z) = w, Path (X,Z)

Nota: X può controllare il traffico entrante controllando le stradeesportate ai peer:

Per esempio, se non vuole inoltrare traffico a Z => non esporta alcuncammino verso Z

Page 67: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

BGP

Messaggi BGP sono scambiati attraverso connessioni TCP semipermanenti (eBGP tra diversi AS, iBGP nello stessoAS).

I messaggi BGP:OPEN: apre una connessione TCP verso il peer e autentica il mittenteUPDATE: esporta un nuovo cammino (o ne toglie uno presente)KEEPALIVE mantiene la connessione viva anche in assenza diaggiornamenti (messaggi di UPDATE); inoltre riscontra (ACK) le richiestedi OPEN NOTIFICATION: riporta gli errori nei precedenti messaggi; usato anche per chiudere le connessioniROUTE-REFRESH: aggiunto successivamente (RFC 2918), serve chiedereconferma di un percorso esportato in seguito a una variazione di politica diinstradamento. Rappresenta un’alternativa ai precedenti meccanismi dimantenimento dei percorsi

Page 68: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

ICMP (Internet Control Message Protocol)

Il protocollo IP è senza connessione e non affidabile

Se un gateway non riesce ad instradare o a consegnare un datagramma o se riscontra situazioni anomale (tra cui congestione di rete) deve poter notificare il mittente del datagramma affinché siano attuate opportune operazioni per correggere il problema

Possibili problemi possono essere:un dispositivo di rete non funziona correttamente o non funziona del tutto (incluse le linee di collegamento)l’host di destinazione è temporaneamente o permanentemente disconnesso dalla reteil contatore del Time to Live arriva a zeroi gateway o le linee intermedie sono talmente congestionate da non poter gestire il traffico in transito

Page 69: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

ICMPI messaggi di ICMP sono trasportati in rete per mezzo dei datagrammi, incapsulati nella parte dati del datagramma IP

ICMP può quindi essere considerato un sub-strato di IP (visto che serve a trasportare messaggi tra due entità IP) ma è funzionalmente al di sopra di IP (visto che i suoi messaggi governano il funzionamento di IP).

La funzione di ICMP è solo di notifica degli errori all’host di origine e non specifica le azioni che devono essere prese per rimediare agli errori ed ai malfunzionamenti

Sarà poi l’host di origine a porre in relazione il particolare errore con il relativo programma applicativo (ad esempio con un protocollo di instradamento, o con IP) ed a decidere cosa fare per correggere il problema

ICMP notifica eventuali errori solo al gateway o all’host che ha originato un datagramma e non a gateway od host intermedi lungo la strada attraversata dal datagramma stesso, perché ogni datagramma contiene solo l’indirizzo del mittente e quello della destinazione e quindi non è possibile, esaminando un datagramma, scoprire che strada ha percorso.

Page 70: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

ICMPLa procedura di gestione dei datagrammi prevede un’unica differenza tra i datagrammi che trasportano i messaggi ICMP e gli altri:

non vengono generati messaggi ICMP in seguito ad errori causati da datagrammi che trasportano messaggi ICMPciò serve ad evitare messaggi di errore relativi a messaggi di errore.

Ogni messaggio ICMP è in relazione ad uno specifico datagramma (e non potrebbe essere altrimenti visto che IP è un protocollo senza connessione)

Un messaggio ICMP contiene quindi anche un identificativo del particolare datagramma che ha generato l’errore o la situazione anomala

Page 71: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

ICMP

CONTENUTO DEI MESSAGGI ICMP:

type

code

i primi otto byte del datagramma IP che ha causato l’errore.

Type Code description0 0 echo reply (ping)3 0 dest. network unreachable3 1 dest host unreachable3 2 dest protocol unreachable3 3 dest port unreachable3 6 dest network unknown3 7 dest host unknown4 0 source quench (congestion

control - not used)8 0 echo request (ping)9 0 route advertisement10 0 router discovery11 0 TTL expired12 0 bad IP header

Page 72: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Domain Name System

Il software implementato in Internet consente di utilizzare oltre alla notazione dotted anche un altro tipo di notazione (mnemonica):

“141.250.40.34”=“attila.diei.unipg.it”

E’ necessario che un opportuno software di rete traduca nomi in indirizzi e viceversa (il passaggio da notazione dotted a indirizzo di 32 bit è banale in quanto implica una semplice conversione decimale-binario)

Questa traduzione è attuata da un protocollo di alto livello implementato in un meccanismo noto come Domain NameSystem (DNS)

Page 73: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Attribuzione dei nomi

L’insieme dei nomi è prima partizionato in un certo numero di sotto-insiemi dal Network Information Center (NIC); il compito di assegnare i nomi all’interno di un sotto-insieme è delegato ad un’autorità di livello inferiore e così via

Un nome è composto da una serie di sotto-nomi separati da un punto. Ogni punto separa un’autorità da quella che gli è gerarchicamente inferiore

attila.diei.unipg.itautorità gerarchicamente inferiore

Page 74: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Attribuzione dei nomi

classificazione per tipologiaNome del dominio Tipo di organizzazione

COM CommercialiEDU Accademiche e didatticheGOV StataliMIL MilitariNET Centri di Gestione di Internet

ARPA ARPANET (obsoleto)INT Organizzazioni internazionali

ORG Altre organizzazioniFIRM Aziende, affari

STORE Merce in venditaWEB enfatizzante WWWARTS enfatizzante arte e culturaREC enfatizzante intrattenimento e

divertimentiINFO enfatizzante fornitori di

informazioneNOM enfatizzante nomenclature

personali

Page 75: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Attribuzione dei nomi

classificazione geograficaNome

deldominio

USA IT DE FR UK JP etc.

nazione USA Italia Germ. Franc. G.Br. Giapp. etc.

Page 76: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Attribuzione dei nomi

. Root Domain

usa

berkeley rutgers

... nasa netmil org edu

cany

gov

nsf

com

ibm dec

it

unipg

Page 77: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

DNS: local name server

Ogni host ha un local nameserver di riferimento (di cui conosce l’indirizzo numerico)

Solitamente, un local nameserver, è in grado di rispondere alle richieste relative ad indirizzi “vicini” a quello richiedente

Host richiedente

Localname server

(default)

1 query

2reply

UD

P Q

uery

UD

P R

eply

Page 78: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

DNS: root name serverSe il local name server non è ha conoscenza dell’indirizzo richiesto dall’host rivolge la domanda al root mane server.

Quest’ultimo può essere a conoscenza della corrispondenza tra indirizzo mnemonico e numerico; in caso contrario conosce l’authoritative name server a cui rivolgersi.

Host richiedente

1query

4reply

3reply

Localname server

Rootname server

2query

Page 79: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

DNS: authoritative name serverOgni host è registrato presso un authoritative name server. Questo è sempre in grado di risolvere la corrispondenza tra nome e indirizzo IP

In generale ci possono essere due o più name server tra il root e l’authoritative

Host richiedente

1query

6reply 5

replyLocal

name serverRoot

name server2

query3

query4

reply

Authoritativename server

Page 80: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempio

Host richiedenteinfocom.uniroma1.it

Localname server

dns.uniroma1.it

2query

3query

7reply

name serverdns.ucla.edu

8reply

Rootname server

1query

6reply

4query

5reply

Authoritativename serverdns.dept.ucla.edu

comnet.ucla.edu=128.119.40.111

Page 81: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Tipi di interazioni

L’interazione tra name server può essere di tipo ricorsivo:

di tipo iterativo (ad A viene dato l’indirizzo del server C che può soddisfare la richiesta):

AB

C

A

B

C

Page 82: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Bilanciamento del carico

Il DNS viene anche usato per bilanciare il carico distribuendolosu server che replicano le stesse informazioni le varie richieste.

Esempio: Siti molto frequentati (es. cnn.com) sono replicati su più server web con indirizzi IP diversi.Un insieme di indirizzi IP è associato (nel DNS) allo stesso nome canonico. Quando un client chiede di risolvere il nome in indirizzo IP viene fornito l’insieme di indirizzi IP, ma in ordine differente ogni volta. Normalmente un client userà il primo indirizzo IP fornitogli.

Concetto di Content Distribution Networks:Il fenomeno del caching dei nomi sui sistemi intermedi può ridurre l’efficienza di uno schema (ad esempio a rotazione dei nomi) basato esclusivamente sul DNS

Page 83: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Traduzione di indirizzi

Ogni calcolatore collegato ad una rete ha un indirizzo che lo contraddistingue nell’ambito di quella rete (ad. es. indirizzo Ethernet contenuto nella scheda fisica del calcolatore, numero telefonico, indirizzo X.25, etc.)

Internet necessita di protocolli che permettano di associare dinamicamente gli indirizzi degli host nell’ambito delle loro reti di appartenza ai relativi indirizzi IP

La funzionalità di un tale protocollo è legata unicamente alla rete a cui è collegato il calcolatore

Page 84: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Traduzione di indirizzi

Il protocollo ARP (Address Resolution Protocol) permette di associare dinamicamente l'indirizzo fisico all'indirizzo IP e aggiorna contemporaneamente la tabella ARP contenente le corrispondenze già risolte

La tabella svolge la funzione di cache, cioè permette di ottenere rapidamente quelle informazioni che vengano richieste ripetutamente in brevi intervalli di tempo

Periodicamente le informazioni vengono cancellate in modo da garantire la consistenza con le mutate condizioni della topologia di rete

Page 85: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Traduzione di indirizzi

Il protocollo RARP (Reverse Address Resolution Protocol) è utilizzato da calcolatori connessi in rete, e privi di sistemi di memorizzazione di massa, per determinare, durante la fase di inizializzazione, il proprio indirizzo IP a partire dall’indirizzo fisico della particolare interfaccia di rete

Il RARP server una volta ricevuta la richiesta risponde inviando l’indirizzo IP cercato

Page 86: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Esempi

FTP

Comando utente:“ftp nic.switch.ch”DNS

l’indirizzo IP corrispondente è “130.59.1.40”

UDPrisolvi il nome “nic.switch.ch”

TCP

IPL’indirizzo 130.59.1.40

appartiene alla sotto-rete locale?

Si: instradamento diretto:invia il datagramma

a destinazione

No: instradamento indiretto:invia il datagramma al router di

defaultARP:richiedi l’indirizzo

MAC corrispondenteall’indirizzo IP

richiesta ARP: 130.59.1.40

risposta ARP: 00:12:c3:4b:3a:01Bus Ethernet

Page 87: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

User Datagram Protocol (UDP)Protocollo di trasporto “senza fronzoli”

Senza connessione:Nessuna procedura di handshaking tra il mittente ed il destinatarioOgni segmento UDP viene gestito in modo indipendente dagli altri

Offre soltanto il servizio di multiplazione agli applicativi

Perché è stato definito UDP?Nessuna instaurazione di connessione (che può aggiugere ritardo)Semplice: nessuno stato per le connessioni al mittente/ricevitorePiccola intestazione nei segmentiNessun controllo della congestione: UDP può trasmettere i dati senzacondizionamenti dalla rete

Page 88: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

UDP

Spesso usato per applicazionidi streaming multimediale:

Tolleranti alle perditeSensibili al ritmo trasmissivo

Altri usi di UDP:DNSSNMP

Trasferimento affidabile sopraUDP: l’affidabilità è aggiunta a livello applicativo

Recupero di errore specificodell’applicazione

32 bits

source port # dest port #

Dati dell’applicazione(messaggio)

length checksum

Lunghezza, inbyte del

segmento UDP,intestazione

inclusa

Formato del segmento UDP

Page 89: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

UDP

Checksum: rilevare gli “errori” nel segmento trasmesso

Lato mittente:Tratta il contenuto del segmento come una sequenza di interi di 16-bit Checksum: complemento a 1 del contenuto del segmentoIl mittente inserisce il valore della checksum nel campo checksum di UDP

Ricevitore:Calcola la checksum del segmento ricevutoControlla se il valore ottenuto è uguale a quello del campo checksum:

– NO => è stato rilevato un errore– SI => non sono stati rilevati errori. Tuttavia questo non implica che il

segmente ne sia esente …

Page 90: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Transmission Control Protocol (TCP)

E’ un protocollo:con connessionecontrollo e recupero di errorecontrollo di flussori-ordinamento delle unità informativeindirizzamento di uno specifico utente all’interno di un host

Trasferisce un flusso informativo continuo e bi-direzionale ed effettua operazioni di multiplazione e de-multiplazione

Page 91: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP

Un indirizzo IP identifica solo un host e non gli utenti o i processi attestati ad un host. Compito di TCP è quindi anche quello di distinguere tra i diversi programmi applicativi ed i diversi utenti che fanno uso di un host

L'indirizzo di un utente in TCP è denominato "port", mentre l'indirizzo completo in TCP/IP è denominato "socket" ed è costituito da:

port@IP_Address=port@Host_Id.Net_Id

[email protected]

[email protected]

Page 92: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP

La componente "port" è contenuta nell'intestazione dell’unità dati di TCP, mentre la componente IP_Address è contenuta nell'intestazione dell’unità dati di IP

Questo significa che tutte le connessioni in atto tra due specifici host useranno lo stesso indirizzo IP di sorgente e lo stesso indirizzo IP di destinazione

Saranno perciò distinte solo a strato TCP. Ne segue che queste connessioni possono essere viste come multiplatesu un unico indirizzo IP ovvero su di un unico “canale” IP di comunicazione

Page 93: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP

Essendo TCP un protocollo con connessione, saranno presenti le fasi di instaurazione, trasferimento dati ed abbattimento

TCP accetta dal livello superiore messaggi senza vincoli sulla loro lunghezza, li frammenta e li invia in datagrammidistinti

Intestazione TCP(contiene

l’indirizzo diport)

TCP Data

⇓ ⇓IP Data

⇓Intestazione IP

(contienel’indirizzo IP)

Page 94: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati (1/5)

Le unità-dati dello strato TCP sono dette segmenti

0 4 10 16 24Source Port Destination Port

Sequence NumberAcknowledgement Number

Offset Reserved Control WindowCheck sum Urgent Pointer

Options PaddingDataData...

31

Page 95: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati (2/5)

Source Port (16 bit): definisce l'indirizzo logico del processo sorgente dei dati.Destination Port (16 bit): definisce l'indirizzo logico del processo destinatario dei datiSequence Number (32 bit): numero di sequenza in trasmissione; contiene il numero di sequenza del primo byte di dati contenuti nel segmento a partire dall'inizio della sessione (se SN=m ed il segmento contiene n byte il prossimo SN sarà pari a m+n)Acknowledgement Number (32 bit): numero di sequenza in ricezione; nei segmenti in cui il bit ACK, presentato più avanti, è “settato” a uno, contiene il numero di sequenza del prossimo byte che il trasmettitore del segmento si aspetta di ricevere

– Nel caso di connessioni interattive bi-direzionali avviene il piggybackingdegli acknowledgement (nel senso che si utilizzano i segmenti di risposta contenenti dati di utente per inviare gli acknowledgement al trasmettitore senza dover inviare dei segmenti appositi)

Page 96: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati (3/5)

Offset (4 bit): contiene il numero di parole di 32 bit contenutenell'intestazione di TCP. L'intestazione di TCP non supera quindi i 60 byte ed inoltre è sempre costituito da un numero di bit multiplo di 32Reserved (6 bit): riservato per usi futuri, per ora contiene degli zeriWindow (16 bit): larghezza della finestra; contiene il numero di byte che, a cominciare dal numero contenuto nel campo Acknowledgement Number, il trasmettitore del segmento è in grado di ricevere. SI noti che il controllo di flusso è orientato al byteChecksum (16 bit): contiene la sequenza che permette al TCP ricevente diverificare la correttezza del segmento

Page 97: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati (4/5)

Control bit (6 bit): i bit di controllo sono:– URG: viene “settato” a uno quando il campo urgent pointer contiene un

valore significativo;

– ACK: viene “settato” a uno quando il campo Acknowledgement Numbercontiene un valore significativo;

– PSH: viene “settato” a uno quando l'applicazione esige che i dati forniti vengano trasmessi e consegnati all'applicazione ricevente prescindendo dal riempimento dei buffer allocati fra applicazione e TCP e viceversa (solitamente infatti è il riempimento dei suddetti buffer che scandisce la trasmissione e la consegna dei dati);

– RST: viene “settato” a uno quando un malfunzionamento impone il reset della connessione;

– SYN: viene “settato” a uno solo nel primo segmento inviato durante il 3-way handshaking (fase di sincronizzazione fra le entità TCP);

– FIN: viene “settato” a uno quando la sorgente ha esaurito i dati da trasmettere.

Page 98: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Formato dell’unità dati (5/5)

Urgent Pointer (16 bit): contiene il numero di sequenza del byte che delimita superiormente i dati che devono essere consegnati urgentemente al processo ricevente. Tipicamente sono messaggi di controllo che esulano dalla comunicazione in senso stretto. A tale traffico ci si riferisce di solito con il nome di out-of-bandOptions (di lunghezza variabile): sono presenti solo raramente: le più note sono End of Option List, No-operation e Maximum Segment Size (più brevemente MSS). Padding (di lunghezza variabile): contiene sempre degli zeri. Serve come riempitivo aggiunto per far sì che l'intestazione abbia una lunghezza multipla di 32 bit

Si noti che le unità dati di TCP possono trasportare solo messaggi di controllo (ad. es. per instaurare o abbattere una connessione) o solo dati di utente o entrambi. TCP usa il campo Control per specificare la funzione ed il contenuto di un segmento

Page 99: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessioneLe due entità TCP interagenti si sincronizzano scambiandosi il proprio numero di sequenza iniziale, che rappresenta il numero a partire dal quale tutti i byte trasmessi, una volta instaurata la connessione, saranno sequenzialmente numerati

il numero di sequenza in trasmissione non può iniziare da una dato valore fisso; ogni volta che si instaura una nuova connessione bisogna scegliere il numero di sequenza da cui partire in modo casuale mediante un’opportuna sincronizzazione, necessaria per risolvere potenziali situazioni anomale; IP non è affidabile e quindi i datagrammi possono andare persi, essere ritardati, duplicati o consegnati fuori sequenza.

TCP ri-trasmette i segmenti persi dopo un certo time-out

Possono nascere dei problemi se richieste originali e ri-trasmesse arrivano mentre una connessione sta per essere instaurata o se richieste ri-trasmesse sono ritardate ed arrivano dopo che una connessione è stata instaurata, usata o rilasciata, quindi può accadere che un segmento appartenente ad una “vecchia” connessione entri in un host dopo che tra gli stessi processi relativi a quel segmento sia stata instaurata una nuova connessione

Page 100: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessione

Ogni host usa un clock (non sincronizzato con gli altri) che incrementa un contatore a passi di 4 ms

Quando si inizia una nuova connessione, il numero di sequenza intrasmissione è posto uguale a questo contatore (questa procedura equivale semplicemente alla generazione di un numero pseudo-casuale)

L’host destinatario risponde con un numero di sequenza in ricezione uguale a quello in trasmissione del mittente ed usa un numero di sequenza in trasmissione uguale al suo contatore

Infine il mittente conferma nel suo numero di sequenza in ricezione il numero di sequenza in trasmissione del destinatario e comincia a trasmettere

Il destinatario comincia a trasmettere solo dopo aver ricevuto quest’ultimo terzo segmento. Tale meccanismo è noto come three way handshake.

All’instaurazione della connessione, prima di cominciare a trasmettere di dati, vengono impostate le variabili del TCP sui due host remoti:

Memoria per i dati (buffer)Finestra in ricezione

Page 101: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessioneCon il clock usato, il campo contenente il numero di sequenza (di 32 bit) impiega circa 4 ore (4 ms*232=4.7 ore) per compiere un ciclo completo (N(s) si sceglie in modo pseudo-casuale tra 0 e 4.294.967.295)

Poiché il contatore viene incrementato ad una velocità molto superiore a quella relativa al numero di sequenza di una qualsiasi connessione (almeno alle attuali velocità disponibili in rete), questo meccanismo risolve i problemi visti sopra

In tal modo è estremamente improbabileimprobabile che due datagrammi portino informazioni di controllo non coerenti (poiché, se erano relative a connessioni diverse, avranno dei numeri di sequenza abbastanza lontani tra loro e, in tal caso, uno dei due non sarà accettato)

Page 102: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessione

ULP BULP B

TCP B

Passiveopen

Open Id

Opensuccess

ULP AULP A

TCP A

Open Id

Opensuccess

Activeopen

1) SYN_segment (SYN, ISN=x)

2) SYN_segment (SYN, ACK, Ack_N=x+1, ISN=y)

3) ACK_segment (ACK, Ack_N=y+1)

Connessione

ULP=Upper Layer Protocol

Page 103: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessione

Chiusura di unaconnessione TCP => il Client chiude il socket locale;

Passo 1: il sistema terminaleClient invia il segmento dicontrollo FIN al Server

Passo 2: il Server riceve ilFIN, replica con l’ACK. Poi chiude la connessione ed invia il FIN.

client

FIN

server

ACK

ACK

FIN

ClosePasso 1

ClosePasso 2

closedti

med

wai

t

Page 104: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessione

Passo 3: il Client riceve il FIN, replica con l’ACK.

Entra nello stato “timed wait” (30, 60 120 sec): risponderà con ACK ad eventuali FIN inviati dalserver per perdita dell’ACK

Passo 4: il Server ricevel’ACK. La connessione è chiusa.

Nota: con piccole modifiche, si possono gestire in modosimultaneo i FIN. closed

client server

FIN

ACK

tim

ed w

ait

ACK

FINclosing

Passo 3

closing

closed

Passo 4

Page 105: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessioneSe una connessione non può essere chiusa secondo la procedura normale, a causa di situazioni anomale, o se un programma applicativo è forzato a chiudere immediatamente una connessione, TCP prevede una procedura di reset

Tale procedura consiste nell’inviare un segmento con il bit RST ”settato”. Alla ricezione di tale segmento la connessione è immediatamente terminata senza scambio di ulteriori messaggi e TCP ne informa i programmi applicativi

A volte è necessario inviare dei dati urgenti (denominati “out of band”) senza aspettare che l’entità ricevente finisca di elaborare i dati precedentemente trasmessi

Si fa notare che una rilevante quantità di dati potrebbe essere “in viaggio” verso l’entità ricevente, memorizzata nei gateway lungo il cammino della connessione e nella coda di entrata dell’host remoto. Ad esempio, quando TCP è usato per stabilire una sessione Telnet (emulazione di terminale), un utente potrebbe decidere di inviare un segnale di “interrupt” che termini l’applicazione remota

Page 106: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Instaurazione e rilascio di una connessioneIl segnale di interrupt deve poter essere inviato senza aspettare che l’host remoto elabori tutti i dati già inviati, altrimenti un utente non sarebbe in grado di far cessare l’esecuzione di un programma al momento voluto

A tal fine TCP prevede l’invio di “dati urgenti” che hanno priorità su tutti gli altri dati già inviati e vengono trasmessi immediatamente al processo remoto

Quando i dati urgenti sono stati elaborati, il processo remoto riprende in esame i dati “normali”. Il meccanismo usato da TCP per inviare dati urgenti consiste nel ”settare” il bit URG del segmento e di inserire nel campo UrgentPointer il numero di sequenza del byte che delimita superiormente i dati che devono essere consegnati urgentemente al processo ricevente

Page 107: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di errore

La strategia utilizzata per il recupero di errore è basata sull’uso di finestre in trasmissione ed in ricezione

TCP vede il flusso di dati in trasmissione come una sequenza di ottetti e quindi la finestra in trasmissione opera a livello di ottetto invece che a livello di trama o pacchetto

Gli ottetti sono numerati sequenzialmente a partire dal numero pseudo-casuale scelto durante il 3-way handshaking. La finestra in trasmissione specifica quindi il numero di ottetti che possono essere inviati senza ricevere un acknowledgement

Il mittente utilizza anche un meccanismo di time-out (TO); dopo avere inviato un segmento aspetta un certo tempo e, se non riceve una conferma, assume che il segmento si sia perso.

Page 108: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di erroreLa determinazione del time-out in Internet è complessa:

Una connessione può attraversare una sola LAN ad alta velocità o seguire un percorso attraverso numerosi gateways attraversando reti telefoniche a bassa velocità in diversi continentiNormalmente tale tempo è scelto pari al round-trip delay (RTD) più il tempo necessario al destinatario per rispondere (il round trip delay è il tempo impiegato da un’unità dati per andare dal mittente al destinatario e tornare indietro). TCP misura dinamicamente il Round Trip Delay ed aggiorna il time-out di conseguenza

Una scelta errata porterebbe a molti inconvenienti. Ad esempio si considerino i seguenti eventi:

se la rete è congestionata, i ritardi aumentanoa causa di una scelta errata del time-out, alcuni segmenti vengono considerati persi, anche se in realtà non lo sono, e quindi ri-trasmessiciò aumenta la congestione che causa ancora ri-trasmissioni finché la portata tende a zero

Page 109: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Generazione degli ACK del TCPDefinita dalle RFC 1122 e 2581

Evento

Arrivo dei segmenti in ordine, senza buchi.Ogni altra cosa già riscontrata

Arrivo dei segmenti in ordine, senza buchi.Un ACK ritardato pendente

Arrivo dei segmenti fuori ordinepiù alto dell’ISN attesoRilevato un buco nei dati

Arrivo di segmenti che parzialmenteo completamente riempiono il buco

Azione del TCP ricevente

ACK ritardato, aspetto fino a 500 msper l’arrivo del prossimo segmento (Silly Window Syndrome) - Se non arriva, invia l’ACK

Invia immediatamente un singolo ACKcumulativo

Invia ACK duplicati, indicando l’ISNdel prossimo byte atteso

Riscontra immediatamente se il segmentocominincia all’estremo inferiore del buco

Page 110: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP: scenari di ritrasmissione

Host A Host BHost A

Seq=92, 8 bytes data

ACK=100

lossTim

e-ou

t

timescenario con ACK perso

Host B

X

Seq=92, 8 bytes data

ACK=100

Seq=100, 20 bytes data

ACK=100

Seq=

92 t

imeo

ut

time

Seq=92, 8 bytes data

ACK=120

Seq=92, 8 bytes data

Seq=

100

tim

e-ou

t

ACK=120

timeout prematuro, ACK cumulativi

Page 111: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP Round Trip Delay e Timeout (1/2)

Come impostare il timeout del TCP ?

PiùPiù lungolungo del RTDdel RTDIl RTD può variare

Troppo corto: timeout prematuro:

Ritrasmissioni non necessarie

Troppo lungo: reazione lentaalla perdita di segmenti

Come stimare il RTD ?

Campionare il Round Trip Delay (sampleRTD): il tempo misuratodalla trasmissione di un segmento fino alla ricezionedell’ACK relativo:

Ignora le ritrasmissioni, i segmentisono riscontrati in modocumulativo

sampleRTD varierà, se ne vuolefare una stima “smussata”, “mediata”:

Usa parecchie misure recenti, non soltanto l’ultimo campione

Page 112: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP Round Trip Delay e Timeout (2/2)Media mobile esponenziale pesata

L’influenza di ogni campione decresce in modo esponenziale

EstimatedRTDEstimatedRTD = (1= (1--x)*x)*EstimatedRTDEstimatedRTD + x*+ x*SampleRTDSampleRTD

Valore tipico di x pari a 0.1 o 0.125

Come impostare il timeout

EstimtedRTD + un certo “margine di sicurezza”

Una grande variazione nel EstimatedRTD implica un margine disicurezza più ampio:

Timeout = Timeout = EstimatedRTDEstimatedRTD + 4*Deviation+ 4*Deviation

Deviation = (1-x)*Deviation +x*|SampleRTD-EstimatedRTD|

Page 113: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di flusso

Il controllo di flusso, in questo contesto, è una procedura tra la sorgente ed il destinatario delle informazioni intesa a limitare, in funzione delle risorse a disposizione, il flusso dei dati, prescindendo dal traffico presente nella rete

Tale meccanismo è indispensabile in Internet dove calcolatori di dimensione e velocità molto diverse comunicano tra loro; il più lento dei due deve poter rallentare l’emissione di informazione dell’altro

Il controllo della congestione ha invece lo scopo di recuperare situazioni di sovraccarico nella rete

Page 114: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di flussoIl controllo di flusso nel protocollo TCP è implementato mediante un meccanismo a finestra di tipo sliding window orientata al byte, nel senso che la finestra rappresenta, istante per istante, il numero massimo di byte che possono essere trasmessi verso il destinatario

Lo schema è quindi basato sul campo Window (16 bit) in cui il destinatario scrive la larghezza (in byte) della finestra di trasmissione che il mittente dovrà usare dal quel momento in poi

La finestra comunicata dal ricevitore, Advertised window, rappresenta dunque anche la disponibilità di buffer in ricezione

Si noti che il ricevitore la può variare dinamicamente, informando il trasmettitore, avendo presente però che quest'ultimo la modificherà solo dopo aver ricevuto dati, corretti ed in sequenza, che abbiano "riempito" le finestre precedentemente offerte

Page 115: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di flussoLa finestra comunicata dal ricevitore, Advertised window, rappresenta dunque anche la disponibilità di buffer in ricezione

Si noti che il ricevitore la può variare dinamicamente, informando il trasmettitore, avendo presente però che quest'ultimo la modificherà solo dopo aver ricevuto dati, corretti ed in sequenza, che abbiano "riempito" le finestre precedentemente offerte

Problema della finestra errata (Silly Window Syndrome): se lo spazio disponibile in ricezione diventa nullo, appena se ne libera una minima quantità il mittente viene avvertito:

Si può arrivare alla situazione limite in cui mittente e destinatario si autosincronizzano sulla trasmissione di un singolo byte di dati => overhead del 4000%. Per ridurre gli effetti negativi di questo fenomeno:

– Lato destinatario: quando arriva un segmento, si ritarda l’invio dell’ACK di massimo 500 ms (in questo modo si dà tempo al processo in ricezione di “pescare” dati dal buffer del TCP). Se nel frattempo un altro segmento corretto è arrivato, si riscontrano immediatamente in modo cumulativo. Si invia un ACK immediatamente se lo spazio disponibile è di almeno un MSS o del 50% del buffer in ricezione.

– Lato mittente (l’applicazione genera i dati lentamente, cioè segmenti più piccoli del MSS): se i dati precedenti sono stati trasmessi, ma la ricezione non è stata confermata, non inviare ulteriore segmenti fino all’arrivo di un ACK o alla creazione di un segmento di dimensione massima (MSS). Applica la regola anche con il “push”

Page 116: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di flusso

Il mittente non manderà in overflow il buffer del

ricevitore trasmettendotroppo e troppo velocemente

Controllo di flusso Ricevitore: esplicitamenteinforma il mittente dellaquantità di memoria libera(che cambia in mododinamico)

RcvWindow field nelsegmento TCP

Mittente: mantiene la quantitàdi dati trasmessi e non ancora riscontrati, devonoessere in quantità inferioreal valore recentementericevuto nella RcvWindow

RcvBuffer = dimensione del buffer del ricevitore del TCP

RcvWindow = quantità di spazio libero nel buffer

receiver buffering

Page 117: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di congestioneIl controllo della congestione ha lo scopo di recuperare situazioni di sovraccarico nella rete

Il meccanismo sliding window di TCP funziona da estremo ad estremo e quindi, in linea di principio, non può essere usato in modo efficiente per il controllo di congestione.

Tuttavia seppure in modo implicito, e con alcune limitazioni, lo schema slidingwindow di TCP può proteggere sia il destinatario che, in caso di congestione, la rete

Se la rete è congestionata arriveranno, per una data larghezza di finestra, meno riscontri

Ciò forza il destinatario ad emettere meno informazione

Inoltre siccome TCP effettua misurazioni sul round trip delay, il time-out sarà stimato in modo opportuno e si eviteranno ri-trasmissioni che porterebbero ad un aumento della congestione invece che ad una sua diminuzione

TCP può utilizzare il round trip delay come misura di congestione e quindi per decidere opportunamente la larghezza della finestra

Page 118: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di congestioneSi considera lo scadere di un time-out come un sintomo di congestione delle risorse di interconnessione

Algoritmi implementati nelle versioni più comuni del TCP:Slow start +Congestion avoidanceFast restransmit + Fast recovery

“Testare” la rete per scoprire la larghezza di banda utilizzabile:idealmente: trasmettere il più veloce possibile (il valore di Congwin più grande possibile) senzaperditeincrementare Congwin fino a riscontrare le perdite (sintomo di congestione)perdita: decrementa Congwin, poi ricomincia a testare di nuovo la rete (incrementa Congwin)

Due “fasi” principalislow startcongestion avoidance

Variabili importanti:Congwin

threshold: definisce la soglia tra la fase di slow start phase e quella di congestion control

Page 119: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Controllo di congestione

Ritmo di trasmissione limitato dalla dimensione della finestra dicongestione, CongwinCongwin, sui segmenti:

Congwin

w segmenti, ognuno con MSS byte inviati in un RTD:Problemi di efficienza nel caso di reti con elevato prodotto banda*ritardo

portata = w * MSSRTD Byte/sec

Page 120: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Ritmo complessivo di trasmissione dati

Finestra di trasmissione risultante dai due processi di:Controllo di congestione (CongwinCongwin)Controllo di flusso (RcvWindowRcvWindow)

TrWindowTrWindow = min (= min (CongwinCongwin, , RcvWindowRcvWindow))

Page 121: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP Slowstart

Host A Host B

inizializazzione: Congwin= 1for (ogni segmento riscontrato)

Congwin++until (evento di perdita) OR

(CongWin > threshold)

Algoritmo Slowstart 1 segmento

RTD

time

2 segmenti

4 segmenti

Incremento esponenziale (per ogni RTD) nella dimensione della finestra (partenzalenta ?)

Evento di perdita: timeout (Tahoe TCP) e/o 3 ACK duplicati (Reno TCP)

Page 122: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP Congestion Avoidance

/* Lo slowstart è finito */ /* Congwin > threshold */Until (evento di perdita) {ogni ww segmenti riscontrati:Congwin++

}threshold = Congwin/2Congwin = 1Effettua lo slowstart

Congestion avoidance

1

Il TCP Reno evita lo slowstart (procedura di fast recovery) dopo 3 ACK duplicati: procedura di fast retransmit => innesca la ritrasmissione senza aspettare il timeout

Page 123: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP FairnessAIMD: additive increase, multiplicative decrease

Incrementa la finestra di 1 per ogni RTDDecrementa la finestra di un fattore 2 per ogni evento di perdita

Se N TCP sessioni condividono lo stesso collegamento“bottleneck”, ognuna dovrebbe ottenere 1/N della capacitàdel collegamento

Bottleneck routerdi capacità R

Connessione TCP 1

Connessione TCP 2

Page 124: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

TCP è equo ?

Esempio di due sessioni in competizione per la banda su un link:

Additive increase fornisce una pendenza di 1, quando la portata cresce

Multiplicative decrease decrementa la portata in modo proporzionale

R

R

Uguale divisione della banda

Portata Connessione 1

Port

ata

Conn

essi

one

2

congestion avoidance: incremento additivoperdita: decrementa la finestra di un fattore 2

congestion avoidance: incremento additivoperdita: decrementa la finestra di un fattore 2

Page 125: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Punti a favore di Internet

Esiste e cresce:40 milioni di utenti su 5 milioni di hosts su 50000 sotto-reti interconnesse in 86 paesi; il numero di utenti raddoppia ogni anno e il numero di server WWW raddoppia ogni 2 mesi (Ottobre 1995)

IP è senza connessione:deve “solo” inoltrare i datagrammi, non effettua controllo di errore e di flusso (e quindi opera facilmente sopra diverse tipologie di sotto-rete)non deve mantenere informazioni sullo stato delle connessioni (robustezza ai guasti)semplicità del codice (in una rete con connessione, circa il 90% del codice serve a trattare condizioni di errore)scalabilità (IP “gira” facilmente attorno a sistemi guasti)facilità di riconfigurazione e di aggiunta/eliminazione di host e sotto-reti (soft local states vs. hard global states)disponibilità di applicazioni (client/server) (gratuite)

Page 126: Lezione 6 Internet Gianluca Realiconan.diei.unipg.it › RetiNew › lucidiFI › Lezione 6.pdf · Lezione 6 Architettura protocollare ¾L’insieme di protocolli TCP/IP riesce a

Lezione 6

Limiti attuali di Internet

Limiti di portata (commutazione “software”)

Assenza di garanzia sulla Qualità di Servizio (IPv6 introduce il concetto di flussi) (RSVP)

Altre problematiche:Esaurimento dello spazio degli indirizzi, assenza di gerarchie di indirizzi (superato da IPv6: indirizzi di 128 bits contro i 32 di IPv4 -> 665*10^21 per metro quadro del pianeta) (auto-configurazione)Confidenzialità e autenticazione (superato da IPv6 o con protocolli da estremo a estremo)