Prefazione XI Capitolo 1 Introduzione 1 1.1 Internet: una panoramica 2 1.1.1 Le reti 2 1.1.2 Commutazione (switching) 4 1.1.3 Internet 6 1.1.4 L accesso a Internet 6 1.1.5 Capacità e prestazioni delle reti 8 1.1.6 Hardware e software 12 1.2 L organizzazione dei protocolli in livelli 12 1.2.1 Gli scenari 12 1.2.2 Lo stack protocollare TCP/IP 15 1.2.3 Il modello OSI 23 1.3 La storia di Internet 24 1.3.1 La storia iniziale 24 1.3.2 Nascita della rete Internet 25 1.3.3 Internet oggi 26 1.4 Gli standard e l amministrazione della rete Internet 26 1.4.1 Gli standard Internet 26 1.4.2 Amministrazione della rete Internet 28 Letture consigliate 29 Capitolo 2 Livello applicazione 30 2.1 Introduzione 30 2.1.1 L offerta di servizi 31 2.1.2 Paradigmi del livello applicazione 33 2.2 Paradigma client/server 35 2.2.1 API: Application Programming Interface 35 2.2.2 Utilizzo dei servizi di livello trasporto 38 2.3 Applicazioni client/server standard 40 2.3.1 World Wide Web e HTTP 40 2.3.2 FTP 53 2.3.3 Posta elettronica 57
VII 2.3.4 TELNET 67 2.3.5 Secure Shell (SSH) 69 2.3.6 Il DNS (Domain Name System) 69 2.4 Paradigma peer-to-peer 79 2.4.1 Reti P2P 79 2.4.2 BitTorrent: una rete P2P molto diffusa 81 2.4.3 Skype 83 2.5 Programmazione delle socket 84 2.5.1 Programmazione delle socket in C 84 Letture consigliate 95 Capitolo 3 Livello di trasporto 96 3.1 Introduzione 96 3.1.1 I servizi del livello trasporto 97 3.2 Protocolli di livello trasporto 109 3.2.1 Un protocollo semplice 109 3.2.2 Stop-and-Wait 110 3.2.3 Go-Back-N (GBN) 114 3.2.4 Selective-Repeat 121 3.2.5 Protocolli bidirezionali: piggybacking 127 3.2.6 Protocolli Internet di livello trasporto 128 3.3 Il protocollo UDP (User Datagram Protocol) 129 3.3.1 Struttura dei datagrammi utente 129 3.3.2 Servizi UDP 130 3.3.3 Applicazioni UDP 132 3.4 Il protocollo TCP (Transmission Control Protocol) 134 3.4.1 Servizi del protocollo TCP 134 3.4.2 Numeri di sequenza e di riscontro 136 3.4.3 Formato dei segmenti 138 3.4.4 La connessione TCP 140 3.4.5 Diagramma delle transizioni di stato 145 3.4.6 Finestre TCP 147 3.4.7 Controllo di flusso 150 3.4.8 Controllo degli errori 154 3.4.9 Controllo della congestione in TCP 161 3.4.10 Timer TCP 170 3.4.11 Le opzioni 174 Letture consigliate 174 Capitolo 4 Livello di rete 175 4.1 Introduzione 175 4.1.1 Servizi a livello di rete 177 4.1.2 Packet switching 179 4.1.3 Congestione a livello di rete 182 4.1.4 Struttura di un router 186
VIII Indice 4.2 Protocolli di livello rete 187 4.2.1 Formato di datagrammi IPv4 189 4.2.2 Indirizzi IPv4 195 4.2.3 Inoltro dei datagrammi IP 210 4.2.4 ICMPv4 216 4.3 Routing unicast 221 4.3.1 Concetti generali 221 4.3.2 Algoritmi di routing 223 4.3.3 Protocolli di routing unicast 234 4.4 Routing multicast 251 4.4.1 Introduzione 251 4.4.2 Principi di base del multicast 254 4.5 IP versione 6 258 4.5.1 Formato dei datagrammi IPv6 259 4.5.2 Indirizzamento IPv6 262 4.5.3 Passaggio da IPv4 a IPv6 265 4.5.4 ICMPv6 267 Letture consigliate 269 Capitolo 5 Livello di collegamento: reti cablate 270 5.1 Introduzione 271 5.1.1 Nodi e collegamenti 272 5.1.2 Due tipi di collegamenti 272 5.1.3 Due sotto-livelli 272 5.2 Data-Link Control (DLC) 273 5.2.1 Framing 273 5.2.2 Controllo di flusso e degli errori 274 5.2.3 Rilevamento e correzione errori 274 5.3 Protocolli ad accesso multiplo 280 5.3.1 Accesso casuale 281 5.3.2 Accesso controllato 292 5.3.3 Suddivisione in canali 292 5.4 Indirizzamento a livello di collegamento 292 5.5 LAN cablate: protocollo Ethernet 300 5.5.1 Progetto IEEE 802 302 5.5.2 Ethernet Standard 303 5.5.3 Fast Ethernet (100 Mbps) 309 5.5.4 Gigabit Ethernet 309 5.5.5 10-Gigabit Ethernet 310 5.5.6 LAN virtuali 310 5.6 Altre reti cablate 312 5.6.1 Reti punto-punto 312 5.7 Dispositivi di interconnessione 313 5.7.1 Repeater e hub 314 5.7.2 Switch di livello collegamento 314
IX 5.7.3 Router 316 Letture consigliate 317 Capitolo 6 Reti wireless e IP Mobile 318 6.1 LAN wireless 318 6.1.1 Introduzione 318 6.1.2 IEEE 802.11 322 6.1.3 Bluetooth 329 6.2 Accesso al mezzo mediante suddivisione del canale 332 6.3 Rete cellulare 339 6.4 IP Mobile 344 6.4.1 Indirizzamento 344 6.4.2 Agenti 345 6.4.3 Tre fasi 346 6.4.4 Inefficienza nell IP Mobile 351 Letture consigliate 352 Capitolo 7 Multimedia e qualità del servizio 353 7.1 Multimedia in Internet 353 7.1.1 Streaming di audio/video memorizzati su file 353 7.1.2 Streaming di audio/video dal vivo 357 7.1.3 Audio/video interattivi in tempo reale 357 7.2 Protocolli interattivi in tempo reale 361 7.2.1 Fondamento logico dei nuovi protocolli 361 7.2.2 RTP 364 7.2.3 RTCP 365 7.2.4 Session Initialization Protocol (SIP) 366 7.2.5 H.323 373 7.3 Qualità del servizio 373 7.3.1 Caratteristiche del flusso di dati 373 7.3.2 Classi di flusso 375 7.3.3 Controllo di flusso per migliorare la qualità del servizio 375 7.3.4 Integrated Services (IntServ) 380 7.3.5 Differentiated Services (DiffServ) 381 Letture consigliate 382 Capitolo 8 La gestione di rete 383 8.1 Introduzione 383 8.1.1 Configuration management 384 8.1.2 Fault management 385 8.1.3 Performance management 385 8.1.4 Security management 385 8.1.5 Accouting management 385 8.2 Gestione delle reti: il protocollo SNMP 386 8.2.1 Manager e agenti 386
X Indice 8.2.2 Le componenti della gestione 387 8.2.3 Una panoramica 388 8.2.4 Il protocollo SMI 388 8.2.5 Il protocollo MIB 391 8.2.6 Il protocollo SNMP 394 Letture consigliate 398 Capitolo 9 La sicurezza nelle reti 399 9.1 Introduzione 399 9.1.1 Obiettivi della sicurezza 400 9.1.2 Minacce e contromisure 400 9.2 Sicurezza della comunicazione 401 9.2.1 Attacchi 401 9.2.2 Cifratura a chiave simmetrica 403 9.2.3 Cifratura a chiave asimmetrica 413 9.2.4 Message digest 418 9.2.5 Message Authentication Code 419 9.2.6 Firma digitale 420 9.2.7 Autenticazione di entità 424 9.2.8 Gestione delle chiavi 426 9.3 Comunicazione sicura nei livelli dello stack protocollare 432 9.3.1 Sicurezza a livello applicazione 432 9.3.2 Sicurezza al livello trasporto: SSL 435 9.3.3 Sicurezza al livello rete: IPSec 440 9.4 Sicurezza delle LAN 446 9.4.1 Intrusioni 446 9.4.2 I firewall 447 9.4.3 Intrusion Dection Systems (IDS) 449 Letture consigliate 450 Capitolo 10 Programmazione delle socket in Java 451 10.1 Introduzione 451 10.1.1 Indirizzi e numeri di porta 451 10.1.2 Il paradigma client/server 455 10.2 Programmare con UDP 455 10.2.1 L approccio sequenziale 455 10.2.2 L approccio concorrente 465 10.3 Programmare con TCP 467 10.3.1 Approccio sequenziale 467 10.3.2 Approccio concorrente 475 Letture consigliate 477 Indice analitico 479 Eserciziario