Sei sulla pagina 1di 19

Cisco CCNA - Modulo 2 - Capitolo 10

Ancora sul TCP/IP

Di
Francesco Immè

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Operazioni TCP

Gli indirizzi IP permettono il routing dei pacchetti IP tra le reti. Dato che IP non dà
garanzie sulle possibili consegne sarà il transport layer ad essere il
responsabile per un trasporto affidabile ed una regolazione del flusso di dati
da sorgente a destinazione.
Sappiamo già che il controllo di flusso si compie usando delle sliding windows e il
sequencing number assieme ad un processo di sincronizzazione.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


3-way handshake
TCP è un protocollo connection oriented. Prima di trasmettere dei dati i due host
che comunicano compiono un processo di sincronizzazione per stabilire una
connessione. Tale processo di sincronizzazione assicura che ambedue i lati
sono pronti per trasmettere i dati e permettono di determinare l’ISN. Questo
processo prende il nome di 3-way handshake.
1. L’host che inizia la connessine mandando un pacchetto SYN indica il suo ISN
con X, con alcuni bit nell’header settati in modo appropriato per indicare una
richiesta di connessione (campo acknowledgment number).
2. L’altro host riceve il paccherro, registra il valore x, risponde con un ack x+1 e
manda anche il suo ISN y. Il bit SYN ed ACK saranno posti ad 1.
3. L’host che ha dato vita al processo risponderà con un semplice ack di valore
y+1 ed il bit ACK posto ad 1.
E’ importante capire che i numeri di sequenza sono parte dell’inizializzazione della
comunicazione tra 2 device. Essi servono come numeri di riferimento tra i due
device. Gli SN danno agli host un modo per ACK i SYN in modo che chi riceve
sa che si sta rispondendo alla richiesta di connessione giusta.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com
Attacchi Denial of Service
Gli attacchi Denial of Service (DoS) sono progettati per negare il servizio agli host
leggittimi che cercano di stabilire la connessione. Gli attacchi DoS sono metodi
comuni che gli hacker usano per fermare la risposta del sistema. Un tipo di DoS
è il SYN flooding. SYN flooding sfrutta il 3-way handshake e fa in modo che i
device presi di mira inizino a fare ACK all’indirizzo sorgente che così non
completerà l’handshake.
Il pacchetto SYN iniziale include l’IP address di destinazione e di sorgente. L’info
degli indirizzi IP di destinazione e sorgente è usata da chi riceve per mandare
un pacchetto SYN/ACK indietro al device che ha iniziato la connessione.
In un attacco DoS l’hacker inizia la sincronizzazione ma spoofa l’indirizzo IP di
sorgente, così che la risposta arriverà ad un IP inesistente e l’attaccato si porrà
in situazione di attesa di una risposta. La richiesta di attesa è messa in una
coda di connessione o in una area holding della memoria.
Questo waiting state richiede alcune risorse di sistema fino a che il connection
timer termina. Gli hacker riempiranno l’host attaccato con questi falsi SYN
request, utilizzando così tutte le sue risorse per la connessione, così da non
permettere le richieste di connessione lecite.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Attacchi Denial of Service (2)

Per difendersi da questi attacchi


l’amministratore può abbassare il
periodo di connection timeout e
aumentare la dimensione della
connection queue.
Esiste anche del software che può
detettare questo tipo di attacchi e
instaurare una misura di difesa.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Windowing e window size

La quantità di dati che deve essere spedita spesso è maggiore di quanta


non possa essere mandata con un singolo segmento di dati. In tali
circostanze i dati devono essere spezzati in parti più piccole.
TCP è il responsabile per questa segmentazione.
Appena i dati sono segmentati devono essere trasmessi al device di
destinazione; uno dei servizi offerti dal TCP è il flow control, che regola
quanti dati siano mandati durante un dato periodo di trasmissione.
Il processo di flow control è detto windowing.
La dimensione della finestra determina la quantità di dati che possono
essere trasmessi insieme prima di ricevere un ack.
TCP usa le sliding window per determinare la transmission size; essa
permette di negoziare durante la trasmissione la grandezza di finestra.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Finestra semplice e scorrevole

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Sequencing Number

TCP spezza i dati in segmenti, che sono poi trasportati dal mittente al
destinatario seguendo quanto stabilito nel processo di sincronizzazione
e nella negoziazione della dimensione della finestra.
I segmenti dei dati trasmessi devono essere riassemblati quando tutti i dati
sono ricevuti, ed è qui che entrano in gioco i sequence number.
Questi SN agiscono come riferimento così chi riceve saprà se tutti i dati
sono stati ricevuti o se manca un segmento in particolare (alta
efficienza: il mittente può rispedire solo il segmento mancante).
Ciascun segmento TCP è numerato prima della trasmissione: questo è
l’unico metodo per permettere la ritrasmissione ed una corretta
gestione del trasferimento e del riassemblamento.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Positive Ack

L’ACK è uno step comune nel processo di sincronizzazione. Nel segmento TCP il
campo sequence number è seguito dal campo ack number (detto anche campo
code).
Un problema che si ha con il protocollo “unreliable” IP è che non vi è un metodo di
verifica per determinare se i segmenti di dati hanno realmente raggiunto la
destinazione. TCP usa acknowledgement positivi e ritrasmissioni per controllare
il data flow e per confermare la consegna.
PAR (Positive Acknowledgement and Retrasmission) è una tecnica usata da molti
protocolli per dare affidabilità. Col PAR la sorgente manda il pacchetto, fa
partire il timer ed aspetta un ack prima di spedire un altro pacchetto. Se il timer
spira prima che si riceva un ack allora la sorgente ritrasmette il pacchetto e fa
ripartire il timer.
TCP usa expectational ack.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Positive Ack (2)

Windowing è un meccanismo di controllo che richiede che la sorgente


riceva una ack dalla destinazione dopo aver trasmesso una certa
quantità di dati. Con una window size di 3 il device sorgente manda 3
ottetti alla destinazione e deve aspettare dunque per l’ack.
Appena ciò avviene la sorgente può mandare altri ottetti; se per ragioni
varie la destinazione non riceve i 3 ottetti non si riceve un ack.
Dato che la sorgente non vede arrivare l’ack sa che dovrà compire una
nuova trasmissione, ma questa volta ad un rate inferiore.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Differenza tra TCP ed UDP

Lo stack protocollare TCP/IP contiene molti protocolli diversi tra loro,


ciascuno progettato per compiere determinati compiti. IP sappiamo che
offre trasporto connectionless a layer 3; TCP invece offre, al layer 4,
una trasmissione affidabile connection-oriented. UDP invece lavora al
livello 4 ma dà una trasmissione dei pacchetti non garantita e
connectionless.
Sia TCP che UDP usano IP come protocollo sottomesso.
TCP deve essere usato quando le applicazioni hanno bisogno di avere
una garanzia che il pacchetto arrivi intatto, in sequenza e non
duplicato. L’overhead che si genera a causa di questa consegna
“assicurata” alle volte è problematico.
Le applicazioni che non hanno bisogno di queste garanzie usano UDP.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Operazioni dell’UDP
UDP non usa il windowing o gli ack per cui è il livello applicazione che deve fornire
una detezione degli errori.
Il campo Source Port è un campo opzionale usato solo per far tornare info all’host
che spedisce. Quando un destination router riceve un routing update il router
sorgente non richiede nulla per cui nulla deve tornare alla sorgente. Non c’è
scambio di informazioni o dati. Il campo Destination Port specifica l’applicazione
a cui l’UDP deve passare il controllo della trasmissione.
Il campo Lenght specifica il numero di ottetti da cui è composto il segmento UDP.
La checksum è opzionale ma può essere usata per verificare che nella trasmissione
non si è avuto nessun danneggiamento.
Le porte di destinazione servono per identificare, presso l’host ricevente,
l’applicazione di destinazione.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com
Conversazioni multiple tra host

Gli host su cui corre il TCP/IP associano delle porte (a livello transport) con
certe applicazioni. I numeri delle porte sono usate per tracciare
conversazioni che attraversano la rete nello stesso momento. Sia TCP
che UDP usano porte o socket number per passare info ai layer più alti.
I numeri di porta hanno i range assegnati:
• I numeri sotto al 255 sono riservati per applicazioni pubbliche
• I numeri di porte dalla 255-1023 sono assegnate ad applicazioni di
mercato
• I numeri sopra al 1023 sono non regolamentati
Gli end system usano numeri di porta per selezionare le applicazioni
appropriate. Le porte di sorgente sono assegnate dinamicamente
dall’host che origina il traffico.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Porte del client

Ogni volta che un client si connette ad un servizio su un server deve essere


specificata una porta di destinazione ed una di sorgente. Il TCP e l’UDP sono
segmenti che mantengono campi per la porta di destinazione e di sorgente.
Le porte di destinazioni (o porte di servizio) sono definite tramite porte ben note,
mentre le porte di sorgente sono definite dinamicamente.
In generale un client determina la porta di sorgente assegnando a caso un numero
sopra al 1023. Per esempio un client che cerca di comunicare con un web
server usa TCP ed assegna la porta di destinazione (80) e la porta sorgente
(1045).
Quando il pacchetto arriva al server passa sino al transport layer e al servizio HTTP
che opera alla porta 80. L’HTTP server risponde alle richieste del client con un
segmento che usa la porta 80 come sorgente e la 1045 come destinazione. In
tale modo i client ed i server usano le porte per distinguere a quale processo il
segmento è associato.
Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com
Numerazione delle porte

I numeri di porta sono rappresentati da 2 byte nell’header del segmento UDP o


TCP. Tale valore dà numeri dallo 0 al 65535. Tali numeri di porta sono divisi in
3 categorie differenti: porte ben note, porte registrate e dynamic o private port.
Le prime 1023 porte sono ben note (usate per servizi di rete ben noti). Le porte
registrate vanno dal 1024 al 49151; quelle restanti sono porte dinamiche o
private.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Il concetto di socket

I numeri delle porte sono usate per tracciare sessioni multiple che possono
aversi tra host.
I numeri di porta di destinazione e sorgente combinati con l’indirizzo di rete
formano il socket.
Il socket, uno in ogni host, forma una connessione unica.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com


Paragone tra indirizzi MAC, IP e
numeri di porta
Questi 3 metodi di indirizzamento spesso creano confusione, cosache si può
evitare se gli indirizzi sono spiegati riferendosi al modello OSI.
I numeri di porta sono localizzati al livello di trasporto ed il livello network gli offre
servizi.
Il layer network assegna un indirizzo logico ed è quindi servita dal layer data link
che assegna degli indirizzi fisici.
Una buona analogia può essere fatta con una semplice lettera. L’indirizzo di una
lettera consiste di un nome, una strada, una città ed una nazione,che possono
essere paragonati alla porta, al MAC address e l’IP address. Il nome sulla busta
equivale al numero di porta, il MAC equivale agli indirizzi di strada e la città e lo
stato sono l’indirizzo IP.
Più lettere possono essere spedite alla stessa strada, città e stato, ma contengono
nomi diversi.

Copyright 2002 Cisco Press: CCNA Instructor’s Manual www.ciscopress.com

Potrebbero piacerti anche