class: center, middle #NETWORKING --- # Bit: Concetto Base -- - Bit = 0 o 1, unità minima di informazione -- - Tutto il digitale è rappresentato con bit -- - Esempio: 0 = spento, 1 = acceso -- - Fondamento di tutti i dati in un computer --- # Byte -- - 8 bit formano 1 byte -- - 00000000 => 0 (00) -- - 00000001 => 1 (01) -- - 00000010 => 2 (02) -- - 00000011 => 3 (03) - ... -- - 10110011 => 179 (B3) - ... -- - 11111111 => 255 (FF) --- Notazione esadecimale -- - Gli otto bit di un byte vengono divisi in due gruppi da 4 bit -- - 10110011 (179) => 1011 - 0011 -- Tabella conversione - 0000 - 0, 0001 - 1, 0010 - 2, 0011 - 3 - 0100 - 4, 0101 - 5, 0110 - 6, 0111 - 7 - 1000 - 8, 1001 - 9, 1010 - A, 1011 - B - 1100 - C, 1101 - D, 1110 - E, 1111 - F -- Risultato - 1011 - 0011 (179) => B3 esadecimale --- - Un byte può rappresentare un numero 0–255 o un carattere -- - Questa frase occupa 27 byte -- - La memoria e i file si misurano in byte -- - Prefissi comuni: KB, MB, GB, TB --- # Multipli di Byte -- - 1 KB = 1024 byte - Un messaggio mail -- - 1 MB = 1024 KB - Una foto -- - 1 GB = 1024 MB - Un film -- - Usato per misurare file, RAM e storage -- - Aiuta a capire dimensioni e capacità --- # Bit e Trasmissione Dati -- - La velocità di rete si misura in bit per secondo (bps) -- - 1 Mbps = 1 milione di bit al secondo -- - I byte trasmessi = velocità / 8 -- - Differenza tra bit (trasmissione) e byte (memoria) --- # Indirizzi IP -- - Identificano un dispositivo connesso in rete -- - IPv4: identificato da 4 byte: 0–255 -- - es: 93.41.57.103 -- - Quanti ip diversi ci possono essere ? -- - 256 x 256 x 256 x 256 = ? -- - 256 x 256 x 256 x 256 = 4.294.967.296 --- IPv6 - identificato da 16 byte -- - esempio: 2001:0db8:0000:0000:0000:0000:1428:57ab -- - 2001:db8::1428:57ab (formato compresso usando :: per dire che tutto quello nel mezzo è zero) -- - Quanti indirizzi IPv6 sono possibili ? -- - 2 ^ 128 = 3,4 X 10^38 -- - Numero di batteri sulla terra: 5 × 10^30 -- - Ogni batterio ha a disposizione circa un miliardo di indirizzi ipv6 --- E' possibile verificare il proprio ip pubblico usando https://www.whatismyip.com/ --- # IP Speciali: Loopback -- - 127.0.0.1 è il loopback -- - Serve per testare la propria macchina -- - Non esce mai sulla rete -- - Spesso usato da server locali -- - Aprire il terminale di windows e digitare: ping 127.0.0.1 --- # IP Speciali: Rete Locale -- - 192.168.x.x / 10.x.x.x / 172.16.x.x -- - Indirizzi privati, non instradati su Internet -- - Usati nei router e LAN domestiche -- - Ogni dispositivo ha un IP unico nella rete --- # IP Speciali: IP Pubblico -- - L’indirizzo che vedi su Internet -- - Unico per la tua rete verso l’esterno -- - Fornito dal provider -- - Il NAT (Network Address Translator) traduce LAN → IP pubblico --- # IP Speciali: Altri indirizzi utili -- - 0.0.0.0 → "Indirizzo sconosciuto" oppure "qualsiasi indirizzo" -- - 255.255.255.255 → broadcast della rete (tutti gli indirizzi della rete) -- - Usati per configurazioni e protocolli -- - Fondamentali per routing e test --- # Rete Locale: Concetto Base -- - Tutti i dispositivi collegati allo stesso router -- - Comunicano tra loro senza uscire su Internet -- - Ogni dispositivo ha un IP privato -- - Spesso 192.168.x.x, 10.x.x.x o 172.16.x.x --- # Rete Locale: Switch e Hub -- - I dispositivi si collegano tramite switch o hub -- - Lo switch invia i pacchetti al destinatario corretto -- - L’hub manda i pacchetti a tutti (meno efficiente) -- - Fondamentale per capire il traffico LAN --- # Rete Locale: Gateway -- - Il router funge da gateway verso Internet -- - Tutti i pacchetti destinati all’esterno passano da lì -- - Gestisce NAT e firewall della rete -- - Permette più dispositivi di condividere un IP pubblico --- # Rete Locale: Comunicazione -- - PC, stampanti, NAS e altri dispositivi parlano tra loro -- - Protocolli comuni: TCP/IP, SMB, DHCP -- - Il ping serve a testare la connessione tra host -- - La rete locale è la base per capire Internet --- # Subnetting: Concetto Base -- - Divide una rete in sottoreti più piccole -- - La subnet mask determina quali IP stanno nella stessa rete -- - Es: 255.255.255.0 → primi 3 byte sono uguali per tutti i device, ultimo byte identifica il device -- - Permette organizzazione e sicurezza --- # Subnetting: Esempio Pratico -- - IP: 192.168.1.10 /24 -- - Subnet mask: 255.255.255.0 -- - Rete: 192.168.1.0 → host da 1 a 254 -- - Broadcast: 192.168.1.255 --- # DHCP e IP nella LAN -- - Il server DHCP assegna IP automaticamente -- - Evita conflitti tra dispositivi -- - Mantiene ordine e gestione semplice -- - Puoi avere IP statici per stampanti/server --- # Rete Locale: Sommario -- - LAN = dispositivi connessi localmente -- - Ogni dispositivo ha IP (e MAC) -- - Switch, router e gateway orchestrano la comunicazione -- - Subnetting e NAT rendono la rete efficiente e sicura --- ipconfig -- .center[] --- # Internet -- - Rete globale di reti collegate tra loro -- - Ogni dispositivo ha un IP pubblico per essere raggiunto -- - I router instradano i pacchetti tra le reti -- - Permette comunicazione tra qualsiasi dispositivo nel mondo --- # Internet: IP Pubblico -- - Identifica univocamente la tua rete verso l’esterno -- - Fornito dal provider (ISP) -- - Può essere statico o dinamico -- - Necessario per navigare e ricevere connessioni --- # Internet: NAT -- - Il router traduce IP privati (LAN) → IP pubblico -- - Consente a più dispositivi di usare un solo IP esterno -- - Protegge la rete locale da accessi diretti -- - Fondamentale per la sicurezza e il routing --- # Internet: Routing -- - I pacchetti seguono percorsi attraverso più router -- - Il percorso ottimale è scelto dai protocolli di routing -- - Ogni hop può essere visualizzato con tracert/traceroute -- - Permette efficienza e ridondanza nella rete globale -- - da terminale: traceroute (tracert in windows) 1.1.1.1 -- - da terminale: traceroute (tracert in windows) google.com --- # DNS -- - Sarebbe scomodo doversi ricordare tutti gli ip dei server che ci interessano -- - Cosi' come usiamo la rubrica del telefono, cosi' usiamo il servizio DNS per associare un nome di dominio ad un ip -- - Ogni paese controlla il proprio dominio di primo livello: italia .it, regno unito .uk, commercial .com, organization .org -- - Il DNS quindi traduce nomi in IP -- - Esempio: www.google.com → indirizzo ip --- # NSLOOKUP -- - da terminale digitare: nslookup google.com -- - Produce vari ip, viene preso il primo in lista -- - Google puo' gestire questa lista in maniera per distribuire il traffico in maniera bilanciata -- - Una volta richiesto un ip viene tenuto in memoria del pc per qualche minuto (viene specificato il TTL del DSN) -- - Chrome puo' anche fare connessioni in parallelo ed usare il primo ip che risponde --- funziona anche al contrario: -- nslookup 8.8.8.8 --- # TCP (1) -- - Protocollo orientato alla connessione -- - Canale stabile tra due host -- - Usato quando serve affidabilità --- # TCP (2) -- - Ritrasmette ciò che si perde -- - I pacchetti arrivano ordinati -- - Garantisce consegna completa --- # TCP (3) -- - Handshake: SYN → SYN/ACK → ACK -- - Verifica che entrambi siano pronti -- - Poi inizia il trasferimento --- # TCP (4) -- - Controllo di flusso -- - Controllo di congestione -- - Adattivo alle condizioni di rete --- # TCP (5) -- - Usato da HTTP, HTTPS, SSH, SMTP… -- - Ideale per dati “importanti” -- - Non ottimale per tempo reale --- # UDP (1) -- - Nessuna connessione -- - Invia e basta -- - Velocissimo --- # UDP (2) -- - No garanzie -- - No ordine -- - No ritrasmissioni --- # UDP (3) -- - Overhead minimo -- - Perfetto per streaming -- - Ottimo per VoIP e gaming --- # UDP (4) -- - Usato da DNS, DHCP -- - Bene se perdere pacchetti non è grave -- - Latenza molto bassa --- # ICMP (1) -- - Protocollo di servizio -- - Segnala errori e stati -- - Router e host lo usano --- # ICMP (2) -- - Le risposte di un server ad un pacchetto icmp -- - Destination unreachable -- - Time exceeded -- - Redirect, echo… --- # ICMP (3) -- - Non trasferisce “dati utente” -- - Spesso filtrato dai firewall -- - Strumento indispensabile -- ping google.com --- # Porte -- - Canali logici 0–65535 -- - Servizi ascoltano su porte --- # FTP (1) -- - File Transfer Protocol -- - Usato per trasferire file tra computer -- - Richiede server FTP e client FTP --- # FTP (2) -- - Porta 21 per il controllo -- - Porta 20 per il trasferimento dati (in modalità attiva) -- - Supporta login con username e password --- # FTP (3) -- - Due modalità principali: attiva e passiva -- - Modalità passiva utile dietro firewall/NAT -- - Non cifrato: username, password e file viaggiano in chiaro --- # FTP (4) -- - Client comuni: FileZilla, WinSCP, browser -- - Alternativa sicura: SFTP (FTP su SSH) -- - Utile per upload/download di siti web o backup --- esempio ftp ftp.ed.ac.uk - login: anonymous - password: email (anche a@b.c) --- # HTTP (1) -- - Protocollo del web -- - Testuale, semplice -- - Usa TCP porta 80 --- # HTTP (2) -- - Richieste GET/POST/PUT/DELETE… -- - esempio: GET / HTTP/1.1 Host: sguaff.com -- - Risposte con codici 200, 404, 500… -- - Nessuna cifratura --- # HTTP (3) -- - Facile da ispezionare -- - Perfetto per imparare -- - Non adatto a dati sensibili --- - da chrome http://sguaff.com -- - aprire Dev Tools: control+shift+I -- - sezione rete. cliccare sulla richiesta -- - Intestazione delle richieste, mettere il check in "non elaborate" --- # HTTPS (1) -- - HTTP + TLS -- - Cifrato e autenticato -- - Porta 443 --- # HTTPS (2) -- - Protegge da sniffing e man-in-the-middle -- - Certificati SSL/TLS -- - Standard del web moderno --- # HTTPS (3) -- - Browser verifica l’identità del server -- - Scambio sicuro della chiave -- - Dati criptati punto-punto --- # Telnet (1) -- - Protocollo storico -- - Connessione testuale -- - Porta 23 --- # Telnet (2) -- - Nessuna cifratura: tutto in chiaro -- - Perfetto per testare porte e server -- - Insicuro per login reali --- # Telnet (3) -- - Utile in didattica -- - Semplice da usare -- - Ha aperto la strada ad SSH --- Proviamo ad abilitare TELNET su windows --- - Windows 11 lo include già - È solo disabilitato di default - Serve per testare porte e protocolli --- - Apri Start - Cerca "Features" - Apri "Attiva o disattiva funzionalità Windows" - Trova "Client Telnet" - Metti la spunta - Conferma con OK --- - Installazione immediata - Nessun riavvio necessario - Comando disponibile nel terminale --- # Abilitare Telnet (PowerShell) - Apri PowerShell come admin - Esegui: - `dism /online /Enable-Feature /FeatureName:TelnetClient` --- telnet sguaff.com 80 GET / HTTP/1.1 Host: sguaff.com --- # SSH (1) -- - “Telnet moderno” -- - Sicuro e cifrato -- - Porta 22 --- # SSH (2) -- - Permette login remoto protetto -- - Forwarding di porte -- - Copie sicure con scp/sftp --- # SSH (3) -- - Usa chiavi pubbliche/ private -- - Evita password in chiaro -- - Standard per l’amministrazione remota --- # PUTTY - https://portableapps.com/apps/internet/putty_portable