Facebook  -  Twitter      

Questo forum fa uso dei cookie
Questo forum utilizza i cookie per memorizzare i dettagli del tuo login o della tua ultima visita. I cookie sono piccoli files di testo salvati nel computer; i cookie da noi utilizzati sono relativi unicamente ai servizi da noi forniti direttamente o dai banner pubblicitari. I cookie su questo forum salvano inoltre i dettagli relativi alle discussioni lette e alle tue preferenze personali. Sei pregato di selezionare il tasto OKAY se sei consapevole della presenza di questi files e ci autorizzi ad utilizarli per le informazioni specificate.

Indipendentemente dalla tua scelta un cookie verrà salvato per memorizzare nel tuo pc la risposta a questo form. Puoi modificare le impostazioni relative ai cookie nelle preferenze del tuo browser.

  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Teoria: I Protocolli Internet

#1
Iniziamo con un po' di storia sui protocolli internet da cui è nato il web come oggi lo conosciamo:
[hide]
Un po' di date:
1961: L. Kleinrock teorizza la trasmissione di dati a pacchetto
1967: Lawrence Roberts progetta ARPAnet (Advanced Research Projects Agency)
1969: primo nodo di IMP (Interface Message Processor) di ARPAnet a UCLA
1969: prima rete ARPAnet (4 nodi)
1972: ARPAnet ha 15 nodi
1979: ARPAnet ha 200 nodi
1982-1988: Servizio posta elettronica, Protocolli TCP/IP e FTP, 100000 host collegati
1990-1999: Introduzione del WEB (T. Berners Lee), Primi Browser (mosaic, netscape), Commercializzazione del web
2000 – oggi: arrivano le “killer applications” (messaggistica istantanea, condivisione di file P2P, IP Telephony) sicurezza di rete, centinaia di milioni di host, un miliardo di utenti, velocità nelle dorsali dell’ordine dei Gbps .
Struttura del web
Terminali (hosts): Eseguono il software applicativo (Web, email, ecc.), Processi remoti scambiano informazioni
Infrastruttura di comunicazione: Dispositivi di rete (router, bridge, switch), Collegamenti (cavi, collegamenti radio)
Protocolli di comunicazione: per inviare e ricevere messaggi
Obiettivo Finale: fornire un servizio di comunicazione tra due processi applicativi remoti

La comunicazione:
Il servizio di comunicazione gestisce lo scambio di informazione fra due “entità”, è in generale un servizio di trasferimento di unità informative: parole, Bit, gruppi di bit (trame o pacchetti), files, flussi multimediali. Un servizio di comunicazione può essere organizzato a livelli le entità di un livello collaborano per fornire il servizio di comunicazione al livello superiore, entità allo stesso livello si scambiano messaggi secondo un protocollo.
Un protocollo utilizza per il colloquio tra entità dello stesso livello delle unità di trasferimento dati dette Packet Data Unit (PDU), suddiviso in:
Header (Informazione di segnalazione per il coordinamento delle entità)
Dati (Dati provenienti dalle entità di livello superiore)
Protocollo: Insieme delle regole che gestiscono il colloquio tra entità dello stesso livello (formato dei messaggi, informazioni di servizio, algoritmi di trasferimento, ecc...)

Caratteristiche:
Perdita di dati: Alcune applicazioni possono tollerare perdite parziali (ad es. audio). Altre applicazioni richiedono a completa affidabilità (ad es. file transfer, telnet)
Ritardo: Alcune applicazioni richiedono basso ritardo (ad es. Internet telephony,
interactive games)
Banda: Alcune applicazioni richiedono un minimo di velocità di trasferimento (ad es. appl. multimediali), altre applicazioni si adattano alla velocità disponibile

Architettura della rete:
Server: Fornisce servizi, Interpreta richiesta dei client, Host sempre attivo, Indirizzo IP permanente, Possibilità di utilizzo di macchine in cluster.
Client: Richiede servizi, Comunicano con il server, Possono essere connessi in modo discontinuo, Possono cambiare indirizzo IP, Non comunicano con altri client
Peer-to-peer: Non ci sono server sempre connessi, i terminali (peers) comunicano direttamente, sono collegati in modo intermittente e possono cambiare indirizzo

Protocollo HTTP
architettura client-server, i client richiedono oggetti (file) identificati da un URL (che indica la posizione della pagina o del file richiesto) al server, l'URL è presentato nella seguente forma:

Method :// Host : Port / Path

Method: indica il protocollo in cui la richiesta viene formata
Host: Indica l'indirizzo di rete del server (viene utilizzato per evitare la complicatezza degli IP)
Port: indica la porta a cui viene inoltrata la richiesta (ad esempio 80 per il protocollo HTTP, 21 per FTP ecc..)
Path: percorso del file richiesto, ovvero dove si trova il file richiesto dall'utente all'interno del server che lo ospita

Il client invia dunque una risposta chiamata HTTP Request a cui il server risponde con un HTTP Response tramite la quale i server restituiscono i file, nessuna memoria sulle richieste viene mantenuta nei server (protocollo stateless).

[Immagine: 288tv7.jpg]

Esempi di metodi:

GET Per scaricare un documento dal server. Il documento richiesto è specificato nell’URL.
HEAD Per richiedere alcune informazioni sul documento (come ad esempio la data dell’ultima modifica). Nella risposta il server non inserisce il documento ma solo degli header informativi.
POST E’ usato per fornire degli input al server da utilizzare per un particolare oggetto (di solito un applicativo) identificato nell’URL.
PUT E’ utilizzato per memorizzare un documento nel server. Il documento viene fornito nel corpo del messaggio e la posizione di memorizzazione nell’URL.

Esempi di Status Code (o risposte):

200 OK: La richiesta ha avuto successo, l’informazione è inclusa
400 Bad Request: errore generico
401 Unauthorized: Accesso senza necessari account e passwd
404 Not Found: l’oggetto non esiste sul server (più comune)

Trasporto delle informazioni
Più applicazioni possono essere attive su un end system, il livello di trasporto svolge funzioni di multiplexing/demultiplexing, ciascun collegamento logico tra applicazioni è indirizzato dal livello di trasporto

[Immagine: ejtvyw.jpg]

In Internet le funzioni di multiplexing/demultiplexing vengono gestite mediante indirizzi contenuti nelle PDU di livello di trasporto, tali indirizzi sono lunghi 16 bit e prendono il nome di porte. I numeri di porta possono assumere valori compresi tra 0 e 65535, i numeri noti sono assegnati ad applicativi importanti dal lato del server (HTTP, FTP, SMTP, DNS, ecc.), i numeri dinamici sono assegnati dinamicamente ai processi applicativi lato client

Numeri Noti: 0-1023
Numeri Assegnati: 1024-49151
Numeri dinamici: 49152-65535

Il numero di porta e l’indirizzo IP identificano in modo univoco un processo applicativo (client o server) in esecuzione su un host, mentre la coppia di indirizzi rende il nome di indirizzo di socket. I socket dei due processi in colloquio sono sempre contenuti negli header di livello IP e trasporto.
Quindi se due client accedono alla stessa porta di un server HTTP non c’è ambiguità perché la coppia di socket è diversa (i due client hanno IP diverso).

Il servizio di trasporto fornito può essere di vari tipi:
  • trasporto affidabile (garanzia di consegna dei messaggi nel corretto ordine)
  • trasporto non affidabile (solo funzionalità di indirizzamento)
  • trasporto orientato alla connessione
  • trasporto senza connessione
Nella suite IP sono definiti due tipi di trasporto:
  • TCP (Transmission Control Protocol), orientato alla connessione e affidabile
  • UDP (User Datagram Protocol), senza connessione e non affidabile

In base al tipo di applicazione viene scelto il tipo di protocollo di trasporto più adatto:

[Immagine: wwgf4o.jpg]
Il Protocollo TCP/IP
Connectionless, progettato secondo un paradigma packetoriented (o datagram) in cui due pacchetti (o datagrammi) destinati alla stesso host possono “essere trattati” in maniera diversa, è poco affidabile consegna best-effort dei datagrammi e senza garanzia di successo.
Indirizzamento: assegna un indirizzo universalmente riconosciuto
Frammentazione/Deframmentazione: frammenta/deframmenta i pacchetti se il livello locale lo richiede (IP è pensato per funzionare su molteplici tecnologie di livello inferiore).

Un host è caratterizzato da una o più interfacce di rete. Si ha la necessità di avere un'identificazione univoca di un host nella Rete, quindi si procede con l'assegnazione di un indirizzo ad ogni interfaccia dell’host
[Immagine: do8jzn.jpg]

Un ringraziamento speciale ai professori: Guido Maier, Matteo Cesana, Giacomo Verticale, Ilario Filippini del Politecnico di Milano, senza i quali questa lezione sarebbe stata impossibile
[/hide]
Cita messaggio


[-]
Condividi/Segnala (Mostra tutti)
Facebook Linkedin Twitter

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Guida: Connettere tutti gli apparecchi di casa ad internet hamtarociaoo 0 1'155 23-08-2013, 13:40
Ultimo messaggio: hamtarociaoo
  Guida: Configurare Internet da Cellulare hamtarociaoo 0 775 09-08-2013, 13:05
Ultimo messaggio: hamtarociaoo
  Guida: Configurare Modem/Internet Key hamtarociaoo 0 1'644 09-08-2013, 12:22
Ultimo messaggio: hamtarociaoo

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Utenti che stanno guardando questa discussione:
1 Ospite(i)


Powered by MyBB, © 2002-2017 MyBB Group.