Tecnologie di Sviluppo per il Web Introduzione alle Reti di Calcolatori versione 1.2 G. Mecca – [email protected] – Università della Basilicata Introduzione alle Reti >> Sommario Sommario dei Concetti Elab. Client-Server Reti di Calcolatori Commutazione di pacchetto La Rete Internet Reti di reti e routing Numeri IP DNS Servizi e porte G. Mecca - Tecnologie di Sviluppo per il Web Pile di Protocolli La pila ISO/OSI La Pila TCP/IP Livello di applicazione Livello di trasporto (TCP) Livello di rete (IP) 2 Introduzione alle Reti >> Elaborazione Client-Server Architetture di Riferimento Basi di Dati Applicazione Java Rete Applicazione C G. Mecca - Tecnologie di Sviluppo per il Web DBMS Base di Dati 3 Introduzione alle Reti >> Elaborazione Client-Server Architetture di Riferimento Sviluppo Web browser Internet intranet Server HTTP Sito browser G. Mecca - Tecnologie di Sviluppo per il Web 4 Introduzione alle Reti >> Elaborazione Client-Server Architetture Generale Architettura Client-Server richiesta – risposta elaborazione distribuita Cliente Rete Servente Servizio Cliente G. Mecca - Tecnologie di Sviluppo per il Web infrastruttura complessa 5 Introduzione alle Reti >> Reti di Calcolatori: Terminologia Reti di Calcolatori Insieme di calcolatori collegati fisicamente condivisione di risorse e servizi comunicazione (scambio di messaggi) G. Mecca - Tecnologie di Sviluppo per il Web 6 Introduzione alle Reti >> Reti di Calcolatori: Terminologia Parametri Tecnologici Parametri di classificazione delle reti Collegamenti fisici Livello di distribuzione Modalità di connessione Protocolli G. Mecca - Tecnologie di Sviluppo per il Web 7 Introduzione alle Reti >> Reti di Calcolatori: Terminologia Collegamenti e Topologie Cavo elettrico in rame (doppino) 10/100 Mbit/s fino a 100 mt Fibra ottica 1 Gbit/s fino a 100 Km Ponti radio Linee telefoniche (modem) Topologie parzialmente connesse G. Mecca - Tecnologie di Sviluppo per il Web 8 Introduzione alle Reti >> Reti di Calcolatori: Terminologia Livello di Distribuzione Tradizionali LAN – Local area network (1 km) MAN – Metrop. area network (100 km) WAN – Wide area network (1000 km) Più recenti GAN – Global area network (10000 km) PAN – Personal area network (10 mt) G. Mecca - Tecnologie di Sviluppo per il Web 9 Introduzione alle Reti >> Reti di Calcolatori: Terminologia Modalità di Connessione Commutazione di circuito (es: reti telef.) Commutazione di pacchetto (es: Internet) G. Mecca - Tecnologie di Sviluppo per il Web 10 Introduzione alle Reti >> Reti di Calcolatori: Terminologia Architettura e Protocolli Protocollo insieme di regole per la comunicazione regolano lo scambio di bit tra i calcolatori Reti tradizionali tecnologia singola Reti di Reti molte tecnologie “internetworking” G. Mecca - Tecnologie di Sviluppo per il Web 11 Introduzione alle Reti >> La Rete Internet Rete di Reti (internet) Tecnologie multiple Gateway (o Router) Rete 4 R3 Rete 1 Rete 3 R1 R2 Es: Internet (ma anche IPX) Rete 2 G. Mecca - Tecnologie di Sviluppo per il Web 12 Introduzione alle Reti >> La Rete Internet Internet, una Classificazione Collegamenti fisici eterogenei (rete di reti) Livello di distribuzione Global Area Network Modalità di connessione commutazione di pacchetto Protocolli TCP/IP, “Internetworking” (>>) G. Mecca - Tecnologie di Sviluppo per il Web 13 Introduzione alle Reti >> La Rete Internet >> Numeri IP Meccanismo di Indirizzamento Numeri IP (IPv4) 10100000 01001110 00110000 00000010 byte 1 byte 2 byte 3 byte 4 160 . 78 . 48 . 2 G. Mecca - Tecnologie di Sviluppo per il Web 14 Introduzione alle Reti >> La Rete Internet >> Numeri IP Meccanismo di Indirizzamento Struttura del numero IP due parti identificatore della rete (net id) identificatore del calcolatore nella rete (host) Esempio 193.204.22.24 net id: 193.204.22 host: 24 G. Mecca - Tecnologie di Sviluppo per il Web 15 Introduzione alle Reti >> La Rete Internet >> Numeri IP Meccanismo di Indirizzamento Tipicamente (reti di classe C) i primi 3 ottetti sono il net id l’ultimo è il numero dell’host Subnet mask numero che specifica quale parte dei numeri IP di una rete contiene l’id della rete es: rete di classe C 255.255.255.0 G. Mecca - Tecnologie di Sviluppo per il Web 16 Introduzione alle Reti >> La Rete Internet >> DNS Numeri e Nomi root Domini Internet com yahoo microsoft www.microsoft.com gov org it jp ...... ...... uniroma3 ...... unibas research dia fis www.difa.unibas.it mail.dia.uniroma3.it G. Mecca - Tecnologie di Sviluppo per il Web 17 Introduzione alle Reti >> La Rete Internet >> DNS DNS La comunicazione avviene sempre tra IP Domain Name System: Servizio che consente di associare un IP ad un nome Domain Name Server: macchina che offre il servizio Ogni dominio ha il suo DNS algoritmo di risoluzione gerarchico G. Mecca - Tecnologie di Sviluppo per il Web 18 Introduzione alle Reti >> La Rete Internet >> DNS Esempio root Una possibile risoluzione di “mail.dia.uniroma3.it” da parte di “www.microsoft.com” com yahoo microsoft gov org it jp ...... ...... uniroma3 ...... unibas dia www.microsoft.com fis www.difa.unibas.it mail.dia.uniroma3.it G. Mecca - Tecnologie di Sviluppo per il Web 19 Introduzione alle Reti >> La Rete Internet >> DNS Parametri di Connessione Ogni calcolatore deve quindi avere: numero IP IP del router (gateway) subnet mask In aggiunta, può avere uno o più IP di DNS da cui cominciare la ricerca dei nomi G. Mecca - Tecnologie di Sviluppo per il Web 20 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Principali Servizi Internet telnet: terminale remoto ftp: trasferimento file smtp: invio di posta elettronica pop: ricezione posta elettronica http: trasferimento di ipertesti (Web) molti altri… G. Mecca - Tecnologie di Sviluppo per il Web 21 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Porte Un server, molti servizi server http + email 192.168.10.1 Client POP3 lettura posta http smtp 192.168.10.1 ? G. Mecca - Tecnologie di Sviluppo per il Web pop 22 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Porte e Connessioni Identificatore numerico di un servizio il servizio “ascolta” sulla porta client lettura posta server 192.168.10.1 http 192.168.10.1, 110 smtp pop porta 80 porta 25 porta 110 G. Mecca - Tecnologie di Sviluppo per il Web 23 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Porte Numero di porta: 16 bit (0-65535) http://www.iana.org “Well Known”: 0-1024 porte riservate (servizi particolari o sistema) Es: 80 http, 23 telnet “Registered Ports”: 1024-49151 porte non riservate (ma di uso noto) Es: 3306 MySQL, 5432 PostgreSQL, 8080 “Dynamic/Private”: le altre G. Mecca - Tecnologie di Sviluppo per il Web 24 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Porte Linux: /etc/services Windows: winnt/system32/drivers/etc/services G. Mecca - Tecnologie di Sviluppo per il Web 25 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Esempio di Connessione Web server: 192.168.10.1, porta 80 Web browser: 192.168.10.9, porta 32938 Richiesta da 192.168.10.9 a 192.168.10.1 source port destination port 32938 80 Risposta da 192.168.10.9 a 192.168.10.1 source port destination port 80 32938 G. Mecca - Tecnologie di Sviluppo per il Web 26 Introduzione alle Reti >> Concetto di Pila di Protocolli Protocolli e Pile di Protocolli Come avviene la comunicazione ? Problemi da risolvere Hardware (collegamenti) Comunicazione (trasmissione) Software (messaggi tra le applicazioni) Approccio nelle reti di calcolatori risolvere i diversi problemi a diversi livelli attraverso protocolli specifici G. Mecca - Tecnologie di Sviluppo per il Web 27 Introduzione alle Reti >> Concetto di Pila di Protocolli I Due Santoni Due santoni vogliono discutere del senso della vita uno vive in Tibet, l’altro in Italia è necessaria una connessione non dispongono di telefono è necessario stabilire una forma di trasmissione uno parla cinese, l’altro italiano è necessario stabilire un linguaggio per la comunicazione G. Mecca - Tecnologie di Sviluppo per il Web 28 Introduzione alle Reti >> Concetto di Pila di Protocolli I Due Santoni Regole linguaggio comune: inglese formato di trasmissione: pagine dattiloscritte canale di comunicazione: fax Infrastruttura interprete segretaria dattilografa macchina per fax G. Mecca - Tecnologie di Sviluppo per il Web 29 Introduzione alle Reti >> Concetto di Pila di Protocolli C’è grossa crisi 我看一次严肃的危机 I see a serious crisis around I see a serious crisis around 01001110 01001110 linea telefonica G. Mecca - Tecnologie di Sviluppo per il Web 30 Introduzione alle Reti >> Concetto di Pila di Protocolli Modulo Software (es: browser) Modulo Software (es: server web) Messaggio Messaggio Infrastruttura Infrastruttura Strato Strato regole regole regole Strato Strato Strato Strato collegamento fisico G. Mecca - Tecnologie di Sviluppo per il Web 31 Introduzione alle Reti >> Concetto di Pila di Protocolli Strati Software e Pila di Protocolli Applicativo Y Applicativo X Strato software Strato software Strato software protocollo protocollo protocollo Strato software Strato software Strato software interfacce protocollo Strato fisico collegamento G. Mecca - Tecnologie di Sviluppo per il Web Strato Fisico 32 Introduzione alle Reti >> Concetto di Pila di Protocolli >> La Pila ISO/OSI La Pila ISO/OSI Applicazione Presentazione protocollo protocollo Applicazione Presentazione protocollo Sessione Trasporto Rete Sessione protocollo protocollo Trasporto Rete protocollo Dati Fisico Dati protocollo collegamento G. Mecca - Tecnologie di Sviluppo per il Web Fisico 33 Introduzione alle Reti >> La Pila TCP/IP La Pila TCP/IP La pila di protocolli di Internet Due protocolli fondamentali: TCP e IP Applicazione Trasporto Rete Fisico protocollo POP, SMTP HTTP … protocollo TCP, UDP (ICMP) protocollo protocollo collegamento G. Mecca - Tecnologie di Sviluppo per il Web IP Fisico 34 Introduzione alle Reti >> La Pila TCP/IP La Pila TCP/IP Idea la comunicazione avviene al livello più alto attraverso lo scambio di messaggi (client e server, richieste e risposte) nella trasmissione ogni strato si rivolge a quello immediatamente inferiore ogni strato modifica e aggiunge informazione ai messaggi generati a livello più alto nella ricezione avviene il contrario G. Mecca - Tecnologie di Sviluppo per il Web 35 Introduzione alle Reti >> La Pila TCP/IP Livello di Applicazione Numerosi protocolli (client-server) Sintassi e semantica dei messaggi (ASCII) Esempio: SMTP Appl. Java 192.168.10.111 Client SMTP Server email 192.168.10.1 protocollo di applicazione 220 192.168.10.1 SMTP Service MAIL From:<[email protected]> RCPT To:<[email protected]> <testo del messaggio> G. Mecca - Tecnologie di Sviluppo per il Web Server SMTP 220 250 250 250 HELO 192.168.10.111 MAIL accepted RECIPIENT accepted OK 36 Introduzione alle Reti >> La Pila TCP/IP Livello di Trasporto: TCP Orientato alla connessione, affidabile Datagrammi (pacchetti) Client SMTP protocollo di applicazione Server SMTP messaggio SMTP...... protocollo messaggio SMTP....... di trasporto TCP TCP porta dest., porta sorg. porta dest., porta sorg. dg1 dg1 dg500 dg1000 dg500 dg1000 intestazioni TCP G. Mecca - Tecnologie di Sviluppo per il Web 37 Introduzione alle Reti >> La Pila TCP/IP Livello di Rete: IP (Internet Protocol) Commutazione pacchetto, non affidabile Instradamento (routing) TCP dg500 IP protocollo di trasporto protocollo di rete IP dest., IP sorg. dg500 R TCP dg500 IP IP dest., IP sorg. route R dg500 intestazioni IP G. Mecca - Tecnologie di Sviluppo per il Web 38 Introduzione alle Reti >> La Pila TCP/IP Livello Fisico Vari protocolli (es: Ethernet) Stabilisce le regole per la trasmissione dei bit sul canale fisico IP dg500 R Ethernet protocollo di rete route 0100100110 IP R dg500 Ethernet collegamento fisico G. Mecca - Tecnologie di Sviluppo per il Web 39 Introduzione alle Reti >> La Pila TCP/IP Appl. Java Server email e-mail Client SMTP messaggio SMTP.... TCP HTdg1 HTdg500 H dg1000 T IP HIPHTdg500 R Ethernet e-mail protocollo di applicazione protocollo di trasporto protocollo di rete Server SMTP messaggio SMTP.... TCP HTdg1 route 0100100110 HTdg500 HTdg1000 IP R HIPHTdg500 Ethernet collegamento fisico G. Mecca - Tecnologie di Sviluppo per il Web 40 Introduzione alle Reti >> Sommario Sommario Elab. Client-Server Reti di Calcolatori Commutazione di pacchetto La Rete Internet Reti di reti e routing Numeri IP DNS Servizi e Porte G. Mecca - Tecnologie di Sviluppo per il Web Pile di Protocolli La pila ISO/OSI La Pila TCP/IP Livello di applicazione Livello di trasporto (TCP) Livello di rete (IP) 41 Introduzione alle Reti >> La Rete Internet Internet, Qualche Dato ARPANET 1969: 4 1972: 34 1990: 200.000 1992: 1M 1200000 1000000 800000 600000 400000 200000 0 1968 1978 1988 Oggi: 2x all’anno G. Mecca - Tecnologie di Sviluppo per il Web 42 Introduzione alle Reti >> La Rete Internet >> Numeri IP Rete e Host bit 1 byte 1 CLASSE A 0 CLASSE B 1 0 CLASSE C 1 1 0 byte 2 netid bit 32 byte 4 byte 3 hostid netid hostid netid hostid subnet mask es: 255.255.255.0 G. Mecca - Tecnologie di Sviluppo per il Web 43 Introduzione alle Reti >> La Rete Internet >> Numeri IP Classi di Reti Classe A 1.0.0.1 - 126.255.255.254 (es. 10.1.23.19) 126 reti, 16.777.214 host per rete (es: ARPANET) Classe B 128.0.0.0 - 191.255.255.254 (es. 172.16.19.48) 16.384 reti, 65.534 host per rete (es: grandi università) Classe C 192.0.0.0 - 223.255.255.254 (es. 193.18.9.10) 2.097.152 reti, 254 host per rete (la maggior parte) G. Mecca - Tecnologie di Sviluppo per il Web 44 Introduzione alle Reti >> La Rete Internet >> Numeri IP Reti Non Connesse Reti disconnesse da Internet I numeri IP possono essere utilizzati nelle reti locali Classe A (una rete) 10.0.0.0 Classe B (16 reti) 172.16.0.0 - 172.31.0.0 Classe C (256 reti) 192.168.0.0 - 192.168.255.0 G. Mecca - Tecnologie di Sviluppo per il Web 45 Introduzione alle Reti >> La Rete Internet >> Servizi e Porte Porte e Socket Socket: IP, porta, stream originariamente in UNIX API fondamentale per la prog. client/server Connessione: 2 socket client verso il server server verso il client G. Mecca - Tecnologie di Sviluppo per il Web 46 Introduzione alle Reti >> La Pila TCP/IP Datagramma TCP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | your data ... next 500 octets | | ...... | G. Mecca - Tecnologie di Sviluppo per il Web 47 Introduzione alle Reti >> La Pila TCP/IP Datagramma IP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TCP header, then your data ...... | | | G. Mecca - Tecnologie di Sviluppo per il Web 48 Introduzione alle Reti >> La Pila TCP/IP Altri Protocolli UDP (Unix Datagram Protocol) non orientato alle connessioni, non affidabile utile per richieste di un solo pacchetto ICMP (Internet Control Message Protocol) scambio di messaggi di controllo G. Mecca - Tecnologie di Sviluppo per il Web 49