PROTOCOLLI APPLICATIVI PER INTERNET IC3N 2000 N. 5 La famiglia dei protocolli TCP/IP Applicazioni e-mail,ftp,ssh,www TCP UDP ICMP IP ARP RARP IEEE 802-Ethernet-X25-Aloha ecc. Collegamento fisico 6 1
Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web DNS per la risoluzione dei nomi SMTP/POP per la posta elettronica FTP per il trasferimento di file TELNET/SSH per l accesso a terminale virtuale Hanno in comune alcune caratteristiche generali 7 Elementi di un protocollo applicativo Tipi di messaggio che vengono scambiati Es: richieste e risposte Sintassi dei vari tipi di messaggio Significato dell informazione nei campi (semantica) Regole che governano lo scambio dei messaggi 8 2
Protocolli standard I protocolli dello strato di applicazione per Internet vengono definiti nelle RFC in ambito IETF Se un protocollo è definito nella RFC, chiunque si conforma ad esso è in grado di comunicare indipendentemente dalla realizzazione della applicazione di rete Concetto di sistema aperto Esistono protocolli applicativi proprietari Sistemi chiusi 9 Modello client-server La comunicazione tra due applicazioni residenti su macchine distinte avviene seguendo lo schema client-server Un processo SERVER esegue precise funzioni ed attende una richiesta di connessione da un client Un processo CLIENT vuole usufruire di un certo servizio e instaura una connessione col server Per l indirizzamento dei processi si usano le socket TCP: Indirizzo IP + numero di porta Es. 137.204.57.85:80 10 3
Socket TCP: Connessioni e Multiplazione Host A Host C 300 301 TCP 22 80 TCP 137.204.57.10 IP 137.204.57.85 IP Host B 301 137.204.57.20 TCP IP 11 Well-known ports (esempi) Numero Nome Tipo di servizio 21 FTP trasferimento file 22 SSH terminale virtuale criptato 23 TELNET terminale virtuale in chiaro 25 SMTP posta elettronica 53 DOMAIN server DNS 80 HTTP server web 110 POP3 posta elettronica Un client A che voglia connettersi ad un server B attiva una porta (active open) e cerca di connettersi ad una well-known port di B, che normalmente è in attesa (passive open) 12 4
Comando NETSTAT netstat -n visualizza le informazioni relative alle connessioni TCP attive in un host netstat -s visualizza una serie di dati di tipo statistico sul traffico relativo ai diversi protocolli 13 Comando NETSTAT Esempio 1 14 5
Comando NETSTAT Esempio 2 (I) 15 Comando NETSTAT Esempio 2 (II) 16 6
Programma NMAP nmap HOST effettua un port scanning sulla macchina HOST e visualizza le porte TCP corrispondenti a processi in fase di ascolto (SERVER) Port scanning si invia un SYN verso ogni porta Se si riceve un SYN+ACK la porta è attiva Se si riceve un RST la porta è chiusa Reperibile gratuitamente da: http://www.insecure.org/nmap 17 Programma NMAP Esempio 1 18 7
Programma NMAP Esempio 2 19 Hyper-Text Transfer Protocol HTTP E il protocollo utilizzato dal servizio www Al web spetta il merito di aver portato Internet oltre gli ambienti accademici HTTP è definito in RFC 1945 e RFC 2616 HTTP è implementato come programma client (Browser) e come programma server (Apache) Una pagina web consiste di oggetti individuabili ciascuno attraverso un URL File base HTML con vari oggetti referenziati attraverso singoli URL 20 8
URL (Uniform Resource Locator) L identificatore URL è formato di 3 parti: http://www-tlc.deis.unibo.it/eng/default.htm http://: individua il tipo di server, cioè il protocollo www-tlc.deis.unibo.it : nome DNS dell host /eng/default.htm : individua il file all interno dell Host Attraverso la funzione DNS è possibile associare al nome dell host un indirizzo IP 21 Formato dei messaggi HTTP I messaggi sono di due tipi: richiesta e risposta Righe di caratteri ASCII terminate da CR+LF Esempio di richiesta: GET /eng/default.htm HTTP/1.1 Accept: */* Accept-Language: en-us If-Modified-Since: Wed, 16 Jan 2002 16:37:40 GMT User-agent:Mozilla/4.0 Host: www-tlc.deis.unibo.it Connection: Keep-Alive metodo, file, versione contenuto accettato preferenza linguistica ultima versione nella cache tipo di browser host connessione permanente 22 9
Formato dei messaggi HTTP Risposta: HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Wed, 26 Feb 2003 17:37:44 GMT Content-Type: text/html Last-Modified: Thu, 19 Dec 2002 16:02:27 GMT Content-Length: 495 <html>... qui c è il testo HTML della pagina richiesta (495 byte)... </html> 23 Connessione non permanente http://www-tlc.deis.unibo.it/eng/default.htm 1. il client HTTP inizia una connessione TCP verso il server www-tlc.deis.unibo.it sulla cui porta 80 il server HTTP è in ascolto 2. il client HTTP invia una richiesta (GET) al server attraverso la socket associata alla connessione TCP stabilita al punto 1. Nella richiesta specifica il percorso /eng/default.htm 3. il server riceve la richiesta, incapsula l oggetto specificato nella risposta HTTP e invia il messaggio al client attraverso la socket 4. il server HTTP invia al TCP la richiesta di chiusura della connessione che ha effetto solo dopo che il messaggio di risposta è stato ricevuto correttamente 5. il client riceve il messaggio di risposta. La connessione TCP si conclude. Il messaggio indica che l oggetto è un file HTML. Il client lo estrae e trova i riferimenti agli oggetti referenziati 6. i primi 4 passi vengono ripetuti per ciascuno degli oggetti referenziati (eventuali connessioni in parallelo) 24 10
Tempo di risposta Per ricevere il file base HTML occorre 1 RTT (Round Trip Time) per l instaurazione della connessione TCP 1 RTT per l invio della richiesta e l arrivo della risposta Tempo di trasmissione del file HTML al client SYN SYN + ACK Tempo di Risposta ACK Richiesta HTTP Risposta 1 HTTP 2 25 Connessione permanente E la modalità di default per HTTP 1.1 Il server non chiede la chiusura della connessione TCP se non dopo che è scaduto un time-out durante il quale la connessione non è utilizzata Per ricevere un oggetto (tranne il primo) occorre: 1 RTT Tempo di trasmissione del file HTML Tempo di Risposta Tempo di Risposta SYN ACK 1 2 SYN + ACK 26 11
Connessione permanente Senza parallelismo Con parallelismo 3 3 4 5 4 6 27 Nomi e indirizzi Domain Name System Domain Name System (DNS) associa ad ogni host un nome simbolico che corrisponde al suo indirizzo IP I nomi sono composti da stringhe di caratteri separati da punti: le stringhe sono abbreviazioni convenzionali, più facili da ricordare, che indicano luogo fisico o ente di appartenenza dell host il numero di stringhe è virtualmente illimitato, al contrario del numero IP Es. deis85.deis.unibo.it 28 12
Organizzazione del DNS Domini Internet è partizionata in aree logiche dette domini I singoli domini possono a loro volta essere suddivisi in sottodomini (non esiste limite al numero di ripartizioni di un dominio o sottodominio) La struttura dei nomi segue questa organizzazione gerarchica a partire da destra, dove si trova la stringa di maggior valore (dominio primario) 29 Gerarchia dei domini deis85.deis.unibo.it Radice edu com net it uk DOMINI DI PRIMO LIVELLO ucla virgilio unibo DOMINI DI SECONDO LIVELLO www deis dm DOMINI DI TERZO LIVELLO NOME HOST deis85 deis174 30 13
Domini primari edu istituzioni scolastiche o di ricerca USA gov istituzioni governative USA com organizzazioni commerciali mil gruppi militari USA org altre organizzazioni net centri di supporto alla rete country code sigle standard per identificare le nazioni (ISO 3166) it fr uk de au jp ie dk br 31 Gestione del database dei nomi PROBLEMA come fare a gestire un database con tutti i nomi degli host di Internet? SOLUZIONE database distribuito Lo spazio dei nomi è suddiviso in zone non sovrapposte, che contengono uno o più sottodomini Ciascuna zona prevede un name server principale ed eventuali server secondari Ogni name server è a conoscenza degli indirizzi IP corrispondenti ai nomi degli host contenuti nella sua zona, di cui è responsabile 32 14
Suddivisione in zone Radice edu com net it uk DOMINI DI PRIMO LIVELLO ucla virgilio unibo DOMINI DI SECONDO LIVELLO www deis dm DOMINI DI TERZO LIVELLO NOME HOST deis85 deis174 33 Come avere un numero dato il nome Un applicazione deve contattare un host di cui conosce il nome DNS Per ottenere l indirizzo IP chiama un altro programma chiamato name resolver Se il resolver ha già l informazione richiesta (ad es. in una cache) la comunica direttamente all applicazione Altrimenti interroga il name server della zona a cui appartiene l host locale Se il name server ha già l informazione richiesta (perché di sua competenza o in una cache) la comunica al resolver Altrimenti interroga il name server del dominio di livello più alto nel nome dell host cercato 34 15
Esempio Da deis85.deis.unibo.it a www.ucla.edu deis85 Cache ucla.edu Applicazione Name Resolver Name Server Remoto Base Dati Base Dati Name Server Locale Name Server Remoto Base Dati deis.unibo.it edu 35 Comando NSLOOKUP Interroga un server DNS per trovare la corrispondenza NOME_DNS INDIRIZZO_IP nslookup NOME_DNS restituisce l indirizzo IP corrispondente a NOME_DNS nslookup INDIRIZZO_IP restituisce il nome DNS corrispondente a INDIRIZZO_IP 36 16
Comando NSLOOKUP Esempio 37 17