Tcptrace может вычислять подробную статистику TCP подключений, когда установлена опция -l или опция подробного вывода. 1 arg remaining, starting with 'outfortcptrace' Ostermann's tcptrace -- version 5.2.1 -- Wed Sep 15, 1999 200 packets seen, 200 TCP packets traced elapsed wallclock time: 0:00:17.259034, 11 pkts/sec analyzed trace file elapsed time: 0:00:31.465429 TCP connection info: 20 TCP connections traced: ================================ . . . ================================ TCP connection 17: host bg: 192.168.7.98:4393 host bh: 192.168.7.200:80 complete conn: yes first packet: Wed Apr 28 09:42:16.169571 2004 last packet: Wed Apr 28 09:42:16.388772 2004 elapsed time: 0:00:00.219201 total packets: 11 filename: outfortcptrace bg->bh: bh->bg: total packets: 6 total packets: 5 ack pkts sent: 5 ack pkts sent: 5 pure acks sent: 3 pure acks sent: 1 unique bytes sent: 258 unique bytes sent: 208 actual data pkts: 1 actual data pkts: 2 actual data bytes: 258 actual data bytes: 208 rexmt data pkts: 0 rexmt data pkts: 0 rexmt data bytes: 0 rexmt data bytes: 0 outoforder pkts: 0 outoforder pkts: 0 pushed data pkts: 1 pushed data pkts: 2 SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 req sack: Y req sack: N sacks sent: 0 sacks sent: 0 mss requested: 1460 bytes mss requested: 1024 bytes max segm size: 258 bytes max segm size: 183 bytes min segm size: 258 bytes min segm size: 25 bytes avg segm size: 257 bytes avg segm size: 103 bytes max win adv: 65535 bytes max win adv: 16384 bytes min win adv: 65327 bytes min win adv: 16384 bytes zero win adv: 0 times zero win adv: 0 times avg win adv: 78553 bytes avg win adv: 16384 bytes initial window: 258 bytes initial window: 25 bytes initial window: 1 pkts initial window: 1 pkts ttl stream length: 258 bytes ttl stream length: 208 bytes missed data: 0 bytes missed data: 0 bytes truncated data: 216 bytes truncated data: 141 bytes truncated packets: 1 pkts truncated packets: 1 pkts data xmit time: 0.000 secs data xmit time: 0.203 secs idletime max: 202.9 ms idletime max: 202.7 ms throughput: 1177 Bps throughput: 949 Bps Tcptrace обрабатывает dumpfile (результат запуска tcpdump c опцией -w). Первые строки сообщают, какой файл будет на выходе после выполнения работы tcptrace, версия tcptrace и дата компиляции. Следующая строка сообщает, что 200 пакетов было замечено в dumpfile, и все 200 TCP пакетов этой группы были прослежены. Следующая строка сообщает время обработки dumpfile и среднюю скорость обработки (пакетов в секунду). Последующие строки указывают на TCP соединения. Семнадцатым было замечено соединение между машинами 192.168.7.98 TCP порт 4393, и 192.168.7.200 TCP порт http. Tcptrace использует схему маркирования для обращения к отдельным прослеженным подключениям. В вышеупомянутом примере это подключение помечено bh-bg соответственно. 6 пакетов были замечены в bh->bg направлении и 5 пакетов - в bh<-bg направлении. Указываются хосты, участвующие в соединениях и номера TCP портов: host bg: 192.168.7.98:4393 host bh: 192.168.7.200:80 Далее сообщается о том, что подключение было полным то есть, подключение было прослежено полностью с SYN и FIN флагами. TCP подключение могло также быть сообщенено как сброшенное, если оно было закрыто с флагом RST, или unidirectional, если движение пакетов было замечено только в одном направлении. Время, в которое первый и последний пакеты соединения были захвачены, а также "продолжительность жизни" подключения и число замеченных пакетов. Далее указано имя файла, в настоящее время обрабатываемого, с подробной TCP статистикой для прямого (bg->bh) и обратного (bh<-bg) направлений. · total packets - общее количество замеченных пакетов. · ack pkts sent - общее количество пакетов с установленным ack флагом. · pure acks sent - общее количество пакетов с установленным ack флагом, которые не несли пользовательских данных (только TCP заголовок и никаких данных) и не имели флагов SYN/FIN/RST. · sack pkts sent - общее количество ack TCP пакетов seen carrying TCP SACK. Прим. При поступлении сегмента протокол TCP на приемной стороне имеет два варианта выбора времени отправки подтверждения: А. "Немедленно". Б. "С накоплением". Когда данные успешно приняты, отмечается необходимость в подтверждении, но последнее отправляется с очередным исходящим сегментом данных, в котором устанавливается флаг АСК. Во избежание длительных задержек устанавливается таймер окна. Если время таймера истекает до момента отсылки очередного сегмента данных, то отправителю посылается пустой сегмент, содержащий соответствующий номер подтверждения. (http://dmitryd2003.narod.ru/polez/home_lan/optimize/optimize02.html) · dsack pkts sent - общее количество пакетов sack, содержащихся в двойном SACK (D-SACK). · max sack blks/ack - максимальное число блоков, замеченных в любой группе sack. · unique bytes sent - число посланных unique байтов, то есть байтов данных, исключая ретранслированные байты и любые байты анализа окна. · actual data pkts - число пакетов с, по крайней мере, 1 байтом данных. · actual data bytes - общее количество обработанных байтов данных, включая байты ретрансляций и байты анализа окна. · rexmt data pkts - общее число пакетов ретрансляции. · rexmt data bytes - общее число байтов в пакетах ретрансляции. · zwnd probe pkts - общее число пакетов анализа окна. (Пакеты анализа размера окна обычно посылаются источником, когда приемник сообщает о сокращении размера окна до нуля, и позволяют определить, готово ли окно теперь). · zwnd probe bytes - общее число байтов в пакетах анализа окна. · outoforder pkts - общее число пакетов, которые прибывали поврежденными. · pushed data pkts - общее число пакетов с установленным битом PUSH в TCP заголовке. · SYN/FIN pkts sent - общее число пакетов с SYN/FIN набором битов в TCP заголовке. · req 1323 ws/ts - если точка соединения установила опцию Window Scaling/Time Stamp как определено в RFC 1323, "Y" напечатан в соответствующем поле. Если опция не требовалась, "N" напечатан. Например, "N/Y " в поле означает, что опция анализа размера окна не была определена, в то время как опция Time-stamp была определена в сегменте SYN. Обратите внимание, что, так как опция Window Scaling посылается только в SYN пакетах, это поле имеет значение, только если соединение было захвачено полностью в dumpfile, вместе с SYN пакетами. · adv wind scale - использовался анализ размера окна. Снова, это поле имеет значение только если соединение было захвачено полностью, чтобы включить SYN пакеты. Так как соединение использовало бы вычисление размера окна, если и только, если обе стороны затребовали использование этой опции, это поле сброшено в 0 (даже если масштаб окна требовался в SYN группе для этого направления), если SYN группа в обратном направлении не содержал указаний к анализу размера окна. · req sack - если получатель послал разрешение на использование SACK в SYN пакете, открывшем соединение, "Y" напечатана, иначе "N". · sacks sent - общее количество ACK пакетов, имевших SACK информацию. · urgent data pkts - общее количество пакетов с URG битом в TCP заголовке (срочных данных). · urgent data bytes - общее количество байтов в пакетах с URG битом в TCP заголовке. Это поле рассчитано суммированием количества срочных данных. · mss requested - Maximum Segment Size (MSS), опция TCP в SYN пакете, открывающем соединение. · max segm size - максимальный размер сегмента, наблюдаемый в течение времени существования соединения. · min segm size - минимальный размер сегмента, наблюдаемый в течение времени существования соединения. · avg segm size - средний размер сегмента, наблюдаемый в течение времени существования соединения. · max win adv - максимальный размер окна, объявленный во время соединения, если соединение использовало анализ размера окна (обе стороны установили эту опцию) и оба сегмента SYN, открывших соединение были захвачены в dumpfile. · min win adv - минимальный размер окна. · zero win adv - число объявлений нулевого окна. · avg win adv - средний зафиксированный размер окна, рассчитанный как сумма всех размеров окна, разделенная на количество пакетов, если точки соединения установили опцию анализа размера окна. · initial window - размер в байтах начального окна, то есть число байтов при первой передаче данных (перед получением первого ack пакета от другого участника соединения). Обратите внимание, что ack пакет от другого участника соединения - первый ack, подтверждающий некоторые данные (часть ACK "тройного рукопожатия" не считается), и любые пакеты ретрансляции в этой стадии исключены. · initial window - общее количество сегментов (пакетов) отправленных в начальном окне. · ttl stream length - The Theoretical Stream Length (Теоретическая Длина Потока). Рассчитанная как различие между порядковыми номерами SYN и FIN пакетов, отражает длину потока данных. · missed data - пропущенные данные, рассчитанные как различие между длиной потока ТТЛ-схемы и уникальными переданными байтами. Если соединение не было полно, это вычисление недействительно, и " NA " (Not Available) напечатано. · truncated data - обрезанные данные. Рассчитывается как количество байтов данных, обрезанных в процессе захвата пакета. Например, с tcpdump (snaplen) опция длины пакета может быть установлена в 64 (с -s) так, чтобы только заголовки пакета соединения были захвачены, усекая большинство данных пакета. В Ethernet с максимальным размером сегмента 1500 байтов, усечение данных составило бы 1500 - 64 = 1436 байтов пакета. · truncated packets - общее количество пакетов, усеченных как объяснено выше. · data xmit time - полное время передачи, рассчитанное как различие между временами захвата первых и последних пакетов, несущих пользовательские данные TCP соединения. · idletime max - максимальное время простоя, расчетное как максимальное время между последовательными пакетами, замеченными в направлении. · throughput - средняя производительность, рассчитанная как количество уникальных байтов, разделенное на разницу во времени между захватом первых и последних пакетов соединения.