Corso di Reti II Materiale del corso
Transcript
Corso di Reti II Materiale del corso
Corso di Reti II • Luca Becchetti – [email protected] • Ricevimento – via Salaria 113, II piano, stanza 227 – Venerdi’, ore 11.00-13.00 http://www.dis.uniroma1.it/~becchett/reti2/reti.html 1 Materiale del corso • Difficile trovare un unico testo adatto alle esigenze del corso • Testi di riferimento (nessuno adottato) – L. Peterson e B. Davie. Computer Networks: a system approach (ed. in Inglese), terza edizione. Morgan Kaufmann – D. Comer. Internetworking con TCP/IP. AddisonWesley • http://www.netbook.cs.purdue.edu/index.htm • Preparazione di base (v. programma del corso di Reti I - Becchetti) – J. F. Kurose e K. W. Ross "Reti di Calcolatori e Internet" terza ed. Pearson 2 Materiale del corso/cont. • Ulteriore materiale – Articoli suggeriti dal docente – Documentazione on - line suggerita dal docente • Ricerca di informazioni in rete – Molte buone fonti ma anche parecchia spazzatura – Wikipedia puo’ essere un buon puntatore iniziale ma poi e’ meglio risalire alle fonti (no copy & paste) – Google Scholar e’ un motore di ricerca per articoli specialistici – I siti di alcune aziende (CISCO, IBM… possono contenere materiale interessante • Distinguere materiale informativo (articoli, white paper…) dalla pubblicita’ http://www.dis.uniroma1.it/%7Ebecchett/reti2/prog.html 3 Programma di massima • Breve sintesei su TCP/IP • Aspetti avanzati dell’instradamento in reti IP (OSPF, RIP) • Aspetti avanzati dell’indirizzamento IP • Indirizzi privati, NAT, reti private virtuali, tunnel • Firewall • Sistemi autonomi e instradamento tra essi BGP • Cenni a Mobile IP • Tecniche di controllo della congestione end-to-end e ai router • Reti peer-to-peer 4 Organizzazione del corso • Argomenti di base sviluppati con il docente • Approfondimenti su materiale consigliato dal docente – Costituiscono parte integrante del programma di esame 5 Cosa si assume • Conoscenze base di sistemi operativi • Conoscenze base di reti – Strato fisico – Strato di collegamento • Ethernet e dispositivi di livello 1 e 2 (hub, switch…) • Controllo/correzione di errore – Strati di rete e di trasporto • Principi di funzionamento delle reti IP • Nozioni di base sui protocolli UDP/TCP e IP • Trasferimento affidabile, meccanismi di base (protocolli sliding window) • Controllo di congestione – Strati applicativi • Principali protocolli di applicazione 6 IP recap Slides based on Prof. L. Peterson’s course slides Princeton University 7 Funzioni dello strato di rete • Determinazione del cammino: percorso (route) che i pacchetti seguono da sorg. a dest. Algoritmi di routing -> tabelle di routing • Forwarding (inoltro): trasferimento dei pacchetti dalla porta di ingresso alla corretta porta di uscita del router • Indirizzamento • Instaurazione chiamata (se serve) – Assente in Internet 8 Strato di rete in Internet Strato di trasporto : TCP, UDP Protocollo IP •Indirizzamento •Formato dei datagrammi •Gestione dei pacchetti Protocolli di rout. •Selezione camm. •RIP, OSPF, BGP Tabella di routing Protocollo ICMP •Segnalaz. errore •“Segnalaz.” router Strato di link (collegamento) Strato fisico • Insieme di protocolli, non solo IP! 9 IP Internet • Concatenazione di reti Network 1 (Ethernet) – Cosa e’ una internetwork? H1 H2 H7 H3 R3 H8 Network 4 (point-to-point) Network 2 (Ethernet) R1 R2 • Protocol Stack H4 Network 3 (FDDI) H6 H5 H1 H8 TCP R1 IP ETH R2 IP ETH R3 IP FDDI FDDI IP PPP PPP TCP IP ETH ETH 10 Modello di servizio • Connectionless (datagram-based) • Best-effort delivery (unreliable service) – – – – packets are lost packets are delivered out of order duplicate copies of a packet are delivered packets can be delayed for a long time • Datagram format 0 4 Version 8 HLen 16 31 Length Ident TTL 19 TOS Flags Protocol Offset Checksum SourceAddr DestinationAddr Options (variable) Pad (variable) Data 11 Soluzione alternativa circuito virtuale “Il percorso sorgente-destinazione si comporta come un circuito telefonico ” – Tiene traccia delle prestazioni – Lo strato di rete è attivo lungo tutto il percorso sorgentedestinazione – ATM, Frame-Relay, X.25 • Instaurazione e abbattimento delle chiamate • Ogni pacchetto ha un identificatore di VC (e non dell’host di destinazione • Ogni router router sul cammino sorg.-dest. mantiene info di stato su ogni connessione che lo attraversa – Una connessione di trasporto coinvolge solamente gli host terminali • Possibile allocazione di risorse dedicate a un VC (banda, buffer) 12 Circuito virtuale: protocolli di segnalazione • Usati in fase di instaurazione, abbattimento e mantenimento di VC • Usati in ATM, frame-relay, X.25 • Non usati nell’attuale Internet application transport 5. Inizio flusso dati 4. Connessione network 1. Inizio chiamata data link physical application 3. Acc. chiamata transport 2. chiamata network data link physical 6. Ric.dati 13 Formato datagramma IP 32 bit Lunghezza header (32 bit word) “Tipo” dei dati type of ver head. len service length fragment 16-bit identifier flgs offset No. max hop rimanenti time to upper Internet (decrementato in ogni layer live checksum router) 32 bit source IP address Protocollo di trasporto al quale consegnare i dati (payload) Lunghezza totale Datagramma Per frammentazione/ ricostruzione 32 bit destination IP address Options (if any) dati (lungh. variabile, di solito un segmento TCP o UDP) Es. timestamp, Mem. percorso, Specifica lista dei router da visitare. 14 Fragmentation and Reassembly • Each network has some MTU – Ethernet -> 1500 byte • Design decisions – – – – – – fragment when necessary (MTU < Datagram) try to avoid fragmentation at source host re-fragmentation is possible fragments are self-contained datagrams delay reassembly until destination host do not recover from lost fragments 15 Frammentazione/cont. • Offset di 16 bit Inizio/fine pacchetto Start of header Ident = x Flag Offset = 0 Rest of header Identificativo pacchetto Spiazzamento 512 data bytes 16 Example Start of header Ident = x 0 Offset = 0 Rest of header (a) H1 R1 R1 R2 R2 1400 data bytes H8 R3 R3 Start of header Ident = x ETH IP (1400) FDDI IP (1400) PPP IP (512) ETH IP (512) PPP IP (512) ETH IP (512) PPP IP (376) ETH IP (376) 1 Offset = 0 Rest of header 512 data bytes (b) Start of header Ident = x 1 Offset = 64 Network 1 (Ethernet) Rest of header H1 H2 H7 H3 R3 512 data bytes H8 Network 4 (point-to-point) Network 2 (Ethernet) Start of header R1 Ident = x R2 H4 376 data bytes Network 3 (FDDI) H5 0 Offset = 128 Rest of header 17 H6 Global Addresses • Properties – globally unique – hierarchical: network + host • Dot Notation – 10.3.2.4 – 128.96.33.81 – 192.12.69.77 (a) 7 0 24 Network Host 14 (b) (c) 1 0 16 Network Host 21 1 1 0 Network 8 Host 18 IP subnetworks • Sistema interconnesso di ? reti IP • Indirizzi IP associati a interfacce 223.1.1.2 223.1.1.1 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.2.1 223.1.3.27 223.1.2.2 223.1.3.1 223.1.3.2 19 Datagram Forwarding • Strategy – – – – – – every datagram contains destination’s address if connected to destination network, then forward to host if not directly connected, then forward to some router forwarding table maps network number into next hop each host has a default router each router maintains a forwarding table • Example (R2) H1 H2 Network 1 (Ethernet) H7 H3 R3 Network 4 (point-to-point) Network 2 (Ethernet) R1 R2 H4 H8 Network Number 1 2 3 4 Next Hop R3 R1 interface 1 interface 0 Interface 0 Network 3 (FDDI) H5 H6 Interface 1 20 Address Translation within a LAN • Map IP addresses into physical addresses – destination host – next hop router • Techniques – encode physical address in host part of IP address – table-based • ARP – – – – table of IP to physical address bindings broadcast request if IP address not in table target machine responds with its physical address table entries are discarded if not refreshed 21 Address Resolution Protocol • Ogni nodo IP (Host, Router) sulla LAN ha un modulo ARP e una tabella • Tabella ARP: mapping IP->MAC per alcuni nodi della LAN < IP address; MAC address; TTL> < ………………………….. > • TTL (Time To Live): timer, di solito 20 min) 22 ARP/cont. • A vuole inviare un pacchetto all’indirizzo IP di destinazione XYZ su una certa LAN • A prima controlla la tabella ARP locale • Se non esiste una entry corrispondente a XYZ, il modulo ARP invia un pacchetto ARP in broadcast: < XYZ, MAC (?) > • TUTTI i nodi della LAN accettano e analizzano il pacchetto ARP • Il nodo XYZ risponde con un pacchetto ARP unicast contenente il proprio indirizzo MAC: < XYZ, MAC (XYZ) > • La tabella ARP svolge la funzione di una cache Il protocollo ARP può essere usato con tecnologie diverse 23 ARP Packet Format Puo’ funzionare con protocolli di strato 2 diversi da Ethernet 0 8 16 Hardware type = 1 HLen = 48 PLen = 32 31 ProtocolType = 0x0800 Operation SourceHardwareAddr (bytes 0_ 3) SourceHardwareAddr (bytes _4 5) SourceProtocolAddr (bytes _0 1) SourceProtocolAddr (bytes 2_ 3) TargetHardwareAddr (bytes_0 1) TargetHardwareAddr (bytes_2 5) TargetProtocolAddr (bytes 0 _ 3) 24 ARP Details • Request Format – HardwareType: type of physical network (e.g., Ethernet) – ProtocolType: type of higher layer protocol (e.g., IP) – HLEN & PLEN: length of physical and protocol addresses – Operation: request or response – Source/Target-Physical/Protocol addresses • Notes – table entries timeout in about 10 minutes – refresh table if already have an entry – otherwise • update table with source when you are the target • do not update table if not target 25 Es.: Routing verso una LAN diversa • Pacchetto da ind. IP <111.111.111.111> a ind. <222.222.222.222> • Nella tabella di routing, trova l’ind. IP del router (111.111.111.110) • Nella tabella ARP, trova il corrispondente indirizzo MAC (E6-E9-00-17-BB-4B) 26 ARP proxy (promiscuo, hack) • Permette di definire piu’ reti locali – Rete principale nota all’esterno – Reti locali aggiunte successivamente nascoste • Router speciale che: – Funziona da switch tra le diverse reti locali – Funziona da router da/verso l’esterno • I router ignorano la presenza di subnet fisicamente distinte • Usato in passato • Attualmente usato per scopi particolare (es. IP mobile) 27 ARP proxy - cont. principale nascosta IP1 IP4 IP5 IP6 R IP2 IP3 • Dgram IP1-->IP4 – R cattura richiesta ARP bcast di IP1 e restituisce proprio MAC address – Datagrammi da IP1 a IP4 sono spediti a R che li inoltra a IP4 28 Internet Control Message Protocol (ICMP) • • • • • • • Echo (ping) Redirect (from router to source host) Destination unreachable (protocol, port, or host) TTL exceeded (so datagrams don’t cycle forever) Checksum failed Reassembly failed Cannot fragment 29 Riferimenti • Testo di Kurose e Ross – Cap.4, in particolare 4.1 - 4.5 • Testo di Peterson e Davie – Cap. 4, in particolare 4.1 30