










































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti e riferimenti al libro della Pearson "Reti di calcolatore e Internet"
Tipologia: Appunti
1 / 50
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!











































In offerta
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.
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
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 INTERNET TCP: 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.
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).
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:
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:
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
I pacchetti utilizzati durante una sessione TFTP sono di 5 tipi: