Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Il throughput massimo di un router e il throughput end-to-end
Il throughput massimo di un router rappresenta la velocità massima alla quale il router può inoltrare pacchetti. Oltre al ritardo e alla perdita di pacchetti, un'altra misura critica delle prestazioni in una rete di calcolatori è il throughput end-to-end. 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.
Sia Rs la velocità del collegamento tra il server e il router e Rc quella del collegamento tra il router e il client, il throughput è il minimo tra Rs e Rc, cioè la velocità di trasmissione del collegamento che fa da collo di bottiglia.
1.7 Livelli di protocolli e loro modelli di servizio
Architettura a livelli
Per dare struttura alla loro progettazione, i progettisti organizzano i...
protocolli e l'hardware e software che li effettuando determinate azioni all'interno del implementano in livelli. Ogni livello fornisce il suo servizio livello stesso e utilizzando i servizi del livello immediatamente inferiore.
I livelli sono:
- Livello di applicazione: è la sede delle applicazioni di rete e dei relativi protocolli (es: http, SMTP, FTP). I pacchetti di questo livello sono detti messaggi.
- Livello di trasporto: trasferisce i messaggi del livello di applicazione tra punti periferici gestiti dalle applicazioni. I due principali sono TCP e UDP. I pacchetti di questo livello sono detti segmenti.
- Livello di rete: si occupa di trasferire i pacchetti a livello di rete, detti datagrammi, da un host all'altro. Questo livello include il famoso protocollo IP.
- Livello di collegamento: instrada un datagramma attraverso una serie di router tra la sorgente e la destinazione. I pacchetti di questo livello sono detti frame.
- Livello fisico: trasferire i singoli bit
del frame da un nodo a quello successivo. I protocolli di questo livello sono dipendenti dal collegamento e in più dipendono dall'effettivo mezzo di trasporto. Ad esempio, Ethernet presenta vari protocolli a livello fisico: uno per il doppino di rame intrecciato, uno per il cavo coassiale, uno per la fibra ottica, ecc.
Analisi del traffico
Un ricevitore passivo in prossimità di un trasmettitore wireless può ottenere una copia di ogni pacchetto trasmesso e viene chiamato packet sniffer. I packet sniffer possono essere ugualmente utilizzati anche in ambiente cablato. Dato che tali ricevitori sono passivi, sono anche difficili da individuare, per questo spesso si ricorre alla crittografia.
La capacità di immettere pacchetti in Internet con un indirizzo sorgente falso è nota come IP spoofing, ed è uno dei molti modi attraverso i quali un utente può spacciarsi per un altro.
2. Livello di applicazione
2.1 Architetture delle applicazioni di
Nell'architettura client-server vi è un host sempre attivo, chiamato server, che risponde alle richieste di servizio di molti altri host, detti client. In tale architettura i client non interagiscono direttamente tra loro.
Inoltre, il server dispone di un indirizzo fisso e noto detto indirizzo IP, che il client può contattare in qualsiasi momento, inviandogli un pacchetto. Un singolo host che esegue un server non è in grado di rispondere a tutte le richieste dei suoi client. Per questo motivo si usano spesso data center, che ospitando molti host, creano un potente server virtuale.
In un'architettura P2P l'infrastruttura di server in data center è minima o del tutto nulla; si sfrutta invece la comunicazione diretta tra coppie arbitrarie di host, chiamati peer, collegati in modo intermittente. Uno dei punti di forza di tale applicazione di condivisione dei file P2P è la possibilità di sfruttare le risorse di tutti i peer partecipanti alla rete.
architettura è la sua intrinseca scalabilità. ogni peer, sebbene generi carico di lavoro richiedendo dei file, aggiunge anche capacità di servizio al sistema, rispondendo alle richieste di altri peer. Le architetture P2P sono anche economicamente convenienti.
2.2 Processi comunicanti
Nel gergo dei sistemi operativi non si parla di programmi, ma di processi comunicanti. Si può pensare a un processo come a un programma in esecuzione su un sistema. Processi in esecuzione sullo stesso sistema comunicano utilizzando un approccio interprocesso. I processi su due sistemi terminali comunicano scambiandosi messaggi attraverso la rete. Il mittente di una richiesta è il client, colui che risponde alla richiesta dalla rete attraverso un'interfaccia software è il server. Un processo invia messaggi nella rete e riceve messaggi.
Il socket è quindi l'interfaccia tra il livello di applicazione e il livello di trasporto host.
Si parla anche di API. In Internet gli host vengono identificati attraverso i loro indirizzi IP, ovvero un numero di 32 bit che possiamo pensare identifichi univocamente l'host. Il mittente deve anche identificare il processo destinatario, più specificatamente la socket che deve ricevere il dato. Un numero di porta di destinazione assolve questo compito.
Se un protocollo fornisce un tipo di servizio di consegna garantita dei dati, si dice che fornisce un trasferimento dati affidabile. Quando, invece, un protocollo a livello di trasporto non fornisce trasferimento dati affidabile, i dati inviati dal processo mittente potrebbero non arrivare mai a quello ricevente. Ciò potrebbe essere accettabile per le applicazioni che tollerano le perdite: in particolare le applicazioni multimediali audio/video a uso personale.
Le applicazioni che hanno requisiti di throughput vengono dette applicazioni sensibili alla banda, mentre le applicazioni elastiche possono far uso di tanto o di
poco throughput a seconda di quanto ce ne sia disponibile.Un protocollo a livello di trasporto può anche fornire garanzie di temporizzazione, che possono avere varie forme. Questo tipo di servizio potrebbe interessare le applicazioni interattive in tempo reale.può fornire a un'applicazione uno o più servizi di
Infine, un protocollo a livello di trasporto sicurezza. Un protocollo a livello di trasporto può fornire altri servizi di sicurezza oltre alla riservatezza, compresi l'integrità dei dati e l'autenticazione.
2.3 Servizi di trasporto offerti da Internet
Servizi TCP affidabile dei dati. Quando un'applicazione TCP prevede un servizio orientato alla connessione e il trasporto invoca TCP come protocollo di trasporto, riceve entrambi questi servizi:
- Servizio orientato alla connessione: TCP fa in modo che client e server si scambino informazioni di controllo a livello di trasporto prima che i messaggi a livello di applicazione comincino
A fluire. Questa procedura viene chiamata handshaking. Dopo tale procedura, esiste una connessione TCP tra le L'applicazione deve chiudere la connessione socket dei due processi. Tale connessione è full-duplex quando termina di inviare messaggi.
Servizio di trasferimento affidabile: i processi comunicanti possono contare su TCP per trasportare i dati senza errori e nel giusto ordine. TCP include anche un meccanismo di controllo della congestione, che esegue una "strozzatura" del processo d'invio quando il traffico in rete appare eccessivo.
Servizi UDP: UDP è un protocollo di trasporto leggero e senza fronzoli, dotato di un modello di servizio minimalista. UDP è senza connessione, non necessita quindi di handshaking, e fornisce un servizio di trasferimento dati non affidabile. Tale protocollo non garantisce che un messaggio raggiunga il processo di destinazione. Inoltre, i messaggi potrebbero giungere a destinazione non in ordine.
Web e...
HTTPPanoramica di HTTP HTTP (hypertext transfer protocol) costituisce il cuore del Web. Questo protocollo è implementato in due programmi, client e server, in esecuzione su sistemi periferici diversi che comunicano tra loro scambiandosi messaggi HTTP. Il protocollo definisce sia la struttura dei messaggi, sia la modalità con cui client e server si scambiano i messaggi. Un browser web implementa il lato client di HTTP, mentre un web server implementa il lato server e ospita oggetti web, indirizzabili tramite URL. HTTP utilizza TCP come protocollo di trasporto. Ciascuna coppia richiesta/risposta può essere inviata su una connessione TCP separata (connessione non persistente) oppure sulla stessa connessione (connessione persistente). Viene definito round-trip time (RTT) il tempo impiegato da un piccolo pacchetto per viaggiare dal client al server e poi tornare al client. Messaggio di richiesta HTTP:GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection:
La prima riga è detta riga di richiesta e quelle successive righe di intestazione. 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: Tue, 18 Aug 2015 15:11:03 GMT Content-Length: 6821 Content-Type: text/html (data ...) Tra i più comuni codici di stato e relative espressioni troviamo: - 200 OK: la richiesta ha avuto successo e in risposta si invia l'informazione. - 301 Moved Permanently: - 400 Bad Request: si tratta di un codice di errore generico che indica che la richiesta non è stata compresa dal server. - 404 Not Found: il documento richiesto non esiste sul server. - 505 HTTP Version Not Supported: il server non dispone della versione di protocollo HTTP richiesta. Interazione utente-server I cookie consentono ai server di tenere traccia degli utenti. Quando giunge
La richiesta al web server di Amazon, il sito crea un identificativo unico e una voce nel proprio database, indicizzata dal numero identificativo. Al browser di Susan, includendo nella risposta HTTP l'intestazione Set-cookie: questo punto il server risponde che contiene il numero identificativo. Per esempio, la riga di intestazione potrebbe essere: Set-cookie: 1678 risposta HTTP, vede l'intestazione Set-cookie.
Quando il browser di Susan riceve il messaggio di risposta HTTP, vede l'intestazione Set-cookie. Questa riga include il nome dell'host del server e il numero identificativo Set-cookie. Il browser allora aggiunge una riga al file dei cookie che gestisce. Ogni volta che richiede una pagina web, il suo browser consulta il suo file dei cookie, estrae il suo numero identificativo per il sito e pone nella richiesta HTTP una riga di intestazione del cookie che include tale numero. Più nello specifico, ciascuna delle sue richieste HTTP al server di Amazon include la riga di intestazione: Cookie