1 / 132

Strato rete in Internet

Strato rete in Internet. Gruppo Reti TLC nome.cognome@polito.it http://www.tlc-netwroks.polito.it/. Internet protocol suite. Application. Telnet FTP SMTP SNMP. NFS. Presentation. XDR. Session. RPC. Transport. TCP e/o UDP. Network. IP. ICMP. Protocolli di routing. ARP | RARP.

taini
Download Presentation

Strato rete in Internet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it http://www.tlc-netwroks.polito.it/

  2. Internet protocol suite Application Telnet FTP SMTP SNMP NFS Presentation XDR Session RPC Transport TCP e/o UDP Network IP ICMP Protocolli di routing ARP | RARP Data Link Non Specificati Physical OSI Internet Protocol Suite

  3. IP: Internet Protocol • Livello rete dell’architettura TCP/IP • Offre un servizio • non connesso • inaffidabile • best-effort • senza garanzie di qualità di servizio

  4. Il protocollo IP • È un protocollo di strato rete (strato 3) • Si occupa quindi dell’indirizzamento e instradamento dei pacchetti (detti datagram) • La consegna dei pacchetti IP è: • connectionless • ogni pacchetto trattato in modo indipendente • inaffidabile (unreliable) • perdita, duplicazioni, ritardi • non distingue tra diversi tipi di traffico (no priorità, tratta tutti in modo best-effort)

  5. Protocollo IP • Consegna inaffidabile • In caso di guasti (es. un router fuori servizio, collegamento non disponibile) • scarta il datagram • cerca di inviare un messaggio di errore al mittente • Consegna connectionless • Non conserva informazioni di stato sui datagram in corso di trasmissione • Ogni datagram instradato in modo indipendente • Due pacchetti con stessa sorgente e destinazione possono seguire percorsi diversi

  6. Intestazione pacchetto IP 0 0 4 8 16 19 24 31 Version HLEN Service Type Total Length Fragment Offset Identification Flags Protocol Header Checksum Time To Live Source IP Address Destination IP Address Options PAD

  7. Intestazione pacchetto IP: i campi • VER: versione del protocollo IP • HLEN: lunghezza dell’header in parole da 32 bit (se opzioni assenti, vale 5) • Type of service (TOS): tipo di servizio richiede il datagram (minimize delay, maximize throughput, maximize reliability, minimize cost ). Ignorato dai router. • Total Length: lunghezza del datagram in byte (incluso header). Dimensione massima 65535 byte

  8. Frammentazione • Ogni rete ha massima dimensione ammessa • MTU (Maximum Transfer Unit) Ethernet 1.5 kB • Quando devo attraversare rete con MTU più piccola del datagram si deve frammentare • Frammenti • diventano datagram indipendenti, con intestazione quasi uguale a quella del datagram originario • ricostruiti solo alla destinazione, mai nei router • Frammentazione trasparente a sorgente e destinazione

  9. Frammentazione • La frammentazione è dannosa • aumento overhead di intestazione, duplicato su ogni frammento • perdita di un frammento comporta la perdita al ricvevitore di tutto il datagram; aumenta la probabilità di errore • ricevitore deve attivare timer di attesa arrivo frammenti e riassemblare • I router IP però non si devono occupare di riassemblare frammenti

  10. Intestazione pacchetto IP: i campi • Identification, Flags, Fragment offset: controllano operazioni di frammentazione • Identification: permette di riconoscere a quale datagram il frammento appartiene (frammenti dello stesso datagram hanno stesso valore deciso da chi genera datagram) • Fragment offset: specifica offset dati contenuti nel frammento, in multipli di 8 byte • Flags (2 bit): don’t fragment e more fragments (identifico ultimo frammento)

  11. Intestazione pacchetto IP: i campi • TTL (time to live): • tempo di vita (in hop) di un datagram • Ogni router decrementa di 1 il valore di TTL • Se TTL=0 scarta datagram ed invio messaggio di errore • Protocol: formato dei dati specificando un protocollo di livello superiore • Header Checksum (16 bit): controllo di errore sulla sola intestazione, non sui dati utente. Somma in complemento a 1 allineando header a 16 bit.

  12. Intestazione pacchetto IP • Source e Destination Address (32 bit): indirizzo sorgente e destinazione degli host • Formato opzioni: option code (option number, option class, flag di copia nei frammenti) + lunghezza opzione + dati • Opzioni • record route: registro percorso del datagram • source route (loose and strict): sorgente specifica percorso del datagram • timestamp: permette di registrare tempo di elaborazione del datagram

  13. Il protocollo ICMP • ICMP (Internet Control Message Protocol ) è solitamente considerato parte del livello IP • Comunica messaggi di errore o di controllo. Può trasportare richieste di informazioni e risposte alle richieste. • I messaggi ICMP sono trasmessi all’interno di datagram IP

  14. Formato del messaggio ICMP 0 7 15 31 type code checksum data

  15. Esempi di messaggi ICMP messaggio type code echo reply 0 0 query echo request 8 0 query network unreachable 3 0 errore host unreachable 3 1 errore port unreachable 3 3 errore destn net unknown 3 6 errore destn host unknown 3 7 errore redirect 5 1 controllo time exceeded (TTL) 11 0 errore time exceeded (fragment reass)11 1 errore

  16. Il comando ping • Se un host non risponde al ping, non è raggiungibile. • Spesso usato per rilevare guasti in rete • E’ disponibile su macchine Unix e su PC • Informazioni visualizzate da ping: • numero di sequenza • TTL • round-trip-time (tempo impiegato a percorrere la tratta sorgente-destinatario-sorgente)

  17. Applicazione: il comando ping • Il nome è ispirato al rumore del sonar • Esegue un test di raggiungibilità dell’interfaccia di rete di un host remoto • Invia un messaggio ICMP echo request ad un host, aspettandosi un echo reply • Di default, l’ ICMP viene inviato ogni secondo allo stesso host; è possibile tuttavia modificare la frequenza di invio

  18. Il comando traceroute • traceroute permette di seguire il percorso dei datagram IP hop-per-hop fino a destinazione • Funzionamento: • host invia datagram IP vuoti, con TTL crescenti e destinati alla porta 33434 dell’host remoto • I router intermedi ritornano ICMP “time exceeded” • La destinazione ritorna ICMP “port unreachable” • Se non torna messaggio ICMP in risposta entro un timeout di 3 sec., si segnala errore

  19. Indirizzi IP Andrea Bianco Andrea.Bianco@polito.it http://www.tlc.polito.it/

  20. Indirizzamento IP: obiettivi e risultati • Obiettivo originale: rendere efficienti le operazioni di routing (router lenti - anni ‘80) con indirizzi facilmente “classificabili” • Spreco dello spazio di indirizzamento (esaurimento degli indirizzi - anni ‘90) • Nuovo obiettivo: razionalizzare l’assegnazione degli indirizzi e la loro aggregazione nelle routing tables • Riduzione delle dimensioni delle routing tables e riutilizzo di indirizzi già assegnati

  21. Indirizzi IP: Principi • Ogni host (interfaccia) è individuato da un indirizzo a 32 bit, assegnatogli univocamente • Un indirizzo è caratterizzato da informazioni sulla rete (netid) e sull’host (hostid) • L’instradamento si basa sul netid • indirizzo non individua la macchina ma la rete  se sposto host di rete devo cambiare indirizzo • Ogni router ha almeno due indirizzi IP • Gli host solitamente uno solo

  22. Multi-Homed Hosts • Poiché l’indirizzo ha informazioni su rete e host, se ho più di una interfaccia di rete, devo avere due indirizzi • Più che un host, un indirizzo individua una connessione ad una rete! Interfaccia #1 H Interfaccia #2

  23. Classi di indirizzi 1 2 3 4 8 16 24 32 0 netid=7 bit hostid=24 bit Classe A Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts 1 0 netid=14 bit hostid=16 bit Classe B Indirizza 16384 reti, ciascuna delle quali può contenere 65536 hosts 0 1 1 netid= 21 bit hostid=8 bit Classe C Indirizza oltre 1 milioni di reti, ciascuna delle quali può contenere però ‘solo’ 256 hosts 1 1 1 0 Classe D Indirizzi multicast

  24. Rappresentazione decimale • L’indirizzo Internet viene comunemente rappresentato nella forma: xxx.xxx.xxx.xxx con xxx numero decimale tra 0 e 255 • Il primo numero permette di riconoscere la classe dell’indirizzo: Classe A Classe B Classe C Classe D Classe E 0...127 128...191 192...223 224...239 240...255

  25. Classi di indirizzi IP • A: 105.20.38.165 • B: 130.192.2.158 • C: 193.24.54.110 indirizzo di rete (netid)

  26. Indirizzi di rete e Broadcast • Indirizzo con hostid di tutti 0, individua la rete • Indirizzo con hostid di tutti 1, rappresenta l’indirizzo broadcast della rete stessa (trasmetto in broadcast su quella rete) • netid di tutti 1 indica questa rete. Trasmetto senza conoscere IP della rete (boot) • Se il netid e` tutti 0, indirizzo all’host sulla rete cui sei collegato • Indirizzi riservati (127.0.0.0 loopback, 192.168.2.0 reti private)

  27. Problemi delle classi • Nessuno usa classe A • Pochi usano (male) classe B • Classe C identifica reti piccole; indirizzi poco richiesti • Fare crescere una rete oltre i limiti di dimensione della classe richiede la modifica degli indirizzi di tutti gli host

  28. L’introduzione delle maschere • È necessario superare la divisione rigida in netid e hostid • Scompare il concetto di classe • Uso maschera per definire quanti bit dei 32 di indirizzo individuano la rete, ovvero per indicare l’estensione del campo netid • Inizialmente si utilizzano le maschere per suddividere indirizzi di classe B

  29. La subnet mask • La subnet mask (o netmask) è un valore di 32 bit contenente: • bit messi a 1 per identificare la parte di rete • bit messi a 0 per identificare la parte di host • Per esigenze di instradamento, un host deve conoscere la parte di rete del proprio indirizzo IP (netid+subnetid): utilizza la subnet mask • La subnet mask viene introdotta in fase di configurazione di un host

  30. La subnet mask • Esempio: indirizzo host 130.192.2.7 130.192.2.7 10000100 11000000 00000010 00000111 255.255.255.0 11111111 11111111 11111111 00000000 AND 130.192.2.0 10000100 11000000 00000010 00000000

  31. Maschere per supernetting • In una seconda fase si utilizzano le maschere per accorpare indirizzi di classe C • Si assegnano blocchi contigui di indirizzi di classe C • Si usano sempre maschere (supernetting) per identificare netid • Si parla di CIDR: Classless Interdomain Routing (1992)

  32. Supernetting • Esempio: assegno 2048 indirizzi contigui, a partire da indirizzo 202.170.168.0 • Per rappresentare tale intervallo di valori, utilizzo AND tra indirizzo inferiore e la maschera 202.170.168.0 11001010 10101010 10101000 00000000 202.170.175.255 11001010 10101010 10101111 11111111 111111111 11111111 11111000 00000000

  33. Instradamento in reti IP Andrea Bianco Andrea.Bianco@polito.it http://www.tlc.polito.it/~bianco

  34. Se due host sono connessi direttamente alla stessa sottorete (intesa come collegamento fisico) si ha consegna diretta Se due host non sono connessi alla stessa sottorete, la consegna è mediata da uno o più router: si ha consegna indiretta Consegna diretta e indiretta

  35. Consegna diretta • Per decidere se effettuare una consegna diretta, l’host mittente controlla la porzione di rete dell’indirizzo IP destinatario • Se tale porzione coincide con il proprio indirizzo di rete, si ha consegna diretta • In ogni comunicazione tra host, si ha almeno una consegna diretta • Il trasferimento avviene mappando l’indirizzo IP in un indirizzo MAC della LAN cui l’host è collegato

  36. Risoluzione di indirizzi: • Problema che si presenta per ogni trasmissione di datagram IP (host-host, host-router, router-router, router-host) • Da indirizzo IP ad indirizzo MAC (fisico) • Direct mapping: mediante tabella statica • Dynamic bynding: protocollo ARP: Address Resolution Protocol • ARP e` utilizzato su reti broadcast (LAN) • Dato l’indirizzo IP dell’host con cui si vuole comunicare, permette di ricavarne l’indirizzo MAC (es: Ethernet)

  37. ARP • Viene costruito dall’host che vuole risolvere l’indirizzo un pacchetto broadcast (request) che contiene • l’indirizzo IP del destinatario, • indirizzo IP ed Ehternet di chi origina la richiesta • L’host che riconosce nel campo richiesta il proprio indirizzo IP invia un pacchetto di risposta (reply) direttamente al sender

  38. ARP • Sia chi origina il pacchetto sia chi lo riceve (e risponde) aggiungono una informazione nella propria tabella ARP • Le successive comunicazioni tra i due elaboratori possono avvenire senza ulteriori richieste di ARP • Le entry nella tabella di ARP scadono dopo un tempo prefissato

  39. ARP a.b.c.d e.f.g.h i.j.h.k l.m.n.o p.q.r.s A B C D E 1 i.j.h.k ? 2 LAN address di C 08-00-2b-15-47-2c

  40. Tabelle di ARP Corrispondenze tra indirizzi IP e indirizzi LAN IP addr LAN addr age 130.192.2.58 08-00-2b-15-47-2e 10 130.192.2.64 08-00-2b-21-56-64 12 . . . . . . . . . .

  41. Tabelle di ARP • Ogni volta che un elaboratore deve comunicare con un altro sulla stessa LAN conoscendone l’indirizzo IP, viene ricercato l’indirizzo nella tabella di ARP • Se non si trova un match viene emessa una richiesta di ARP, altrimenti la comunicazione può avvenire usando direttamente l’indirizzo MAC

  42. Hardware Type Protocol Type Formato del pacchetto ARP 0 8 16 31 HLEN PLEN Operation Sender HW Address Sender HW Address Sender IP Address Sender IP Address Target HW Address Target IP Address Protocol Target HW Address Time To Live Target IP Address

  43. ARP: formato pacchetto • Operation: tipo di operazione • arp request, arp reply, rarp request, rarp reply • Hardware type: tipo di MAC (Ethernet = 1) • Protocol type: protocollo che usa ARP (IP=0800H) • HLEN e PLEN permettono di utilizzare ARP con rete arbitraria (indirizzi di dimensione variabile)

  44. Consegna indiretta • Il mittente identifica quale router incaricare della consegna del datagram IP tra quelli raggiungibili con consegna diretta • Il router incaricato sceglie il router successivo, da lui raggiungibile direttamente, sul percorso verso la destinazione • Il datagram passa da router a router fino a quello che lo consegna direttamente a destinazione

  45. Le Routing Tables • Ogni host ed ogni router coinvolto nella consegna IP ha tabelle di instradamento (RT, Routing Table) • Ovviamente, le tabelle non possono avere informazioni su ogni possibile destinazione • Principio: nascondo l’informazione • I router remoti instradano usando solo la porzione di rete dell’indirizzo IP

  46. Il Next-hop Routing • Una tabella di routing contiene almeno due informazioni: • D indirizzo destinazione R = next-hop • D è normalmente un indirizzo di rete • R è detto next-hop, e corrisponde ad un host o un router raggiungibile direttamente • Se è possibile mettere in relazione l’indirizzo di destinazione del pacchetto in transito con un indirizzo D delle RT, il pacchetto viene inviato al relativo R

  47. rete 50.0.0.0 rete 20.0.0.0 rete 90.0.0.0 rete 30.0.0.0 Next-hop Routing - esempio Tabella del router A INDIR. RETENEXT DESTINAZ.HOP 20.0.0.99 B 50.0.0.254 A 90.0.0.254 30.0.0.99 20.0.0.0 30.0.0.0 50.0.0.0 90.0.0.0 diretto diretto 30.0.0.13 30.0.0.13 50.0.0.13 30.0.0.13 X

  48. Instradamenti Default e Specifici • Se il next-hop è unico (es: piccola sottorete con unico router), le tabelle di instradamento degli host possono contenere solo una default route per l’esterno • L’instradamento può essere specificato per host (host specific route) e non per sottorete per ragioni di: • testing • maggior sicurezza

  49. Gestione delle Routing Tables • Le tabelle di Routing sono fondamentali per il funzionamento corretto di Internet • Problemi da affrontare: • come inizializzare le RT? • quali informazioni devono contenere? • come aggiornarle? • consistenza tra RT e assenza di loop

  50. Inizializzazione delle RT • Dipende dal sistema operativo: • lettura da un file di configurazione, eventualmente scritto dall’operatore • esecuzione di “comandi di scoperta” da inviare sulla rete • scambio di informazioni con altri host sulla rete locale

More Related