14
Il livello delle applicazioni Il livello delle applicazioni si occupa di implementare le applicazioni di rete che vengono utilizzate dall'utente finale. Infatti lo scopo principale di una rete è la condivisione di dati mediante applicazioni. I vari protocolli usati a questo livello sono: SNMP : Simple Network Management Protocol SMTP : Simple Mail Transfer Protocol POP3 : Post Office Protocol HTTP : HyperText Transfer Protocol DNS : Domain Name System Le varie applicazioni: Posta elettronica Web Condivisione di file P2P Giochi multiutente via rete Messaggistica istantanea Telefonia via internet Videoconferenza in tempo reale Streaming di video-clip memorizzati Autenticazione in un calcolatore remoto In generale un' applicazione di rete è costituita da un insieme di più programmi che vengono eseguiti su due o più computer contemporaneamente. Questi operano interagendo tra loro utilizzando delle risorse comuni, accedendo cioè concorrentemente agli archivi (database), mediante la rete di comunicazione che li connette.

Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Il livello delle applicazioniIl livello delle applicazioni si occupa di implementare le applicazioni di rete che vengono utilizzate dall'utente finale.Infatti lo scopo principale di una rete è la condivisione di dati mediante applicazioni.I vari protocolli usati a questo livello sono:

• SNMP : Simple Network Management Protocol• SMTP : Simple Mail Transfer Protocol• POP3 : Post Office Protocol• HTTP : HyperText Transfer Protocol• DNS : Domain Name System

Le varie applicazioni:• Posta elettronica• Web• Condivisione di file P2P• Giochi multiutente via rete• Messaggistica istantanea• Telefonia via internet• Videoconferenza in tempo reale• Streaming di video-clip memorizzati• Autenticazione in un calcolatore remoto

In generale un' applicazione di rete è costituita da un insieme di più programmi che vengono eseguiti su due o più computer contemporaneamente. Questi operano interagendo tra loro utilizzando delle risorse comuni, accedendo cioè concorrentemente agli archivi (database), mediante la rete di comunicazione che li connette.

Page 2: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Le API (Application Programming Interface) rappresentano un insieme di procedure che mettono in relazione l'utente con lo strato di trasporto. Esse costituiscono un'interfaccia quindi per i layer inferiori.Come abbiamo visto precedentemente le applicazioni riconoscono i loro messaggi in modo univoco tramite il meccanismo delle porte e dei socket.

Possiamo suddividere un'applicazione di rete in due parti, se consideriamo ad esempio un Browser:• Interfaccia utente (user agent o interfaccia utente): permette di visualizzare i documenti

ricevuti/inviati e permette la navigazione specificando il loro URL (Uniform Resource Locator).

• Motore del Browser (Protocolli che permettono all'applicazione di integrarsi alla rete): è la parte che si occupa di inviare le richieste agli altri host o di riceverle.

WWW (World Wide Web) come client-serverE' un tipo di architettura client-server. Esiste sempre un server attivo al quale uno o più client si connettono. Il server avrà un IP statico, i client solitamente hanno un IP dinamico. Nessun client potrà comunicare direttamente con altri client, ma solo con il server; più client invece potranno comunicare contemporaneamente con lo stesso server.

Page 3: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

A volte i server, visto la moltitudine di client che si collegano contemporaneamente, potrebbero non essere in grado di soddisfare tutte le richieste e quindi entrare in uno stato chiamato congestione. In caso di congestione della rete, a causa dei buffer limitati degli apparati di rete, alcuni segmenti potrebbero venire persi.La perdita dei segmenti e il relativo scadere del retransmission time-out (RTO) è considerato un sintomo di congestione.La sorgente dovrebbe essere in grado di reagire diminuendo il tasso di immissione dei nuovi segmenti: questa reazione viene detta “controllo della congestione”.

Applicazioni di tipo P2PIn questo tipo di architettura abbiamo coppie di host (chiamati Peer) che dialogano tra loro. Un esempio è "eMule".

• P2P decentralizzato : tutti i client sono connessi tra di loro (topologia di rete a maglia completa), tutti fungono da client e da server. Una rete così costruita è capace di adattarsi ad eventuali cambiamenti dei nodi; essa garantirà inoltre prestazioni accettabili.

• P2P centralizzato : in questo caso esistono dei server centrali alla struttura della rete che conservano le informazioni di mappatura e soddisfano le richieste di ricerca. I peer sono responsabili di conservare i dati.

Page 4: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

• P2P ibrido : esistono alcuni peer (ultra-peer) determinati dinamicamente, cha avranno la funzione di indicizzazione. Gli altri nodi sono chiamati leaf peer.

Il livello di applicazione inoltre sceglie quale tipo di protocollo di trasporto dovrà usare (TCP o UDP).Alcune applicazioni avranno di bisogno una banda minima garantita. Altre invece si adattano in modo elastico alla banda disponibile. Infatti visto che la rete internet è molto eterogenea, i protocolli di trasporto non sono sempre in grado di garantire una qualità fissa della banda.

Page 5: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Altre applicazioni (Voip o giochi online) invece richiedono piccoli ritardi. Anche qui lo strato trasporto non garantisce i tempi di risposta (nè TCP nè UDP). La soluzione sarà quella di usare, a seconda del bisogno, TCP o UDP alternativamente (Real Time Protocol).

TelnetTelnet: Telecommunications networkÈ stata una delle prime applicazioni che permetteva ad un utente di mettersi in comunicazione con altri computer presenti sulla rete da remoto. Al protocollo è stata assegnata la porta 23.

• Telent usa il Tcp • Halfduplex

Nelle prime versioni Telnet non era presente nè cifratura della password nè autenticazione dell'username.

• Il suo utilizzo è fortemente sconsigliato su reti pubbliche per la sua mancanza di sicurezza.• Occorre un programma client che offra un'interfaccia grafica

Oss: per abilitare Telnet basterà andare su Pannello di Controllo-> Programmi->Programmi e funzionalità e poi spuntare la voce corrispondente.Per collegarsi basterà digitare il comando Telnet nomehostUn Terminale Virtuale di Rete (NVT) fornisce le specifiche per il terminale standard di rete, cioè un modello di base di un terminale, indipendente dalle macchine connesse. Quindi NVT creerà due terminali virtuali agli estremi della connessione.

Page 6: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

NTV di Telnet è quindi composto da:• Caratteri ASCII 7 bits + codice ASCII esteso

• Il formato e' semplice. Vengono usati caratteri a 8 bit. I caratteri ASCII stampabili mantengono il loro significato intrinseco. I 33 caratteri non stampabili della parte bassa di ASCII assumono valori di comandi Telnet. I caratteri ASCII alti vengono riservati per sequenze di comandi.

• Tre caratteri di controllo• Uno schermo• Una tastiera

Alcuni software offrono un'interfaccia grafica più gradevole all'utente, sia nella forma, per esempio grafica, sia nella dimensione dello schermo per migliorare la visualizzazione.Queste opzioni sono negoziate in fase di connessione.

• Un host indica ad un altro host che intende usare una opzione• Quest'ultimo risponde accettando o proponendo a sua volta una nuova opzione• Se non c'è accordo utilizzano il modello standard

Le primitive saranno:• DO : vuole usare• DON'T : non vuole usare• WILL : vuole che l'altro host usi• WON'T : non vuole che l'altro host usi

OSS: Esistono 255 codici di opzioni e la RFC 855 spiega come documentare ogni nuova opzione.Una Request for Comments, più nota con la sigla RFC, è un documento che riporta informazioni o specifiche riguardanti nuove ricerche, innovazioni e metodologie dell'ambito informatico o, più nello specifico, di Internet. Attraverso l'Internet Society gli ingegneri o gli esperti informatici possono pubblicare dei memorandum, sotto forma di RFC, per esporre nuove idee o semplicemente delle informazioni che una volta vagliati dall'IETF possono diventare degli standard Internet.IETF(Internet Engineering Task Force) è un organismo internazionale, libero, composto da tecnici, specialisti e ricercatori interessati all'evoluzione tecnica e tecnologica di Internet. Ci si iscrive a titolo personale e non come rappresentanti di qualche istituzione pubblica o privata. Si occupa di sviluppare e promuovere standard Internet, in stretta cooperazione con il World Wide Web Consortium (W3C), in particolare TCP/IP e la suite di protocolli Internet.

Il modello che c'è alla base è fondato sul concetto di simmetria. Questo però potrebbe creare una negoziazione infinita, visto che non esiste un host che può prevalere sull'altro.Per prevenire queste situazioni:

• Ogni interlocutore può chiedere un solo cambio di opzioni• Non è possibile chiedere lo stato di un'opzione• Se viene inoltrata una richiesta per un'opzione già attiva questa viene già ignorata• Bisogna inviare un ACK in risposta ad una richiesta di cambio di stato• Se viene richiesto il cambio di stato di una opzione che modifica il trattamento dei dati,

questo deve essere inserito nel flusso dei dati nel punto in cui gli stessi devono essere interpretati in maniera diversa

Quando è stato sviluppato all'inizio degli anni '80, Telnet veniva usato all'interno di centri privati o governativi o dipartimenti universitari. Quindi la sicurezza non era (...) importante. Con la crescita

Page 7: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

della rete e la possibilità di collegarsi in remoto Telnet diventò inutilizzabile, perchè:• Telnet non cripta i dati inviati• Manca uno schema di autenticazione

(Potremmo tramite Wireshark impossessarci di una password.....) Ormai Telnet è stato abbandonato a favore dell'SSH(Secure SHell). Quest'ultimo offre tutte le funzionalità di Telnet, in più offre criptazione delle password e autenticazione a chiave pubblica.I browser non integrano, per motivi di sicurezza, Telnet nella loro interfaccia. Si può fare richiamando un programma aggiuntivo (PuTTY, client Telnet con crittografia che utilizza SSH).Attualmente Telnet è usato nelle fasi di debug di servizi di networking come i server SMTP e HTTP (li vedremo più avanti...), in quanto rappresenta un modo valido e veloce per mandare comandi al server ed esaminare le risposte.È usato anche nei giochi MUD (Multiple User Dimension/Dungeon/Dialogue)Anche nella posta elettronica Telnet trova varie utilizzazioni, per leggere le proprie mail, cancellarle etc. Visto che normalmente l'accesso alla propria casella di posta elettronica viene fatto in modo non sicuro oppure a volte da un computer pubblico, i problemi di sicurezza di Telnet non sono di ostacolo. A volte con le webmail si hanno problemi di accesso alla propria mailbox che con Telnet si possono risolvere, per esempio nel caso di superamento della memoria concessa alcune caselle si bloccano e Telnet permette di risolvere il problema. Altro particolare interessante di Telnet e la posta elettronica è la possibilità di invio di email anonime oppure email false (fake email). Se non vengono utilizzati proxy la magistratura tramite la polizia postale è in grado di individuare il mittente tramite il suo indirizzo IP. Telnet può essere utilizzato da un comune browser web, in presenza di una connessione (generalmente HTTP) già attiva ad un Internet Service Provider: Telnet è un protocollo di livello più alto di quelli del livello di trasporto dei dati, e richiede che una sessione sia già iniziata.

Laboratorio 1 Packet TracerPrendiamo un router ed un computer.Prendiamo un console cable e lo colleghiamo alla console port del router e alla porta RS 232 del PC.Clicchiamo sul PC e scegliamo il Terminal. Ricordiamo che su un vero pc possiamo usare il programma putty.Ecco che abbiamo informazioni sul router.Alla domanda Continue with configuratiion dialog? Scegliamo no.Ci sono 3 modalità di accesso al router.La predefinita è “user mode”Ovvio che la stessa cosa possiamo fare cliccando sul router e portandoci nella CLI.Inserendo il ? compaiono le istruzioni che possiamo impartire in modalità user mode.Se vogliamo vedere come funziona il comando show, inseriamo show ?

Page 8: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Se per esempio inserisco show version … ecco il risultato

Con il comando enable entro in privilege mode.

Page 9: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Il # indica che siamo in privilege mode.In questa modalità abbiamo accesso a + comandi.Per accedere alla configuration mode digitiamo configure terminal e premiamo invio.

Qui possiamo impartire istruzioni come l’impostazione della password, il cambio del nome, le impostazioni delle varie interfacce e così via.Se ad esempio vogliamo cambiare il nome del router digitiamo hostname ? e vediamo come fare.

Page 10: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Ci viene detto di inserire hostname e poi il nome che vogliamo dare. Ad esempio vogliamo dare il nome “Primo_piano”

Per salvare la configurazione dobbiamo portarci in privilege mode premendo ctrl + c e quindi effettuiamo il salvataggio.Diamo i comandi copy running-config startup-config e premiamo invio

Page 11: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

Se diamo invio salviamo la configurazione nella NVR (non volatile ram) del router.Verifichiamo ora la configurazione del router con il comando show running-config

Poi riavviamo col comando reloadPremendo enter torno in user mode.Ora vediamo come impostare la password.Ci portiamo in privilege mode (en) e poi in privilege configure mode (conf t).Ora siamo in global configuration mode.Digitiamo line console 0 per dire che andiamo a configurare la porta console.Digitiamo il comando password seguito dalla password che vogliamo inserireDigitiamo poi login per abilitare la password.Digitiamo poi exit per uscire dalla configurazione della password su console 0Poi ancora exit per entrare in user mode e salvare la configurazione con copy running-config startup-configDati i comandi per salvare la configurazione diamo il comando reload.Ecco che ora ci richiede la password.Digito la pwd ed eccomi …Andiamo ora a vedere come inserire la password sulla comunicazione via telnet e ssh.Come prima ci portiamo in configure mode o global configure mode con enable e poi configure

Page 12: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

terminal.Digitiamo poi line vty 0 4 (virtual terminal)(5 in totale).Inseriamo quindi password + la parola, poi il comando login e riportandoci in user mode salviamo il file con copy …Portandoci poi in privilege mode possiamo verificare con il comando show running-config l’impostazione delle password.Vediamo le password impostate qui sotto

Ora vediamo come configurare un’interfaccia via telnet. Prendiamo quindi un altro pc e lo colleghiamo al router con un cavo crossover.

Ora impostiamo un indirizzo ip sul nuovo computer 192.168.1.10/24 e poi anche il gateway 192.168.1.1/24(che sarà l’interfaccia del router).Ci portiamo ora sulla cli del router e configuriamo l’interfaccia dandogli un indirizzo ip. Ci portiamo in global configuration mode con enable e configure terminal Poi digitiamo interface fastEthernet 0/0 (o anche solo int fastEthernet 0/0 )Poi il comando ip address 192.168.1.1 255.255.255.0 (o anche solo ip add 192.168.1.1 255.255.255.0)Poi il comando no shutdown per attivare l’interfaccia Premiamo poi ctrl +c per portarci in user mode e salvare la configurazione con il solito copy run

Page 13: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

start (abbreviazione del comando copy running-config startup-config). Ecco che ora il segnale su packet tracer è verde e segnala il collegamento corretto router pc.

Ora possiamo accedere con Telnet tramite pc (dal PC2) (praticamente con virtual terminal). Quindi clicchiamo sul pc e ci portiamo sul prompt. Digitiamo poi il comando “telnet” seguito dall’indirizzo ip del gateway predefinito ed ecco che ci chiede la password.

Inseriamo la password “pluto” ed ecco che possiamo accedere alla cli del router tramite collegamento Ethernet via telnet.

In questa modalità però non posso entrare in enable perchè non ho impostato ancora una password per tale modalità. Quindi torno sulla CLI del router e imposto la password dalla modalità configure scrivendo enable password pippo.A questo punto entro in telnet e mi chiederà le due password appena impostate.Possiamo ancora rendere la nostra password criptata. Ci portiamo in global configure mode con il comando configure terminal e rimuoviamo la password impostata precedentemente con il comando no enable password. Per settare la password criptata usiamo il comando enable secret + la password desiderata.Ci riportiamo il privilege mode e salviamo la configurazione con copy run start.Ora ci riportiamo in user mode e rifacciamo l’accesso a privilege mode per vedere se ci chiede la

Page 14: Il livello delle applicazioni - Stek Andalorostekandaloro.altervista.org/blog/wp-content/... · Il livello delle applicazioni si occupa di implementare le applicazioni di rete che

password, e poi con il comando show run vediamo che la password è ora criptata.

Ora vediamo come criptare le password di accesso tramite console e tramite remoto (telnet, ssh). Supponiamo di aver già impostato le password e di volerle criptare. Digitiamo quindi il comando service password-encryption e diamo Invio. Ci riportiamo poi in privilege mode per salvare la configurazione (copy run start) e poi visualizziamo il tutto con show run.