Instradamento Fondamenti di Informatica
Previously on Fondamenti di Livelli e protocolli Livello fisico Fibra, DSL, Ethernet informatica
Network Network: ogni nodo può inviare un messaggio a qualsiasi altro nodo Ogni tecnologia di network assegna ad ogni nodo un identificatore unico (indirizzo)
Network Ogni network definisce: Formato messaggi Formato indirizzi Banda Latenza Rappresentazione dei bit Numero dei nodi collegabili...
Ethernet Indirizzi: 6 byte Banda: 10Mb/s, 100Mb/s, 1Gb/s, Tecnologia: cavo di rete, switch,...
Internetwork Problemi: Devo collegare più nodi di quanti ne tiene la mia network Devo collegare più network geograficamente Devo integrare organizzazioni che usano network diverse
Internetwork Internetwork: network virtuale che contiene due o più network Ogni nodo può comunicare con qualsiasi altro nodo Ogni nodo ha un identificatore unico (indirizzo internetwork)
Internetwork Realizzata con: Appositi calcolatori per incollare le network (router) Software di internetwork su ogni nodo
Indirizzi Ogni nodo ha due indirizzi: Indirizzo di network Indirizzo di internetwork Gli uni non hanno nulla a che fare con gli altri
Router (gateway) Un router è un nodo necessario per incollare le network Instrada (funzionalità di router) Converte (funzionalità di gateway) Ha più indirizzi network: uno per ogni network a cui è collegato
Internetwork e network Ogni nodo conosce solo la network alla quale è collegato Non ha bisogno di conoscere: Quante network ci sono Che tecnologia usano Come sono collegate
Network 2 Network 1 Network 3
Network 2 Network 4 Network 1 Network 3
Network 2 Tecnologia Ethernet 802.3 Tecnologia DSL Network 4 Tecnologia Fibra Network 1 Tecnologia Ethernet 802.11 Network 3
Internetwork
IP Internet Protocol: protocollo per incollare assieme le network Protocollo di instradamento Indirizzi a 32 bit (4 byte)
Datagramma IP (pacchetto) Header Dati Preambolo Destinatario Mittente Tipo Payload CRC
Pacchetto Lo header contiene molte informazioni: Mittente (indirizzo internetwork) Destinatario (indirizzo internetwork) Time to live Identificativo...
Importante Header Dati Preambolo Destinatario Mittente Tipo Payload CRC Cambiano durante il percorso
Indirizzi IP Ogni nodo ha un identificatore unico: indirizzo IP Numero naturale su 32 bit Per comodità si esprime in dotted decimal notation 32 bit = 4 byte = 4 numeri tra 0 e 255
Indirizzi IP 01111111 00000000 00000000 00000001 127.0.0.1
Indirizzi ip L indirizzo IP è composto da due parti: Network number Host number Guardando un indirizzo IP non si può sapere quale sia la parte network e quale la parte host
Vincoli Network number: Tutti 0: non si può usare Tutti 1: non si può usare Host number: Tutti 0: non si può usare Tutti 1: indica tutti gli host della network
Network number Ogni nodo deve conoscere: Il proprio indirizzo IP Il proprio network number Il network number è specificato come subnet mask (maschera di rete)
Subnet mask Sequenza di 32 bit: Inizia con tutti 1, termina con tutti 0 Espressa in dotted decimal
Subnet mask 11111111 11111111 11000000 00000000 255.255.192.0
Subnet mask 131 114 110 220 10000011 01110010 01100100 11011100 Indirizzo IP 255 255 0 0 11111111 11111111 00000000 00000000 Subnet mask 131 114 0 0 10000011 01110010 00000000 00000000 Network number 0 0 110 220 00000000 00000000 01100100 11011100 Host number
Subnet mask 131 114 110 220 10000011 01110010 01100100 11011100 Indirizzo IP 255 255 192 0 11111111 11111111 11000000 00000000 Subnet mask 131 114 64 0 10000011 01110010 01000000 00000000 Network number 0 0 36 220 00000000 00000000 00100100 11011100 Host number
Network number Notazione spesso adottata: 131.114.0.0/16 131.114.0.0/17 131.114.0.0/18 131.114.100.192/26 131.114.100.192/27 255.255.0.0 255.255.128.0 255.255.192.0 255.255.255.192 255.255.255.224
Osservazione Nodi della stessa rete devono avere la stessa subnet mask
Uso subnet mask Nodo X con IP x e MASK x, determina il proprio network number e host number: 1. Converte IP x e MASK x in binario 2. Network number = (IP x ) AND (MASK x ) 3. Host number = (IP x ) AND!(MASK x )
192.168.2.0/24 12.85.1.8/29 130.40.43.32/27 192.168.1.0/24 10.0.0.0/8
192.168.2.0/24 12.85.1.8/29 192.168.2.1 192.168.1.1 12.85.1.9 12.85.1.10 130.40.43.40 130.40.43.32/27 130.40.43.33 192.168.1.0/24 10.0.1.25 10.0.0.0/8
192.168.1.2 192.168.1.3 192.168.2.0/24 12.85.1.8/28 192.168.2.1 192.168.1.4 192.168.1.1 12.85.1.9 12.85.1.10 130.40.43.40 130.40.43.32/27 192.168.1.5 130.40.43.33 192.168.1.0/24 10.0.1.25 10.0.0.0/8
Instradamento Con la subnet mask posso sapere se un certo IP è nella mia network o no. Se sì: invio direttamente a lui Se no: invio al router ma se ho più gateway?
Tabella di routing Ogno router ha una tabella di routing: Una riga per ogni network number esistente Gli permette di capire come instradare ogni pacchetto Network Subnet Mask Instradamento 40.0.0.0 255.0.0.0 Interfaccia A 41.0.0.0 255.0.0.0 Interfaccia B 128.1.0.0 255.0.0.0 Gateway G1 su A 30.0.0.0 255.255.255.0 Gateway G2 su B default default Gateway G1 su A
Indirizzi IP pubblici/privati IP pubblici: vengono assegnati pagando da un organismo internazionale (IANA) Intranet: internetwork privato che utilizza i protocolli di Internet IP privati: alcuni range di indirizzi IP sono utilizzabili liberamente per creare le intranet. I più comuni sono: 10.0.0.0/8 192.168.0.0/16 Loopback: 127.0.0.1 serve a mandare i messaggi a se stessi
Address Resolution Protocol ARP: protocollo che associa ad un indirizzo IP l indirizzo Ethernet cui inviare il pacchetto. Si utilizza nelle network di tipo Ethernet (cavo, wifi) Il nodo non conosce l associazione IP-Ethernet invia un messaggio a tutte le macchine della network il messaggio ha un pacchetto ARP con una richiesta: chi ha l indirizzo che mi serve? solo la macchina con quell indirizzo risponde l informazione viene salvata per evitare di ripetere sempre la domanda
IP è unreliable!
Protocollo IP Il protocollo IP è: Unreliable: può perdere messaggi Connectionless: non mantiene l ordine dei pacchetti Esistono protocolli: Reliable: tutti i messaggi sono ricevuti Connection-oriented: mantiene l ordine dei messaggi
Problema Sappiamo come si invia un messaggio ad un nodo Ma non sappiamo se: Il nodo riceverà il messaggio Il nodo riceverà il messaggio nell ordine giusto Come inviarlo al processo giusto!
Transmission Control Protocol TCP: protocollo che viene utilizzato all interno del protocollo IP. È un protocollo reliable e connection-oriented Ogni processo sulla rete è identificato univocamente dal suo indirizzo TCP Indirizzo TCP: coppia indirizzo IP, numero di porta Indirizzo IP: indirizzo della internetwork su 32 bit Numero di porta: identifica un processo su un nodo con 16 bit
User Datagram Protocol Non c è solo il protocollo TCP Esiste anche UDP: è unreliable e connectionless, però permette di specificare una porta Non ho garanzie, ma è più veloce Va bene quando posso perdere dati, ma devo comunicare velocemente