Я использую tcpdump для отслеживания трафика на 2 интерфейсах, один вход и один выход. Единственной целью является измерение задержки между временем, когда входной интерфейс получает входящий TCP-трафик, и временем, когда выходной интерфейс отправляет UDP-трафик.

Поскольку мне нужно делать это измерение сотни раз, мне нравится перенаправлять вывод в файл и писать простой скрипт для разбора временных меток.

В настоящее время это моя команда: tcpdump -i any -v "tcp or udp" -ttttt | тройник

Это работает, но мне интересно, смогу ли я дополнительно урезать его вывод (фрагмент):

 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)

Вы можете увидеть две вещи:

  1. IP-адреса источника и назначения находятся на разных строках от метки времени.

  2. Есть еще много информации, мне все равно

Итак, мой вопрос:

  1. Есть ли способ отрисовки tcpdump для отображения метки времени в той же строке, что и IP-адреса источника / назначения?

  2. Могу ли я сократить выход?

[ОБНОВЛЕНИЕ] В настоящее время я остановился на следующем решении командной оболочки. Тем не менее, мне все еще интересно узнать о моих вопросах.

Используйте эту команду для поиска первого входящего TCP-пакета:

$>grep -A 1 TCP  /tmp/junk  | head -n 2

И это для первого исходящего UDP:

$> grep -A 1 UDP  /tmp/junk  | head -n 2

0