Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Reti, Internet e sicurezza, Appunti di Reti informatiche

Appunti e riferimenti al libro della Pearson "Reti di calcolatore e Internet"

Tipologia: Appunti

2020/2021
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 06/09/2022

chiara-c-1022
chiara-c-1022 🇮🇹

5

(2)

2 documenti

1 / 50

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
CAP.1
CHE COS'E' INTERNET? Due modi per definirlo: 1) tramite descrizione delle componenti hardware e software
di Internet, 2)l'altro consiste nel descrivere Internet in termini di infrastrutture di rete che fornisce servizi ed
applicazioni.
1) internet è una rete di calcolatori che interconnette miliardi di dispositivi di calcolo in tutto il mondo.
Questi dispositivi sono chiamati host o sistemi periferici. Questi sono connessi tra loro tramite una rete di
collegamenti (communication link) e commutatori di pacchetti (packet switch). Collegamenti diversi
possono trasmettere dati a velocità differenti, e tale velocità di trasmissione (trasmission rate) viene
misurata in bit al secondo. Quando un sistema periferico vuole inviare dati ad un altro sistema, suddivide i
dati in sottoparti e aggiunge un'intestazione a ciascuna di esse: l'insieme delle informazioni viene chiamato
pacchetto. I pacchetti sono inviati attraverso la rete alla destinazione, dove vengono riassemblati per
ottenere i dati originali. Un commutatore di pacchetti prende un pacchetto che arriva da uno dei
collegamenti in ingresso e lo ritrasmette su uno di quelli in uscita. I principali commutatori sono i router e i
commutatori a livello di collegamento (link-layer switch). I commutatori a livello di collegamento sono
solitamente usati nelle rete di accesso , mentre i router nel nucleo della rete. La sequenza di collegamenti e
commutatori di pacchetto attraversata dal singolo pacchetto è nota come percorso o cammino (routh o
path).
I sistemi periferici accedono ad Internet tramite Internet service provider (ISP) : un provider è un'insiemi di
commutatori di pacchetto e di collegamento. Gli ISP forniscono svariati tipi di accesso alla rete: residenziale
a larga banda (DSL), rete locale ad alta velocità, senza fili (wireless) e in mobilità. Ciascuna rete di un ISP fa
uso del protocollo IP e si conforma a determinate convenzioni riguardo a nomi e indirizzi. Sistemi periferici,
commutatori di pacchetto e altre parti di internet fanno uso di protocolli che controllano l'invio e la
ricezione di informazioni all'interno della rete. Due dei principali protocolli sono il Trasmission Control
Protocol (TCP) e l'Internet Protocol (IP). Quest'ultimo specifica il formato dei pacchetto scambiati tra
router e sistemi periferici. I principali protocolli sono nome con il nome di TCP/IP. Un'accordo sulle funzioni
svolte da ogni singolo protocollo risulta fondamentale, qui entrano in gioco gli standard. Gli standard di
Internet vengono sviluppati dall' Internet Engineering Task Force (IETF). Le pubblicazioni sugli standard di
Internet vengono dette Request For Comment (RFC).
2) internet come un'infrastruttura che fornisci servizi alle applicazioni, che includono: posta elettronica,
navigazione sul web, messaggistica istantanea, sistemi di navigazione, streaming, on-line social network,
sistemi di videoconferenza. Queste applicazioni sono dette applicazioni distribuite in quanto coinvolgono
più sistemi periferici che si scambiano reciprocamente dati. Le applicazioni di Internet vengono eseguite sui
sistemi periferici e non sui commutatori di pacchetto del nucleo della rete. Sebbene i commutatori di
pacchetto consentono lo scambio di dati tra sistemi periferici, non hanno a che fare con le applicazioni che
sono sorgenti e destinazione dei dati. Questo porta a descrivere Internet come una piattaforma per le
applicazioni. I sistemi periferici collegati a Internet forniscono una Interfaccia Socket (socket interface) che
specifica come un programma eseguito su un sistema periferico possa chiedere ad Internet di recapitare
dati a un programma eseguito su un altro sistema periferico. L'interfaccia socket è un insieme di regole che
il programma mittente deve seguire in modo che i dati siano recapitati al programma destinatario.
Ci sono due tipi di servizi alle applicazioni distribuite, entrambi i servizi hanno come obbiettivo il
trasferimento di dati da un host all'altro.:
servizio affidabile (connection-oriented): il messaggio viene spezzato in "pacchetti a livello
trasporto" detti TPDU (transport protocol data unit). Vantaggi: il ricevente ottiene i pacchetti in
sequenza ed è possibile filtrare i pacchetti, per scopi ti sicurezza, anche da parte di un router
intermedio. Svantaggi: occorre un tempo discreto per lo stabilimento della connessione, se
sopravvengono congestioni nel circuito di rete la velocità di scambio dei pacchetti diminuisce,
anche se in reti vi fossero percorsi alternativi più veloci. Questo servizio utilizza il protocollo TCP
service [RFC 793] (trasmission control protocol) dove R sta per "reliable"/affidabilità, F sta per
"flow control"/controllo di flusso e C sta per "congestion control"/controllo della congestione.
Applicazioni che usano il TCP: Web (HTTP), file transfer (FTP), email (SMTP).
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
Discount

In offerta

Anteprima parziale del testo

Scarica Reti, Internet e sicurezza e più Appunti in PDF di Reti informatiche solo su Docsity!

CAP.

CHE COS'E' INTERNET? Due modi per definirlo: 1) tramite descrizione delle componenti hardware e software di Internet, (^) 2)l'altro consiste nel descrivere Internet in termini di infrastrutture di rete che fornisce servizi ed applicazioni.

  1. internet è una rete di calcolatori che interconnette miliardi di dispositivi di calcolo in tutto il mondo. Questi dispositivi sono chiamati host o sistemi periferici. Questi sono connessi tra loro tramite una rete di collegamenti (communication link) e commutatori di pacchetti (packet switch). Collegamenti diversi possono trasmettere dati a velocità differenti, e tale velocità di trasmissione (trasmission rate) viene misurata in bit al secondo. Quando un sistema periferico vuole inviare dati ad un altro sistema, suddivide i dati in sottoparti e aggiunge un'intestazione a ciascuna di esse: l'insieme delle informazioni viene chiamato pacchetto. I pacchetti sono inviati attraverso la rete alla destinazione, dove vengono riassemblati per ottenere i dati originali. Un commutatore di pacchetti prende un pacchetto che arriva da uno dei collegamenti in ingresso e lo ritrasmette su uno di quelli in uscita. I principali commutatori sono i router e i commutatori a livello di collegamento (link-layer switch). I commutatori a livello di collegamento sono solitamente usati nelle rete di accesso , mentre i router nel nucleo della rete. La sequenza di collegamenti e commutatori di pacchetto attraversata dal singolo pacchetto è nota come percorso o cammino (routh o path). I sistemi periferici accedono ad Internet tramite Internet service provider (ISP) : un provider è un'insiemi di commutatori di pacchetto e di collegamento. Gli ISP forniscono svariati tipi di accesso alla rete: residenziale a larga banda (DSL), rete locale ad alta velocità, senza fili (wireless) e in mobilità. Ciascuna rete di un ISP fa uso del protocollo IP e si conforma a determinate convenzioni riguardo a nomi e indirizzi. Sistemi periferici, commutatori di pacchetto e altre parti di internet fanno uso di protocolli che controllano l'invio e la ricezione di informazioni all'interno della rete. Due dei principali protocolli sono il Trasmission Control Protocol (TCP) e l' Internet Protocol (IP). Quest'ultimo specifica il formato dei pacchetto scambiati tra router e sistemi periferici. I principali protocolli sono nome con il nome di TCP/IP. Un'accordo sulle funzioni svolte da ogni singolo protocollo risulta fondamentale, qui entrano in gioco gli standard. Gli standard di Internet vengono sviluppati dall' Internet Engineering Task Force (IETF). Le pubblicazioni sugli standard di Internet vengono dette Request For Comment (RFC).
  2. internet come un'infrastruttura che fornisci servizi alle applicazioni, che includono: posta elettronica, navigazione sul web, messaggistica istantanea, sistemi di navigazione, streaming, on-line social network, sistemi di videoconferenza. Queste applicazioni sono dette applicazioni distribuite in quanto coinvolgono più sistemi periferici che si scambiano reciprocamente dati. Le applicazioni di Internet vengono eseguite sui sistemi periferici e non sui commutatori di pacchetto del nucleo della rete. Sebbene i commutatori di pacchetto consentono lo scambio di dati tra sistemi periferici, non hanno a che fare con le applicazioni che sono sorgenti e destinazione dei dati. Questo porta a descrivere Internet come una piattaforma per le applicazioni. I sistemi periferici collegati a Internet forniscono una Interfaccia Socket (socket interface) che specifica come un programma eseguito su un sistema periferico possa chiedere ad Internet di recapitare dati a un programma eseguito su un altro sistema periferico. L'interfaccia socket è un insieme di regole che il programma mittente deve seguire in modo che i dati siano recapitati al programma destinatario. Ci sono due tipi di servizi alle applicazioni distribuite, entrambi i servizi hanno come obbiettivo il trasferimento di dati da un host all'altro.:  servizio affidabile (connection-oriented): il messaggio viene spezzato in "pacchetti a livello trasporto" detti TPDU (transport protocol data unit ). Vantaggi: il ricevente ottiene i pacchetti in sequenza ed è possibile filtrare i pacchetti, per scopi ti sicurezza, anche da parte di un router intermedio. Svantaggi: occorre un tempo discreto per lo stabilimento della connessione, se sopravvengono congestioni nel circuito di rete la velocità di scambio dei pacchetti diminuisce, anche se in reti vi fossero percorsi alternativi più veloci. Questo servizio utilizza il protocollo TCP service [RFC 793] (trasmission control protocol) dove R sta per "reliable" /affidabilità, F sta per "flow control"/ controllo di flusso e C sta per "congestion control"/ controllo della congestione. Applicazioni che usano il TCP: Web (HTTP), file transfer (FTP), email (SMTP).

servizio non affidabile (connectionless): il mittente considera ogni TPDU come pacchetto indipendente, detto datagramma e lo affida alla rete senza gestire alcuna connessione; ciascun datagramma viaggia in modo indipendente dagli altri. Vantaggi: in caso di congestione della rete i pacchetti vengono reindirizzati su un percorso alternativo , se la destinazione è temporaneamente irraggiungibile, al suo ripristino i pacchetti continuano a transitare dal punto in cui erano rimasti. Svantaggi: il ricevente ottiene i pacchetti fuori sequenza, e dovrà gestire problemi di duplicati. Questo servizio utilizza un protocollo UDP [RFC 768] (user datagram protocol) meno affidabile, non c'è controllo di flusso ne controllo di congestione. Applicazioni che usano UDP: Streaming, teleconferenze, DNS (domain name system). CHE COS'E' UN PROTOCOLLO : insieme di regole formalmente descritte, definite al fine di favorire la comunicazione tra uno o più entità. Un protocollo di rete è simile a un "protocollo umano"-> le entità che si scambiano messaggi e che intraprendono azioni sono componenti hardware e software. Qualsiasi attività in Internet che coinvolge due o più entità in comunicazione viene governata da un protocollo. Un protocollo definisce il formato e l'ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di ricezione di messaggio o di un evento. Ci sono specifici messaggi che inviamo, e specifiche azioni che intraprendiamo in risposta al messaggio di ritorno o ad altri eventi (ex: nessuna risposta entro un certo tempo, un messaggio non richiesto). Se le persone operano secondo protocolli diversi i protocolli non interagiscono e non si può produrre lavoro utile -> per poter raggiungere gli obbiettivi le due o più entità presenti devono adottare lo stesso protocollo. Esempio di protocollo: il protocollo nei router determina il percorso del pacchetto dalla sorgente al destinatario. STRUTTURA DELLA RETE La struttura della rete si divide in: network core (routers e network di network) , network edge (applicazioni e host) e physical media (reti di collegamento e cablaggio). I calcolatori e gli altri dispositivi connessi ad Internet sono detti sistemi periferici o end system , in quanto si trovano ai confini della rete e questi includono calcolatori desktop, server e dispositivi mobile. I sistemi periferici vengono anche detti host in quanto ospitano programmi applicativi quali browser e web server e così via. Talvolta gli host vengono suddivisi in due categorie : client, host che richiedono dei servizi (ex Pc, smartphone ecc.), e server, che si occupano di erogare dei servizi. Due modelli di erogazione di servizi: client/server model e peer to peer model dove l'host può essere sia client che server. NETWORK EDGE Reti di accesso (a ccess network ): la rete che connette fisicamente un sistema al suo edge router (router di bordo), che è il primo router sul percorso dal sistema di origine a un qualsiasi altro sistema di destinazione collocato al di fuori della stessa rete di accesso. Accesso residenziale : due accessi residenziali a larga banda più diffusi sono il digital subscriber line (DSL) e quello via cavo.  L'accesso di tipo DSL viene fornito generalmente dalla stessa compagnia telefonica che fornisce anche il servizio di telefonia fissa -> la compagnia assume il ruolo di ISP. Il modem DSL dell'utente utilizza la linea telefonica esistente (doppino telefonico intrecciato in rame) per scambiare dati con un Digital Subscriber line access multiplex (DSLAM) che si trova nella centrale locale della compagnia telefonica. Le linee telefoniche residenziali trasportano dati e segnali telefonici codificandoli in tre bande di frequenza non sovrapposte: un canale di downstream, un canale di upstream, un canale telefonico ordinario. Il DSLAM separa i segnali dei dati da quelli di telefonia e invia i dati su Internet. L'accesso viene detto asimmetrico perché le velocità di downstream e upstream sono diverse.  L'accesso a Internet via cavo usa le infrastrutture esistenti della televisione via cavo. Un'abitazione richiede un accesso a Internet via cavo alla stessa azienda che le fornisce il servizio di televisione via cavo. Questo accesso richiede un modem chiamato cable modem , che come il modem DSL, è un dispositivo esterno che si connette al Pc tramite una porta Ethernet. Alla stazione di testa (cable head end) il sistema di terminazione del cable modem (CMTS, cable modem termination system ) svolge una funzione simile alla DSLAM: traduce il segnale analogico in entrata in segnale digitale in uscita. I cable modem dividono la rete HFC (hybrid fibre-coaxial , combinazione di fibre ottiche e cavi coassiali ) in due canali, upstream e downstream e anche qui l'accesso è asimmetrico.

Una maglia di commutatori di pacchetti e collegamenti che interconnettono i sistemi periferici di Internet. Commutazione di pacchetti : le applicazioni distribuite scambiano messaggi che possono contenere qualsiasi dato. La sorgente suddivide i messaggi lunghi in parti più piccole note come pacchetti. Questi pacchetti viaggiano attraverso collegamenti e commutatori di pacchetti (che si dividono in router e commutatori a livello di collegamento ). Se un sistema periferico o un commutatore inviano un pacchetto di L bit su un canale con velocità di R bps, il tempo di trasmissione è pari a L/R. I commutatori di pacchetti utilizzano, per la maggiore, la trasmissione store and forward -> il commutatore deve ricevere l'intero pacchetto prima di poterne cominciare a trasmettere sul collegamento in uscita il primo bit. Il router, il cui compito è quello di indirizzare un pacchetto in entrata su un collegamento in uscita, deve immagazzinare nel buffer (dispositivo di memoria per conservazione provvisoria di dati) i bit del pacchetto. Solo dopo aver ricevuto tutti i bit del pacchetto il router può iniziare a inoltrare il pacchetto sul collegamento in uscita.si può verificare un ritardo di trasmissione da un capo all'altro detto ritardo end-to-end : d=N(L/R), su un percorso di N collegamenti. Ma ogni commutatore di pacchetto connette più collegamenti e per ciascuno di questi, il commutatore mantiene un buffer di output (o cosa di output ) per conservare i pacchetti che sta per inviare. Un pacchetto d'arrivo che debba essere inoltrato tramite un collegamento già occupato, deve attendere nella coda di output. Oltre ai ritardi store and forward, i pacchetti subiscono ritardi di accodamento nei buffer di output (ritardi variabili e che dipendono dal livello di traffico nella rete). Dato che la dimensione del buffer è finita, un pacchetto in entrata può trovare il buffer completamente riempito: si verifica una perdita di pacchetto (packet loss) cioè viene eliminato il pacchetto in entrata oppure uno di quelli che si trova in coda. Ma come fa il router a determinare su quale collegamento il pacchetto dovrebbe essere inoltrato? In Internet ogni sistema periferico presenta un indirizzo IP. Ogni pacchetto contiene nella propria intestazione l'indirizzo della sua destinazione che presenta una struttura gerarchica (ex: posta città (provincia), cap, indirizzo e numero civico). Quando un pacchetto arriva a un router, questo esamina una parte dell'indirizzo di destinazione e lo inoltra a un router adiacente. Ogni router ha una tabella di inoltro (forwarding table) che mette in relazione gli indirizzi di destinazione con i collegamenti in uscita -> un router esamina l'indirizzo e consulta la propria tabella di inoltro per determinare il collegamento uscente appropriato. Come vengono impostate le tabelle di inoltro? Tramite protocolli di instradamento (routing protocol) il quale può, per esempio, determinare il percorso più breve da ciascun router a ciascuna destinazione. Commutazione di circuito: in questo tipo di reti le risorse richieste lungo un percorso (buffer e velocità di trasmissione) sono riservate per l'intera durata della sessione di comunicazione. Prima che possa iniziare l'invio di messaggi, la rete deve stabile una connessione tra mittente e destinatario chiamata circuito. Quando il circuito viene stabilito, la rete riserva anche una velocità di trasmissione costante garantita. Quando due host desiderano comunicare , la rete stabilisce una connessione end to end (o connessione punto a punto ) a loro dedicata. Se “N” commutatori sono interconnessi tramite “n” collegamenti, i quali hanno “n” circuiti, per ogni collegamento la connessione ottiene 1/n della capacità trasmissiva totale del collegamento per la durata della connessione stessa. Un circuito all’interno di un collegamento è implementato tramite multiplexing a divisione di frequenza (FDM, frequency-division multiplexing) o multiplexing a divisione di tempo (TDM, time-division multiplexing ). Con FDM il collegamento dedica una banda di frequenza a ciascuna connessione per la durata della connessione stessa. La larghezza della banda viene detta ampiezza di banda ( bandwidth ). Con TDM il tempo viene suddiviso in frame (intervalli) di durata fissa, a loro volta ripartiti in un numero fisso di slot (porzioni) temporali. Quando la rete stabilisce una connessione tramite collegamento, le dedica uno slot di tempo in ogni frame. Tali slot sono dedicati unicamente a quella connessione. Ma la commutazione di circuito risulta dispendiosa, dato che i circuiti dedicati sono attivi durante i periodi di silenzio. Rete di reti: l’ISP non deve necessariamente essere una compagnia di telecomunicazioni o di televisioni via cavo, ma potrebbe anche essere un’università o un’azienda. La prima struttura di rete, Struttura di rete 1 , interconnette tutti gli ISP di accesso con un unico ISP globale di transito. Il nostro ISP globale di transito è una rete di router e collegamenti che non solo copre l’intero globo, ma anche almeno un router prossimo ognuno delle centinaia di migliaia di ISP di accesso. L’ gli SP di accesso è comunemente detto cliente ( costumer) E l’ISP globale di transito prende il nome di fornitore ( provider). La struttura che comprende centinaia di migliaia di ISP di accesso e più ISP globali di transito prende il nome di Struttura di rete 2. questa è una gerarchia a due livelli nella quale i provider globali di transito stanno in cima alla gerarchia e

gli ISP di accesso alla base. In ogni regione può esservi un ISP regionale alla quale tutti gli SPD accesso della regione si connettono. Ogni ISP regionale si connette all’ ISP di primo livello ( tier-1 ISP ) (ex Level 3 Communications, AT&T, Sprint e NTT). Questa gerarchia a molti livelli è detta Struttura di rete 3. Alla Struttura di rete 3 bisogna aggiungere i PoP, il multi-homing, il peering e gli IXP. I PoP (point of presence) esistono in tutti i livelli della gerarchia tranne che in quello degli ISP di accesso. Si tratta di un gruppo di router vicini tra loro nella rete del provider, tramite il quale gli ISP clienti possono connettersi al fornitore. Qualunque ISP, tranne quelli di primo livello, può scegliere la modalità multi-homing (o multi-home ) che consiste nel connettersi a due o più ISP fornitori. Una coppia di ISP vicini e di pari livello gerarchico può fare uso di peering , cioè connettere direttamente le loro reti in modo che tutto il traffico tra di esse passi attraverso una connessione diretta piuttosto che transitare da un intermediario. Utilizzando queste stesse connessioni, un'azienda terza, può creare un IXP (Internet exchange point) , un punto di incontro dove più ISP possono fare peering tra di loro. Questa struttura fornita di ISP di accesso, ISP regionali, ISP di primo livello; PoP, multi-homing, peering e IXP è chiamata Struttura di rete 4. infine l'Internet odierna fa uso di una Struttura di rete 5 , costruita sulla Struttura di rete 4 aggiungendo le reti che si occupano di distribuire contenuti (content provider networks , ex Google). PRESTAZIONI DI UNA RETE le prestazioni di una rete dipendono da: larghezza di banda , bit rate , throughput e latenza. Ritardi, perdite e throughput: (reti a commutazione di pacchetto) le reti di calcolatori limitano necessariamente il throughput, cioè la quantità di dati al secondo che può essere trasferita tra due sistemi periferici, introducono ritardi tra questi ultimi e possono perdere pacchetti. Il tempo richiesto per elaborare l'intestazione e indirizzare il pacchetto verso il giusto collegamento in uscita fa parte del ritardo di elaborazione (processing delay) che include anche latri fattori come ad esempio il tempo in più per il controllo di errori a livello di bit. Una volta in coda il pacchetto subisce il ritardo di coda (queuing delay ), può variare da pacchetto a pacchetto. La lunghezza di tale ritardo dipende dal numero di pacchetti precedentemente arrivati, accodati e in attesa di essere inoltrati sullo stesso collegamento. Il pacchetto può essere trasmesso solo dopo la trasmissioni di tutti quelli che lo hanno preceduto all'arrivo. Sia L la lunghezza in bit del pacchetto, e R bps la velocità di trasmissione tra un router e un altro. Il ritardo di trasmissione (trasmission delay) risulta L/R, ed è la quantità di tempo impiegata dal router per trasmettere in uscita il pacchetto, ed è in funzione della lunghezza del pacchetto e della velocità di trasmissione del collegamento. Una volta immesso nel collegamento, un bit deve propagarsi fino al successivo router. Il tempo impiegato è il ritardo di propagazione (propagation delay) , cioè il tempo richiesto per la propagazione di un bit da un router al successivo e dipende dalla distanza tra i due. La somma di tutti questi ritardi è detto ritardo totale di nodo (nodal delay) : dnodo=delab+dacc+dtrasm+dprop. Le code hanno capacità finita -> un pacchetto potrebbe trovare la coda piena (buffer overflow). Non essendo possibile memorizzare tale pacchetto, il router lo eliminerà e il pacchetto andrà perduto. Il ritardo end to end è il ritardo dalla sorgente alla destinazione. Supponiamo l'esistenza di N-1 router tra host sorgente e quello di destinazione, ipotizziamo che la rete non sia congestionata (ritardi di accodamento trascurabili), il ritardo di elaborazione sia delab , la velocità di trasmissione sia di R bps e la propagazione sia dprop. I ritardi totali di nodo si accumulano e danno un ritardo complessivo end to end: dend- to-end= N(delab+dtras+dprop). THROUGHPUT: si consideri il trasferimento di un file voluminoso da A a B, attraverso la rete. Il throughput istantaneo in ogni istante di tempo è la velocità (bps) alla quale B sta ricevendo il file; se il file consiste di F bit e il trasferimento richiede T secondi affinché B riceva tutti gli F bit, allora il throughput medio del trasferimento del file è di F/T bps. Ex: si hanno due sistemi periferici, un server e un client, connessi da due collegamenti e un router. Sia Rs la velocità di collegamento tra il server e il router, e Rc quella tra router e client. Per calcolare quale sia il throughput tra server e client: il server non può inviare nel suo collegamento a una velocità maggiore di Rs bps e il router non può inoltrare bit a una velocità superiore di Rc bps. Se Rs < Rc i bit immessi dal server scorreranno a una velocità di Rs bps, dando un throughput di Rs bps. Se Rc < Rs , il router non sarà in grado di inoltrare bit alla stessa velocità alla quale li riceve -> i bit lasceranno il router a una velocità Rc dando un throughput end to end di Rc. Per questa semplice rete il throughput è il min (Rs, Rc) cioè la velocità di trasmissione del collegamento che fa da collo di bottiglia (bottleneck link). Il tempo necessario a trasferire un grosso file di F bit dal server al client è pari a F/min(Rs, Rc). Il throughput è una misura dell'effettiva velocità di un link. La situazione reale di Internet è che i dati

LIVELLO DI APPLICAZIONE (strato 5): (APPLICATION LAYER) è la sede delle applicazioni di rete e dei relativi protocolli. Per quanto riguarda Internet, tale livello include molti protocolli come HTTP (consente la richiesta del e il trasferimento dei documenti web), SMTP (consente trasferimento di messaggi di posta elettronica), FTP (consente il trasferimento di file tra due sistemi remoti), DNM (domain name system , traduzione di nomi di host in indirizzi a 32 bit). È distribuito su più sistemi periferici: un'applicazione su un sistema periferico, scambia pacchetti di informazioni con l'applicazione in un altro sistema. A livello applicativo i pacchetti sono detti messaggi.LIVELLO DI TRASPORTO (strato 4): (TRANSPORT LAYER) trasferisce i messaggi del livello di applicazione tra punti periferici gestiti dalle applicazioni. Due protocolli di trasporto: TCP e UDP. Il primo fornisce alle applicazioni un servizio orientato alla connessione (l'utente deve stabile una connessione, usarla e quindi rilasciarla) che include la consegna garantita dei messaggi a livello di applicazione alla destinazione e il controllo di flusso. TCP fraziona i messaggi lunghi in segmenti più piccoli. Il protocollo UDP fornisce un servizio non orientato alla connessione che non garantisce controllo di flusso e congestione, non affidabile. I pacchetti a livello di trasporto sono detti segmenti.  LIVELLO DI RETE (strato 3): (NETWORK LAYER) si occupa di trasferire i pacchetti a livello di rete, detti diagrammi , da un host a un altro. Mette a disposizione il servizio di consegna del semento a livello di trasporto nell'host di destinazione. Troviamo il protocollo IP (protocollo rutabile), che definisce i campi dei datagrammi e come sistemi periferici e i router agiscono su tali campi. Troviamo svariati protocolli di instradamento che determinano i percorsi che i datagrammi devono seguire tra la sorgente e la destinazione.  LIVELLO DI COLLEGAMENTO (strato 2): per trasferire un pacchetto da un nodo (host o router) a quello successivo sul percorso. Esempi sono: Ethernet, Wi-Fi e il protocollo di accesso alla rete DOCSIS. In questo livello i pacchetti sono detti frame.  LIVELLO FISICO (strato 1): (PHYSICAL LAYER) trasferire i singoli bit del frame da un nodo a quello successivo. PDU - PROTOCOL DATA UNIT e INCAPSULAMENTO: quando lo strato n dell'host A invia una n-PDU allo strato n dell'host B, lo strato n dell'host A passa l'n-PDU allo strato n-1 e quindi lasci allo strato n-1 il compito di spedire n-PDU allo strato n di B. si tratta di un'unità di pacchetto scambiata tra due peer entities in un protocollo di comunicazione. La PDU è composta da due parti: header ( Protocol Control Information - PCI)e payload ( Service Data Unit - SDU). I commutatori a livello di collegamento implementano i livelli 1 e 2, mentre i router implementano i livelli dal 1 al 3 -> i router Internet sono in grado di interpretare indirizzi IP mentre i commutatori a livello di collegamento sono in grado di riconoscere gli indirizzi di livello 2, quali gli indirizzi Ethernet. Gli host implementano tutti e cinque i livelli. Importante è il concetto di incapsulamento. Preso un host mittente, un messaggio a livello di applicazione (application-layer message) M viene passato a livello di trasporto. Questo livello prende il messagagio e gli concatena informazioni aggiuntive (informazioni di intestazione Ht). Il messaggio a livello di applicazione e le informazioni di intestazione a livello di trasporto costituiscono il segmento a livello di trasporto

(transport-layer segment) che incapsula il messaggio a livello di applicazione. Il livello di trasporto passa il segmento a livello di rete, che aggiunge informazioni di intestazione proprie del suo livello (Hn) come gli indrizzi dei sistemi periferici di sorgente e destinazione, andando a creare un datagramma a livello di rete (network-layer datagram). Il datagramma viene passato a livello di collegamento, il quale aggiunge le proprie informazioni di intestazione creando un frame a livello di collegamento (link-layer frame). Il payload è il pacchetto proveniente dal livello superiore che contiene il payload iniziale con l'header del livello superiore. Fra ogni coppia di livelli adiacenti c'è un' interfaccia che definisce i servizi offerti dal livello sottostante e le operazioni primitive che possono essere richieste al livello sottostante. Servizio: insieme di operazioni primitive che un livello offre al livello superiore. L'implementazione di tali operazioni non riguarda il livello superiore. Protocollo: insieme di regole che governano il formato e il significato delle informazioni (messaggi, frame, pacchetti) che le peer entity si scambiano tra loro. Le entità usano i protocolli per implementare i propri servizi. Il livello n-1 fornisce servizi al livello n -> service provider Il livello n usa i servizi del livello n-1 -> s ervice user I servizi offerti sono accessibili attraverso Service Access Point Ogni SAP ha un indirizzo che lo identifica univocamente.

MESSAGGI : vengono scambiati tra processi (processo mittente e processo destinatario) su due sistemi terminali attraverso la rete.  ARCHITETTURA CLIENT-SERVER : per ciascuno coppia di processi comunicanti se ne etichetta uno come client e l'altro come server.  INTERFACCIA TRA IL PROCESSO E LA RETE: un processo invia messaggi nella rete e riceve messaggi dalla rete attraverso un'interfaccia software detta socket.  AGENTE UTENTE (user agent): interfaccia tra l'utente e l'applicazione di rete (ex. Browser Web), e- mail/lettore di posta, streaming). ARCHITETTURA DELLE APPLICAZIONI DI RETE

  1. Architettura Client-Server: un host sempre attivo, server (dispone di un indirizzo fisso detto indirizzo IP ) che risponde alle richieste di servizio di altri host, client (i client non comunicano direttamente tra loro). Il client inizia il dialogo col server ("speaks first") e nel caso del Web, il client è integrato nel browser; il server fornisce il servizio al client, su richiesta. Applicazioni di questa architettura: Web, trasferimento di file con FTP, Telnet, posta elettronica. In questa architettura si usano spesso data center.
  2. Architettura P2P (peer to peer): si sfrutta la comunicazione diretta tra coppie arbitrarie di host, chiamati peer collegati in modo intermittente. I peer non appartengono a un fornitore di servizi, ma sono computer fissi e portatili, controllati dagli utenti e dato che i peer comunicano senza passare attraverso un server specializzato, l'architettura è detta peer to peer. Applicazioni di questa architettura: condivisione di file (BitTorrent) sistemi per aumentare le prestazioni nel trasferimento di file (Xunlei), telefonia e videoconferenza. Un vantaggio di questa architettura è la sua scalabilità : ogni peer aggiunge anche capacità di servizio al sistema , rispondendo alla richiesta di altri peer. Sono anche economicamente convenienti.
  3. Architettura ibrida: combina elementi di entrambe le architetture, venie utilizzate per applicazioni di messaggistica istantanea.

PROCESSI COMUNICANTI

Un processo come un programma in esecuzione su un sistema; processi in esecuzione su uno stesso sistema comunicano utilizzando un approccio interprocesso (interprocess communication) , le cui regole sono gestite dal sistema operativo. I processi su due terminali differenti comunicano tramite scambio di messaggi attraverso la rete: il processo mittente crea e invia messaggi e il processo destinatario li riceve e invia il messaggio di risposta. Nell'architettura Client-Server le applicazioni di rete sono costituite da una coppia di processi che si scambiano messaggi su una rete. Per ciascuna coppia si identifica un client e un server. Ogni messaggio inviato da un processo a un altro deve passare attraverso la rete sottostante. Un processo invia messaggi nella rete attraverso un interfaccia software detta socket che si trova tra il livello di applicazione e il livello di trasporto. Si parla anche di API (application programming interface). I socket sono implementati da protocolli TCP e UDP. In Internet i processi riceventi devono essere forniti di indirizzo per ricevere i messaggi inviati da processi mittenti. Gli host vengono identificati tramite indirizzo IP : numero a 32 bit che identifica univocamente un host. Il mittente deve anche identificare il processo destinatario, cioè la socket che deve ricevere il dato : numero di porta di destinazione (port number). SERVIZI DI TRASPORTO PER LE APPLICAZIONI : Se un protocollo fornisce un servizio di consegna garantita di dati, si dice che fornisce un trasferimento dati affidabile (reliable data transfer) : quando un protocollo a livello di trasporto fornisce tale servizio, il processo mittente può passare i propri dati alla socket con certezza che quei dati arriveranno al processo destinatario senza errori. Quando un protocollo a livello di trasporto non fornisce trasferimento dati affidabile, i dati inviati potrebbero non arrivare mai al processo ricevente. Ciò potrebbe essere accettabile per le applicazioni che tollerano le perdite (loss-tollerant). Il throughput è il tasso al quale il processo mittente può inviare i bit al processo ricevente. Il livello di trasporto offre un servizio di throughput disponibile garantito: l'applicazione può richiedere un throughput

garantito di r bps e il protocollo di trasporto assicurerà che il throughput disponibile sia sempre almeno di r bps. Le applicazioni che hanno requisiti di throughput vengono dette applicazioni sensibili alla banda (bandwidth-sensible) , le quali hanno requisiti specifici di throughput. Le applicazioni elastiche possono far uso di tanto o di poco throughput a seconda di quanto ce ne sia disponibile. Infine un protocollo a livello di trasporto può fornire a un'applicazione uno o più servizi di sicurezza. Per esempio, nell'host mittente, un protocollo di trasporto può cifrare tutti i dati trasmessi dal processo mittente e, nell'host di destinazione, il protocollo di trasporto può decifrare i dati prima di consegnarli al processo ricevente. SERVIZI DI TRASPORTO OFFERTI DA INTERNETTCP: i servizi che offre sono il servizio orientato alla connessione 1 e il trasporto affidabile dei dati 2 , oltre che servizi di meccanismo di controllo del flusso e della congestione. Non offre garanzie di banda e ritardo minimo.

  1. Servizio orientato alla connessione: client e server si scambiano informazioni di controllo a livello fi trasporto prima che i messaggi a livello di applicazione cominciano ad arrivare -> handshaking. Dopo di che si forma una connessione TCP tra la socket dei due processi. Tale connessione è full- duplex cioè i due processi possono scambiare contemporaneamente messaggi sulla connessione. L'applicazione chiude la connessione al termine dello scambio dei messaggi.
  2. Servizio di trasporto affidabile dei dati: i dati vengono trasportati senza errori, nel giusto ordine e senza perdita o duplicazione di byte.  UDP: protocollo di trasporto leggero, dotato di un modello di servizio minimalista. È senza connessione, non necessita di handshaking e fornisce un servizio di trasferimento dati non affidabile: quando il processo mittente invia un messaggio, UDP non garantisce che questo raggiunga il processo ricevente, o potrebbe giungere a destinazione senza essere ordinato. Il protocollo UDP non include un controllo della congestione ne controllo di flusso. Entrambi i protocolli (TCP/UDP) non forniscono forme di cifratura: è stato quindi sviluppato un elemento aggiuntivo per TCP chiamato secure sockets layer (SSL) -> arricchimento implementato a livello applicativo, offre servizi critici di sicurezza fra processi, compresa la cifratura, il controllo dell'integrità dei dati e l'autenticazione end-to-end. PROTOCOLLI A LIVELLO APPLICATIVO Un protocollo a livello di applicazione definisce come i processi di un'applicazione, in esecuzione su sistemi periferici differenti, scambino messaggi e in particolare: i tipi di messaggi scambiati, la sintassi dei vari tipi di messaggio, la semantica dei campi (il significato delle informazioni che contengono) e le regole di come e quando un processo invia e risponde ai messaggi. Alcuni protocolli vengono specificati nelle RFC (Request for Comments) come, ad esempio, il protocollo HTTP descritto nell'RFC 2616. Distinguere tra applicazione di rete e protocollo a livello di applicazione: un protocollo è solo una parte di un'applicazione di rete. Esempio: il WEB è un applicazione Client-Server che consente di ottenere su richiesta documenti dai web server. L'applicazione web è formata da uno standard per i formati di documento (HTML), browser, web server e un protocollo a livello di applicazione (HTTP). WORLD WIDE WEB E HTTP IPERTESTO : insieme di documenti messi in relazione tra loro tramite parole chiavi contenute nel testo. HTTP (hypertext transfer protocol) , protocollo a livello di applicazione del Web, definito in [RFC 1945] [RFC 2616], è un protocollo implementato in due programmi, client e server, in esecuzione su sistemi periferici diversi che comunicano tra loro scambiando messaggi HTTP. Una pagina web (web page) , detta anche documento, è costituita da oggetti , cioè file indirizzabili tramite un URL. La maggior parte delle pagine web consiste di un file HTML principale. Ogni URL ha come componenti: http:// www. mywebsite.com/apparel/skirt.php?sku=123&lang=en§=silk Protocol : visualizza il protocollo utilizzato per l'accesso al server. Hostname : visualizza l'indirizzo fisico del server su cui risiede la risorsa (può essere un nome di dominio o indirizzo IP).
  • HTTP con connessioni persistenti: il server lascia aperta la connessione TCP dopo l’invio di una risposta, per cui le richieste e le risposte successive tra gli stessi client e server possono trasmesse sulla stessa connessione. Non solo il server può inviare un’intera pagina web su una sola connessione TCP permanente, ma può anche spedire allo stesso client più pagine web. Queste richieste di oggetti possono essere effettuate una di seguito all’altra senza aspettare le risposte delle richieste pendenti ( pipeling ). Il server HTTP chiude la connessione quando essa rimane inattiva per un dato di tempo. La modalità di default di HTTP impiega connessioni persistenti con pipeling. Più recentemente è stato sviluppato HTTP/2 [RFC 7540]: si ha la possibilità di avere richieste e risposte multiple intercalate sulla stessa connessione e un meccanismo di proprietà. FORMATO MESSAGGI HTTP Specifiche HTTP che includono le definizioni del massaggio richiesta e messaggio risposta: [RFC 1945], [RFC 2616], [RFC 7540].
  • Messaggio di richiesta HTTP : GET / somedir / page.html HTTP/1. Host: www. someSchool.edu Connection: close User-agent: Mozilla/5. Accept - language: fr Il messaggio è scritto in testo ASCII e consiste di 5 righe, ciascuna seguita da un carattere di ritorno a capo ( carriage return ) e un carattere di nuova linea ( line feed ) (questi caratteri non sono visibili). L’ultima riga è seguita da una coppia di caratteri di ritorno a capo e nuova linea aggiuntiva. La prima riga è detta riga di richiesta ( request line ) e quelle successive sono dette righe di intestazione ( header line ). La riga di richiesta presenta 3 campi: il campo metodo, il campo URL e il campo versione HTTP. Il campo metodo può assumere diversi valori (GET, POST, HEAD, PUT e DELETE). La maggioranza dei messaggi richiesta usa il metodo GET, usato quando il browser richiede un oggetto identificato dal campo URL. Nell’esempio il browser, che implementa la versione HTTP/1.1 richiede l’oggetto /somedir/page.html. Per quanto riguarda le righe di intestazione:

La riga Host : www. someSchool.edu specifica l’host su cui risiede l’oggetto. Si potrebbe pensare che la seguente riga sia superflua in quanto è già in corso una connessione TCP con l’host -> ma l’informazione fornita dalla linea di intestazione dell’host viene richiesta dalla cache dei proxy. La riga Connection : close , il browser sta comunicando al server che non si deve occupare connessione persistente, ma vuole che questi chiuda la connessione dopo aver inviato l’oggetto richiesto. La riga User-agent: … specifica il tipo di browser che sta effettuando la richiesta -> riga utile in quanto il server può inviare versioni diverse dello stesso oggetto a browser differenti. La riga Accept – language: … indica che l’utente preferisce ricevere la versione dell’oggetto in una certa lingua specificata, piuttosto che nella lingua di default. Formato generale: Un client utilizza un metodo POST quando l’utente riempie un form: quando un utente fornisce le voci da trovare a un motore di ricerca. Il metodo HEAD è simile al GET: quando un server riceve una richiesta con HEAD, risponde con un messaggio HTTP, ma tralascia gli oggetti richiesti (è spesso utilizzato per verificare la correttezza del codice prodotto). Il metodo PUT, frequentemente usato insieme agli strumenti di pubblicazione sul Web, consente agli utenti di inviare un oggetto a un percorso specifico ( directory ) su uno specifico web server (viene anche utilizzato dalle applicazioni che richiedono di inviare oggetti ai web server). Il metodo DELETE consente invece la cancellazione di un oggetto su un server (PUT e DELETE sono spesso disabilitati).

  • Messaggio di risposta HTTP : HTTP/1.1 200 ok Connection: close Date: Thu, 18 Aug 2015 15:44:04 GMT Server: Apache/2.2.3 (CentOS) Last – Modified: Thu, 18 Aug 2015 15:11:03 GMT Content – Length: 6821 Content – Type: text/html (data data data data …) 3 sezioni: una riga di stato inziale, sei righe di intestazione e il corpo. Quest’ultimo rappresenta il fulcro del messaggio: contiene l’oggetto richiesto. La riga di stato presenta tre campi: la versione del protocollo, un codice di stato e un corrispettivo messaggio di stato. Per quanto riguarda le righe di intestazione: La riga Connection: close per comunicare al client che ha intenzione di chiudere la connessione TCP con l’invio del messaggio. La riga Date: … indica l’ora e la data di creazione e invio, da parte del server, della risposta HTTP -> momento in cui il server recupera l’oggetto dal proprio file system, lo inserisce nel messaggio di risposta e lo invia. La riga Server: … indica che il messaggio è stato generato da un web server Apache. N.B.: il campo Corpo dell’entità ( entity corp ) è vuoto nel caso del metodo GET, ma viene utilizzato dal metodo POST.

La struttura di un cookie è assimilabile ad una struttura XML: < COOKIE NOME = “name” VALORE = “text” SCADENZA = “period” SICURO = ”Yes/No” PERCORSO = ”urls” DOMINIO = “.domain.com” > WEB CACHING (PROXY SERVER) Una web cache , o proxy server , è un’entità di rete che soddisfa richieste HTTP al posto del web server effettivo. Il proxy ha una propria memoria su disco (una cache) in cui conserva copie di oggetti recentemente richiesti. Il browser di un utente può essere configurato in modo che tutte le richieste HTTP dell’utente vengano indirizzate al proxy server. EX: supponiamo che un browser stia richiedendo l’oggetto http:// www.someschool.edu/campus.gif:

  1. il browser stabilisce una connessione TCP con il proxy server e invia una richiesta HTTP per l’oggetto specificato.
  2. il proxy controlla la presenza di una copia dell’oggetto nella sua memoria locale. Se l’oggetto è presente nella cache, il proxy lo inoltra all’interno di un messaggio di risposta HTTP al browser.
  3. se, invece, la cache non dispone dell’oggetto, apre una connessione TCP verso il server di origine -> someschool.edu. Poi, il proxy invia al server una richiesta HTTP per l’oggetto. Ricevuta la richiesta, il server di origine invia al proxy l’oggetto all’interno di una risposta HTTP.
  4. quando il proxy riceve l’oggetto ne salva una copia nella propria memoria locale e ne inoltra un’altra copia, all’interno di un messaggio HTTP, al browser (sulla connessione TCP esistente tra browser e proxy).

Benefici della cache: abbiamo 2 reti: la rete di un ente e la parte pubblica di Internet. La rete dell’ente è una LAN ad alta velocità. Un collegamento a 15 Mbps connette un router della prima rete a uno della seconda. I server di origine sono collegati ad Internet e situati in diverse parti del mondo. La dimensione media di un oggetto è di 1 Mbit e i browser dell’ente hanno una frequenza media di 15 richieste ai server di origine al secondo. I messaggi di richiesta HTTP sono trascurabilmente piccoli e non creano per tanto traffico o nel collegamento di accesso (tra i due router). La quantità di tempo che intercorre da quando il router sul lato di Internet del collegamento di accesso inoltra la richiesta HTTP a quando riceve la risposta sia mediamente di 2 secondi -> ritardo di Internet. Il tempo totale di risposta (tempo tra la richiesta da parte del browser fino alla corrispondente ricezione dell’oggetto) è la somma del ritardo sulla rete locale + ritardo di accesso (ritardo tra i due router) + ritardo di Internet. L’intensità di traffico sulla rete locale è pari a: ( richieste/secondo) * (1 Mbit/richiesta)/(100 Mbps) = 0,15 mentre l’intensità del traffico sul collegamento di accesso (dal router Internet al router dell’ente): (15 richieste/secondo) * (1 Mbit/richiesta)/(15 Mbps) = 1. Un’intensità di traffico pari a 0,15 provoca un ritardo trascurabile; quando l’intensità di avvicina a 1 il ritardo su un collegamento diventa notevole -> il tempo di risposta media diventa dell’ordine di minuti. Possibili soluzioni:

  1. incrementare la banda sul collegamento di accesso a Internet, da 15 Mbps a 100 Mbps. Questo abbasserebbe l’intensità di traffico sul collegamento di accesso fino a 0,15, e quindi il ritardo tra i due router sarebbe trascurabile. Il tempo totale di risposta sarà di 2 secondi ma questa soluzione implica che l’ente debba aggiornare il proprio collegamento a Internet, può risultare costoso.
  2. adozioni di un proxy nella rete dell’istituzione. Le percentuali di successo ( hit race : frazione di richieste soddisfatte dalla cache) variano tra 0,2 e 0,7. Supponiamo un hit race = 0,4. I client e il proxy sono collegati sulla stessa rete locale -> il 40% delle richieste verrà soddisfatto dalla cache quasi immediatamente. Il restante 60% delle richieste del browser deve essere soddisfatto dai server di origine; ma solo il 60% degli oggetti richiesti passa attraverso il collegamento di accesso e, l’intensità di traffico sul collegamento di accesso si riduce da 1 a 0,6. In generale, un intensità di traffico inferiore a 0,8 su un collegamento a 15 Mbps corrisponde a un piccolo ritardo trascurabile. Il ritardo medio sarà: 0,4 * (0,01 secondi) + 0,6 * (2,01 secondi) = 1,206 leggermente superiore a 1, secondi. Il proxy è contemporaneamente server e client. Può ridurrei tempi di risposta alle richieste dei client; può ridurre il traffico sul collegamento di accesso ad Internet, con il vantaggio di non dover aumentare l’ampiezza di banda frequentemente; può ridurre il traffico globale del Web in Internet.

FTP: File Transfer Protocol L’FTP (protocollo di trasferimento dati) è un protocollo per la trasmissione di dati tra host basata su TCP. Gli obbiettivi principali descritti nella sua specifica ufficiale [RFC 959] (l’FTP server utilizza le porte 21/20) sono: promuovere la condivisione di file (programmi e dati), incoraggiare l’uso indiretto o implicito di computer remoti, risolvere in maniera trasparente incompatibilità tra di differenti sistemi di deposito file, trasferire dati in maniera affidabile ed efficiente. A differenza dell’HTTP, l’FTP utilizza due canali TCP in parallelo per trasportare un file, cioè una connessione di controllo (control connection) e una connessione dati (data connection): la prima è utilizzata per spedire le informazioni di controllo tra client e server (come identificativo dell’utente, password …) mentre la seconda è quella veramente utilizzata per il trasporto del file -> per questa connessione di controllo separata, si dice che l’FTP invia le sue informazioni di controllo fuori banda (out-of-band). Quando un utente avvia una sessione FTP con un server remoto, il lato client dell’FTP instaura una connessione TCP di controllo con il lato server (host remoto) sulla porta 21 del server. Il lato client dell’FTP invia l’identificazione dell’utente (nome utente) e la password su questa connessione di controllo, nonché gli eventuali comandi per cambiare la directory remota. Quando il lato server riceve sulla connessione di controllo un comando per il trasferimento di un file, il lato server inizia una connessione dati verso il lato client sulla porta 20 e poi la chiude. Se durante la stessa sessione, l’utente vuole trasferire un altro file, l’FTP apre un’altra connessione dati -> per tutta la durata della sessione la connessione di controllo rimane sempre aperta, mentre viene stabilita una nuova connessione dati per ciascun file trasferito all’interno della connessione (la connessione dati non è persistente). Esempi di comandi: inviati come testo ASCII mediante il canale di controllo

  • USER username
  • PASS password
  • LIST richiede la lista dei file nella directory corrente

(ls)

  • **RETR ** richiede (get) un file
  • STOR scarica (put) un file sull’ host remoto. Esempi di codici: codice di stato e frase (come in http)
  • 331 Username OK, password required
  • 125 data connection already open; transfer starting
  • 425 Can’t open data connection
  • 452 Error writing file. TFTP: Trivial File Transfer Protocol TFTP è un protocollo utilizzato per trasferire file tra host utilizzando il protocollo di trasporto UDP (User Datagram Protocol). Definito nella [RFC 1350], la porta sulla quale è in ascolto il server TFTP è la 69. Non supporta la navigazione tra le directory e non possiede meccanismi di autenticazione o cifratura; ha un limite di dimensione dei file di 32 MB. L’TFTP viene solitamente utilizzato per trasferire file tra un computer ed un altro dispositivo come router o switch in ambito LAN. L’TFTP trasmette pacchetti con una lunghezza fissa di 512 byte; un pacchetto avente una dimensione inferiore rappresenta l’ ultimo pacchetto trasmesso. I pacchetti dati inviati vengono memorizzati in un buffer fino alla ricezione della avvenuta accettazione da parte dell’host remoto. In caso di mancata conferma della ricezione entro un determinato tempo di un pacchetto, quest’ultimo viene ritrasmesso. Questo protocollo supporta due modalità di trasferimento dati:
  1. NETASCII : per il file di testo
  2. OCTET : per i file binari.

I pacchetti utilizzati durante una sessione TFTP sono di 5 tipi:

  • RR : Read Request ( Richiesta di lettura );
  • WR : Write Request ( Richiesta di scrittura );
  • DATA : Dati;
  • ACK : Acknowledgment ( Accettazione );
  • ERR : Errore. Fasi della sessione TFTP: l’host A invia un pacchetto RR o WR all host B, contenente il nome del file e la modalità di trasferimento. L’host B risponde con ACK packet, che serve a dire all’host A quale porta sull’host B dovrà usare per i restanti pacchetti. L’host di origine invia dei pacchetti DATA numerati all’host di destinazione, tutti tranne l’ultimo contenenti un blocco di dati completo. L’host di destinazione risponde con pacchetto ACK numerato pe rogni pacchetto DATA. Il pacchetto DATA finale deve contenere un blocco di dati non pieno ad indicare che si tratta dell’ultimo. Se la dimensione del file trasferito è un multiplo esatto della dimensione dei blocchi, la sorgente invia un ultimo pacchetto di dati contenente 0 byte di dati. POSTA ELETTRONICA Presenta tre componenti principali: user agent ( agente utente : lettore di posta come Outlook, Apple Mail ect), server di posta ( mail server ), protocollo SMTP. EX: un mittente A invia un messaggio ad un destinatario B. Gli user agent consento agli utenti di leggere, rispondere, inoltrare messaggi. Quando A ha finito di comporre il massaggio, il suo user agent lo invia al server di posta, dove viene posto nella coda di messaggi di uscita. Quando B vuole leggere il messaggio, il suo user agent lo recupera dalla casella di posta nel suo mail server. Ciascun destinatario ha una casella di posta ( mailbox ) collocata in un mail server. LA mailbox di B gestisce e contiene messaggi a lui inviati. Per accedere ai messaggi della propria mailbox, B deve essere autenticato dal server. Il mail server di A deve anche gestire eventuali problemi del server di B: il server di A, se non può consegnare la posta a quello di B, la trattiene in una coda di messaggi. SMTP SMTP rappresenta il principale protocollo a livello di applicazione per la posta elettronica su Internet. Fa uso del servizio di trasferimento dati di TCP; SMTP presenta un lato client, in esecuzione sul mail server del mittente, e un lato server, in esecuzione sul server del destinatario. Definito in RFC 5321. EX: 1. Alice invoca il proprio user agent per la posta elettronica, fornisce l’indirizzo di posta di Bob (ex [email protected]), compone il messaggio e dà istruzioni allo user agent di inviarlo. 2. Lo user agent di Alice invia il messaggio al suo mail server, dove è collocato in una coda di messaggi. 3. Il lato client di SMTP, eseguito sul server di Alice, vede il messaggio nella coda dei messaggi e apre una connessione TCP verso un server SMTP in esecuzione sul mail server di Bob. 4. Dopo un handshaking SMTP, il client SMTP invia il messaggio di Alice sulla connessione TCP. 5. Presso il mail server di Bob, il lato server di SMTP riceve il messaggio, che viene posizionato nella casella di Bob. 6. Bob, quando lo ritiene opportuno, invoca il proprio user agent per leggere il messaggio. Esempio di trascrizione di messaggi scambiati tra un client SMTP (C) (nome host client: crepes.fr) e un server SMTP (S) (nome host server: hamburger.edu); la trascrizione inizia appena si stabilisce una connessione TCP: S: 220 hamburgher.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: