Дальше  

Петрозаводский государственный университет
Математический факультет

Кафедра информатики и математического обеспечения




3.1. Детальный анализ.


  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 - средняя производительность, рассчитанная как количество уникальных байтов, 
разделенное на разницу во времени между захватом первых и последних пакетов соединения.







Петрозаводск
2004