• Non ci sono risultati.

TCP/IP Cenni Storici TCP CorsodiRetidiCalcolatori

N/A
N/A
Protected

Academic year: 2021

Condividi "TCP/IP Cenni Storici TCP CorsodiRetidiCalcolatori"

Copied!
9
0
0

Testo completo

(1)

Corso di Reti di Calcolatori

Prof. Orazio Mirabella

HUB Eth. 10Base-T SWITCH Ethernet

HUB Eth. 10Base-T

HUB Eth. 10Base-T switch uplink

global server

HUB Eth. 10Base-T SWITCH Ethernet

HUB Eth. 10Base-T

HUB Eth. 10Base-T HUB Eth. 10Base-T

SWITCH Ethernet

HUB Eth. 10Base-T

HUB Eth. 10Base-T F D D I backbone

porta Fddi

TCP

TCP/IP Cenni Storici

Internet nasce come esperimento militare nel 1969 con il nome di ARPANET.

Il protocollo TCP/IP nasce nel 1980, insieme ad UNIX, e viene utilizzato su ARPANET.

Nel 1987 la rete ARPANET fu affiancata da una nuova struttura che andò a formare la NFSNET ( National Foundation of Science).

In seguito al posto di ARPANET si sostituisce un’altra NFSNET, ed oggi le due reti formano il nucleo di Internet.

Nel 1990 Internet contava 1.000 reti locali connesse, oggi

siamo quasi al limite teorico di 1.000.000 di reti.

(2)

Architettura TCP/IP

n TCP - Transmission Control Protocol

n UDP - User Datagram Protocol

n IP - Internet Protocol

n ICMP - Internet Control Message Protocol

n ARP - Address Resolution Protocol

n RARP - Reverse Address Resolution Protocol

Applicazione Presentazione

Sessione Trasporto

Rete Dati Fisico

Applicazione

Trasporto Internet Interfaccia rete

Hardware

Protocolli e servizi applicativi

TCP IP

UDP ICMP ARP RARP Routing

Driver di rete Scheda di rete (NIC)

OSI TCP/IP Componenti di TCP/IP

TCP (Trasmission Control Protocol)

Il TCP, o protocollo di controllo della trasmissione, è un protocollo orientato alla connessione.

Esso è stato ideato in modo da permettere una comunicazione affidabile tra due soggetti (end-to-end) su una internet di per se inaffidabile, e ne costituisce il livello di trasporto (Transport Layer).

Ogni macchina che intenda supportare il TCP deve possedere un apposito software che svolga le mansioni di entità di trasporto TCP, questo può essere un semplice processo utente o può fare parte del

(3)

Preambolo del segmento TCP

porta sorgente (Source port) e porta destinazione (Destination port), ognuno di 16 bit, che identificano gli estremi locali della connessione. Ogni host deve decidere come allocare le porte successive alla 256. L’ins ieme di porta e indirizzo IP dell’host forma l’identificativo unico a 48 bit di un socket mentre i numeri di socket sorgente e destinazione identificano univocamente la connessione.

E’ composto da una parte fissa di 20 Bytes più eventuali opzioni.

Il campo dati è al max di 65535 bytes compresi gli header TCP ed IP.

Preambolo del segmento TCP

I campi numero di sequenza (Sequence number) e numero di ack (Acknowledgement number), entrambi di 32 bit, servono a ricostruire correttamente il flusso di dati originale evitando di stravolgere l’ordine dei segmenti o di perderne qualcuno.

E’ importante notare che il numero di ack indica il prossimo byte atteso e non l’ultimo byte correttamente spedito.

(4)

Preambolo del segmento TCP

üTCP header length indica il numero di parole da 32 bit contenute nel preambolo TCP.

üURG ha valore 1 se il campo Urgent pointer è effettivamente valido.

Indica uno scostamento in byte dal numero di sequenza attuale, indispensabile per individuare i dati urgenti.

üACK è posto a 1 quando il campo numero di ack è valido.

üPSH se ha valore 1 indica all’entità TCP di non memorizzare dati nel buffer di invio, ma di inviarli immediatamente.

üRST è posto ad 1 per indicare un qualche problema a causa del guasto, è divenuta instabile

üSYN è usato per la creazione di una connessione.

üFIN serve a segnalare che il mittente non ha altri dati da inviare.

üFinestra (Window) che indica quanti byte possono essere spediti a partire dal byte confermato.

Checksum verifica il preambolo, i dati e uno pseudopreambolo.

Durante la sua esecuzione l’algoritmo di checksum pone il campo controllo a 0, e aggiunge uno 0 al campo dati se la sua lunghezza è un numero dispari. Poi somma tutte le parole di 16 bit in complemento a 1 e prende il complemento a 1 della somma.

Di conseguenza il destinatario deve ottenere 0 come risultato

Preambolo del segmento TCP

(5)

Lopseudopreambolocontiene l’indirizzo IP a 32 bitdelle macchine sorgente e destinazione, il numero di protocollo (per il TCP è 6) e il numero di byte del segmento TCP (incluso il preambolo). In questo modo è possibile individuare i pacchetti consegnati all’indirizzo sbagliato (anche se tale controllo dovrebbe essere effettuato solo dal livello di rete, ovvero l’IP).

Pseudopreambolo del segmento TCP

Politica di trasmissione di TCP

Mittente Ricevente

Buffer del Ricevente

Vuoto

4K

Pieno

6K

4K SEQ=0

ACK=4096 WIN=4096

4K SEQ=4096

ACK=8192 WIN=0

ACK=8192 WIN=2048 L’applicazione

scrive 4K

L’applicazione scrive 5K ma ne vengono spediti solo 4

Il Mittente invia 1K (ma può inviare fino a 2K)

L’applicazione legge 2K

0K 8k

Poiché il TCP gestisce il flusso di dati tramite l’utilizzo di buffer, la gestione delle finestre dipende dallo spazio libero nel buffer.

Lo spazio viene liberato solo dopo che il buffer è stato svuotato dall’applicazione (non basta inviare l’ack)

Quando la finestra è nulla il mittente può:

•Inviaredati urgentiper completare qualche

applicazione (libera spazio nei buffer)

Spedisce segmenti di 1 byte, in modo che il ricevente possa annunciare il prossimo byte atteso e la dimensione della finestra, permettendo così al mittente di tenersi aggiornato sull’evolversi della

(6)

Controllo di congestione di TCP

Possiamo avere due tipi di congestione:

nquella dovuta a scarsa capacità del ricevente (buffer di arrivo insufficiente che tende a riempirsi troppo rapidamente e troppo spesso)

nquella dovuta a scarsa capacità della rete (mezzo incapace di veicolare il flusso di dati richiesto e che tende a "perdere" pacchetti).

La soluzione scelta da Internet affronta i due tipi di congestione separatamente, utilizzando due finestre, una, relativa al ricevente, detta Finestra del ricevente e l’altra, relativa al canale trasmissivo, dettaFinestra di congestione.

nEntrambe limitano il numero di byte che il mittente è abilitato ad inviare, infatti la finestra effettiva è pari al minimo tra le due finestre.

nquando viene creata una connessione, la finestra di congestione è uguale alla dimensione del massimo segmento che può essere inviato sulla connessione.

nse questo è consegnato prima che scada il timer, il valore della finestra di congestione viene raddoppiatae vengono spediti due segmenti.

nse arrivano a destinazione entro il timeout la dimensione della finestra di congestione è ancora raddoppiatae vengono inviati 4 segmenti.

nSi continua a raddoppiare la finestra di congestione e ad inviare un numero sempre maggiore di segmenti, sino a quando non si raggiunge un valore per cui almeno un segmento non raggiunge la destinazione e scatta il timeout

Algoritmo a partenza lenta: Slow Start

(7)

Controllo di congestione di Internet

L’algoritmo Slow Start è stato modificato per internet.

E’ introdotta una soglia(inizialmente fissata a 64Kbytes) raggiunta la quale la finestra cresce linearmente.

In caso di time-out la soglia è dimezzata e la finestra è posta ad 1 .

Nella figura la soglia inizia da 32KB (si è già verificato un time-out) e la dimensione del segmento è di 1KB.

Gestione dei timer in TCP

Timer di ritrasmissione: sono attivati ad ogni trasmissione di un segmento TCP.

Problema:

distribuzione dei tempi di ritardo degli ack.

Soluzione: Algoritmo di Jacobson.

1.Calcolo del Round Trip Time RTT = α. RTT + (1 -α) . M

(αè 7/8, M è il valore misurato del RTT) 2. Timeout = RTT + 4 . D

dove D è la deviazione media data da:

D = α’ . D + (1 -α’) . | RTT – M |

Timer di persistenza:evita un’attesa indefinita pa parte delSENDERin caso di perdita dell’ACK.

Keepalive timer: verifica, in caso di lunghe inattività, se l’altro estremo è

Densità di probabilità dei tempi di arrivo degli ack per il DLL (curva a) e per il TCP (curva b).

0 1 0 2 0 3 0 4 0 5 0

Probabilità

Tempo di andata e ritorno ( ms) 0

0,1 0,2 0,3

(a)

(b)

(8)

Gestione delle connessioni TCP

Il clientattiva una connessione mediante una primitiva CONNECTspecificando l’indirizzo IP e la porta a cui vuole connettersi, la dimensione accettabile massima dei segmenti TCP e opzionalmente alcuni dati utente (password, etc).

Il serverattende passivamente una connessione in arrivo eseguendo le primitive LISTENe ACCEPT, specificando o meno una sorgente particolare.

La primitiva CONNECT produce l’invio di un segmento TCP con i flagSYN=1e ACK=0e l’attesa di una risposta.

All’entità TCP di destinazione si verifica l’esistenza di un processo che ha eseguito LISTEN sulla porta specificata nel campo porta di destinazione.

Se tale processo non esiste, viene spedito un segmento con il flagRST=1per rifiutare la connessione. Se esiste, gli si consegna il pacchetto TCP appena arrivato.

Nel caso in cui due host tentino contemporaneamente di creare una connessione tra due stessi socket (a) e (b), essendo la connessione individuata univocamente dalla coppia (a, b), verrà

Gestione delle connessioni TCP

client server

SYN(SEQ=X, ACK=Y+1) SYN(SEQ=Y, ACK=X+1) SYN(SEQ=X)

SYN(SEQ=Y)

TEMPO

client server

SYN(SEQ=X+1, ACK=Y+1) SYN(SEQ=Y, ACK=X+1)

SYN(SEQ=X)

TEMPO

(9)

UDP (User Datagram Protocol)

n L’UDP consente di inviare pacchetti con il minimo overhead, senza garanzia di consegna.

n Il protocollo non invia messaggi di accettazione e non è in grado di rilevare perdita di dati, trasmissione fuori sequenza o duplicazioni pacchetti.

n Il protocollo UDP controlla l’errore solo attraverso il Checksum.

Porta sorgente Porta destinazione

Lunghezza Checksum

DATI

Ottetto 0 Ottetto 4 Ottetto 8

32 bit

Riferimenti

Documenti correlati

• Per scoprire a quale router first-hop deve essere inoltrato il messaggio viene confrontato l’indirizzo di destinazione con gli indirizzi di rete contenuti nella tabella di

Il metodo intranet utilizza al meglio la dimensione massima della rete cui deve spedire il pacchetto, ma perde il tempo relativo alla ricostruzione dell’intero pacchetto, che

I servizi di questo livello sono completamente legati alle applicazioni:.. • Quali

• I livelli data link e fisico del modello OSI sono uniti in un unico “livello” network access, che non è un vero livello (secondo la definizione ISO-OSI) perché non ha una

Superata la fase iniziale di revisione, la bozza viene distribuita negli ambienti Internet per un periodo di ulteriore analisi e revisione e viene quindi assegnato un numero

2.  Il Browser invoca il resolver per conoscere l’IP dell’URL cercato, 3.  Il Browser attiva una connessione TCP sulla porta 80 del server, 4.  Il Browser chiede al server

Nel classless routing (notazione CIDR) la Variable Length Subnet Mask (VLSM) esprime il fatto che una rete può essere configurata con differenti netmask : ciò rende più flessibile

In this study we sought to examine the time course of BBB permeability changes measured with CTP in pa- tients from the acute phase to 3 months post stroke to determine whether