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


Protocollo TCP/IP e cenni su HTTP, Dispense di Informatica

il file contiene riassunti su protocollo TCP/IP e qualche cenno sul protocollo HTTP. Sono argomenti trattati al liceo scientifico scienze applicate e non sono estremamente dettagliati. Argomenti presenti: -TCP/IP e livello di rete -formato dei dati -intestazione IP -struttura degli indirizzi IP -net-mask -subnetting -configurazione di un host su rete TCP/IP -web e protocollo HTTP (cenni) Il file può contenere errori, imprecisioni..., non è perfetto ma io ho studiato con questo.

Tipologia: Dispense

2025/2026

In vendita dal 01/07/2026

ale_blade
ale_blade 🇮🇹

6 documenti

1 / 21

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Protocollo e Indirizzamento IP
TCP/IP e Livello di Rete
Funzione del livello di Rete = instradare i pacchetti che compongono
l’informazione attraverso i nodi intermedi (varie reti di cui è costituita la rete di
comunicazione complessiva)
per poter realizzare questa funzione serve:
conoscere topologia della rete
stabilire piano di indirizzamento per gli host delle varie reti
scegliere il percorso migliore per raggiungere la destinazione
ad ogni scheda di rete di un computer viene assegnato un indirizzo logico,
l’IP, che è un identificativo univoco a livello 3 della pila ISO/OSI
IP è diverso da MAC perché IP è logico e MAC è fisico e individua fisicamente un
dispositivo a livello 2
si usa IP perché sarebbe impossibile utilizzare i MAC per riconoscere un dispositivo
nella rete mondiale
per localizzare un host si deve prima capire in che rete si trova, per poi individuare il
singolo dispositivo all’interno di quella rete
il messaggio che arriva dal protocollo di trasporto è già diviso in segmenti e
all’occorrenza viene diviso ulteriormente in pacchetti non più grandi di 1500
byte (max campo dati dell’ethernet) e viene spedito attraverso qualsiasi tipo di rete
i nodi che interconnettono le reti locali e gestiscono instradamento dei pacchetti
sono detti router
i pacchetti sono spediti attraverso percorsi diversi e potrebbero arrivare in ordine
diverso da come sono partiti → il livello di trasporto ricompone il messaggio
lo scambio di messaggi fisico tra host in rete locale (livello ethernet) utilizza i MAC
per trasmettere dati tra 2 schede di rete
per consegnare pacchetto (da host all’altro) bisogna passare da IP a MAC e questo
passaggio è svolto dall’ARP (Address Resolution Protocol) → traduce IP in
MAC nascondendo questi indirizzi agli strati superiori
MAC consente scambio di informazioni solo tra host nella stessa rete locale
protocollo IP fornisce instradamento ma non è affidabile, non corregge errori
e non controlla il flusso di informazione → questo deve farlo il livello di
trasporto
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Anteprima parziale del testo

Scarica Protocollo TCP/IP e cenni su HTTP e più Dispense in PDF di Informatica solo su Docsity!

Protocollo e Indirizzamento IP

TCP/IP e Livello di Rete

  • Funzione del livello di Rete = instradare i pacchetti che compongono l’informazione attraverso i nodi intermedi (varie reti di cui è costituita la rete di comunicazione complessiva)
  • per poter realizzare questa funzione serve: ◦ conoscere topologia della retestabilire piano di indirizzamento per gli host delle varie retiscegliere il percorso migliore per raggiungere la destinazione
  • ad ogni scheda di rete di un computer viene assegnato un indirizzo logico, l’IP , che è un identificativo univoco a livello 3 della pila ISO/OSI
  • IP è diverso da MAC perché IP è logico e MAC è fisico e individua fisicamente un dispositivo a livello 2
  • si usa IP perché sarebbe impossibile utilizzare i MAC per riconoscere un dispositivo nella rete mondiale
  • per localizzare un host si deve prima capire in che rete si trova, per poi individuare il singolo dispositivo all’interno di quella rete
  • il messaggio che arriva dal protocollo di trasporto è già diviso in segmenti e all’occorrenza viene diviso ulteriormente in pacchetti non più grandi di 1500 byte (max campo dati dell’ethernet) e viene spedito attraverso qualsiasi tipo di rete
  • i nodi che interconnettono le reti locali e gestiscono instradamento dei pacchetti sono detti router
  • i pacchetti sono spediti attraverso percorsi diversi e potrebbero arrivare in ordine diverso da come sono partiti → il livello di trasporto ricompone il messaggio
  • lo scambio di messaggi fisico tra host in rete locale (livello ethernet) utilizza i MAC per trasmettere dati tra 2 schede di rete
  • per consegnare pacchetto (da host all’altro) bisogna passare da IP a MAC e questo passaggio è svolto dall’ ARP (Address Resolution Protocol) → traduce IP in MAC nascondendo questi indirizzi agli strati superiori
  • MAC consente scambio di informazioni solo tra host nella stessa rete locale
  • protocollo IP fornisce instradamento ma non è affidabile, non corregge errori e non controlla il flusso di informazione → questo deve farlo il livello di trasporto

Formato dei Dati TCP/IP

  • Quando app usa protocollo TCP/IP per inviare dati questi seguono percorso da alto a basso nella pila → ogni livello aggiunge una serie di infomazioni
  • stato di applicazione aggiunge intestazione (header-app)
  • TCP aggiunge intestazione → unità di dati è ora detta segmento
  • stato di rete aggiunge altra intestazione → datagramma IP
  • strato di collegameto aggiunge header e trailer → frame ethernet

Intestazione IP

  • Normalmente lunga 20 byte, potrebbe essere fino a 60 ma non viene fatto per motivi di sicurezza
  • composto da: ◦ VERS → versione del protocollo IP (IPv4 o IPv6) ◦ TOS (type of Service) tipo mail, streaming…, è un intero che serve a stabilire le priorità ◦ LUNGHEZZA TOTALE → lunghezza totale del datagramma IP in byte, solitamente fino a 1500 byte, teoricamente può arrivare a 65536byteIDENTIFICATIVO → valore che identifica univocamente datagramma ◦ TTL (Time to Live) → numero massimo di salti (da rete a rete) che datagramma può effettuare nell’attraversare la rete prima che venga distrutto (è un contatore che viene decrementato ad ogni salto) (normalmente bastano 15 hop per arrivare quasi ovunque, ma è in multipli di 2) ◦ INDIRIZZO IP SORGENTE e DESTINAZIONE

Struttura degli Indirizzi IP

  • Nelle reti TCP/IP ad ogni host viene assegnato un indirizzo IP
  • IP composto da 32 bit e viene comunemente espresso scrivento i valori decimali di ciascun byte (da 0 a 255) separati da un punto → dotted decimal 137.204.213.2 → 10001001.11001100.11010101.
  • indirizzo composto da 2 parti: ◦ Net-ID ◦ Host-ID
  • indirizzi IP sono divisi in classe in base al valore dei bit più significativi del primo byte e alla diversa ripartizione tra Net-ID e Host-ID
  • è necessatio scegliere indirizzo di rete in funzione dei dispositivi che si andranno a collegare: ◦ classe A, 8 bit net, 24 host → 16mln host possibili → solo 128 reti di classe A sono disponibili (pubbliche), NET-ID inizia con 0 come primo bit ◦ classe B, 16 net, 16 host,NET-ID inizia con 10 come primi 2 bit ◦ classe C, le più utilizzate per le LAN, possono avere 256 host NET-ID inizia con 110 come primi 3 bit
  • sono state introdotte 3 tecniche per migliorare efficienza nella gestione degli IP: ◦ Subnetting → utilizzo di subnet-mask per realizzare sottoreti per dividere una rete di una specifica classe in sottoreti ◦ VLSM – Variable Length Subnet Mask ◦ CIDR – Classless Interdomain Routing

Subnetting

  • Operazione che viene effettuata sul campo host suddividendolo in 2 parti per riorganizzare la rete in parti più piccole dette sottoreti
  • Net-ID rimane invariato, Host-ID viene diviso in 2: ◦ la prima parte diventa Subnet-ID e va a far parte del Net-ID ◦ la seconda è effettivamente la parte Host composta da un numero inferiore di bit es: 192.168.1.0/24 viene divisa in 192.168.1.0/ → quest’ultima avrà subnet mask = 255.255.255.

VLSM – variable length subnet mask

  • Il subnetting tradizionale pone il limite di dover usare subnet mask di lunghezza fissa (limitata dalle potenze del 2)
  • una volta scelta la subnet mask si è vincolari a numero fisso di sottoreti delle stesse dimensioni: spreco di indirizzi e rigidirà della rete in caso di evoluzioni
  • se in una rete vengono assegnate più subnet mask si ha una rete con maschere di lunghezza variabile → VLSM

Modello ISO/OSI: descrizione astratta delle modalità di comunicazione tra 2 o più dispositivi su reti locali remote; È un insieme di regole comuni che consentono la comunicazione. Composto da architettura a strati: i vari strati hanno compiti diversi e possono interagire tra loro verticalmente (con strati adiacenti) o orizzontalmente (pari su un altro dispositivo)

  • livelli forniscono servizi a livelli superiori mascherando come lo fanno
  • i livelli si passano dati tra loro fino a livello fisico che effettua trasmissione Per la comunicazione il problema viene scomposto in problemi più semplici si individuano e si separano le funzioni e i servizi necessari, che vengono poi organizzati gerarchicamente Modello ISO/OSI è composto da 7 livelli:
  • livelli superiori(4-7): orientati all’applicazione – presenti in end-point in comunicazione
  • livelli inferiori (1-3): si occupano della comunicazione e trasferimento di informazioni tra due sistemi – presenti in nodi di rete o dispositivi intermedi End System (DTE) = origine o destinazione dell’informazione Nodo di Switch = assicura collegamento Livelli:
  • applicazione : fornisce a app in esecuzione mezzo per accedere alla rete per comunicare – costituito da tutti i protocolli che consentono ai programmi (o meglio processi) di svolgere le loro attività in rete, es: FTP, HTTP ...
  • presentazione : stabilisce sintassi e semantica delle informazioni da trasferire ma anche della sicurezza (può criptare) – definisce rappresentazione dei dati, comprime dati, cifra dati e si interfaccia con livelli adiacenti
  • sessione : coordina dialogo tra utenti
  • trasporto : frammenta in segmenti i dati ricevuti da livello di sessione per ottimizzare trasferimento; gestisce la connessione, rileva errori, controlla flusso di informazione
  • rete : instrada i pacchetti attraverso i nodi intermedi della rete e deve stabilire piano di indirizzamento, conoscere topologia della rete e scegliere percorso migliore
  • collegamento : gestisce collegamento tra host direttamente connessi in una LAN, definisce frame del flusso di bit nel mezzo fisico, gestisce il mezzo condiviso, a volte controlla flusso o gestisce errori
  • fisico : trasmette sequenze di bit nel canale di comunicazione Vantaggi Architettura a Strati:
  • indipendenza tecnologica : ciascuno strato può variare indipendentemente dagli altri purché vengano mantenute le funzionalità previste per quello strato e vengano mantenute modalità di comunicazione con livelli adiacenti

◦ B 1Gbps: tutte le coppie sono usate per trasmissione dati PoE ancora possibile, alimentazione e dati su stesso doppino

  • cavo ethernet può essere di 2 tipologie: ◦ cavo dritto: stessi pinout ai 2 capi del cavo (collegano dispositivi diversi che lavorano a diversi livelli di pila iso osi) ◦ cavo incrociato: coppie 1-2 e 3-6 sono incrociate agli estremi (collegano dispositivi dello stesso tipo) ◦ attualmente le schede di rete hanno autosense e non fa differenza se si usa cavo straight o crossed
  • 3 categorie di doppino: ◦ UTP (unshielded twisted pair), 100 ohm di impedenza, economici, molto sensibili a disturbi elettromagnetici ◦ FTP (foiles twisted pair), impedenza 100 ohm, hanno schermatura in alluminio ◦ STP (shielded twisted pair), impedenza 150 ohm, riduce al minimo rumore dovuto a disturbi elettromagnetici → ha schermatura metallica
  • i doppini sono classificati da cat 1 a cat 7 (gigabit sono da 5e a 7)

Configurazione di un Host su Rete TCP/IP

Configurazione di un Host in una LAN

Affinchè un Host possa essere inserito in una LAN su cui lavora il protocollo TCP/IP è necessario che:

  • host sia connesso a uno switch (via cavo o wifi)
  • host sia configurato correttamente a livello IP con 4 parametri: ◦ Indirizzo IP dell’host ◦ Subnet Mask – permette identificazione della rete di appartenenza ◦ Default GatewayDNS Server – risoluzione dei nomi (da URL a IP) Nelle reti TPC/IP questa configurazione può essere:
  • Manuale – amministratore di rete deve configurare manualmente. La macchina avrà stesso IP finché la configurazione non verrà modificata.
  • Automatica – assegnazione degli indirizzi viene fatta quando l’host tenta di connettersi alla rete dal DHCP (Dynamic Host Configuration Protocol). In questo modo l’IP di una macchina può variare nel tempo.

Assegnazione con DHCP

  • Per ottenere configurazione automatica dell’IP è necessario che nella LAN sia presente un server DHCP, configurato per assegnare all’host richiedente un indirizzo appartenente ad range tra tutti gli indirizzi della rete liberi / disponibili.
  • Nel DHCP server viene mantenuto ed aggiornato un database con tutte le associazioni MAC Address – IP assegnato (identificatore univoco – identificatore logico)
  • L’assegnamento ha una durata temporale limitata: alla scadenza il dispositivo invia nuovamente una richiesta per un indirizzo IP (generalmente gli viene riassegnato lo stesso che aveva prima)
  • ci sono 2 modalità di assegnazione con DHCP: ◦ Allocazione con RESERVATION – il DHCP assegna permanentemente un IP; si può configurare il DHCP in modo che ad alcuni dispositivi (individuati tramite MAC Address) venga assegnato sempre un determinato IP ( riservato). Si usano degli IP fuori dal range dell’allocazione dinamica. ◦ Allocazione DINAMICA – DHCP assegna un IP per periodo limitato (“lease”); quando un host si disconnette deve rilasciare l’IP e renderlo disponibile per nuova allocazione; rilascio può avvenire esplicitamente (DHCP release) o alla scadenza del “lease” (parametro fornito dal DHCP).
  1. se non viene trovata la corrispondenza, il mittente manda ARP Request in broadcast del tipo: “se questo è il tuo IP comunicami il tuo MAC”
  2. ogni host sulla rete fa check e risponde con ARP reply solo in caso affermativo
  3. ARP reply arriva al mittente ad è costituita da coppia di valori, ovvero MAC e IP A seguito di ciò, mittente e destinatario aggiornano le proprie ARP cache e le corrispondenze tra IP ed indirizzo ethernet. ARP si appoggia sul livello Data-Link e il pacchetto arp è incapsulato nella PDU cel data link.

Il Livello di Trasporto

Lo Strato di Trasporto

  • Strato di trasporto si trova a livello 4 della pila TCP/IP, tra livello di rete e livello di applicazione, e serve a mettere in comunicazione i diversi processi software in esecuzione su host remoti instaurando tra loro un collegamento end-to-end.
  • Strato di trasporto permette a protocolli di applicazione di sfruttare i servizi di inoltro / consegna dei pacchetti offerti da livelli inferiori mascherandoli.
  • Comunicazione può avvenire su diversi mezzi (fibra, radio…) ma i protocolli applicativi non lo sanno: affidano tutto a livello di trasporto, che prende in carico la consegna del messaggio destinato ad un altro protocollo applicativo su un host remoto identificato da un IP.
  • Protocollo di livello applicativo che riceve il messaggio si interfaccia con livello di trasporto con funzioni standard dette primitive di trasporto che definiscono le azioni che possono essere richieste al protocollo di livello di trasporto.
  • Connessione logica tra 2 end points indica capacità delle 2 entità di comunicare nonostante non ci sia collegamento fisico che le colleghi direttamente. Per gli end-points è come se ci fosse collegamento fisico diretto, di conseguenza si può parlare anche di connessione virtuale.
  • Connessione implementata attraverso scambio di messaggi di controllo ed utilizzando rete sottostante per instradare pacchetti verso nodi intermedi.
  • Dal POV degli end-points l’unico intermediario ad effettuare il trasporto è il livello di trasporto: ◦ per gli end-points esiste un canale di comunicazione per cui possono dialogare direttamente ed in sicurezza con la certezza che i messaggi arriveranno. ◦ Per gli end-points è impossibile sapere se i messaggi affidati al livello di trasporto subiranno diversi passaggi o verranno divisi dato che alla fine possono interfacciarsi solo con il livello di trasporto.
  • Per capire come funziona lo strato di trasporto: ◦ Servizio : insieme di operazioni primitive che livello mette a disposizione del livello superiore

Entità : entità di rete è elemento o porcesso che effettia conversazione in rete. Entità che effettuano comunicazione con un elemento di pari livello sono peer entitiesProtocollo : insieme di regole che governano formato e significato delle informazioni scambiate tra peer entities

  • Service Access Point (SAP) è interfaccia logica tra entity di livello N-1 e entity di livello N nella pila ISO/OSI → punto di accesso ad un servizio offerto da un livello al livello sovrastante

Multiplazione e Demultiplazione

Un protocollo di livello di trasporto implementa connessione end-to-end con una funzione di multiplazione / demultiplazione delle comunicazioni:

  • Multiplazione : protocollo di livello di trasporto nell’host 1 riceve messaggi da livello di applicazione mediante SAP e li divide in segmenti (PDU del livello di trasporto), numerati ed incapsulati da header di livello di trasporto ed inviati in sequenza al livello di rete con SAP di rete. Multiplazione delle comunicazioni è la capacità di gestire più comunicazioni provenienti da un’applicazione in esecuzione sull’host.
  • Demultiplazione : protocollo di livello di trasporto nell’host 2 riceve sequenza di segmenti da SAP di rete, li riordina e ricompone il messaggio originale per poi passarlo al livello di applicazione con SAP di trasporto. Demultiplazione è capacità di ricostruire le diverse comunicazioni dirette ad applicazioni diverse dalla sequenza di segmenti ricevuti dall’host remoto.

Protocolli di Trasporto nel TCP/IP

Livello di trasporto del TCP/IP mette a disposizione dei processi che comunicano tramite rete 2 protocolli:

  • TCP (Transmission Control Protocol) orientato alla connessione, realizza effettivamente collegamento logico tra peer entities e garantisce consegna dei pacchetti; viene gestito il riordino di questi a destinazione e ne viene controllata l’integrità segnalando eventuali errori al mittente (per ritrasmissione) e viene gestito controllo di flusso in caso di congestione.
  • UDP (User Datagram Protocol) senza connessione, non affidabile: pacchetti sono inviati senza garanzia di ricezione né riordino che dovrà essere gestito dal livello di applicazione. Processi applicativi scelgono tra questi 2 in base a quello più adatto alle loro esigenze (HTTP su TCP e streaming du UDP ad esempio)

Primitive a Livello di Trasporto

Protocolli di livello di trasporto sono implementati negli OS e mettono a disposizione i loro servizi tramite funzioni primitive (funzioni in C / C++) che sono ad esempio SEND DATA, RECEIVE DATA, DISCONNECT, CONNECT, LISTEN (attesa di connessione). Queste funzioni prenderanno parametri in ingresso come indirizzi di mittente / destinatario.

◦ inviare pacchetti ad un socket di destinazione (Ip destinazione:porta destinazione); qui l’OS recapita pacchetti all’app che lavora sulla porta specificata

Implementazione di Comunicazione mediante Socket

  1. Inizializzazione processi client-server
  2. richiesta collegamento del client a server
  3. accettazione richiesta e realizzazione del collegamento tra processi client e server
  4. gestione connessioni multiple da parte del server Server gestisce più comunicazioni sulla stessa porta perché ogni connessione logica è individuata dalla quadrupla (IP client, client port, IP server, server port)
  • numero di porta fa riferimento al tipo di protocollo di livello di trasporto considerato (porta TCP != porta UDP)
  • una PDU (protocol data unit) di lv 4 (TCP o UDP) è costituita da campo di dati (payload) e da un’intestazione; nell’header ci sono come info porta src e dst. PDU di lv 4 sono 32 bit

Servizi che il Livello di Trasporto può offrire

  • Multiplazione e demultiplazione delle comunicazioni
  • gestione della connessione tra due prcessi comunicanti con canale logico
  • rilevazione degli errori
  • trasferimento affidabile (richiesta di ritrasmissione per pacchetti con errori)
  • controllo di flusso e congestione per evitare overflow o errori degli apparati di rete UDP – User Datagram Protocol
  • Concepito per applicazioni per cui non è necessaria completa gestione della connessione
  • implementa 2 sole funzionalità che strato di trasporto può garantire: ◦ multiplazione / demultiplazione ◦ controllo di errore senza ritrasmissione
  • app che usano UDP possono tollerare la perdita di qualche pacchetto ma hanno bisogno di bassi ritardi nei trasferimenti dei dati. Utilizzato da app che realizzano streaming in tempo reale
  • UDP usa protocollo IP per trasportare singoli pacchetti in cui messaggio è diviso ma rispetto a questo permette di distinguere più destinazioni su uno stesso host
  • UDP può supportare collegamenti bidirezionali full-duplex (comunicazione avviene in entrambe le direzioni contemporaneamente)
  • UDP usa datagrammi a cui si aggiunge intestazione di 8 byte.
  • Header UDP composto da: ◦ src port / dst port → per multiplazione e demultiplazione ◦ length : lunghezza in byte di segmento UDP comprendente byte di intestazione ◦ checksum : controllo degli errori su segmento e intestazione calcolato coinvolgendo anche IP per verificare che datagram sia arrivato a corretto IP di destinazione TCP – Transmission Control Protocol
  • Garantisce trasferimento affidabile di pacchetti
  • implementa tutti i servizi che uno strato di trasporto può offrire
  • servizio di trasferimento affidabile se: ◦ tutti i pacchetti arrivano a dst privi di errori ◦ non ci sono pacchetti doppi ◦ pacchetti consegnati nell’ordine in cui sono stati trasmessi / è possibile ricostruire la corretta sequenza
  • TCP divide dati provenienti da protocollo di livello di applicazione in segmenti, ciascuno con header di 20 byte, incapsulato poi in IP datagram
  • segmento TCP composto da: ◦ src / dst portsequence number → numero di sequenza del primo byte contenuto nel segmento; è il numero su cui sincronizzarsi se c’è bit di SYN = 1 ◦ acknolwedgment number → per gestione di conferma del destinatario dei segmenti ricevuti ◦ control bit:ACK: 1 se si deve considerare il campo Acknowledgment number ▪ SYN: 1 per stabilire connessione e sincronizzare numeri di sequenza ▪ FIN: 1 per indicare fine dei dati da trasmettere; usato per terminare la connessione ◦ window → dimensione finestra di ricezione, numero di byte che entità che invia il segmento è disposta a ricevere ◦ checksum → controllo d’errore su intestazione e dati
  • per implementare trasferimento di segmenti affidabile : ◦ numerare segmenti trasmessi ◦ trasmissione di messaggi di riscontro con sequence number ◦ impiego di timer in trasmissione ◦ impiego di finestre in ricezione e trasmissione
  • i campi: sequence number e numero di riscontro dell’intestazione sono usati per trasferimento affidabile

Connessione TCP

  • Caratteristica di TCP è che è un protocollo punto-punto orientato alla connessione tra i due host
  • per i processi in comunicazione sui 2 host la comunicazione avviene come se ci fosse un canale diretto (realtà = communtazione di pacchetto) e la modalità in cui transita il flusso di dati ricevuti è nascosta ad essi
  • realizzazione di questa connessione necessita processo di handshake con il quale entità sugli host si scambiano pacchetti per negoziare parametri della connessione
  • handshake permette di aprire la comunicazione, ma anche di chiuderala tramite opportuno meccanismo di segnalazione
  • procedura usata per instaurare connessione TCP tra 2 host è: three-way handshake:SYN: A invia segmento SYN a B (SYN = 1, SeqNum contiene X che specifica ISN di A) ◦ SYN / ACK : B invia segmento SYN / ACK a A (SYN e ACK = 1, ISN = Y che specifica ISN di B, Acknowlegment = x+1 (ricevuto ISN di A)) ◦ ACK A invia segmento ACK a B con ACK = 1 e Acknowledgment = y+ (conferma ISN di B)
  • IN BREVE: Seq = numero del primo byte nel flusso che sta trasmettendo ACKn contiene SeqNum del prossimo byte che si aspetta di ricevere
  • segmenti utilizzati durante handshake sono solo header (campo Data vuoto), è fase di sincronizzazione non di scambio dati
  • tipicamente processi che usano TCP utilizzano architettura client-server: processo che avvia connessione TCP è client mentre chi accetta la connessione è server.

Chiusura della Connessione TCP

  • Connessione TCP è interazione tra 2 connessioni monodirezionali → per chiudere comunicazione entrambe le parti dovrebbero terminare la loro connessione (possono esistere anche chiuse a metà)
  • chiusura di fa o con handshake a 3 vie (chiusura in contemporanea) o handshake a 4 vie (o doppo handshake a 2 vie): ◦ a 3 vie: uguale a quello per aprire la connessione ma si usa FIN al posto di SYN, quindi i 3 passaggi sono FIN, FIN/ACK, ACK ◦ doppio a 2 vie : disconnessione asincrona, uno invia FIN e attende ACK, l’altro farà altrettanto

il Web e il Protocollo HTTP

WWW – introduzione

  • WorldWide Web , ragnatela estesa in tutto il mondo, è insieme di pagine multimediali collegate tra loro dentro le quali ci si può spostare con diverse modalità
  • WWW funziona secondo schema client-server: ◦ browser fa richiesa di una pagina html di un sito a un server web che ospita il sito ◦ server la invia al browser (html + file correlati) e il browser visualizza la pagina
  • browser è programma client in grado di richiedere pagina html ad un server e fornisce a utente una linea di comando per digitare indirizzi IP. Browser fa poi rendering della pagina con parser interno

Architettura del Web

  • All’interno di Internet ogni risorsa è identificata da un URI (Universal Resource Identifier) → identificativo univoco
  • esempi di URI = indirizzo web, indirizzo di posta elettronica
  • URI è entità che definisce posizioni (URL – Uniform Resource Locator) o nomi (URN – Uniform Resource Name)
  • URL è un particolare URI, URI può identificare oggetti anche non correlati a protocolli Internet
  • un URL è un URI che identifica una risorsa e lascia intendere che una la risorsa specificata è ottenibile da un host di rete con determinato nome
  • URN è ad esempio un ISBN di un libro, che mappa universalmente e univocamente un libro
  • considera come “più importante” l’URL
  • URL comprende tutto il necessario per identificazione e reperimento di risorse in rete: ◦ protocollo utilizzato per trasferimento della risorsa (tipo HTTP) ◦ nome simbolico o IP del serverportapath del file sul server → parte da una cartella predefinita specificata dal server

Dominio Internet

  • Dominio internet è porzione organizzata dello spazio dei nomi globale (gerarchico) utilizzato per identificare risorse in internet gestito da un’autorità definita. (insieme di nomi che permette di identificare in prima istanza un gruppo di host/server in internet gestito da autorità definita)

◦ server HTTP invia al TCP richiesta di chiusura della connessione che avverrà dopo risposta del client-server ◦ connessione TCP si conclude. Messaggio iinviato al client indica che oggetto è file HTML che client estrae. ◦ Passi precedenti ripetuti per ogni oggetto referenziato

  • con le nuove modalità di connessione con HTTP 1.1 il server non chiede la chiusura della connessione TCP se non dopo un timeout in cui connessione è inutilizzata → più veloce perché non deve aprire nuove connessioni per ogni oggetto
  • con HTTP2 si possono avere più connessioni in parallelo (multi-threading) Formato del Messaggio HTTP
  • 2 tipologie di messaggi: ◦ richiestarisposta
  • sono composti da: ◦ Start Line (si chiama Linea di Richiesta o Linea di Stato in base a tipo di messaggio: richiesta o risposta) ◦ Header (intestazione) ◦ Linea VuotaCorpo (informazione che si vuole trasferire, nei messaggi di richiesta di apertura connessione o di test sarà vuoto; può contere immagini, testi …) Struttura del Messaggio di Richiesta
  • Linea di richiesta : ◦ Metodo : tipo di operazione, esempio GET ◦ URL : identifica percorso della risorsa richiesta ◦ identificativo della versione del protocollo HTTP
  • Header : contiene info aggiuntive tipo data, ora, user-agent (software utilizzato dal client) → 50 info diverse. Praticamente sono i metadati
  • tra le info dell’header c’è il campo host che contiene nome di dominio richiesto in modo che possa essere implementato hosting virtuale
  • HOSTING VIRTUALE è la possibilità per uno stesso IP di essere associato a nomi diversi e quindi a server web diversi Per realizzare hosting virtuale non bastano IP e Porta per discriminare server web diversi: nell’header di richiesta quindi si specifica nome e porta dell’host richiesto.
  • Body : corpo del messaggio della richiesta, che da parte del client può essere omesso → verrà usato dal server. Conterrà dati di un form se si usa il metodo POST.

Struttura del Messaggio di Risposta

  • Linea di Stato : formata da: ◦ Identificativo della versione del protocollo HTTPCodice di Stato
  • Header : che tipicamente contiene data e ora, info su server, info su dimensioni e tipologia della risposta
  • Body : corpo del messaggio che contiene pagina HTML vera e propria Definizione dei Metodi Http mette a disposizione del client dei metodi per inviare richieste al server:
  • GET : richiede una risorsa al server
  • HEAD : identico a GET ma non deve restituire corpo del messaggio, si usa per testare accessibilità o per inizializzare una connessione
  • POST : con questo il client può spedire a server info organizzate con serie di coppie nome = valore
  • PUT : serve a inviare file al server: se file esiste già all’URL specificato questo verrà considerato aggiornamento della versione precedente Codici di Stato HTTP:
  • 100 : richiesta sta continuando / è in elaborazione
  • 200 : richiesta andata a buon fine
  • 300 : reindirizzamento
  • 400 : problema con la richiesta da parte del client
  • 500 : errore del server Cookies
  • HTTP è state-less, richieste al server non lasciano alcuno stato: per memorizzare informazioni della sessione è necessario farlo nel browser del “visitatore”
  • parte fondamentale del protocollo HTTP: permettono riconoscimento di utente
  • Cookie è un file memorizzato del computer del client che contiene info su pagine visitate dall’utente; quando utente si ricollega, il file viene mandato al server che ne estrae le infomazioni