У меня есть простой pcap с некоторым веб-трафиком, и я использую tshark для получения от него некоторой информации заголовка:
Я использую следующую команду:
tshark -r ./capture-1-5 -Y "http2" -o tls.keylog_file:ssl-key.log \
-T fields -e frame.number -e _ws.col.Time -e ip.src -e tcp.srcport \
-e ip.dst -e tcp.dstport -e _ws.col.Protocol -e frame.len \
-e _ws.col.Info -E header=y -E separator="," -E quote=d \
-E occurrence=f > desegmented.csv
Я понял, что в этом случае все фрагменты пересобираются, что приводит к огромным пакетам. Однако мне не нужны пересобранные пакеты. Итак, я добавляю в tshark дополнительную опцию:
tshark -r ./capture-1-5 -Y "http2" -o tls.keylog_file:ssl-key.log \
-T fields -e frame.number -e _ws.col.Time -e ip.src -e tcp.srcport \
-e ip.dst -e tcp.dstport -e _ws.col.Protocol -e frame.len \
-e _ws.col.Info -E header=y -E separator="," -E quote=d \
-E occurrence=f -o tcp.desegment_tcp_streams:FALSE > segmented.csv
Моя интуиция подсказывает, что результирующий файл disassembled.csv
должен быть больше по размеру и должен содержать больше строк, учитывая, что «пакеты выше MTU» будут отображаться как более одного пакета.
Однако я наблюдаю обратное. Результирующий файл без сборки меньше и содержит почти вдвое меньше строк.
-rw-r--r-- 1 root root 210K May 18 18:21 desegmented.csv
-rw-r--r-- 1 root root 97K May 18 18:21 segmented.csv
# cat desegmented.csv |wc -l
2635
# cat segmented.csv |wc -l
1233
Это нормальное поведение? Я не вижу (вручную), где начинают пропадать пакеты (и почему), и не вижу какой-либо закономерности из-за двусторонней связи (отсутствуют пакеты тут и там). Я предполагаю, что возможно, в случае disassebmled.csv
каждый пакет или даже весь поток пакетов, в результате которого хотя бы один пакет превышает MTU, полностью отбрасывается.
Я также попытался применить ip.defragment: FALSE, но все равно получил те же результаты. Спасибо
Для воспроизведения файлы можно загрузить с здесь
disassembled.csv
. Затем, глядя на размеры пакетов вdisassembled.csv
, я обнаружил, что большинство пакетов, имеющих 4-значный размер, тоже отсутствуют (~ 200 пакетов). Тем не менее, у меня много пропущенных пакетов :S - person cs.lev   schedule 19.05.2020