tcpdump : esempio TCP rtsg.1023 > csam.login: S 768512:768512(0) win 4096 <mss 1024> proc. su port# 1023 invia richiesta apertura connessione e propone parametri receiver window e mss. No dati trasferiti csam.login > rtsg.1023: S 947648:947648(0) ack 768513 win 4096 <mss 1024> ricevente replica con ack e propri parametri rtsg.1023 > csam.login:. ack 1 win 4096 ack a ricevente: tcpdump lo stampa come differenza da precedente rtsg.1023 > csam.login: P 1:2(1) ack 1 win 4096 /* send 1B dati */ csam.login > rtsg.1023:. ack 2 win 4096 /* acknowledged */ rtsg.1023 > csam.login: P 2:21(19) ack 1 win 4096 /* send 19B dati */ csam.login > rtsg.1023: P 1:2(1) ack 21 win 4077 /* acknowledged */ dati sono ancora in buffer; inoltre, 1B dati da csam a rtsg csam.login > rtsg.1023: P 2:3(1) ack 21 win 4077 urg 1 csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1 1 of 38 Network layer interconnessione di access network a Internet access netw: ISP, LAN, intranet, W-LAN esistenza reti differenti (TCP/IP, DECnet, Novell, ATM, AppleTalk ) ogni rete usa differente tecnologia, percio' differenti protocolli 2 of 38 1
Network Layer: funzionalità routing: scoperta topologia; scelta rotte in accordo a metrica opportuna addressing: traduzione tra indirizzi di Netw. e MAC L. protocolli DHCP, ARP, RARP; NAT fragmentation: reti possono non supportare tutte la stessa dimensione frame monitoring e gestione errori: ICMP traduzioni tra reti diverse: diversi formati indirizzi diverso formato frame supporto a sicurezza, QoS, multicast/broadcast 3 of 38 Gateway 1 host esegue traduzioni tra proto differenti 2 host gestiti separatamente, che comunicano via protocollo di interconnessione 4 of 38 2
Internet Protocol fornisce serv. trasm. datagram su reti interconnesse servizio best effort datagram fino a 64 KB instradamento attraverso struttura gerarchica byte order: non tutti gli host memorizzano i byte all interno di una parola nello stesso ordine rete: big endian (byte piu' significativo a sinistra) low order high order little endian (Intel x86) high order addr A addr A+1 low order big endian (Mac, HP, Internet) 5 of 38 IP datagram (IPv4) versione lungh header in QoS protocollo 32-bit word ID dgram a cui in sec/hop framm appartiene transp (max 255) proto dgram length (max DM: 64KB) don t fragm posizione start MF: more fragm s ricalcolato nel dgram a ogni hop 6 of 38 3
IP header opzioni: 1B codice + 1B lunghezza + dati (TLV notation) opzione descrizione security specifica quanto e' riservato il datagram strict source routng path completo da seguire loose sorce routng router da attraversare lungo il path record route ogni router aggiunge proprio IP addr timestamp ogni router aggiunge proprio IP addr e timestamp type of service (TOS byte): <priority (3 bits), low delay, high thput, high reliab, cost, unused> 7 of 38 IP addressing indirizzo proprio di Network L.: 32 bit unsigned long dotted notation: trascrizione del valore di ogni ottetto es: 159.149.134.9 indirizzo deve essere globalmente unico assegnazione da ICANN Internet Corporation for Assigned Names and Numbers 5 schemi assegnazione indirizzi: class-based addressing subnetting classless addressing (CIDR) network address translation (NAT) IPv6 8 of 38 4
Class-based addressing indirizzo IP contiene network ID + host ID hostid = 0 la rete stessa netid = 0 l host indicato sulla stessa rete della source tutti 1 broadcast sulla rete della sorgente hostid tutti 1 broadcast sulla rete destinataria 5 classi di indirizzi classe A: 127 reti (7 bit) da 2 24-1 host (16777215) classe B: 2 14-1 reti da 2 16-1 host (65535) classe C: 2 21-1 reti da 255 host classe D per multicast (2 28-1 gruppi) permanent address da ICANN (e.g. ALL_ROUTERS) classe E per usi futuri 9 of 38 Classi di indirizzi 10 of 38 5
Subnetting (RFC 950) problema: esaurimento indirizzi IP per connessioni LAN eterogenee, sovradimensionamento reti aggiunta reti se sottodimensiono, richiede aggiornamento di tutti i router suddivisione logica di reti grandi es: rete classe B (14 bit netw ID, 16 bit host ID) 11 of 38 Subnetting subnet mask: tutti bit 1 in corrispondenza di network e subnet addr; tutti bit 0 per host addr entry routing table: < network addr, 0 > per host remoti < 0, host addr > per host locali < 0, subnet addr, 0 > per host locali ma in altre subnet < 0, 0, host addr > per host in subnet locale router calcola AND tra indirizzo IP destinazione in header pkt e subnet mask isola indirizzo rete e confronta con entry sopra 12 of 38 6
esempio subnetting rete di classe B: 162.148.0.0 65535 host voglio suddividere in reti ognuna comprendente massimo 100 host quanti bit ho bisogno per host ID? 7 bit (128 host circa) quanti bit restano per netid? 16 7 = 9 bit e quindi 512 sottoreti oppure a rovescio: quante subnet ho bisogno 162 148 netid hostid 13 of 38 Classless Inter-Domain Routing PRBL: gli indirizzi in IPv4 sono in esaurimento amministratori evitano indirizzi di classe C (fino a 256 host) a favore della classe B (fino a 65000 host) molte delle esistenti reti di classe B hanno meno di 256 host... meccanismo per utilizzo più efficiente degli indirizzi e per controllare dimensioni routing table aumentare livelli in indirizzamento gerarchico? peggio! 14 of 38 7
indirizzo x.y.w.z / n CIDR n indica #bit usati per netid, indipendentemente da classe IDEA; raggruppare classi C in insiemi da usare come spazio contiguo di indirizzi ES: 32 reti C per 32 x 256 = 8192 host per gruppo 194.0.0.0-195.255.255.255 Europa 198.0.0.0-199.255.255.255 Nord America 200.0.0.0-201.255.255.255 Centro-Sud America 202.0.0.0-203.255.255.255 Asia, Australia 15 of 38 CIDR reti di classe C: ultimo ottetto per host ID 194.0.0.0-194.255.255.255-195.0.0.0-195.255.255.255 256 x 256 = 65536 + 65536 = 131072 sulle 4 regioni 131072 x 4 = 524288 classi C per ogni regione 131072 x 256 = 33.554.432 indirizzi di host avanzano 204.0.0-223.255.255 ovvero 256 x 256 x (223-203) = 1.310.720 reti di classe C 16 of 38 8
CIDR e routing se mi capita pkt con indirizzo 194._ o 195._ so che devo inoltrarlo verso l'europa analogamente per gli altri raggruppamenti 1 entry in routing table per 33M indirizzi indirizzamento con maschere nelle routing table ES: entry per rete 194.24.8.0-194.24.11._ indirizzo base 11000010.00011000.00001000.00000000 mask calcolata come 256 - #reti assegnate mask deve far risultare indirizzo di base. nascondendo bit aggiuntivi delle altre reti del gruppo 17 of 38 CIDR e routing ES: Edinburgo 194.24.8._ a 194.24.11._ (mask 11111111.11111111.11111100.[0]) _.8 11000010.00011000.000010 00 _.9 11000010.00011000.000010 01 _.10 11000010.00011000.000010 10 _.11 11000010.00011000.000010 11 in tutti e 4 i casi lo AND con mask produce 11000010.00011000.00001000 che e' l'indirizzo ricordato nella routing table la cardinalita' dei gruppi e' una potenza di 2 18 of 38 9
CIDR e routing calcolo (pkt dest address AND mask) confronto risultato con indirizzi base indirizzo base che corrisponde e' usato per decidere routing NB: stesso principio adattato a tutti gli indirizzi. Percio' si può allocare spazio indirizzamento indipendentemente da classi. 19 of 38 Network address translation ISP: indirizzi IP allocati on-demand tra quelli liberi in un pool di indirizzi assegnati allo ISP broadband modem: indirizzi IP permanenti per ogni subscriber! NAT (RFC 3022) permette ri-uso indirizzi LAN indirizzi privati: 1 host N A T 1! indirizzo per tutta la LAN Internet 20 of 38 10
NAT addressing access gateway unico punto accesso alla rete 3 blocchi di indirizzi riservati: 10.0.0.0 10.255.255.255/8 = 16777216 host indirizzabili 172.16.0.0 172.31.255.255/12 = 1048576 host indirizzabili 192.168.0.0 192.168.255.255/16 = 65536 host indirizzabili per ogni processo indirizzato (a livello trasporto) da <IP address, port#> con port# unsigned short (16 bit) NAT su access gateway, mantiene NAT table corrispondenza <IP address, port#> interna con <IP address, port#> mostrata all esterno 21 of 38 NAT: procedimento proc A a <IP A, port# A > manda query a web browser B quando NAT router con indirizzo pubblico IP X vede pkt: esegue assegnazione porta esterna port# AX memorizza in NAT table la coppia [< IP A, port# A >, < IP X, port# AX >] rimarca src-addr in pkt con indirizzo esterno e ricalcola checksum, prima di instradare il pkt a B quando NAT router riceve pkt per < IP X, port# AX > in tabella cerca indirizzo interno corrispondente adegua pkt e instrada su rete interna 22 of 38 11
Dynamic Host Configuration Protocol per auto-configurazione host dinamicamente aggiunti a rete protocollo client-server se server in differente rete, server locale esegue relay agent RFC 2131 e 2132 23 of 38 DHCP DHCP discover: bcast su rete locale, con indirizzo src 0.0.0.0 e transaction ID unico (per src) DHCP offer: <transaction ID, proposed IP address, netmask, duration> durata può essere rinnovata prima della scadenza sorta di three-way handshake 24 of 38 12
Interfaccia Netw.L. - DLL pkt arrivati su LAN destinataria inoltrati da MAC DLL non conosce indirizzi IP $ traduzione: Address Resolution Protocol 25 of 38 ARP (RFC 862) scoperta matching indirizzi IP / DLL sulla rete locale bcast ARP Request: chi ha indirizzo x.y.z.w? $ bcast reply: io: x.y.z.w = <DLL address> chi replica ricorda in cache IP/MAC address di src query$ IP src passa a DLL src i pkt e il DLL address dest, da cui costruire frame IP dest verifica correttezza IP address destinazione indicato in pkt header 26 of 38 13
Internet Control Message Proto net/host unreachable ICMP è protocollo not companion present @ dest di IP (RFC 1256) fragmentation needed but DF=1 error reporting communication not allowed for admin tipo pkt uso destination unreachable pkt non consegnabile time exceeded TTL arrivato a 0 parameter error header non valido reachability testing tipo pkt uso echo request/reply test attività e raggiungibilità router (ping) 27 of 38 ICMP congestion control tipo pkt uso source quench backpressure per ridurre congestione route-change notification redirect segnala errore routing performance measuring timestamp request/reply simile a Echo subnet addressing address mask request/reply x scoprire mask associata a subnet 28 of 38 14
ICMP 0 7 per gli 8 tipi definiti prima 29 of 38 IPv6 nuova versione IP con funzionalità aggiuntive: spazio indirizzamento da 32 a 128 bit indirizzamento gerarchico : minore #entry nelle routing tables header semplificato per velocizzazione processing funzionalità di sicurezza autenticazione sender originatore dei dati controllo integrità dati in attraversamento rete strumenti auto-configurazione supporto a QoS e a mobile computing 30 of 38 15
6 IPv6 formato header 0-7 best effort pkt 8-15 QoS pkt 0 best effort pkt TTL 31 of 38 indica tipo Transport Protocol può puntare a extension header IPv6 next header 6 tipi di extension header, in formato TLV primi due bit: 00 =ignora; 01 =scarta; 10 =scarta + ICMP error; 11 = 10 se dest non multicast tipo destination options : Pad1 o PadN per inserire 1 o più byte di padding 32 of 38 16
hop-by-hop options ; fragment hop-by-hop : esaminato da ogni router sul cammino es: per elaborazione jumbograms (> 64 KB) fragment : per velocizzare operazioni IPv6 non supporta frammentazione path MTU discovery procedure; frammentazione a src to assemble all fragments from a certain pkt more fragment bit 33 of 38 extension h. routing per strict o loose source routing indice alla lista 34 of 38 17
authentication ; encapsulating parti comunicanti devono accordarsi su 2 chiavi segrete in authentication header c è checksum pkt calcolato con chiave sender destinazione controlla checksum e verifica che (i) dati arrivino dal sender e (ii) siano immutati transport mode encryption: cifratura di transport header e paylod tunnel mode encryption: cifratura intero pkt per encapsulating, pkt inserito in 2 pkt per altro lato tunnel 35 of 38 IPv6 indirizzamento con IPv4, ogni router in alto gerarchia ha O(1000) entry in routing table con IPv6 address aggregation schema gerarchico simile a quello telefonico rappresentazione indirizzi (128 bit): gruppi di 16 bit FEDC:BA98:7654:3210:0000:0000:0000:0089 in decimale vale 65244:47768:30292:12816:0:0:0:137 anche senza gruppi di 0 : FEDC:BA98:7654:3210::89 0000:0000:0000:0000:0000:0000:0000:0001 per loopback prefix format per determinare tipo di indirizzo 36 of 38 18
IPv6 prefix format indirizzi IPv4 hanno primi 8 bit a 0 tunnel IPv6 in IPv4 da src IPv4 a dest IPv6 prefisso 010 per indirizzi unicast forniti da provider comprende subnetid e hostid 37 of 38 IPv6 prefix format 1111 1110 10 per link local-use address usati in auto-configurazione 1111 1110 11 per site local-use address reti di organizzazioni non connesse a Internet 1111 1111 per multicast, con definiz. scope anycast = unicast ma indirizzato a gruppo 38 of 38 19