2010-07-15 9 views
5

che sto acquisizione del traffico HTTP con tcpdump e sono interessato a TCP avvio lento e come finestra formati aumento:Wireshark e tcpdump -r: strana finestra TCP dimensioni

$ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80 

Quando osservo il file dump con Wireshark la progressione di dimensioni delle finestre sembra normale, cioè 5840, 5888, 5888, 8576, 11264, ecc ...

Ma quando ho vista il file dump tramite

$ tcpdump -r wget++.tcpdump -tnN | less 

ottengo quello che sembrano essere le finestre prive di senso dimensioni (indirizzi IP omesse per brevità):

: S 1069713761:1069713761(0) win 5840 <mss 1460,sackOK,timestamp 24220583 0,nop,wscale 7> 
: S 1198053215:1198053215(0) ack 1069713762 win 5672 <mss 1430,sackOK,timestamp 2485833728 24220583,nop,wscale 6> 
: . ack 1 win 46 <nop,nop,timestamp 24220604 2485833728> 
: . 1:1419(1418) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728> 
: P 1419:2002(583) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728> 
: . ack 1419 win 133 <nop,nop,timestamp 2485833824 24220604> 
: . ack 2002 win 178 <nop,nop,timestamp 2485833830 24220604> 

C'è un modo per ottenere le dimensioni delle finestre normali/assoluti sulla riga di comando?

risposta

8

Le dimensioni della finestra sono corrette, non sono state ridimensionate.

L'iniziatore di connessione ha impostato un wscale (fattore di ridimensionamento della finestra) di 7, pertanto i suoi successivi valori win devono essere moltiplicati per 128 per ottenere le dimensioni della finestra in byte. Quindi lo win 46 indica una finestra di 5888 byte.

Il destinatario collegamento ha fissato un wscale di 6, quindi le sue win valori devono essere moltiplicati per 64. Pertanto win 133 indica una finestra di 8512 byte, e win 178 indica 11392 byte.

+0

In primo luogo, il motivo per cui è fatto questo? Secondo, c'è un modo per ottenere 'tcpdump' per eseguire automaticamente il ridimensionamento nell'output quando si visualizza il file di dump come fa Wireshark? –

+0

@Robert: è stato eseguito in questo modo perché le specifiche TCP/IP originali fornivano un campo a 16 bit per le dimensioni della finestra; quando questo è risultato insufficiente, il meccanismo di ridimensionamento della finestra ha permesso di rappresentare numeri più grandi senza dover modificare le dimensioni del campo. Non sembra che ci sia un modo per mostrare le dimensioni della finestra in scala in 'tcpdump' - si può sempre inviare una patch;) Si può sempre usare' tshark' (la versione basata su testo di Wireshark). – caf

2

Inoltre, se lo strumento (wireshark o tcpdump, non importa) non vede lo syn, deve stampare il valore non graduato, che può ingannare

Problemi correlati