Misurare il comportamento di IP and TCP su un nodo di

Misurare il comportamento di
IP and TCP su un nodo di
accesso
Marco Mellia
Motivazioni
Siamo interessati a:
Misurare il traffico in Internet
n
n
A livello IP
A livello TCP
Ricostruire misure a livello di flusso TCP
n
n
n
Il software: TStat
Il software: TStat
Diversi tool di cattura e analisi di tracce dati
sono presenti. I più famosi/usati sono basati
su libpcap
Sono free, e usano comune hardware da PC
Nessuno produce analisi statistiche dei dati
Nessuno è in grado di lavorare on -line
Nessuno dispone di interfacce utente semplici
Tstat cerca di fare tutto ciò
Schema di misura
Si distinguono
n
n
client e server
pacchetti/flussi entranti
and uscenti
Lunghezze flussi
Dimensioni finestre
Sequenze di perdita
TStat costruisce istogrammi: ogni 15 minuti le
statistiche sono salvate, per un totale di più di 80
istogrammi
Sono disponibili una serie di tool di post-elaborazione
che permettono di ricavare istogrammi cumulativi e
fare analisi tempo-varianti
Una interfaccia web permette la successiva
visualizzazione dei dati raccolti in modo intuitivo e
semplice
Tstat design
Tstat analizza sia il
traffico entrante, sia
quello uscente, per
poter ricostruire lo
stato di connessioni
TCP
L’analizzatore deve
essere posizionato
vicino ad un router
di accesso
Analysis module
I/O module
Live (pcap, dag)
File (pcap, dag, ns, …)
Garbage collector
Flow database
Stat dumper
Internal Stat
Web Interface
arrays
variables
php support
File Database
Perl modules
Histograms
TCP flow log
Plot_time.pl
Plot_cum.pl
1
Tstat design: modulo di analisi
Tstat design: file database
Ogni ∆T statistiche internel
sono salvate su file
Semplice formato
colonnare
n
n
Alberi di files /dirs
memorizzano gli istogrammi
Un file di log per tutte le
connessioni TCP analizzate
w log_complete
w log_nocomplete
File Database
Stat dumper
Histograms
TCP flow log
/home17/TSTAT_DATA/tracce_elaborate/
|-- Polito_Apr_2000_pre155Mbps
| |-- 02_10_12_Apr_2000.dump.gz.out
| | |-- 000
| | | |-- addresses.gz
| | | |-- dupb_a2b.gz
| | | |-- ...
| | |-- 001
| | | |-- addresses.gz
| | ...
| | |-- 003
| | | |-- addresses.gz
| | | |-- ...
| |-- 03_10_12_Apr_2000.dump.gz.out
| | |-- 000
| | | |-- addresses.gz
...
FOR MORE INFO...
http://tstat.tlc.polito.it
File Database
Esempio di output
Descrizione degli istogrammi
[mellia@verza mellia]$ head –n 18
Polito_Nov_2002/07_19_11_No
v_2002.dump.gz.out/000/protoc
ol_ent
-1.0 0
0.0 0
1.0 480
2.0 3
3.0 0
4.0 0
5.0 0
6.0 263809
7.0 0
8.0 0
…
17.0 9670
Histograms
TCP flow log
Descrizione del Log_complete
#Col n# Short desc
# 1 # Client IP addr #
# 2 # Client TCP port #
# 3 # packets
#
# 4 # RST sent
#
.
.
.
# 43 # Server IP addr #
# 44 # Server TCP port #
# 45 # packets
#
# 46 # RST sent
#
.
.
.
Tstat: pagina Web
php support
Una interfaccia web permettedi
n
n
n
Selezionare la misura desiderata
Post-processare i dati selezionati
Visualizzare dei grafici
Alcuni esempi
Http://tstat.tlc.polito.it
FOR MORE INFO...
Web interface
Web Interface
FOR MORE INFO...
http://tstat.tlc.polito.it
http://tstat.tlc.polito.it
Web interface
2
Esempio di analisi
Analisi a livello IP
Sono state collezionate diverse tracce sul
nodo di accesso del Politecnico di Torino
Presentiamo parte dei risultati ottenuti con
TStat
Date
GARR-USA
link
Flows
[106 ]
Pkts
[106 ]
Protocol share [%]
Other UDP
TCP
June 2000
46Mbps
4.48
242.7
0.75
5.96
93.29
Jan. 2001
622Mbps
7.063 401.8
0.59
4.31
95.10
IP: Protocollo superiore
4
Version
8
HLEN
16
Service Type
Identification
Time To Live
19
n
n
n
n
Protocollo di livello superiore
Distribuzione indirizzi IP
Distribuzione lunghezza pacchetti
Distribuzione Time to Live
Risultati già noti
Più alcune interessanti
osservazioni
IP: Protocollo superiore
24
31
100
TCP
UDP
Other
Total Length
Flags
Protocol
Protocol
Fragment Offset
10
Header Checksum
%
0
Misure basate su osservazione
dell’intestazione pacchetti IP
Source IP Address
Destination IP Address
1
Options
PAD
0.1
Mon 01/29 Tue 01/30 Wed 01/31 Thu 02/01 Fri 02/02 Sat 02/03 Sun 02/04
00:00
03:46
07:33
11:20
15:06
18:53
22:40
time
Selezioniamo misure in “ora di punta”
IP: lunghezza pacchetti
0
Version
4
8
HLEN
16
24
60
31
Total Length
Length
Service Type
Identification
19
IP: lunghezza pacchetti
Flags
In
Out
50
Fragment Offset
40
Protocol
Header Checksum
%
Time To Live
Source IP Address
Destination IP Address
Options
30
20
PAD
10
0
0
200
400
600
800
1000
1200
1400
packet len [bytes]
3
IP: Time to Live
4
Version
8
HLEN
16
Service Type
Identification
Time
Time To
To Live
Live
19
24
35
31
Flags
Protocol
In
Out
30
Total Length
Fragment Offset
5
4
25
3
Header Checksum
20
2
%
0
IP: Time to Live
Source IP Address
1
15
0
Destination IP Address
98 104 110 116 122 128
10
Options
PAD
5
0
Analisi a livello TCP
n
64
96
128
TTL
160
192
224
256
288
Destination port
Source port
Sequence Number
Opzioni: SACK, MSS, TS, WS…
Ricostruzione dello stato dei flussi
n
32
Analisi a livello TCP
Osserviamo l’intestazione dei segmenti
TCP
n
0
Acknowledgment Number
Lunghezza flussi (bytes, segmenti, impatto
intestazione…)
Ritrasmissioni, fuori sequenze
HLEN Resv.
Flags
Checksum
RWND
Urgent pointer
Options
TCP: opzioni
option
succ. client server
SACK
5.0
WinScale 10.9
TS
Analisi flussi TCP
3.1
SACK
11.6
WinScale 5.1
TS
4.5
Jun 2000
29.5
0.1
19.2
1.3
unset
3.1
0.1
Jan 2001
96.9
32.9
10.9
4.5
66.7
66.7
95.5
0.3
1.2
0.0
Un flusso è identificato da
70.4
79.5
n
Primo segmento SYN
Un flusso finisce
n
MSS
Client %
Server %
1460 90.9 1460 80.7
536
6.0
0-10
7.6
1450
0
1.8
510
3.6
0.4
1380
3.0
n
n
Correttamente con sequenza FIN+ACK
Improvvisamente per segmento RST
O viene dichiarato chiuso dopo 30sec di
inattività
4
Flussi TCP – lunghezza [ bytes]
14
Flussi TCP – lung. per servizio
10
In
Out
In
Service
Port % Flow % segments % Bytes
HTTP
80 81.48
62.78
61.27
Mail
25
2.98
2.51
2.04
HTTPS 443 1.66
0.87
0.52
0.93
0.42
Out
12
1
100
10
10
0.1
1
8
%
0.1
0.01
0.01
6
0.001
POP
0.001
4
0.0001
50
500
5000 50000
2
0.0001
0
0
2000
4000
6000
8000
flow length [bytes]
10000
1e-05
100000
1e+06
1e+07
flow length [bytes]
TCP: Analisi per semiflussi
110 1.26
FTP ctrl 21
0.54
0.54
0.50
FTP data 20
0.51
6.04
9.46
Asimmetria [byte]
5
TCP offre un servizio bi-direzionale
Ma le applicazioni generano dati bidirezionali?
ξ=
Client mandano
più dati
Server mandano
più dati
4.5
4
3.5
%
3
Data (C → S )
Data (C → S ) + Data (S → C )
2.5
2
1.5
1
Definiamo ξ come parametro di
asimmetria
0.5
0
0
0.1
0.2
0.3
0.4
0.5
ξ
Asimmetria [segmenti]
30
25
30
25
20
15
10
5
0
0.45 0.475
%
20
15
10
5
0
0
0.2
Service
0.6
0.8
0.9
1
Data(C →S)
Data(C→ S) +Data(S →C)
0.8
Average
Client to server
pkts
Byte
0.5 0.525 0.55
0.4
0.7
Asimmetria per servizio
Client mandano
più dati
Server mandano
più dati
0.6
ξ=
Server to client
pkts
Byte
HTTP
15.22
1189.95
19.55
Mail
21.19
15034.38
16.76
15998.45
624.26
HTTPS
11.47
936.71
12.33
6255.79
7489.01
POP
14.87
91.05
18.47
FTP ctrl
23.72
11931.13
21.86
9254.27
FTP data
313.99
343921.3
223.45
82873.22
1
ξ
5
TCP: Flight size
TCP: Flight size
Acknowledgment Number
HLEN Resv. Flags
Checksum
Window Size
Urgent pointer
Options
40
Osservando i valori
dei campi numeri di
sequenza, possiamo
calcolare la
dimensione dei dati
“in flight”, ossia
mandati e non
ancora confermati
Jun. 00
Jan. 01
35
100
10
30
1
25
%
Sequence Number
0.1
%
Destination port
Source port
20
0.01
0.001
15
0.0001
256
10
1024
4096
16384
65536
5
0
0
2048
4096
6144
8192
10240
12288
14336
bytes
TCP: segmenti duplicati e fuori
sequenza
Destination port
Source port
Sequence Number
Acknowledgment Number
HLEN Resv. Flags
Window Size
Checksum
Urgent pointer
TCP: segmenti duplicati e fuori
sequenza
Osservando i numeri
di sequenza,
possiamo stimare
n
Options
n
Segmenti fuori
sequenza
Segmenti duplicati
Period
Jun.00
Jan 01
P{Out of sequence Burst}
Vs PKT
Vs flow
In % Out% In% Out%
3.4 0.07 43.41 0.43
1.7 0.03 23.03 0.99
E da questi derivare
delle probabilità di
perdita
Period
Jun.00
Jan 01
Classificazione di eventi anomali
Tstat
Possiamo distinguere tra
n
n
n
n
n
n
n
n
Ritrasmissioni per RTO
Ritrasmissione per FR
Duplicati generati dalla rete
Fuori sequenza
Ritr. non necessarie per RTO
Ritr. non necessarie per FR
Flow control
???
Non è completa
Non è esatta…
Client
Server
P{Duplicate Burst}
Vs PKT
Vs flow
In % Out% In% Out%
1.45 1.47 18.27 18.59
1.31 1.09 17.65 14.81
Euristica
Out-of-sequence
Duplicate
SYN
SYN+ACK
ACK
????
Data
ACK
FIN
ACK
FIN
ACK
6
Risultati: 2004 traffico uscente
Risultati: 2004 traffico entrante
Risultati: 2001 traffico entrante
Risultati: 2004 traffico entrante
Risultati: 2004 traffico uscente
Risultati: impatto lunghezza file
7
Conclusioni
Il mondo reale è molto diverso dal
mondo della lavagna
Sporcarsi le mani con le misure è
divertente…
… ma alla fine ripulirsi è difficile
Sviluppi
Stiamo lavorando su
n
n
n
Protocolli real time (RTP-RTCP) – Fastweb
Misure su reti ad alta velocità – Garr
Misure su reti wireless
w GPRS -UMTS – Vodafone
w WiFi – Polito
Spazio per tesi
8