File: FAQ

package info (click to toggle)
tcptrace 6.6.7-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, trixie
  • size: 9,440 kB
  • sloc: ansic: 24,663; sh: 3,704; makefile: 237; lex: 162; yacc: 99
file content (977 lines) | stat: -rw-r--r-- 41,392 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
Some good/common questions with some relatively good answers :-)

--sdo

===========================================================================
Tue May 26, 1998

Q1. I installed tcptrace version 4.1.3 on sunos4.1.4 together with
    tcpdump version 3.4a6 and libpcap version 0.4a6 and made a few
    tests, however I am very puzzled by the lack of traffic in the
    reverse direction!
 
    Can you throw some light on what the problem might be?

A1. Probably.  It appears that you're doing the "packet grabbing" on the
    same machine that's hosting the connection.  That's a problem under
    SunOS (and maybe other systems).  Their packet capturing pseudo-device
    can't grab both ends of a connection whose home is the local machine.
    I never can remember which end it omits, but given your output, it
    appears that it can't see packets SENT by the local host.  The easiest
    solution is to run tcpdump on a machine OTHER than the ones you're
    monitoring.

===========================================================================
Fri Jul 24, 1998

Q2. I have been trying to find out when you place a diamond and when an
    arrow and why.

A2. The "diamond" means that the segment was sent with a PUSH (so most
    segments will have these except for large data transfers).  This feature
    is now documented in the on-line docs.

===========================================================================
Fri Jul 24, 1998

Q3.  The second thing is that you should create a margin around the
     plot.  Unfortunately, XPLOT will only zoom out as far as the
     original plot. I often find myself trying to figure out what is
     happening at the handshake and closing of a connection and I cannot
     see clearly these locations because they run off the side of the
     plot.

A3.  Yes, this is a problem.  The only way to do it is to add invisible
     points outside the normal range, xplot won't let me control the area
     otherwise.  In this particular case, however, there's an easy
     solution: use the middle mouse button to move the graph so that the
     lower corner all shows.  Using this, you can scroll anywhere on the
     screen, even outside the boundaries of the points being plotted.


===========================================================================
Mon Jul 27, 1998

Q4. do you know if I'd be able to find the precompiled versions of
    tcpdump or a similar package for NT from somewhere?

A4. I'm sorry, I don't keep up on Microsoft software.  Lots of people have
    asked me this question and I don't know the answer.  I'm pretty sure
    that tcpdump does NOT run under NT.  The only packet-grabbing software 
    that I'm aware of for Wintel machines is etherpeek (Windows/NT/Mac):

    http://www.aggroup.com/

    It's nice software, but it's commercial.

===========================================================================
Tue Jul 28, 1998

Q5. I've just tried tcptrace. It seems to be really good. But, I've got a
    problem: I can't trace any UDP packets. It's like we can only decode TCP
    packets. Is it a tcptrace feature? 

A5. Yes, that's why it's called _TCP_trace!!!  Seriously, I've never had
    any reason to look at UDP packets.  Tcptrace was designed to explore
    TCP's protocol details and there's not much protocol detail to UDP to
    look into.

    (update, version 5 DOES support UDP a little, but you need to add the
    "-u" option, as it ignores UDP by default)


===========================================================================
Wed Jul 29, 1998


Q6. I was trying to measure tcp throughput in an experimental testbed
    here in xxxxx initially using netperf so as to have a roughly idea
    how much it would be.
 
    I tried afterwards to have the same results in the tcptrace. The
    problem is that the use of tcpdump program seems to degrade the
    performance up to 75%.
 
    Parameters used in the tcpdump are: -i interface -w file
 
    For example without tcpdump : TPUT: 45Mbps
    		    with tcpdump: TPUT: 11Mbps
 
    If the use of the tcpdump degrades performance then how else can
    someone use your tcptrace program in Free BSD?

A6. If you want really good data from tcpdump, you need to run it on a
    machine on the same LAN as the tcp sender, but NOT on the same
    machine.  You also need to make sure that the data that you're writing
    is going to a local file system, rather than a remote file system,
    which would cause extra network traffic.

    From what you describe, I'm assuming that you're running tcpdump on
    the SAME machine as one connection endpoint.  I've never seen a case
    in which running tcpdump on a reasonably fast machine would slow it
    down enough to cause that sort of degradation.  One other possibility
    is that the machine is busy enough that tcpdump is not seeing all the
    packets (which IS common, the kernel drops them if tcpdump gets
    behind).  Tcptrace only counts the packets that it sees, so if it only
    sees half of them, its throughput estimate will be off by half.

    The other possibility that I alluded to is that you're writing the
    packet data to a file system on a different machine.  That competing
    network traffic might congest the network enough to skew the results.

===========================================================================
Wed Jul 29, 1998

Q7. And a last question: In case of TPUT which line should I consider?
    I suspect it should be the blue one.

A7. That's the running average.  Network throughput is difficult to
    represent discretely.  Normally, you take bytes/second over a short
    period of time.  The blue line is a running average of that figure
    from the beginning of the connection.  If you want a numeric answer,
    just use "-l" with tcptrace and look at the figure that it prints
    out.

===========================================================================
Sat Sep 12, 1998

Q8. How do I print the plots from xplot?

A8. This is from the xplot README:

    {
     Clicking the left button while SHIFT is pressed causes xplot to
     drop a postscript file in the current directory.  The title is
     used as the first part of the filename if there has been a title
     plot command.  Otherwise, "xplot" is used.  The file ends in PS.#
     where # is a serial number.  Xplot is careful not to write over a
     previously dumped postscript file, and # is incremented until an
     unused filename is found.
 
     Clicking the middle button while SHIFT is pressed similarly
     causes xplot to drop a postscript file, but this will be scaled
     suitably to allow the figure to be included in a document.  You
     might have to fiddle with the constants in emit_PS() and
     recompile to get the figure sized the way you want it.
 
     If you didn't like the size of the figure produced by
     SHIFT-Middle, Clicking the right button while SHIFT is pressed
     will produce a postscript plot just like the middle button, but
     it will take less vertical space.  Again, you can fiddle with the
     constants in emit_PS() and recompile if you don't like these
     sizes.
    }

    Just a note about these files.  The magic first line that gets created on
    them is nonstandard.  The first line of a postscript file is supposed to
    look like:

    #!PS (and possibly more stuff)

    but xplot generates

    #!POSTSCRIPT

    That's not correct, but some older printers don't mind.  My experience
    with newer printers is that they WON'T recognize it and will misbehave
    in annoying ways.  If you change the first like to #!PS it'll work
    fine.  If you have the xplot source, you might as well fix this and
    recompile (that's what I always do).

===========================================================================
Sat Sep 12, 1998

Q9. I just installed tcptrace and xplot, but I'm having trouble 
    figuring out how to load the neat plots into xplot?
    Any chance of including a typical session in the docs?

A9. There's not much to it.  Tcptrace creates plot files with the suffix
    ".xpl".  To see a single plot:

    	   xplot a2b_tsg.xpl

    a VERY nice feature for lining up plots is the "-x" which locks all
    graphs to the same X axis.  For example, you can:

    	   xplot -x a2b_tsg.xpl  b2a_tsg.xpl

    and it'll show you BOTH plots.  When you zoom in on one, the other
    zooms in too.  Very handy, particularly if you line them up across you 
    screen like:

  +----------------------------------------+
  |                                        | screen
  | +-----------------------------------+  |
  | |                                   |  |
  | | xplot graph 1                     |  |
  | |                                   |  |
  | |                                   |  |
  | +-----------------------------------+  |
  | +-----------------------------------+  |
  | |                                   |  |
  | | xplot graph 2                     |  |
  | |                                   |  |
  | |                                   |  |
  | +-----------------------------------+  |
  |                                        |
  +----------------------------------------+

===========================================================================
Tue Sep 15, 1998

Q10. xplot doesn't work

A10. if you type

     	xplot [FILE].xpl

     and see some sort of strange syntax error warnings, type

     	xplot -v

     output:
        xplot version 0.90

     if you see something that doesn't look much like that, make sure that
     you're running the correct "xplot" program.  There are probably a lot of
     programs around with the same name.  You want the one from:

 	http://www.xplot.org

===========================================================================
Tue Oct  6, 1998

Q11. Do programs such as snoop identify the application (e.g. telnet,
     ftp) simply by knowledge of the standard port numbers, or is there
     something else in the packet somewhere that identifies it?

A11. It's just from the port numbers.  RFC 1700 

     	  http://www.cis.ohio-state.edu/htbin/rfc/rfc1700.html

     gives the official purposes of all of the low-numbered ports.  Unix
     machines usually have a subset of this document in /etc/services,
     which is where snoop et. al. get their application information.  If
     you have a lot of traffic on official ports that AREN'T in this file,
     If you can add more entries and make the snoop (and tcptrace)
     information easier to read.

===========================================================================
Wed Dec  2, 1998

Q12. [...referring to the TSG graphs...] interpretation of some of the
     graphics, like the "3" and diamonds and arrows and such.

A12. "3" is a triple duplicate ACK, the kind of thing that usually triggers 
     fast retransmit in the sender.

     The "diamonds" are probably what you're seeing at the tops of some of
     the data segments.  That means the segment was sent with a PUSH.

===========================================================================
Wed Dec  2, 1998

Q13. From the code, there are a bunch of types of ACKS and things. A
     bunch of different colors as well.

A13. SACKs are purple, normal ACKs are green.  SYNs and FINs are orange
     (unless they're retransmitted, then they're red)

     If there's a blue diamond on an ACK, that means that it doesn't create 
     a usable RTT sample (because something that preceeded that data was
     retransmitted)

     If there's a red diamond on an ACK, it ALSO means that there's no RTT
     sample for it, but in this case it's because the data being ACKed was
     retransmitted.

===========================================================================
Mon Dec 14, 1998

Q14. Is there any way to always use the same set of flags??

A14. You can store commonly-used tcptrace arguments in "~/.tcptracerc"
     (comments start with '#') or in envariable "TCPTRACEOPTS".

===========================================================================
Wed Dec 16, 1998

Q15. It seems to be running VERY slowly, and using very little CPU time

A15. It might be stuck trying to resolve IP addresses.  Try running it with
     "-n" to NOT resolve.  I almost always use "-n" when looking at
     non-local traces.  It sometimes takes FOREVER to resolve the names
     otherwise.

     A quick check of what it's doing is to use the "-t" option that gives
     you visual feedback of its progress; it displays the number of packets
     processed so far, percentage done (unless compressed), and the
     "elapsed trace file time".  If it's not doing at least several hundred
     packets per second, then it's probably stuck doing DNS lookups.

===========================================================================
Wed Dec 16, 1998

Q16. with "-t", why is the the percentage done more than 100%

A16. Probably one of:

     1) If it's a live file, ie one that tcpdump is currently writing, then the
     	"percentage done" is based on the original size of the file.  As
     	such, depending on how fast the file is growing compared to the
     	horsepower of the processor, the figure might be way off.

     2) If it's a compressed file, tcptrace doesn't know how long it'll be.  For
     	gzipped files of headers only, it usually runs up to around 100%+275% (or
   	almost 4 to one compression). 

===========================================================================
Thu Dec 17, 1998

Q17. What are "post-loss acks"?

A17. Tcptrace tries to gather _ALL_ RTT samples, not just some of them as
     several TCP implementations do.  I called the case causing trouble
     "Post Loss":

===========================================================================
Thu Dec 17, 1998

Q18. Post-loss: an ACK arrives for a segment that was only xmitted once.
     However, at least one of the segments that preceeded it was
     retransmitted, so this ACK was delayed until a CUMACK could be
     sent.  This is not a valid RTT sample therefore.

A18. tcptrace counts them and (optionally) marks them on the TSG output,
     but otherwise ignores them

===========================================================================
Thu Dec 17, 1998

Q19. What does this mean in the long output with RTT stats: 
 
     For the following 5 RTT statistics, only ACKs for
     multiply-transmitted segments (ambiguous ACKs) were
     considered.  Times are taken from the last instance
     of a segment.
 
A19. This is some pretty old stuff that probably isn't useful anymore.
     When I first started looking at this, I was studying some TCP's
     without the Karn/Partridge stuff in them and this was a big deal.

     The point was to gather some stats about RTTs that might be confused
     by older TCPs, those that were taking samples from "ambiguous ACKs"
     (those for segments that were retransmitted).  For those ACKs, I kept
     track separately of the max,min,avg,stdev.  For the other RTT stats,
     those ACKs are ignored, as expected.

     I agree that the text is confusing, but I think that it's accurate
     given that explanation.

===========================================================================
Tue Dec 22, 1998


Q20. Is it possible to use it for monitoring the whole traffic between
     two hosts (from and to all ports) in one throughput graph?

A20. The traffic module can do that.  First, you'd need to generate a dump
     file that contained ONLY the traffic between those two hosts (how to
     do that will depend on the kind of file).  Assuming it's a tcpdump
     file, you could:

     	   tcpdump -r oldfile -w newfile host THEHOST1 and host THEHOST2

     then just use something like

     	   tcptrace -xtraffic" -B" newfile

     to get bytes/second between the hosts for all traffic.

===========================================================================
Tue Jan 12, 1999

Q21. I get the message indicating that there is the presence of hardware 
     duplicates. What exactly does that mean? Two ethernet cards with 
     the same MAC address? I don't think it could be a duplicate IP 
     address.

A21. That's a sanity check.  It means that tcptrace saw 2 packets with the
     same TCP header and identical ID fields at the IP level.  Because the
     IP headers (IPv4) are the same, it's unlikely that this is a
     retransmission.  Most likely, it means that those packets are crossing
     the local network twice, as in:

       Router                Sender                  Receiver
         |                     |                         |
       ==========================================================
pkt1:    ^---------------------<
pkt2:    >-----------------------------------------------^

     once from the sender to a router (or hub), and then again from the router to
     the receiver.  Tcptrace flags the situation because otherwise those packets would
     be seen as retransmissions when they really aren't.  If you're seeing a lot of
     these (well, probably any at all), then there's a bad setup on your network.
    
===========================================================================
Thu Mar  4, 1999

Q22. I just have a question regarding the congestion window plot. I am
     wondering if this congestion is the cwnd on the sending side or it
     is the MIN (cwnd, adv_win) where adv_win is the receiving side
     advertised window size. Can you please explain how the congestion
     window is calculated (I assumed it is calculated since the tcp
     packet does not carry the congestion window information).

A22. The title of that plot is misleading and is titled "outstanding data"
     in the version that I'm working on now.  There's a high probability
     that what it's plotting is similar to the sender's congestion window,
     but in fact it is just a heuristic that plots the amount of non-acked
     data on the network (the different between the highest byte sent and
     the highest byte ACKed).

===========================================================================
Tue Mar  9, 1999

Q23. Can I use the program in "real-time" mode?

A23. Sort of, but it depends on what you're trying to do.  For example:

	tcpdump -s4096 -w- | tcptrace -e stdin

     will create data files for all connections as they're opened.  For
     functions that give answers WHILE processing, this works fine.  For
     functions that don't answer until they're done, this will require a
     little more fiddling.  For example:

	tcpdump -c100 -s4096 -w- | tcptrace -e -l stdin

     for grab the next 100 packets and then stop, while extracting the
     contents and then doing a "long" output listing.

===========================================================================
Mon Apr 19, 1999

Q24. Somebody pointed out that there's now a windows port of tcpdump.  I
     don't know anything about it except the URL:

A24. http://netgroup-serv.polito.it/tools/analyzer/Install/windump/

===========================================================================
Tue Apr 27, 1999

Q25. What does the "truncated data" and "truncated packets" mean ??  I
     ask this because I do not see any anomalies using our sniffer and
     tcpdump, but this field has us confused.

A25. "truncated" refers to the difference between the size of the packets
     "on the wire" and the number of bytes saved in the dump file.  With
     tcpdump and snoop, for example, you can set the "snap length", which
     controls the maximum amount of data saved from each packet.  A
     1500-byte packet grabbed with a 128-byte snap-length is "truncated".
     Because some of the analysis from various modules and features
     requires full packet data, tcptrace counts and prints the truncated
     segments ("truncated packets") and the amount of missing data
     ("truncated data").

===========================================================================
Wed Apr 28, 1999

Q26. I was wondering if you could please explan what the following actually
     mean in the detailed output:
 
     	  data xmit time:        1.377 secs

A26. That's the elapsed time of the connection from the first segment
     containing data to the last segment containing data.  It discounts the
     SYN and FIN handshaking.

     	  idletime max:         126384.9 ms

     That's the longest period during which no packets were sent (data or ACK)
     from that side of the connection.

===========================================================================
Thu May 20, 1999

Q27. Is there a version of tcpdump for wintel machines?

A27. I'm told that there's one here:

     http://netgroup-serv.polito.it/analyzer/install/windump/default.htm

     but I've never used it.

===========================================================================
Tue Jun  1, 1999

Q28. I get some 'Z' letters printed out by xplot on a sequence number
     graph, and I couldn't find anything about this in the doc I found. Do
     you know what they mean ?

A28. Those are "zero windows".  That's when the receiver of the data
     advertises a receive window of 0, meaning that it can't accept any
     more data.  That normally means that the receiving application can't
     keep up.  Normally, they're followed by a "gratuitious ACK" from the
     receiver advertising additional buffer space, which will cause the
     sender to send more data.  If the sender is impatient (which it's
     allowed to be) or the gratuitious ACK is lost, the sender can send
     additional data anyway (a zero window probe).

===========================================================================
Wed Oct 13, 1999

Q29. I actually wanted very selective outputs.  For example I just want
     tcptrace to give me only "actual data pkts", "rexmt data pkts",
     "data xmit time" and the "RTT avg".  I couldnt get it to work with
     the filtering option. I'd appreciate any help on this.

A29. There's no automatic way to do this.  A simple script should do the
     trick.  You might start with something like:

tcptrace -r -l -n input/all.snoop.gz | egrep '(actual data pkts)|(rexmt data pkts)|(data xmit time)|(RTT avg)'

===========================================================================
Tue Nov  9, 1999

Q30. What's with all of the stupid quotes for module args

A30. As the modules evolved, it became clear that it wasn't possible to
     keep the names of the arguments that the module writers needed
     separate from the arguments that the main program wanted.  Rather then 
     make the argument names even MORE non-intuitive, I decided that all
     module arguments must be in the same shell argument as the -x switch
     that enables it.  That means that if you want to pass "-G -I" to the
     traffic module, you need to say:

     	     tcptrace -xtraffic"-G -I"
     	     	      or
       	     tcptrace -xtraffic" -G -I"

     note that the Unix shell will package this the same as:

     	     tcptrace "-xtraffic-G -I"

     but this seems less clear to me somehow.  The module writer then has
     to parse a long, ugly string, but there's a support routine to do it
     for them (see the existing modules as examples).

===========================================================================
Tue Jan 18, 2000

Q31. Not being completely sure how to interpret out of order packets, I
     would be grateful if you could confirm that such conditions occur
     following packet losses

A31. Out of order packets can occur in lots of cases.  Let's say that TCP
     sends the following segments:

     1 2 3 4 5 6 2'

     meaning that segment 2 was retransmitted (as 2') for some reason.  If
     tcptrace sees those packets near the sender, it will mark 2' as a
     retransmission because it already saw the first instance of the
     segment.

     However, if you grab the packets "close" to the receiver, tcptrace
     will likely see:

     1 3 4 5 6 2'

     because segment "2" didn't arrive.  In that case, tcptrace will mark	
     segment 2 as being "out of order" because it can't tell the
     difference.

===========================================================================
Wed Jun  6, 2001

Q32. What if I want the output file names to be different or to go in a
     different place?

A32. You can use the arguments:

     --output_dir="STR"     directory where all output files are placed (default: '<NULL>')
     --output_prefix="STR"  prefix all output files with this string (default: '<NULL>')

     with the formatting substitutions:

     %f	  basename of the current input file
     %d	  execution date, standard unix output, spaces ==> underscores
     %t	  execution time & date, standard unix output, spaces ==> underscores
     %D	  execution date, format "1-14-1963"
     
     For example, you might put in your ~/.tcptracerc

     	--output_dir=output_%f

     or run

     	tcptrace -G --output_dir=output/%d/%f   file1 file2 file3

===========================================================================
Tue 12 Dec, 2000

Q33. What is a valid input file format for tcptrace? And which programs (besides tcpdump)
     can produce dumpfiles which tcptrace understands? 

A33. tcptrace supports files generated by the following packet capture tools:

     "tcpdump","tcpdump -- Public domain program from LBL"
     "snoop","Sun Snoop -- Distributed with Solaris"
     "etherpeek","etherpeek -- Mac sniffer program"
     "netmetrix","Net Metrix -- Commercial program from HP"
     "ns","ns -- network simulator from LBL"
     "tsh","NLANL Tsh Format"
     "netscout","NetScout Manager format"

===========================================================================
Thu 14 Dec, 2000

Q34. tcptrace does not support Dags native output format.

A34. ATM and PoS packets captured from OC3c, OC12c, and OC48c links by Dag 
     cards ( http://dag.cs.waikato.ac.nz/dag/ ) can be converted into a pcap 
     format file, and hence used as input for tcptrace (or tcpdump etc). 

     tcptrace does not support Dags native output format, but the conversion 
     is simple enough.

===========================================================================
Mon 15 Jan, 2001

Q35. What is the last option that is specified in the SYNC packet ([|tcp]), 
     13:49:47.544632 172.21.21.23.1043 > 172.22.22.24.5555: S 
     1846530079:1846530079(0) win 16384 <mss 9140,nop,wscale 0,
     nop,nop,timestamp 19346 0,[|tcp]> (DF) 
                             ^^^^^^^      
A35. This is tcpdump's way of saying that the header in question (tcp) 
     couldn't be decoded in its entirety because it was cut off early.
     By default, tcpdump collects only the first 68 bytes of each packet. 
     Call tcpdump with the -s option to specify a larger "snaplen" (e.g. 
     -s 1500). Then tcpdump will decode the complete header. 

===========================================================================
Thu 08 Feb, 2001

Q36. I am aware that TCPTrace only takes BINARY dump files from TCPDump.
     However, I have a lot of useful ASCII formatted TCPDump files which I
     wouldn't mind analysing with TCPTrace. Thus I was wondering if anyone
     knows of a simple ASCII --> BINARY conversion utility for TCPDump (and
     yes, I know I could do a simple PERL script to do this, but I did not
     want to duplicate effort in case something like this existed already).
     
A36. I don't know of such a thing, although I've wanted one on several 
     occastions. I see a couple of problems: 

     1) missing information not all of the information that tcptrace uses in 
     	all cases can be gleaned from just the ASCII output, but I suspect it
     	would suffice in most cases
    
     2) tedious!
     	tcpdump output format seems pretty regular. It wouldn't be extremely 
   	difficult to parse the output, but it would take a while to get all of
   	the special cases right (IP options, TCP options, etc)
      
     If somebody were tempted to write such a thing, I'd suggest that you 
     make ASCII Tcpdump a supported input format. You could even write the 
     parser in lex/yacc which should make the task much easier. It makes 
     me a little nervous having a program that is pretending to create 
     tcpdump binary files when those files would necessarily have errors in 
     them from missing information.

===========================================================================
Tue 20 Feb, 2001

Q37. xplot generates the following error message: 
     "XAllocColorCells failed, will only have one plot color"

A37. Tim Shepard (author of xplot), has a fix that he gives out 
     when people ask, but he hasn't officially "released" it yet. We have a
     version of xplot here: 

     http://masaka.cs.ohiou.edu/tools/xplot-0.90_sdo.tar.gz 
     
     that contains his fix. Most likely this would fix your problem.

===========================================================================
Tue 20 Feb, 2001

Q38. The only difference in my problem (and the one above), is that I have 
     started getting this message since yestreday,, Before that xplot could
     plot all the colors.
  
A38. Well, if you haven't changed the binary, then I haven't seen this 
     mentioned before. All of the color problems that I've seen are 
     related to older xplot versions... 
  
     The only thought that I have is that you might be running this on a 
     machine with a limited number of colors and they're all used up. I 
     know that with the older Solaris boxes that I have used in the past 
     with 256 color video hardware (like an Ultra 1 or previous), a
     program like netscape could eat up enough colors that xplot can't get any 
     more.

     Try killing other running apps and see if the problem goes away.

===========================================================================
Thu 22 Feb, 2001

Q39. tcptrace generates the following error : "Resource temporaly unavailable"

A39. It isn't really a tcptrace error, it's coming from the operating system.
     I suspect that it's a memory allocation problem. You can get that from
     malloc(), although I'm a little confused because we have a malloc wrapper 
     that traps this error and tries to explain it a little. Perhaps you're seeing
     that and didn't mention it. In any case, if that's the problem, then you're 
     out of swap space (but may or may not be out of physical memory). A 
     quick way to verify this is to run 'top' (freely available) and watch 
     the amount of available swap space as the program runs, if it goes to 
     0 right before the program exits, that's your problem. Adding 
     temporary swap space on a solaris machine (and most others) is fairly 
     simple. You would use a combination of mkfile(1M) to make a large 
     file to swap into (maybe 1GB) and then swap(1M) to add that new file 
     to the list of swap space. This is a little slower than a real swap 
     partition, but much less work. Note that this requires root access. 

===========================================================================
Tue 17 Apr, 2001

Q40. can tcptrace trace UDP "connections" ?

A40. Take a look at the `-u --- perform (minimal) UDP analysis` option.

===========================================================================
Thu 23 Aug, 2001

Q41. I'm wondering about the meaning of the white crosses on the green line 
     (which tracks the acknowledged data by the receiver) of TIME-SEQUENCE 
     graphes. Are they "non containing data segments"?
   
A41. I believe it is just an empty data packet (i.e. just an ack, with zero bytes
     of data). 

     Imagine a line with an arrowhead each end. Now imagine the line is zero length,
     and draw the two arrowheads -- it looks like an X. 

===========================================================================
Mon 17 Sep, 2001

Q42. I am using ns2.1b6 and want to generate trace files to be analyzed
     with tcptrace. Until now I have only be able to generate ASCII traces
     in ns, but tcptrace use binary traces. 

A42. Kevin Lahey wrote an input module a few years ago (ns.c) that understood
     the ASCII output format of NS. I haven't used it on anything non-trivial,
     but I thought that it worked. It's been in there for at least a couple of
     years, I think, and it's compiled in by default. 

     If you turn on debugging in tcptrace (-d), does it recognize your file 
     as being an NS trace file? You might poke at the ns.c file for a few 
     minutes and see what it doesn't like about the file. 

===========================================================================
Mon, 17 Sep 2001

Q43. We're analyzing network performance and we need to compare the
     snoops for the server and the receiver end. We have both captures done
     at syncronized time but for best comparison, we need to put them both into
     one window, superimpose them if you will. Is this possible? If so, how? 
  
A43. xplot files are plain text files hence it is pretty easy to combine graphs 
     manually with an editor. The first few lines of the file are setup and titles.
     The last line is the word "go". Get rid of the setup lines, change the plotting
     colors and combine the files together.

===========================================================================
Thu 29 Nov, 2001

Q44. I'd like to remove the arrows in time sequence graph (tsg). What
     must I do? 
    
A44. I'm not sure exactly what you mean by the "arrows". However, those 
     are just text files, so can easily be edited by hand. Take a look, 
     Tim's input format for xplot is very readable. If you're just
     talking about the arrowheads, you might try something like: 

     	     `egrep -v '^[ud]arrow' b2a_tsg.xpl > new_tsg.xpl`

===========================================================================
Thu 29 Nov, 2001

Q45. I use tcptrace to view test results to measure tcp performance on 
     'ad hoc' wireless network IEEE802.11 based. I use also tcpdump (to 
     dump packet) and DBS (to generate TCP traffic). As result I can see 
     a lot of HD (Hardware duplicate) but I don't understand what it
     means.
  
A45. HD is an indication that tcptrace thinks it is seeing a "Hardware 
     Duplicate". That means that it saw exactly the same frame twice and 
     it assumes that it was duplicated by the hardware or appeared twice
     on the wire due to bad routing. I'm not sure which of those might be the 
     case for you. 

     If it's annoying, you can disable the warnings with:

     	--nocheck_hwdups DON'T check for 'hardware' dups 
  
     Of course, if they're really there, they will throw off some of the 
     analysis because they'll count as retranmissions then. 

===========================================================================
Thu 29 Nov, 2001

Q46. What's the meaning of the yellow line in time sequence graph? Is it the 
     advertise window at receiver? If yes, how can I measure it if on the 
     Y axis there are the packet number sequence? 
   
A46. That's the advertised window in terms of sequence number. The 
     difference between the green line (ACK) and yellow line (RWIN) will 
     be the numeric advertisement from the packet (32k for example). 

===========================================================================
Mon 14 Jan, 2002

Q47. I am interested in measuring the throughput of my client-server 
     application i.e port to port throughput ability.
  
A47. I get questions like this a lot. There isn't a lot of "aggregate" 
     logic in the program because there are so many different ways to 
     answer the question. It's pretty easy to add whatever you want, 
     though. HOWEVER, you might find the "traffic" module handy. 
 
     For example: 

     	 `tcptrace "-xtraffic -G" file.dmp`
    
     will generate a lot of graphs that might help. The command 
   
     	 `tcptrace -hxargs` will help you with the arguments. 
      
     If you want something more, then it would be pretty easy to add the 
     code into the mod_traffic.c file. 

===========================================================================
Wed Jan 22, 2002

Q48. Do I need to install anything else for tcptrace?

A48. Yes, make sure you have installed libpcap, the standard packet capture
     library if you want to read tcpdump files. It is a good idea to install
     on your Unix system.

===========================================================================
Wed Jan 22, 2002

Q49. Does tcptrace work with Windows?

A49. Well, nobody has tried to compile tcptrace on Windows platform yet. However
     tcptrace can read network dumpfiles collected on Windows machines using
     WinDump/WinPcap.

     It has been tested to work successfully on
     	WinDump version 3.5.2b ("http://netgroup-serv.polito.it/windump/")
	WinPcap version 2.2    ("http://netgroup-serv.polito.it/winpcap/")

===========================================================================
Wed Jan 22, 2002

Q50. Can I convert the .xpl files generated by xplot into gnuplot format?

A50. Yes, look at the xpl2gpl converter that comes with the distribution of
     tcptrace. You might also want to check the README.xpl2gpl file.

===========================================================================
Mon Feb 11, 2002

Q51. Why do I get the error "Fatal, too many hosts to name (max length 8)", when
     I run tcptrace on my dump file?

A51. It has been found that this error is related to a bug in the compiler gcc,
     version 2.95.3. When this version of the compiler is used to compile tcptrace
     along with CCOPT=-O2, it generates incorrect assembly code which then leads
     to the mentioned error. 
     
     If you are using version 2.95.3 of gcc, following are the suggested
     solutions:
     
        1. Update gcc to the latest version and then recompile tcptrace.
	2. Use the same version of gcc, but edit the tcptrace Makefile,
	   setting CCOPT=-O instead of CCOPT=-O2, and then recompile tcptrace.
     
     Either of these steps should hopefully fix the problem.
     
===========================================================================
Tue Apr 23, 2002

Q52. I have difficulties analyzing trace files generated by ns2 with tcptrace.   
     These tcp trace files have got the extension '.tr' and are not recognized
     by tcptrace as trace files generated by ns2. My question is, do I need to
     update tcptrace ( I am using version 6.0.1) or are there other settings  
     to handle on ns2.
     
A52. Many thanks to Daikichi Osuga (osuga@mml.yrp.nttdocomo.co.jp) for
     providing help with this:

     	  add 2 lines to ns simulatin script.  
           
     	  set f [open out.tr w]               
	  $ns trace-all $f                 
                              
     I use tiny script "splittr" to split trace file into "sender side" and "reciever
     side".  --Daikichi Osuga 

===========================================================================
Wed May 08, 2002

Q53. How is the throughput in the throughput graph measured ?                  
     Does it include payload + tcp/ip header or just the pure payload ?
     
A53. It includes just the pure payload.

===========================================================================
Tue Aug 27, 2002

Q54. How can I calculate the delay and delay variation (jitter) with tcptrace
     output? What about the "idletime max", how is this figure calculated?
     
A54. 'tcptrace -xtraffic -R <filename>'

     might be useful if you are looking for the avg, min and max
     round-trip-times (rtt).

     Also,

     'tcptrace -R <filename>'

     might be useful for rtt sample graphs.
     
     You can calculate the delay variation by calculating "max. rtt - min rtt"
                                       --Habib Habiby (Tarek) <td@maktoob.com>
						       
     As of the idletime max figures, they are printed for each connection and
     each direction with the '-l' option. They are calculated as the largest
     amount of time elapsed between any 2 consecutive packets seen in a
     particular direction.

===========================================================================
Mon Jun 30, 2003

Q55. Does anyone know if (and HOW) tcptrace deals with distinguishing
     between those samples from ACKs that are Delayed ACKs (one ACK per two
     data packets) vs. those ACKs that are an ACK per data packet?
       
     I must distinguish the subsequent ACK as being sent after an ACK
     timeout, (which I believe is between 200ms and 500ms), if the receiver 
     in this case is using a Delayed ACK implementation.
     
A55. tcptrace does not implement a mechanism to distinguish normal ACKs from
     Delayed ACKs. However, observing the time-sequence graphs (generated with
     -S option) could suggest if the receiver is using Delayed ACKs
     by observing if an ACK is sent for every two data segments or for one).
    
     However, when calculating an RTT sample tcptrace uses the timestamp of
     the most recent unacknowledged segment covered by an ACK. Hence, in the
     case of Delayed ACKs, RTT times would not include the delays introduced
     by Delayed ACKs.
     
===========================================================================