Application Layer: modello Client-Server e protocolli applicativi

Documento universitario sull'Application Layer, il modello Client-Server e i protocolli applicativi. Il Pdf, utile per lo studio di Informatica, descrive le funzioni e i meccanismi di HTTP, FTP, FTPS, SFTP ed Email, inclusi i comandi SMTP e i tipi di messaggi.

Mostra di più

11 pagine

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

7 - Application Layer

Cosa fa?
fornisce servizi alle applicazioni degli utenti della rete

Modello Client - Server

  • Lato Server -> processo che svolge il servizio -> noto anche come DAEMON
  • Lato Client -> processo che richiede il servizio -> noto anche come USER
    AGENT

Estensioni Modello Client - Server

Quando un server singolo non riesce a fornire le funzionalità richieste, richiede i
dati a un altro server

Peer To Peer

non c'è distinzione tra client e server, sono tutti sia client che server
Pro:

  1. migliora la disponibilità delle risorse
  2. supporta un carico maggiore e lo distribuisce tra i vari dispositivi
  3. migliora la scalabilità -> riesce a tenere connessi più dispositivi

Protocolli Applicativi

Funzioni

  1. stabilisce il tipo e il contenuto dei messaggi tra client e server
  2. stabilisce l'ordine dei messaggi scambiati

Ordine dei messaggi

Ci sono 2 tipi di protocolli:

  1. One-Shot Request Response -> connessione, richiesta client, risposta
    server, fine connessione -> l'HEADER conterrà le specifiche direttive su come
    eseguire la richiesta del client
  2. a Messaggi Multipli -> connessione, richiesta client e risposta server per il
    numero di volte che gli serve, richiesta di chiusura di connessione del client,fine connessione -> l'HEADER serve a specificare il tipo di richiesta e quanti
    messaggi seguiranno o se sono finiti

Tipo Messaggi

I messaggi contengono -> HEADER+DATI
Header -> contiene le info relative al messaggio
Dati -> i dati da trasferire

Protocolli Applicativi

  1. Protocolli di Supporto -> DNS e DHCP -> utilizzati da altri applicativi, dal
    sistema o all'occorrenza possono essere invocati anche da utente finale
  2. Protocollo per Utente Finale -> HTTP, FTP, SMTP, POP3 e IMAP -> usati
    dagli operatori oppure anche da altri applicativi o direttamente dal sistema
    operativo

HTTP

HyperText Transfer Protocol -> protocollo di scambio e trasferimento dell'ipertesto

Come funziona?

  1. Richiesta HTTP del client al server
  2. Il server risponde con le risorse tipo i file HTML o altre funzioni e invia un
    messaggio di risposta, che contiene informazioni sullo stato di completamento
    della richiesta e i contenuti richiesti nel messaggio

Caratteristiche HTTP

  • Usa il protocollo TCP
  • é di tipo One Shot Request-Response
  • no crittografia dati
  • è stateless -> non ricorda cos'è successo prima e ogni connessione è
    diversa dalle altre

Web Application

  • sono applicazioni distribuite su server remoti esterne e non sulle macchine
    che le usano
  • non hanno bisogno di alcuna installazione ma sono su un web server e
    vengono eseguite sul browser
  • disponibili a tutti e facili da raggiungere -> basta sapere l'URL
  • funzionano su tutti i sistemi operativi e su tutti i dispositivi

Web Server

è un host in grado di dare servizi ad altri host che lo richiedono
contemporaneamente
sono in grado di fornire pagine web statiche e dinamiche e sono raggiungibili
tramite l'URL

URL

Uniform Resource Locator -> sono indirizzi web che individuano univocamente una
risorsa presente nei server -> dato che i server sono host, per raggiungere le web
application si arriva tramite indirizzo IP, che poi vengono associati a un nome

HTTP Header

permette di passare informazioni tra client e server
le informazioni possono essere di 4 tipi:

  1. General Header -> possono essere sia nella richiesta che nella risposta ma
    non hanno relazione con i dati
  2. Request Header -> contengono informazioni sulla risorsa da chiedere
  3. Response Header -> usati per inserire altre informazioni sulla risposta
  4. Entity Header -> informazioni riguardanti il tipo del contenuto, tipo la
    lunghezza

I protocolli HTTP sono formati solamente da PAROLE

HTTP REQUEST

sono messaggi inviati dal client per richiedere un servizio al server
è formato da:

  1. la prima linea -> un metodo HTTP che descrive l'azione da eseguire, l'URL, la
    versione del protocollo
  2. HTTP Header
  3. Body -> Contenuto, Dati (opzionale)

HTTP RESPONSE

sono messaggi inviati dal server per offrire un servizio al client
è formato da:

  1. la prima linea -> versione del protocollo, status della richiesta, descrizione
    dello status code (status della richiesta)
  2. HTTP Header
  3. Body -> Contenuto, Dati

STATUS CODE -> 200 Success, 400 Client Error, 500 Server Error (es. 404 File not
found)

HTTP vs HTTPS

il protocollo HTTPS ha la crittografia dei dati inviati, mentre HTTP no

HTTPS

Non è un protocollo vero e proprio ma è il risultato dell'applicazione del protocollo
TLS in congiunzione ad HTTP. Prima si usava il SSL ma ora è considerato poco
sicuro.

Cosa fa HTTPS?

Verifica l'identità di un sito web e crittografa le informazioni inviate tra il sito web e il
client.
Le informazioni includono i cookie, lo user-agent, i percorsi degli URL e i dati inviati
tramite moduli.
HTTPS è stato creato per impedire che queste informazioni vengano lette o
modificate mentre sono in transito
USA LA PORTA 443, mentre HTTP usa la 80

Come funziona HTTPS?

è formato da due macro fasi:

  1. l'handshake per certificare che il sito web sia sicuro
  2. la creazione di una connessione sicura

Protocollo DNS

Domain Name System
dato che tutti i dispositivi si collegano e comunicano tramite tra loro utilizzando un
indirizzo IP, per evitare di ricordarli a memoria, si utilizza il protocollo DNS per
associare un nome di dominio all'indirizzo

è organizzato con una struttura a livelli gerarchica ed è formata da:

  1. Root -> non viene mai scritto ed è gestito dalla IANA
  2. top-level domain -> l'ultima parte dell'URL -> es. . gov , .com , .it , .edu , .org
  3. second-level domain
  4. host name

socciabo.ferribo.it -> socciabo = hostname , ferribo = second-level domain e it =
top-level domain
La stringa più a sinistra è il nome simbolico dell'host
amazon.com -> amazon è l'hostname

Tipi di Name Server (NS)

  1. primario -> gestisce il database
  2. secondario -> copia del primo

Ruoli del NS

  1. Caching -> copia temporaneamente di alcuni Resource Record
  2. Forwarding -> interroga ricorsivamente/iterativamente altri NS
  3. Stealth -> autoritativo, ma invisibile per le query

Come funziona il DNS?

  • I server DNS traducono le richieste in indirizzi IP
  • Resolver -> client che fa la richiesta al server DNS
  • Name Server -> server DNS in ascolto sulla porta 53
  • Usa il protocollo UDP per far prima, mentre per le cose più importanti può
    usare anche il TCP
  • Ci sono due tipi di interrogazioni:
  1. Risoluzione Iterativa
  2. Risoluzione Ricorsiva

Risoluzione Iterativa

Il client chiede al server l'indirizzo IP associato al nome e se lo sa glielo invia, se no
si limita a dire su quale altro server andare

Risoluzione Ricorsiva

Il server DNS si mette nei panni del client diventandolo e andando a chiedere agli
altri server l'indirizzo IP associato al nome

Vantaggi e Svantaggi

Iterativa

  1. Grande uso di banda
  2. Carico sul client
  3. Poco tempo per ricevere risposta perchè ha un ritardo minore

Ricorsiva

  1. Poco uso di banda
  2. Nessun carico sul client
  3. Ci mette più tempo per ricevere risposta

Risoluzione Inversa

dall'IP al Nome
hanno creato un dominio apposta chiamato in-addr per evitare di cercare in tutti i
domini quello giusto
e come nell'URL da destra a sinistra vai nello specifico, nell'indirizzo IP per fare ciò
devo girare l'ordine dell'IP

DNS & DHCP

durante il processo di lease di un nuovo indirizzo IP, il server DHCP viene a
conoscenza del nome simbolico dell'host che ha chiesto l'IP e quando avverrà lo
scambio il DHCP comunicherà al DNS Server l'associazione nome-IP

DNS Dinamico

si può associare un IP assegnato a un nome di dominio pubblico, registrato nel
database DNS
Il client che ha ricevuto il nuovo indirizzo deve comunicare al server DNS dinamico la
nuova associazione nome di dominio - indirizzo IP dinamico

Cache Poisoning

la richiesta DNS della vittima viene intercettata e l'attaccante gli invia indietro una
sua pagina per rubargli dati

DNS Spoofing

sostituzione del server DNS con il server malevolo permettendo di monitorare e
ridirezionare in modo trasparente il traffico IP del client senza che lui se ne accorga

DHCP

Dynamic Host Configuration Protocol
Protocollo applicativo che gestisce in modo centralizzato la configurazione del
TCP/IP degli host della rete
Assegna automaticamente gli indirizzi IP e gli altri parametri di configurazione
TCP/IP evitando molti dei problemi che si presentano con la configurazione manuale
è un'estensione del protocollo BOOTP -> Bootstrap Protocol

DHCP Client

è il programma che ottiene un indirizzo IP e i parametri per la sottorete in cui è
collegato l'host di esso

DHCP Server

è il programma che assegna gli IP agli altri parametri, che può girare o su un
dispositivo o anche su un router configurato.
Deve esistere un DHCP Server per ogni sottorete

DHCP Relay

è una funzione implementata dal router che si occupa di inoltrare le richieste DHCP
a un server che non è presente nella sottorete

Processo di Lease

è un piccolo processo nel quale il server DHCP fornisce le informazioni sugli IP ai
client
Server e Client usano il protocollo ARP per avere conferma sull'indirizzo IP in fase di
assegnazione e se non dovesse essere più disponibile, il processo si chiude con un
NACK
è formato da 4 fasi:

  1. Discover -> client manda in broadcast un pacchetto discover nella rete in
    cerca di un IP
  2. Offer -> un server DHCP che è in ascolto, propone un IP libero in modo
    unicast
  3. Request -> il client ha ricevuto l'offerta, manda un pacchetto request in modo
    broadcast (così per dire quale server ha scelto) accettando l'IP
  4. Ack -> il server manda un ACK, dicendogli che l'IP è suo e dichiarando il
    tempo di lease e le configurazioni

Rinnovo del Lease

il DHCP chiede il rinnovo del lease dopo che è passata la metà del tempo di
noleggio dell'indirizzo IP.
il client invia un messaggio di DHCP request al server DHCP a cui aveva chiesto l'IP
in precedenza, chiedendo lo stesso IP. Se è disponibile, rinnova il lease, inviando il
messaggio di DHCP Ack con all'interno la nuova durata di lease ed eventuali
aggiornamenti della configurazione IP.
Ogni volta che il client DHCP si riavvia, cerca sempre di riavere l'IP che gli era stato
assegnato in precedenza
Se non ha successo la richiesta e il tempo non è ancora scaduto, il client continua
ancora ad utilizzare quel IP fino la fine del tempo

Assegnazione IP

Assegnazione IP statica vs dinamica

Statico -> amministratore di rete assegna gli IP agli host
Dinamico -> assegnazione automatica di IP da un server
Dinamico con Mac Address -> amministratore associa IP-Mac dei dispositivi che poi
verranno assegnati dal DHCP

Address Starvation

è un programma malevolo che può effettuare tante richieste di lease, simulando di
avere mac address diversi, prendendo tutti gli indirizzi del DHCP Server bloccando
ulteriori connessioni

Rouge Server

è un programma malevolo che invia configurazioni errate ai DHCP Client -> DHCP
Rouge Server

FTP

è un protocollo applicativo utilizzato per il trasporto di file tra host remoti con anche
file system diversi e gestione file system da remoto

Funzioni FTP

  1. caricamento di file sul server o download da esso
  2. Rinominazione, eliminazione di file e cartelle e navigazione nel file system

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.