Che materia stai cercando?

Riassunto Fondamenti di Telematica

Appunti di Fondamenti di telematica basati su appunti personali del publisher presi alle lezioni del prof. Chiti dell’università degli Studi di Firenze - Unifi, facoltà di Ingegneria, Corso di laurea in ingegneria informatica. Scarica il file in formato PDF!

Esame di Fondamenti di telematica docente Prof. F. Chiti

Anteprima

ESTRATTO DOCUMENTO

per gestirli e consentire la conversione da nomi a indirizzi e viceversa; per cui è essenzialmente

costituito da:

- uno schema di assegnazione dei nomi gerarchico e basato su domini.

- un database contenente i nomi e le corrispondenze con gli indirizzi IP.

- un protocollo per la distribuzione delle informazioni sui nomi.

spazio dei nomi

Esso prevede, dunque uno che permette di identificare in modo univoco un host,

dato che, quest’ultimo, prevede: indirizzo MAC (indirizzo prefissato della scheda di rete), indirizzo

di rete (indirizzo IP assegnato dal gestore), indirizzo di trasporto (coppia [indirizzo IP , porta]) ed

indirizzo alfanumerico (nome mappato in un Name-Server: medialab.det.unifi.it). Tale spazio

prevede una struttura gerarchica: i nomi hanno una struttura ad albero con la radice in cima e un

numero di livelli variabile; ogni nodo dell’albero (individuato da un’etichetta; quella della radice è

vuota) definisce un livello gerarchico ed ha un nome di dominio, ovvero una sequenza di etichette

separati da punti. In particolare, il dominio è un sottoalbero nello spazio dei nomi di dominio che

viene identificato dal nome di dominio del nodo in cima al sottoalbero e può essere suddiviso in

ulteriori domini, detti sottodomini.

Gli indirizzi alfanumerici (che non indicano in assoluto la locazione geografica di un host) vengono

name server:

convertiti dai Domain Name Servers in un indirizzo IP grazie al un programma che

gestisce la conversione da nome di dominio a indirizzo IP di una zona (ovvero la regione di cui è

responsabile un name server), tramite una gerarchia:

Root Name Servers:

- contattati dai local name server che non possono risolvere quel nome,

contatta, a sua volta gli authoritative name server se quella traduzione non è nota, la

recupera ed infine la invia al local name server (abbiamo dozzine di root name servers in

tutto il mondo).

Server Top-Level Domain:

- si occupano dei domini .com, .org, .edu

Authoritative Name Server:

- per un host, archivia l'indirizzo IP di quello stesso host ed è

capace di risolvere la traduzione name/address per quell'host name; in particolare, ogni

organizzazione dotata di host Internet pubblicamente accessibili, deve fornire i record DNS

di pubblico dominio che mappano i nomi di tali host in indirizzi IP (tali record possono

essere mantenuti in un proprio DNS o tramite un gestore di servizi).

Local Name Servers:

- non appartenenti strettamente alla gerarchia dei server, ogni ISP

(università, società , ecc..) ha il suo (default) name server locale: le query DNS vengono

prima rivolte ad esso e poi, operando da proxy, esso le inoltra nella gerarchia di server DNS

vera e propria.

Una volta che un name server ha appreso una associazione, la mette nella cache (i record nella

TTL:

cache vengono cancellati dopo un certo tempo di vita); quindi il DNS non è altro che un

Resource Records

database distribuito di (RR): formato RR (name, value, type,ttl).

I messaggi di query e reply hanno entrambi lo stesso formato di messaggio:

Identificativo

- (16 bit): identificativo per una query (la reply alla query usa lo stesso

identificativo).

Flags:

- 0 per le query, 1 per le reply.

Domande:

- campi per il nome richiesto e il tipo di domanda.

Risposte:

- RR nella risposta alla domanda.

Competenza:

- RR per i server di competenza (authoritative name server).

Informazioni aggiuntive

-

Infine dobbiamo anche specificare che la mappatura indirizzi alfanumerici - indirizzi IP è solo una

delle funzioni del DNS e che non tutti i DNS offrono gli stessi servizi, in quanto alcuni di essi

possono portare ad un indebolimento della sicurezza, ovvero a facilitare l’attacco da parte di pirati

informatici. LO STRATO DI TRASPORTO

Lo strato di trasporto realizza una connessione logica fra processi residenti in host system diversi,

offre servizi allo strato di applicazione ed utilizza i servizi dello strato di rete. Abbiamo due

protocolli di trasporto:

TCP:

- consegna affidabile, segmentazione e riunificazione degli stream, controllo del flusso,

controllo di congestione e setup della connessione (handshaking).

UDP:

- Senza connessione e non affidabile (consegne senza ordine).

I servizi che tale livello offre sono: multiplexing/demultiplexing e controllo degli errori (sia header,

multiplexing

che dati). Il si ha nell’host mittente e prevede il raccoglimento dei dati da varie

socket, incapsulandoli con l’intestazione (che sarà poi usata per il demultiplexing); il

demultiplexing si ha nell’host ricevente e prevede la consegna dei segmenti ricevuti alla socket

appropriata: esso è basato sulla coppia Indirizzo IP/Porta, dove la prima parte della coppia

individua la via di comunicazione, la seconda il processo, fonte o destinazione dei dati. In

particolare la “porta” è un numero (unsigned int a 16 bit [0-65535]) che viene assegnato a un

punto di demultiplexing dei protocolli TCP o UDP; l'indirizzo IP è un numero di 32 bit presente

nello stack TCP/IP. Dunque ogni comunicazione di trasporto (TCP o UDP) è identificata in maniera

univoca grazie alle coppie numero IP/porta degli host ed alcuni servizi utilizzano normalmente un

ben determinato numero di porta (Well Known Ports [0-1023]) ed è il sistema operativo che

assegna dinamicamente le porte ai processi che ne fanno richiesta: se il processo non ha

particolari privilegi, la porta viene scelta fra quelle disponibili con numero maggiore di 1023.

Nell’UDP il demultiplexing è senza connessione: lo strato di trasporto dell'host ricevente consegna

il segmento UDP alla socket identificata da [IP, porta destinazione] ed i datagrammi con IP e/o

porta mittente differenti ma stessi IP e porta destinatari vengono consegnati alla stessa socket.

Nel TCP, invece, il demultiplexing è orientato alla connessione: la socket TCP è identificata da 4

parametri:

- Indirizzo IP di origine

- Numero di porta di origine

- Indirizzo IP di destinazione

- Numero di porta di destinazione

e l'host ricevente usa questi 4 parametri per inviare il segmento alla socket appropriata.

TRASMISSION CONTROL PROTOCOL (TCP)

TCP

Il protocollo è orientato alla connessione: i processi effettuano un handshake prima dello

scambio dei dati, tramite l’invio di informazioni preliminari per preparare lo scambio degli stessi

(orientato perché lo stato della connessione risiede sui punti terminali, non sugli elementi

intermedi della rete come i router). Usa un trasferimento bufferizzato: è libero di suddividere lo

STREAM in segmenti (pacchetti) indipendenti dal programma applicativo che li ha generati, ma,

BUFFER

per poter fare questo, è necessario disporre di un dove immagazzinare la sequenza di

byte; non appena i dati sono sufficienti per riempire un DATAGRAMMA ragionevolmente grande,

questo viene trasmesso attraverso la rete. Questa tecnica di bufferizzazione consente una

riduzione del traffico sulla rete "ottimizzando" in qualche modo il numero di segmenti da

full-duplex

trasmettere tramite una connessione che è (entrambe le direzioni, che sono slegate).

- Lo pseudo header contiene IP sorgente e destinazione e non viene trasmesso (queste

informazioni vengono poi inserite effettivamente e trasmesse dal livello sottostante).

Porta

- (16 bit): numeri di porta della comunicazione.

Numero di sequenza

- (32bit): è il numero di sequenza nello stream del primo byte di dati di

questo segmento (tranne quando SYN è presente). Se SYN è presente il numero di

sequenza è ISN (initial sequence number) e il primo byte di dati è ISN+1.

Numero di riscontro

- (32bit): se il bit ACK è settato, questo campo contiene il valore del

prossimo numero di sequenza che il mittente del segmento si aspetta di ricevere. Una volta

che la connessione è stabilita è sempre inviato.

Hlen

- (4bit): lunghezza dell'header TCP espressa in parole da 32 bit.

Bit codice:

- sono 6 flag e servono per (da sinistra a destra):

URG: Il campo Puntatore Urgente (contiene dati significativi).

o ACK: Il campo Numero di Riscontro (contiene dati significativi).

o PSH: Funzione Push.

o RST: Reset della connessione.

o SYN: Sincronizza il Numero di Sequenza.

o FIN: Non ci sono altri dati provenienti dal mittente.

o

Finestra di ricezione

- (16bit): indica il numero di byte di dati a partire da quello indicato nel

campo Numero di Riscontro che il mittente di questo segmento è in grado di accettare.

Checksum

- (16 bit): checksum dell’intero pacchetto (compreso lo pseudo header); serve per

il rilevamento degli errori.

Puntatore Urgente

- (16 bit): questo campo è un offset positivo a partire dal Numero di

Sequenza del segmento corrente. E' interpretato solo se il bit URG è uguale ad 1 e punta al

primo byte di dati non urgenti a partire dal Numero di Sequenza, consentendo di far

passare i dati urgenti in testa alla coda di ricezione (ovviamente nel segmento contenente

dati urgenti deve essere presente almeno un byte di dati).

Opzioni

- (facoltativo, lunghezza variabile): le opzioni sono sempre multipli di 8 bit e il loro

valore è incluso nel checksum. Dopo le eventuali opzioni sono necessari uno o più byte

posti a zero per raggiungere la lunghezza multipla di 32 bit.

La gestione della connessione avviene in tre fasi:

Handshake:

- è a tre vie: all'arrivo del primo segmento il server inizializza due buffer

(memorie di scambio) e le variabili, necessari per il controllo del flusso e della congestione;

all'arrivo del riscontro del primo segmento il client alloca due buffer e le variabili necessari

per il controllo del flusso e della congestione; infine, alla ricezione del terzo segmento, la

connessione è instaurata.

Trasferimento dati:

- si crea un servizio di trasferimento dati affidabile sul servizio

inaffidabile di IP, sfruttando sia il meccanismo già visto delle pipeline, sia il meccanismo dei

timer di ritrasmissione: si ritrasmettono i dati quando si ritiene che i segmenti o gli ACK

timeout

siano stati persi o alterati; tali timer sono basati sul il cui calcolo è abbastanza

complesso, ma fondamentale per il funzionamento del TCP: il timeout deve essere

maggiore di RTT (Round Trip Time: tempo trascorso da quando si invia un segmento a

quando se ne riceve un riscontro) e viene calcolato analizzando gli RTT dei segmenti non

Estimated RTT = (1 – α) * EstimatedRTT + α * Sample RTT

ritrasmessi:

dove si considera come EstimatedRTT, la combinazione dei precedenti valori di

EstimatedRTT con il nuovo valore SampleRTT e dove il valore di α viene posto a 1/8 in

modo da rendere via via meno importanti gli RTT dei pacchetti più vecchi.

Oltre al valore RTT stimato è necessaria anche una stima della variabilità di RTT data dalla

= (1−β) + β −


PAGINE

34

PESO

3.24 MB

PUBBLICATO

5 mesi fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
Università: Firenze - Unifi
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher tommasogiannoni di informazioni apprese con la frequenza delle lezioni di Fondamenti di telematica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Firenze - Unifi o del prof Chiti Francesco.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in ingegneria informatica

Analisi I – prova d'esame
Esercitazione
Fondamenti di Informatica I – Linguaggio C
Dispensa
Fondamenti di Informatica I – Manuale Linguaggio C
Dispensa
Appunti Analisi 1
Appunto