il livello delle applicazioni -...
TRANSCRIPT
Il livello delle applicazioni
18/03/04 2
Internet protocol stack
application:ftp, smtp, http
transport:tcp, udp
network: ip, routing protocols
link: trasferimento dei dati
ppp, ethernet
physical: “ on the wire”
application
transport
network
link
physical
application
18/03/04 3
Applicazioni
Applicazioni di reteInsieme di processi distribuiti: sono in esecuzione su di un host connesso in reteCooperano tramite scambio di messaggie.g., email, file transfer, P2P file sharing, IM, Web
Protocolli del livello delle applicazioniUna componente delle applicazioniDefiniscono la struttura dei msgRichieste di servizio ai livelli inferiori
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
18/03/04 4
Protocolli livello applicazioni
Tipo dei msg scambiati
Sintassi dei msg
Semantica header dei msg
Regole di elaborazione
Publicdomain protocols:
RFC
InteroperabilityHTTP, SMTP
Proprietary protocols:
KaZaA
18/03/04 5
Terminologia comune
user agent: interfaccia tra le applicazioni di rete ed i protocolli di comunicazione del livello delle applicazioni.
Web:browser
Email: mail reader
Applicazioni audio/video: player
18/03/04 6
Il modello Client Server
Si identificano due componenti: client e server
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
Client:
Si connette al server (“ speaks first” )
Effettua la richiesta del servizio
E.g. Web: cliente è il browser; email: cliente è il mail reader
Server:
Fornisce un certo numero di servizi (in risposta alle richieste del cliente)
Web server invia le pagine richieste
request
reply
18/03/04 7
Modello peertopeer (p2p)
Due applicazioni su due host diversi sono peertopeer se entrambe possono iniziare una conversazione (possono operare sia come client che come server)
Una componente di una applicazione peertopeer (es. Gnutella): si registra sulla rete (on line)
può chiedere informazioni a server specifici (es. Cataloghi)
espone sulla rete i file locali dichiarati pubblici
può servire più richieste allo stesso tempo
permette di accedere i file remoti esposti da un processo peer
18/03/04 8
P2P
ProblematicaAffidabilità e sicurezza (sono applicazioni softstate)
Routing: nozione di cammino ottimo
Numero elevato di messaggi
18/03/04 9
P2P: Esempio
Napster www.napster.com è il nome di un servizio di file sharing con architettura peertopeer inventato nel 1999 da Shawn Fanning.
In agosto 2002 il servizio è stato disattivato su istruzioni della magistratura americana
Napster consentiva di condividere file compressi nel formato MP3, i nomi dei file erano classificati su un servercatalogo
18/03/04 10
Napster
Quando si voleva una canzone:si diveva effettuare una interrogazione al servercatalogo (centralizzato);
il server rispondeva con un elenco di siti
collegamento diretto (peertopeer) al sito più conveniente che offriva quella canzone
L'interfaccia di Napster permetteva di scegliere il sito in funzione della banda disponibile e del tempo di trasferimento
18/03/04 11
P2P: Gnutella
Gnutella è simile a Napster e permette di condividere qualsiasi tipo di file; non usa un server catalogo centralizzato (è più P2P)
www.gnutella.org
www.gnutella.co.uk
Un cliente per Gnutella è Limewire www.limewire.com
18/03/04 12
Altri sistemi P2P
www.musiccity.com
www.grokster.com
www.imesh.com/index.cfm
www.napigator.com
opennap.sourceforge.net
www.mojonation.net
www.swapoo.com
www.aimster.com
18/03/04 13
User agent universale: browser
Un browser (MS Internet Explorer, Netscape, Opera) è uno user agent per server HTTP, il protocollo del Web, ma permette di accedere anche a servizi diversi da quelli tipici del Web, perché si adatta a usare i relativi protocolli
http://unsitoweb.com
ftp://unserverftp.com
18/03/04 14
Application Program Interface: API
Network API
Interfaccia tra il livello delle applicazioni e quello del trasporto
socket: Internet APIprocessi delle applicazioni comunicano tramite socket
D: Come avviene la fase di identificazione dei processi?
Indirizzo IP
Port number
API: Librerie che permettono di usare servizi sia locali che remoti
Non affronteremo questi aspetti!
18/03/04 15
Quali sono le caratteristiche del trasportoData loss
Alcune app. (e.g., audio) possono tollerare la perdita di datiAltre app. (e.g., file transfer, telnet) richiedono il 100% di affidabilità nella trasmissione dei dati
TimingApp (e.g., Internet telephony) non possono ammettere dei ritardi nella trasmissione dei dati
BandwidthAlcune app. (e.g., multimedia) richiedono di avere almeno un determinato livello di banda per poter operare
Altre applicazioni (“ elastic applications” ) non fanno richieste sulla banda di trasmissione
18/03/04 16
Requisiti applicazioni
Time Sensitive
nononoyes, 100’ s msec
yes, few secsyes, 100’ s msecyes and no
Application
file transfere-mail
Web documentsreal-time audio/video
stored audio/videointeractive gamesinstant messaging
Data loss
no lossno lossno lossloss-tolerant
loss-tolerantloss-tolerantno loss
Bandwidth
elasticelasticelasticaudio: 5kbps-1Mbpsvideo:10kbps-5Mbpssame as above few kbps upelastic
18/03/04 17
I servizi di trasporto
TCP:connectionoriented: richiede una fase di inizializzazione
affidabile
controllo del flusso e della congestione
non fornisce: timing, e un livello minimo di banda
UDP:non affidabile
no controllo del flusso e della congestione
D: come mai esiste UDP?
18/03/04 18
Applicazioni e trasporto
Application
emailremote terminal access
Web file transfer
streaming multimedia
Internet telephony
Applicationlayer protocol
SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]proprietary(e.g. RealNetworks)proprietary(e.g., Dialpad)
Underlyingtransport protocol
TCPTCPTCPTCPTCP or UDP
typically UDP
18/03/04 19
FTP
Il File Transfer Protocol (FTP) è uno dei servizi Internet più basilari (ed ha ispirato HTTP, il protocollo del Web)
Si usa per download/upload, cioè per copiare file (sia testo che binari) da un sito ad un altro sia on line che in batch; inoltre, visualizza il contenuto di interi directory e permette cancellazione o spostamento di archivi se se ne ha il diritto
Per fare ftp si può usare un cliente apposito (es. CuteFTP su Windows, fetch su Mac, ftp su Linux)
oppure un browser WWW, usando URL speciali: Esempio: ftp://www.pianeta.it/ftp
18/03/04 20
ftp: file transfer protocol
Funzionalità: trasferimento di dati (files) da/per il sistema remoto
Architettura software: client/server
client: il sistema che attiva il trasferimento
server: il sistema remoto
ftp: RFC 959
ftp server: port 21
file transfer FTPserver
FTPuser
interface
FTPclient
File system locale
Sistema remotouser
18/03/04 21
FTP
FTP è un protocollo definito già nella struttura di ARPANET
Modalità di interazioneInteractive Mode
Batch Mode
18/03/04 22
FTP: autenticazione
Il servizio ftp permette l'autenticazione dell'utente: quando si apre la connessione con il server, vengono chiesti username e password; inoltre viene tenuta traccia (log) di tutte le operazioni
Nota: molti server permettono login anonimo:ftp unserverftp.host.nation login: anonymous
password: username@dominio
18/03/04 23
ftp: controllo e datiIl client ftp si connette al server ftp sulla porta 21, indicando TCP come protocollo di trasportoEffetto: vengono aperte due connessioni TCP parallele:
control: scambio dei comandi e delle risposte tra client e server.data: trasferimento effettivo dei dati
ftp: protocollo con statoIl server conserva informazioni di stato: la directory corrente, informazione per la autenticazione dell’ut ente.
FTPclient
FTPserver
TCP control connectionport 21
TCP data connectionport 20
18/03/04 24
ftp commands, ftp responses
Commands:Inviati in formato ASCII sul canale di controlloUSER username
PASS password
LIST restituisce la lista dei file presenti nella directory corrente
RETR(get) filename STOR (put) filename
Return codesCodici di stato331 Username OK, password required
125 data connection already open; transfer starting
425 Can’t open data connection
452 Error writing file
18/03/04 25
DNS
DNS è una applicazione che permette la gestione dello spazio dei nomi di internet
Risoluzione dei nomi
18/03/04 26
DNS: Statistiche
18/03/04 27
Domini toplevel
Domain Hosts
TOTAL 233101481
net 100751276 Networks com 48688919 Commercial jp 12962065 Japan edu 7576992 Educational arpa 6146841 Mistakes it 5469578 Italy uk 3715752 United Kingdom de 3421455 Germany nl 3419182 Netherlands ca 3210081 Canada br 3163349 Brazil au 2847763 Australia tw 2777085 Taiwan, Province Of China fr 2770836 France us 1757664 United States se 1539917 Sweden dk 1467415 Denmark be 1454350 Belgium mil 1410944 US Military mx 1333406 Mexico org 1332978 Organizations
18/03/04 28
Interrogare il DNS
La funzione nslookup permette di interrogare il DNShost e dig in Linux
Il sito Web www.infobear.com/nslookup.shtml permette di interrogare via Web il DNS
Il sito www.nic.it/RA/database/database.html accede al registro della Registration Authority italiana
18/03/04 29
Esempio
nslookup q=A infouma.di.unipi.it ns1.worldnet.att.netServer: ns1.worldnet.att.net
Address: 204.127.129.1#53
Nonauthoritative answer:
infouma.di.unipi.it canonical name = compass2.di.unipi.it.
Name: compass2.di.unipi.it
Address: 131.114.3.27
18/03/04 30
FINGER
Nei sistemi Linux:
il programma finger permette di chiedere alcune informazioni su un utente remoto (se il suo sistema ha un demone finger):
finger scozzari:Login: scozzari Name: Francesca Scozzari
Directory: /home/logic/scozzari Shell: /bin/csh
On since Wed Mar 17 22:07 (CET) on pts/5 from strudel.di.unipi.it
Mail last read Wed Mar 17 22:05 2004 (CET)
18/03/04 31
FINGER
Per motivi di sicurezza il servizio finger non viene abilitato
Intrusioni dall'esterno
Privacy delle informazioni
18/03/04 32
PINGIl programma ping trasmette messaggi (verso uno specifico host) e si mette ad aspettare una risposta
ping c 10 ms2.di.unipi.itPING ms2.di.unipi.it (131.114.3.12) 56(84) bytes of data.64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=1 ttl=64 time=0.127 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=2 ttl=64 time=0.186 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=3 ttl=64 time=0.133 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=4 ttl=64 time=0.187 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=5 ttl=64 time=0.190 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=6 ttl=64 time=0.191 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=7 ttl=64 time=0.188 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=8 ttl=64 time=0.143 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=9 ttl=64 time=0.195 ms64 bytes from ms2.di.unipi.it (131.114.3.12): icmp_seq=10 ttl=64 time=0.204 ms ms2.di.unipi.it ping statistics 10 packets transmitted, 10 received, 0% packet loss, time 9050msrtt min/avg/max/mdev = 0.127/0.174/0.204/0.029 ms
18/03/04 33
PING
Il programma ping può essere usato illegalmente per generare attacci DoS (denial of service).
18/03/04 34
PING
ICMP echo request/reply
Source sends ICMP echo request message to the destination address
Echo request packet contains sequence number and timestamp
Destination replies with an ICMP echo reply message containing the data in the original echo request message
Source can calculate round trip time (RTT) of packets
If no echo reply comes back then the destination is unreachable
18/03/04 35
PING
A BR2 R3R1
Echo request
Echo reply
Tim
e
18/03/04 36
Ping e P2P
Il tempo di ping è rilevante per i servizi P2P perché fa capire quanto lontano è il file che cerchiamo di scaricare
18/03/04 37
Tracciare il percorso dei datagram
Traceroute traccia il percorso di un pacchetto IP dal proprio computer a qualsiasi host Internet, mostrando i salti intermedi che compie il pacchetto lungo le reti che attraversa
In Windows 95 si invoca tracert selezionando Start>Run..., e poi digitando tracert seguito dal nome di dominio dello host che si vuole interrogare
18/03/04 38
Traceroute www.kernel.orgtraceroute to zeuspub.kernel.org (204.152.189.116), 30 hops max, 38 byte packets 1 digw (131.114.3.2) 0.557 ms 1.302 ms 1.883 ms 2 131.114.191.126 (131.114.191.126) 1.597 ms 1.541 ms 0.749 ms 3 fibser.unipi.it (131.114.191.49) 1.425 ms 1.918 ms 1.108 ms 4 rtgunipi.pi.garr.net (193.206.136.13) 0.845 ms 1.337 ms 1.400 ms 5 mi2pig.garr.net (193.206.134.73) 4.884 ms 4.641 ms 4.809 ms 6 213.248.71.161 (213.248.71.161) 4.655 ms 4.565 ms 4.664 ms 7 ffmbb1pos030.telia.net (213.248.69.109) 13.555 ms 13.474 ms 13.559 ms 8 213.248.65.54 (213.248.65.54) 13.864 ms 15.661 ms 14.292 ms 9 decix.fra.above.net (80.81.192.226) 13.659 ms 13.547 ms 13.713 ms10 so010.cr1.fra1.de.mfnx.net (216.200.116.213) 13.965 ms 14.114 ms 13.923 ms11 pos10.mpr1.fra2.de.above.net (216.200.115.254) 16.192 ms 14.318 ms 13.824 ms12 so420.cr1.lhr3.uk.above.net (64.125.29.77) 74.202 ms 30.295 ms 29.930 ms13 so700.cr1.dca2.us.above.net (64.125.31.186) 145.187 ms 138.760 ms 139.579 ms14 64.125.29.122.available.above.net (64.125.29.122) 139.041 ms 138.911 ms 141.325 ms15 64.125.28.70.available.above.net (64.125.28.70) 166.913 ms 167.214 ms 167.625 ms16 so000.cr1.dfw2.us.above.net (64.125.28.209) 167.185 ms 211.275 ms 302.412 ms17 so310.mpr4.sjc2.us.above.net (64.125.29.49) 213.982 ms 211.423 ms 211.320 ms18 64.125.29.125.available.above.net (64.125.29.125) 211.778 ms 212.041 ms 211.844 ms19 64.125.29.181.available.above.net (64.125.29.181) 212.486 ms 213.150 ms 211.860 ms20 iscaboveoc3.pao.isc.org (216.200.0.10) 186.213 ms 186.312 ms 187.055 ms21 r8pao1.r3.sfo2.isc.org (192.5.4.233) 186.919 ms 186.210 ms 186.455 ms22 zeuspub.kernel.org (204.152.189.116) 186.924 ms 186.878 ms 187.195 ms
18/03/04 39
Traceroute
Traceroute records the route that packets take
A clever use of the TTL field
When a router receives a packet, it decrements TTL
If TTL=0, it sends an ICMP time exceeded message back to the sender
To determine the route, progressively increase TTL Every time an ICMP time exceeded message is received, record the sender's (router's) address
Repeat until the destination host is reached or an error message occurs
18/03/04 40
TRACEROUTE
A BR2 R3R1
TTL=1
TTL=2
Tim
e
TTL=3
TTL=4