Estou executando o tcpdump para rastrear o tráfego em duas interfaces, uma entrada e uma saída. O único objetivo é medir a latência entre o momento em que a interface de entrada recebe tráfego TCP de entrada e o momento em que a interface de saída envia tráfego UDP.
Como preciso fazer essa medição centenas de vezes, gosto de redirecionar a saída para um arquivo e escrever um script simples para analisar os timestamps.
Atualmente este é meu comando: tcpdump -i any -v "tcp or udp" -ttttt
| tee log
Funciona, mas gostaria de saber se poderei cortar ainda mais sua saída (um trecho):
00:00:00.000000 IP (tos 0x0, ttl 64, id 28712, offset 0, flags [DF], proto TCP (6), length 60)
10.10.30.6.38574 > 10.10.30.161.81: Flags [S], cksum 0x55bd (correct), seq 1010316358, win 29200, options [mss 1460,sackOK,TS val 1402655839 ecr 0,nop,wscale 7], lis=
00:00:00.000035 IP (tos 0x0, ttl 255, id 15035, offset 0, flags [DF], proto TCP (6), length 60)
10.10.30.161.81 > 10.10.30.6.38574: Flags [S.], cksum 0x50e9 (incorrect -> 0xa4d3), seq 3593868966, ack 1010316359, win 4380, options [mss 1460,nop,nop,TS val 1402655838 ecr 1402655839,sackOK,eol], length 0 out
00:00:00.000438 IP (tos 0x0, ttl 64, id 28713, offset 0, flags [DF], proto TCP (6), length 52)
Você pode ver duas coisas:
Os endereços IP, origem e destino, estão na linha diferente do registro de data e hora.
Ainda há muitas informações que eu não me importo
Então, minha pergunta é:
existe uma maneira de renderizar o tcpdump para exibir o timestamp na mesma linha que os endereços IP de origem / destino?
Posso reduzir ainda mais a saída?
[UPDATE] Atualmente eu estabeleço a seguinte solução de comando shell. Ainda curioso sobre minhas perguntas.
Use este comando para procurar o primeiro pacote TCP de entrada:
$>grep -A 1 TCP /tmp/junk | head -n 2
E isso para o primeiro UDP de saída:
$> grep -A 1 UDP /tmp/junk | head -n 2
Tags networking tcpdump linux tcp