diff --git a/ARGS b/ARGS new file mode 100644 index 0000000..3959b13 --- /dev/null +++ b/ARGS @@ -0,0 +1,43 @@ +Fri Nov 6, 1998 + +In Use Options + + -AN Average N segments for throughput graphs, default is 10 + -BN first segment number to analyze (default 1) + -C produce color plot[s] + -D print in decimal + -EN last segment number to analyze (default last in file) + -F create segsize graph[s] + -G create ALL graphs + -M produce monochrome (b/w) plot[s] + -N create cwin graph[s] (data on _N_etwork) + -Ofile dump matched packets to tcpdump file 'file' + -P print packet contents for selected connections + -R create rtt sample graph[s] + -S create time sequence graph[s] + -T create throughput graph[s], (average over 10 segments, see -A) + -W report on estimated congestion window (not generally useful) + -X print in hexidecimal + -Z dump raw rtt sample times to file[s] + + -b brief output format + -c ignore non-complete connections (didn't see syn's and fin's) + -d whistle while you work (enable debug, use -d -d for more output) + -e extract contents of each TCP stream into file + -fEXPR output filtering (see -hfilter) + -h print help messages + -iN ignore connection N (can use multiple times) + -l long output format + -n don't resolve host or service names (much faster) + -oN only connection N (can use multiple times) + -p print all packet contents (can be very long) + -q no output (if you just want modules output) + -r print rtt statistics (slower for large files) + -s use short names (list \"picard.cs.ohiou.edu\" as just \"picard\") + -t 'tick' off the packet numbers as a progress indication + -u print minimal UDP information too + -v print version information and exit + -w print various warning messages + -xMODULE_SPECIFIC + -y omit the (yellow) instantaneous throughput points in tput graph + -z zero axis options diff --git a/CHANGES b/CHANGES new file mode 100644 index 0000000..d7d46f5 --- /dev/null +++ b/CHANGES @@ -0,0 +1,654 @@ +3.2.2 - Late 1996 + added better checking for looking too far into truncated + packets + +3.2.3 - Thu Jan 23, 1997 + added a lot more truncation checking! + +3.2.4 - Tue Feb 4, 1997 + changed plotter.c:HostLetter(ix) + to support unlimited (26**8) different endpoints (for mallman) + fixes from Bill Fenner, thanks + fixed bug in va_start/va_end in DoPlot. + fixed bug with temporary colors not being done correctly + when using text. Caused by Changes to xplot at last + version and I didn't catch it +3.2.5 - Wed Feb 5, 1997 + fixed small "off by one" error introduced by the LAST fix +3.2.6 - Thu Feb 13, 1997 + fixed small bug in etherpeek reading. slicelength stored as "0" when + entire packet was grabbed, didn't work before, now it does. +3.2.7 - Fri Feb 14, 1997 + fixes from Jeff Semke, PSC + fixed bug in output.c that make it fail on some machines + added FDDI support (untested by me, don't have FDDI) + added Makefile flags so that it will compile on a "NetBSD 1.2 on a + Pentium box" (also untested by me, I don't have one) + an HP compiler picked out some places where I missed a static + decl for some functions. Not fatal, but I fixed it. +3.2.8 - Tue Mar 4, 1997 + added changes for Mark + allow connection reuse on same pair of IP addresses and ports + 4 minutes must have passed and either new segment has a SYN + or old connection had seen both FINs + added fix to tcptrace.c so that ^C processing is re-enabled after + all packets read so that the output can be killed from the + keyboard + fix by Bill Fenner - Endian boo boo caused PC's not to read + any packets. + removed the "-m" option and made all of the array structures + resizable (now supports an "infinite" number of connections) + changed elapsed() routine to return double to prevent overflow + of microsecond stored in a long int +3.2.9 - Wed Mar 5, 1997 + changes by Rich Jones at HP to run under HPUX + mostly fixed the non-ansii standard + #endif FOO + to be + #endif /* FOO */ + fixed minor printing bug, 1323 flags printed wrong + fixed snoop and netm so that they worked on PC's + (more byte sex problems) +3.2.10 - Thu Mar 27, 1997 + Mark "pushed" segments on TSG plots + top arrow is red instead of white + Compute slow-start window size (should be one except for "new" tcp's) + Compute estimated congestion window +3.2.11a - Mon Mar 31, 1997 + Fixed bug is TS options are not 4-byte aligned + Fixed tick printing (bad % value) for HUGE files (millions of packets) + +3.2.12a - Thu Apr 24, 1997 + Fixed bug for file with large snap length + +3.2.13a - Mon Apr 28, 1997 + Big fix for Rob Austein + otherdir->ack being initialized incorrectly in trace.c at SYN time + +3.3.0 - Mon Jul 14, 1997 + Added modules support + Included http module for NASA + Backed out delete of libpcap, causes too many problems + Now using libpcap 0.4 + +4.0.1 - Tue Jul 15, 1997 + Ready for next public release (I hope) + Verified on the platforms I have access to + +4.0.2 - Wed Jul 16, 1997 + Added '-W' option to turn off Mark's estimated Cwin stuff, it's not + generally useful + Added raw packet printing to mod_http + +4.0.3 - Thu Jul 24, 1997 + Fixed tcpdump.c to work with lastest libpcap + (can no longer assume that header is aligned :-( ) + Added plast into all packet reading routines to better check for the end + of packets + Added fix from Kacheong Poon for sack truncation problem + +4.0.4 - Wed Aug 13, 1997 + Added some very minor patches to ease FreeBSD patch. All you should need to do + now is change the Makefile for FreeBSD (thanks Bill Fenner) + Added hack by Mark Allman for http module + Added minor changes to support Linux compilation (mostly just left + the standard include files in a separate linux directory) +4.1.0 - Fri Aug 22, 1997 + Added support for reading compressed files (configurable, .gz and .Z by default) + Added option to save TCP stream data into files (-e) + Modified mod_http.c to support HTTP1.1 streams (ick) + Added help argument "-h" with several options for information + including docs for long format output +4.1.1 - Fri Sep 5, 1997 + Minor mfiles bug fixes + mod_http now generates plot files, still experimenting + fixed tcpdump to allow files with DLT_NULL headers +4.1.2 + Added more module interface routines + Allow modules to have per-connection data structures + Fixed some compression bugs +4.1.3 + Added "percent done" for compressed files, just a guess but better than N/A + Passed filesize and compressed state to modules + Added mod_traffic + fixed bug in extract_contents (for mod_http) that caused it to fail if the first segment + seen was not the first segment of the connection (oops!) + Added -z flag to plot time axis from 0 rather than wallclock time + big lint cleanup + added support for "configure" to simplify cross-platform stuff + added Mark's "data xmit time" code +4.1.4 + minor LINT fix in print.c + added ECHO/ECHOREPL CC/CCNEW/CCECHO to understood options + added support for Etherpeek version 7 save file format + fixed minor http modules bugs + changed some longer fields to use "long long" if available + added "pushed packets" counter + added hardware duplicate detection +5.0a + adding Nasseef's IPv6 support + added the -y flag to turn off the (yellow) instantaneous dots in the tput plot + first cut at the output filtering code (slick!) +5.0.2 + added support for DLT_RAW under tcpdump (pcap) +5.0.3 + bug fix for John Tysko, tcp_length & tcp_data_length were unsigned + and resulting in a HUGE amount of data if the tcp header was + truncated. Changed to unsigned. + count/print truncated bytes/segs ALWAYS, not just when extracting data + changed to use flex/bison for better portability + fixed bug in etherpeek for odd-sized packets from compressed files +5.0.4 - Thu May 14, 1998 + forced the "char" types for tcp_opt for ws and sack_count to be + "SIGNED char", because the compiler on my PB3400/Linux makes them + unsigned by default. The "-fsigned-char" could also fix it, but this + seems easier. +5.0.5 - Tue Jun 23, 1998 -- Fri Aug 7, 1998 + fixed mod_traffic memory allocation bug. I wonder why nobody reported this? + added "pure ack" counter (for Mark) + added call to print modules usage for "-hargs" + added Eric's tcplib-generating module + added check for ASCII input + added reading of arguments from resource file, then from envariable, and + then from the command line (suggestion from Jeff Semke) + can read from standard input if filename is "stdin" + extended "-z" option to allow you to lock either the X or the Y axis + (or both) to zero (for Brian Utterback) + added printing of zero-sized packets (for Brian Utterback) + zero-sized packets pointed out a "bug" in the zero-based time stuff from + version 4.1.3. Both graphs in a pair don't have the same "zero point", + which is a little confusing. They were off by 1/2 a RTT, the + difference between the SYN and the SYN/ACK. I fixed this by adding a + green dot corresponding the the first SYN in the second graph. Kind + of helpful in general, too. + added Mallman's netbsd mkstemp change in compress.c + extended the "-w" flag to make the normal case quieter + lots of changes to mod_traffic, plus a few bugfixes, mostly for my use +5.0.6 - Fri Aug 14, 1998 + added UDP connection support, a lot of people have been asking for it + finished mod_collie +5.0.7 - Mon Aug 24, 1998 + fixed bug in StringToArgv() that messed up when the arg buffer started + with whitespace +5.0.8 - Wed Sep 9, 1998 + changed mod_traffic to ALWAYS 'quiet' the final traffic output + fixed bug report from Mark, SYN RTT's weren't being included in min + RTT report. Fixed so that both SYNs and FINs are included in that + calculation. +5.0.9 - Thu Sep 24, 1998 + fixed bug with "only" connections not detecting reuse of ports + added warnings for re-ordered packets and/or files +5.0.10 - Thu Oct 1, 1998 + bug fix in snoop.c, netm.c, and epeek.c + Just a check for bogus save files with invalid packet lengths to + keep the program from crashing without warning + fixed args in tcplib module to match the conventions in the other modules + added "long duration" connection graph to traffic module + bug fixes from Michele Clark - UNC + thruput plot files - graph for both directions had the same title + suggested making the type for the xplot sequence number axis "double" + rather than "unsigned". The unsigned was from Tim Shepard's + original xplot demo files. She says that double makes it work + better for large sequence numbers. I'll try it and see if anybody + has trouble. + changed "new connection" heuristic. Then a new connection uses the same + pair of ports as a previous connection, it wasn't always being detected. + This was originally pointed out by Brian Utterback and later by Mark + Allman. New heuristic is more in line with RFC1122 (SYN is out of + the sequence space for the previous connection). +5.0.11 - Mon Oct 19, 1998 + Brian Utterback found another case where I was splicing connections + together. Bad unsigned match caused it... fixed (knock, knock) +5.0.12 - Mon Nov 2, 1998 + Added generic, high-level line drawing functions to plotter.c + Used same in mod_traffic to add an overall RTT plot + Added one more minor patch to the connection splicing heuristic + Lots of changes to make the RTT calculation better in cases of + retransmissions and etc + Added RTT graph to the traffic module + Added triple-dupack counter + Added triple dupack tick on TSG graphs + Added dongles to ACKS on the TSG graphs to distinguish different kinds of + ACKS that need to be handled differently for RTT calculation +5.0.13 - Wed Nov 4, 1998 + Fixed tcpdump OUTPUT bug, created files generated "truncated-ip" + warnings from real tcpdump program, I fixed it. + Added cwin graph (-N) for Mark + Added segsize graph (-F!) for Jeff Fedor + Added elapsed time to "tick" output to make it easier to stop early + Added "pure acks/second" to traffic module + Added "halfopen conns" to traffic module +5.0.14 - Wed Nov 18, 1998 + Changed the way that connections are stored and searched. Has a major + impact in improving performance when the program's VM Size + grows above the machine's physical memory. It can now continue to run + well under these conditions (up to available swap space), before it + just thrashed itself to a standstill. +5.0.15 - Fri Nov 20, 1998 + possible fix for pipe() failure with too many files open + added some minor argument parsing checks + added a few extended arguments "--foo" to control lesser-used functions + fixed PAGESIZE reference for Craig Metz - not under some Linux + fixed error in stats when SYNs and FINs rexmitted, unique bytes was wrong + (which threw off missed data and throughput) + fixed a bug where rexmitted SYNs were not being included in the + rexmit counts (also fixed marking on tsg graphs) + added another case to the connection-splicing code to fix something + I saw with FACK/SACK + fixed references to the idle_max counter to give the same answer everywhere + (some machines were overflowing sooner than others, I changed the math) +5.1.0 - Tue Dec 1, 1998 + Getting ready for a new multi-platform distribution +5.1.1 - Wed Dec 9, 1998 + Fixed bug from Brian Utterback, both RTT graphs had same title + ... which led me to discover a rather obscure bug that caused the first RTT plot + to get corrupted, but only if no other plots were requested +5.1.2 - Mon Dec 14, 1998 + Added extended options for + --showrttdongles mark non-RTT-generating ACKs with special symbols + --noshowrttdongles DON'T mark non-RTT-generating ACKs with special symbols + --showdupack3 mark triple dupacks on time sequence graphs + --noshowdupack3 DON't mark triple dupacks on time sequence graphs + --show0lensegs show zero length packets on time sequence graphs + --noshow0lensegs DON'T show zero length packets on time sequence graphs + made the default for the RTT dongles FALSE, they're not generally useful + Minor Docs changes for filtering + Added new filter syntax prefix 'b_' + to recap: + # 'c_' means just "Client" + ./tcptrace '-fc_segs>100' file + Output filter: (c_segs>100) + + # 's_' means just "Server" + ./tcptrace '-fs_segs>100' file + Output filter: (s_segs>100) + + # no prefix, either one + ./tcptrace '-fsegs>100' file + Output filter: ((c_segs>100)OR(s_segs>100)) + + # 'e_' means "Either", same as without prefix + ./tcptrace '-fe_segs>100' file + Output filter: ((c_segs>100)OR(s_segs>100)) + + # 'b_' means "Both" + ./tcptrace '-fb_segs>100' file + Output filter: ((c_segs>100)AND(s_segs>100)) + Added initial support for the NLANR tsh packet format + bug fix, packets/connection were being passed to modules even though they + were supposed to be ignored (caused mod_rtt to break, probably others too) + name resolution: split in half to + resolve_ipaddresses + resolve_ports + +-n still toggles both, but extended args let you control either + changed "-o" option to allow "-oM-N" + bug fix from Jamshid Mahdavi, sack blocks not converted to local byte order + (made intel platforms plot/print sacks wrong) + added support for TCP/UDP/IP checksum verification + only implemented for IPv4 + --checksum turns it on, it's expensive +5.1.3 - Tue Jan 19, 1999 + added FDDI support in snoop module (for Brian Utterback) + changes from Jun-ichiro Hagino, made compliant with latest IPv6 + API/implementations (just changes to constant names in ipv6.[ch]) + minor bug fixes to tcplib module +5.1.4 - Wed Jan 27, 1999 + fixed bug in congestion window graph, REALLY long connections would + cause a counter to wrap around, messing up the average + fixed major bug in tcplib module, ftp data and control ports were backwards + The -O options was writing IPv6 packets incorrectly (wrong length) +5.1.5 - Wed Feb 17, 1999 + fixed bug in reading .tcptracerc files, caused core dump on some files + when printing packets, IP options are now printed too +5.1.6 - Tue Mar 16, 1999 + added extended arg for triple dupack stats (--dupack3_data) + by default: if a segment has data, it can't be a triple dupack + optional: if a segment has data, it CAN be a triple dupack + bug fix from Brian Utterback in snoop.c. Obscure alignment problem fixed. + added "total data" graph to traffic module + made counters "long long" in traffic module + patches from Kevin Lahey to print ECN information + patches from Kevin Lahey to read LBL Network Simulator (ns) output + allow unambiguous prefixes of extended args (--foo) + added --dump_packet_data to add TCP/UDP packet DATA printout along + with individual packet dumps (--dump is good enough prefix) + bug fixed to the http module from Daikichi Osuga (byte sex problems) + added support for DLT_ATM_RFC1483-format tcpdump files +5.2.0 - Tue Sep 7, 1999 + patch in gache.c for Linux/Redhat stupidity with the strncmp() macro + fixed ipv6.h to work with the way that Linux/Redhat built IPv6 + fixed bug in recording window stats from SYN packets when using scaling + fixed off-by-one in final report on number of packets seen + fixed ipv6 packet printing byte-sex problems +5.2.1 - Wed Sep 15, 1999 + fixed bug (probably introduced in 5.2.0) that kept -B from working + fixed bug in snoop-format code that caused it to fail if it saw a + non-IP packet +5.2.2 - Mon Sep 27, 1999 + bug fix from Jamshid Majdavi (and Kevin Lahey), SYN-ACKs containing window + scaling were getting scaled (and shouldn't be). +5.2.3 - Interal changes and enhancements +5.2.4 - Tue Apr 11, 2000 + bug fix by Priya - we were detecting rexmitted bytes in segments in error in + some cases + fixed bug in IPv6 header processing reported by Takayoshi Ohnishi, + IPPROTO_ICMPV6 was causing infinite loop +5.2.6 - Thu Jul 6, 2000 + fixed bug in TCP checksum code, it was always saying CORRECT +6.0.0a - preparing for alpha release of version 6 +6.0.1a - added support for atmsnoop output format in snoop.c +6.0.1a2 - changed all of the DLT_ constants in tcpdump.[ch] to PCAP_DLT_ + with the same numbers to avoid OSs that are renumbering them. +==== +Note: + Wed Jun 6, 2001 + We've switched to CVS for everything and there's a bunch of us working on + the code, so this file might not get updated the way that it should. We'll + try to make the CVS logs visible in some fashion... +==== +6.0.1a3 - added format characters to several options, as an extension of a + suggestion by Brian Utterback: + + --output_dir="STR" directory where all output files are placed (default: '') + --output_prefix="STR" prefix all output files with this string (default: '') + --xplot_title_prefix="STR" prefix to place in the titles of all xplot files (default: '') + + These options (which are handy in .tcptracerc for example), let you include + the format characters: + + %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" + + others could be added, but that's the only stuff I could think of for now. + +6.0.0b4- Saturday, 6 Oct 2001 + +Added options : + --xplot_all_files and --xplot_args. + --xplot_all_files calls the xplot program to display all the + generated graphs automatically . + --xplot_args can be passed an argument as in + --xplot_args=-1 + to pass arguments to the xplot program when calling + it to display the graphs. + +Added support for zero window probe packets and urgent data packets. +tcptrace -l output shows four new fields +zwnd probe pkts, zwnd probe bytes, urgent data pkts and urgent data +bytes. + +Fixed all sprintf's in the code to snprintf's to thwart any +buffer overflow attacks. + +Changed functionality for window scaled connections so that +the output of "min win adv" does not print the minimum window +as advertised in SYN packets as SYN packets cannot be scaled +themselves. + +Completely revamped the http module with code sent by Bruce Mah. + +Added code to verify TCP and UDP checksums in IPv6 packets. +However, code has not been tested thoroughly yet. + +6.0.1 - Mon Dec 3, 2001 + +This is the version we'll release + +Also, added support with --print_seq_zero for printing sequence numbers + as relative to the SYN rather than absolute. NOTE: this only works for + "-P" which uses connection records, but NOT for "-p" (which doesn't) + Also fixed the SACK-printing code to print in decimal if requested. + +Updated the manual page and made the necessary change to Makefile.in so +that the manual page gets installed when tcptrace is installed. + +Fixed a bug with with the statistics for average window advertisement. +Average was showing more than max. + +Fixed a bug with ACK sequence comparisons in the HTTP module. Many thanks to +Daikichi Osuga for pointing out the error. + +Fixed a divide-by-zero error in PlotHist() in mod_rttgraph.c. + +Matt Muggeridge has been very kind in providing detailed information regarding +porting tcptrace to OpenVMS. Please read the new file README.OpenVMS if you +are interested in running tcptrace on OpenVMS. + +Changes made to code in order to be able to compile tcptrace under cygwin on +Windows. Now works on windows too. Does not support reading compressed dump +files directly though. + +The ns code was modified by Angelos Stavrou to read in the more detailed +output from the extra headers in the ns FullTcp. + +Fixed a bug with the host letters. The function HostLetter was skipping host +names after y, z ... jumping to ba, bb, ... instead of aa, ab ... + +6.2.0 - Stable - Fri Jul 26, 2002 +This is the version we'll release + +6.2.1 - Fri Aug 09, 2002 +enhance fulltcp file reading from r.schramp@kpn.com + +6.2.2 - Fri Aug 30, 2002 +added vlan support to snoop for Tysko. Need to add support in other +formats too, but I don't have a packet dump to test against yet - sdo + +6.2.3 - Wed Sep 18, 2002 +bugfix: For FIN segments with data only FIN was getting plotted and not the + data. Now data gets plotted with the default color and then one byte + is plotted with the synfin color. For no data, only one byte of FIN + is plotted with the synfin color. + +6.2.4 - Wed Sep 18, 2002 +bugfix: RST_IN relative offset was being calculated using the incorrect + sequence space. + + trace.c:1894 + + plotter_text(to_tsgpl, + current_time, SeqRep(thisdir,plot_at), + "a", "RST_IN"); + + + changed to: + + plotter_text(to_tsgpl, + current_time, SeqRep(otherdir,plot_at), + "a", "RST_IN"); + +6.2.5 - Mon Nov 11, 2002 +bugfix: Negative sequence numbers were being printed by function + PrintSeqRep() for the packet print '-p' / '-P' switches. Changed the + print format from %d to %u. + +6.2.6 - Thu Nov 14, 2002 +bugfix: '-c' option - ignore non-complete connections was working only for + long output. Fixed it to work for brief output too. + +Release 6.4.0 +============= +Bugfix made to fix misbehavior due to FILE synchronization issues +found when tcptrace exits with "PCAP error - truncated file" when asked to +read real-time network packets from STDIN - Mani. + +Patches added to process dumpfiles with 802.11 wireless headers for the +Prism2 chipset. Courtesy - Brandon Eisenmann. + +Added new extended option "--nonreal_live_conn_interval" option to let the +user set the duration to timeout live connections, in non real-time mode +- Ramani. + +Merged from development tree: + +Added the options --oUDP, --iUDP, --oTCP, --iTCP to filter out TCP +and UDP connections - Mani + +Added options --csv, --tsv, --sv= for comma/tab/-separated values to be +printed with the long output - Avinash + +6.4.1 : 26 APR 2003 Mani +----- +Fixed a bug in the processing of IPv6 extension headers in ipv6.c:findheader() + +6.4.2 : 3 MAY 2003 Jitesh +----- +Fixed the processing of duplicate ACKs as in the BSD stack to count towards +the 3 dupacks required for fast-retransmit. + +6.4.3 : 17 MAY 2003 Mani +----- +Fixed the bug in processing IPv6 extension headers in ipv6.c:gethdrlength() +based on the patch sent by Thomas Bohnert. + +6.4.4 : 19 MAY 2003 Wes +----- +Added dsack counter to long output format and dsack sample input and output + +6.4.5 : 13 JUN 2003 Mani +----- +Fixed bug in the calculation of the "avg win adv" field, so that now avg. +falls in between min and max. + +6.4.6 : 1 JUL 2003 Mani +----- +Changes made to make gcc-3.3 make lesser warnings with tcptrace. + +6.4.7 : 1 AUG 2003 Mani +----- +Made the --csv/--tsv/--sv options' implementation better. + +6.4.8 : 4 AUG 2003 Mani +----- +Fixed a bug in traffic module, so that the number of open connections are +printed correct in the traffic_stats.dat file, even without giving +the -C option. + +6.4.9 : 6 AUG 2003 Jitesh +----- + +Included the code to recognize Endace ERF (Extensible Record Format), sent +by Jesper Peterson. + +6.4.10: 14 Aug 2003 Jitesh +------ + +Included the code to recognize the PPP (Point-to-Point) input file format, +sent by Yann Samama. + +6.4.11: 14 Aug 2003 Mani +------ + +Fixing the bug with filtering connections based on hostname/portname with +the -f option. + +6.4.12: 15 Sep 2003 Jitesh +------ + +Included the code to generate PF file with '-c' option. Error messages are +made more logical when generating error messages for unsupported input and +captured file formats. + +6.4.13: 7 OCT 2003 Mani +------ + +Applied patch from Ulisses Alonso Camaro that lets SYN segments following +zero window advertisements from the opposite direction *not* be treated +as window probes. Also fixed a compilation problem due to the previous +patch by Jitesh (moved the "static int count=0" line to the beginning of +trace_done() function in trace.c). + +6.4.14: 12 OCT 2003 Mani +------ + +Fixed bunch of gcc3.3.1 warnings in erf.c (unused variable warning), netm.c, +ns.c (dereferencing type-punned pointer warnings). + +6.4.15: 21 OCT 2003 Mani +------ + +Fixed the typo(?) that made us have a #ifndef __WIN32 to #ifdef __WIN32 in +ipv6.h for the in6_addr structure definition. + +Patching in changes to mod_http.c making it more robust to print +information in cases where connections get closed with RST instead of +FINs and other trivia based on Yufei Wang's patch. + +6.4.16: 31 OCT 2003 Mani +------ + +Applying the patch courtesy John Heffner that displays a yellow rwnd line +in owin plots. Also adding --showrwinline option to control the yellow +rwnd line, in case it gets annoying. + +Also fixing trivia (type conversions for certain uint to int, etc.) in +output.c to keep gcc3.3 from warning on MacOSX 10.3. + +6.6.0: 4 Nov 2003 Mani +----- + +All the changes you see above in the 6.4.x series are part of the release +6.6.0. + +6.6.1: 25 Nov 2003 Mani +----- + +Includes a bugfix by Ramani, that restored the old semantics of the +SameConn() and WhichDir() functions and includes +new functions AVL_CheckHash() and AVL_CheckDir() to support the AVL tree +hash-bucket implementation. + +Includes a fix to ns.c to correctly read port numbers; added +functionality to track LEAST variables and reno LEAST algorithm to trace.c; +added isRTO() in rexmit.c : all by Wes. + +6.6.2: 25 Feb 2004 Mani & Jitesh +----- + +Fixed tcpdump.c to trace IP packets buried under VLAN headers. + +6.6.3: 1 Mar 2004 Mani +----- + +Added a function MissingData() in trace.c to check if TCP segments were +missing or were truncated when the -e option is given to extract +contents. + +6.6.4: 4 Mar 2004 Mani +----- + +Adding in the INBOUNDS module into the main tcptrace development tree. +It is NOT built in by default though; you need to uncomment a line in +Makefile.in to enable it. + +6.6.5: 1 Oct 2004 Mani +----- + +* Josh fixed the file format searching order, putting tcpdump format to +the end in file_formats.h as a work around for libpcap brokenness. + +* Fixed Mfopen() in mfiles.c to open content data files that we +generate in "binary" mode - by changing fopen mode from "w" to "wb+" and "a" +to "ab+". The 'b' is dummy in UNIX systems, but seems to have some +semantic in the Windows world. + +* Fixed QuitSig() function in tcptrace.c by adding a call to +udptrace_done() so that we print out UDP connection stats too (if one +were piping live tcpdump traffic to tcptrace and "ctrl-c"-ed it in the +middle, for example). On the way, also fixed the arbitrary "buf[4096]" +declaration to be written correctly as "buf[COMP_HDR_SIZE]" in the +PipeFitting() function. + +6.6.6: 7 Oct 2004 Mani +----- + +Fixed the callback function in tcpdump.c to prevent garbage data from +getting into the ip_buf buffer. + +6.6.7: 4 Nov 2004 Mani with help from Dr.Ostermann & Josh +----- + +Fixed bugs found in the AVL search function that had major bugs / +complexity issues. \ No newline at end of file diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..5b6e7c6 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..c4753a7 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,54 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..add3d5f --- /dev/null +++ b/FAQ @@ -0,0 +1,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: '') + --output_prefix="STR" prefix all output files with this string (default: '') + + 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 (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 ' + + might be useful if you are looking for the avg, min and max + round-trip-times (rtt). + + Also, + + 'tcptrace -R ' + + might be useful for rtt sample graphs. + + You can calculate the delay variation by calculating "max. rtt - min rtt" + --Habib Habiby (Tarek) + + 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. + +=========================================================================== diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..a4d285d --- /dev/null +++ b/INSTALL @@ -0,0 +1,39 @@ + +OK, to the best of my knowledge, you should be able to get tcptrace to +compile and run under: + +Solaris +NetBSD +FreeBSD +Linux +Tru64 +Darwin/OSX + + +Step 1: Get pcap library + If you want to be able to read tcpdump format files, then you'll + need to have already installed the pcap library (see README.pcap). + If tcpdump was installed correctly, then you're probably all set. + If you don't HAVE this package and don't CARE about it, then comment + "GROK_TCPDUMP" out of Makefile.in and we'll just skip it in the + compilation. + +Step 2: run "./configure" + that should build a Makefile that'll work on your machine + +Step 3: Edit Makefile + Only necessary if you want to change the file formats supported, + the modules compiled in, compiler flags, etc (it's commented) + +Step 4: run "make" + that should create tcptrace + +Step 5: Install + The program doesn't need to be setuid or anything, so once you get + the "tcptrace" binary, just stuff it wherever you keep such things + and you're all set. + "make install" will put it in /usr/local/bin by default + +Shawn Ostermann + +Fri May 25, 2001 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cbe93af --- /dev/null +++ b/Makefile @@ -0,0 +1,433 @@ +# +# Makefile for tcptrace +# +srcdir = . +top_srcdir = . + + +################################################################## +# +# tcptrace supports reading compressed files with a little help... +# 1) If your system has "gunzip", then uncomment the following line to +# support on-the-fly decompression of ".gz" and ".Z" files... +DEFINES += -DGUNZIP="\"gunzip\"" +# 2) Otherwise, if your system supports standard Unix "uncompress", +# then uncomment the following line to support on-the-fly +# decompression of ".Z" files... +#DEFINES += -DUNCOMPRESS="\"uncompress\"" +# 3) Also, we assume most systems have the "bunzip2" utility installed, +# if yours doesn't, you'll want to comment out the next line. +DEFINES += -DBUNZIP2="\"bunzip2\"" +# - we'll do path search on the string you specify. If the program +# isn't in your path, you'll need to give the absolute path name. +# - if you want other formats, see the "compress.h" file. + + + +################################################################## +# +# If you want to read tcpdump output (which you probably do), +# you'll need the LBL PCAP library. I've just listed a bunch +# of places that it might be (other than the standard +# location). If it's somewhere else, just add it into the +# list. +# +################################################################## +PCAP_LDLIBS = -lpcap +PCAP_INCS = -I/usr/local/include -I. -I../pcap -I/usr/include/pcap +PCAP_LDFLAGS = -L/usr/local/lib -Llib -Lpcap -L../pcap -L./cygwin-libs + + + +################################################################## +# +# Plug-in modules. +# There's no reason that I can think of to remove them, but +# here they are. Just comment them out to omit them from +# the binary. +# +################################################################## +# +# Experimental HTTP analysis module +# +DEFINES += -DLOAD_MODULE_HTTP -DHTTP_SAFE -DHTTP_DUMP_TIMES +# +# Experimental overall traffic by port module +# +DEFINES += -DLOAD_MODULE_TRAFFIC +# +# Experimental traffic data by time slices module +# +DEFINES += -DLOAD_MODULE_SLICE +# +# Experimental round trip time graphs +# +DEFINES += -DLOAD_MODULE_RTTGRAPH +# +# Experimental tcplib-data generating module +# +# We are not going to compile in the antiquated TCPLIB module by default +# anymore. +# It seems to have quite some bugs, and being antiquated as it is, we thought +# it is not worth the time fixing them. Uncomment this line and ./configure +# and make again, if you really need the module. - Mani, 15 Aug 2003. +# DEFINES += -DLOAD_MODULE_TCPLIB +# +# Experimental module for a friend +# +DEFINES += -DLOAD_MODULE_COLLIE +# +# Example module for real-time mode +# +DEFINES += -DLOAD_MODULE_REALTIME +# +# INBOUNDS module implements the functionality required for the INBOUNDS +# intrusion detection system project, Ohio University. +# ( Uncomment the following line before running configure to build it ) +# DEFINES += -DLOAD_MODULE_INBOUNDS + + +################################################################## +# +# File formats that we understand. +# The only reason that I can see to remove one is if you don't +# have the PCAP library, in which case you can comment out +# GROK_TCPDUMP and still compile, but then you can't read the +# output from tcpdump. +# +################################################################## +# define GROK_SNOOP if you want tcptrace to understand the output +# format of Sun's "snoop" packet sniffer. +DEFINES += -DGROK_SNOOP +# define GROK_TCPDUMP if you want tcptrace to understand the output +# format format of the LBL tcpdump program (see the file README.tcpdump +# for other options) +DEFINES += -DGROK_TCPDUMP +# define GROK_NETM if you want tcptrace to understand the output +# format of HP's "netm" monitoring system's packet sniffer. +DEFINES += -DGROK_NETM +# define GROK_ETHERPEEK if you want tcptrace to understand the output +# format of the Macintosh program Etherpeek +DEFINES += -DGROK_ETHERPEEK +# define GROK_NS if you want tcptrace to understand the output +# format of the LBL network simulator, ns +DEFINES += -DGROK_NS +# define GROK_NLANR if you want tcptrace to understand the output +# format of the various NLANL tools +# (this doesn't work well yet, not recommended - Sat Dec 19, 1998) +# DEFINES += -DGROK_NLANR +# define GROK_NETSCOUT if you want tcptrace to understand ascii +# formatted netscout output files +DEFINES += -DGROK_NETSCOUT +# define GROK_ERF if you want tcptrace to understand the output +# format of the Endace Technology dagsnap program */ +DEFINES += -DGROK_ERF + +################################################################## +# +# Just a quick installation rule, not much to do +# +################################################################## +# Pathname of directory to install the binary +BINDIR = /usr/local/bin +MANDIR = /usr/local/man/ + + +################################################################## +################################################################## +################################################################## +# +# You shouldn't need to change anything below this point +# +################################################################## +################################################################## +################################################################## + +CC = gcc +CCOPT = -O2 +INCLS = -I. ${PCAP_INCS} + +# Standard CFLAGS +# Probably want full optimization +# FreeBSD needs -Ae +# HP needs -Ae +CFLAGS = $(CCOPT) $(DEFINES) -DHAVE_LIBM=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_UNSIGNED_LONG_LONG_INT=8 -DSIZEOF_UNSIGNED_LONG_INT=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_SHORT=2 -DHAVE_MKSTEMP=1 -DHAVE_VALLOC=1 -DHAVE_MEMALIGN=1 -DHAVE_INET_PTON=1 -DUSE_LLU=1 -D_BSD_SOURCE $(INCLS) + +# Standard LIBS +LDLIBS = -lm ${PCAP_LDLIBS} +# for solaris, you probably want: +# LDLIBS = -lpcap -lnsl -lsocket -lm +# for HP, I'm told that you need: +# LDLIBS = -lpcap -lstr -lm +# everybody else (that I know of) just needs: +# LDLIBS = -lpcap -lm +# +LDFLAGS += ${PCAP_LDFLAGS} + + + +# for profiling (under Solaris, at least) +#CFLAGS += -pg +#LDFLAGS += /usr/lib/libdl.so.1 + + +# Source Files +CFILES= avl.c compress.c erf.c etherpeek.c gcache.c mfiles.c names.c \ + netm.c output.c plotter.c print.c rexmit.c snoop.c nlanr.c \ + tcpdump.c tcptrace.c thruput.c trace.c ipv6.c \ + filt_scanner.c filt_parser.c filter.c udp.c \ + ns.c netscout.c version.c pool.c poolaccess.c \ + dstring.c +MODULES=mod_http.c mod_traffic.c mod_rttgraph.c mod_tcplib.c mod_collie.c \ + mod_slice.c mod_realtime.c mod_inbounds.c +MODSUPPORT=dyncounter.c +OFILES= ${CFILES:.c=.o} ${MODULES:.c=.o} ${MODSUPPORT:.c=.o} + +all: tcptrace versnum + +tcptrace: ${OFILES} + ${CC} ${LDFLAGS} ${CFLAGS} ${OFILES} -o tcptrace ${LDLIBS} + +# +# special rule for version.c +# needs to be recompiled EVERY time +# +# If you have problems getting "whoami", "hostname", or "date" to run on +# your machine, just hack in a quick string below in place of the command. +version.o: ${CFILES} Makefile + ${CC} ${CFLAGS} -o version.o -c $(srcdir)/version.c \ + -DBUILT_USER="\"`whoami`\"" -DBUILT_HOST="\"`hostname`\"" -DBUILT_DATE="\"`date`\"" + +# +# special rules for scanner/parser +# +# Note that I'm using the GNU bison/flex to get around the problems +# caused by the fact that that pcap library ALSO uses YACC, which can +# cause naming conflicts. The Gnu versions let you get around that +# easily. +# +YACC_VAL=yacc +LEX_VAL=: + +filt_parser.c: filt_parser.y filter.h + if test "${YACC_VAL}" = "bison -y" ; then \ + yacc -vd -p filtyy -o filt_parser.c $(srcdir)/filt_parser.y ;\ + cp filt_parser.c flex_bison ;\ + cp filt_parser.h flex_bison ;\ + else \ + echo "Could not find BISON on this system";\ + echo "Copying the BISON output files generated at our place" ;\ + cp flex_bison/filt_parser.c . ;\ + cp flex_bison/filt_parser.h . ;\ + fi + +filt_scanner.c: filt_scanner.l filter.h filt_parser.h + if test ${LEX_VAL} = "flex" ; then \ + : -t -Pfiltyy $(srcdir)/filt_scanner.l > filt_scanner.c ;\ + cp filt_scanner.c flex_bison ;\ + else \ + echo "Could not find FLEX on this system" ;\ + echo "Copying the FLEX output files generated at our place" ;\ + cp flex_bison/filt_scanner.c . ;\ + fi + +# filt_parser.h created as a side effect of running yacc... +filt_parser.h: filt_parser.c + +# version numbering program +versnum: versnum.c version.h + ${CC} ${LDFLAGS} ${CFLAGS} $(srcdir)/versnum.c -o versnum ${LDLIBS} + +# +# obvious dependencies +# +${OFILES}: tcptrace.h + + +# +# just for RCS +ci: + ci -u -q -t-initial -mlatest *.c *.h \ + Makefile.in configure.in config.guess config.sub aclocal.m4 \ + README* INSTALL* CHANGES WWW COPYRIGHT + +# +# for cleaning up +clean: + rm -f *.o tcptrace versnum core *.xpl *.dat .devel \ + config.cache config.log config.status bin.* \ + filt_scanner.c filt_parser.c y.tab.h y.output PF \ + filt_parser.output filt_parser.h + cd input; ${MAKE} clean + +noplots: + rm -f *.xpl *.dat + +initial: + cp Makefile.empty Makefile + +spotless: clean noplots initial + +# +# for making distribution +tarfile: versnum + @VERS=`./versnum`; DIR=tcptrace.$${VERS}; \ + GZTAR=$$HOME/tcptrace.$${VERS}.tar.gz; \ + make spotless; \ + cd ..; \ + ln -s src $${DIR} 2>/dev/null ; \ + /usr/sbin/tar -FFcvhf - $${DIR} | gzip > $${GZTAR}; \ + echo ; echo "Tarfile is in $${GZTAR}" +# +# similar, but include RCS directory and etc +bigtarfile: + cd ..; /usr/sbin/tar -cfv $$HOME/tcptrace.tar src + +# +# just a quick installation rule +INSTALL = ./install-sh -c +install: tcptrace install-man + $(INSTALL) -m 755 -o bin -g bin tcptrace ${BINDIR}/tcptrace +install-man: + $(INSTALL) -m 444 -o bin -g bin tcptrace.man $(MANDIR)/man1/tcptrace.1 + + + +# +# make development version +develop devel: + touch .devel + +configure: configure.in + autoconf + + +# +# generate dependencies +depend: + makedepend ${INCS} -w 10 *.c +# +# static file dependencies +# +avl.o: tcptrace.h +compress.o: tcptrace.h +compress.o: ipv6.h +compress.o: dstring.h +compress.o: pool.h +compress.o: compress.h +dstring.o: tcptrace.h +dstring.o: ipv6.h +dstring.o: dstring.h +dstring.o: pool.h +dyncounter.o: tcptrace.h +dyncounter.o: ipv6.h +dyncounter.o: dstring.h +dyncounter.o: pool.h +dyncounter.o: dyncounter.h +etherpeek.o: tcptrace.h +etherpeek.o: ipv6.h +etherpeek.o: dstring.h +etherpeek.o: pool.h +filt_parser.o: tcptrace.h +filt_parser.o: ipv6.h +filt_parser.o: dstring.h +filt_parser.o: pool.h +filt_parser.o: filter.h +filt_scanner.o: tcptrace.h +filt_scanner.o: ipv6.h +filt_scanner.o: dstring.h +filt_scanner.o: pool.h +filt_scanner.o: filter.h +filt_scanner.o: filt_parser.h +filter.o: tcptrace.h +filter.o: ipv6.h +filter.o: dstring.h +filter.o: pool.h +filter.o: filter.h +filter.o: filter_vars.h +gcache.o: tcptrace.h +gcache.o: ipv6.h +gcache.o: dstring.h +gcache.o: pool.h +gcache.o: gcache.h +ipv6.o: tcptrace.h +ipv6.o: ipv6.h +ipv6.o: dstring.h +ipv6.o: pool.h +mfiles.o: tcptrace.h +mfiles.o: ipv6.h +mfiles.o: dstring.h +mfiles.o: pool.h +names.o: tcptrace.h +names.o: ipv6.h +names.o: dstring.h +names.o: pool.h +names.o: gcache.h +netm.o: tcptrace.h +netm.o: ipv6.h +netm.o: dstring.h +netm.o: pool.h +netscout.o: tcptrace.h +netscout.o: ipv6.h +netscout.o: dstring.h +netscout.o: pool.h +nlanr.o: tcptrace.h +nlanr.o: ipv6.h +nlanr.o: dstring.h +nlanr.o: pool.h +ns.o: tcptrace.h +ns.o: ipv6.h +ns.o: dstring.h +ns.o: pool.h +output.o: tcptrace.h +output.o: ipv6.h +output.o: dstring.h +output.o: pool.h +output.o: gcache.h +plotter.o: tcptrace.h +plotter.o: ipv6.h +plotter.o: dstring.h +plotter.o: pool.h +pool.o: pool.h +poolaccess.o: tcptrace.h +poolaccess.o: ipv6.h +poolaccess.o: dstring.h +poolaccess.o: pool.h +print.o: tcptrace.h +print.o: ipv6.h +print.o: dstring.h +print.o: pool.h +rexmit.o: tcptrace.h +rexmit.o: ipv6.h +rexmit.o: dstring.h +rexmit.o: pool.h +snoop.o: tcptrace.h +snoop.o: ipv6.h +snoop.o: dstring.h +snoop.o: pool.h +tcpdump.o: tcptrace.h +tcpdump.o: ipv6.h +tcpdump.o: dstring.h +tcpdump.o: pool.h +tcptrace.o: tcptrace.h +tcptrace.o: ipv6.h +tcptrace.o: dstring.h +tcptrace.o: pool.h +tcptrace.o: file_formats.h +tcptrace.o: modules.h +tcptrace.o: version.h +thruput.o: tcptrace.h +thruput.o: ipv6.h +thruput.o: dstring.h +thruput.o: pool.h +trace.o: tcptrace.h +trace.o: ipv6.h +trace.o: dstring.h +trace.o: pool.h +trace.o: gcache.h +udp.o: tcptrace.h +udp.o: ipv6.h +udp.o: dstring.h +udp.o: pool.h +udp.o: gcache.h +versnum.o: version.h diff --git a/Makefile.empty b/Makefile.empty new file mode 100644 index 0000000..ca61d57 --- /dev/null +++ b/Makefile.empty @@ -0,0 +1,4 @@ +default: + @echo + @echo "Please run ./configure first" + @echo diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..2822917 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,433 @@ +# +# Makefile for tcptrace +# +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +################################################################## +# +# tcptrace supports reading compressed files with a little help... +# 1) If your system has "gunzip", then uncomment the following line to +# support on-the-fly decompression of ".gz" and ".Z" files... +DEFINES += -DGUNZIP="\"gunzip\"" +# 2) Otherwise, if your system supports standard Unix "uncompress", +# then uncomment the following line to support on-the-fly +# decompression of ".Z" files... +#DEFINES += -DUNCOMPRESS="\"uncompress\"" +# 3) Also, we assume most systems have the "bunzip2" utility installed, +# if yours doesn't, you'll want to comment out the next line. +DEFINES += -DBUNZIP2="\"bunzip2\"" +# - we'll do path search on the string you specify. If the program +# isn't in your path, you'll need to give the absolute path name. +# - if you want other formats, see the "compress.h" file. + + + +################################################################## +# +# If you want to read tcpdump output (which you probably do), +# you'll need the LBL PCAP library. I've just listed a bunch +# of places that it might be (other than the standard +# location). If it's somewhere else, just add it into the +# list. +# +################################################################## +PCAP_LDLIBS = @V_PCAP_LDLIBS@ +PCAP_INCS = -I/usr/local/include -I. -I../pcap -I/usr/include/pcap +PCAP_LDFLAGS = -L/usr/local/lib -Llib -Lpcap -L../pcap -L./cygwin-libs + + + +################################################################## +# +# Plug-in modules. +# There's no reason that I can think of to remove them, but +# here they are. Just comment them out to omit them from +# the binary. +# +################################################################## +# +# Experimental HTTP analysis module +# +DEFINES += -DLOAD_MODULE_HTTP -DHTTP_SAFE -DHTTP_DUMP_TIMES +# +# Experimental overall traffic by port module +# +DEFINES += -DLOAD_MODULE_TRAFFIC +# +# Experimental traffic data by time slices module +# +DEFINES += -DLOAD_MODULE_SLICE +# +# Experimental round trip time graphs +# +DEFINES += -DLOAD_MODULE_RTTGRAPH +# +# Experimental tcplib-data generating module +# +# We are not going to compile in the antiquated TCPLIB module by default +# anymore. +# It seems to have quite some bugs, and being antiquated as it is, we thought +# it is not worth the time fixing them. Uncomment this line and ./configure +# and make again, if you really need the module. - Mani, 15 Aug 2003. +# DEFINES += -DLOAD_MODULE_TCPLIB +# +# Experimental module for a friend +# +DEFINES += -DLOAD_MODULE_COLLIE +# +# Example module for real-time mode +# +DEFINES += -DLOAD_MODULE_REALTIME +# +# INBOUNDS module implements the functionality required for the INBOUNDS +# intrusion detection system project, Ohio University. +# ( Uncomment the following line before running configure to build it ) +# DEFINES += -DLOAD_MODULE_INBOUNDS + + +################################################################## +# +# File formats that we understand. +# The only reason that I can see to remove one is if you don't +# have the PCAP library, in which case you can comment out +# GROK_TCPDUMP and still compile, but then you can't read the +# output from tcpdump. +# +################################################################## +# define GROK_SNOOP if you want tcptrace to understand the output +# format of Sun's "snoop" packet sniffer. +DEFINES += -DGROK_SNOOP +# define GROK_TCPDUMP if you want tcptrace to understand the output +# format format of the LBL tcpdump program (see the file README.tcpdump +# for other options) +DEFINES += -DGROK_TCPDUMP +# define GROK_NETM if you want tcptrace to understand the output +# format of HP's "netm" monitoring system's packet sniffer. +DEFINES += -DGROK_NETM +# define GROK_ETHERPEEK if you want tcptrace to understand the output +# format of the Macintosh program Etherpeek +DEFINES += -DGROK_ETHERPEEK +# define GROK_NS if you want tcptrace to understand the output +# format of the LBL network simulator, ns +DEFINES += -DGROK_NS +# define GROK_NLANR if you want tcptrace to understand the output +# format of the various NLANL tools +# (this doesn't work well yet, not recommended - Sat Dec 19, 1998) +# DEFINES += -DGROK_NLANR +# define GROK_NETSCOUT if you want tcptrace to understand ascii +# formatted netscout output files +DEFINES += -DGROK_NETSCOUT +# define GROK_ERF if you want tcptrace to understand the output +# format of the Endace Technology dagsnap program */ +DEFINES += -DGROK_ERF + +################################################################## +# +# Just a quick installation rule, not much to do +# +################################################################## +# Pathname of directory to install the binary +BINDIR = /usr/local/bin +MANDIR = /usr/local/man/ + + +################################################################## +################################################################## +################################################################## +# +# You shouldn't need to change anything below this point +# +################################################################## +################################################################## +################################################################## + +CC = @CC@ +CCOPT = @V_CCOPT@ +INCLS = -I. @V_INCLS@ ${PCAP_INCS} + +# Standard CFLAGS +# Probably want full optimization +# FreeBSD needs -Ae +# HP needs -Ae +CFLAGS = $(CCOPT) $(DEFINES) @DEFS@ @V_DEFINES@ $(INCLS) + +# Standard LIBS +LDLIBS = @LIBS@ ${PCAP_LDLIBS} +# for solaris, you probably want: +# LDLIBS = -lpcap -lnsl -lsocket -lm +# for HP, I'm told that you need: +# LDLIBS = -lpcap -lstr -lm +# everybody else (that I know of) just needs: +# LDLIBS = -lpcap -lm +# +LDFLAGS += ${PCAP_LDFLAGS} + + + +# for profiling (under Solaris, at least) +#CFLAGS += -pg +#LDFLAGS += /usr/lib/libdl.so.1 + + +# Source Files +CFILES= avl.c compress.c erf.c etherpeek.c gcache.c mfiles.c names.c \ + netm.c output.c plotter.c print.c rexmit.c snoop.c nlanr.c \ + tcpdump.c tcptrace.c thruput.c trace.c ipv6.c \ + filt_scanner.c filt_parser.c filter.c udp.c \ + ns.c netscout.c version.c pool.c poolaccess.c \ + dstring.c +MODULES=mod_http.c mod_traffic.c mod_rttgraph.c mod_tcplib.c mod_collie.c \ + mod_slice.c mod_realtime.c mod_inbounds.c +MODSUPPORT=dyncounter.c +OFILES= ${CFILES:.c=.o} ${MODULES:.c=.o} ${MODSUPPORT:.c=.o} + +all: tcptrace versnum + +tcptrace: ${OFILES} + ${CC} ${LDFLAGS} ${CFLAGS} ${OFILES} -o tcptrace ${LDLIBS} + +# +# special rule for version.c +# needs to be recompiled EVERY time +# +# If you have problems getting "whoami", "hostname", or "date" to run on +# your machine, just hack in a quick string below in place of the command. +version.o: ${CFILES} Makefile + ${CC} ${CFLAGS} -o version.o -c $(srcdir)/version.c \ + -DBUILT_USER="\"`whoami`\"" -DBUILT_HOST="\"`hostname`\"" -DBUILT_DATE="\"`date`\"" + +# +# special rules for scanner/parser +# +# Note that I'm using the GNU bison/flex to get around the problems +# caused by the fact that that pcap library ALSO uses YACC, which can +# cause naming conflicts. The Gnu versions let you get around that +# easily. +# +YACC_VAL=@YACC@ +LEX_VAL=@LEX@ + +filt_parser.c: filt_parser.y filter.h + if test "${YACC_VAL}" = "bison -y" ; then \ + @YACC@ -vd -p filtyy -o filt_parser.c $(srcdir)/filt_parser.y ;\ + cp filt_parser.c flex_bison ;\ + cp filt_parser.h flex_bison ;\ + else \ + echo "Could not find BISON on this system";\ + echo "Copying the BISON output files generated at our place" ;\ + cp flex_bison/filt_parser.c . ;\ + cp flex_bison/filt_parser.h . ;\ + fi + +filt_scanner.c: filt_scanner.l filter.h filt_parser.h + if test ${LEX_VAL} = "flex" ; then \ + @LEX@ -t -Pfiltyy $(srcdir)/filt_scanner.l > filt_scanner.c ;\ + cp filt_scanner.c flex_bison ;\ + else \ + echo "Could not find FLEX on this system" ;\ + echo "Copying the FLEX output files generated at our place" ;\ + cp flex_bison/filt_scanner.c . ;\ + fi + +# filt_parser.h created as a side effect of running yacc... +filt_parser.h: filt_parser.c + +# version numbering program +versnum: versnum.c version.h + ${CC} ${LDFLAGS} ${CFLAGS} $(srcdir)/versnum.c -o versnum ${LDLIBS} + +# +# obvious dependencies +# +${OFILES}: tcptrace.h + + +# +# just for RCS +ci: + ci -u -q -t-initial -mlatest *.c *.h \ + Makefile.in configure.in config.guess config.sub aclocal.m4 \ + README* INSTALL* CHANGES WWW COPYRIGHT + +# +# for cleaning up +clean: + rm -f *.o tcptrace versnum core *.xpl *.dat .devel \ + config.cache config.log config.status bin.* \ + filt_scanner.c filt_parser.c y.tab.h y.output PF \ + filt_parser.output filt_parser.h + cd input; ${MAKE} clean + +noplots: + rm -f *.xpl *.dat + +initial: + cp Makefile.empty Makefile + +spotless: clean noplots initial + +# +# for making distribution +tarfile: versnum + @VERS=`./versnum`; DIR=tcptrace.$${VERS}; \ + GZTAR=$$HOME/tcptrace.$${VERS}.tar.gz; \ + make spotless; \ + cd ..; \ + ln -s src $${DIR} 2>/dev/null ; \ + /usr/sbin/tar -FFcvhf - $${DIR} | gzip > $${GZTAR}; \ + echo ; echo "Tarfile is in $${GZTAR}" +# +# similar, but include RCS directory and etc +bigtarfile: + cd ..; /usr/sbin/tar -cfv $$HOME/tcptrace.tar src + +# +# just a quick installation rule +INSTALL = ./install-sh -c +install: tcptrace install-man + $(INSTALL) -m 755 -o bin -g bin tcptrace ${BINDIR}/tcptrace +install-man: + $(INSTALL) -m 444 -o bin -g bin tcptrace.man $(MANDIR)/man1/tcptrace.1 + + + +# +# make development version +develop devel: + touch .devel + +configure: configure.in + autoconf + + +# +# generate dependencies +depend: + makedepend ${INCS} -w 10 *.c +# +# static file dependencies +# +avl.o: tcptrace.h +compress.o: tcptrace.h +compress.o: ipv6.h +compress.o: dstring.h +compress.o: pool.h +compress.o: compress.h +dstring.o: tcptrace.h +dstring.o: ipv6.h +dstring.o: dstring.h +dstring.o: pool.h +dyncounter.o: tcptrace.h +dyncounter.o: ipv6.h +dyncounter.o: dstring.h +dyncounter.o: pool.h +dyncounter.o: dyncounter.h +etherpeek.o: tcptrace.h +etherpeek.o: ipv6.h +etherpeek.o: dstring.h +etherpeek.o: pool.h +filt_parser.o: tcptrace.h +filt_parser.o: ipv6.h +filt_parser.o: dstring.h +filt_parser.o: pool.h +filt_parser.o: filter.h +filt_scanner.o: tcptrace.h +filt_scanner.o: ipv6.h +filt_scanner.o: dstring.h +filt_scanner.o: pool.h +filt_scanner.o: filter.h +filt_scanner.o: filt_parser.h +filter.o: tcptrace.h +filter.o: ipv6.h +filter.o: dstring.h +filter.o: pool.h +filter.o: filter.h +filter.o: filter_vars.h +gcache.o: tcptrace.h +gcache.o: ipv6.h +gcache.o: dstring.h +gcache.o: pool.h +gcache.o: gcache.h +ipv6.o: tcptrace.h +ipv6.o: ipv6.h +ipv6.o: dstring.h +ipv6.o: pool.h +mfiles.o: tcptrace.h +mfiles.o: ipv6.h +mfiles.o: dstring.h +mfiles.o: pool.h +names.o: tcptrace.h +names.o: ipv6.h +names.o: dstring.h +names.o: pool.h +names.o: gcache.h +netm.o: tcptrace.h +netm.o: ipv6.h +netm.o: dstring.h +netm.o: pool.h +netscout.o: tcptrace.h +netscout.o: ipv6.h +netscout.o: dstring.h +netscout.o: pool.h +nlanr.o: tcptrace.h +nlanr.o: ipv6.h +nlanr.o: dstring.h +nlanr.o: pool.h +ns.o: tcptrace.h +ns.o: ipv6.h +ns.o: dstring.h +ns.o: pool.h +output.o: tcptrace.h +output.o: ipv6.h +output.o: dstring.h +output.o: pool.h +output.o: gcache.h +plotter.o: tcptrace.h +plotter.o: ipv6.h +plotter.o: dstring.h +plotter.o: pool.h +pool.o: pool.h +poolaccess.o: tcptrace.h +poolaccess.o: ipv6.h +poolaccess.o: dstring.h +poolaccess.o: pool.h +print.o: tcptrace.h +print.o: ipv6.h +print.o: dstring.h +print.o: pool.h +rexmit.o: tcptrace.h +rexmit.o: ipv6.h +rexmit.o: dstring.h +rexmit.o: pool.h +snoop.o: tcptrace.h +snoop.o: ipv6.h +snoop.o: dstring.h +snoop.o: pool.h +tcpdump.o: tcptrace.h +tcpdump.o: ipv6.h +tcpdump.o: dstring.h +tcpdump.o: pool.h +tcptrace.o: tcptrace.h +tcptrace.o: ipv6.h +tcptrace.o: dstring.h +tcptrace.o: pool.h +tcptrace.o: file_formats.h +tcptrace.o: modules.h +tcptrace.o: version.h +thruput.o: tcptrace.h +thruput.o: ipv6.h +thruput.o: dstring.h +thruput.o: pool.h +trace.o: tcptrace.h +trace.o: ipv6.h +trace.o: dstring.h +trace.o: pool.h +trace.o: gcache.h +udp.o: tcptrace.h +udp.o: ipv6.h +udp.o: dstring.h +udp.o: pool.h +udp.o: gcache.h +versnum.o: version.h diff --git a/README b/README new file mode 100644 index 0000000..452aedb --- /dev/null +++ b/README @@ -0,0 +1,79 @@ + +######## +Sriharsha: The source is modified to make the printing of RTT values suit our analysis for our PAM 2013 paper. +####### + +Fri May 25, 2001 + +Shawn Ostermann +ostermann@cs.ohiou.edu + +tcptrace is a TCP connection analysis tool. It can tell you detailed +information about TCP connections by sifting through dump files. The +dump file formats supported are: + Standard tcpdump format (you need the pcap library) + Sun's snoop format + Macintosh Etherpeek format + HP/NetMetrix protocol analysis format + NS simulator output format + NetScout + NLANR Tsh Format + +To see the graphs, you'll also need Tim Shepard's xplot program, +available at http://www.xplot.org + +I've switched to using "./configure" to set up the Makefile. That +seems to have eased portability problems a great deal. Just say +"./configure" and then "make" to build the program. + +Most of the rest of the Docs are on the web. Check out: + http://www.tcptrace.org/ + + +Supported Platforms +------------------- + +The program is developed here at OU on Sparc machines running Solaris +8. Our intention is that it also run under common Unix variants. In +particular, we try to test each release on the following platforms: + NetBSD + FreeBSD + Linux + Darwin/OSX (Mac) + Tru64 (Alpha) + +We appreciate feedback and fixes on these or other platforms and will +attempt to modify the program to work on other platforms if we can get +enough help from people with access to those platforms and the changes +are not too "esthetically disagreeable". + +Running the program +------------------- + +Some simple examples: + +0) What are the args and what do they mean??? + tcptrace + +1) Run the program quickly over a dump file + tcptrace dumpfile + +2) Get longer output + tcptrace -l dumpfile + +3) Generate lots of pretty plot files (you need xplot to see them) + tcptrace -G dumpfile + +4) Print the segment contents as you go + tcptrace -p dumpfile + +5) Print progress info (useful for large files) + tcptrace -t dumpfile + +Of course, you can chain arguments together until you get just what +you want. + + +Let me know what you think.... + +Shawn diff --git a/README.OpenVMS b/README.OpenVMS new file mode 100644 index 0000000..65c7ab0 --- /dev/null +++ b/README.OpenVMS @@ -0,0 +1,146 @@ +Wed May 22, 2002 + +Matt Muggeridge +Matt.Muggeridge@hp.com + +The information contained in this document describes the OpenVMS port +of the tcptrace tool, written by Shawn Ostermann. Refer to the +"README" file for more information on tcptrace. + +This document contains: + + A) Running tcptrace + B) Build and Install + C) Code Changes to Support OpenVMS + + +A) Running tcptrace +------------------- + +OpenVMS applications that parse command-line arguments, such as +tcptrace, must be invoked with a foreign command. A foreign command +can be manually created by declaring a DCL symbol, or automatically +created by defining the DCL$PATH logical to include the directory +path of your application. The examples below use a DCL symbol. + +There is a name-space clash with "tcptrace". TCP/IP Services V5.0 and +later ship an application named TCPTRACE.EXE which is used to capture +trace information, similar to "tcpdump". To avoid this name-space +clash, it is recommended that this "tcptrace" program is invoked by a +different name. In the examples below, the name used is "tcpanal", +for TCP Analysis. + +The steps for running tcpanal are as follows: + + 1) Creating the foreign command + This is created for you in the DCL command procedure MAKE_VMS.COM. + If desired, modify MAKE_VMS.COM to change the name of the foreign + command. By default, a command similar to the following is used in + MAKE_VMS.COM: + $ tcpanal :== $tcptrace.exe + + 2) Execute the foreign command + $ tcpanal + + +B) Build and Install +-------------------- +tcptrace on OpenVMS was built and tested using: + + Compaq C V6.4-006 on OpenVMS Alpha V7.2-2 and OpenVMS Alpha V7.3, + Compaq C V6.2-009 on OpenVMS Alpha V7.2-2 + No VAX testing has been attempted. + +Step 1: Get pcap library + If you don't want to analyse dump files that were created using the + PCAP library, such as tcpdump, WinDump, Ethereal, then you should + comment out "GROK_TCPDUMP" from the MAKE_VMS.COM procedure and it + will be skipped in the compilation. + +Step 2: Edit MAKE_VMS.COM + Only necessary if you want to change the file formats supported, + the modules compiled in, compiler flags, etc (it's commented) + +Step 3: Run "$ @MAKE_VMS" + That should create tcptrace and define the foreign symbol for + invoking it. The foreign symbol is needed due to the name-space + clash (see README_VMS.TXT). It is suggested you use the name + "tcpanal". + + To manually create a foreign command use syntax similar to: + + $ tcpanal :== $tcptrace.exe + + For automatic foreign commands, copy tcptrace.exe to a directory + specified in the DCL$PATH logical. E.g. assuming DCL$PATH logical + has been created as: + + $ define DCL$PATH disk$tools:[bin] + $ copy tcptrace.exe disk$tools:[bin]tcpanal.exe + + +C) Code Changes to Support OpenVMS +---------------------------------- + +New Files +==================================================================== +readme.OpenVMS - this file +make_vms.com - DCL command procedure to build tcptrace +snprintf_vms.c - replacement for snprintf() +includes_vms.tlb - library of include files not shipped with OpenVMS +tcptrace.opt - linker options file + +Missing Header Files - includes_vms.tlb +--------------------------------------- + The following header files are not supplied with the current version + of OpenVMS compilers nor TCP/IP. They have been built into a text + library "includes_vms.tlb" which is referenced during compilation. + + netinet/in_systm.h + machine/endian.h + netinet/if_ether.h + netinet/ip.h + netinet/udp.h + netinet/tcp.h (newer version needed than in tcpip$examples) + pcap.h (from PCAP distribution) + net/bpf.h + + The command used to build this library was: + + $ libr/create/text includes_vms in_systm.h, endian.h, - + if_ether.h, ip.h, udp.h, tcp.h, pcap.h, bpf.h + + +Missing snprintf() - snprintf_vms() +----------------------------------- +The current version of the CRTL does not support snprintf(). An +OpenVMS specific module was created "snprintf_vms.c" to resolve this. +The redefinition was made in tcptrace.h (see below). + +Modified Files +==================================================================== + +compress.c +---------- +The current release of OpenVMS does not support fork(). These +occurrences were changed to vfork(). + +filter_parser.c +--------------- +OpenVMS uses a builtin function for alloca(). The necessary +redefinitions were made. + +gcache.c +-------- +Check if bzero or bcopy are defined before redefining them. On +OpenVMS bzero and bcopy are defined to use the C builtins which are +supposed to be higher performing. + +tcptrace.h +---------- +Define snprintf() to point to OpenVMS declaration snprintf_vms() + + +Matt. + +--- end --- diff --git a/README.cygwin b/README.cygwin new file mode 100644 index 0000000..7e6f127 --- /dev/null +++ b/README.cygwin @@ -0,0 +1,20 @@ +To build tcptrace on windows using the cygwin UNIX environment follow the +steps below: + +1. For Windows 95/98/Me: + cp cygwin-libs/win9x/libwpcap.a cygwin-libs/ + + For Windows NT/2000/XP: + cp cygwin-libs/winNT/libwpcap.a cygwin-libs/ + +2. ./configure +3. make (This leaves tcptrace.exe in the current directory) +4. Installation: + - Copy the *.dll files from cygwin-libs/win9x/ "OR" cygwin-libs/winNT/ + into C:\WINDOWS\System32\ (OR C:\WINDOWS\System\) + - Copy tcptrace.exe (just built in step 3) into C:\WINDOWS\ + +You should now be able to access tcptrace system-wide. + +--Avinash Lakhiani (alakhian@tcptrace.org) + 4 July 2002 diff --git a/README.linux b/README.linux new file mode 100644 index 0000000..2b18e8a --- /dev/null +++ b/README.linux @@ -0,0 +1,25 @@ +If you have trouble, try this suggestion from Peter Waltenberg: + +>> From peterw@dascom.com Mon Jul 13 22:32 EST 1998 +>> X-Priority: 3 (Normal) +>> Date: Tue, 14 Jul 1998 08:31:57 +1000 (EST) +>> Reply-To: peterw@dascom.com +>> Organization: DASCOM +>> Sender: peterw@mulga.surf.dascom.com +>> From: Peter Waltenberg +>> To: Shawn Ostermann +>> Subject: Re: tcptrace +>> +>> On Linux with glibc-2 it needs +>> +>> DEFINES += -D_BSD_SOURCE +>> +>> to build properly. +>> +>> It's simply a matter of which "style" of tcphdr struct naming is +>> pulled in from the include files. +>> +>> From memory the "-D_BSD_SOURCE" is safe for older Linux setups as +>> well, however I can't test it. +>> +>> Peter diff --git a/README.mailing_list b/README.mailing_list new file mode 100644 index 0000000..3860529 --- /dev/null +++ b/README.mailing_list @@ -0,0 +1,49 @@ +There are currently four mailing lists that pertain to tcptrace. The +two intended for normal users are the "tcptrace" and "tcptrace-announce" +mailing lists. + +tcptrace-announce is a very low traffic list, which probably only sees +one or two messages a year. Everyone who uses tcptrace is encouraged to +subscribe to this list, as it is used to spread the word when significant +new versions of the program come out and major bugs are found and fixed. +You can subscribe to the tcptrace-announce list by sending an email to +majordomo@tcptrace.org that contains the text "subscribe tcptrace-announce". +Should you wish to be removed from the list, all you need to do is send +an email to majordomo@tcptrace.org with the text "unsubscribe tcptrace-announce" +in the body. No one except the list owner at tcptrace.org may post to this +list. + +The list that serves as a forum for most tcptrace related discussion can +be subscribed to by sending email to majordomo@tcptrace.org with the text +"subscribe tcptrace" contained in the body. Unsubscribing is as easy as +sending majordomo@tcptrace.org a message containing "unsubscribe tcptrace" in +the body. Posting to this list is restricted to list members only, due to +problems with spam and such. Traffic on this list is rather light as well, +mostly occurring in short spurts when someone has a question or shares some +tcptrace related software they've written with the community. You may post +to the list by sending your message to tcptrace@tcptrace.org, if you are +subscribed to the list. Before posting questions to this list, please consider +that there are about 400 members, so if your question is just something basic +about compiling the program or reading input files perhaps the tcptrace- +maintainers list discussed in the next paragraph is a better venue to ask it. +Problems with subscribing/unsubscribing should be sent to +owner-tcptrace@tcptrace.org + +There are also two lists "tcptrace-bugs" and "tcptrace-maintainers" which are +used for notifying us that there is a problem. If you find what you think is +a bug in the software, please send a message to tcptrace-bugs@tcptrace.org. +This list has all the active tcptrace developers on it, so usually someone can +get on it and write a bugfix fairly quickly, but it's also quite nice when +people send in their own bugfix code. tcptrace-maintainers@tcptrace.org is +the list which you can use to contact all the people responsible for keeping +up the tcptrace mailing lists, website, and CVS tree. Problems compiling +tcptrace and questions about how to use the software or interpreting the +output it produces should be addressed to the tcptrace-maintainers list. +You will generally receive an answer fairly promptly. + +tcptrace was written by Shawn Ostermann at Ohio University, who can be +reached at ostermann@cs.ohiou.edu to ask questions about the licensing +of the software. + +HTML archives of the "tcptrace" and "tcptrace-bugs" lists can be found on +the tcptrace website at http://www.tcptrace.org. diff --git a/README.modules b/README.modules new file mode 100644 index 0000000..70aef52 --- /dev/null +++ b/README.modules @@ -0,0 +1,8 @@ +Mon Jul 14, 1997 + +I added a "plugin module" interface (actually, "compile-in") which +makes it a lot easier to add warts to the program for special purpose +tasks. There's an example in the modules.h header file (commented +out) that include the module in mod_http.c + +Shawn diff --git a/README.pcap b/README.pcap new file mode 100644 index 0000000..c66a65c --- /dev/null +++ b/README.pcap @@ -0,0 +1,66 @@ +Mon Jul 14, 1997 + +To read tcpdump files, you need to packet capture library from LBL. +If you already have tcpdump, then your probably already have it +installed. If not, then check out: + + ftp://ftp.ee.lbl.gov/libpcap.tar.Z + +These sources have been tested with the 0.4 version of libpcap... + +--sdo + +---------------------------------------------------------------------- + +The pcap README file: + +@(#) $Header: /usr/local/cvs/tcptrace/README.pcap,v 5.1 1998/12/02 04:38:38 sdo Exp $ (LBL) + +LIBPCAP 0.4 +Lawrence Berkeley National Laboratory +Network Research Group +libpcap@ee.lbl.gov +ftp://ftp.ee.lbl.gov/libpcap.tar.Z + +This directory contains source code for libpcap, a system-independent +interface for user-level packet capture. libpcap provides a portable +framework for low-level network monitoring. Applications include +network statistics collection, security monitoring, network debugging, +etc. Since almost every system vendor provides a different interface +for packet capture, and since we've developed several tools that +require this functionality, we've created this system-independent API +to ease in porting and to alleviate the need for several +system-dependent packet capture modules in each application. + +Note well: this interface is new and is likely to change. + +The libpcap interface supports a filtering mechanism based on the +architecture in the BSD packet filter. BPF is described in the 1993 +Winter Usenix paper ``The BSD Packet Filter: A New Architecture for +User-level Packet Capture''. A compressed postscript version is in: + + ftp://ftp.ee.lbl.gov/papers/bpf-usenix93.ps.Z. + +Although most packet capture interfaces support in-kernel filtering, +libpcap utilizes in-kernel filtering only for the BPF interface. +On systems that don't have BPF, all packets are read into user-space +and the BPF filters are evaluated in the libpcap library, incurring +added overhead (especially, for selective filters). Ideally, libpcap +would translate BPF filters into a filter program that is compatible +with the underlying kernel subsystem, but this is not yet implemented. + +BPF is standard in 4.4BSD, BSD/386, NetBSD, and FreeBSD. DEC OSF/1 +uses the packetfilter interface but has been extended to accept BPF +filters (which libpcap utilizes). Also, you can add BPF filter support +to Ultrix using the kernel source and/or object patches available in: + + ftp://gatekeeper.dec.com/pub/DEC/net/bpfext42.tar.Z. + +Problems, bugs, questions, desirable enhancements, source code +contributions, etc., should be sent to the email address +"libpcap@ee.lbl.gov". + + - Steve McCanne + Craig Leres + Van Jacobson + diff --git a/README.sgi b/README.sgi new file mode 100644 index 0000000..522e1b9 --- /dev/null +++ b/README.sgi @@ -0,0 +1,56 @@ +[I got the following very useful note from a user at SGI with some notes + on compiler problems. As nobody has ever mentioned these problems before, + I suspect that they are peculiar to the SGI C compiler. Perhaps these + notes will be helpful to others... + + sdo - Fri Sep 18, 1998] + + +Date: Mon, 14 Sep 1998 22:07:02 -0300 +From: Alejandro Saez +Organization: Silicon Chile +To: ostermann@cs.ohiou.edu +Subject: IRIX problem solved + +Hi, + +[...] + +I compiled the program on a IRIX 6.2 SGI workstation. First of all, +the SGI cc compiler didn't work basically because it doesn't accept +(unlike gcc) unterminated strings for formated output functions (it +forces you to have a long line) so this was a problem for the +postscript generation bit. I installed gcc, and here a new problem +arose. Some of your files (mfiles.c, tcptrace.c and plotter.c), +includes and uses the stdarg.h include file. This file uses a SGI +compiler built-in macro called __builtin_alignof, so when using gcc, +ld would complain about not being able to resolve that symbol (makes +sense, it's provided by cc). I was able to solve it by making a local +copy of stdarg.h and changing ocurences of __builtin_alignof by +__alignof__ which is a gcc extension. Of course I had to change +#include for #include "stdarg.h" but the nice thing is it +worked (well, it compiled and run with no arguments). I though you +would like to hear about this. Hope comes in handy. + + +------------------------------------------------------------------------ +Alejandro Saez +Software Engineer +Silicon Chile S.A. + +------------------------------------------------------------ +Mon Sep 21, 1998 + + +[...] After I got your e-mail I did a full search and realized that +the gcc distribution included the stdarg.h file (they were pretty +hidden too, and undocumented ) . Funny since I've compiled with gcc on +other SGI boxes and always used SGI's includes, and it made sense, +they are the STANDARD libraries, it never ocurred to me that I needed +two pairs of standard library headers, until now that this one include +depended on a compiler internal. So maybe is not a good idea to +include the stuff in the notes, or at least say that it's only +necessary if you are using the gcc compiler and SGI's header files, +which of course doesn't make much sense. + + diff --git a/README.tline_graphs b/README.tline_graphs new file mode 100644 index 0000000..bccfaf3 --- /dev/null +++ b/README.tline_graphs @@ -0,0 +1,599 @@ +README - Time Line Graphs + +NOTE: +----- +This code is lacking about a 1000 lines of intellegence that is needed +to draw these graphs correctly. The basic problem we face is that we have +the time values for the segments arriving/leaving on one end since the +traffic dump is carried out on that end. The time values for the other end +have to be estimated based on some heuristic. This requires a lot of +intellegence and requires taking care of various conditions like +retransmits, timeouts etc. The current heuristic is a simple one of +adding/subtacting 1/3rd of the rtt. + +We started this project thinking it is easy to draw these graphs, and then +realized that it is infact quite a complicated task. All this works with a +-L option at command line, but may not accurately reflect the segment +timings. + +We are currently working on fixing this problem and should be able to +provide more accurate results in the near future. + +For tcptrace maintainers: +------------------------- + +I have left the code in here as the starting point to work on. Whoever is +working on this project would want to clean up this file trace.c (based on +the diffs below), and continue development as a seperate module. + +Don't forget to update this file when this option is fully developed. + +--Avinash (alakhian@tcptrace.org) +9 July 2002 + +------------------- + DIFFS - plotter.c +------------------- + +68,75d67 +< Bool header_done; /* Flag indicating plotter header written to file */ +< Bool axis_switched; /* Switch x & y axis types. +< * (Needed for Time Line Charts, +< * Default = FALSE) +< */ +< char *title; /* Plotter title */ +< char *xlabel; /* Plotter x-axis label */ +< char *ylabel; /* Plotter y-axis label */ +91,92d82 +< static void WritePlotHeader(PLOTTER pl); +< static void CallDoPlot(PLOTTER pl, char *plot_cmd, int plot_argc, ...); +94a85,88 +> +> +> +> +114,119d107 +< struct plotter_info *ppi; +< +< ppi = &pplotters[pl]; +< +< /* see if we're graphing from "0" OR if the axis type is switched */ +< if (graph_time_zero || ppi->axis_switched) { +120a109,111 +> /* see if we're graphing from "0" */ +> if (graph_time_zero) { +> struct plotter_info *ppi = &pplotters[pl]; +268c259 +< +--- +> +273,276d263 +< +< /* Write the plotter header if not already written */ +< if(!ppi->header_done) +< WritePlotHeader(pl); +327a315,336 +> /* graph coordinates... */ +> /* X coord is timeval unless graph_time_zero is true */ +> /* Y is signed except when it's a sequence number */ +> /* ugly hack -- unsigned makes the graphs hard to work with and is +> only needed for the time sequence graphs */ +> /* suggestion by Michele Clark at UNC - make them double instead */ +> Mfprintf(f,"%s %s\n", +> graph_time_zero?"dtime":"timeval", +> ((strcmp(ylabel,"sequence number") == 0)&&(!graph_seq_zero))? +> "double":"signed"); +> +> if (show_title) { +> if (xplot_title_prefix) +> Mfprintf(f,"title\n%s %s\n", +> ExpandFormat(xplot_title_prefix), +> title); +> else +> Mfprintf(f,"title\n%s\n", title); +> } +> Mfprintf(f,"xlabel\n%s\n", xlabel); +> Mfprintf(f,"ylabel\n%s\n", ylabel); +> +331,338c340 +< ppi->axis_switched = FALSE; +< ppi->header_done = FALSE; +< +< /* Save these fields to be writtn to the plotter header later in DoPlot() */ +< ppi->title = strdup(title); +< ppi->xlabel = strdup(xlabel); +< ppi->ylabel = strdup(ylabel); +< +--- +> +369,373c371 +< +< /* Write the plotter header if not already written */ +< if(!ppi->header_done) +< WritePlotHeader(pl); +< +--- +> +424,425c422,423 +< if (colorplot) +< CallDoPlot(pl, color, 0); +--- +> if (colorplot) +> DoPlot(pl,"%s",color); +437c435,437 +< CallDoPlot(pl,"line", 4, t1, x1, t2, x2); +--- +> DoPlot(pl,"line %s %u %s %u", +> xp_timestamp(pl,t1), x1, +> xp_timestamp(pl,t2), x2); +449c449,451 +< CallDoPlot(pl,"dline", 4, t1, x1, t2, x2); +--- +> DoPlot(pl,"dline %s %u %s %u", +> xp_timestamp(pl,t1), x1, +> xp_timestamp(pl,t2), x2); +459c461 +< CallDoPlot(pl,"diamond", 2, t, x); +--- +> DoPlot(pl,"diamond %s %u", xp_timestamp(pl,t), x); +469c471 +< CallDoPlot(pl,"dot", 2, t, x); +--- +> DoPlot(pl,"dot %s %u", xp_timestamp(pl,t), x); +479c481 +< CallDoPlot(pl,"plus", 2, t, x); +--- +> DoPlot(pl,"plus %s %u", xp_timestamp(pl,t), x); +489c491 +< CallDoPlot(pl,"box", 2, t, x); +--- +> DoPlot(pl,"box %s %u", xp_timestamp(pl,t), x); +501,503c503 +< char arrow_type[7]; +< snprintf(arrow_type, sizeof(arrow_type), "%carrow", dir); +< CallDoPlot(pl, arrow_type, 2, t, x); +--- +> DoPlot(pl,"%carrow %s %u", dir, xp_timestamp(pl,t), x); +554,556c554 +< char tick_type[6]; +< snprintf(tick_type, sizeof(tick_type), "%ctick", dir); +< CallDoPlot(pl, tick_type, 2, t, x); +--- +> DoPlot(pl,"%ctick %s %u", dir, xp_timestamp(pl,t), x); +643,646c641 +< char text_type[6]; +< snprintf(text_type, sizeof(text_type), "%stext", where); +< +< CallDoPlot(pl, text_type, 2, t, x); +--- +> DoPlot(pl,"%stext %s %u", where, xp_timestamp(pl,t), x); +653c648 +< CallDoPlot(pl, str, 0); +--- +> DoPlot(pl,"%s", str); +656,663d650 +< void +< plotter_invisible( +< PLOTTER pl, +< struct timeval t, +< u_long x) +< { +< CallDoPlot(pl,"invisible", 2, t, x); +< } +665d651 +< +768,925d753 +< /* This function may be called with 0, 2 or 4 arguments depending on plot command. +< * case 0: +< * The arguments t1, x1, t2, x2 do not hold any valid values, and are not used. +< * case 2: +< * Arguments t2 and x2 are the same as arguments t1 and x1. Only t1 and x1 are used. +< * case 4: +< * All arguments are valid and are used. +< */ +< static void +< CallDoPlot( +< PLOTTER pl, +< char *plot_cmd, +< int plot_argc, +< ...) +< { +< struct timeval t1; +< u_long x1; +< struct timeval t2; +< u_long x2; +< va_list ap; +< struct plotter_info *ppi; +< char fmt[200]; +< +< if (pl == NO_PLOTTER) +< return; +< +< if (pl > plotter_ix) { +< fprintf(stderr,"Illegal plotter: %d\n", pl); +< exit(-1); +< } +< +< ppi = &pplotters[pl]; +< +< /* Get the arguments from the variable list */ +< va_start(ap, plot_argc); +< if(plot_argc > 0) +< { +< t1 = va_arg(ap, struct timeval); +< x1 = va_arg(ap, u_long); +< } +< if(plot_argc > 2) +< { +< t2 = va_arg(ap, struct timeval); +< x2 = va_arg(ap, u_long); +< } +< va_end(ap); +< +< if(ppi->axis_switched) { +< switch(plot_argc) { +< case 0: +< snprintf(fmt, sizeof(fmt), "%s%c", plot_cmd, NULL); +< DoPlot(pl, fmt); +< break; +< case 2: +< snprintf(fmt, sizeof(fmt), "%s %%u -%%s%c", plot_cmd, NULL); +< DoPlot(pl, fmt, +< x1, xp_timestamp(pl,t1)); +< break; +< case 4: +< snprintf(fmt, sizeof(fmt), "%s %%u -%%s %%u -%%s%c", plot_cmd, NULL); +< DoPlot(pl, fmt, +< x1, xp_timestamp(pl,t1), +< x2, xp_timestamp(pl,t2)); +< break; +< default: +< fprintf(stderr, "CallDoPlot: Illegal number of arguments (%d)\n", plot_argc); +< } +< } +< else { +< switch(plot_argc) { +< case 0: +< snprintf(fmt, sizeof(fmt), "%s%c", plot_cmd, NULL); +< DoPlot(pl, fmt); +< break; +< case 2: +< snprintf(fmt, sizeof(fmt), "%s %%s %%u%c", plot_cmd, NULL); +< DoPlot(pl, fmt, +< xp_timestamp(pl,t1), x1); +< break; +< case 4: +< snprintf(fmt, sizeof(fmt), "%s %%s %%u %%s %%u%c", plot_cmd, NULL); +< DoPlot(pl, fmt, +< xp_timestamp(pl,t1), x1, +< xp_timestamp(pl,t2), x2); +< break; +< default: +< fprintf(stderr, "CallDoPlot: Illegal number of arguments (%d)\n", plot_argc); +< } +< } +< +< return; +< } +< +< static void +< WritePlotHeader( +< PLOTTER pl) +< { +< MFILE *f = NULL; +< struct plotter_info *ppi; +< +< if (pl == NO_PLOTTER) +< return; +< +< if (pl > plotter_ix) { +< fprintf(stderr,"Illegal plotter: %d\n", pl); +< exit(-1); +< } +< +< ppi = &pplotters[pl]; +< +< if ((f = ppi->fplot) == NULL) +< return; +< +< if(ppi->axis_switched) { +< /* Header for the Time Line Charts */ +< Mfprintf(f,"%s %s\n", "unsigned", "dtime"); +< } +< else { +< /* Header for all other plots */ +< /* graph coordinates... */ +< /* X coord is timeval unless graph_time_zero is true */ +< /* Y is signed except when it's a sequence number */ +< /* ugly hack -- unsigned makes the graphs hard to work with and is +< only needed for the time sequence graphs */ +< /* suggestion by Michele Clark at UNC - make them double instead */ +< Mfprintf(f,"%s %s\n", +< graph_time_zero?"dtime":"timeval", +< ((strcmp(ppi->ylabel,"sequence number") == 0)&&(!graph_seq_zero))? +< "double":"signed"); +< } +< +< if (show_title) { +< if (xplot_title_prefix) +< Mfprintf(f,"title\n%s %s\n", +< ExpandFormat(xplot_title_prefix), +< ppi->title); +< else +< Mfprintf(f,"title\n%s\n", ppi->title); +< } +< +< Mfprintf(f,"xlabel\n%s\n", ppi->xlabel); +< Mfprintf(f,"ylabel\n%s\n", ppi->ylabel); +< +< /* Indicate that the header has now been written to the plotter file */ +< ppi->header_done = TRUE; +< +< return; +< } +< +< /* Switch the x and y axis type (Needed for Time Line Charts. Default = FLASE) */ +< void plotter_switch_axis( +< PLOTTER pl, +< Bool flag) +< { +< struct plotter_info *ppi = &pplotters[pl]; +< +< ppi->axis_switched = flag; +< } + +-------------------- + DIFFS - tcptrace.h +-------------------- + +450,452d449 +< /* Time Line Graph */ +< PLOTTER tline_plotter; +< +634d630 +< extern Bool graph_tline; +744,746c740 +< void plotter_nothing(PLOTTER, timeval); +< void plotter_invisible(PLOTTER, timeval, u_long); +< void plotter_switch_axis(PLOTTER, Bool); +--- +> void plotter_nothing(PLOTTER pl, struct timeval t); +991d984 +< #define TLINE_FILE_EXTENSION "_tline.xpl" + +-------------------- + DIFFS - tcptrace.c +-------------------- + +107d106 +< Bool graph_tline = FALSE; +531d529 +< -L create time line graph[s]\n\ +1800d1797 +< graph_tline = TRUE; +1802,1804d1798 +< case 'L': graph_tline = TRUE; +< fprintf(stderr, "\nWarning: You have chosen the option '-L' to plot Time Line Graphs.\n This option is yet under development and may not reflect accurate results.\n Please take a look at the file README.tline_graphs for more details.\n\n"); +< break; +1927d1920 +< case 'L': graph_tline = !TRUE; break; +1998a1992 +> fprintf(stderr,"graph tsg: %s\n", BOOL2STR(graph_tsg)); +2001,2004d1994 +< fprintf(stderr,"graph tsg: %s\n", BOOL2STR(graph_tsg)); +< fprintf(stderr,"graph segsize: %s\n", BOOL2STR(graph_segsize)); +< fprintf(stderr,"graph owin: %s\n", BOOL2STR(graph_owin)); +< fprintf(stderr,"graph tline: %s\n", BOOL2STR(graph_tline)); + + +----------------- + DIFFS - trace.c +----------------- + +74,75d73 +< static int tline_left = 0; /* left and right time lines for the time line charts */ +< static int tline_right = 0; +138,140d135 +< char *a2b_seg_color = "green"; /* colors for segments on the time line chart */ +< char *b2a_seg_color = "yellow"; +< +470,521d464 +< /* init time line graphs (Avinash, 2 July 2002) */ +< ptp->a2b.tline_plotter = ptp->b2a.tline_plotter = NO_PLOTTER; +< if (graph_tline && !ptp->ignore_pair) { +< if (!ignore_non_comp || (SYN_SET(ptcp))) { +< /* We don't want the standard a2b type name so we will specify +< * a filename of type a_b when we call new_plotter. +< */ +< char filename[25]; +< snprintf(filename,sizeof(filename),"%s_%s", +< ptp->a2b.host_letter, ptp->a2b.ptwin->host_letter); +< +< snprintf(title,sizeof(title),"%s_==>_%s (time line graph)", +< ptp->a_endpoint, ptp->b_endpoint); +< /* We will keep both the plotters the same since we want all +< * segments going in either direction to be plotted on the same +< * graph +< */ +< ptp->a2b.tline_plotter = ptp->b2a.tline_plotter = +< new_plotter(&ptp->a2b,filename,title, +< "segments", +< "relative time", +< TLINE_FILE_EXTENSION); +< +< /* Switch the x & y axis types. +< * The default is x - timeval, y - unsigned, +< * we need x - unsigned, y - dtime. +< * Both the plotters are the same so we will +< * only call this function once. +< */ +< plotter_switch_axis(ptp->a2b.tline_plotter, TRUE); +< +< /* set graph zero points */ +< plotter_nothing(ptp->a2b.tline_plotter, current_time); +< plotter_nothing(ptp->b2a.tline_plotter, current_time); +< +< /* Some graph initializations +< * Generating a drawing space between x=0-100. +< * The time lines will be at x=40 for source, x=60 for destination. +< * Rest of the area on either sides will be used to print segment +< * information. +< * +< * seg info |----->| +< * |<-----| seg info +< */ +< tline_left = 40; +< tline_right = 60; +< plotter_invisible(ptp->a2b.tline_plotter, current_time, 0); +< plotter_invisible(ptp->a2b.tline_plotter, current_time, 100); +< } +< } +< +< +1159d1101 +< PLOTTER tlinepl; +1412,1414d1353 +< +< /* plotter shorthand (NOTE: we are using one plotter for both directions) */ +< tlinepl = thisdir->tline_plotter; +1415a1355 +> +1726,1861c1666 +< } +< +< /* graph time line */ +< /* Since the axis types have been switched specially for these graphs, +< * x is actually used as y and y as x +< * -Avinash. +< * +< * NOTE: This code is lacking about a 1000 lines of intellegence that is needed +< * ----- to draw these graphs correctly. I have left it in here as the starting +< * point to work on. Whoever is working on this project would want to clean +< * up this file trace.c (based on the patches in the README.tline_graphs +< * file), and continue development as a seperate module. We started this +< * project thinking it is easy to draw these graphs, and then realized that +< * it is infact quite a complicated task. All this works with a -L option at +< * command line. +< */ +< if (tlinepl != NO_PLOTTER) { +< char buf1[200]; +< char buf2[50]; +< static seqnum a2b_first_seqnum = 0; +< static seqnum b2a_first_seqnum = 0; +< /* 1/3rd rtt. Since we have the timestamps only on one side, we calculate the +< * arrrival/departure time of the segments on the other side by adding/subtracting +< * 1/3rd rtt. We assume that it takes 1/3rd time for the segment to travel in +< * either direction, and 1/3rd time for processing. +< * We also skew the calculated times so that the acks are not seen before the +< * segments actually arrive. +< */ +< struct timeval one3rd_rtt; +< struct timeval copy_current_time; +< /* Make a copy of the current time (Needed for calculations) */ +< copy_current_time.tv_sec = current_time.tv_sec; +< copy_current_time.tv_usec = current_time.tv_usec; +< /* Compute 1/3rd rtt */ +< one3rd_rtt.tv_sec = 0; +< one3rd_rtt.tv_usec = thisdir->rtt_last/3; +< /* Adjust seconds and microseconds */ +< while(one3rd_rtt.tv_usec >= US_PER_SEC) { +< one3rd_rtt.tv_usec -= US_PER_SEC; +< one3rd_rtt.tv_sec += 1; +< } +< +< /* Initializations */ +< memset(&buf1, 0, sizeof(buf1)); +< memset(&buf2, 0, sizeof(buf2)); +< +< /* Segment information */ +< /* Check the flags */ +< if(SYN_SET(ptcp)) +< strncat(buf1, "SYN ", 4); +< if(FIN_SET(ptcp)) +< strncat(buf1, "FIN ", 4); +< if(RESET_SET(ptcp)) +< strncat(buf1, "RST ", 4); +< if(PUSH_SET(ptcp)) +< strncat(buf1, "PSH ", 4); +< if(URGENT_SET(ptcp)) +< strncat(buf1, "URG ", 4); +< +< +< /* Write the sequence numbers */ +< if(dir == A2B) { +< /* Use relative sequence numbers after the first segment in either direction */ +< snprintf(buf2, sizeof(buf2), "%u:%u(%u) %c", (start - a2b_first_seqnum), +< (end - a2b_first_seqnum), (end-start), NULL); +< strncat(buf1, buf2, strlen(buf2)); +< if(a2b_first_seqnum == 0 && !SYN_SET(ptcp)) // Don't use relative sequence numbers until handshake is complete. +< a2b_first_seqnum = thisdir->min_seq; +< }else if(dir == B2A) { +< /* Use relative sequence numbers after the first segment in either direction */ +< snprintf(buf2, sizeof(buf2), "%u:%u(%u) %c", (start - b2a_first_seqnum), +< (end - b2a_first_seqnum), (end-start), NULL); +< strncat(buf1, buf2, strlen(buf2)); +< if(b2a_first_seqnum == 0 && !SYN_SET(ptcp)) +< b2a_first_seqnum = thisdir->min_seq; +< } +< +< /* Acknowledgements */ +< if(ACK_SET(ptcp)) { +< memset(&buf2, 0, sizeof(buf2)); +< if(dir == A2B) +< snprintf(buf2, sizeof(buf2), "ack %u %c", (th_ack - b2a_first_seqnum), NULL); +< else if(dir == B2A) +< snprintf(buf2, sizeof(buf2), "ack %u %c", (th_ack - a2b_first_seqnum), NULL); +< strncat(buf1, buf2, strlen(buf2)); +< } +< +< /* Advertised Window */ +< memset(&buf2, 0, sizeof(buf2)); +< snprintf(buf2, sizeof(buf2), "win %u %c", eff_win,NULL); +< strncat(buf1, buf2, strlen(buf2)); +< +< /* Retransmits */ +< if(retrans) { +< memset(&buf2, 0, sizeof(buf2)); +< snprintf(buf2, sizeof(buf2), "R %c", NULL); +< strncat(buf1, buf2, strlen(buf2)); +< } +< +< /* Hardware Duplicates */ +< if(hw_dup) { +< memset(&buf2, 0, sizeof(buf2)); +< snprintf(buf2, sizeof(buf2), "HD %c", NULL); +< strncat(buf1, buf2, strlen(buf2)); +< } +< +< /* Draw the segment ------>/<------- */ +< if(dir == A2B) { +< tv_add(©_current_time, one3rd_rtt); +< plotter_line(tlinepl, ptp_save->first_time, tline_left, copy_current_time, tline_left); +< plotter_line(tlinepl, ptp_save->first_time, tline_right, copy_current_time, tline_right); +< if(SYN_SET(ptcp)|| FIN_SET(ptcp) || RESET_SET(ptcp)) +< plotter_perm_color(tlinepl, synfin_color); +< else +< plotter_perm_color(tlinepl, a2b_seg_color); +< plotter_line(tlinepl, current_time, tline_left, copy_current_time, tline_right); +< plotter_rarrow(tlinepl, copy_current_time, tline_right); +< plotter_perm_color(tlinepl, default_color); +< plotter_text(tlinepl, current_time, tline_left, "l", buf1); +< } +< else if(dir == B2A) { +< tv_sub(©_current_time, one3rd_rtt); +< plotter_line(tlinepl, ptp_save->first_time, tline_left, copy_current_time, tline_left); +< plotter_line(tlinepl, ptp_save->first_time, tline_right, copy_current_time, tline_right); +< if(SYN_SET(ptcp)|| FIN_SET(ptcp) || RESET_SET(ptcp)) +< plotter_perm_color(tlinepl, synfin_color); +< else +< plotter_perm_color(tlinepl, b2a_seg_color); +< plotter_line(tlinepl, copy_current_time, tline_right, current_time, tline_left); +< plotter_larrow(tlinepl, current_time, tline_left); +< plotter_perm_color(tlinepl, default_color); +< plotter_text(tlinepl, copy_current_time, tline_right, "r", buf1); +< } +< +< } +< +--- +> } diff --git a/README.tput_graphs b/README.tput_graphs new file mode 100644 index 0000000..2d8402c --- /dev/null +++ b/README.tput_graphs @@ -0,0 +1,26 @@ + +>> When I plot a2b_tput.xpl I get two curves, one red and one blue +>> plus the yellow dots for packets. What is not clear for me is what +>> are the blue and red curves represents with respect to throughput? + +Sorry, that stuff hasn't been documented very well, partly because I'm +not sure how to display it more clearly, but here's what it means: + +The yellow dots are the instantaneous throughput samples. They're +calculated by using the time since the last segment for the connection +and the size of the current segment to get bytes/second for this +sample. + +The red line is the result of averaging together multiple yellow +dots. By default (see -A), the red line uses the last 10 segments to +calculate a throughput. Higher -A values give smoother curves. + +The blue line is simply a running average throughput from the +beginning of the transfer, and it's final value is the same as what is +reported for the connection's transfer rate. + +Hope that helps. As I said, I'm not really sure what should be on +this graph. What's there is the stuff that we've wanted here locally, +but I'd be glad to hear other ideas! + +Shawn diff --git a/README.tru64 b/README.tru64 new file mode 100644 index 0000000..cff8ea0 --- /dev/null +++ b/README.tru64 @@ -0,0 +1,16 @@ +Fri May 25, 2001 + +The version 6 beta version mostly compiles fine on Tru64/Alpha +machines with the following exceptions: + +1) You need to modify tcptrace.h to find the unusual definitions that + Tru64 uses for the bit-field level TCP and IP fields + +#define IP_HL(pip) ((pip)->ip_vhl&0xf) +#define IP_V(pip) ((pip)->ip_vhl>>4) +#define TH_X2(ptcp) ((ptcp)->th_xoff&0xf) +#define TH_OFF(ptcp) ((ptcp)->th_xoff>>4) + +2) the NS module can't handle those, so you'll need to remove + "-DGROK_NS" from the Makefile (which will remove NS input file support) + diff --git a/README.version b/README.version new file mode 100644 index 0000000..2abedec --- /dev/null +++ b/README.version @@ -0,0 +1,88 @@ +README.version: convention used for version numbers, + and release instructions + +Convention followed for version numbers: +---------------------------------------- + +Starting with release 6.2.0 of tcptrace, we will be using version +numbers similar to those used for linux software. Following is the +convention followed for version numbers of the form x.y.z: + + - 'z' changes for small bug fixes + + - 'y' changes for certain feature enhancements and reasonably large + modifications. Also, even numbers indicate stable release and + odd numbers are for development versions + + - 'x' changes when a whole lot has changed since the previous release + + +Release Instructions: +--------------------- + +NOTE: Stable release in this example : 6.4.0 +----- Development version that follows : 6.5.0 + +~/tcptrace-cvs$ cvs tag release-6_4_0 +~/tcptrace-cvs$ cd +~$ cvs export -d tcptrace-6.4.0 -r release-6_4_0 tcptrace +~$ tar cf tcptrace-6.4.0.tar tcptrace-6.4.0 + +etc. to create the build. + +After that, go back to the tcptrace cvs workspace and *immediately* do the +following: + +~/tcptrace-cvs$ cvs tag start-6_5 +~/tcptrace-cvs$ cvs tag -b branch-6_5 + +Then modify the two branches appropriately: + +*FOR BUG FIXES* +^^^^^^^^^^^^^^^ +~/$ cvs co -d tcptrace-stable tcptrace +(change to *6.4.1, 6.4.2* etc. for each bug fixed and check in) + +*FOR NEW FEATURE DEVELOPMENT* +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~/$ cvs co -d tcptrace-devel -r branch-6_5 tcptrace +(change to *6.5.0* and check in) + +Now anyone checking out 'tcptrace' with no args will get the +current *stable* branch (bug-fixes only), and anyone checking out with +'-r branch-6_5' would get the current development version with all of its +glorious new features, etc. + +Version numbers then go on as 6.4.1, 6.4.2 bug-fixes and, +6.5.1, 6.5.2 etc for development versions until released as 6.6.0 or 7.0.0, +depending on magnitude of development. + +--Avinash Lakhiani (alakhian@tcptrace.org) +--Ethan Blanton (eblanton@tcptrace.org) + 27 Jul 2002 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.xpl2gpl b/README.xpl2gpl new file mode 100644 index 0000000..9a93e18 --- /dev/null +++ b/README.xpl2gpl @@ -0,0 +1,48 @@ +Introduction: +------------- +xpl2gpl is a utility that converters tcptrace-style xplot input to gnuplot input. +This converter gives a nearly perfect gnuplot reproduction of the corresponding +xplot graph. + +Installation: +------------- +Simply copy the script file xpl2gpl to a system-wide area like /bin, /usr/bin, +/usr/local/bin or any other suitable location if you wish to make it available to +all users. + +Usage: +------ +xpl2gpl [-s] + +This would produce files by the names "file_name.gpl", "file_name.datasets" and +"file_name.labels". +Load the file "file_name.gpl" in gnuplot and it should give you the plot. The +contents of the other files are as follows: +"file_name.datasets" : contains all the plotting coordinates. +"file_name.labels : contains all the labels of the plot. + +"file_name.ps" is the postscript version of the plot that is created when the +file "file_name.gpl" is loaded in gnuplot. + + +Options: +-------- +-s : seperate files (for expert users) + +If you wish to plot only some data from the xpl file, you may use the -s (seperate +files) option which generates a bunch of data-files filtered based on the color +and plotting style. + +Look at the xplot version of the plot, and based upon the color and style, you may +alter the corresponding lines in the ".gpl" file, for whatever data you want to +alter in the plot. + + +On behalf of Dr. Shawn Ostermann, + +Avinash Lakhiani +Email: avinash.lakhiani@ohiou.edu +Ohio University. + +Jun 18, 2001 + diff --git a/THANKS b/THANKS new file mode 100644 index 0000000..bdce301 --- /dev/null +++ b/THANKS @@ -0,0 +1,72 @@ +Special thanks to the following organizations: + + The National Science Foundation + For funding the rebirth of tcptrace which has made it possible + to hire students and purchase computers for cross-platform + development + + Sun Microsystems + For donating the web server and Solaris development platform + that serves as www.tcptrace.org + + +Special thanks to the following people who helped, pointed out bugs, +or ported the program to other architectures: + + Sita Menon + wrote much of the early retransmission counting + and sequencing engine + Brian Wilson + wrote the original etherpeek capture library + Mark Allman and Chris Hayes + provided valuable (sometimes incessant!) feedback + on the tool (and drew the nice web page graphic) + Tim Shepard + for writing xplot, of course, providing + a wonderful tool for understanding TCP + Bill Fenner (fenner@parc.xerox.com) + pointed out a couple small bugs in version 3.2.1 + pointed out a bug in 3.2.5 that kept it from reading + any packets on a PC (endian bug) + Jeff Semke (semke@psc.edu) + sent me diffs to get it compile under + "NetBSD 1.2 on a Pentium box." + Rick Jones (raj@hpisrdq.cup.hp.com) + sent me diffs to get it to compile on HP systems + Keith Scott (kscott@zorba.jpl.nasa.gov) + sent me Linux diffs + Nasseef Abukamail (nabukama@irg.cs.ohiou.edu) who wrote much of + the IPv6 code + Byron Collie (byron.collie@ccs.afp.gov.au) for helping make + the program more useful to the security community + Brian Utterback (Brian.Utterback@East.Sun.COM) for very helpful + bug reports + Jamshid Mahdavi (mahdavi@novell.com) for poking at the + Intel/Linux side of the code and sending bug reports + Mark Foster (mafoster@george.arc.nasa.gov) for writing the + manual page + Ethan Blanton (eblanton@irg.cs.ohiou.edu) for helping us + understand the mystery that is Linux and being the + guardian of "esthetically pleasing" + Wes Eddy (weddy@irg.cs.ohiou.edu) for designing the new web + pages and contributing to cross-platform compatibility + Nathan Smith (nsmith@irg.cs.ohiou.edu) for figuring out + autoconf and making the Darwin/OSX port possible + Priya Narasimhan (pnarasim@irg.cs.ohiou.edu) for helping with + general bug fixes and rewriting the owin code + Marina Bykova (mbykova@irg.cs.ohiou.edu) for helping with the + Tru64 port and writing the realtime operation code + Bruce Mah (bmah@CA.Sandia.GOV) for helping with bug fixes related to + 'buffer overflows' and for improving the http module. + Avinash Lakhiani (alakhian@irg.cs.ohiou.edu) for developing jPlot, a Java + version of xplot, for adding the IPv6 checksum support, and for other + feature enhancements and bug fixes. + Daikichi Osuga (osuga@mml.yrp.nttdocomo.co.jp) for helping figure + out how to get ns2 trace files to work with tcptrace, and for + providing a useful script for the same. Also for providing + helpful bug reports. + Matt Muggeridge (Matt.Muggeridge@compaq.com) for porting tcptrace to + OpenVMS and providing us with detailed documentation for the + same. + Angelos Stavrou (angelos@ee.columbia.edu) for adding support for the + reading of headers from ns FullTcp agents. diff --git a/WWW b/WWW new file mode 100644 index 0000000..aa70acc --- /dev/null +++ b/WWW @@ -0,0 +1,3 @@ +Most of info you need is on the web. Check out: + http://tcptrace.org/ + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..c2f5dc2 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1054 @@ +dnl @(#) $Header: /usr/local/cvs/tcptrace/aclocal.m4,v 5.3 2001/09/26 13:38:12 sdo Exp $ (LBL) +dnl +dnl Copyright (c) 1995, 1996, 1997, 1998 +dnl The Regents of the University of California. All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that: (1) source code distributions +dnl retain the above copyright notice and this paragraph in its entirety, (2) +dnl distributions including binary code include the above copyright notice and +dnl this paragraph in its entirety in the documentation or other materials +dnl provided with the distribution, and (3) all advertising materials mentioning +dnl features or use of this software display the following acknowledgement: +dnl ``This product includes software developed by the University of California, +dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of +dnl the University nor the names of its contributors may be used to endorse +dnl or promote products derived from this software without specific prior +dnl written permission. +dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +dnl +dnl LBL autoconf macros +dnl + +dnl +dnl Determine which compiler we're using (cc or gcc) +dnl If using gcc, determine the version number +dnl If using cc, require that it support ansi prototypes +dnl If using gcc, use -O2 (otherwise use -O) +dnl If using cc, explicitly specify /usr/local/include +dnl +dnl usage: +dnl +dnl AC_LBL_C_INIT(copt, incls) +dnl +dnl results: +dnl +dnl $1 (copt set) +dnl $2 (incls set) +dnl CC +dnl LDFLAGS +dnl ac_cv_lbl_gcc_vers +dnl LBL_CFLAGS +dnl +AC_DEFUN(AC_LBL_C_INIT, + [AC_PREREQ(2.12) + AC_BEFORE([$0], [AC_PROG_CC]) + AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) + AC_BEFORE([$0], [AC_LBL_DEVEL]) + AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) + $1="-O" + $2="" + if test "${srcdir}" != "." ; then + $2="-I\$(srcdir)" + fi + if test "${CFLAGS+set}" = set; then + LBL_CFLAGS="$CFLAGS" + fi + if test -z "$CC" ; then + case "$target_os" in + + bsdi*) + AC_CHECK_PROG(SHLICC2, shlicc2, yes, no) + if test $SHLICC2 = yes ; then + CC=shlicc2 + export CC + fi + ;; + esac + fi + if test -z "$CC" -a "$with_gcc" = no ; then + CC=cc + export CC + fi + AC_PROG_CC + if test "$GCC" = yes ; then + if test "$SHLICC2" = yes ; then + ac_cv_lbl_gcc_vers=2 + $1="-O2" + else + AC_MSG_CHECKING(gcc version) + AC_CACHE_VAL(ac_cv_lbl_gcc_vers, + ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \ + sed -e '/^gcc version /!d' \ + -e 's/^gcc version //' \ + -e 's/ .*//' -e 's/^[[[^0-9]]]*//' \ + -e 's/\..*//'`) + AC_MSG_RESULT($ac_cv_lbl_gcc_vers) + if test $ac_cv_lbl_gcc_vers -gt 1 ; then + $1="-O2" + fi + fi + else + AC_MSG_CHECKING(that $CC handles ansi prototypes) + AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes, + AC_TRY_COMPILE( + [#include ], + [int frob(int, char *)], + ac_cv_lbl_cc_ansi_prototypes=yes, + ac_cv_lbl_cc_ansi_prototypes=no)) + AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes) + if test $ac_cv_lbl_cc_ansi_prototypes = no ; then + case "$target_os" in + + hpux*) + AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE)) + savedcflags="$CFLAGS" + CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS" + AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa, + AC_TRY_COMPILE( + [#include ], + [int frob(int, char *)], + ac_cv_lbl_cc_hpux_cc_aa=yes, + ac_cv_lbl_cc_hpux_cc_aa=no)) + AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa) + if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then + AC_MSG_ERROR(see the INSTALL doc for more info) + fi + CFLAGS="$savedcflags" + V_CCOPT="-Aa $V_CCOPT" + AC_DEFINE(_HPUX_SOURCE) + ;; + + *) + AC_MSG_ERROR(see the INSTALL doc for more info) + ;; + esac + fi + $2="$$2 -I/usr/local/include" + LDFLAGS="$LDFLAGS -L/usr/local/lib" + + case "$target_os" in + + irix*) + V_CCOPT="$V_CCOPT -xansi -signed -g3" + ;; + + osf*) + V_CCOPT="$V_CCOPT -std1 -g3" + ;; + + ultrix*) + AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes) + AC_CACHE_VAL(ac_cv_lbl_cc_const_proto, + AC_TRY_COMPILE( + [#include ], + [struct a { int b; }; + void c(const struct a *)], + ac_cv_lbl_cc_const_proto=yes, + ac_cv_lbl_cc_const_proto=no)) + AC_MSG_RESULT($ac_cv_lbl_cc_const_proto) + if test $ac_cv_lbl_cc_const_proto = no ; then + AC_DEFINE(const,) + fi + ;; + esac + fi +]) + +dnl +dnl Use pfopen.c if available and pfopen() not in standard libraries +dnl Require libpcap +dnl Look for libpcap in .. +dnl Use the installed libpcap if there is no local version +dnl +dnl usage: +dnl +dnl AC_LBL_LIBPCAP(pcapdep, incls) +dnl +dnl results: +dnl +dnl $1 (pcapdep set) +dnl $2 (incls appended) +dnl LIBS +dnl LBL_LIBS +dnl +AC_DEFUN(AC_LBL_LIBPCAP, + [AC_REQUIRE([AC_LBL_LIBRARY_NET]) + dnl + dnl save a copy before locating libpcap.a + dnl + LBL_LIBS="$LIBS" + pfopen=/usr/examples/packetfilter/pfopen.c + if test -f $pfopen ; then + AC_CHECK_FUNCS(pfopen) + if test $ac_cv_func_pfopen = "no" ; then + AC_MSG_RESULT(Using $pfopen) + LIBS="$LIBS $pfopen" + fi + fi + AC_MSG_CHECKING(for local pcap library) + libpcap=FAIL + lastdir=FAIL + places=`ls .. | sed -e 's,/$,,' -e 's,^,../,' | \ + egrep '/libpcap-[[0-9]]*.[[0-9]]*(.[[0-9]]*)?([[ab]][[0-9]]*)?$'` + for dir in $places ../libpcap libpcap ; do + basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'` + if test $lastdir = $basedir ; then + dnl skip alphas when an actual release is present + continue; + fi + lastdir=$dir + if test -r $dir/libpcap.a ; then + libpcap=$dir/libpcap.a + d=$dir + dnl continue and select the last one that exists + fi + done + if test $libpcap = FAIL ; then + AC_MSG_RESULT(not found) + AC_CHECK_LIB(pcap, main, libpcap="-lpcap") + if test $libpcap = FAIL ; then + AC_MSG_ERROR(see the INSTALL doc for more info) + fi + else + $1=$libpcap + if test -r $d/pcap.h; then + $2="-I$d $$2" + elif test -r $srcdir/../libpcap/pcap.h; then + $2="-I$d -I$srcdir/../libpcap $$2" + else + AC_MSG_ERROR(cannot find pcap.h, see INSTALL) + fi + AC_MSG_RESULT($libpcap) + fi + LIBS="$libpcap $LIBS" + case "$target_os" in + + aix*) + pseexe="/lib/pse.exp" + AC_MSG_CHECKING(for $pseexe) + if test -f $pseexe ; then + AC_MSG_RESULT(yes) + LIBS="$LIBS -I:$pseexe" + fi + ;; + esac]) + +dnl +dnl Define RETSIGTYPE and RETSIGVAL +dnl +dnl usage: +dnl +dnl AC_LBL_TYPE_SIGNAL +dnl +dnl results: +dnl +dnl RETSIGTYPE (defined) +dnl RETSIGVAL (defined) +dnl +AC_DEFUN(AC_LBL_TYPE_SIGNAL, + [AC_BEFORE([$0], [AC_LBL_LIBPCAP]) + AC_TYPE_SIGNAL + if test "$ac_cv_type_signal" = void ; then + AC_DEFINE(RETSIGVAL,) + else + AC_DEFINE(RETSIGVAL,(0)) + fi + case "$target_os" in + + irix*) + AC_DEFINE(_BSD_SIGNALS) + ;; + + *) + dnl prefer sigset() to sigaction() + AC_CHECK_FUNCS(sigset) + if test $ac_cv_func_sigset = no ; then + AC_CHECK_FUNCS(sigaction) + fi + ;; + esac]) + +dnl +dnl If using gcc, make sure we have ANSI ioctl definitions +dnl +dnl usage: +dnl +dnl AC_LBL_FIXINCLUDES +dnl +AC_DEFUN(AC_LBL_FIXINCLUDES, + [if test "$GCC" = yes ; then + AC_MSG_CHECKING(for ANSI ioctl definitions) + AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes, + AC_TRY_COMPILE( + [/* + * This generates a "duplicate case value" when fixincludes + * has not be run. + */ +# include +# include +# include +# ifdef HAVE_SYS_IOCCOM_H +# include +# endif], + [switch (0) { + case _IO('A', 1):; + case _IO('B', 1):; + }], + ac_cv_lbl_gcc_fixincludes=yes, + ac_cv_lbl_gcc_fixincludes=no)) + AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes) + if test $ac_cv_lbl_gcc_fixincludes = no ; then + # Don't cache failure + unset ac_cv_lbl_gcc_fixincludes + AC_MSG_ERROR(see the INSTALL for more info) + fi + fi]) + +dnl +dnl Check for flex, default to lex +dnl Require flex 2.4 or higher +dnl Check for bison, default to yacc +dnl Default to lex/yacc if both flex and bison are not available +dnl Define the yy prefix string if using flex and bison +dnl +dnl usage: +dnl +dnl AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix) +dnl +dnl results: +dnl +dnl $1 (lex set) +dnl $2 (yacc appended) +dnl $3 (optional flex and bison -P prefix) +dnl +AC_DEFUN(AC_LBL_LEX_AND_YACC, + [AC_ARG_WITH(flex, [ --without-flex don't use flex]) + AC_ARG_WITH(bison, [ --without-bison don't use bison]) + if test "$with_flex" = no ; then + $1=lex + else + AC_CHECK_PROGS($1, flex, lex) + fi + if test "$$1" = flex ; then + # The -V flag was added in 2.4 + AC_MSG_CHECKING(for flex 2.4 or higher) + AC_CACHE_VAL(ac_cv_lbl_flex_v24, + if flex -V >/dev/null 2>&1; then + ac_cv_lbl_flex_v24=yes + else + ac_cv_lbl_flex_v24=no + fi) + AC_MSG_RESULT($ac_cv_lbl_flex_v24) + if test $ac_cv_lbl_flex_v24 = no ; then + s="2.4 or higher required" + AC_MSG_WARN(ignoring obsolete flex executable ($s)) + $1=lex + fi + fi + if test "$with_bison" = no ; then + $2=yacc + else + AC_CHECK_PROGS($2, bison, yacc) + fi + if test "$$2" = bison ; then + $2="$$2 -y" + fi + if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then + AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc) + $1=lex + $2=yacc + fi + if test "$$1" = flex -a -n "$3" ; then + $1="$$1 -P$3" + $2="$$2 -p $3" + fi]) + +dnl +dnl Checks to see if union wait is used with WEXITSTATUS() +dnl +dnl usage: +dnl +dnl AC_LBL_UNION_WAIT +dnl +dnl results: +dnl +dnl DECLWAITSTATUS (defined) +dnl +AC_DEFUN(AC_LBL_UNION_WAIT, + [AC_MSG_CHECKING(if union wait is used) + AC_CACHE_VAL(ac_cv_lbl_union_wait, + AC_TRY_COMPILE([ +# include +# include ], + [int status; + u_int i = WEXITSTATUS(status); + u_int j = waitpid(0, &status, 0);], + ac_cv_lbl_union_wait=no, + ac_cv_lbl_union_wait=yes)) + AC_MSG_RESULT($ac_cv_lbl_union_wait) + if test $ac_cv_lbl_union_wait = yes ; then + AC_DEFINE(DECLWAITSTATUS,union wait) + else + AC_DEFINE(DECLWAITSTATUS,int) + fi]) + +dnl +dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member +dnl +dnl usage: +dnl +dnl AC_LBL_SOCKADDR_SA_LEN +dnl +dnl results: +dnl +dnl HAVE_SOCKADDR_SA_LEN (defined) +dnl +AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN, + [AC_MSG_CHECKING(if sockaddr struct has sa_len member) + AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len, + AC_TRY_COMPILE([ +# include +# include ], + [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], + ac_cv_lbl_sockaddr_has_sa_len=yes, + ac_cv_lbl_sockaddr_has_sa_len=no)) + AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len) + if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then + AC_DEFINE(HAVE_SOCKADDR_SA_LEN) + fi]) + +dnl +dnl Checks to see if -R is used +dnl +dnl usage: +dnl +dnl AC_LBL_HAVE_RUN_PATH +dnl +dnl results: +dnl +dnl ac_cv_lbl_have_run_path (yes or no) +dnl +AC_DEFUN(AC_LBL_HAVE_RUN_PATH, + [AC_MSG_CHECKING(for ${CC-cc} -R) + AC_CACHE_VAL(ac_cv_lbl_have_run_path, + [echo 'main(){}' > conftest.c + ${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1 + if test ! -s conftest.out ; then + ac_cv_lbl_have_run_path=yes + else + ac_cv_lbl_have_run_path=no + fi + rm -f conftest*]) + AC_MSG_RESULT($ac_cv_lbl_have_run_path) + ]) + +dnl +dnl Due to the stupid way it's implemented, AC_CHECK_TYPE is nearly useless. +dnl +dnl usage: +dnl +dnl AC_LBL_CHECK_TYPE +dnl +dnl results: +dnl +dnl int32_t (defined) +dnl u_int32_t (defined) +dnl +AC_DEFUN(AC_LBL_CHECK_TYPE, + [AC_MSG_CHECKING(for $1 using $CC) + AC_CACHE_VAL(ac_cv_lbl_have_$1, + AC_TRY_COMPILE([ +# include "confdefs.h" +# include +# if STDC_HEADERS +# include +# include +# endif], + [$1 i], + ac_cv_lbl_have_$1=yes, + ac_cv_lbl_have_$1=no)) + AC_MSG_RESULT($ac_cv_lbl_have_$1) + if test $ac_cv_lbl_have_$1 = no ; then + AC_DEFINE($1, $2) + fi]) + +dnl +dnl Checks to see if unaligned memory accesses fail +dnl +dnl usage: +dnl +dnl AC_LBL_UNALIGNED_ACCESS +dnl +dnl results: +dnl +dnl LBL_ALIGN (DEFINED) +dnl +AC_DEFUN(AC_LBL_UNALIGNED_ACCESS, + [AC_MSG_CHECKING(if unaligned accesses fail) + AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, + [case "$target_cpu" in + + # XXX: should also check that they don't do weird things (like on arm) + alpha*|arm*|hp*|mips|sparc) + ac_cv_lbl_unaligned_fail=yes + ;; + + *) + cat >conftest.c < +# include +# include + unsigned char a[[5]] = { 1, 2, 3, 4, 5 }; + main() { + unsigned int i; + pid_t pid; + int status; + /* avoid "core dumped" message */ + pid = fork(); + if (pid < 0) + exit(2); + if (pid > 0) { + /* parent */ + pid = waitpid(pid, &status, 0); + if (pid < 0) + exit(3); + exit(!WIFEXITED(status)); + } + /* child */ + i = *(unsigned int *)&a[[1]]; + printf("%d\n", i); + exit(0); + } +EOF + ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \ + conftest.c $LIBS >/dev/null 2>&1 + if test ! -x conftest ; then + dnl failed to compile for some reason + ac_cv_lbl_unaligned_fail=yes + else + ./conftest >conftest.out + if test ! -s conftest.out ; then + ac_cv_lbl_unaligned_fail=yes + else + ac_cv_lbl_unaligned_fail=no + fi + fi + rm -f conftest* core core.conftest + ;; + esac]) + AC_MSG_RESULT($ac_cv_lbl_unaligned_fail) + if test $ac_cv_lbl_unaligned_fail = yes ; then + AC_DEFINE(LBL_ALIGN) + fi]) + +dnl +dnl If using gcc and the file .devel exists: +dnl Compile with -g (if supported) and -Wall +dnl If using gcc 2, do extra prototype checking +dnl If an os prototype include exists, symlink os-proto.h to it +dnl +dnl usage: +dnl +dnl AC_LBL_DEVEL(copt) +dnl +dnl results: +dnl +dnl $1 (copt appended) +dnl HAVE_OS_PROTO_H (defined) +dnl os-proto.h (symlinked) +dnl +AC_DEFUN(AC_LBL_DEVEL, + [rm -f os-proto.h + if test "${LBL_CFLAGS+set}" = set; then + $1="$$1 ${LBL_CFLAGS}" + fi + if test -f .devel ; then + if test "$GCC" = yes ; then + if test "${LBL_CFLAGS+set}" != set; then + if test "$ac_cv_prog_cc_g" = yes ; then + $1="-g $$1" + fi + $1="$$1 -Wall" + if test $ac_cv_lbl_gcc_vers -gt 1 ; then + $1="$$1 -Wmissing-prototypes -Wstrict-prototypes" + fi + fi + else + case "$target_os" in + + irix6*) + V_CCOPT="$V_CCOPT -n32" + ;; + + *) + ;; + esac + fi + os=`echo $target_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'` + name="lbl/os-$os.h" + if test -f $name ; then + ln -s $name os-proto.h + AC_DEFINE(HAVE_OS_PROTO_H) + else + AC_MSG_WARN(can't find $name) + fi + fi]) + +dnl +dnl Improved version of AC_CHECK_LIB +dnl +dnl Thanks to John Hawkinson (jhawk@mit.edu) +dnl +dnl usage: +dnl +dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, +dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]]) +dnl +dnl results: +dnl +dnl LIBS +dnl + +define(AC_LBL_CHECK_LIB, +[AC_MSG_CHECKING([for $2 in -l$1]) +dnl Use a cache variable name containing both the library and function name, +dnl because the test really is for library $1 defining function $2, not +dnl just for library $1. Separate tests with the same $1 and different $2's +dnl may have different results. +ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'` +AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var, +[ac_save_LIBS="$LIBS" +LIBS="-l$1 $5 $LIBS" +AC_TRY_LINK(dnl +ifelse([$2], [main], , dnl Avoid conflicting decl of main. +[/* Override any gcc2 internal prototype to avoid an error. */ +]dnl +[/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $2(); +]), + [$2()], + eval "ac_cv_lbl_lib_$ac_lib_var=yes", + eval "ac_cv_lbl_lib_$ac_lib_var=no") +LIBS="$ac_save_LIBS" +])dnl +if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$3], , +[changequote(, )dnl + ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` +changequote([, ])dnl + AC_DEFINE_UNQUOTED($ac_tr_lib) + LIBS="-l$1 $LIBS" +], [$3]) +else + AC_MSG_RESULT(no) +ifelse([$4], , , [$4 +])dnl +fi +]) + +dnl +dnl AC_LBL_LIBRARY_NET +dnl +dnl This test is for network applications that need socket() and +dnl gethostbyname() -ish functions. Under Solaris, those applications +dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link +dnl with "-lnsl" but should *not* link with "-lsocket" because +dnl libsocket.a breaks a number of things (for instance: +dnl gethostbyname() under IRIX 5.2, and snoop sockets under most +dnl versions of IRIX). +dnl +dnl Unfortunately, many application developers are not aware of this, +dnl and mistakenly write tests that cause -lsocket to be used under +dnl IRIX. It is also easy to write tests that cause -lnsl to be used +dnl under operating systems where neither are necessary (or useful), +dnl such as SunOS 4.1.4, which uses -lnsl for TLI. +dnl +dnl This test exists so that every application developer does not test +dnl this in a different, and subtly broken fashion. + +dnl It has been argued that this test should be broken up into two +dnl seperate tests, one for the resolver libraries, and one for the +dnl libraries necessary for using Sockets API. Unfortunately, the two +dnl are carefully intertwined and allowing the autoconf user to use +dnl them independantly potentially results in unfortunate ordering +dnl dependancies -- as such, such component macros would have to +dnl carefully use indirection and be aware if the other components were +dnl executed. Since other autoconf macros do not go to this trouble, +dnl and almost no applications use sockets without the resolver, this +dnl complexity has not been implemented. +dnl +dnl The check for libresolv is in case you are attempting to link +dnl statically and happen to have a libresolv.a lying around (and no +dnl libnsl.a). +dnl +AC_DEFUN(AC_LBL_LIBRARY_NET, [ + # Most operating systems have gethostbyname() in the default searched + # libraries (i.e. libc): + AC_CHECK_FUNC(gethostbyname, , + # Some OSes (eg. Solaris) place it in libnsl: + AC_LBL_CHECK_LIB(nsl, gethostbyname, , + # Some strange OSes (SINIX) have it in libsocket: + AC_LBL_CHECK_LIB(socket, gethostbyname, , + # Unfortunately libsocket sometimes depends on libnsl. + # AC_CHECK_LIB's API is essentially broken so the + # following ugliness is necessary: + AC_LBL_CHECK_LIB(socket, gethostbyname, + LIBS="-lsocket -lnsl $LIBS", + AC_CHECK_LIB(resolv, gethostbyname), + -lnsl)))) + AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , + AC_LBL_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , + -lnsl))) + # DLPI needs putmsg under HPUX so test for -lstr while we're at it + AC_CHECK_LIB(str, putmsg) + ]) + +dnl Copyright (c) 1999 WIDE Project. All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl 3. Neither the name of the project nor the names of its contributors +dnl may be used to endorse or promote products derived from this software +dnl without specific prior written permission. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND +dnl ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +dnl ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE +dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +dnl OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +dnl LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +dnl OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +dnl SUCH DAMAGE. + +dnl +dnl Checks to see if AF_INET6 is defined +AC_DEFUN(AC_CHECK_AF_INET6, [ + AC_MSG_CHECKING(for AF_INET6) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include ], + [int a = AF_INET6], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes ; then + AC_DEFINE(HAVE_AF_INET6) + fi +]) + +dnl +dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member +dnl borrowed from LBL libpcap +AC_DEFUN(AC_CHECK_SA_LEN, [ + AC_MSG_CHECKING(if sockaddr struct has sa_len member) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include ], + [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes ; then + AC_DEFINE(HAVE_SOCKADDR_SA_LEN) + fi +]) + +dnl +dnl Checks for portable prototype declaration macro +AC_DEFUN(AC_CHECK_PORTABLE_PROTO, [ + AC_MSG_CHECKING(for __P) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include ], + [int f __P(())], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_PORTABLE_PROTOTYPE) + fi +]) + +dnl checks for u_intXX_t +AC_DEFUN(AC_CHECK_BITTYPES, [ + $1=yes +dnl check for u_int8_t + AC_MSG_CHECKING(for u_int8_t) + AC_CACHE_VAL(ac_cv_u_int8_t, + AC_TRY_COMPILE([ +# include ], + [u_int8_t i], + ac_cv_u_int8_t=yes, + ac_cv_u_int8_t=no)) + AC_MSG_RESULT($ac_cv_u_int8_t) + if test $ac_cv_u_int8_t = yes; then + AC_DEFINE(HAVE_U_INT8_T) + else + $1=no + fi +dnl check for u_int16_t + AC_MSG_CHECKING(for u_int16_t) + AC_CACHE_VAL(ac_cv_u_int16_t, + AC_TRY_COMPILE([ +# include ], + [u_int16_t i], + ac_cv_u_int16_t=yes, + ac_cv_u_int16_t=no)) + AC_MSG_RESULT($ac_cv_u_int16_t) + if test $ac_cv_u_int16_t = yes; then + AC_DEFINE(HAVE_U_INT16_T) + else + $1=no + fi +dnl check for u_int32_t + AC_MSG_CHECKING(for u_int32_t) + AC_CACHE_VAL(ac_cv_u_int32_t, + AC_TRY_COMPILE([ +# include ], + [u_int32_t i], + ac_cv_u_int32_t=yes, + ac_cv_u_int32_t=no)) + AC_MSG_RESULT($ac_cv_u_int32_t) + if test $ac_cv_u_int32_t = yes; then + AC_DEFINE(HAVE_U_INT32_T) + else + $1=no + fi +]) + +dnl +dnl Checks for addrinfo structure +AC_DEFUN(AC_STRUCT_ADDRINFO, [ + AC_MSG_CHECKING(for addrinfo) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include ], + [struct addrinfo a], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_ADDRINFO) + else + AC_DEFINE(NEED_ADDRINFO_H) + fi +]) + +dnl +dnl Checks for NI_MAXSERV +AC_DEFUN(AC_NI_MAXSERV, [ + AC_MSG_CHECKING(for NI_MAXSERV) + AC_CACHE_VAL($1, + AC_EGREP_CPP(yes, [#include +#ifdef NI_MAXSERV +yes +#endif], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 != yes; then + AC_DEFINE(NEED_ADDRINFO_H) + fi +]) + +dnl +dnl Checks for NI_NAMEREQD +AC_DEFUN(AC_NI_NAMEREQD, [ + AC_MSG_CHECKING(for NI_NAMEREQD) + AC_CACHE_VAL($1, + AC_EGREP_CPP(yes, [#include +#ifdef NI_NOFQDN +yes +#endif], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 != yes; then + AC_DEFINE(NEED_ADDRINFO_H) + fi +]) + +dnl +dnl Checks for sockaddr_storage structure +AC_DEFUN(AC_STRUCT_SA_STORAGE, [ + AC_MSG_CHECKING(for sockaddr_storage) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include ], + [struct sockaddr_storage s], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_SOCKADDR_STORAGE) + fi +]) + +dnl +dnl Checks for macro of IP address size +AC_DEFUN(AC_CHECK_ADDRSZ, [ + $1=yes +dnl check for INADDRSZ + AC_MSG_CHECKING(for INADDRSZ) + AC_CACHE_VAL(ac_cv_inaddrsz, + AC_TRY_COMPILE([ +# include ], + [int a = INADDRSZ], + ac_cv_inaddrsz=yes, + ac_cv_inaddrsz=no)) + AC_MSG_RESULT($ac_cv_inaddrsz) + if test $ac_cv_inaddrsz = yes; then + AC_DEFINE(HAVE_INADDRSZ) + else + $1=no + fi +dnl check for IN6ADDRSZ + AC_MSG_CHECKING(for IN6ADDRSZ) + AC_CACHE_VAL(ac_cv_in6addrsz, + AC_TRY_COMPILE([ +# include ], + [int a = IN6ADDRSZ], + ac_cv_in6addrsz=yes, + ac_cv_in6addrsz=no)) + AC_MSG_RESULT($ac_cv_in6addrsz) + if test $ac_cv_in6addrsz = yes; then + AC_DEFINE(HAVE_IN6ADDRSZ) + else + $1=no + fi +]) + +dnl +dnl check for RES_USE_INET6 +AC_DEFUN(AC_CHECK_RES_USE_INET6, [ + AC_MSG_CHECKING(for RES_USE_INET6) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include +# include ], + [int a = RES_USE_INET6], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_RES_USE_INET6) + fi +]) + +dnl +dnl check for AAAA +AC_DEFUN(AC_CHECK_AAAA, [ + AC_MSG_CHECKING(for AAAA) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include ], + [int a = T_AAAA], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_AAAA) + fi +]) + +dnl +dnl check for struct res_state_ext +AC_DEFUN(AC_STRUCT_RES_STATE_EXT, [ + AC_MSG_CHECKING(for res_state_ext) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include +# include +# include ], + [struct __res_state_ext e], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_RES_STATE_EXT) + fi +]) + +dnl +dnl check for struct res_state_ext +AC_DEFUN(AC_STRUCT_RES_STATE, [ + AC_MSG_CHECKING(for nsort in res_state) + AC_CACHE_VAL($1, + AC_TRY_COMPILE([ +# include +# include +# include +# include ], + [struct __res_state e; e.nsort = 0], + $1=yes, + $1=no)) + AC_MSG_RESULT($$1) + if test $$1 = yes; then + AC_DEFINE(HAVE_NEW_RES_STATE) + fi +]) + +dnl +dnl check for h_errno +AC_DEFUN(AC_VAR_H_ERRNO, [ + AC_MSG_CHECKING(for h_errno) + AC_CACHE_VAL(ac_cv_var_h_errno, + AC_TRY_COMPILE([ +# include +# include ], + [int foo = h_errno;], + ac_cv_var_h_errno=yes, + ac_cv_var_h_errno=no)) + AC_MSG_RESULT($ac_cv_var_h_errno) + if test "$ac_cv_var_h_errno" = "yes"; then + AC_DEFINE(HAVE_H_ERRNO) + fi +]) + +dnl +dnl Test for __attribute__ +dnl + +AC_DEFUN(AC_C___ATTRIBUTE__, [ +AC_MSG_CHECKING(for __attribute__) +AC_CACHE_VAL(ac_cv___attribute__, [ +AC_TRY_COMPILE([ +#include +], +[ +static void foo(void) __attribute__ ((noreturn)); + +static void +foo(void) +{ + exit(1); +} +], +ac_cv___attribute__=yes, +ac_cv___attribute__=no)]) +if test "$ac_cv___attribute__" = "yes"; then + AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__]) +fi +AC_MSG_RESULT($ac_cv___attribute__) +]) diff --git a/avl.c b/avl.c new file mode 100644 index 0000000..76a910f --- /dev/null +++ b/avl.c @@ -0,0 +1,510 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Ramani Yellapragada + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ + +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/avl.c,v 5.5 2004/11/04 21:44:53 sdo Exp $"; + + +/* Local routines for handling AVL tree balancing after inserting a node */ + +static void SnapRotLeft(ptp_snap **n); +static void SnapRotRight(ptp_snap **n); +static enum AVLRES SnapLeftGrown(ptp_snap **n); +static enum AVLRES SnapRightGrown(ptp_snap **n); + +/* Local routines for handling AVL tree balancing after removing a node */ + +static enum AVLRES SnapLeftShrunk(ptp_snap **n); +static enum AVLRES SnapRightShrunk(ptp_snap **n); +static int SnapFindHighest(ptp_snap *target, ptp_snap **n, enum AVLRES *res); +static int SnapFindLowest(ptp_snap *target, ptp_snap **n, enum AVLRES *res); + +/* + * SnapRotLeft - perform counter clockwise rotation + */ + +static void +SnapRotLeft( + ptp_snap **n) +{ + ptp_snap *tmp = *n; + + if (debug > 4) + printf("SnapRotLeft(): Rotating the AVL tree counter clockwise\n"); + + *n = (*n)->right; + tmp->right = (*n)->left; + (*n)->left = tmp; +} + +/* + * SnapRotRight - perform clockwise rotation + */ + +static void +SnapRotRight( + ptp_snap **n) +{ + ptp_snap *tmp = *n; + + if (debug > 4) + printf("SnapRotRight(): Rotating the AVL tree clockwise\n"); + + *n = (*n)->left; + tmp->left = (*n)->right; + (*n)->right = tmp; +} + +/* SnapLeftGrown - For balancing an AVL tree after insertion + * Input is the address of a node. The node's left subtree has grown + * due to insertion. + */ + +static enum AVLRES +SnapLeftGrown( + ptp_snap **n) +{ + if (debug > 4) + printf("SnapLeftGrown(): Balancing the AVL tree because left subtree\ + has grown after insertion\n"); + + switch ((*n)->skew) { + case LEFT: + if ((*n)->left->skew == LEFT) { + (*n)->skew = (*n)->left->skew = EQUAL1; + SnapRotRight(n); + } + else { + switch ((*n)->left->right->skew) { + case LEFT: + (*n)->skew = RIGHT; + (*n)->left->skew = EQUAL1; + break; + case RIGHT: + (*n)->skew = EQUAL1; + (*n)->left->skew = LEFT; + break; + default: + (*n)->skew = EQUAL1; + (*n)->left->skew = EQUAL1; + } + + (*n)->left->right->skew = EQUAL1; + SnapRotLeft(&(*n)->left); + SnapRotRight(n); + } + return OK; + + case RIGHT: + (*n)->skew = EQUAL1; + return OK; + + default: + (*n)->skew = LEFT; + return BALANCE; + } +} + +/* SnapRightGrown - For balancing an AVL tree after insertion + * Input is the address of a node. The node's right subtree has grown + * due to insertion. + */ + +static enum AVLRES +SnapRightGrown( + ptp_snap **n) +{ + if (debug > 4) + printf("SnapRightGrown(): Balancing the AVL tree because right subtree\ + has grown after insertion\n"); + + switch ((*n)->skew) { + case LEFT: + (*n)->skew = EQUAL1; + return OK; + + case RIGHT: + if ((*n)->right->skew == RIGHT) { + (*n)->skew = (*n)->right->skew = EQUAL1; + SnapRotLeft(n); + } + else { + switch ((*n)->right->left->skew) { + case RIGHT: + (*n)->skew = LEFT; + (*n)->right->skew = EQUAL1; + break; + + case LEFT: + (*n)->skew = EQUAL1; + (*n)->right->skew = RIGHT; + break; + + default: + (*n)->skew = EQUAL1; + (*n)->right->skew = EQUAL1; + } + + (*n)->right->left->skew = EQUAL1; + SnapRotRight(&(*n)->right); + SnapRotLeft(n); + } + return OK; + + default: + (*n)->skew = RIGHT; + return BALANCE; + } +} + +/* + * SnapInsert - insert a node into the AVL tree + * and balance the AVL tree + */ + +enum AVLRES +SnapInsert( + ptp_snap **root, + ptp_snap *new_node) +{ + enum AVLRES tmp; + + if (debug > 4) + printf("SnapInsert(): Inserting a node in the AVL tree\n"); + + if (!(*root)) { + *root = new_node; + (*root)->left = (*root)->right = NULL; + (*root)->skew = EQUAL1; + return BALANCE; + } + + else if (AVL_WhichDir(&new_node->addr_pair, &((*root)->addr_pair)) == LT) { + if ((tmp = SnapInsert(&(*root)->left, new_node)) == BALANCE) { + return SnapLeftGrown(root); + } + return tmp; + } + + else if (AVL_WhichDir(&new_node->addr_pair, &((*root)->addr_pair)) == RT) { + if ((tmp = SnapInsert(&(*root)->right, new_node)) == BALANCE) { + return SnapRightGrown(root); + } + return tmp; + } + return 0; +} + +/* + * SnapLeftShrunk - For balancing an AVL tree after removing a node + * Input is the address of a node. The node's left subtree has shrunk + * due to removal and might have made the tree unbalanced. + */ + +static enum AVLRES +SnapLeftShrunk( + ptp_snap **n) +{ + if (debug > 4) + printf("SnapLeftshrunk(): Balancing the AVL tree because left subtree\ + has shrunk after removal\n"); + + switch ((*n)->skew) { + case LEFT: + (*n)->skew = EQUAL1; + return BALANCE; + + case RIGHT: + if ((*n)->right->skew == RIGHT) { + (*n)->skew = (*n)->right->skew = EQUAL1; + SnapRotLeft(n); + return BALANCE; + } + + else if ((*n)->right->skew == EQUAL1) { + (*n)->skew = RIGHT; + (*n)->right->skew = LEFT; + SnapRotLeft(n); + return OK; + } + + else { + switch ((*n)->right->left->skew) { + case LEFT: + (*n)->skew = EQUAL1; + (*n)->right->skew = RIGHT; + break; + + case RIGHT: + (*n)->skew = LEFT; + (*n)->right->skew = EQUAL1; + break; + + default: + (*n)->skew = EQUAL1; + (*n)->right->skew = EQUAL1; + } + + (*n)->right->left->skew = EQUAL1; + SnapRotRight(& (*n)->right); + SnapRotLeft(n); + return BALANCE; + } + + default: + (*n)->skew = RIGHT; + return OK; + } +} + +/* + * SnapRightShrunk - For balancing an AVL tree after removing a node + * Input is the address of a node. The node's right subtree has shrunk + * due to removal and might have made the tree unbalanced. + */ + +static enum AVLRES +SnapRightShrunk( + ptp_snap **n) +{ + if (debug > 4) + printf("SnapRightShrunk(): Balancing the AVL tree because right subtree\ + has shrunk after removal\n"); + + switch ((*n)->skew) { + case RIGHT: + (*n)->skew = EQUAL1; + return BALANCE; + + case LEFT: + if ((*n)->left->skew == LEFT) { + (*n)->skew = (*n)->left->skew = EQUAL1; + SnapRotRight(n); + return BALANCE; + } + else if ((*n)->left->skew == EQUAL1) { + (*n)->skew = LEFT; + (*n)->left->skew = RIGHT; + SnapRotRight(n); + return OK; + } + + else { + switch ((*n)->left->right->skew) { + case LEFT: + (*n)->skew = RIGHT; + (*n)->left->skew = EQUAL1; + break; + + case RIGHT: + (*n)->skew = EQUAL1; + (*n)->left->skew = LEFT; + break; + + default: + (*n)->skew = EQUAL1; + (*n)->left->skew = EQUAL1; + } + + (*n)->left->right->skew = EQUAL1; + SnapRotLeft(& (*n)->left); + SnapRotRight(n); + return BALANCE; + } + + default: + (*n)->skew = LEFT; + return OK; + } +} + +/* + * SnapFindHighest - replace a node with a subtree's highest-ranking item + */ + +static int +SnapFindHighest( + ptp_snap *target, + ptp_snap **n, + enum AVLRES *res) +{ + ptp_snap *tmp; + + if (debug > 4) + printf("SnapFindHighest(): Replacing a node with a subtree's\ + highest ranking item \n"); + + *res = BALANCE; + if (! (*n)) { + return 0; + } + + if ((*n)->right) { + if (!SnapFindHighest(target, & (*n)->right, res)) { + return 0; + } + + if (*res == BALANCE) { + *res = SnapRightShrunk(n); + } + + return 1; + } + + target->addr_pair = (*n)->addr_pair; + target->ptp = (*n)->ptp; + tmp = *n; + (*n) = (*n)->left; + return 1; +} + +/* + * SnapFindLowest - replace a node with a subtree's lowest-ranking item + */ + +static int + SnapFindLowest( + ptp_snap *target, + ptp_snap **n, + enum AVLRES *res) +{ + ptp_snap *tmp; + + if (debug > 4) + printf("SnapFindLowest(): Replacing a node with a subtree's\ + lowest ranking item \n"); + + *res = BALANCE; + if (!(*n)) { + return 0; + } + + if ((*n)->left) { + if (!SnapFindLowest(target, & (*n)->left, res)) { + return 0; + } + + if (*res == BALANCE) { + *res = SnapLeftShrunk(n); + } + + return 1; + } + + target->addr_pair = (*n)->addr_pair; + target->ptp = (*n)->ptp; + tmp = *n; + *n = (*n)->right; + return 1; +} + +/* + * SnapRemove - remove a node from the AVL tree + * and balance the AVL tree + */ + +enum AVLRES +SnapRemove( + ptp_snap **root, + tcp_pair_addrblock addr) +{ + enum AVLRES tmp = BALANCE; + + if (debug > 4) + printf("SnapRemove(): Removing a node from the AVL tree\n"); + + if (!(*root)) { + return 0; + } + + if (AVL_WhichDir(&addr, &((*root)->addr_pair)) == LT) { + if ((tmp = SnapRemove(&(*root)->left, addr)) == BALANCE) { + return SnapLeftShrunk(root); + } + + return tmp; + } + + if (AVL_WhichDir(&addr, &((*root)->addr_pair)) == RT) { + if ((tmp = SnapRemove(&(*root)->right, addr)) == BALANCE) { + return SnapRightShrunk(root); + } + + return tmp; + } + + if ((*root)->left) { + if (SnapFindHighest(*root, &((*root)->left), &tmp)) { + if (tmp == BALANCE) { + tmp = SnapLeftShrunk(root); + } + return tmp; + } + } + + if ((*root)->right) { + if (SnapFindLowest(*root, &((*root)->right), &tmp)) { + if (tmp == BALANCE) { + tmp = SnapRightShrunk(root); + } + return tmp; + } + } + + *root = NULL; + return BALANCE; +} diff --git a/compress.c b/compress.c new file mode 100644 index 0000000..a49c411 --- /dev/null +++ b/compress.c @@ -0,0 +1,776 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/compress.c,v 5.9 2004/10/01 21:42:34 mramadas Exp $"; + + +#include "compress.h" +#include + +/* + * OK, this stuff is a little complicated. Here's why: + * 1) the routines that examine the file to see if it's of + * a particular type want a real file that they can do + * a "seek" on. Seeking backwards won't work on a stream + * 2) What I do for compressed files is to decompress twice: + * - The first time I just save the first COMP_HDR_SIZE bytes + * into a temporary file and then stop the decompression. + * I then use that file to determine that file type + * - After I know the file type, I restart the decompression + * and reconnect the decompress pipe to stdin + * 3) If the "file" input _IS_ standard input, then it's harder, + * because I can't restart it. In that case, I use a helper process + * that reads the rest of the header file and then starts reading + * the rest of the data from standard input. It's slightly inefficient + * because of the extra process, but I don't know a way around... + */ + + +/* local routines */ +static char *FindBinary(char *binname); +static struct comp_formats *WhichFormat(char *filename); +static FILE *CompSaveHeader(char *filename, struct comp_formats *pf); +static int CompOpenPipe(char *filename, struct comp_formats *pf); +static FILE *PipeHelper(void); +static void PipeFitting(FILE *f_pipe, FILE *f_header, FILE *f_stdin); + + +/* local globals */ +static int header_length = -1; +static Bool is_compressed = FALSE; +static FILE * f_orig_stdin = NULL; +static int child_pid = -1; +static char *tempfile; +int posn; + + +static char *FindBinary( + char *binname) +{ + char *path; + char *pch; + char *pch_colon; + static char abspath[256]; + + /* quick check for absolute path */ + if (*binname == '/') { + if (access(binname,X_OK) == 0) { + if (debug>1) + fprintf(stderr,"FindBinary: abs path '%s' is OK\n", binname); + return(binname); + } else { + if (debug>1) + fprintf(stderr,"FindBinary: abs path '%s' not found\n", binname); + return(NULL); + } + } + + path = getenv("PATH"); + if (path == NULL) { + if (debug) + fprintf(stderr,"FindBinary: couldn't get PATH envariable\n"); + return(NULL); + } + + path = strdup(path); + pch = path; + + while (pch && *pch) { + pch_colon = strchr(pch,':'); + if (pch_colon) + *pch_colon = '\00'; + + snprintf(abspath,sizeof(abspath),"%s/%s",pch,binname); + + if (debug>1) + fprintf(stderr,"Checking for binary '%s'\n", abspath); + if (access(abspath,X_OK) == 0) { + if (debug>1) + fprintf(stderr,"FindBinary: found binary '%s'\n", abspath); + return(abspath); + } + + if (pch_colon) + pch = pch_colon+1; + else + pch = NULL; + } + + if (debug) + fprintf(stderr,"FindBinary: couldn't find binary '%s' in PATH\n", + binname); + + return(NULL); +} + + + +static struct comp_formats * +WhichFormat( + char *filename) +{ + static struct comp_formats *pf_cache = NULL; + static char *pf_file_cache = NULL; + int len; + int lens; + int i; + + /* check the "cache" :-) */ + if (pf_file_cache && (strcmp(filename,pf_file_cache) == 0)) { + return(pf_cache); + } + + len = strlen(filename); + + for (i=0; i < NUM_COMP_FORMATS; ++i) { + struct comp_formats *pf = &supported_comp_formats[i]; + + if (debug>1) + fprintf(stderr,"Checking for suffix match '%s' against '%s' (%s)\n", + filename,pf->comp_suffix,pf->comp_bin); + /* check for suffix match */ + lens = strlen(pf->comp_suffix); + if (strcmp(filename+len-lens, pf->comp_suffix) == 0) { + if (debug>1) + fprintf(stderr,"Suffix match! '%s' against '%s'\n", + filename,pf->comp_suffix); + /* stick it in the cache */ + pf_file_cache = strdup(filename); + pf_cache = pf; + is_compressed = TRUE; + + /* and tell the world */ + return(pf); + } + } + + pf_file_cache = strdup(filename); + pf_cache = NULL; + is_compressed = FALSE; + + if (debug) + fprintf(stderr,"WhichFormat: failed to find compression format for file '%s'\n", + filename); + + return(NULL); +} + + + +static FILE * +CompReopenFile( + char *filename) +{ + char buf[COMP_HDR_SIZE]; + struct comp_formats *pf = WhichFormat(filename); + int len; + int fd; + long pos; + + if (debug>1) + fprintf(stderr,"CompReopenFile('%s') called\n", filename); + + /* we need to switch from the header file to a pipe connected */ + /* to a process. Find out how far we've read from the file */ + /* so far... */ + pos = ftell(stdin); + if (debug>1) + fprintf(stderr,"CompReopenFile: current file position is %ld\n", pos); + + /* open a pipe to the original (compressed) file */ + fd = CompOpenPipe(filename,pf); + if (fd == -1) + return(NULL); + + /* erase the file buffer and reposition to the front */ +#ifdef HAVE_FPURGE + /* needed for NetBSD and FreeBSD (at least) */ + fpurge(stdin); /* discard input buffer */ +#else /* HAVE_FPURGE */ + fflush(stdin); /* discard input buffer */ +#endif /* HAVE_FPURGE */ + rewind(stdin); + + /* yank the FD out from under stdin and point to the pipe */ + dup2(fd,0); + + /* skip forward in the stream to the same place that we were in */ + /* for the header file */ + len = fread(buf,1,pos,stdin); + if ((len == 0) && ferror(stdin)) { + perror("read forward in stdin"); + exit(-1); + } + + /* OK, I guess we're all set... */ + return(stdin); +} + + + + +static FILE * +CompSaveHeader( + char *filename, + struct comp_formats *pf) +{ + FILE *f_stream; + FILE *f_file; + char buf[COMP_HDR_SIZE]; + int len; + int fd; + + fd = CompOpenPipe(filename,pf); + if (fd == -1) + return(NULL); + +#ifdef HAVE_MKSTEMP + { + /* From Mallman, supposed to be "safer" */ + int fd; + extern int mkstemp(char *template); + + /* grab a writable string to keep picky compilers happy */ + tempfile = strdup("/tmp/trace_hdrXXXXXXXX"); + + /* create a temporary file name and open it */ + if ((fd = mkstemp(tempfile)) == -1) { + perror("template"); + exit(-1); + } + + /* convert to a stream */ + f_file = fdopen(fd,"w"); + } +#else /* HAVE_MKSTEMP */ + /* get a name for a temporary file to store the header in */ + tempfile = tempnam("/tmp/","trace_hdr"); + + /* open the file */ + if ((f_file = fopen(tempfile,"w+")) == NULL) { + perror(tempfile); + exit(-1); + } + +#endif /* HAVE_MKSTEMP */ + + + /* connect a stdio stream to the pipe */ + if ((f_stream = fdopen(fd,"r")) == NULL) { + perror("open pipe stream for header"); + exit(-1); + } + + /* just grab the first X bytes and stuff into a temp file */ + len = fread(buf,1,COMP_HDR_SIZE,f_stream); + if ((len == 0) && ferror(f_stream)) { + perror("read pipe stream for header"); + exit(-1); + } + + if (len == 0) { + /* EOF, failure */ + return(NULL); + } + + header_length = len; + if (debug>1) + fprintf(stderr,"Saved %d bytes from stream into temp header file '%s'\n", + len, tempfile); + + /* save the header into a temp file */ + len = fwrite(buf,1,len,f_file); + if ((len == 0) && ferror(f_file)) { + perror("write file stream for header"); + exit(-1); + } + + if (debug>1) + fprintf(stderr,"Saved the file header into temp file '%s'\n", + tempfile); + + + /* OK, we have the header, close the file */ + fclose(f_file); + + /* if it's stdin, make a copy for later */ + if (FileIsStdin(filename)) { + f_orig_stdin = f_stream; /* remember where it is */ + } else { + fclose(f_stream); + } + + /* re-open the file as stdin */ + if ((freopen(tempfile,"r",stdin)) == NULL) { + perror("tempfile"); + exit(-1); + } + + return(stdin); +} + + + +static int +CompOpenPipe( + char *filename, + struct comp_formats *pf) +{ + int fdpipe[2]; + char *abspath; + int i; + char *args[COMP_MAX_ARGS]; + + if (debug>1) + fprintf(stderr,"CompOpenPipe('%s') called\n", filename); + + /* short hand if it's just reading from standard input */ + if (FileIsStdin(filename)) { + return(dup(0)); /* 0: standard input */ + } + + abspath = FindBinary(pf->comp_bin); + if (!abspath) { + fprintf(stderr, + "Compression: failed to find binary for '%s' needed to uncompress file\n", + pf->comp_bin); + fprintf(stderr, + "According to my configuration, I need '%s' to decode files of type\n", + pf->comp_bin); + fprintf(stderr, "%s\n", pf->comp_descr); + exit(-1); + } + + /* save the path for later... */ + pf->comp_bin = strdup(abspath); + + /* filter args */ + for (i=0; i < COMP_MAX_ARGS; ++i) { + args[i] = pf->comp_args[i]; + if (!args[i]) + break; + if (strcmp(pf->comp_args[i],"%s") == 0) + args[i] = filename; + } + + + if (Mfpipe(fdpipe) == -1) { + perror("pipe"); + exit(-1); + } + +#ifdef __VMS + child_pid = vfork(); +#else + child_pid = fork(); +#endif + if (child_pid == -1) { + perror("fork"); + exit(-1); + } + if (child_pid == 0) { + /* child */ + dup2(fdpipe[1],1); /* redirect child's stdout to pipe */ + + /* close all other FDs - lazy, but close enough for our purposes :-) */ + for (i=3; i < 100; ++i) close(i); + + if (debug>1) { + fprintf(stderr,"Execing %s", abspath); + for (i=1; args[i]; ++i) + fprintf(stderr," %s", args[i]); + fprintf(stderr,"\n"); + } + + + execv(abspath,args); + fprintf(stderr,"Exec of '%s' failed\n", abspath); + perror(abspath); + exit(-1); + } + + close(fdpipe[1]); + return(fdpipe[0]); +} + + + + + +FILE * +CompOpenHeader( + char *filename) +{ + FILE *f; + struct comp_formats *pf; + + /* short hand if it's just reading from standard input */ + if (FileIsStdin(filename)) { + is_compressed = TRUE; /* pretend that it's compressed */ + return(CompSaveHeader(filename,NULL)); + } + + /* see if it's a supported compression file */ + pf = WhichFormat(filename); + +#ifdef __WIN32 + if(pf != NULL) { + fprintf(stderr, "\nError: windows version of tcptrace does not support\nreading compressed dump files. Uncompress the file\nmanually and try again. Sorry!\n"); + return((FILE *)-1); + } + return(NULL); +#endif /* __WIN32 */ + + /* if no compression found, just open the file */ + if (pf == NULL) { + if (freopen(filename,"r",stdin) == NULL) { + perror(filename); + return(NULL); + } + return(stdin); + } + + /* open the file through compression */ + if (debug>1) + printf("Decompressing file of type '%s' using program '%s'\n", + pf->comp_descr, pf->comp_bin); + else if (debug) + printf("Decompressing file using '%s'\n", pf->comp_bin); + + f = CompSaveHeader(filename,pf); + + if (!f) { + fprintf(stderr,"Decompression failed for file '%s'\n", filename); + exit(-1); + } + + return(f); +} + + +FILE * +CompOpenFile( + char *filename) +{ + if (debug>1) + fprintf(stderr,"CompOpenFile('%s') called\n", filename); + + /* if it isn't compressed, just leave it at stdin */ + if (!is_compressed) + return(stdin); + + /* if the header we already saved is the whole file, it must be */ + /* short, so just read from the file */ + if (header_length < COMP_HDR_SIZE) { + if (debug>1) + fprintf(stderr,"CompOpenFile: still using header file, short file...\n"); + return(stdin); + } + + /* if we're just reading from standard input, we'll need some help because */ + /* part of the input is in a file and the rest is still stuck in a pipe */ + if (FileIsStdin(filename)) { + posn=ftell(stdin); + if (posn < 0) { + perror("CompOpenFile : ftell failed"); + exit(-1); + } + return(PipeHelper()); + } + + /* otherwise, there's more than we saved, we need to re-open the pipe */ + /* and re-attach it to stdin */ + return(CompReopenFile(filename)); +} + + +/* return a FILE * that fill come from a helper process */ +FILE * +PipeHelper(void) +{ + int fdpipe[2]; + FILE *f_return; + + /* On coming in, here's what's in the FDs: */ + /* stdin: has the header file open */ + /* f_stdin_file: holds the rest of the stream */ + + if (Mfpipe(fdpipe) == -1) { + perror("pipe"); + exit(-1); + } + /* remember: fdpipe[0] is for reading, fdpipe[1] is for writing */ + +#ifdef __VMS + child_pid = vfork(); +#else + child_pid = fork(); +#endif + if (child_pid == -1) { + perror("fork"); + exit(-1); + } + if (child_pid == 0) { + /* be the helper process */ + FILE *f_pipe; + + /* attach a stream to the pipe connection */ + f_pipe = fdopen(fdpipe[1],"w"); + if (f_pipe == NULL) { + perror("fdopen on pipe for writing"); + exit(-1); + } + + /* connect the header file and stream to the pipe */ + PipeFitting(f_pipe, stdin, f_orig_stdin); + + /* OK, both empty, we're done */ + if (debug>1) + fprintf(stderr, + "PipeHelper(%d): all done, exiting\n", (int)getpid()); + + exit(0); + } + + /* I'm still the parent */ + if (debug>1) + fprintf(stderr, + "PipeHelper: forked off child %d to deal with stdin\n", + child_pid); + + /* clean up the fd's */ + close(fdpipe[1]); + // Now, we shall purge our old STDIN stream buffer, and point it to the + // read end of the pipe, fdpipe[0] + +#ifdef HAVE_FPURGE + fpurge(stdin); // needed for NetBSD/FreeBSD +#else + fflush(stdin); +#endif + clearerr(stdin); + + if (dup2(fdpipe[0],0)==-1) { + perror("PipeHelper : dup2 failed in parent"); + exit(-1); + } + + /* make a stream attached to the PIPE and return it */ + f_return = fdopen(fdpipe[0],"r"); + if (f_return == NULL) { + perror("PipeHelper : fdopen on pipe for reading"); + exit(-1); + } + return(f_return); +} + + +static void +PipeFitting( + FILE *f_pipe, + FILE *f_header, + FILE *f_orig_stdin) +{ + char buf[COMP_HDR_SIZE]; /* just a big buffer */ + int len; + + // Fix the file synchronization problems and undefined behavior exhibited + // by fread() in managing its buffers, when stdin is opened by both the + // parent and child processes. + // In the child process (where we are currently executing), close and + // re-open the temporary file currently opened as stdin, in which the + // first COMP_HDR_SIZE bytes of data were stored. The current file pointer + // position in the file was stored in the global variable posn. + + if (fclose(f_header)<0) + perror("PipeFitting : fclose failed"); + + if ((f_header=fopen(tempfile,"r"))==NULL) { + perror("PipeFitting : fopen of tempfile failed"); + exit(-1); + } + + if (fread(buf,1,posn,f_header)!=posn) { + perror("PipeFitting : fread failed"); + exit(-1); + } + + /* read from f_header (the file) until empty */ + while (1) { + /* read some more data */ + len = fread(buf,1,sizeof(buf),f_header); + if (len == 0) + break; + if (len < 0) { + perror("fread from f_header"); + exit(0); + } + + if (debug>1) + fprintf(stderr, + "PipeFitting: read %d bytes from header file\n", len); + + /* send those bytes to the pipe */ + if (fwrite(buf,1,len,f_pipe) != len) { + perror("fwrite on pipe"); + exit(-1); + } + } + + // We are done with the temporary file. Time to close and unlink it. + if (fclose(f_header)<0) + perror("PipeFitting : fclose failed"); + + if (unlink(tempfile)<0) + perror("PipeFitting : unlink of tempfile failed"); + + if (debug>1) + fprintf(stderr, + "PipeFitting: header file empty, switching to old stdin\n"); + + /* OK, the file is empty, switch back to the stdin stream */ + while (1) { + /* read some more data */ + len = fread(buf,1,sizeof(buf),f_orig_stdin); + if (len == 0) + break; + if (len < 0) { + perror("fread from f_orig_stdin"); + exit(0); + } + + if (debug>1) + fprintf(stderr, + "PipeFitting: read %d bytes from f_orig_stdin\n", len); + + /* send those bytes to the pipe */ + if (fwrite(buf,1,len,f_pipe) != len) { + perror("fwrite on pipe"); + exit(-1); + } + } +} + + + + +void +CompCloseFile( + char *filename) +{ + /* Hmmm... this was commented out, I wonder why? */ +/* fclose(stdin); */ + + /* if we have a child, make sure it's dead */ + if (child_pid != -1) { + kill(child_pid,SIGTERM); + child_pid = -1; + } + + /* in case we have children child still in the background */ + while (wait(0) != -1) + ; /* nothing */ + + /* zero out some globals */ + header_length = -1; +} + + +int +CompIsCompressed(void) +{ + return(is_compressed); +} + + +void +CompFormats(void) +{ + int i; + + fprintf(stderr,"Supported Compression Formats:\n"); + fprintf(stderr,"\tSuffix Description Uncompress Command\n"); + fprintf(stderr,"\t------ -------------------- --------------------------\n"); + + for (i=0; i < NUM_COMP_FORMATS; ++i) { + int arg; + struct comp_formats *pf = &supported_comp_formats[i]; + + fprintf(stderr,"\t%6s %-20s %s", + pf->comp_suffix, + pf->comp_descr, + pf->comp_bin); + for (arg=1; pf->comp_args[arg]; ++arg) + fprintf(stderr," %s", pf->comp_args[arg]); + fprintf(stderr,"\n"); + } +} + + +/* does the file name "filename" refer to stdin rather than a real file? */ +/* (in case I need to extend this definition someday) */ +Bool +FileIsStdin( + char *filename) +{ + if (strcmp(filename,"stdin") == 0) + return(1); + if (strcmp(filename,"stdin.gz") == 0) + return(1); + return(0); +} diff --git a/compress.h b/compress.h new file mode 100644 index 0000000..2e061fc --- /dev/null +++ b/compress.h @@ -0,0 +1,101 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_compress[] = + "$Header: /usr/local/cvs/tcptrace/compress.h,v 5.5 2003/11/19 14:38:06 sdo Exp $"; + +#define COMP_HDR_SIZE (8*1024) /* number of bytes from a compressed file that */ + /* we save into a real file for header check, */ + /* the rest we read from a pipe (if long) */ + + +/* How to identify various comp formats */ +#define COMP_MAX_ARGS 20 /* maximum args that you can specify */ +struct comp_formats { + char *comp_suffix; /* how to recognize these files */ + char *comp_descr; /* description of the file format */ + char *comp_bin; /* name of the binary (full path preferred) */ + char *comp_args[COMP_MAX_ARGS]; /* arguments to pass */ +}; + +/* + * compression format table: + * Don't forget:!!! + * 1) Leave the last line of NULLs alone + * 2) arg 1 MUST be the name of the program + * 3) last arg MUST be NULL + * 4) only the first suffix match is used + * 5) an arg of "%s" will be replaced with the file name, + * don't forget to include it! + * 6) don't forget the "dot" in the suffix (if there is one) + */ + +struct comp_formats supported_comp_formats[] = { +/* SUFFIX DESCRIPTION BINARY NAME ARGS TO EXECV */ +/* ----- -------------------- ----------- ----------------------*/ +#ifdef GUNZIP + {".gz", "Gnu gzip format", GUNZIP, {"gunzip","-c","%s",NULL}}, + {".Z", "Unix compress format", GUNZIP, {"gunzip","-c","%s",NULL}}, +#endif /* GUNZIP */ + +#ifdef UNCOMPRESS + {".Z", "Unix compress format", UNCOMPRESS, {"uncompress","-c","%s",NULL}}, +#endif /* UNCOMPRESS */ + +#ifdef BUNZIP2 + {".bz2", "bzip2 format", BUNZIP2, {"bunzip2","-c","%s",NULL}}, +#endif /* BUNZIP2 */ +}; +#define NUM_COMP_FORMATS (sizeof(supported_comp_formats) / sizeof(struct comp_formats)) + diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..8665530 --- /dev/null +++ b/config.guess @@ -0,0 +1,1368 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-02-24' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# Please send patches to . +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + + +dummy=dummy-$$ +trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int dummy(){}" > $dummy.c + for c in cc gcc c89 ; do + ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 + if test $? = 0 ; then + CC_FOR_BUILD="$c"; break + fi + done + rm -f $dummy.c $dummy.o $dummy.rel + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # Netbsd (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # Determine the machine/vendor (is the vendor relevant). + case "${UNAME_MACHINE}" in + amiga) machine=m68k-unknown ;; + arm32) machine=arm-unknown ;; + atari*) machine=m68k-atari ;; + sun3*) machine=m68k-sun ;; + mac68k) machine=m68k-apple ;; + macppc) machine=powerpc-apple ;; + hp3[0-9][05]) machine=m68k-hp ;; + ibmrt|romp-ibm) machine=romp-ibm ;; + *) machine=${UNAME_MACHINE}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE}" in + i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + esac + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + arc64:OpenBSD:*:*) + echo mips64el-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hkmips:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy \ + && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i?86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + case "${HPUX_REV}" in + 11.[0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + esac ;; + esac + fi ;; + esac + if [ "${HP_ARCH}" = "" ]; then + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` + if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi + rm -f $dummy.c $dummy + fi ;; + esac + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i?86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + hppa*:OpenBSD:*:*) + echo hppa-unknown-openbsd + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3D:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i386-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnuaout + exit 0 ;; + mips:Linux:*:*) + cat >$dummy.c < /* for printf() prototype */ +int main (int argc, char *argv[]) { +#else +int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __MIPSEB__ + printf ("%s-unknown-linux-gnu\n", argv[1]); +#endif +#ifdef __MIPSEL__ + printf ("%sel-unknown-linux-gnu\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + ;; + ppc:Linux:*:*) + # Determine Lib Version + cat >$dummy.c < +#if defined(__GLIBC__) +extern char __libc_version[]; +extern char __libc_release[]; +#endif +main(argc, argv) + int argc; + char *argv[]; +{ +#if defined(__GLIBC__) + printf("%s %s\n", __libc_version, __libc_release); +#else + printf("unknown\n"); +#endif + return 0; +} +EOF + LIBC="" + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy | grep 1\.99 > /dev/null + if test "$?" = 0 ; then LIBC="libc1" ; fi + fi + rm -f $dummy.c $dummy + echo powerpc-unknown-linux-gnu${LIBC} + exit 0 ;; + alpha:Linux:*:*) + cat <$dummy.s + .data + \$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + .text + .globl main + .align 4 + .ent main + main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + LIBC="" + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) UNAME_MACHINE="alpha" ;; + 1-0) UNAME_MACHINE="alphaev5" ;; + 1-1) UNAME_MACHINE="alphaev56" ;; + 1-101) UNAME_MACHINE="alphapca56" ;; + 2-303) UNAME_MACHINE="alphaev6" ;; + 2-307) UNAME_MACHINE="alphaev67" ;; + esac + objdump --private-headers $dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i?86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + ld_supported_emulations=`cd /; ld --help 2>&1 \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i?86linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 + ;; + elf_i?86) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + i?86coff) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 + ;; + esac + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >$dummy.c < +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __ELF__ +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +#else + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +# are messed up and put the nodename in both sysname and nodename. + i?86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i?86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i?86:*:5:7*) + # Fixed at (any) Pentium or better + UNAME_MACHINE=i586 + if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then + echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i?86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i?86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + echo `uname -p`-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + if test "${UNAME_MACHINE}" = "x86pc"; then + UNAME_MACHINE=pc + fi + echo `uname -p`-${UNAME_MACHINE}-nto-qnx + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[KW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + i?86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 +rm -f $dummy.c $dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h b/config.h new file mode 100644 index 0000000..8c71fa3 --- /dev/null +++ b/config.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_config[] = + "@(#)$Header: /usr/local/cvs/tcptrace/config.h,v 5.4 2003/11/19 14:38:06 sdo Exp $"; + + +/* define GROK_SNOOP if you want tcptrace to understand the output + format of Sun's "snoop" packet sniffer. */ +#define GROK_SNOOP + + +/* define GROK_TCPDUMP if you want tcptrace to understand the output + format format of the LBL tcpdump program (see the file README.tcpdump + for other options) */ +#define GROK_TCPDUMP + + +/* define GROK_NETM if you want tcptrace to understand the output + format of HP's "netm" monitoring system's packet sniffer. */ +#define GROK_NETM + + +/* define GROK_ETHERPEEK if you want tcptrace to understand the output + format of the Macintosh program Etherpeek */ +#define GROK_ETHERPEEK diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..ddbbfe5 --- /dev/null +++ b/config.sub @@ -0,0 +1,1356 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-02-16' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ + | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ + | pyramid | mn10200 | mn10300 | tron | a29k \ + | 580 | i960 | h8300 \ + | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ + | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ + | hppa64 \ + | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ + | alphaev6[78] \ + | we32k | ns16k | clipper | i370 | sh | sh[34] \ + | powerpc | powerpcle \ + | 1750a | dsp16xx | pdp10 | pdp11 \ + | mips16 | mips64 | mipsel | mips64el \ + | mips64orion | mips64orionel | mipstx39 | mipstx39el \ + | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ + | mips64vr5000 | miprs64vr5000el | mcore \ + | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ + | thumb | d10v | d30v | fr30 | avr | openrisc) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i[234567]86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + # FIXME: clean up the formatting here. + vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ + | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ + | xmp-* | ymp-* \ + | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ + | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ + | hppa2.0n-* | hppa64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ + | alphaev6[78]-* \ + | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ + | clipper-* | orion-* \ + | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ + | mipstx39-* | mipstx39el-* | mcore-* \ + | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ + | [cjt]90-* \ + | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ + | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \ + | bs2000-* | tic54x-* | c54x-* | x86_64-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [cjt]90) + basic_machine=${basic_machine}-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[34567]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i[34567]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i[34567]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i[34567]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i686-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sparclite-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=t3e-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4) + basic_machine=sh-unknown + ;; + sparc | sparcv9) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + c4x*) + basic_machine=c4x-none + os=-coff + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i[34567]86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto*) + os=-nto-qnx + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure new file mode 100755 index 0000000..95fd30d --- /dev/null +++ b/configure @@ -0,0 +1,5792 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by Autoconf 2.52. +# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Name of the executable. +as_me=`echo "$0" |sed 's,.*[\\/],,'` + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +as_executable_p="test -f" + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + +# NLS nuisances. +$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } +$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } +$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } +$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } +$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } +$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } +$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } +$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +cross_compiling=no +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +ac_unique_file="tcptrace.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: should be removed in autoconf 3.0. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat < if you have libraries in a + nonstandard directory + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +EOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue + cd $ac_subdir + # A "../" for each directory in /$ac_subdir. + ac_dots=`echo $ac_subdir | + sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + + case $srcdir in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=$srcdir ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_sub_srcdir=$srcdir/$ac_subdir ;; + *) # Relative path. + ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_sub_srcdir/configure.gnu; then + echo + $SHELL $ac_sub_srcdir/configure.gnu --help=recursive + elif test -f $ac_sub_srcdir/configure; then + echo + $SHELL $ac_sub_srcdir/configure --help=recursive + elif test -f $ac_sub_srcdir/configure.ac || + test -f $ac_sub_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\EOF + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +EOF + exit 0 +fi +exec 5>config.log +cat >&5 </dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +PATH = $PATH + +_ASUNAME +} >&5 + +cat >&5 <\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + ac_sep=" " ;; + *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" + ac_sep=" " ;; + esac + # Get rid of the leading space. +done + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + echo >&5 + echo "## ----------------- ##" >&5 + echo "## Cache variables. ##" >&5 + echo "## ----------------- ##" >&5 + echo >&5 + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} >&5 + sed "/^$/d" confdefs.h >conftest.log + if test -s conftest.log; then + echo >&5 + echo "## ------------ ##" >&5 + echo "## confdefs.h. ##" >&5 + echo "## ------------ ##" >&5 + echo >&5 + cat conftest.log >&5 + fi + (echo; echo) >&5 + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" >&5 + echo "$as_me: exit $exit_status" >&5 + rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:865: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + cat "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:876: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:884: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:900: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:904: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:910: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:912: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:914: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. It doesn't matter if + # we pass some twice (in addition to the command line arguments). + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val" + ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:933: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:935: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac +echo "#! $SHELL" >conftest.sh +echo "exit 0" >>conftest.sh +chmod +x conftest.sh +if { (echo "$as_me:955: PATH=\".;.\"; conftest.sh") >&5 + (PATH=".;."; conftest.sh) 2>&5 + ac_status=$? + echo "$as_me:958: \$? = $ac_status" >&5 + (exit $ac_status); }; then + ac_path_separator=';' +else + ac_path_separator=: +fi +PATH_SEPARATOR="$ac_path_separator" +rm -f conftest.sh + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:984: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# Make sure we can run config.sub. +$ac_config_sub sun4 >/dev/null 2>&1 || + { { echo "$as_me:994: error: cannot run $ac_config_sub" >&5 +echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +echo "$as_me:998: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6 +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_build_alias=$build_alias +test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` +test -z "$ac_cv_build_alias" && + { { echo "$as_me:1007: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || + { { echo "$as_me:1011: error: $ac_config_sub $ac_cv_build_alias failed." >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:1016: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6 +build=$ac_cv_build +build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +echo "$as_me:1023: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6 +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_host_alias=$host_alias +test -z "$ac_cv_host_alias" && + ac_cv_host_alias=$ac_cv_build_alias +ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || + { { echo "$as_me:1032: error: $ac_config_sub $ac_cv_host_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:1037: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6 +host=$ac_cv_host +host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +echo "$as_me:1044: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6 +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_target_alias=$target_alias +test "x$ac_cv_target_alias" = "x" && + ac_cv_target_alias=$ac_cv_host_alias +ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || + { { echo "$as_me:1053: error: $ac_config_sub $ac_cv_target_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:1058: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6 +target=$ac_cv_target +target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +# Check whether --with-gcc or --without-gcc was given. +if test "${with_gcc+set}" = set; then + withval="$with_gcc" + +fi; + V_CCOPT="-O" + V_INCLS="" + if test "${srcdir}" != "." ; then + V_INCLS="-I\$(srcdir)" + fi + if test "${CFLAGS+set}" = set; then + LBL_CFLAGS="$CFLAGS" + fi + if test -z "$CC" ; then + case "$target_os" in + + bsdi*) + # Extract the first word of "shlicc2", so it can be a program name with args. +set dummy shlicc2; ac_word=$2 +echo "$as_me:1091: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_SHLICC2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$SHLICC2"; then + ac_cv_prog_SHLICC2="$SHLICC2" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_SHLICC2="yes" +echo "$as_me:1106: found $ac_dir/$ac_word" >&5 +break +done + + test -z "$ac_cv_prog_SHLICC2" && ac_cv_prog_SHLICC2="no" +fi +fi +SHLICC2=$ac_cv_prog_SHLICC2 +if test -n "$SHLICC2"; then + echo "$as_me:1115: result: $SHLICC2" >&5 +echo "${ECHO_T}$SHLICC2" >&6 +else + echo "$as_me:1118: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + if test $SHLICC2 = yes ; then + CC=shlicc2 + export CC + fi + ;; + esac + fi + if test -z "$CC" -a "$with_gcc" = no ; then + CC=cc + export CC + fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:1141: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_CC="${ac_tool_prefix}gcc" +echo "$as_me:1156: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:1164: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:1167: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:1176: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_CC="gcc" +echo "$as_me:1191: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:1199: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:1202: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:1215: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_CC="${ac_tool_prefix}cc" +echo "$as_me:1230: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:1238: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:1241: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:1250: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_CC="cc" +echo "$as_me:1265: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:1273: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:1276: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:1289: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +fi +ac_cv_prog_CC="cc" +echo "$as_me:1309: found $ac_dir/$ac_word" >&5 +break +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" ${1+"$@"} + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:1331: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:1334: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:1345: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_CC="$ac_tool_prefix$ac_prog" +echo "$as_me:1360: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:1368: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:1371: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:1384: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_CC="$ac_prog" +echo "$as_me:1399: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:1407: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:1410: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + +test -z "$CC" && { { echo "$as_me:1422: error: no acceptable cc found in \$PATH" >&5 +echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:1427:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:1430: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:1433: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:1435: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:1438: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:1440: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:1443: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +#line 1447 "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +echo "$as_me:1463: checking for C compiler default output" >&5 +echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:1466: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:1469: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. +for ac_file in `ls a.exe conftest.exe 2>/dev/null; + ls a.out conftest 2>/dev/null; + ls a.* conftest.* 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; + a.out ) # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool --akim. + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +{ { echo "$as_me:1492: error: C compiler cannot create executables" >&5 +echo "$as_me: error: C compiler cannot create executables" >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:1498: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:1503: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:1509: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1512: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:1519: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:1527: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:1534: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:1536: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:1539: checking for executable suffix" >&5 +echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 +if { (eval echo "$as_me:1541: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:1544: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:1560: error: cannot compute EXEEXT: cannot compile and link" >&5 +echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:1566: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:1572: checking for object suffix" >&5 +echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 1578 "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:1590: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1593: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +{ { echo "$as_me:1605: error: cannot compute OBJEXT: cannot compile" >&5 +echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:1612: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:1616: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 1622 "configure" +#include "confdefs.h" + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1637: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1640: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1643: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1646: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_compiler_gnu=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:1658: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:1664: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 1670 "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1682: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1685: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1688: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1691: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_prog_cc_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:1701: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1728: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1731: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1734: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1737: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ + '#include ' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line 1749 "configure" +#include "confdefs.h" +#include +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1762: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1765: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1768: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1771: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line 1781 "configure" +#include "confdefs.h" +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1793: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1796: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1799: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1802: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "$GCC" = yes ; then + if test "$SHLICC2" = yes ; then + ac_cv_lbl_gcc_vers=2 + V_CCOPT="-O2" + else + echo "$as_me:1834: checking gcc version" >&5 +echo $ECHO_N "checking gcc version... $ECHO_C" >&6 + if test "${ac_cv_lbl_gcc_vers+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \ + sed -e '/^gcc version /!d' \ + -e 's/^gcc version //' \ + -e 's/ .*//' -e 's/^[^0-9]*//' \ + -e 's/\..*//'` +fi + + echo "$as_me:1846: result: $ac_cv_lbl_gcc_vers" >&5 +echo "${ECHO_T}$ac_cv_lbl_gcc_vers" >&6 + if test $ac_cv_lbl_gcc_vers -gt 1 ; then + V_CCOPT="-O2" + fi + fi + else + echo "$as_me:1853: checking that $CC handles ansi prototypes" >&5 +echo $ECHO_N "checking that $CC handles ansi prototypes... $ECHO_C" >&6 + if test "${ac_cv_lbl_cc_ansi_prototypes+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +cat >conftest.$ac_ext <<_ACEOF +#line 1860 "configure" +#include "confdefs.h" +#include +int +main () +{ +int frob(int, char *) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1872: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1875: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1878: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1881: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lbl_cc_ansi_prototypes=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lbl_cc_ansi_prototypes=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi + + echo "$as_me:1892: result: $ac_cv_lbl_cc_ansi_prototypes" >&5 +echo "${ECHO_T}$ac_cv_lbl_cc_ansi_prototypes" >&6 + if test $ac_cv_lbl_cc_ansi_prototypes = no ; then + case "$target_os" in + + hpux*) + echo "$as_me:1898: checking for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE)" >&5 +echo $ECHO_N "checking for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE)... $ECHO_C" >&6 + savedcflags="$CFLAGS" + CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS" + if test "${ac_cv_lbl_cc_hpux_cc_aa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 1906 "configure" +#include "confdefs.h" +#include +int +main () +{ +int frob(int, char *) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1918: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1921: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1924: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1927: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lbl_cc_hpux_cc_aa=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lbl_cc_hpux_cc_aa=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi + + echo "$as_me:1938: result: $ac_cv_lbl_cc_hpux_cc_aa" >&5 +echo "${ECHO_T}$ac_cv_lbl_cc_hpux_cc_aa" >&6 + if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then + { { echo "$as_me:1941: error: see the INSTALL doc for more info" >&5 +echo "$as_me: error: see the INSTALL doc for more info" >&2;} + { (exit 1); exit 1; }; } + fi + CFLAGS="$savedcflags" + V_CCOPT="-Aa $V_CCOPT" + cat >>confdefs.h <<\EOF +#define _HPUX_SOURCE 1 +EOF + + ;; + + *) + { { echo "$as_me:1954: error: see the INSTALL doc for more info" >&5 +echo "$as_me: error: see the INSTALL doc for more info" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + fi + V_INCLS="$V_INCLS -I/usr/local/include" + LDFLAGS="$LDFLAGS -L/usr/local/lib" + + case "$target_os" in + + irix*) + V_CCOPT="$V_CCOPT -xansi -signed -g3" + ;; + + osf*) + V_CCOPT="$V_CCOPT -std1 -g3" + ;; + + ultrix*) + echo "$as_me:1974: checking that Ultrix $CC hacks const in prototypes" >&5 +echo $ECHO_N "checking that Ultrix $CC hacks const in prototypes... $ECHO_C" >&6 + if test "${ac_cv_lbl_cc_const_proto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 1980 "configure" +#include "confdefs.h" +#include +int +main () +{ +struct a { int b; }; + void c(const struct a *) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:1993: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:1996: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:1999: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2002: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lbl_cc_const_proto=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lbl_cc_const_proto=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi + + echo "$as_me:2013: result: $ac_cv_lbl_cc_const_proto" >&5 +echo "${ECHO_T}$ac_cv_lbl_cc_const_proto" >&6 + if test $ac_cv_lbl_cc_const_proto = no ; then + cat >>confdefs.h <<\EOF +#define const +EOF + + fi + ;; + esac + fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:2033: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_CC="${ac_tool_prefix}gcc" +echo "$as_me:2048: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:2056: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:2059: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:2068: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_CC="gcc" +echo "$as_me:2083: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:2091: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:2094: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:2107: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_CC="${ac_tool_prefix}cc" +echo "$as_me:2122: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:2130: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:2133: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:2142: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_CC="cc" +echo "$as_me:2157: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:2165: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:2168: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:2181: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +fi +ac_cv_prog_CC="cc" +echo "$as_me:2201: found $ac_dir/$ac_word" >&5 +break +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" ${1+"$@"} + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:2223: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:2226: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:2237: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_CC="$ac_tool_prefix$ac_prog" +echo "$as_me:2252: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:2260: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:2263: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:2276: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_CC="$ac_prog" +echo "$as_me:2291: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:2299: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:2302: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + +test -z "$CC" && { { echo "$as_me:2314: error: no acceptable cc found in \$PATH" >&5 +echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:2319:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:2322: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:2325: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:2327: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:2330: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:2332: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:2335: \$? = $ac_status" >&5 + (exit $ac_status); } + +echo "$as_me:2338: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 2344 "configure" +#include "confdefs.h" + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:2359: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:2362: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:2365: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2368: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_compiler_gnu=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:2380: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:2386: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 2392 "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:2404: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:2407: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:2410: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2413: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_prog_cc_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:2423: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:2450: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:2453: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:2456: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2459: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ + '#include ' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line 2471 "configure" +#include "confdefs.h" +#include +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:2484: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:2487: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:2490: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2493: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line 2503 "configure" +#include "confdefs.h" +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:2515: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:2518: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:2521: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2524: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +echo "$as_me:2551: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:2571: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:2575: result: no" >&5 +echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +for ac_prog in flex lex +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:2584: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_LEX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_LEX="$ac_prog" +echo "$as_me:2599: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +LEX=$ac_cv_prog_LEX +if test -n "$LEX"; then + echo "$as_me:2607: result: $LEX" >&5 +echo "${ECHO_T}$LEX" >&6 +else + echo "$as_me:2610: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$LEX" && break +done +test -n "$LEX" || LEX=":" + +if test -z "$LEXLIB" +then + echo "$as_me:2620: checking for yywrap in -lfl" >&5 +echo $ECHO_N "checking for yywrap in -lfl... $ECHO_C" >&6 +if test "${ac_cv_lib_fl_yywrap+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 2628 "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char yywrap (); +int +main () +{ +yywrap (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:2647: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:2650: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:2653: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2656: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_fl_yywrap=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_fl_yywrap=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:2667: result: $ac_cv_lib_fl_yywrap" >&5 +echo "${ECHO_T}$ac_cv_lib_fl_yywrap" >&6 +if test $ac_cv_lib_fl_yywrap = yes; then + LEXLIB="-lfl" +else + echo "$as_me:2672: checking for yywrap in -ll" >&5 +echo $ECHO_N "checking for yywrap in -ll... $ECHO_C" >&6 +if test "${ac_cv_lib_l_yywrap+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ll $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 2680 "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char yywrap (); +int +main () +{ +yywrap (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:2699: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:2702: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:2705: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2708: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_l_yywrap=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_l_yywrap=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:2719: result: $ac_cv_lib_l_yywrap" >&5 +echo "${ECHO_T}$ac_cv_lib_l_yywrap" >&6 +if test $ac_cv_lib_l_yywrap = yes; then + LEXLIB="-ll" +fi + +fi + +fi + +if test "x$LEX" != "x:"; then + echo "$as_me:2730: checking lex output file root" >&5 +echo $ECHO_N "checking lex output file root... $ECHO_C" >&6 +if test "${ac_cv_prog_lex_root+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # The minimal lex program is just a single line: %%. But some broken lexes +# (Solaris, I think it was) want two %% lines, so accommodate them. +echo '%% +%%' | $LEX +if test -f lex.yy.c; then + ac_cv_prog_lex_root=lex.yy +elif test -f lexyy.c; then + ac_cv_prog_lex_root=lexyy +else + { { echo "$as_me:2744: error: cannot find output from $LEX; giving up" >&5 +echo "$as_me: error: cannot find output from $LEX; giving up" >&2;} + { (exit 1); exit 1; }; } +fi +fi +echo "$as_me:2749: result: $ac_cv_prog_lex_root" >&5 +echo "${ECHO_T}$ac_cv_prog_lex_root" >&6 +LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root + +echo "$as_me:2753: checking whether yytext is a pointer" >&5 +echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6 +if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # POSIX says lex can declare yytext either as a pointer or an array; the +# default is implementation-dependent. Figure out which it is, since +# not all implementations provide the %pointer and %array declarations. +ac_cv_prog_lex_yytext_pointer=no +echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c +ac_save_LIBS=$LIBS +LIBS="$LIBS $LEXLIB" +cat >conftest.$ac_ext <<_ACEOF +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:2769: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:2772: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:2775: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2778: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_lex_yytext_pointer=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_save_LIBS +rm -f "${LEX_OUTPUT_ROOT}.c" + +fi +echo "$as_me:2790: result: $ac_cv_prog_lex_yytext_pointer" >&5 +echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6 +if test $ac_cv_prog_lex_yytext_pointer = yes; then + +cat >>confdefs.h <<\EOF +#define YYTEXT_POINTER 1 +EOF + +fi + +fi +for ac_prog in 'bison -y' byacc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:2805: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_YACC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_YACC="$ac_prog" +echo "$as_me:2820: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + echo "$as_me:2828: result: $YACC" >&5 +echo "${ECHO_T}$YACC" >&6 +else + echo "$as_me:2831: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +echo "$as_me:2839: checking for main in -lm" >&5 +echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6 +if test "${ac_cv_lib_m_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 2847 "configure" +#include "confdefs.h" + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:2859: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:2862: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:2865: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2868: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_m_main=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_m_main=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:2879: result: $ac_cv_lib_m_main" >&5 +echo "${ECHO_T}$ac_cv_lib_m_main" >&6 +if test $ac_cv_lib_m_main = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line 2916 "configure" +#include "confdefs.h" +#include + Syntax error +_ACEOF +if { (eval echo "$as_me:2921: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:2927: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line 2950 "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:2954: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:2960: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:2997: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line 3007 "configure" +#include "confdefs.h" +#include + Syntax error +_ACEOF +if { (eval echo "$as_me:3012: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:3018: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line 3041 "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:3045: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:3051: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:3079: error: C preprocessor \"$CPP\" fails sanity check" >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +echo "$as_me:3090: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3096 "configure" +#include "confdefs.h" +#include +#include +#include +#include + +_ACEOF +if { (eval echo "$as_me:3104: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:3110: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line 3132 "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line 3150 "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +#line 3171 "configure" +#include "confdefs.h" +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:3197: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:3200: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:3202: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3205: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_header_stdc=no +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:3218: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:3234: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3240 "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3246: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3249: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3252: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3255: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_Header=no" +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:3265: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for unsigned long long int... $ECHO_C" >&6 +if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3281 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((unsigned long long int *) 0) + return 0; +if (sizeof (unsigned long long int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3296: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3299: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3302: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3305: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_unsigned_long_long_int=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_unsigned_long_long_int=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:3315: result: $ac_cv_type_unsigned_long_long_int" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long_long_int" >&6 + +echo "$as_me:3318: checking size of unsigned long long int" >&5 +echo $ECHO_N "checking size of unsigned long long int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_unsigned_long_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_unsigned_long_long_int" = yes; then + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +#line 3327 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long long int)) >= 0)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3339: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3342: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3345: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3348: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 3353 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long long int)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3365: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3368: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3371: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3374: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 3390 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long long int)) >= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3402: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3405: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3408: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3411: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +fi +rm -f conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +#line 3427 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long long int)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3439: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3442: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3445: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3448: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +ac_cv_sizeof_unsigned_long_long_int=$ac_lo +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:3461: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line 3466 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +FILE *f = fopen ("conftest.val", "w"); +if (!f) + exit (1); +fprintf (f, "%d", (sizeof (unsigned long long int))); +fclose (f); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:3482: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:3485: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:3487: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3490: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_long_long_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_unsigned_long_long_int=0 +fi +fi +echo "$as_me:3506: result: $ac_cv_sizeof_unsigned_long_long_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_long_long_int" >&6 +cat >>confdefs.h <&5 +echo $ECHO_N "checking for unsigned long int... $ECHO_C" >&6 +if test "${ac_cv_type_unsigned_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3518 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((unsigned long int *) 0) + return 0; +if (sizeof (unsigned long int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3533: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3536: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3539: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3542: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_unsigned_long_int=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_unsigned_long_int=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:3552: result: $ac_cv_type_unsigned_long_int" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long_int" >&6 + +echo "$as_me:3555: checking size of unsigned long int" >&5 +echo $ECHO_N "checking size of unsigned long int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_unsigned_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_unsigned_long_int" = yes; then + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +#line 3564 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long int)) >= 0)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3576: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3579: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3582: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3585: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 3590 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long int)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3602: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3605: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3608: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3611: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 3627 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long int)) >= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3639: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3642: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3645: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3648: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +fi +rm -f conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +#line 3664 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned long int)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3676: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3679: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3682: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3685: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +ac_cv_sizeof_unsigned_long_int=$ac_lo +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:3698: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line 3703 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +FILE *f = fopen ("conftest.val", "w"); +if (!f) + exit (1); +fprintf (f, "%d", (sizeof (unsigned long int))); +fclose (f); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:3719: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:3722: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:3724: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3727: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_long_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_unsigned_long_int=0 +fi +fi +echo "$as_me:3743: result: $ac_cv_sizeof_unsigned_long_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_long_int" >&6 +cat >>confdefs.h <&5 +echo $ECHO_N "checking for unsigned int... $ECHO_C" >&6 +if test "${ac_cv_type_unsigned_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3755 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((unsigned int *) 0) + return 0; +if (sizeof (unsigned int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3770: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3773: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3776: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3779: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_unsigned_int=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_unsigned_int=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:3789: result: $ac_cv_type_unsigned_int" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_int" >&6 + +echo "$as_me:3792: checking size of unsigned int" >&5 +echo $ECHO_N "checking size of unsigned int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_unsigned_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_unsigned_int" = yes; then + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +#line 3801 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned int)) >= 0)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3813: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3816: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3819: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3822: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 3827 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned int)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3839: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3842: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3845: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3848: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 3864 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned int)) >= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3876: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3879: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3882: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3885: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +fi +rm -f conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +#line 3901 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned int)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:3913: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:3916: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:3919: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3922: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +ac_cv_sizeof_unsigned_int=$ac_lo +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:3935: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line 3940 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +FILE *f = fopen ("conftest.val", "w"); +if (!f) + exit (1); +fprintf (f, "%d", (sizeof (unsigned int))); +fclose (f); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:3956: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:3959: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:3961: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:3964: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_unsigned_int=0 +fi +fi +echo "$as_me:3980: result: $ac_cv_sizeof_unsigned_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_int" >&6 +cat >>confdefs.h <&5 +echo $ECHO_N "checking for unsigned short... $ECHO_C" >&6 +if test "${ac_cv_type_unsigned_short+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3992 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((unsigned short *) 0) + return 0; +if (sizeof (unsigned short)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:4007: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:4010: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:4013: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4016: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_unsigned_short=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_unsigned_short=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:4026: result: $ac_cv_type_unsigned_short" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_short" >&6 + +echo "$as_me:4029: checking size of unsigned short" >&5 +echo $ECHO_N "checking size of unsigned short... $ECHO_C" >&6 +if test "${ac_cv_sizeof_unsigned_short+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_unsigned_short" = yes; then + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +#line 4038 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned short)) >= 0)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:4050: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:4053: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:4056: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4059: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 4064 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned short)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:4076: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:4079: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:4082: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4085: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 4101 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned short)) >= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:4113: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:4116: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:4119: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4122: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +fi +rm -f conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +#line 4138 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (unsigned short)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:4150: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:4153: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:4156: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4159: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +ac_cv_sizeof_unsigned_short=$ac_lo +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:4172: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line 4177 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +FILE *f = fopen ("conftest.val", "w"); +if (!f) + exit (1); +fprintf (f, "%d", (sizeof (unsigned short))); +fclose (f); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:4193: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4196: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:4198: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4201: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_short=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_unsigned_short=0 +fi +fi +echo "$as_me:4217: result: $ac_cv_sizeof_unsigned_short" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_short" >&6 +cat >>confdefs.h <>confdefs.h <<\EOF +#define HAVE_OS_PROTO_H 1 +EOF + + else + { echo "$as_me:4258: WARNING: can't find $name" >&5 +echo "$as_me: WARNING: can't find $name" >&2;} + fi + fi + + # Most operating systems have gethostbyname() in the default searched + # libraries (i.e. libc): + echo "$as_me:4265: checking for gethostbyname" >&5 +echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 +if test "${ac_cv_func_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 4271 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +f = gethostbyname; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4302: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4305: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4308: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4311: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_func_gethostbyname=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:4321: result: $ac_cv_func_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 +if test $ac_cv_func_gethostbyname = yes; then + : +else + # Some OSes (eg. Solaris) place it in libnsl: + echo "$as_me:4327: checking for gethostbyname in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 +ac_lib_var=`echo nsl'_'gethostbyname'_' | sed 'y%./+- %__p__%'` +if eval "test \"\${ac_cv_lbl_lib_$ac_lib_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4336 "configure" +#include "confdefs.h" +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int +main () +{ +gethostbyname() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4352: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4355: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4358: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4361: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "ac_cv_lbl_lib_$ac_lib_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "ac_cv_lbl_lib_$ac_lib_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then + echo "$as_me:4374: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/^a-zA-Z0-9_/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >>confdefs.h <&5 +echo "${ECHO_T}no" >&6 +# Some strange OSes (SINIX) have it in libsocket: + echo "$as_me:4388: checking for gethostbyname in -lsocket" >&5 +echo $ECHO_N "checking for gethostbyname in -lsocket... $ECHO_C" >&6 +ac_lib_var=`echo socket'_'gethostbyname'_' | sed 'y%./+- %__p__%'` +if eval "test \"\${ac_cv_lbl_lib_$ac_lib_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4397 "configure" +#include "confdefs.h" +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int +main () +{ +gethostbyname() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4413: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4416: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4419: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4422: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "ac_cv_lbl_lib_$ac_lib_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "ac_cv_lbl_lib_$ac_lib_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then + echo "$as_me:4435: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/^a-zA-Z0-9_/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >>confdefs.h <&5 +echo "${ECHO_T}no" >&6 +# Unfortunately libsocket sometimes depends on libnsl. + # AC_CHECK_LIB's API is essentially broken so the + # following ugliness is necessary: + echo "$as_me:4451: checking for gethostbyname in -lsocket" >&5 +echo $ECHO_N "checking for gethostbyname in -lsocket... $ECHO_C" >&6 +ac_lib_var=`echo socket'_'gethostbyname'_'-lnsl | sed 'y%./+- %__p__%'` +if eval "test \"\${ac_cv_lbl_lib_$ac_lib_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket -lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4460 "configure" +#include "confdefs.h" +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int +main () +{ +gethostbyname() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4476: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4479: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4482: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4485: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "ac_cv_lbl_lib_$ac_lib_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "ac_cv_lbl_lib_$ac_lib_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then + echo "$as_me:4498: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + LIBS="-lsocket -lnsl $LIBS" +else + echo "$as_me:4502: result: no" >&5 +echo "${ECHO_T}no" >&6 + +echo "$as_me:4505: checking for gethostbyname in -lresolv" >&5 +echo $ECHO_N "checking for gethostbyname in -lresolv... $ECHO_C" >&6 +if test "${ac_cv_lib_resolv_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolv $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4513 "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main () +{ +gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4532: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4535: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4538: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4541: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_resolv_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_resolv_gethostbyname=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:4552: result: $ac_cv_lib_resolv_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_resolv_gethostbyname" >&6 +if test $ac_cv_lib_resolv_gethostbyname = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for socket... $ECHO_C" >&6 +if test "${ac_cv_func_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 4577 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char socket (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_socket) || defined (__stub___socket) +choke me +#else +f = socket; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4608: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4611: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4614: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4617: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_socket=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_func_socket=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:4627: result: $ac_cv_func_socket" >&5 +echo "${ECHO_T}$ac_cv_func_socket" >&6 +if test $ac_cv_func_socket = yes; then + : +else + +echo "$as_me:4633: checking for socket in -lsocket" >&5 +echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 +if test "${ac_cv_lib_socket_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4641 "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +int +main () +{ +socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4660: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4663: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4666: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4669: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_socket=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_socket_socket=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:4680: result: $ac_cv_lib_socket_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 +if test $ac_cv_lib_socket_socket = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 +ac_lib_var=`echo socket'_'socket'_'-lnsl | sed 'y%./+- %__p__%'` +if eval "test \"\${ac_cv_lbl_lib_$ac_lib_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket -lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4699 "configure" +#include "confdefs.h" +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket(); + +int +main () +{ +socket() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4715: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4718: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4721: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4724: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "ac_cv_lbl_lib_$ac_lib_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "ac_cv_lbl_lib_$ac_lib_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then + echo "$as_me:4737: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + LIBS="-lsocket -lnsl $LIBS" +else + echo "$as_me:4741: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi + +fi + + # DLPI needs putmsg under HPUX so test for -lstr while we're at it + +echo "$as_me:4751: checking for putmsg in -lstr" >&5 +echo $ECHO_N "checking for putmsg in -lstr... $ECHO_C" >&6 +if test "${ac_cv_lib_str_putmsg+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lstr $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 4759 "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char putmsg (); +int +main () +{ +putmsg (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4778: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4781: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4784: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4787: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_str_putmsg=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_str_putmsg=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:4798: result: $ac_cv_lib_str_putmsg" >&5 +echo "${ECHO_T}$ac_cv_lib_str_putmsg" >&6 +if test $ac_cv_lib_str_putmsg = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 4818 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4849: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4852: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4855: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4858: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:4868: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 4887 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4918: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4921: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4924: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4927: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:4937: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 4956 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:4987: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:4990: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:4993: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:4996: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:5006: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 5025 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:5056: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:5059: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:5062: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:5065: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:5075: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking how to print unsigned long long... $ECHO_C" >&6 + +if test "$cross_compiling" = yes; then + { { echo "$as_me:5089: error: can not run test program while cross compiling" >&5 +echo "$as_me: error: can not run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line 5094 "configure" +#include "confdefs.h" + +#include + +#define NIX "%llu" + +int main () +{ + char test[11]; + unsigned long long int num = 0xdeadbeef; + sprintf (test, NIX, num); + if (strcmp (test, "3735928559") == 0) + exit (0); + else + exit (1); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:5113: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:5116: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:5118: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:5121: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\EOF +#define USE_LLU 1 +EOF + +echo "$as_me:5127: result: %llu" >&5 +echo "${ECHO_T}%llu" >&6 +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +echo "$as_me:5133: result: %qu" >&5 +echo "${ECHO_T}%qu" >&6 +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + +case "$target" in + *cygwin*) V_INCLS="$V_INCLS -I./cygwin-includes"; +esac + +case "$target" in + *cygwin*) V_DEFINES="$V_DEFINES -D__USE_BSD -D__FAVOR_BSD -D__USE_MISC -D__WIN32"; +esac + +V_PCAP_LDLIBS="-lpcap"; +case "$target" in + *cygwin*) V_PCAP_LDLIBS="-lwpcap"; +esac + +if [ -f /lib/libc-2* ]; then + V_DEFINES="$V_DEFINES -D_BSD_SOURCE" +fi + +ac_config_files="$ac_config_files Makefile" +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overriden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if cmp -s $cache_file confcache; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\EOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +EOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:5266: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +SHELL=\${CONFIG_SHELL-$SHELL} +ac_cs_invocation="\$0 \$@" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Name of the executable. +as_me=`echo "$0" |sed 's,.*[\\/],,'` + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +as_executable_p="test -f" + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + +# NLS nuisances. +$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } +$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } +$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } +$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } +$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } +$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } +$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } +$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } + +exec 6>&1 + +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\EOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to ." +EOF + +cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + shift + set dummy "$ac_option" "$ac_optarg" ${1+"$@"} + shift + ;; + -*);; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_need_defaults=false;; + esac + + case $1 in + # Handling of the options. +EOF +cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:5433: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + shift + CONFIG_FILES="$CONFIG_FILES $1" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + shift + CONFIG_HEADERS="$CONFIG_HEADERS $1" + ac_need_defaults=false;; + + # This is an error. + -*) { { echo "$as_me:5452: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +exec 5>>config.log +cat >&5 << _ACEOF + +## ----------------------- ## +## Running config.status. ## +## ----------------------- ## + +This file was extended by $as_me 2.52, executed with + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + > $ac_cs_invocation +on `(hostname || uname -n) 2>/dev/null | sed 1q` + +_ACEOF +EOF + +cat >>$CONFIG_STATUS <<\EOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + *) { { echo "$as_me:5488: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +fi + +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. +: ${TMPDIR=/tmp} +{ + tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=$TMPDIR/cs$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } +} + +EOF + +cat >>$CONFIG_STATUS <\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@DEFS@,$DEFS,;t t +s,@LIBS@,$LIBS,;t t +s,@build@,$build,;t t +s,@build_cpu@,$build_cpu,;t t +s,@build_vendor@,$build_vendor,;t t +s,@build_os@,$build_os,;t t +s,@host@,$host,;t t +s,@host_cpu@,$host_cpu,;t t +s,@host_vendor@,$host_vendor,;t t +s,@host_os@,$host_os,;t t +s,@target@,$target,;t t +s,@target_cpu@,$target_cpu,;t t +s,@target_vendor@,$target_vendor,;t t +s,@target_os@,$target_os,;t t +s,@SHLICC2@,$SHLICC2,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@SET_MAKE@,$SET_MAKE,;t t +s,@LEX@,$LEX,;t t +s,@LEXLIB@,$LEXLIB,;t t +s,@LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t +s,@YACC@,$YACC,;t t +s,@CPP@,$CPP,;t t +s,@FS_ULL@,$FS_ULL,;t t +s,@V_CCOPT@,$V_CCOPT,;t t +s,@V_INCLS@,$V_INCLS,;t t +s,@V_DEFINES@,$V_DEFINES,;t t +s,@V_PCAP_LDLIBS@,$V_PCAP_LDLIBS,;t t +CEOF + +EOF + + cat >>$CONFIG_STATUS <<\EOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +EOF +cat >>$CONFIG_STATUS <<\EOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + { case "$ac_dir" in + [\\/]* | ?:[\\/]* ) as_incr_dir=;; + *) as_incr_dir=.;; +esac +as_dummy="$ac_dir" +for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do + case $as_mkdir_dir in + # Skip DOS drivespec + ?:) as_incr_dir=$as_mkdir_dir ;; + *) + as_incr_dir=$as_incr_dir/$as_mkdir_dir + test -d "$as_incr_dir" || mkdir "$as_incr_dir" + ;; + esac +done; } + + ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` + else + ac_dir_suffix= ac_dots= + fi + + case $srcdir in + .) ac_srcdir=. + if test -z "$ac_dots"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_dots$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_dots$srcdir ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:5708: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated automatically by config.status. */ + configure_input="Generated automatically from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:5726: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:5739: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +EOF +cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +EOF + +cat >>$CONFIG_STATUS <<\EOF + +{ (exit 0); exit 0; } +EOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + exec 5>/dev/null + $SHELL $CONFIG_STATUS || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..38132e0 --- /dev/null +++ b/configure.in @@ -0,0 +1,103 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(tcptrace.c) + +AC_CANONICAL_SYSTEM + +AC_LBL_C_INIT(V_CCOPT, V_INCLS) + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_MAKE_SET + +AC_PROG_LEX +AC_PROG_YACC + +dnl Checks for libraries. +dnl Replace `main' with a function in -lm: +AC_CHECK_LIB(m, main) + +dnl See if "unsigned long long int" works +AC_CHECK_SIZEOF(unsigned long long int) + +dnl Find a good type for other binary data types (in headers) +AC_CHECK_SIZEOF(unsigned long int) +AC_CHECK_SIZEOF(unsigned int) +AC_CHECK_SIZEOF(unsigned short) + + +dnl include additional checking if developing +AC_LBL_DEVEL(V_CCOPT) + +dnl check for needed network libraries +AC_LBL_LIBRARY_NET() + +dnl use fpurge if available, otherwise fflush +AC_CHECK_FUNCS(fpurge) + +dnl use mkstemp if available, otherwise tempnam +AC_CHECK_FUNCS(mkstemp) + +dnl use valloc if available, then memalign, then malloc +AC_CHECK_FUNCS(valloc memalign) + +dnl check for the IPv6 routines inet_pton +AC_CHECK_FUNCS(inet_pton) + +AC_MSG_CHECKING(how to print unsigned long long) +AC_SUBST(FS_ULL) +dnl AC_TRY_RUN is a test program that performs a run-time test to find out +dnl the correct syntax to print unsigned long long ints in printf stmts. +dnl If strcmp returns 0, we are on an enironment that uses %llu, otherwise +dnl we are on a MacOSX environment that uses %qu +AC_TRY_RUN([ +#include + +#define NIX "%llu" + +int main () +{ + char test[11]; + unsigned long long int num = 0xdeadbeef; + sprintf (test, NIX, num); + if (strcmp (test, "3735928559") == 0) + exit (0); + else + exit (1); +}], +AC_DEFINE(USE_LLU) +AC_MSG_RESULT(%llu), +AC_MSG_RESULT(%qu), +AC_MSG_ERROR(can not run test program while cross compiling)) + +dnl Grab standard includes under weird Linux versions +dnl case "$target_os" in +dnl *inux*) V_INCLS="$V_INCLS -Ilinux-include"; +dnl esac + +dnl Grab includes from ./cygwin-includes under Windows versions +case "$target" in + *cygwin*) V_INCLS="$V_INCLS -I./cygwin-includes"; +esac + +dnl define -D__USE_BSD -D__FAVOR_BSD -D__USE_MISC -D__WIN32 for windows +case "$target" in + *cygwin*) V_DEFINES="$V_DEFINES -D__USE_BSD -D__FAVOR_BSD -D__USE_MISC -D__WIN32"; +esac + +dnl setting the correct PCAP_LDLIBS for windows +V_PCAP_LDLIBS="-lpcap"; +case "$target" in + *cygwin*) V_PCAP_LDLIBS="-lwpcap"; +esac + +dnl define _BSD_SOURCE for libc-2 +if [[ -f /lib/libc-2* ]]; then + V_DEFINES="$V_DEFINES -D_BSD_SOURCE" +fi + +AC_SUBST(V_CCOPT) +AC_SUBST(V_INCLS) +AC_SUBST(V_DEFINES) +AC_SUBST(V_PCAP_LDLIBS) + +AC_OUTPUT(Makefile) diff --git a/cygwin-includes/linux/if_ether.h b/cygwin-includes/linux/if_ether.h new file mode 100644 index 0000000..b64559d --- /dev/null +++ b/cygwin-includes/linux/if_ether.h @@ -0,0 +1,100 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the Ethernet IEEE 802.3 interface. + * + * Version: @(#)if_ether.h 1.0.1a 02/08/94 + * + * Author: Fred N. van Kempen, + * Donald Becker, + * Alan Cox, + * Steve Whitehouse, + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_IF_ETHER_H +#define _LINUX_IF_ETHER_H + +/* + * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble + * and FCS/CRC (frame check sequence). + */ + +#define ETH_ALEN 6 /* Octets in one ethernet addr */ +#define ETH_HLEN 14 /* Total octets in header. */ +#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ +#define ETH_DATA_LEN 1500 /* Max. octets in payload */ +#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ + +/* + * These are the defined Ethernet Protocol ID's. + */ + +#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ +#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ +#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ +#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +#define ETH_P_X25 0x0805 /* CCITT X.25 */ +#define ETH_P_ARP 0x0806 /* Address Resolution packet */ +#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ +#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ +#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ +#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ +#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ +#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ +#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ +#define ETH_P_LAT 0x6004 /* DEC LAT */ +#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ +#define ETH_P_CUST 0x6006 /* DEC Customer use */ +#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ +#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ +#define ETH_P_ATALK 0x809B /* Appletalk DDP */ +#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ +#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ +#define ETH_P_IPX 0x8137 /* IPX over DIX */ +#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ +#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ +#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ +#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ +#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport + * over Ethernet + */ + +/* + * Non DIX types. Won't clash for 1500 types. + */ + +#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ +#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ +#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ +#define ETH_P_802_2 0x0004 /* 802.2 frames */ +#define ETH_P_SNAP 0x0005 /* Internal only */ +#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ +#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ +#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ +#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ +#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ +#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ +#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ +#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ +#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ +#define ETH_P_ECONET 0x0018 /* Acorn Econet */ + +/* + * This is an Ethernet frame header. + */ + +struct ethhdr +{ + unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ + unsigned char h_source[ETH_ALEN]; /* source ether addr */ + unsigned short h_proto; /* packet type ID field */ +}; + +#endif /* _LINUX_IF_ETHER_H */ diff --git a/cygwin-includes/net/bpf.h b/cygwin-includes/net/bpf.h new file mode 100644 index 0000000..7ac9f7b --- /dev/null +++ b/cygwin-includes/net/bpf.h @@ -0,0 +1,431 @@ +/*- + * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from the Stanford/CMU enet packet filter, + * (net/enet.c) distributed as part of 4.3BSD, and code contributed + * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence + * Berkeley Laboratory. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)bpf.h 7.1 (Berkeley) 5/7/91 + * + * @(#) $Header: /usr/local/cvs/tcptrace/cygwin-includes/net/bpf.h,v 1.1 2002/06/21 09:56:28 alakhian Exp $ (LBL) + */ + +#ifndef BPF_MAJOR_VERSION + +/* BSD style release date */ +#define BPF_RELEASE 199606 + +typedef int bpf_int32; +typedef u_int bpf_u_int32; + +/* + * Alignment macros. BPF_WORDALIGN rounds up to the next + * even multiple of BPF_ALIGNMENT. + */ +#ifndef __NetBSD__ +#define BPF_ALIGNMENT sizeof(bpf_int32) +#else +#define BPF_ALIGNMENT sizeof(long) +#endif +#define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1)) + +#define BPF_MAXINSNS 512 +#define BPF_MAXBUFSIZE 0x8000 +#define BPF_MINBUFSIZE 32 + +/* + * Structure for BIOCSETF. + */ +struct bpf_program { + u_int bf_len; + struct bpf_insn *bf_insns; +}; + +/* + * Struct returned by BIOCGSTATS. + */ +struct bpf_stat { + u_int bs_recv; /* number of packets received */ + u_int bs_drop; /* number of packets dropped */ +}; + +/* + * Struct return by BIOCVERSION. This represents the version number of + * the filter language described by the instruction encodings below. + * bpf understands a program iff kernel_major == filter_major && + * kernel_minor >= filter_minor, that is, if the value returned by the + * running kernel has the same major number and a minor number equal + * equal to or less than the filter being downloaded. Otherwise, the + * results are undefined, meaning an error may be returned or packets + * may be accepted haphazardly. + * It has nothing to do with the source code version. + */ +struct bpf_version { + u_short bv_major; + u_short bv_minor; +}; +/* Current version number of filter architecture. */ +#define BPF_MAJOR_VERSION 1 +#define BPF_MINOR_VERSION 1 + +/* + * BPF ioctls + * + * The first set is for compatibility with Sun's pcc style + * header files. If your using gcc, we assume that you + * have run fixincludes so the latter set should work. + */ +#if (defined(sun) || defined(ibm032)) && !defined(__GNUC__) +#define BIOCGBLEN _IOR(B,102, u_int) +#define BIOCSBLEN _IOWR(B,102, u_int) +#define BIOCSETF _IOW(B,103, struct bpf_program) +#define BIOCFLUSH _IO(B,104) +#define BIOCPROMISC _IO(B,105) +#define BIOCGDLT _IOR(B,106, u_int) +#define BIOCGETIF _IOR(B,107, struct ifreq) +#define BIOCSETIF _IOW(B,108, struct ifreq) +#define BIOCSRTIMEOUT _IOW(B,109, struct timeval) +#define BIOCGRTIMEOUT _IOR(B,110, struct timeval) +#define BIOCGSTATS _IOR(B,111, struct bpf_stat) +#define BIOCIMMEDIATE _IOW(B,112, u_int) +#define BIOCVERSION _IOR(B,113, struct bpf_version) +#define BIOCSTCPF _IOW(B,114, struct bpf_program) +#define BIOCSUDPF _IOW(B,115, struct bpf_program) +#else +#define BIOCGBLEN _IOR('B',102, u_int) +#define BIOCSBLEN _IOWR('B',102, u_int) +#define BIOCSETF _IOW('B',103, struct bpf_program) +#define BIOCFLUSH _IO('B',104) +#define BIOCPROMISC _IO('B',105) +#define BIOCGDLT _IOR('B',106, u_int) +#define BIOCGETIF _IOR('B',107, struct ifreq) +#define BIOCSETIF _IOW('B',108, struct ifreq) +#define BIOCSRTIMEOUT _IOW('B',109, struct timeval) +#define BIOCGRTIMEOUT _IOR('B',110, struct timeval) +#define BIOCGSTATS _IOR('B',111, struct bpf_stat) +#define BIOCIMMEDIATE _IOW('B',112, u_int) +#define BIOCVERSION _IOR('B',113, struct bpf_version) +#define BIOCSTCPF _IOW('B',114, struct bpf_program) +#define BIOCSUDPF _IOW('B',115, struct bpf_program) +#endif + +/* + * Structure prepended to each packet. + */ +struct bpf_hdr { + struct timeval bh_tstamp; /* time stamp */ + bpf_u_int32 bh_caplen; /* length of captured portion */ + bpf_u_int32 bh_datalen; /* original length of packet */ + u_short bh_hdrlen; /* length of bpf header (this struct + plus alignment padding) */ +}; +/* + * Because the structure above is not a multiple of 4 bytes, some compilers + * will insist on inserting padding; hence, sizeof(struct bpf_hdr) won't work. + * Only the kernel needs to know about it; applications use bh_hdrlen. + */ +#if defined(KERNEL) || defined(_KERNEL) +#define SIZEOF_BPF_HDR 18 +#endif + +/* + * Data-link level type codes. + */ + +/* + * These are the types that are the same on all platforms; on other + * platforms, a should be supplied that defines the additional + * DLT_* codes appropriately for that platform (the BSDs, for example, + * should not just pick up this version of "bpf.h"; they should also define + * the additional DLT_* codes used by their kernels, as well as the values + * defined here - and, if the values they use for particular DLT_ types + * differ from those here, they should use their values, not the ones + * here). + */ +#define DLT_NULL 0 /* no link-layer encapsulation */ +#define DLT_EN10MB 1 /* Ethernet (10Mb) */ +#define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */ +#define DLT_AX25 3 /* Amateur Radio AX.25 */ +#define DLT_PRONET 4 /* Proteon ProNET Token Ring */ +#define DLT_CHAOS 5 /* Chaos */ +#define DLT_IEEE802 6 /* IEEE 802 Networks */ +#define DLT_ARCNET 7 /* ARCNET */ +#define DLT_SLIP 8 /* Serial Line IP */ +#define DLT_PPP 9 /* Point-to-point Protocol */ +#define DLT_FDDI 10 /* FDDI */ + +/* + * These are values from the traditional libpcap "bpf.h". + * Ports of this to particular platforms should replace these definitions + * with the ones appropriate to that platform, if the values are + * different on that platform. + */ +#define DLT_ATM_RFC1483 11 /* LLC/SNAP encapsulated atm */ +#define DLT_RAW 12 /* raw IP */ + +/* + * These are values from BSD/OS's "bpf.h". + * These are not the same as the values from the traditional libpcap + * "bpf.h"; however, these values shouldn't be generated by any + * OS other than BSD/OS, so the correct values to use here are the + * BSD/OS values. + * + * Platforms that have already assigned these values to other + * DLT_ codes, however, should give these codes the values + * from that platform, so that programs that use these codes will + * continue to compile - even though they won't correctly read + * files of these types. + */ +#ifdef __NetBSD__ +#ifndef DLT_SLIP_BSDOS +#define DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */ +#define DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */ +#endif +#else +#define DLT_SLIP_BSDOS 15 /* BSD/OS Serial Line IP */ +#define DLT_PPP_BSDOS 16 /* BSD/OS Point-to-point Protocol */ +#endif + +#define DLT_ATM_CLIP 19 /* Linux Classical-IP over ATM */ + +/* + * These values are defined by NetBSD; other platforms should refrain from + * using them for other purposes, so that NetBSD savefiles with link + * types of 50 or 51 can be read as this type on all platforms. + */ +#define DLT_PPP_SERIAL 50 /* PPP over serial with HDLC encapsulation */ +#define DLT_PPP_ETHER 51 /* PPP over Ethernet */ + +/* + * Values between 100 and 103 are used in capture file headers as + * link-layer types corresponding to DLT_ types that differ + * between platforms; don't use those values for new DLT_ new types. + */ + +/* + * This value was defined by libpcap 0.5; platforms that have defined + * it with a different value should define it here with that value - + * a link type of 104 in a save file will be mapped to DLT_C_HDLC, + * whatever value that happens to be, so programs will correctly + * handle files with that link type regardless of the value of + * DLT_C_HDLC. + * + * The name DLT_C_HDLC was used by BSD/OS; we use that name for source + * compatibility with programs written for BSD/OS. + * + * libpcap 0.5 defined it as DLT_CHDLC; we define DLT_CHDLC as well, + * for source compatibility with programs written for libpcap 0.5. + */ +#define DLT_C_HDLC 104 /* Cisco HDLC */ +#define DLT_CHDLC DLT_C_HDLC + +#define DLT_IEEE802_11 105 /* IEEE 802.11 wireless */ + +/* + * Values between 106 and 107 are used in capture file headers as + * link-layer types corresponding to DLT_ types that might differ + * between platforms; don't use those values for new DLT_ new types. + */ + +/* + * OpenBSD DLT_LOOP, for loopback devices; it's like DLT_NULL, except + * that the AF_ type in the link-layer header is in network byte order. + * + * OpenBSD defines it as 12, but that collides with DLT_RAW, so we + * define it as 108 here. If OpenBSD picks up this file, it should + * define DLT_LOOP as 12 in its version, as per the comment above - + * and should not use 108 as a DLT_ value. + */ +#define DLT_LOOP 108 + +/* + * Values between 109 and 112 are used in capture file headers as + * link-layer types corresponding to DLT_ types that might differ + * between platforms; don't use those values for new DLT_ types + * other than the corresponding DLT_ types. + */ + +/* + * This is for Linux cooked sockets. + */ +#define DLT_LINUX_SLL 113 + +/* + * Apple LocalTalk hardware. + */ +#define DLT_LTALK 114 + +/* + * Acorn Econet. + */ +#define DLT_ECONET 115 + +/* + * Reserved for use with OpenBSD ipfilter. + */ +#define DLT_IPFILTER 116 + +/* + * Reserved for use in capture-file headers as a link-layer type + * corresponding to OpenBSD DLT_PFLOG; DLT_PFLOG is 17 in OpenBSD, + * but that's DLT_LANE8023 in SuSE 6.3, so we can't use 17 for it + * in capture-file headers. + */ +#define DLT_PFLOG 117 + +/* + * Registered for Cisco-internal use. + */ +#define DLT_CISCO_IOS 118 + +/* + * Reserved for 802.11 cards using the Prism II chips, with a link-layer + * header including Prism monitor mode information plus an 802.11 + * header. + */ +#define DLT_PRISM_HEADER 119 + +/* + * Reserved for Aironet 802.11 cards, with an Aironet link-layer header + * (see Doug Ambrisko's FreeBSD patches). + */ +#define DLT_AIRONET_HEADER 120 + +/* + * Reserved for Siemens HiPath HDLC. + */ +#define DLT_HHDLC 121 + +/* + * The instruction encodings. + */ +/* instruction classes */ +#define BPF_CLASS(code) ((code) & 0x07) +#define BPF_LD 0x00 +#define BPF_LDX 0x01 +#define BPF_ST 0x02 +#define BPF_STX 0x03 +#define BPF_ALU 0x04 +#define BPF_JMP 0x05 +#define BPF_RET 0x06 +#define BPF_MISC 0x07 + +/* ld/ldx fields */ +#define BPF_SIZE(code) ((code) & 0x18) +#define BPF_W 0x00 +#define BPF_H 0x08 +#define BPF_B 0x10 +#define BPF_MODE(code) ((code) & 0xe0) +#define BPF_IMM 0x00 +#define BPF_ABS 0x20 +#define BPF_IND 0x40 +#define BPF_MEM 0x60 +#define BPF_LEN 0x80 +#define BPF_MSH 0xa0 + +/* alu/jmp fields */ +#define BPF_OP(code) ((code) & 0xf0) +#define BPF_ADD 0x00 +#define BPF_SUB 0x10 +#define BPF_MUL 0x20 +#define BPF_DIV 0x30 +#define BPF_OR 0x40 +#define BPF_AND 0x50 +#define BPF_LSH 0x60 +#define BPF_RSH 0x70 +#define BPF_NEG 0x80 +#define BPF_JA 0x00 +#define BPF_JEQ 0x10 +#define BPF_JGT 0x20 +#define BPF_JGE 0x30 +#define BPF_JSET 0x40 +#define BPF_SRC(code) ((code) & 0x08) +#define BPF_K 0x00 +#define BPF_X 0x08 + +/* ret - BPF_K and BPF_X also apply */ +#define BPF_RVAL(code) ((code) & 0x18) +#define BPF_A 0x10 + +/* misc */ +#define BPF_MISCOP(code) ((code) & 0xf8) +#define BPF_TAX 0x00 +#define BPF_TXA 0x80 + +/* + * The instruction data structure. + */ +struct bpf_insn { + u_short code; + u_char jt; + u_char jf; + bpf_int32 k; +}; + +/* + * Macros for insn array initializers. + */ +#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k } +#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k } + +#if defined(BSD) && (defined(KERNEL) || defined(_KERNEL)) +/* + * Systems based on non-BSD kernels don't have ifnet's (or they don't mean + * anything if it is in ) and won't work like this. + */ +# if __STDC__ +extern void bpf_tap(struct ifnet *, u_char *, u_int); +extern void bpf_mtap(struct ifnet *, struct mbuf *); +extern void bpfattach(struct ifnet *, u_int, u_int); +extern void bpfilterattach(int); +# else +extern void bpf_tap(); +extern void bpf_mtap(); +extern void bpfattach(); +extern void bpfilterattach(); +# endif /* __STDC__ */ +#endif /* BSD && (_KERNEL || KERNEL) */ +#if __STDC__ +extern int bpf_validate(struct bpf_insn *, int); +extern u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int); +#else +extern int bpf_validate(); +extern u_int bpf_filter(); +#endif + +/* + * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST). + */ +#define BPF_MEMWORDS 16 + +#endif diff --git a/cygwin-includes/net/ethernet.h b/cygwin-includes/net/ethernet.h new file mode 100644 index 0000000..ae7b784 --- /dev/null +++ b/cygwin-includes/net/ethernet.h @@ -0,0 +1,76 @@ +/* Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* Based on the FreeBSD version of this file. Curiously, that file + lacks a copyright in the header. */ + +#ifndef __NET_ETHERNET_H +#define __NET_ETHERNET_H 1 + +#include +#include +#include /* IEEE 802.3 Ethernet constants */ + +__BEGIN_DECLS + +/* This is a name for the 48 bit ethernet address available on many + systems. */ +struct ether_addr +{ + u_int8_t ether_addr_octet[ETH_ALEN]; +} __attribute__ ((__packed__)); + +/* 10Mb/s ethernet header */ +struct ether_header +{ + u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */ + u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */ + u_int16_t ether_type; /* packet type ID field */ +} __attribute__ ((__packed__)); + +/* Ethernet protocol ID's */ +#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ +#define ETHERTYPE_IP 0x0800 /* IP */ +#define ETHERTYPE_ARP 0x0806 /* Address resolution */ +#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ + +#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ +#define ETHER_TYPE_LEN 2 /* bytes in type field */ +#define ETHER_CRC_LEN 4 /* bytes in CRC field */ +#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */ +#define ETHER_MIN_LEN (ETH_ZLEN + ETH_CRC_LEN) /* min packet length */ +#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETH_CRC_LEN) /* max packet length */ + +/* make sure ethenet length is valid */ +#define ETHER_IS_VALID_LEN(foo) \ + ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) + +/* + * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have + * (type-ETHERTYPE_TRAIL)*512 bytes of data followed + * by an ETHER type (as given above) and then the (variable-length) header. + */ +#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ +#define ETHERTYPE_NTRAILER 16 + +#define ETHERMTU ETH_DATA_LEN +#define ETHERMIN (ETHER_MIN_LEN-ETHER_HDR_LEN-ETHER_CRC_LEN) + +__END_DECLS + +#endif /* net/ethernet.h */ diff --git a/cygwin-includes/net/if_arp.h b/cygwin-includes/net/if_arp.h new file mode 100644 index 0000000..d6a3664 --- /dev/null +++ b/cygwin-includes/net/if_arp.h @@ -0,0 +1,173 @@ +/* Definitions for Address Resolution Protocol. + Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* Based on the 4.4BSD and Linux version of this file. */ + +#ifndef _NET_IF_ARP_H + +#define _NET_IF_ARP_H 1 +#include + +#include +#include + +__BEGIN_DECLS + +/* Some internals from deep down in the kernel. */ +#define MAX_ADDR_LEN 7 + + +/* This structure defines an ethernet arp header. */ + +/* ARP protocol opcodes. */ +#define ARPOP_REQUEST 1 /* ARP request. */ +#define ARPOP_REPLY 2 /* ARP reply. */ +#define ARPOP_RREQUEST 3 /* RARP request. */ +#define ARPOP_RREPLY 4 /* RARP reply. */ +#define ARPOP_InREQUEST 8 /* InARP request. */ +#define ARPOP_InREPLY 9 /* InARP reply. */ +#define ARPOP_NAK 10 /* (ATM)ARP NAK. */ + +/* See RFC 826 for protocol description. ARP packets are variable + in size; the arphdr structure defines the fixed-length portion. + Protocol type values are the same as those for 10 Mb/s Ethernet. + It is followed by the variable-sized fields ar_sha, arp_spa, + arp_tha and arp_tpa in that order, according to the lengths + specified. Field names used correspond to RFC 826. */ + +struct arphdr + { + unsigned short int ar_hrd; /* Format of hardware address. */ + unsigned short int ar_pro; /* Format of protocol address. */ + unsigned char ar_hln; /* Length of hardware address. */ + unsigned char ar_pln; /* Length of protocol address. */ + unsigned short int ar_op; /* ARP opcode (command). */ +#if 0 + /* Ethernet looks like this : This bit is variable sized + however... */ + unsigned char __ar_sha[ETH_ALEN]; /* Sender hardware address. */ + unsigned char __ar_sip[4]; /* Sender IP address. */ + unsigned char __ar_tha[ETH_ALEN]; /* Target hardware address. */ + unsigned char __ar_tip[4]; /* Target IP address. */ +#endif + }; + + +/* ARP protocol HARDWARE identifiers. */ +#define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */ +#define ARPHRD_ETHER 1 /* Ethernet 10/100Mbps. */ +#define ARPHRD_EETHER 2 /* Experimental Ethernet. */ +#define ARPHRD_AX25 3 /* AX.25 Level 2. */ +#define ARPHRD_PRONET 4 /* PROnet token ring. */ +#define ARPHRD_CHAOS 5 /* Chaosnet. */ +#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB. */ +#define ARPHRD_ARCNET 7 /* ARCnet. */ +#define ARPHRD_APPLETLK 8 /* APPLEtalk. */ +#define ARPHRD_DLCI 15 /* Frame Relay DLCI. */ +#define ARPHRD_ATM 19 /* ATM. */ +#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id). */ + +/* Dummy types for non ARP hardware */ +#define ARPHRD_SLIP 256 +#define ARPHRD_CSLIP 257 +#define ARPHRD_SLIP6 258 +#define ARPHRD_CSLIP6 259 +#define ARPHRD_RSRVD 260 /* Notional KISS type. */ +#define ARPHRD_ADAPT 264 +#define ARPHRD_ROSE 270 +#define ARPHRD_X25 271 /* CCITT X.25. */ +#define ARPHDR_HWX25 272 /* Boards with X.25 in firmware. */ +#define ARPHRD_PPP 512 +#define ARPHRD_CISCO 513 /* Cisco HDLC. */ +#define ARPHRD_HDLC ARPHRD_CISCO +#define ARPHRD_LAPB 516 /* LAPB. */ +#define ARPHRD_DDCMP 517 /* Digital's DDCMP. */ +#define ARPHRD_RAWHDLC 518 /* Raw HDLC. */ + +#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */ +#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */ +#define ARPHRD_FRAD 770 /* Frame Relay Access Device. */ +#define ARPHRD_SKIP 771 /* SKIP vif. */ +#define ARPHRD_LOOPBACK 772 /* Loopback device. */ +#define ARPHRD_LOCALTLK 773 /* Localtalk device. */ +#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface. */ +#define ARPHRD_BIF 775 /* AP1000 BIF. */ +#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4. */ +#define ARPHRD_IPDDP 777 /* IP-in-DDP tunnel. */ +#define ARPHRD_IPGRE 778 /* GRE over IP. */ +#define ARPHRD_PIMREG 779 /* PIMSM register interface. */ +#define ARPHRD_HIPPI 780 /* High Performance Parallel I'face. */ +#define ARPHRD_ASH 781 /* (Nexus Electronics) Ash. */ +#define ARPHRD_ECONET 782 /* Acorn Econet. */ +#define ARPHRD_IRDA 783 /* Linux-IrDA. */ +#define ARPHRD_FCPP 784 /* Point to point fibrechanel. */ +#define ARPHRD_FCAL 785 /* Fibrechanel arbitrated loop. */ +#define ARPHRD_FCPL 786 /* Fibrechanel public loop. */ +#define ARPHRD_FCPFABRIC 787 /* Fibrechanel fabric. */ +#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR. */ +#define ARPHRD_IEEE80211 801 /* IEEE 802.11. */ + +/* ARP ioctl request. */ +struct arpreq + { + struct sockaddr arp_pa; /* Protocol address. */ + struct sockaddr arp_ha; /* Hardware address. */ + int arp_flags; /* Flags. */ + struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ + char arp_dev[16]; + }; + +struct arpreq_old + { + struct sockaddr arp_pa; /* Protocol address. */ + struct sockaddr arp_ha; /* Hardware address. */ + int arp_flags; /* Flags. */ + struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ + }; + +/* ARP Flag values. */ +#define ATF_COM 0x02 /* Completed entry (ha valid). */ +#define ATF_PERM 0x04 /* Permanent entry. */ +#define ATF_PUBL 0x08 /* Publish entry. */ +#define ATF_USETRAILERS 0x10 /* Has requested trailers. */ +#define ATF_NETMASK 0x20 /* Want to use a netmask (only + for proxy entries). */ +#define ATF_DONTPUB 0x40 /* Don't answer this addresses. */ +#define ATF_MAGIC 0x80 /* Automatically added entry. */ + + +/* Support for the user space arp daemon, arpd. */ +#define ARPD_UPDATE 0x01 +#define ARPD_LOOKUP 0x02 +#define ARPD_FLUSH 0x03 + +struct arpd_request + { + unsigned short int req; /* Request type. */ + u_int32_t ip; /* IP address of entry. */ + unsigned long int dev; /* Device entry is tied to. */ + unsigned long int stamp; + unsigned long int updated; + unsigned char ha[MAX_ADDR_LEN]; /* Hardware address. */ + }; + +__END_DECLS + +#endif /* net/if_arp.h */ diff --git a/cygwin-includes/netinet/if_ether.h b/cygwin-includes/netinet/if_ether.h new file mode 100644 index 0000000..aadb59b --- /dev/null +++ b/cygwin-includes/netinet/if_ether.h @@ -0,0 +1,105 @@ +/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef __NETINET_IF_ETHER_H + +#define __NETINET_IF_ETHER_H 1 +#include +#include + +/* Get definitions from kernel header file. */ +#include + +#ifdef __USE_BSD +/* + * Copyright (c) 1982, 1986, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)if_ether.h 8.3 (Berkeley) 5/2/95 + * $FreeBSD$ + */ + +#include +#include + +__BEGIN_DECLS +/* + * Ethernet Address Resolution Protocol. + * + * See RFC 826 for protocol description. Structure below is adapted + * to resolving internet addresses. Field names used correspond to + * RFC 826. + */ +struct ether_arp { + struct arphdr ea_hdr; /* fixed-size header */ + u_int8_t arp_sha[ETH_ALEN]; /* sender hardware address */ + u_int8_t arp_spa[4]; /* sender protocol address */ + u_int8_t arp_tha[ETH_ALEN]; /* target hardware address */ + u_int8_t arp_tpa[4]; /* target protocol address */ +}; +#define arp_hrd ea_hdr.ar_hrd +#define arp_pro ea_hdr.ar_pro +#define arp_hln ea_hdr.ar_hln +#define arp_pln ea_hdr.ar_pln +#define arp_op ea_hdr.ar_op + +/* + * Macro to map an IP multicast address to an Ethernet multicast address. + * The high-order 25 bits of the Ethernet address are statically assigned, + * and the low-order 23 bits are taken from the low end of the IP address. + */ +#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \ + /* struct in_addr *ipaddr; */ \ + /* u_char enaddr[ETH_ALEN]; */ \ +{ \ + (enaddr)[0] = 0x01; \ + (enaddr)[1] = 0x00; \ + (enaddr)[2] = 0x5e; \ + (enaddr)[3] = ((u_int8_t *)ipaddr)[1] & 0x7f; \ + (enaddr)[4] = ((u_int8_t *)ipaddr)[2]; \ + (enaddr)[5] = ((u_int8_t *)ipaddr)[3]; \ +} + +__END_DECLS +#endif /* __USE_BSD */ + +#endif /* netinet/if_ether.h */ diff --git a/cygwin-includes/netinet/ip.h b/cygwin-includes/netinet/ip.h new file mode 100644 index 0000000..6c95562 --- /dev/null +++ b/cygwin-includes/netinet/ip.h @@ -0,0 +1,251 @@ +/* Copyright (C) 1991,92,93,95,96,97,98,99,2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef __NETINET_IP_H +#define __NETINET_IP_H 1 + +#include +#include + +#include + +#define __BYTE_ORDER __LITTLE_ENDIAN + +__BEGIN_DECLS + +struct timestamp + { + u_int8_t len; + u_int8_t ptr; +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned int flags:4; + unsigned int overflow:4; +#elif __BYTE_ORDER == __BIG_ENDIAN + unsigned int overflow:4; + unsigned int flags:4; +#else +# error "Please fix " +#endif + u_int32_t data[9]; + }; + +struct iphdr + { +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned int ihl:4; + unsigned int version:4; +#elif __BYTE_ORDER == __BIG_ENDIAN + unsigned int version:4; + unsigned int ihl:4; +#else +# error "Please fix " +#endif + u_int8_t tos; + u_int16_t tot_len; + u_int16_t id; + u_int16_t frag_off; + u_int8_t ttl; + u_int8_t protocol; + u_int16_t check; + u_int32_t saddr; + u_int32_t daddr; + /*The options start here. */ + }; + +#ifdef __USE_BSD +/* + * Copyright (c) 1982, 1986, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)ip.h 8.1 (Berkeley) 6/10/93 + */ + +/* + * Definitions for internet protocol version 4. + * Per RFC 791, September 1981. + */ + +/* + * Structure of an internet header, naked of options. + */ +struct ip + { +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned int ip_hl:4; /* header length */ + unsigned int ip_v:4; /* version */ +#endif +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int ip_v:4; /* version */ + unsigned int ip_hl:4; /* header length */ +#endif + u_int8_t ip_tos; /* type of service */ + u_short ip_len; /* total length */ + u_short ip_id; /* identification */ + u_short ip_off; /* fragment offset field */ +#define IP_RF 0x8000 /* reserved fragment flag */ +#define IP_DF 0x4000 /* dont fragment flag */ +#define IP_MF 0x2000 /* more fragments flag */ +#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ + u_int8_t ip_ttl; /* time to live */ + u_int8_t ip_p; /* protocol */ + u_short ip_sum; /* checksum */ + struct in_addr ip_src, ip_dst; /* source and dest address */ + }; + +/* + * Time stamp option structure. + */ +struct ip_timestamp + { + u_int8_t ipt_code; /* IPOPT_TS */ + u_int8_t ipt_len; /* size of structure (variable) */ + u_int8_t ipt_ptr; /* index of current entry */ +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned int ipt_flg:4; /* flags, see below */ + unsigned int ipt_oflw:4; /* overflow counter */ +#endif +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int ipt_oflw:4; /* overflow counter */ + unsigned int ipt_flg:4; /* flags, see below */ +#endif + u_int32_t data[9]; + }; +#endif /* __USE_BSD */ + +#define IPVERSION 4 /* IP version number */ +#define IP_MAXPACKET 65535 /* maximum packet size */ + +/* + * Definitions for IP type of service (ip_tos) + */ +#define IPTOS_TOS_MASK 0x1E +#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) +#define IPTOS_LOWDELAY 0x10 +#define IPTOS_THROUGHPUT 0x08 +#define IPTOS_RELIABILITY 0x04 +#define IPTOS_LOWCOST 0x02 +#define IPTOS_MINCOST IPTOS_LOWCOST + +/* + * Definitions for IP precedence (also in ip_tos) (hopefully unused) + */ +#define IPTOS_PREC_MASK 0xe0 +#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) +#define IPTOS_PREC_NETCONTROL 0xe0 +#define IPTOS_PREC_INTERNETCONTROL 0xc0 +#define IPTOS_PREC_CRITIC_ECP 0xa0 +#define IPTOS_PREC_FLASHOVERRIDE 0x80 +#define IPTOS_PREC_FLASH 0x60 +#define IPTOS_PREC_IMMEDIATE 0x40 +#define IPTOS_PREC_PRIORITY 0x20 +#define IPTOS_PREC_ROUTINE 0x00 + +/* + * Definitions for options. + */ +#define IPOPT_COPY 0x80 +#define IPOPT_CLASS_MASK 0x60 +#define IPOPT_NUMBER_MASK 0x1f + +#define IPOPT_COPIED(o) ((o) & IPOPT_COPY) +#define IPOPT_CLASS(o) ((o) & IPOPT_CLASS_MASK) +#define IPOPT_NUMBER(o) ((o) & IPOPT_NUMBER_MASK) + +#define IPOPT_CONTROL 0x00 +#define IPOPT_RESERVED1 0x20 +#define IPOPT_DEBMEAS 0x40 +#define IPOPT_MEASUREMENT IPOPT_DEBMEAS +#define IPOPT_RESERVED2 0x60 + +#define IPOPT_EOL 0 /* end of option list */ +#define IPOPT_END IPOPT_EOL +#define IPOPT_NOP 1 /* no operation */ +#define IPOPT_NOOP IPOPT_NOP + +#define IPOPT_RR 7 /* record packet route */ +#define IPOPT_TS 68 /* timestamp */ +#define IPOPT_TIMESTAMP IPOPT_TS +#define IPOPT_SECURITY 130 /* provide s,c,h,tcc */ +#define IPOPT_SEC IPOPT_SECURITY +#define IPOPT_LSRR 131 /* loose source route */ +#define IPOPT_SATID 136 /* satnet id */ +#define IPOPT_SID IPOPT_SATID +#define IPOPT_SSRR 137 /* strict source route */ +#define IPOPT_RA 148 /* router alert */ + +/* + * Offsets to fields in options other than EOL and NOP. + */ +#define IPOPT_OPTVAL 0 /* option ID */ +#define IPOPT_OLEN 1 /* option length */ +#define IPOPT_OFFSET 2 /* offset within option */ +#define IPOPT_MINOFF 4 /* min value of above */ + +#define MAX_IPOPTLEN 40 + +/* flag bits for ipt_flg */ +#define IPOPT_TS_TSONLY 0 /* timestamps only */ +#define IPOPT_TS_TSANDADDR 1 /* timestamps and addresses */ +#define IPOPT_TS_PRESPEC 3 /* specified modules only */ + +/* bits for security (not byte swapped) */ +#define IPOPT_SECUR_UNCLASS 0x0000 +#define IPOPT_SECUR_CONFID 0xf135 +#define IPOPT_SECUR_EFTO 0x789a +#define IPOPT_SECUR_MMMM 0xbc4d +#define IPOPT_SECUR_RESTR 0xaf13 +#define IPOPT_SECUR_SECRET 0xd788 +#define IPOPT_SECUR_TOPSECRET 0x6bc5 + +/* + * Internet implementation parameters. + */ +#define MAXTTL 255 /* maximum time to live (seconds) */ +#define IPDEFTTL 64 /* default ttl, from RFC 1340 */ +#define IPFRAGTTL 60 /* time to live for frags, slowhz */ +#define IPTTLDEC 1 /* subtracted when forwarding */ + +#define IP_MSS 576 /* default maximum segment size */ + +__END_DECLS + +#endif /* netinet/ip.h */ diff --git a/cygwin-includes/netinet/tcp.h b/cygwin-includes/netinet/tcp.h new file mode 100644 index 0000000..67905bc --- /dev/null +++ b/cygwin-includes/netinet/tcp.h @@ -0,0 +1,227 @@ +/* + * Copyright (c) 1982, 1986, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)tcp.h 8.1 (Berkeley) 6/10/93 + */ + +#ifndef _NETINET_TCP_H +#define _NETINET_TCP_H 1 + +#include + +#define __BYTE_ORDER __LITTLE_ENDIAN + +/* + * User-settable options (used with setsockopt). + */ +//#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ +#define TCP_MAXSEG 2 /* Set maximum segment size */ +#define TCP_CORK 3 /* Control sending of partial frames */ +#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ +#define TCP_KEEPINTVL 5 /* Interval between keepalives */ +#define TCP_KEEPCNT 6 /* Number of keepalives before death */ +#define TCP_SYNCNT 7 /* Number of SYN retransmits */ +#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ +#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ +#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ +#define TCP_INFO 11 /* Information about this connection. */ +#define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */ + +#ifdef __USE_MISC +# include + +# ifdef __FAVOR_BSD +typedef u_int32_t tcp_seq; +/* + * TCP header. + * Per RFC 793, September, 1981. + */ +struct tcphdr + { + u_int16_t th_sport; /* source port */ + u_int16_t th_dport; /* destination port */ + tcp_seq th_seq; /* sequence number */ + tcp_seq th_ack; /* acknowledgement number */ +# if __BYTE_ORDER == __LITTLE_ENDIAN + u_int8_t th_x2:4; /* (unused) */ + u_int8_t th_off:4; /* data offset */ +# endif +# if __BYTE_ORDER == __BIG_ENDIAN + u_int8_t th_off:4; /* data offset */ + u_int8_t th_x2:4; /* (unused) */ +# endif + u_int8_t th_flags; +# define TH_FIN 0x01 +# define TH_SYN 0x02 +# define TH_RST 0x04 +# define TH_PUSH 0x08 +# define TH_ACK 0x10 +# define TH_URG 0x20 + u_int16_t th_win; /* window */ + u_int16_t th_sum; /* checksum */ + u_int16_t th_urp; /* urgent pointer */ +}; + +# else /* !__FAVOR_BSD */ +struct tcphdr + { + u_int16_t source; + u_int16_t dest; + u_int32_t seq; + u_int32_t ack_seq; +# if __BYTE_ORDER == __LITTLE_ENDIAN + u_int16_t res1:4; + u_int16_t doff:4; + u_int16_t fin:1; + u_int16_t syn:1; + u_int16_t rst:1; + u_int16_t psh:1; + u_int16_t ack:1; + u_int16_t urg:1; + u_int16_t res2:2; +# elif __BYTE_ORDER == __BIG_ENDIAN + u_int16_t doff:4; + u_int16_t res1:4; + u_int16_t res2:2; + u_int16_t urg:1; + u_int16_t ack:1; + u_int16_t psh:1; + u_int16_t rst:1; + u_int16_t syn:1; + u_int16_t fin:1; +# else +# error "Adjust your defines" +# endif + u_int16_t window; + u_int16_t check; + u_int16_t urg_ptr; +}; +# endif /* __FAVOR_BSD */ + +enum +{ + TCP_ESTABLISHED = 1, + TCP_SYN_SENT, + TCP_SYN_RECV, + TCP_FIN_WAIT1, + TCP_FIN_WAIT2, + TCP_TIME_WAIT, + TCP_CLOSE, + TCP_CLOSE_WAIT, + TCP_LAST_ACK, + TCP_LISTEN, + TCP_CLOSING /* now a valid state */ +}; + +# define TCPOPT_EOL 0 +# define TCPOPT_NOP 1 +# define TCPOPT_MAXSEG 2 +# define TCPOLEN_MAXSEG 4 +# define TCPOPT_WINDOW 3 +# define TCPOLEN_WINDOW 3 +# define TCPOPT_SACK_PERMITTED 4 /* Experimental */ +# define TCPOLEN_SACK_PERMITTED 2 +# define TCPOPT_SACK 5 /* Experimental */ +# define TCPOPT_TIMESTAMP 8 +# define TCPOLEN_TIMESTAMP 10 +# define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ + +# define TCPOPT_TSTAMP_HDR \ + (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) + +/* + * Default maximum segment size for TCP. + * With an IP MSS of 576, this is 536, + * but 512 is probably more convenient. + * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)). + */ +# define TCP_MSS 512 + +# define TCP_MAXWIN 65535 /* largest value for (unscaled) window */ + +# define TCP_MAX_WINSHIFT 14 /* maximum window shift */ + +# define SOL_TCP 6 /* TCP level */ + + +# define TCPI_OPT_TIMESTAMPS 1 +# define TCPI_OPT_SACK 2 +# define TCPI_OPT_WSCALE 4 +# define TCPI_OPT_ECN 8 + +/* Values for tcpi_state. */ +enum tcp_ca_state +{ + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4 +}; + +struct tcp_info +{ + u_int8_t tcpi_state; + u_int8_t tcpi_ca_state; + u_int8_t tcpi_retransmits; + u_int8_t tcpi_probes; + u_int8_t tcpi_backoff; + u_int8_t tcpi_options; + u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; + + u_int32_t tcpi_rto; + u_int32_t tcpi_ato; + u_int32_t tcpi_snd_mss; + u_int32_t tcpi_rcv_mss; + + u_int32_t tcpi_unacked; + u_int32_t tcpi_sacked; + u_int32_t tcpi_lost; + u_int32_t tcpi_retrans; + u_int32_t tcpi_fackets; + + /* Times. */ + u_int32_t tcpi_last_data_sent; + u_int32_t tcpi_last_ack_sent; /* Not remembered, sorry. */ + u_int32_t tcpi_last_data_recv; + u_int32_t tcpi_last_ack_recv; + + /* Metrics. */ + u_int32_t tcpi_pmtu; + u_int32_t tcpi_rcv_ssthresh; + u_int32_t tcpi_rtt; + u_int32_t tcpi_rttvar; + u_int32_t tcpi_snd_ssthresh; + u_int32_t tcpi_snd_cwnd; + u_int32_t tcpi_advmss; + u_int32_t tcpi_reordering; +}; + +#endif /* Misc. */ + +#endif /* netinet/tcp.h */ diff --git a/cygwin-includes/netinet/udp.h b/cygwin-includes/netinet/udp.h new file mode 100644 index 0000000..5be4bbd --- /dev/null +++ b/cygwin-includes/netinet/udp.h @@ -0,0 +1,55 @@ +/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* + * Copyright (c) 1982, 1986 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +#ifndef __NETINET_UDP_H +#define __NETINET_UDP_H 1 + +#include +#include + +__BEGIN_DECLS + +/* UDP header as specified by RFC 768, August 1980. */ +#ifdef __FAVOR_BSD +struct udphdr { + u_int16_t uh_sport; /* source port */ + u_int16_t uh_dport; /* destination port */ + u_int16_t uh_ulen; /* udp length */ + u_int16_t uh_sum; /* udp checksum */ +}; +#else + +struct udphdr { + u_int16_t source; + u_int16_t dest; + u_int16_t len; + u_int16_t check; +}; +#endif + +#define SOL_UDP 17 /* sockopt level for UDP */ + +__END_DECLS + +#endif /* netinet/udp.h */ diff --git a/cygwin-includes/pcap.h b/cygwin-includes/pcap.h new file mode 100644 index 0000000..7fafad7 --- /dev/null +++ b/cygwin-includes/pcap.h @@ -0,0 +1,210 @@ +/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */ +/* + * Copyright (c) 1993, 1994, 1995, 1996, 1997 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the Computer Systems + * Engineering Group at Lawrence Berkeley Laboratory. + * 4. Neither the name of the University nor of the Laboratory may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#) $Header: /usr/local/cvs/tcptrace/cygwin-includes/pcap.h,v 1.1 2002/06/21 09:56:27 alakhian Exp $ (LBL) + */ + +#ifndef lib_pcap_h +#define lib_pcap_h + +#include +#include + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define PCAP_VERSION_MAJOR 2 +#define PCAP_VERSION_MINOR 4 + +#define PCAP_ERRBUF_SIZE 256 + +/* + * Compatibility for systems that have a bpf.h that + * predates the bpf typedefs for 64-bit support. + */ +#if BPF_RELEASE - 0 < 199406 +typedef int bpf_int32; +typedef u_int bpf_u_int32; +#endif + +typedef struct pcap pcap_t; +typedef struct pcap_dumper pcap_dumper_t; +typedef struct pcap_if pcap_if_t; +typedef struct pcap_addr pcap_addr_t; + +/* + * The first record in the file contains saved values for some + * of the flags used in the printout phases of tcpdump. + * Many fields here are 32 bit ints so compilers won't insert unwanted + * padding; these files need to be interchangeable across architectures. + * + * Do not change the layout of this structure, in any way (this includes + * changes that only affect the length of fields in this structure). + * + * Also, do not change the interpretation of any of the members of this + * structure, in any way (this includes using values other than + * LINKTYPE_ values, as defined in "savefile.c", in the "linktype" + * field). + * + * Instead: + * + * introduce a new structure for the new format, if the layout + * of the structure changed; + * + * send mail to "tcpdump-workers@tcpdump.org", requesting a new + * magic number for your new capture file format, and, when + * you get the new magic number, put it in "savefile.c"; + * + * use that magic number for save files with the changed file + * header; + * + * make the code in "savefile.c" capable of reading files with + * the old file header as well as files with the new file header + * (using the magic number to determine the header format). + * + * Then supply the changes to "patches@tcpdump.org", so that future + * versions of libpcap and programs that use it (such as tcpdump) will + * be able to read your new capture file format. + */ +struct pcap_file_header { + bpf_u_int32 magic; + u_short version_major; + u_short version_minor; + bpf_int32 thiszone; /* gmt to local correction */ + bpf_u_int32 sigfigs; /* accuracy of timestamps */ + bpf_u_int32 snaplen; /* max length saved portion of each pkt */ + bpf_u_int32 linktype; /* data link type (LINKTYPE_*) */ +}; + +/* + * Each packet in the dump file is prepended with this generic header. + * This gets around the problem of different headers for different + * packet interfaces. + */ +struct pcap_pkthdr { + struct timeval ts; /* time stamp */ + bpf_u_int32 caplen; /* length of portion present */ + bpf_u_int32 len; /* length this packet (off wire) */ +}; + +/* + * As returned by the pcap_stats() + */ +struct pcap_stat { + u_int ps_recv; /* number of packets received */ + u_int ps_drop; /* number of packets dropped */ + u_int ps_ifdrop; /* drops by interface XXX not yet supported */ +}; + +/* + * Item in a list of interfaces. + */ +struct pcap_if { + struct pcap_if *next; + char *name; /* name to hand to "pcap_open_live()" */ + char *description; /* textual description of interface, or NULL */ + struct pcap_addr *addresses; + u_int flags; /* PCAP_IF_ interface flags */ +}; + +#define PCAP_IF_LOOPBACK 0x00000001 /* interface is loopback */ + +/* + * Representation of an interface address. + */ +struct pcap_addr { + struct pcap_addr *next; + struct sockaddr *addr; /* address */ + struct sockaddr *netmask; /* netmask for that address */ + struct sockaddr *broadaddr; /* broadcast address for that address */ + struct sockaddr *dstaddr; /* P2P destination address for that address */ +}; + +typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *, + const u_char *); + +char *pcap_lookupdev(char *); +int pcap_lookupnet(char *, bpf_u_int32 *, bpf_u_int32 *, char *); +pcap_t *pcap_open_live(char *, int, int, int, char *); +pcap_t *pcap_open_dead(int, int); +pcap_t *pcap_open_offline(const char *, char *); +void pcap_close(pcap_t *); +int pcap_loop(pcap_t *, int, pcap_handler, u_char *); +int pcap_dispatch(pcap_t *, int, pcap_handler, u_char *); +const u_char* + pcap_next(pcap_t *, struct pcap_pkthdr *); +int pcap_stats(pcap_t *, struct pcap_stat *); +int pcap_setfilter(pcap_t *, struct bpf_program *); +int pcap_getnonblock(pcap_t *, char *); +int pcap_setnonblock(pcap_t *, int, char *); +void pcap_perror(pcap_t *, char *); +char *pcap_strerror(int); +char *pcap_geterr(pcap_t *); +int pcap_compile(pcap_t *, struct bpf_program *, char *, int, + bpf_u_int32); +int pcap_compile_nopcap(int, int, struct bpf_program *, + char *, int, bpf_u_int32); +void pcap_freecode(struct bpf_program *); +int pcap_datalink(pcap_t *); +int pcap_snapshot(pcap_t *); +int pcap_is_swapped(pcap_t *); +int pcap_major_version(pcap_t *); +int pcap_minor_version(pcap_t *); + +/* XXX */ +FILE *pcap_file(pcap_t *); +int pcap_fileno(pcap_t *); + +pcap_dumper_t *pcap_dump_open(pcap_t *, const char *); +void pcap_dump_close(pcap_dumper_t *); +void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *); + +int pcap_findalldevs(pcap_if_t **, char *); +void pcap_freealldevs(pcap_if_t *); + +/* XXX this guy lives in the bpf tree */ +u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int); +int bpf_validate(struct bpf_insn *f, int len); +char *bpf_image(struct bpf_insn *, int); +void bpf_dump(struct bpf_program *, int); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/cygwin-libs/win9x/Packet.dll b/cygwin-libs/win9x/Packet.dll new file mode 100755 index 0000000..6f96b95 Binary files /dev/null and b/cygwin-libs/win9x/Packet.dll differ diff --git a/cygwin-libs/win9x/cygwin1.dll b/cygwin-libs/win9x/cygwin1.dll new file mode 100644 index 0000000..c8997c2 Binary files /dev/null and b/cygwin-libs/win9x/cygwin1.dll differ diff --git a/cygwin-libs/win9x/libwpcap.a b/cygwin-libs/win9x/libwpcap.a new file mode 100755 index 0000000..bad5123 Binary files /dev/null and b/cygwin-libs/win9x/libwpcap.a differ diff --git a/cygwin-libs/win9x/wpcap.dll b/cygwin-libs/win9x/wpcap.dll new file mode 100644 index 0000000..6ba1d1b Binary files /dev/null and b/cygwin-libs/win9x/wpcap.dll differ diff --git a/cygwin-libs/winNT/Packet.dll b/cygwin-libs/winNT/Packet.dll new file mode 100644 index 0000000..546216a Binary files /dev/null and b/cygwin-libs/winNT/Packet.dll differ diff --git a/cygwin-libs/winNT/cygwin1.dll b/cygwin-libs/winNT/cygwin1.dll new file mode 100644 index 0000000..c8997c2 Binary files /dev/null and b/cygwin-libs/winNT/cygwin1.dll differ diff --git a/cygwin-libs/winNT/libwpcap.a b/cygwin-libs/winNT/libwpcap.a new file mode 100644 index 0000000..19bcfa8 Binary files /dev/null and b/cygwin-libs/winNT/libwpcap.a differ diff --git a/cygwin-libs/winNT/wpcap.dll b/cygwin-libs/winNT/wpcap.dll new file mode 100644 index 0000000..929ba68 Binary files /dev/null and b/cygwin-libs/winNT/wpcap.dll differ diff --git a/dot_tcptracerc b/dot_tcptracerc new file mode 100644 index 0000000..3d56ad6 --- /dev/null +++ b/dot_tcptracerc @@ -0,0 +1,24 @@ +# +# Shawn's ~/.tcptracerc tcptrace resource file +# +# you can put anything in here that you can put on the command line, plus +# comments. +# +# the order of argument parsing is very important: +# +# 1) ~/.tcptracerc is read first +# 2) next, we read from the envariable TCPTRACEOPTS +# 3) finally, we read from the command line +# + +# always tick off packets graphically so I know how long it will take +-t + +# I LIKE the little RTT dongles! +# oh, no, on second thought, I guess I don't +#--showrttdongles + +# +# Please drop all output files into a subdirectory +# (the %f stands for the basename of the input filename) +--output_dir=output_%f diff --git a/dstring.c b/dstring.c new file mode 100644 index 0000000..8bf4fea --- /dev/null +++ b/dstring.c @@ -0,0 +1,195 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid_dstring[] = + "@(#)$Header: /usr/local/cvs/tcptrace/dstring.c,v 5.2 2003/11/19 14:38:01 sdo Exp $"; + + + +/* our dynamic string structure */ +struct dstring { + char *buf; + int ix_nextch; + int buflen; +}; + + +/* local routines */ +static void DSExpand(struct dstring *pds); + +/* make the total string size longer */ +static void +DSExpand(struct dstring *pds) +{ + unsigned newsize; + char *newbuf; + + /* choose a new size */ + if (pds->buflen == 0) + newsize = 64; + else if (pds->buflen < (16*1024)) + newsize = pds->buflen * 2; + else + newsize = pds->buflen +(4*1024); + + /* make the new buffer (using the old one if possible) */ + newbuf = ReallocZ(pds->buf,pds->buflen,newsize); + + pds->buflen = newsize; + pds->buf = newbuf; +} + + + + + + +/* Make a new dstring */ +struct dstring * +DSNew(void) +{ + struct dstring *pret; + + /* malloc and zero out */ + pret = MallocZ(sizeof(struct dstring)); + + return(pret); +} + + + +/* Destroy a dstring */ +void +DSDestroy(struct dstring **ppds) +{ + free((*ppds)->buf); + free((*ppds)); + *ppds = NULL; +} + + + + +/* erase the string, but leave the structure otherwise intact */ +void +DSErase( + struct dstring *pds) +{ + pds->ix_nextch = 0; +} + + + +/* append a character to a dstring */ +void +DSAppendChar( + struct dstring *pds, + char ch) +{ + /* status: + buf[0,1,2,...(buflen-1)] are valid + buf[ix_nextch] is where the next character should go + if (ix_nextch > (buflen-1)), then it's full + same as (ix_nextch+1 > (buflen)) + */ + if (1 /* for the null */ + pds->ix_nextch+1 > pds->buflen) { + DSExpand(pds); + } + + pds->buf[pds->ix_nextch++] = ch; + pds->buf[pds->ix_nextch] = '\00'; /* keep it NULL terminated */ +} + + + +/* append a normal string to the end of a dstring */ +void +DSAppendString( + struct dstring *pds, + char *str) +{ + while (*str) { + DSAppendChar(pds,*str); + ++str; + } +} + + +/* append at most 'len' characters from a normal string to a dstring */ +void +DSAppendStringN( + struct dstring *pds, + char *str, + int len) +{ + while (*str) { + if (len-- <= 0) + break; + DSAppendChar(pds,*str); + ++str; + } +} + + +/* return the value of the string */ +char * +DSVal( + struct dstring *pds) +{ + if (pds->buflen) + return(pds->buf); + else + return(""); /* not used yet, treat as null */ +} diff --git a/dstring.h b/dstring.h new file mode 100644 index 0000000..8e6bf6a --- /dev/null +++ b/dstring.h @@ -0,0 +1,15 @@ +/* a simple, dynamic string library */ + +typedef struct dstring dstring_t; + + +/* dstring access routines */ +dstring_t *DSNew(void); +void DSDestroy(dstring_t **ppds); +void DSErase(dstring_t *pds); +void DSAppendChar(dstring_t *pds, char ch); +void DSAppendString(dstring_t *pds, char *str); +void DSAppendStringN(dstring_t *pds, char *str, int len); +char *DSVal(dstring_t *pds); + + diff --git a/dyncounter.c b/dyncounter.c new file mode 100644 index 0000000..9f8a56d --- /dev/null +++ b/dyncounter.c @@ -0,0 +1,759 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/dyncounter.c,v 1.7 2003/11/19 14:38:01 sdo Exp $"; + +/* dynamic counters/arrays */ +/* uses a 10-ary tree to manage a sparse counter space */ +#include "dyncounter.h" + + +static int ldebug = 0; + +/* external routines */ +void *MallocZ(int nbytes); + + +/* WIDTH of the nodes (designed for 10, caveat emptor!) */ +/* (sdo: tested at 2, 5, 10, 100) */ +#define CARDINALITY 10 + + +/* 10-ary tree node */ +struct node { + u_long depth; /* 1, 10, 100, 1000 ... 10,000,000 */ + union { + struct node *down[CARDINALITY]; /* if depth != 1 */ + u_long value[CARDINALITY]; /* if depth == 1 */ + } un; + + struct node *nextleaf; /* linked list of leaves, for NextCounter() */ + u_long prefix; /* from trees above */ +}; + + +/* dynamically-sized counter structure */ +struct dyn_counter { + u_long gran; /* granularity of the IX */ + u_long maxix; /* NOT scaled */ + u_long minix; /* NOT scaled */ + u_long maxcount; + u_long total_count; /* sum of the "AddToCounters" call values */ + struct node *tree; + + /* linked list of leaves */ + struct node *firstleaf; + struct node *lastleaf; +}; + + +/* local routines */ +static struct dyn_counter *MakeCounterStruct(void); +static struct node *NewNode(u_long depth); +static u_long *FindTwig(struct node *lastnode, u_long ix); +static struct node *FindLeaf( struct dyn_counter *pdc, struct node **ptree, + u_long depth, u_long value, int fcreate); +static u_long *FindCounter(struct dyn_counter **ppdc, u_long ix, int fcreate); +static void PrintTree(struct node *tree); +static void PrintTreeRecurse(struct node *tree, u_long depth); +static void FinishTree(struct dyn_counter *pdc); +static void FinishTreeRecurse(struct dyn_counter *pdc, struct node *pnode, + u_long prefix, u_long depth); +static void PrintLeafList(struct dyn_counter *pdc); +static struct node *NextCounterRecurse(struct node *node, u_long nextix, + u_long *pix, u_long *pcount); +static struct node *MakeDepth(struct node *node, u_long depth); +static void DestroyTree(struct node *pnode); +static void MakeCounter(struct dyn_counter **ppdc, u_long ix, + u_long val, u_long granularity, char set); + + + + + + +/* add a value to a counter */ +void +AddToCounter( + struct dyn_counter **ppdc, + u_long ix, + u_long val, + u_long granularity) +{ + if (ldebug) + fprintf(stderr,"AddToCounter(%p, %lu, %lu) called\n", *ppdc, ix, val); + + MakeCounter(ppdc,ix,val,granularity,0); +} + + + +/* set a value in a counter */ +void +SetCounter( + struct dyn_counter **ppdc, + u_long ix, + u_long val, + u_long granularity) +{ + if (ldebug) + fprintf(stderr,"SetCounter(%p, %lu, %lu) called\n", *ppdc, ix, val); + + MakeCounter(ppdc,ix,val,granularity,1); +} + + + +/* read only, doesn't MAKE anything */ +u_long +LookupCounter( + struct dyn_counter *pdc, + u_long ix) +{ + u_long *pdigit; + + if (ldebug) + fprintf(stderr,"LookupCounter(p,%lu) called\n", ix); + + /* try to find the counter */ + pdigit = FindCounter(&pdc, + ix, + 0); /* do NOT create */ + + if (pdigit == NULL) { + /* no leaf node == no such counter */ + if (ldebug) + fprintf(stderr,"LookupCounter(p,%lu): no such leaf\n", ix); + return(0); + } + + return(*pdigit); +} + + +int +NextCounter( + struct dyn_counter **ppdc, + void *pvoidcookie, + u_long *pix, + u_long *pcount) +{ + struct dyn_counter *pdc; + struct node *node; + u_long nextix; + + if (ldebug) + fprintf(stderr,"NextCounter(p,%p,%lu,%lu) called\n", + *((char **)pvoidcookie), *pix, *pcount); + + /* if the counter tree doesn't exist yet, create it */ + if (*ppdc == NULL) { + *ppdc = MakeCounterStruct(); + } + pdc = *ppdc; + + /* scale ix by granularity */ + *pix /= pdc->gran; + + /* make sure the linked list of leaves is up to date */ + if (pdc->firstleaf == NULL) { + FinishTree(pdc); + if (ldebug) { + PrintLeafList(pdc); + PrintTree(pdc->tree); + } + } + + /* if cookie is NULL, start at the head */ + if ((*((struct node **)pvoidcookie)) == NULL) { + node = pdc->firstleaf; + nextix = 0; + } else { + node = *((struct node **)pvoidcookie); + nextix = ((*pix) % CARDINALITY) + 1; + } + + + /* sanity check on cookie */ + if (node->depth != 1) { + fprintf(stderr,"NextCounter: invalid cookie!\n"); + exit(1); + } + + /* recurse and solve */ + node = NextCounterRecurse(node,nextix,pix,pcount); + + if (node == NULL) + return(0); /* no more */ + + /* scale ix by granularity */ + *pix *= pdc->gran; + + /* remember cookie for next time */ + *((struct node **)pvoidcookie) = node; + + return(1); +} + + +/* access routine - maximum counter value */ +u_long +GetMaxCount( + struct dyn_counter *pdc) +{ + return(pdc->maxcount); +} + + +/* access routine - return MAX index */ +u_long +GetMaxIx( + struct dyn_counter *pdc) +{ + return(pdc->maxix); +} + + +/* access routine - return MIN index */ +u_long +GetMinIx( + struct dyn_counter *pdc) +{ + return(pdc->minix); +} + + +/* access routine - return stored granularity */ +u_long +GetGran( + struct dyn_counter *pdc) +{ + if (pdc == NULL) + return(1); + return(pdc->gran); +} + + +/* access routine - total value added with AddToCounter() */ +u_long +GetTotalCounter( + struct dyn_counter *pdc) +{ + if (pdc == NULL) + return(0); + return(pdc->total_count); +} + + +void +DestroyCounters( + dyn_counter *phandle) +{ + if (!*phandle) + return; + + if ((*phandle)->tree) + DestroyTree((*phandle)->tree); + + free(*phandle); + *phandle = NULL; +} + + +static struct dyn_counter * +MakeCounterStruct() +{ + struct dyn_counter *pdc = MallocZ(sizeof(struct dyn_counter)); + + pdc->minix = 0xffffffff; + + return(pdc); +} + + +static void +DestroyTree( + struct node *pnode) +{ + int i; + + if (pnode == NULL) + return; + + if (pnode->depth > 1) { + /* recurse and delete */ + for (i=0; i < CARDINALITY; ++i) { + DestroyTree(pnode->un.down[i]); + } + } + + /* destroy ME */ + free(pnode); + return; +} + + + + + +/* the heart of the routines, a 10-ary recursize search */ +static struct node * +FindLeaf( + struct dyn_counter *pdc, + struct node **ptree, + u_long depth, + u_long value, + int fcreate) +{ + u_long hidigit; + u_long lowdigits; + u_long valdepth; + u_long valunits; + u_long temp_value; + + if (ldebug) + fprintf(stderr,"FindLeaf(%p(depth %lu), %lu, %s) called\n", + *ptree, + *ptree?((*ptree)->depth):0, + value, + fcreate?"CREATE":"NOCREATE"); + + + /* if the tree is empty and we haven't asked to "create", then not found */ + if ((*ptree == NULL) && (!fcreate)) + return(NULL); + + /* determine the units of the MSDigit (the depth) */ + valdepth = 1; + valunits = 1; + temp_value = value; + while (temp_value >= CARDINALITY) { + temp_value /= CARDINALITY; + ++valdepth; + valunits *= CARDINALITY; + } + + if (ldebug) + fprintf(stderr,"FindLeaf: value:%lu depth:%lu units:%lu\n", + value, valdepth, valunits); + + + /* is the tree deep enough? */ + if ((*ptree == NULL) || (valdepth > (*ptree)->depth)) { + u_long correct_depth; + + /* the correct depth is the MAX of: */ + /* - the depth of the number we're looking for */ + /* - the value of "depth" passed down */ + correct_depth = depth; + if (valdepth > correct_depth) + correct_depth = valdepth; + + /* if the tree isn't that deep and we haven't asked to create, then not found */ + if (!fcreate) + return(NULL); + + /* increase the depth of this branch */ + *ptree = MakeDepth((*ptree), correct_depth); + + /* linked list of leaves no longer valid! */ + pdc->firstleaf = NULL; + + /* adjust */ + depth = correct_depth; + } + + /* if we're at the leaf depth, then we're done */ + if ((*ptree)->depth == 1) + return(*ptree); + + /* if the "depth" of val is less than the depth of this node, + recurse down the "0" branch without changing the number */ + if (valdepth < (*ptree)->depth) { + return(FindLeaf(pdc, + &(*ptree)->un.down[0], + depth-1, + value, + fcreate)); + } + + /* (else), already the correct level */ + + /* break the number into the MSDigit and LSDigits */ + hidigit = value / valunits; + lowdigits = value % valunits; + + if (ldebug) + fprintf(stderr,"for value %lu, depth:%lu units:%lu hidigit:%lu lowdigits:%lu\n", + value, valdepth, valunits, hidigit, lowdigits); + + /* recurse */ + return(FindLeaf(pdc, + &(*ptree)->un.down[hidigit], + depth-1, + lowdigits, + fcreate)); +} + +static struct node * +MakeDepth( + struct node *node, + u_long depth) +{ + struct node *newroot; + + if ((node != NULL) && (node->depth >= depth)) + return(node); + + /* ELSE, insert a new level and recurse */ + newroot = NewNode(depth); + + /* attach the old part of the tree */ + if (depth > 1) + newroot->un.down[0] = MakeDepth(node,depth-1); + + /* return the new root */ + return(newroot); +} + + + + +static struct node * +NewNode( + u_long depth) +{ + struct node *pn; + + if (ldebug) + fprintf(stderr,"NewNode(%lu) called\n", depth); + + pn = MallocZ(sizeof(struct node)); + + pn->depth = depth; + + return(pn); +} + + +static u_long * +FindTwig( + struct node *lastnode, + u_long ix) +{ + unsigned digit; + + if (ldebug) + fprintf(stderr,"FindTwig(%p(depth %lu), %lu) called\n", + lastnode, lastnode->depth, ix); + + if (lastnode->depth != 1) { + fprintf(stderr,"FindTwig: internal error, not at a leaf node\n"); + exit(2); + } + + digit = ix % CARDINALITY; + return(&(lastnode->un.value[digit])); +} + + +static u_long * +FindCounter( + struct dyn_counter **ppdc, + u_long ix, + int fcreate) +{ + struct dyn_counter *pdc; + struct node *pnode; + u_long *pcounter; + + if (ldebug) + fprintf(stderr,"FindCounter(p, %lu) called\n", ix); + + /* if the counter tree doesn't exist yet, create it */ + if (*ppdc == NULL) { + *ppdc = MakeCounterStruct(); + } + pdc = *ppdc; + + /* track MAX and MIN */ + if (ix > pdc->maxix) + pdc->maxix = ix; + if (ix < pdc->minix) + pdc->minix = ix; + + if (ldebug>1) + PrintTree(pdc->tree); + + /* scale (TRUNCATE) the index by the granularity */ + ix /= (*ppdc)->gran; + + /* find the leaf node */ + pnode = FindLeaf(pdc, &pdc->tree, + pdc->tree?pdc->tree->depth:1, + ix, fcreate); + if (pnode == NULL) + return(NULL); + + /* find the right counter */ + pcounter = FindTwig(pnode, ix); + + return(pcounter); +} + + +static void Indent(int depth) +{ + int i; + + for (i=0; i < depth; ++i) + fputc(' ', stderr); +} + + +static void PrintTree( + struct node *tree) +{ + PrintTreeRecurse(tree,0); +} + + +static void +PrintTreeRecurse( + struct node *tree, + u_long indent) +{ + int i; + + if (tree == NULL) { + Indent(indent); + fprintf(stderr,"NULL\n"); + return; + } + + Indent(indent); + fprintf(stderr,"Node %p, depth:%lu, prefix:%lu\n", tree, tree->depth, tree->prefix); + + if (tree->depth == 1) { + for (i=0; i < CARDINALITY; ++i) { + Indent(indent); + fprintf(stderr,"Leaf[%d]: %lu (value:%lu)\n", + i, + tree->un.value[i], + tree->prefix*CARDINALITY+i); + } + } else { + for (i=0; i < CARDINALITY; ++i) { + Indent(indent); + fprintf(stderr,"Branch %d (prefix %lu, depth %lu)\n", + i, tree->prefix*CARDINALITY+i, tree->depth); + PrintTreeRecurse(tree->un.down[i], + indent+3); + } + } +} + + +static void +FinishTree( + struct dyn_counter *pdc) +{ + FinishTreeRecurse(pdc, pdc->tree, 0, pdc->tree->depth); +} + + +static void +FinishTreeRecurse( + struct dyn_counter *pdc, + struct node *pnode, + u_long prefix, + u_long depth) +{ + int i; + + /* special case, empty tree */ + if (pnode == NULL) + return; + + /* sanity check, verify depth */ + if (pnode->depth != depth) { + fprintf(stderr,"FinishTree: bad depth at node %p (%lu should be %lu)\n", + pnode, pnode->depth, depth); + PrintTree(pdc->tree); + exit(-3); + } + + /* insert prefix */ + pnode->prefix = prefix; + + /* if we're a leaf, add to end of the list */ + if (pnode->depth == 1) { + if (pdc->firstleaf == NULL) { + pdc->firstleaf = pdc->lastleaf = pnode; + if (ldebug) + fprintf(stderr,"FinishTree: Making %p the head\n", pnode); + } else { + pdc->lastleaf->nextleaf = pnode; + pdc->lastleaf = pnode; + if (ldebug) + fprintf(stderr,"FinishTree: Making %p the tail\n", pnode); + } + return; + } + + /* recurse down all branches */ + for (i=0; i < CARDINALITY; ++i) { + FinishTreeRecurse(pdc, pnode->un.down[i], prefix*CARDINALITY+i, depth-1); + } +} + + +static void +PrintLeafList( + struct dyn_counter *ptree) +{ + struct node *pnode = ptree->firstleaf; + + fprintf(stderr,"Leaf Linked List...\n"); + while(pnode) { + fprintf(stderr," pnode:%p prefix:%lu\n", pnode, pnode->prefix); + pnode = pnode->nextleaf; + } +} + + + +static struct node * +NextCounterRecurse( + struct node *node, + u_long nextix, + u_long *pix, + u_long *pcount) +{ + int i; + + if (ldebug) + fprintf(stderr,"NextCounterRecurse(%p,%lu,%lu,%lu) called\n", + node, nextix, *pix, *pcount); + + /* base case, NULL */ + if (node == NULL) + return(NULL); + + + /* first, check the rest of THIS leaf node */ + for (i=nextix; i < CARDINALITY; ++i) { + if (node->un.value[i] != 0) { + *pix = node->prefix*CARDINALITY+i; + *pcount = node->un.value[i]; + return(node); + } + } + + /* check each counter in the NEXT leaf */ + return(NextCounterRecurse(node->nextleaf, 0, pix, pcount)); +} + + +/* internal counter access routine */ +static void +MakeCounter( + struct dyn_counter **ppdc, + u_long ix, + u_long val, + u_long granularity, + char is_set) /* "set" as opposed to "add" */ +{ + u_long *pcounter; + + /* if the counter tree doesn't exist yet, create it */ + if (*ppdc == NULL) { + *ppdc = MakeCounterStruct(); + } + + /* check granularity */ + if ((*ppdc)->gran == 0) { + (*ppdc)->gran = granularity; + } else { + /* error check */ + if ((*ppdc)->gran != granularity) { + fprintf(stderr,"DYNCOUNTER: internal error, granularity changed\n"); + exit(-1); + } + } + + /* find/create the counter */ + pcounter = FindCounter(ppdc, ix, 1); + + /* add or set */ + if (is_set) { + /* counter = val */ + *pcounter = val; + } else { + /* counter += val */ + *pcounter += val; + (*ppdc)->total_count += val; + } + + + /* check MAX counter value */ + if (*pcounter > (*ppdc)->maxcount) + (*ppdc)->maxcount = *pcounter; + + return; +} diff --git a/dyncounter.h b/dyncounter.h new file mode 100644 index 0000000..d25efa9 --- /dev/null +++ b/dyncounter.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ + +/* opaque handle */ +typedef struct dyn_counter *dyn_counter; + + +/* adding/setting counters */ +void AddToCounter(dyn_counter *phandle, unsigned long ix, + unsigned long val, unsigned long granularity); +void SetCounter(dyn_counter *phandle, unsigned long ix, + unsigned long val, unsigned long granularity); + + +/* lookup various counter values */ +unsigned long GetMaxIx(dyn_counter handle); +unsigned long GetMinIx(dyn_counter handle); +unsigned long GetMaxCount(dyn_counter handle); +unsigned long GetTotalCounter(dyn_counter handle); +unsigned long GetGran(dyn_counter handle); + +/* query counter values */ +unsigned long LookupCounter(dyn_counter handle, unsigned long ix); +int NextCounter(dyn_counter *phandle, void *pcookie, + unsigned long *pix, unsigned long *pcount); + +/* when you're finished */ +void DestroyCounters(dyn_counter *phandle); diff --git a/erf.c b/erf.c new file mode 100644 index 0000000..e0f8837 --- /dev/null +++ b/erf.c @@ -0,0 +1,362 @@ +/* + * + * Copyright (c) 2003 Endace Technology Ltd, Hamilton, New Zealand. + * All rights reserved. + * + * This software and documentation has been developed by Endace Technology Ltd. + * along with the DAG PCI network capture cards. For further information please + * visit http://www.endace.com/. + * + * Redistribution and use of software in source and binary forms and + * documentation, with or without modification, are permitted provided + * that the following conditions are met: + * + * 1. Redistributions of source code and documentation must retain the above + * copyright notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Endace Technology Ltd., + * Hamilton, New Zealand, and its contributors. + * 4. Neither the name of Endace Technology nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY ENDACE TECHNOLOGY AND + * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ENDACE TECHNOLOGY + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: erf.c,v 5.4 2003/11/19 14:38:01 sdo Exp $ + */ + +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2003 -- Endace Technology Ltd, Hamilton, New Zealand\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/erf.c,v 5.4 2003/11/19 14:38:01 sdo Exp $"; + +/* + * erf - Endace ERF (Extensible Record Format) specific file reading stuff + */ + + +#ifdef GROK_ERF + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* Record type defines */ +#define TYPE_LEGACY 0 +#define TYPE_HDLC_POS 1 +#define TYPE_ETH 2 +#define TYPE_ATM 3 +#define TYPE_AAL5 4 + +typedef struct pos_rec { + unsigned int hdlc; + unsigned char pload[1]; +} pos_rec_t; + +typedef struct eth_rec { + unsigned char offset; + unsigned char pad; + unsigned char dst[6]; + unsigned char src[6]; + unsigned short etype; + unsigned char pload[1]; +} eth_rec_t; + +typedef struct atm_rec { + unsigned int header; + unsigned char pload[1]; +} atm_rec_t; + +#ifdef HAVE_LONG_LONG +typedef unsigned long long erf_timestamp_t; +#else +typedef unsigned long erf_timestamp_t[2]; +#endif + +typedef struct erf_record { + erf_timestamp_t ts; + unsigned char type; + unsigned char flags; + unsigned short rlen; + unsigned short lctr; + unsigned short wlen; + union { + pos_rec_t pos; + eth_rec_t eth; + atm_rec_t atm; + } rec; +} erf_record_t; + +#define ERF_HEADER_LEN 16 +#define MAX_RECORD_LEN 0x10000 /* 64k */ +#define RECORDS_FOR_ERF_CHECK 3 +#define FCS_BITS 32 + +#ifndef min +#define min(a, b) ((a) > (b) ? (b) : (a)) +#endif + +/* + * ATM snaplength + */ +#define ATM_SNAPLEN 48 + +/* + * Size of ATM payload + */ +#define ATM_SLEN(h) ATM_SNAPLEN +#define ATM_WLEN(h) ATM_SNAPLEN + +/* + * Size of Ethernet payload + */ +#define ETHERNET_WLEN(h) (ntohs((h)->wlen) - (fcs_bits >> 3)) +#define ETHERNET_SLEN(h) min(ETHERNET_WLEN(h), ntohs((h)->rlen) - ERF_HEADER_LEN - 2) + +/* + * Size of HDLC payload + */ +#define HDLC_WLEN(h) (ntohs((h)->wlen) - (fcs_bits >> 3)) +#define HDLC_SLEN(h) min(HDLC_WLEN(h), ntohs((h)->rlen) - ERF_HEADER_LEN) + +static struct ether_header eth_header; +static erf_record_t *record; +static int records_for_erf_check = RECORDS_FOR_ERF_CHECK; +static int fcs_bits = FCS_BITS; + +/* + * Convert little-endian to host order. + */ +#ifdef HAVE_LONG_LONG +#define pletohll(p) ((unsigned long long)*((const unsigned char *)(p)+7)<<56| \ + (unsigned long long)*((const unsigned char *)(p)+6)<<48| \ + (unsigned long long)*((const unsigned char *)(p)+5)<<40| \ + (unsigned long long)*((const unsigned char *)(p)+4)<<32| \ + (unsigned long long)*((const unsigned char *)(p)+3)<<24| \ + (unsigned long long)*((const unsigned char *)(p)+2)<<16| \ + (unsigned long long)*((const unsigned char *)(p)+1)<<8| \ + (unsigned long long)*((const unsigned char *)(p)+0)<<0) +#else +#define pletohl(p) ((unsigned long)*((const unsigned char *)(p)+3)<<24| \ + (unsigned long)*((const unsigned char *)(p)+2)<<16| \ + (unsigned long)*((const unsigned char *)(p)+1)<<8| \ + (unsigned long)*((const unsigned char *)(p)+0)<<0) +#endif + +/* return the next packet header */ +static int +pread_erf( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + int rlen, psize; + unsigned short ether_type = 0; + + /* read the next frames */ + while (1) { + if ((rlen=fread(record,1,ERF_HEADER_LEN,SYS_STDIN)) != ERF_HEADER_LEN) { + if (debug && (rlen != 0)) + fprintf(stderr,"Bad ERF packet header (len:%d)\n", rlen); + return(0); + } + psize = ntohs(record->rlen) - ERF_HEADER_LEN; + if ((rlen=fread((char *)record+ERF_HEADER_LEN,1,psize,SYS_STDIN)) != psize) { + if (debug && (rlen != 0)) + fprintf(stderr,"Bad ERF packet payload (len:%d)\n", rlen); + return(0); + } + +#ifdef HAVE_LONG_LONG + { + unsigned long long ts = pletohll(&record->ts); + + ptime->tv_sec = ts >> 32; + ts = ((ts & 0xffffffffULL) * 1000 * 1000); + ts += (ts & 0x80000000ULL) << 1; /* rounding */ + ptime->tv_usec = ts >> 32; + if (ptime->tv_usec >= 1000000) { + ptime->tv_usec -= 1000000; + ptime->tv_sec += 1; + } + } +#else + ptime->tv_sec = pletohl(&record->ts[1]); + ptime->tv_usec = + (unsigned long)((pletohl(&record->ts[0])*1000000.0)/0xffffffffUL); +#endif + + switch (record->type) { + case TYPE_ATM: + *ptlen = ATM_SLEN(record); + *plen = ATM_WLEN(record); + *pphys = ð_header; + ether_type = ntohs(((unsigned short *)&record->rec.atm.pload)[3]); + *ppip = (struct ip *)&record->rec.atm.pload[8]; /* skip snap/llc */ + *pplast = ((char *)*ppip)+*ptlen-8-1; + break; + case TYPE_ETH: + *ptlen = ETHERNET_SLEN(record); + *plen = ETHERNET_WLEN(record); + *pphys = &record->rec.eth.dst; + ether_type = ntohs(record->rec.eth.etype); + *ppip = (struct ip *)&record->rec.eth.pload[0]; + *pplast = ((char *)*ppip)+*ptlen-sizeof(struct ether_header)-1; + break; + case TYPE_HDLC_POS: + *ptlen = HDLC_SLEN(record); + *plen = HDLC_WLEN(record); + *pphys = ð_header; + /* Detect PPP and convert the Ethertype value */ + if (ntohs(((unsigned short *)&record->rec.pos.hdlc)[0]) == 0xff03) { + if (ntohs(((unsigned short *)&record->rec.pos.hdlc)[1]) == 0x0021) { + ether_type = ETHERTYPE_IP; + } + } else { + ether_type = ntohs(((unsigned short *)&record->rec.pos.hdlc)[1]); + } + *ppip = (struct ip *)&record->rec.pos.pload[0]; + *pplast = ((char *)*ppip)+*ptlen-4-1; + break; + default: + fprintf(stderr,"Unsupported ERF record type %d\n", record->type); + exit(1); + } + + *pphystype = PHYS_ETHER; + + /* if it's not IP, then skip it */ + if (ether_type != ETHERTYPE_IP && ether_type != ETHERTYPE_IPV6) { + if (debug > 2) + fprintf(stderr,"pread_erf: not an IP packet\n"); + continue; + } + + return(1); + } +} + +/* + * is_erf() is the input file in ERF format? + */ +pread_f * +is_erf( + char *filename) +{ + int i, rlen; + int psize, n; + char *s; + erf_timestamp_t prevts; + + memset(&prevts, 0, sizeof(prevts)); + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + /* + * The wirelength value in the ERF file is needed to calculate the + * original payload length. Unfortunately the value includes a + * 0, 2 or 4 byte checksum for Ethernet and PoS, and there is no + * way of telling which it is. So assume 4 bytes checksum unless + * told differently through the environment. + */ + if ((s = getenv("ERF_FCS_BITS")) != NULL) { + if ((n = atoi(s)) == 0 || n == 16|| n == 32) { + fcs_bits = n; + } + } + + /* number of records to scan before deciding if this really is ERF (dflt=3) */ + if ((s = getenv("ERF_RECORDS_TO_CHECK")) != NULL) { + if ((n = atoi(s)) > 0 && n < 101) { + records_for_erf_check = n; + } + } + + if (record == NULL && (record = malloc(MAX_RECORD_LEN)) == NULL) { + fprintf(stderr,"No memory for ERF record buffer\n"); + exit(1); + } + + /* ERF is a little hard because there's no magic number */ + + for (i = 0; i < records_for_erf_check; i++) { + erf_timestamp_t ts; + + if ((rlen=fread(record,1,ERF_HEADER_LEN,SYS_STDIN)) != ERF_HEADER_LEN) { + if (rlen == 0) { + break; /* eof */ + } else { + rewind(SYS_STDIN); + return(NULL); + } + } + + /* fail on invalid record type, decreasing timestamps or non-zero pad-bits */ + if (record->type == 0 || record->type > TYPE_AAL5 || (record->flags & 0xc0) != 0) { + rewind(SYS_STDIN); + return(NULL); + } + +#ifdef HAVE_LONG_LONG + if ((ts = pletohll(&record->ts)) < prevts) { + rewind(SYS_STDIN); + return(NULL); + } +#else + ts[0] = pletohl(&record->ts[0]); /* frac */ + ts[1] = pletohl(&record->ts[1]); /* sec */ + + if ((ts[1] < prevts[1]) || (ts[1] == prevts[1] && ts[0] < prevts[0])) { + rewind(SYS_STDIN); + return(NULL); + } +#endif + memcpy(&prevts, &ts, sizeof(prevts)); + + psize = ntohs(record->rlen) - ERF_HEADER_LEN; + if ((rlen=fread((char *)record+ERF_HEADER_LEN,1,psize,SYS_STDIN)) != psize) { + rewind(SYS_STDIN); + return(NULL); + } + } + rewind(SYS_STDIN); + + /* There may be no physical header present, so make up one */ + memset(ð_header, 0, sizeof(eth_header)); + eth_header.ether_type = htons(ETHERTYPE_IP); + + if (debug) + fprintf(stderr,"ERF format\n"); + + return(pread_erf); +} + +#endif /* GROK_ERF */ diff --git a/etherpeek.c b/etherpeek.c new file mode 100644 index 0000000..ca4e429 --- /dev/null +++ b/etherpeek.c @@ -0,0 +1,434 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/etherpeek.c,v 5.8 2003/11/19 14:38:02 sdo Exp $"; + + +/**************************************** +** This is the Ether Peek reading stuff. +** Author: Brian Wilson +** Ohio University +** Computer Science +** Date: Mon, July ,1995 +****************************************/ + + + + +#ifdef GROK_ETHERPEEK + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* NOTE: This is for version 5 of the file. Other file formats may not work + correctly.*/ + +static struct EPFileHeader { + char version; /* file version (must be 5, 6, or 7)*/ + char status; /* filler to fill to even boundary*/ +} file_header; + +static struct EPFileHeader2 { + tt_uint32 length; /* length of file*/ + tt_uint32 numPackets; /* number of packets contained in the file*/ + tt_uint32 timeDate; /* time and date stamp of the file (MAC format)*/ + tt_uint32 timeStart; /* time of the first packet in the file*/ + tt_uint32 timeStop; /* time of the last packet in the file*/ + tt_uint32 futureUse[7]; /*reserved for future use and irrelevent to us!*/ +} file_header2; + + + +struct EPFilePacket_v5_6 { + tt_uint16 packetlength; /* total packet length */ + tt_uint16 slicelength; /* sliced length of packet*/ +}; + +struct EPFilePacket2_v5_6 { + u_char flags; /* crc, frame, runt, ...*/ + u_char status; /* slice, trunc, ...*/ +}; + +struct EPFilePacket3_v5_6 { + tt_uint32 timestamp; /* timestamp in milliseconds*/ + tt_uint16 destNum; /* str corresponding to ether address*/ + tt_uint16 srcNum; /* dnum is entry in table*/ + tt_uint16 protoNum; /* table number for the protocol*/ + char protoStr[8]; /* protocol identity string (NOT null terminated!)*/ + tt_uint16 filterNum; /* index to filter table*/ +}; + + +/* what we need for version 7 */ +typedef struct PeekPacket_v7 { + tt_uint16 protospec; /* ProtoSpec ID. */ + tt_uint16 packetlength; /* Total length of packet. */ + tt_uint16 slicelength; /* Sliced length of packet. */ + u_char flags; /* CRC, frame, runt, ... */ + u_char status; /* Slicing, ... */ + tt_uint32 timestamphi; /* 64-bit timestamp in microseconds. */ + tt_uint32 timestamplo; +} PeekPacket_v7; + +/* byte swapping */ +/* Mac's are in network byte order. If this machine is NOT, then */ +/* we'll need to do conversion */ + + +static u_long mactime; + +#define Real_Size_FH 2 +#define Real_Size_FH2 48 +#define Real_Size_FP 4 +#define Real_Size_FP2 2 +#define Real_Size_FP3 20 + +#define Mac2unix 2082844800u /* difference between Unix and Mac timestamp */ + +#define VERSION_7 7 /* Version 7 */ +#define VERSION_6 6 /* Version 6 */ +#define VERSION_5 5 /* Version 5 */ +static char thisfile_ep_version; +#define EP_V5 (thisfile_ep_version == VERSION_5) +#define EP_V6 (thisfile_ep_version == VERSION_6) +#define EP_V7 (thisfile_ep_version == VERSION_7) + + + +/* static buffers for reading */ +static struct ether_header *pep; +static int *pip_buf; + + +/* currently only works for ETHERNET */ +static int +pread_EP( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + u_int packlen; + u_int rlen; + u_int len; + + /* read the EP packet header */ + while(1){ + if (EP_V5 || EP_V6) { + struct EPFilePacket_v5_6 hdr; + struct EPFilePacket2_v5_6 hdr2; + struct EPFilePacket3_v5_6 hdr3; + + if ((rlen=fread(&hdr,1,Real_Size_FP,SYS_STDIN)) != Real_Size_FP) { + if (rlen != 0) + fprintf(stderr,"Bad EP header\n"); + return(0); + } + hdr.packetlength = ntohs(hdr.packetlength); + hdr.slicelength = ntohs(hdr.slicelength); + + if (debug>1) { + printf("EP_read: next packet: original length: %d, saved length: %d\n", + hdr.packetlength, hdr.slicelength); + } + + + if ((rlen=fread(&hdr2,1,Real_Size_FP2,SYS_STDIN)) !=Real_Size_FP2) { + if (rlen != 0) + fprintf(stderr,"Bad EP header\n"); + return(0); + } + + if ((rlen=fread(&hdr3,1,Real_Size_FP3,SYS_STDIN)) != Real_Size_FP3) { + if (rlen != 0) + fprintf(stderr,"Bad EP header\n"); + return(0); + } + + if (hdr.slicelength) + packlen = hdr.slicelength; + else + packlen = hdr.packetlength; + + hdr3.timestamp = ntohl(hdr3.timestamp); + + ptime->tv_sec = mactime + (hdr3.timestamp / 1000); /*milliseconds div 1000*/ + ptime->tv_usec = 1000 * (hdr3.timestamp % 1000); + + *plen = hdr.packetlength; + /* hmmm... I guess 0 bytes means that they grabbed the whole */ + /* packet. Seems to work that way... sdo - Thu Feb 13, 1997 */ + if (hdr.slicelength) + *ptlen = hdr.slicelength; + else + *ptlen = hdr.packetlength; + } else { /* version 7 */ + struct PeekPacket_v7 hdrv7; + + if ((rlen=fread(&hdrv7,sizeof(hdrv7),1,SYS_STDIN)) != 1) { + if (rlen != 0) + fprintf(stderr,"Bad EP V7 header (rlen is %d)\n", rlen); + return(0); + } + + hdrv7.packetlength = ntohs(hdrv7.packetlength); + hdrv7.slicelength = ntohs(hdrv7.slicelength); + + if (hdrv7.slicelength) + packlen = hdrv7.slicelength; + else + packlen = hdrv7.packetlength; + + /* file save version 7 time is NOT an offset, it's a 64 bit counter in microseconds */ +#ifdef HAVE_LONG_LONG + { /* not everybody has LONG LONG now */ + unsigned long long int usecs; + + /* avoid ugly alignment problems */ + usecs = ntohl(hdrv7.timestamphi); + usecs <<= 32; + usecs |= ntohl(hdrv7.timestamplo); + + ptime->tv_sec = usecs / 1000000 - Mac2unix; + ptime->tv_usec = usecs % 1000000; + } +#else /* HAVE_LONG_LONG */ + { + double usecs; + + /* secs is hard because I don't want to depend on "long long" */ + /* which isn't universal yet. "float" probably isn't enough */ + /* signigicant figures to make this work, so I'll do it in */ + /* (slow) double precision :-( */ + usecs = (double)hdrv7.timestamphi * (65536.0 * 65536.0); + usecs += (double)hdrv7.timestamplo; + usecs -= (double)Mac2unix*1000000.0; + ptime->tv_sec = usecs/1000000.0; + + /* usecs is easier, the part we want is all in the lower word */ + ptime->tv_usec = usecs - (double)ptime->tv_sec * 1000000.0; + } +#endif /* HAVE_LONG_LONG */ + + + *plen = hdrv7.packetlength; + /* hmmm... I guess 0 bytes means that they grabbed the whole */ + /* packet. Seems to work that way... sdo - Thu Feb 13, 1997 */ + if (hdrv7.slicelength) + *ptlen = hdrv7.slicelength; + else + *ptlen = hdrv7.packetlength; + + if (debug>1) { + printf("File position: %ld\n", ftell(SYS_STDIN)); + printf("pread_EP (v7) next packet:\n"); + printf(" packetlength: %d\n", hdrv7.packetlength); + printf(" slicelength: %d\n", hdrv7.slicelength); + printf(" packlen: %d\n", packlen); + printf(" time: %s\n", ts2ascii_date(ptime)); + } + } + + + len= packlen; + + /* read the ethernet header */ + rlen=fread(pep,1,sizeof(struct ether_header),SYS_STDIN); + if (rlen != sizeof(struct ether_header)) { + fprintf(stderr,"Couldn't read ether header\n"); + return(0); + } + + + if (debug > 3) { + PrintRawDataHex("EP_READ: Ethernet Dump", pep, (char *)(pep+1)-1); + } + + /* read the rest of the packet */ + len -= sizeof(struct ether_header); + if (len >= IP_MAXPACKET) { + /* sanity check */ + fprintf(stderr, + "pread_EP: invalid next packet, IP len is %d, return EOF\n", len); + return(0); + } + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + if (rlen != 0) + if (debug) + fprintf(stderr, + "Couldn't read %d more bytes, skipping last packet\n", + len); + return(0); + } + + if (debug > 3) + PrintRawDataHex("EP_READ: IP Dump", pip_buf, (char *)pip_buf+len-1); + + /* round to 2 bytes for V7 */ + if (EP_V7) { + if (len%2 != 0) { + /* can't SEEK, because this might be a pipe!! */ + (void) fgetc(SYS_STDIN); + } + } + + *ppip = (struct ip *) pip_buf; + *pplast = (char *)pip_buf+len-1; /* last byte in the IP packet */ + *pphys = pep; + *pphystype = PHYS_ETHER; + + /* if it's not IP, then skip it */ + if ((ntohs(pep->ether_type) != ETHERTYPE_IP) && + (ntohs(pep->ether_type) != ETHERTYPE_IPV6)) { + if (debug > 2) + fprintf(stderr,"pread_EP: not an IP packet\n"); + continue; + } + + return(1); + } +} + + + +/* is the input file a Ether Peek format file?? */ +pread_f *is_EP(char *filename) +{ + int rlen; + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + /* read the EP file header */ + if ((rlen=fread(&file_header,1,Real_Size_FH,SYS_STDIN)) != Real_Size_FH) { + rewind(SYS_STDIN); + return(NULL); + } + /*rewind(SYS_STDIN); I might need this*/ + if ((rlen=fread(&file_header2,1,Real_Size_FH2,SYS_STDIN)) != Real_Size_FH2) { + rewind(SYS_STDIN); + return(NULL); + } + + /* byte swapping */ + file_header2.length = ntohl(file_header2.length); + file_header2.numPackets = ntohl(file_header2.numPackets); + file_header2.timeDate = ntohl(file_header2.timeDate); + file_header2.timeStart = ntohl(file_header2.timeStart); + file_header2.timeStop = ntohl(file_header2.timeStop); + + mactime=file_header2.timeDate - Mac2unix; /*get time plus offset to unix time */ + /********** File header info ********************************/ + if (debug>1) { + int i; + + fprintf(stderr, "IS_EP says version number %d \n",file_header.version); + fprintf(stderr, "IS_EP says status number %d\n",file_header.status); + fprintf(stderr, "IS_EP says length number %ld\n",file_header2.length); + fprintf(stderr, "IS_EP says num packets number %ld \n",file_header2.numPackets); + fprintf(stderr, "IS_EP says time date in mac format %lu \n", (tt_uint32)file_header2.timeDate); + fprintf(stderr, "IS_EP says time start %lu \n",file_header2.timeStart); + fprintf(stderr, "IS_EP says time stop %lu \n",file_header2.timeStop); + fprintf(stderr, "future is: "); + for(i=0;i<7;i++) + fprintf(stderr, " %ld ",file_header2.futureUse[i]); + fprintf(stderr, "\n"); + fprintf(stderr, "RLEN is %d \n",rlen); + } + + + /* check for EP file format */ + /* Note, there's no "magic number" here, so this is just a heuristic :-( */ + if ((file_header.version == VERSION_7 || + file_header.version == VERSION_6 || + file_header.version == VERSION_5) && + (file_header.status == 0) && + (memcmp(file_header2.futureUse,"\000\000\000\000\000\000\000",7) == 0)) { + if (debug) + fprintf(stderr, "Valid Etherpeek format file (file version: %d)\n", + file_header.version); + thisfile_ep_version = file_header.version; + + } else { + if (debug) + fprintf(stderr,"I don't think this is version 5, 6, or 7 Ether Peek File\n"); + + return(NULL); + } + + /* OK, it's mine. Init some stuff */ + pep = MallocZ(sizeof(struct ether_header)); + pip_buf = MallocZ(IP_MAXPACKET); + + + return(pread_EP); +} + +#endif /* GROK_ETHERPEEK */ diff --git a/file_formats.h b/file_formats.h new file mode 100644 index 0000000..e5ced4b --- /dev/null +++ b/file_formats.h @@ -0,0 +1,122 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_file_formats[] = + "@(#)$Header: /usr/local/cvs/tcptrace/file_formats.h,v 5.10 2004/09/27 04:03:19 jblanton Exp $"; + + +/* + * file_formats.h -- Which file formats are supported + */ + + + +/**************************************************************/ +/** **/ +/** Input File Specific Stuff **/ +/** **/ +/**************************************************************/ + +struct supported_formats { + pread_f *(*test_func)(char *filename); /* pointer to the tester function */ + char *format_name; /* name of the file format */ + char *format_descr; /* description of the file format */ +}; + +/* for each file type GLORP you want to support, provide a */ +/* function is_GLORP() that returns NULL if the stdin file is NOT */ +/* of type GLORP, and returns a pointer to a packet reading routine */ +/* if it is. The packet reading routine is of the following type: */ +/* int pread_GLORP( */ +/* struct timeval *ptime, */ +/* int *plen, */ +/* int *ptlen, */ +/* void **pphys, */ +/* int *pphystype, */ +/* struct ip **ppip, */ +/* void **pplast) */ +/* the reader function should return 0 at EOF and 1 otherwise */ +/* This routine must return ONLY IP packets, but they need not all be */ +/* TCP packets (if not, they're ignored). */ + + +/* install the is_GLORP() routines supported */ +struct supported_formats file_formats[] = { +#ifdef GROK_SNOOP + {is_snoop, "snoop","Sun Snoop -- Distributed with Solaris"}, +#endif /* GROK_SNOOP */ +#ifdef GROK_ETHERPEEK + {is_EP, "etherpeek","etherpeek -- Mac sniffer program"}, +#endif /* GROK_ETHERPEEK */ +#ifdef GROK_NETM + {is_netm, "netmetrix","Net Metrix -- Commercial program from HP"}, +#endif /* GROK_NETM */ +#ifdef GROK_NS + {is_ns, "ns","ns -- network simulator from LBL"}, +#endif /* GROK_NS */ +#ifdef GROK_NLANR + {is_nlanr, "tsh","NLANL Tsh Format"}, +#endif /* GROK_NLANR */ +#ifdef GROK_NETSCOUT + {is_netscout, "netscout","NetScout Manager format"}, +#endif /* GROK_NETSCOUT */ +#ifdef GROK_ERF + {is_erf, "erf","Endace Extensible Record Format"}, +#endif /* GROK_ERF */ +#ifdef GROK_TCPDUMP + {is_tcpdump, "tcpdump","tcpdump -- Public domain program from LBL"}, +#endif /* GROK_TCPDUMP */ +}; + +#define NUM_FILE_FORMATS (sizeof(file_formats) / sizeof(struct supported_formats)) diff --git a/filt_parser.y b/filt_parser.y new file mode 100644 index 0000000..77a5886 --- /dev/null +++ b/filt_parser.y @@ -0,0 +1,185 @@ +%{ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + * Ohio University. + * + * --- + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + * ostermann@cs.ohiou.edu + */ + + +#include +#include + +#include "tcptrace.h" +#include "filter.h" + +#define YYDEBUG 1 + + +%} + + + +%union { /* the types that we use in the tokens */ + char *string; + long signed_long; + u_long unsigned_long; + ipaddr *pipaddr; + Bool bool; + enum optype op; + struct filter_node *pf; +} + + + +%token EOS +%token LPAREN RPAREN +%token GREATER GREATER_EQ LESS LESS_EQ EQUAL NEQUAL +%token NOT + +/* AND or OR group left to right, NOT is highest precedence, then OR */ +%left NOT +%left AND +%left OR + +/* BITWISE AND and OR */ +%left BAND BOR + +/* PLUS and MINUS group left to right, lower prec then TIMES and DIVIDE */ +%left PLUS MINUS +%left TIMES DIVIDE MOD + +%token VARIABLE STRING +%token SIGNED +%token UNSIGNED +%token BOOL +%token IPADDR +%type relop +%type expr leaf number + + + +%% /* beginning of the parsing rules */ +line : expr EOS + {InstallFilter($1);} + ; + +/* top-level booleans and etc */ +expr : expr AND expr + { $$ = MakeBinaryNode(OP_AND,$1,$3);} + | expr OR expr + { $$ = MakeBinaryNode(OP_OR,$1,$3);} + | NOT expr + { $$ = MakeUnaryNode(OP_NOT,$2); } + | number relop number + { $$ = MakeBinaryNode($2,$1,$3);} + | number + { $$ = $1; } + ; + + +/* numbers are leaves or math operations thereon */ +number : number PLUS number + { $$ = MakeBinaryNode(OP_PLUS,$1,$3);} + | number MINUS number + { $$ = MakeBinaryNode(OP_MINUS,$1,$3);} + | number TIMES number + { $$ = MakeBinaryNode(OP_TIMES,$1,$3);} + | number DIVIDE number + { $$ = MakeBinaryNode(OP_DIVIDE,$1,$3);} + | number MOD number + { $$ = MakeBinaryNode(OP_MOD,$1,$3);} + | number BAND number + { $$ = MakeBinaryNode(OP_BAND,$1,$3);} + | number BOR number + { $$ = MakeBinaryNode(OP_BOR,$1,$3);} + | LPAREN expr RPAREN + { $$ = $2; } + | leaf + { $$ = $1; } + ; + +/* leaves are constants or variables */ +leaf : VARIABLE + { $$ = MakeVarNode($1); } + | SIGNED + { $$ = MakeSignedConstNode($1); } + | UNSIGNED + { $$ = MakeUnsignedConstNode($1); } + | STRING + { $$ = MakeStringConstNode($1); } + | BOOL + { $$ = MakeBoolConstNode($1); } + | IPADDR + /* just pretend, for now */ + { $$ = MakeIPaddrConstNode($1); } + ; + +/* relational operators */ +relop : GREATER + { $$ = OP_GREATER;} + | GREATER_EQ + { $$ = OP_GREATER_EQ;} + | LESS + { $$ = OP_LESS;} + | LESS_EQ + { $$ = OP_LESS_EQ;} + | EQUAL + { $$ = OP_EQUAL;} + | NEQUAL + { $$ = OP_NEQUAL;} + ; +%% + +void +filtyyerror(char *error_string, ...) +{ + fprintf(stderr,"Bad filter expr: '%s'\n", error_string); +} diff --git a/filt_scanner.l b/filt_scanner.l new file mode 100644 index 0000000..ffb9b80 --- /dev/null +++ b/filt_scanner.l @@ -0,0 +1,162 @@ +%{ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + * Ohio University. + * + * --- + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + * ostermann@cs.ohiou.edu + */ + + +#include +#include "tcptrace.h" +#include "filter.h" + +#define yylval filtyylval + +#include "filt_parser.h" + +/* define our own input routine using filter_getc() */ +#define YY_INPUT(buf,result,max_size) \ + { \ + int c = filter_getc(); \ + result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \ + } + +%} + +%% + +[ \t]+ { } /* Just ignore white space */ + +"\n" { return(EOS); } +"+" { return(PLUS); } +"-" { return(MINUS); } +"*" { return(TIMES); } +"/" { return(DIVIDE); } +"%" { return(MOD); } +"(" { return(LPAREN); } +")" { return(RPAREN); } +"<" { return(LESS); } +"<=" { return(LESS_EQ); } +">" { return(GREATER); } +">=" { return(GREATER_EQ); } +"=" { return(EQUAL); } +"==" { return(EQUAL); } /* same as "=" */ +"!=" { return(NEQUAL); } +"!" { return(NOT); } +[nN][oO][tT] { return(NOT); } /* same as "!" */ +[aA][nN][dD] { return(AND); } +-[aA] { return(AND); } /* same as "AND" */ +"&&" { return(AND); } /* same as "AND" */ +[oO][rR] { return(OR); } +-[oO] { return(OR); } /* same as "OR" */ +"||" { return(OR); } /* same as "OR" */ +"|" { return(BOR); } /* bitwise OR */ +"&" { return(BAND); } /* bitwise AND */ + + +[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ { + /* an IPv4 addr */ + yylval.pipaddr = str2ipaddr(yytext); + return(IPADDR); +} + +[0-9a-fA-F]+:[:0-9a-fA-F]*:[0-9a-fA-F]+ { + /* an IPv6 addr */ + yylval.pipaddr = str2ipaddr(yytext); + return(IPADDR); +} + +[0-9]+ { + /* an unsigned integer */ + yylval.unsigned_long = atoi(yytext); + return(UNSIGNED); +} + +-[0-9]+ { + /* a signed integer */ + yylval.signed_long = atoi(yytext); + return(SIGNED); +} +"FALSE" { yylval.unsigned_long = 0; return(UNSIGNED); } +"TRUE" { yylval.unsigned_long = 1; return(UNSIGNED); } + +\"[^\"]*\" { + /* a string */ + yylval.string = strdup(yytext+1); /* make a copy of the string */ + yylval.string[strlen(yylval.string)-1] = '\00'; + return(STRING); +} + +[a-zA-Z_][a-zA-Z_0-9\.]* { + /* a variable (word) */ + yylval.string = strdup(yytext); /* make a copy of the string */ + return(VARIABLE); +} + + +. { + /* if we haven't matched anything yet, then it's illegal */ + fprintf(stderr, "filter scanner: Bad character '%c' (%d decimal)\n", + *yytext, *yytext); + exit(-1); +} + + +%% + +int yywrap(void) +{ + if (0) + unput(0); /* never really called, but shuts up gcc */ + + return(1); +} + diff --git a/filter.c b/filter.c new file mode 100644 index 0000000..748e9c6 --- /dev/null +++ b/filter.c @@ -0,0 +1,1820 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/filter.c,v 5.20 2003/11/19 14:38:02 sdo Exp $"; + + +#include +#include + +#include "filter.h" +#include "filter_vars.h" + + +/* local routines */ +static char *PrintConst(struct filter_node *pf); +static char *PrintVar(struct filter_node *pf); +static void EvalRelopUnsigned(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static void EvalRelopSigned(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static void EvalRelopIpaddr(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static void EvalFilter(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static void EvalRelopString(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static void EvalVariable(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static void EvalConstant(tcp_pair *ptp, struct filter_res *pres, struct filter_node *pf); +static char *PrintFilterInternal(struct filter_node *pf); +static char *Res2Str(struct filter_res *pres); +static struct filter_node *MustBeType(enum vartype var_needed, struct filter_node *pf); +static struct filter_node *LookupVar(char *varname, Bool fclient); +static void HelpFilterVariables(void); + + +/* local globals */ +static char *exprstr = NULL; +static struct filter_node *filter_root = NULL; + +char* +Op2Str( + enum optype op) +{ + switch (op) { + case OP_AND: return("AND"); + case OP_OR: return("OR"); + case OP_GREATER: return(">"); + case OP_GREATER_EQ: return(">="); + case OP_LESS: return("<"); + case OP_LESS_EQ: return("<="); + case OP_EQUAL: return("=="); + case OP_NEQUAL: return("!="); + case OP_PLUS: return("+"); + case OP_MINUS: return("-"); + case OP_TIMES: return("*"); + case OP_DIVIDE: return("/"); + case OP_MOD: return("%"); + case OP_BAND: return("&"); + case OP_BOR: return("|"); + default: return("??"); + } +} + + + + +char* +Vartype2BStr( + enum vartype vartype) +{ + switch (vartype) { + case V_BOOL: return("BOOL"); + case V_STRING: return("STRING"); + + case V_CHAR: + case V_FUNC: + case V_INT: + case V_LLONG: + case V_LONG: + case V_SHORT: return("SIGNED"); + + case V_UCHAR: + case V_UFUNC: + case V_UINT: + case V_ULLONG: + case V_ULONG: + case V_USHORT: return("UNSIGNED"); + + case V_IPADDR: return("IPADDR"); + } + + fprintf(stderr,"Vartype2BStr: Internal error, unknown type %d\n", + vartype); + exit(-1); +} + + +char* +Vartype2Str( + enum vartype vartype) +{ + switch (vartype) { + case V_BOOL: return("BOOL"); + case V_CHAR: return("CHAR"); + case V_INT: return("INT"); + case V_LONG: return("LONG"); + case V_SHORT: return("SHORT"); + case V_STRING: return("STRING"); + case V_UCHAR: return("UCHAR"); + case V_UINT: return("UINT"); + case V_ULONG: return("ULONG"); + case V_USHORT: return("USHORT"); + case V_LLONG: return("LLONG"); + case V_ULLONG: return("ULLONG"); + case V_FUNC: return("FUNC"); + case V_UFUNC: return("UFUNC"); + case V_IPADDR: return("IPADDR"); + } + + fprintf(stderr,"Vartype2Str: Internal error, unknown type %d\n", + vartype); + exit(-1); +} + + + +/**************************************************************/ +/**************************************************************/ +/** **/ +/** The following routines are all for Making filter trees **/ +/** **/ +/**************************************************************/ +/**************************************************************/ + +static struct filter_node * +MustBeType( + enum vartype var_needed, + struct filter_node *pf) +{ + /* if they match, we're done */ + if (pf->vartype == var_needed) + return(pf); + + /* the only conversion we can do is unsigned to signed */ + if ((pf->vartype == V_ULLONG) && (var_needed == V_LLONG)) { + struct filter_node *pf_new; + + pf_new = MakeUnaryNode(OP_SIGNED,pf); + return(pf_new); + } + + /* else it's an error */ + fprintf(stderr,"Filter expression should be type %s, but isn't: ", + Vartype2Str(var_needed)); + PrintFilter(pf); + exit(-1); +} + + + + +struct filter_node * +MakeUnaryNode( + enum optype op, + struct filter_node *pf_in) +{ + struct filter_node *pf_ret = NULL; + struct filter_node *pf1; + + /* walk everybody on the list and copy */ + for (pf1 = pf_in; pf1; pf1=pf1->next_var) { + struct filter_node *pf_new; + + /* type checking */ + if (op == OP_NOT) + pf_in = MustBeType(V_BOOL,pf_in); + + pf_new = MallocZ(sizeof(struct filter_node)); + pf_new->op = op; + pf_new->vartype = pf1->vartype; + pf_new->un.unary.pf = pf1; + + /* add to the linked list of unaries */ + if (pf_ret == NULL) { + pf_ret = pf_new; + } else { + pf_new->next_var = pf_ret; + pf_ret = pf_new; + } + } + + return(pf_ret); +} + + + +static struct filter_node * +MakeDisjunction( + struct filter_node *left, + struct filter_node *right) +{ + struct filter_node *pf; + + /* construct a high-level OR to hook them together */ + pf = MallocZ(sizeof(struct filter_node)); + pf->op = OP_OR; + pf->vartype = V_BOOL; + + /* hook the two opnodes together */ + pf->un.binary.left = left; + pf->un.binary.right = right; + + /* return the OR node */ + return(pf); +} + + +static struct filter_node * +MakeConjunction( + struct filter_node *left, + struct filter_node *right) +{ + struct filter_node *pf; + + /* construct a high-level AND to hook them together */ + pf = MallocZ(sizeof(struct filter_node)); + pf->op = OP_AND; + pf->vartype = V_BOOL; + + /* hook the two opnodes together */ + pf->un.binary.left = left; + pf->un.binary.right = right; + + /* return the OR node */ + return(pf); +} + + +static struct filter_node * +MakeOneBinaryNode( + enum optype op, + struct filter_node *pf_left, + struct filter_node *pf_right) +{ + struct filter_node *pf; + + pf = MallocZ(sizeof(struct filter_node)); + pf->op = op; + + /* type checking */ + switch (op) { + case OP_AND: + case OP_OR: + pf_left = MustBeType(V_BOOL,pf_left); + pf_right = MustBeType(V_BOOL,pf_right); + pf->vartype = V_BOOL; + break; + + case OP_PLUS: + case OP_MINUS: + case OP_TIMES: + case OP_DIVIDE: + case OP_MOD: + case OP_BAND: + case OP_BOR: + if ((pf_left->vartype != V_LLONG) && (pf_left->vartype != V_ULLONG)) { + fprintf(stderr,"Arithmetic operator applied to non-number: "); + PrintFilter(pf_left); + exit(-1); + } + if ((pf_right->vartype != V_LLONG) && (pf_right->vartype != V_ULLONG)) { + fprintf(stderr,"Arithmetic operator applied to non-number: "); + PrintFilter(pf_right); + exit(-1); + } + + /* else, they's both either signed or unsigned */ + if ((pf_left->vartype == V_LLONG) && (pf_right->vartype == V_ULLONG)) { + /* convert right to signed */ + pf_right = MustBeType(V_LLONG,pf_right); + } else if ((pf_left->vartype == V_ULLONG) && (pf_right->vartype == V_LLONG)) { + /* convert left to signed */ + pf_left = MustBeType(V_LLONG,pf_left); + } + + pf->vartype = pf_left->vartype; + break; + + case OP_EQUAL: + case OP_NEQUAL: + case OP_GREATER: + case OP_GREATER_EQ: + case OP_LESS: + case OP_LESS_EQ: + /* IP addresses are special case */ + if ((pf_left->vartype == V_IPADDR) || + (pf_right->vartype == V_IPADDR)) { + /* must BOTH be addresses */ + if ((pf_left->vartype != V_IPADDR) || + (pf_right->vartype != V_IPADDR)) { + fprintf(stderr, + "IPaddreses can only be compared with each other: "); + PrintFilter(pf); + exit(-1); + } + pf->vartype = V_BOOL; + break; + } + + /* Allow STRING variables like hostname, portname to be used as in + * -f'hostname=="masaka.cs.ohiou.edu"' + */ + if ((pf_left->vartype == V_STRING) && (pf_right->vartype == V_STRING)){ + pf->vartype = V_BOOL; + break; + } + + /* ... else, normal numeric stuff */ + if ((pf_left->vartype != V_LLONG) && (pf_left->vartype != V_ULLONG)) { + fprintf(stderr,"Relational operator applied to non-number: "); + PrintFilter(pf_left); + exit(-1); + } + if ((pf_right->vartype != V_LLONG) && (pf_right->vartype != V_ULLONG)) { + fprintf(stderr,"Relational operator applied to non-number: "); + PrintFilter(pf_right); + exit(-1); + } + + /* else, they's both either signed or unsigned */ + if ((pf_left->vartype == V_LLONG) && (pf_right->vartype == V_ULLONG)) { + /* convert right to signed */ + pf_right = MustBeType(V_LLONG,pf_right); + } else if ((pf_left->vartype == V_ULLONG) && (pf_right->vartype == V_LLONG)) { + /* convert left to signed */ + pf_left = MustBeType(V_LLONG,pf_left); + } + + pf->vartype = V_BOOL; + + break; + + default: + fprintf(stderr,"MakeBinaryNode: invalid binary operand type %d (%s)\n", + op, Op2Str(op)); + exit(-1); + } + + /* attach the children */ + pf->un.binary.left = pf_left; + pf->un.binary.right = pf_right; + + return(pf); +} + + + + +struct filter_node * +MakeBinaryNode( + enum optype op, + struct filter_node *pf_left, + struct filter_node *pf_right) +{ + struct filter_node *pf_ret = NULL; + struct filter_node *pf1; + struct filter_node *pf2; + + for (pf1 = pf_left; pf1; pf1=pf1->next_var) { + for (pf2 = pf_right; pf2; pf2=pf2->next_var) { + struct filter_node *pf_new; + /* make one copy */ + pf_new = MakeOneBinaryNode(op,pf1,pf2); + if ((pf1->conjunction) || (pf2->conjunction)) + pf_new->conjunction = TRUE; + + if (debug>1) + printf("MakeBinaryNode: made %s (%c)\n", + Filter2Str(pf_new), + pf_new->conjunction?'c':'d'); + + /* hook together as appropriate */ + switch (op) { + case OP_PLUS: + case OP_MINUS: + case OP_TIMES: + case OP_DIVIDE: + case OP_MOD: + case OP_BAND: + case OP_BOR: + /* just keep a list */ + if (pf_ret == NULL) { + pf_ret = pf_new; + } else { + pf_new->next_var = pf_ret; + pf_ret = pf_new; + } + break; + + case OP_AND: + case OP_OR: + case OP_EQUAL: + case OP_NEQUAL: + case OP_GREATER: + case OP_GREATER_EQ: + case OP_LESS: + case OP_LESS_EQ: + /* terminate the wildcard list by making OR nodes or AND nodes*/ + if (pf_ret == NULL) + pf_ret = pf_new; + else { + if ((pf1->conjunction) || (pf2->conjunction)) + pf_ret = MakeConjunction(pf_ret,pf_new); + else + pf_ret = MakeDisjunction(pf_ret,pf_new); + } + break; + + default: + fprintf(stderr,"MakeBinaryNode: invalid binary operand type %d (%s)\n", + op, Op2Str(op)); + exit(-1); + } + + } + } + + return(pf_ret); +} + + +struct filter_node * +MakeVarNode( + char *varname) +{ + struct filter_node *pf; + + if (strncasecmp(varname,"c_",2) == 0) { + /* just client */ + pf = LookupVar(varname+2,TRUE); + } else if (strncasecmp(varname,"s_",2) == 0) { + /* just server */ + pf = LookupVar(varname+2,FALSE); + } else if (strncasecmp(varname,"b_",2) == 0) { + /* they want a CONjunction, look up BOTH and return a list */ + pf = LookupVar(varname+2,TRUE);/* client */ + pf->next_var = LookupVar(varname+2,FALSE); /* server */ + pf->conjunction = pf->next_var->conjunction = TRUE; + } else if (strncasecmp(varname,"e_",2) == 0) { + /* they want a DISjunction, look up BOTH and return a list */ + pf = LookupVar(varname+2,TRUE);/* client */ + pf->next_var = LookupVar(varname+2,FALSE); /* server */ + } else { + /* look up BOTH and return a list (same as e_) */ + pf = LookupVar(varname,TRUE);/* client */ + pf->next_var = LookupVar(varname,FALSE); /* server */ + } + + return(pf); +} + + +struct filter_node * +MakeStringConstNode( + char *val) +{ + struct filter_node *pf; + + pf = MallocZ(sizeof(struct filter_node)); + + pf->op = OP_CONSTANT; + pf->vartype = V_STRING; + pf->un.constant.string = val; + + return(pf); +} + +struct filter_node * +MakeBoolConstNode( + Bool val) +{ + struct filter_node *pf; + + pf = MallocZ(sizeof(struct filter_node)); + + pf->vartype = V_BOOL; + pf->un.constant.bool = val; + + return(pf); +} + + +struct filter_node * +MakeSignedConstNode( + llong val) +{ + struct filter_node *pf; + + pf = MallocZ(sizeof(struct filter_node)); + + pf->op = OP_CONSTANT; + pf->vartype = V_LLONG; + pf->un.constant.longint = val; + + return(pf); +} + + +struct filter_node * +MakeUnsignedConstNode( + u_llong val) +{ + struct filter_node *pf; + + pf = MallocZ(sizeof(struct filter_node)); + + pf->op = OP_CONSTANT; + pf->vartype = V_ULLONG; + pf->un.constant.u_longint = val; + + return(pf); +} + +struct filter_node * +MakeIPaddrConstNode( + ipaddr *pipaddr) +{ + struct filter_node *pf; + + pf = MallocZ(sizeof(struct filter_node)); + + pf->op = OP_CONSTANT; + pf->vartype = V_IPADDR; + pf->un.constant.pipaddr = pipaddr; + + return(pf); +} + + +/**************************************************************/ +/**************************************************************/ +/** **/ +/** The folloing routines are all for PRINTING filter trees **/ +/** **/ +/**************************************************************/ +/**************************************************************/ + +static char * +PrintConst( + struct filter_node *pf) +{ + char buf[100]; + + /* for constants */ + switch (pf->vartype) { + case V_ULLONG: + if (debug) + snprintf(buf,sizeof(buf),"ULLONG(%" FS_ULL ")", + pf->un.constant.u_longint); + else + snprintf(buf,sizeof(buf),"%" FS_ULL,pf->un.constant.u_longint); + break; + case V_LLONG: + if (debug) + snprintf(buf,sizeof(buf),"LLONG(%" FS_LL ")", pf->un.constant.longint); + else + snprintf(buf,sizeof(buf),"%" FS_LL, pf->un.constant.longint); + break; + case V_STRING: + if (debug) + snprintf(buf,sizeof(buf),"STRING(%s)",pf->un.constant.string); + else + snprintf(buf,sizeof(buf),"%s",pf->un.constant.string); + break; + case V_BOOL: + if (debug) + snprintf(buf,sizeof(buf),"BOOL(%s)", BOOL2STR(pf->un.constant.bool)); + else + snprintf(buf,sizeof(buf),"%s", BOOL2STR(pf->un.constant.bool)); + break; + case V_IPADDR: + if (debug) + snprintf(buf,sizeof(buf),"IPADDR(%s)", HostAddr(*pf->un.constant.pipaddr)); + else + snprintf(buf,sizeof(buf),"%s", HostAddr(*pf->un.constant.pipaddr)); + break; + default: { + fprintf(stderr,"PrintConst: unknown constant type %d (%s)\n", + pf->vartype, Vartype2Str(pf->vartype)); + exit(-1); + } + } + + /* small memory leak, but it's just done once for debugging... */ + return(strdup(buf)); +} + + +static char * +PrintVar( + struct filter_node *pf) +{ + char buf[100]; + + + if (debug) + snprintf(buf,sizeof(buf),"VAR(%s,'%s%s',%lu,%c)", + Vartype2Str(pf->vartype), + pf->un.variable.fclient?"c_":"s_", + pf->un.variable.name, + pf->un.variable.offset, + pf->conjunction?'c':'d'); + else + snprintf(buf,sizeof(buf),"%s%s", + pf->un.variable.fclient?"c_":"s_", + pf->un.variable.name); + + /* small memory leak, but it's just done once for debugging... */ + return(strdup(buf)); +} + + + + + +/**************************************************************/ +/**************************************************************/ +/** **/ +/** The folloing routines are all for access from tcptrace **/ +/** **/ +/**************************************************************/ +/**************************************************************/ + +void +ParseFilter( + char *expr) +{ + exprstr = strdup(expr); + + if (debug) + printf("Parsefilter('%s') called\n", expr); + + if (debug > 1) + filtyydebug = 1; + + if (filtyyparse() == 0) { + /* it worked */ + printf("Output filter: %s\n", Filter2Str(filter_root)); + } else { + /* parsing failed */ + fprintf(stderr,"Filter parsing failed\n"); + exit(-1); + } + + return; +} + +static char * +Res2Str( + struct filter_res *pres) +{ + char buf[100]; + + /* for constants */ + switch (pres->vartype) { + case V_ULLONG: snprintf(buf,sizeof(buf),"ULLONG(%" FS_ULL ")",pres->val.u_longint); break; + case V_LLONG: snprintf(buf,sizeof(buf),"LLONG(%" FS_LL ")",pres->val.longint); break; + case V_STRING: snprintf(buf,sizeof(buf),"STRING(%s)",pres->val.string); break; + case V_BOOL: snprintf(buf,sizeof(buf),"BOOL(%s)", BOOL2STR(pres->val.bool)); break; + default: { + fprintf(stderr,"Res2Str: unknown constant type %d (%s)\n", + pres->vartype, Vartype2Str(pres->vartype)); + exit(-1); + } + } + + /* small memory leak, but it's just done once for debugging... */ + return(strdup(buf)); +} + + +void +PrintFilter( + struct filter_node *pf) +{ + printf("%s\n", PrintFilterInternal(pf)); +} + + +char * +Filter2Str( + struct filter_node *pf) +{ + return(PrintFilterInternal(pf)); +} + + +static char * +PrintFilterInternal( + struct filter_node *pf) +{ + /* I'm tolerating a memory leak here because it's mostly just for debugging */ + char buf[1024]; + + if (!pf) + return(""); + + switch(pf->op) { + case OP_CONSTANT: + snprintf(buf,sizeof(buf),"%s", PrintConst(pf)); + return(strdup(buf)); + + case OP_VARIABLE: + snprintf(buf,sizeof(buf),"%s", PrintVar(pf)); + return(strdup(buf)); + + case OP_AND: + case OP_OR: + case OP_EQUAL: + case OP_NEQUAL: + case OP_GREATER: + case OP_GREATER_EQ: + case OP_LESS: + case OP_LESS_EQ: + case OP_PLUS: + case OP_MINUS: + case OP_TIMES: + case OP_DIVIDE: + case OP_MOD: + case OP_BAND: + case OP_BOR: + snprintf(buf,sizeof(buf),"(%s%s%s)", + PrintFilterInternal(pf->un.binary.left), + Op2Str(pf->op), + PrintFilterInternal(pf->un.binary.right)); + return(strdup(buf)); + + case OP_NOT: + snprintf(buf,sizeof(buf)," NOT(%s)", + PrintFilterInternal(pf->un.unary.pf)); + return(strdup(buf)); + + case OP_SIGNED: + snprintf(buf,sizeof(buf)," SIGNED(%s)", + PrintFilterInternal(pf->un.unary.pf)); + return(strdup(buf)); + + default: + fprintf(stderr,"PrintFilter: unknown op %d (%s)\n", + pf->op, Op2Str(pf->op)); + exit(-1); + } +} + + + +static struct filter_node * +LookupVar( + char *varname, + Bool fclient) +{ + int i; + struct filter_node *pf; + void *ptr; + + for (i=0; i < NUM_FILTERS; ++i) { + struct filter_line *pfl = &filters[i]; + if (strcasecmp(varname,pfl->varname) == 0) { + /* we found it */ + pf = MallocZ(sizeof(struct filter_node)); + pf->op = OP_VARIABLE; + switch (pfl->vartype) { + case V_CHAR: + case V_INT: + case V_LLONG: + case V_LONG: + case V_SHORT: + case V_FUNC: + pf->vartype = V_LLONG; /* we'll promote on the fly */ + break; + case V_UCHAR: + case V_UINT: + case V_ULLONG: + case V_ULONG: + case V_USHORT: + case V_UFUNC: + pf->vartype = V_ULLONG; /* we'll promote on the fly */ + break; + case V_BOOL: + pf->vartype = V_BOOL; + break; + case V_IPADDR: + pf->vartype = V_IPADDR; + break; + case V_STRING: + pf->vartype = V_STRING; + break; + default: + pf->vartype = pf->vartype; + } + pf->un.variable.realtype = pfl->vartype; + pf->un.variable.name = strdup(varname); + if (fclient) + ptr = (void *)pfl->cl_addr; + else + ptr = (void *)pfl->sv_addr; + if ((pfl->vartype == V_FUNC) || (pfl->vartype == V_UFUNC)) + pf->un.variable.offset = (u_long)ptr; /* FIXME? could still be a pointer bug here! */ + else + pf->un.variable.offset = (char *)ptr - (char *)&ptp_dummy; + pf->un.variable.fclient = fclient; + + return(pf); + } + } + + /* not found */ + fprintf(stderr,"Variable \"%s\" not found\n", varname); + + HelpFilterVariables(); + + exit(-1); +} + +static u_llong +Ptr2Signed( + tcp_pair *ptp, + enum vartype vartype, + void *ptr) +{ + u_llong val; + + switch (vartype) { + case V_LLONG: val = *((llong *) ptr); break; + case V_LONG: val = *((long *) ptr); break; + case V_INT: val = *((int *) ptr); break; + case V_SHORT: val = *((short *) ptr); break; + case V_CHAR: val = *((char *) ptr); break; + default: { + fprintf(stderr, + "Ptr2Signed: can't convert type %s to signed\n", + Vartype2Str(vartype)); + exit(-1); + } + } + return(val); +} + +static u_llong +Ptr2Unsigned( + tcp_pair *ptp, + enum vartype vartype, + void *ptr) +{ + u_llong val; + + switch (vartype) { + case V_ULLONG: val = *((u_llong *) ptr); break; + case V_ULONG: val = *((u_long *) ptr); break; + case V_UINT: val = *((u_int *) ptr); break; + case V_USHORT: val = *((u_short *) ptr); break; + case V_UCHAR: val = *((u_char *) ptr); break; + case V_BOOL: val = *((Bool *) ptr)==TRUE; break; + default: { + fprintf(stderr, + "Ptr2Unsigned: can't convert variable type %s to unsigned\n", + Vartype2Str(vartype)); + exit(-1); + } + + } + return(val); +} + + + +static char * +Var2String( + tcp_pair *ptp, + struct filter_node *pf) +{ + void *ptr; + char *str; + + ptr = (char *)ptp + pf->un.variable.offset; + str = *((char **)ptr); + + if (str == NULL) + str = ""; + + if (debug) + printf("Var2String returns 0x%p (%s)\n", + str, str); + + return(str); +} + + +static u_long +Var2Signed( + tcp_pair *ptp, + struct filter_node *pf) +{ + void *ptr; + + ptr = (char *)ptp + pf->un.variable.offset; + + switch (pf->un.variable.realtype) { + case V_LLONG: return(Ptr2Signed(ptp,V_LLONG,ptr)); + case V_LONG: return(Ptr2Signed(ptp,V_LONG,ptr)); + case V_INT: return(Ptr2Signed(ptp,V_INT,ptr)); + case V_SHORT: return(Ptr2Signed(ptp,V_SHORT,ptr)); + case V_CHAR: return(Ptr2Signed(ptp,V_CHAR,ptr)); + case V_FUNC: + { /* call the function */ + llong (*pfunc)(tcp_pair *ptp); + pfunc = (llong (*)(tcp_pair *))(pf->un.variable.offset); + return((*pfunc)(ptp)); + } + default: { + fprintf(stderr, + "Filter eval error, can't convert variable type %s to signed\n", + Vartype2Str(pf->un.variable.realtype)); + exit(-1); + } + } +} + + +static ipaddr * +Var2Ipaddr( + tcp_pair *ptp, + struct filter_node *pf) +{ + void *ptr; + + ptr = (char *)ptp + pf->un.variable.offset; + + switch (pf->un.variable.realtype) { + case V_IPADDR: return(ptr); + default: { + fprintf(stderr, + "Filter eval error, can't convert variable type %s to ipaddr\n", + Vartype2Str(pf->un.variable.realtype)); + exit(-1); + } + } +} + + + +static u_long +Var2Unsigned( + tcp_pair *ptp, + struct filter_node *pf) +{ + void *ptr; + + ptr = (char *)ptp + pf->un.variable.offset; + + switch (pf->un.variable.realtype) { + case V_ULLONG: return(Ptr2Unsigned(ptp,V_ULLONG,ptr)); + case V_ULONG: return(Ptr2Unsigned(ptp,V_ULONG,ptr)); + case V_UINT: return(Ptr2Unsigned(ptp,V_UINT,ptr)); + case V_USHORT: return(Ptr2Unsigned(ptp,V_USHORT,ptr)); + case V_UCHAR: return(Ptr2Unsigned(ptp,V_UCHAR,ptr)); + case V_BOOL: return(Ptr2Unsigned(ptp,V_BOOL,ptr)); + case V_UFUNC: + { /* call the function */ + u_llong (*pfunc)(tcp_pair *ptp); + pfunc = (u_llong (*)(tcp_pair *))(pf->un.variable.offset); + return((*pfunc)(ptp)); + } + default: { + fprintf(stderr, + "Filter eval error, can't convert variable type %s to unsigned\n", + Vartype2Str(pf->un.variable.realtype)); + exit(-1); + } + } +} + + +static u_llong +Const2Unsigned( + struct filter_node *pf) +{ + switch (pf->vartype) { + case V_ULLONG: return((u_llong) pf->un.constant.u_longint); + case V_LLONG: return((u_llong) pf->un.constant.longint); + default: { + fprintf(stderr, + "Filter eval error, can't convert constant type %d (%s) to unsigned\n", + pf->vartype, Vartype2Str(pf->vartype)); + exit(-1); + } + } +} + + +static llong +Const2Signed( + struct filter_node *pf) +{ + switch (pf->vartype) { + case V_ULLONG: return((llong) pf->un.constant.u_longint); + case V_LLONG: return((llong) pf->un.constant.longint); + default: { + fprintf(stderr, + "Filter eval error, can't convert constant type %d (%s) to signed\n", + pf->vartype, Vartype2Str(pf->vartype)); + exit(-1); + } + } +} + + +static ipaddr * +Const2Ipaddr( + struct filter_node *pf) +{ + switch (pf->vartype) { + case V_IPADDR: return(pf->un.constant.pipaddr); + default: { + fprintf(stderr, + "Filter eval error, can't convert constant type %d (%s) to ipaddr\n", + pf->vartype, Vartype2Str(pf->vartype)); + exit(-1); + } + } +} + + +static void +EvalMathopUnsigned( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + u_llong varl; + u_llong varr; + struct filter_res res; + u_llong ret; + + /* grab left hand side */ + EvalFilter(ptp,&res,pf->un.binary.left); + varl = res.val.u_longint; + + /* grab right hand side */ + EvalFilter(ptp,&res,pf->un.binary.right); + varr = res.val.u_longint; + + /* perform the operation */ + switch (pf->op) { + case OP_PLUS: ret = (varl + varr); break; + case OP_MINUS: ret = (varl - varr); break; + case OP_TIMES: ret = (varl * varr); break; + case OP_DIVIDE: ret = (varl / varr); break; + case OP_MOD: ret = (varl % varr); break; + case OP_BAND: ret = (varl & varr); break; + case OP_BOR: ret = (varl | varr); break; + default: { + fprintf(stderr,"EvalMathodUnsigned: unsupported binary op: %d (%s)\n", + pf->op, Op2Str(pf->op)); + exit(-1); + } + } + + /* fill in the answer */ + pres->vartype = V_ULLONG; + pres->val.u_longint = ret; + + if (debug) + printf("EvalMathopUnsigned %" FS_ULL " %s %" FS_ULL " returns %s\n", + + varl, Op2Str(pf->op), varr, + Res2Str(pres)); + + + return; +} + + + +static void +EvalMathopSigned( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + llong varl; + llong varr; + struct filter_res res; + llong ret; + + /* grab left hand side */ + EvalFilter(ptp,&res,pf->un.binary.left); + varl = res.val.longint; + + /* grab right hand side */ + EvalFilter(ptp,&res,pf->un.binary.right); + varr = res.val.longint; + + /* perform the operation */ + switch (pf->op) { + case OP_PLUS: ret = (varl + varr); break; + case OP_MINUS: ret = (varl - varr); break; + case OP_TIMES: ret = (varl * varr); break; + case OP_DIVIDE: ret = (varl / varr); break; + case OP_MOD: ret = (varl % varr); break; + case OP_BAND: ret = (varl & varr); break; + case OP_BOR: ret = (varl | varr); break; + default: { + fprintf(stderr,"EvalMathodSigned: unsupported binary op: %d (%s)\n", + pf->op, Op2Str(pf->op)); + exit(-1); + } + } + + /* fill in the answer */ + pres->vartype = V_LLONG; + pres->val.longint = ret; + + if (debug) + printf("EvalMathopSigned %" FS_LL " %s %" FS_LL " returns %s\n", + varl, Op2Str(pf->op), varr, + Res2Str(pres)); + + + return; +} + + + +/* evaluate a leaf-node UNSigned NUMBER */ +static void +EvalRelopUnsigned( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + u_llong varl; + u_llong varr; + struct filter_res res; + Bool ret; + + /* grab left hand side */ + EvalFilter(ptp,&res,pf->un.binary.left); + varl = res.val.u_longint; + + /* grab right hand side */ + EvalFilter(ptp,&res,pf->un.binary.right); + varr = res.val.u_longint; + + /* perform the operation */ + switch (pf->op) { + case OP_GREATER: ret = (varl > varr); break; + case OP_GREATER_EQ: ret = (varl >= varr); break; + case OP_LESS: ret = (varl < varr); break; + case OP_LESS_EQ: ret = (varl <= varr); break; + case OP_EQUAL: ret = (varl == varr); break; + case OP_NEQUAL: ret = (varl != varr); break; + default: { + fprintf(stderr,"EvalUnsigned: unsupported binary op: %d (%s)\n", + pf->op, Op2Str(pf->op)); + exit(-1); + } + } + + /* fill in the answer */ + pres->vartype = V_BOOL; + pres->val.bool = ret; + + if (debug) + printf("EvalUnsigned %" FS_ULL " %s %" FS_ULL " returns %s\n", + varl, Op2Str(pf->op), varr, + BOOL2STR(ret)); + + + return; +} + + + +/* evaluate a leaf-node Signed NUMBER */ +static void +EvalRelopSigned( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + llong varl; + llong varr; + struct filter_res res; + Bool ret; + + /* grab left hand side */ + EvalFilter(ptp,&res,pf->un.binary.left); + varl = res.val.longint; + + /* grab right hand side */ + EvalFilter(ptp,&res,pf->un.binary.right); + varr = res.val.longint; + + switch (pf->op) { + case OP_GREATER: ret = (varl > varr); break; + case OP_GREATER_EQ: ret = (varl >= varr); break; + case OP_LESS: ret = (varl < varr); break; + case OP_LESS_EQ: ret = (varl <= varr); break; + case OP_EQUAL: ret = (varl == varr); break; + case OP_NEQUAL: ret = (varl != varr); break; + default: { + fprintf(stderr,"EvalSigned: internal error\n"); + exit(-1); + } + } + + /* fill in the answer */ + pres->vartype = V_BOOL; + pres->val.bool = ret; + + if (debug) + printf("EvalSigned %" FS_LL " %s %" FS_LL " returns %s\n", + varl, Op2Str(pf->op), varr, + BOOL2STR(ret)); + + return; +} + + + + +/* evaluate a leaf-node IPaddress */ +static void +EvalRelopIpaddr( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + ipaddr *varl; + ipaddr *varr; + struct filter_res res; + int result; + Bool ret; + + /* grab left hand side */ + EvalFilter(ptp,&res,pf->un.binary.left); + varl = res.val.pipaddr; + + /* grab right hand side */ + EvalFilter(ptp,&res,pf->un.binary.right); + varr = res.val.pipaddr; + + /* compare the 2 addresses */ + result = IPcmp(varl,varr); + + /* always evaluates FALSE unless both same type */ + if (result == -2) { + if (debug) { + printf("EvalIpaddr %s", HostAddr(*varl)); + printf("%s fails, different addr types\n", + HostAddr(*varr)); + } + ret = FALSE; + } else { + switch (pf->op) { + case OP_GREATER: ret = (result > 0); break; + case OP_GREATER_EQ: ret = (result >= 0); break; + case OP_LESS: ret = (result < 0); break; + case OP_LESS_EQ: ret = (result <= 0); break; + case OP_EQUAL: ret = (result == 0); break; + case OP_NEQUAL: ret = (result != 0); break; + default: { + fprintf(stderr,"EvalIpaddr: internal error\n"); + exit(-1); + } + } + } + + /* fill in the answer */ + pres->vartype = V_BOOL; + pres->val.bool = ret; + + if (debug) { + printf("EvalIpaddr %s %s", HostAddr(*varl), Op2Str(pf->op)); + printf("%s returns %s\n", HostAddr(*varr), BOOL2STR(ret)); + } + + return; + } + + + + +/* evaluate a leaf-node string */ +static void +EvalRelopString( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + char *varl; + char *varr; + struct filter_res res; + Bool ret; + int cmp; + + /* grab left hand side */ + EvalFilter(ptp,&res,pf->un.binary.left); + varl = res.val.string; + + /* grab right hand side */ + EvalFilter(ptp,&res,pf->un.binary.right); + varr = res.val.string; + + /* compare the strings */ + cmp = strcmp(varl,varr); + + switch (pf->op) { + case OP_GREATER: ret = (cmp > 0); break; + case OP_GREATER_EQ: ret = (cmp >= 0); break; + case OP_LESS: ret = (cmp < 0); break; + case OP_LESS_EQ: ret = (cmp <= 0); break; + case OP_EQUAL: ret = (cmp == 0); break; + case OP_NEQUAL: ret = (cmp != 0); break; + default: { + fprintf(stderr,"EvalRelopString: unsupported operating %d (%s)\n", + pf->op, Op2Str(pf->op)); + exit(-1); + } + } + + /* fill in the answer */ + pres->vartype = V_BOOL; + pres->val.bool = ret; + + if (debug) + printf("EvalString '%s' %s '%s' returns %s\n", + varl, Op2Str(pf->op), varr, + BOOL2STR(ret)); + + return; +} + + +static void +EvalVariable( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + switch (pf->vartype) { + case V_CHAR: + case V_SHORT: + case V_INT: + case V_LONG: + case V_LLONG: + pres->vartype = V_LLONG; + pres->val.u_longint = Var2Signed(ptp,pf); + break; + + case V_UCHAR: + case V_USHORT: + case V_UINT: + case V_ULONG: + case V_ULLONG: + pres->vartype = V_ULLONG; + pres->val.longint = Var2Unsigned(ptp,pf); + break; + + case V_STRING: + pres->vartype = V_STRING; + pres->val.string = Var2String(ptp,pf); + break; + + case V_BOOL: + pres->vartype = V_BOOL; + pres->val.bool = (Var2Unsigned(ptp,pf) != 0); + break; + + case V_IPADDR: + pres->vartype = V_IPADDR; + pres->val.pipaddr = Var2Ipaddr(ptp,pf); + break; + + default: + fprintf(stderr,"EvalVariable: unknown var type %d (%s)\n", + pf->vartype, Vartype2Str(pf->vartype)); + exit(-1); + } + +} + + + +static void +EvalConstant( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + switch (pf->vartype) { + case V_CHAR: + case V_SHORT: + case V_INT: + case V_LONG: + case V_LLONG: + pres->vartype = V_LLONG; + pres->val.u_longint = Const2Signed(pf); + break; + + case V_UCHAR: + case V_USHORT: + case V_UINT: + case V_ULONG: + case V_ULLONG: + pres->vartype = V_LLONG; + pres->val.longint = Const2Unsigned(pf); + break; + + case V_STRING: + pres->vartype = V_STRING; + pres->val.string = pf->un.constant.string; + break; + + case V_BOOL: + pres->vartype = V_BOOL; + pres->val.bool = (Var2Unsigned(ptp,pf) != 0); + break; + + case V_IPADDR: + pres->vartype = V_IPADDR; + pres->val.pipaddr = Const2Ipaddr(pf); + break; + + default: + fprintf(stderr,"EvalConstant: unknown var type %d (%s)\n", + pf->vartype, Vartype2Str(pf->vartype)); + } + +} + + + + +static void +EvalFilter( + tcp_pair *ptp, + struct filter_res *pres, + struct filter_node *pf) +{ + struct filter_res res; + + if (!pf) { + fprintf(stderr,"EvalFilter called with NULL!!!\n"); + exit(-1); + } + + /* variables are easy */ + if (pf->op == OP_VARIABLE) { + EvalVariable(ptp,pres,pf); + return; + } + + /* constants are easy */ + if (pf->op == OP_CONSTANT) { + EvalConstant(ptp,pres,pf); + return; + } + + switch (pf->op) { + case OP_EQUAL: + case OP_NEQUAL: + case OP_GREATER: + case OP_GREATER_EQ: + case OP_LESS: + case OP_LESS_EQ: + if (pf->un.binary.left->vartype == V_ULLONG) { + EvalRelopUnsigned(ptp,&res,pf); + pres->vartype = V_BOOL; + pres->val.bool = res.val.bool; + } else if (pf->un.binary.left->vartype == V_LLONG) { + EvalRelopSigned(ptp,&res,pf); + pres->vartype = V_BOOL; + pres->val.bool = res.val.bool; + } else if (pf->un.binary.left->vartype == V_STRING) { + EvalRelopString(ptp,&res,pf); + pres->vartype = V_LLONG; + pres->val.longint = res.val.longint; + } else if (pf->un.binary.left->vartype == V_IPADDR) { + EvalRelopIpaddr(ptp,&res,pf); + pres->vartype = V_BOOL; + pres->val.bool = res.val.bool; + } else { + fprintf(stderr, + "EvalFilter: binary op %d (%s) not supported on data type %d (%s)\n", + pf->op, Op2Str(pf->op), + pf->vartype, Vartype2Str(pf->un.binary.left->vartype)); + exit(-1); + } + break; + + case OP_PLUS: + case OP_MINUS: + case OP_TIMES: + case OP_DIVIDE: + case OP_MOD: + case OP_BAND: + case OP_BOR: + if (pf->un.binary.left->vartype == V_ULLONG) { + EvalMathopUnsigned(ptp,&res,pf); + pres->vartype = V_ULLONG; + pres->val.u_longint = res.val.u_longint; + } else if (pf->un.binary.left->vartype == V_LLONG) { + EvalMathopSigned(ptp,&res,pf); + pres->vartype = V_LLONG; + pres->val.longint = res.val.longint; + } else { + fprintf(stderr, + "EvalFilter: binary op %d (%s) not supported on data type %d (%s)\n", + pf->op, Op2Str(pf->op), + pf->vartype, Vartype2Str(pf->un.binary.left->vartype)); + exit(-1); + } + break; + + case OP_AND: + case OP_OR: + if (pf->vartype == V_BOOL) { + struct filter_res res1; + struct filter_res res2; + Bool ret; + if (pf->op == OP_OR) { + EvalFilter(ptp,&res1,pf->un.binary.left); + EvalFilter(ptp,&res2,pf->un.binary.right); + ret = res1.val.bool || res2.val.bool; + } else { + EvalFilter(ptp,&res1,pf->un.binary.left); + EvalFilter(ptp,&res2,pf->un.binary.right); + ret = res1.val.bool && res2.val.bool; + } + pres->vartype = V_BOOL; + pres->val.bool = ret; + } else { + fprintf(stderr, + "EvalFilter: binary op %d (%s) not supported on data type %d (%s)\n", + pf->op, Op2Str(pf->op), + pf->vartype, Vartype2Str(pf->un.binary.left->vartype)); + exit(-1); + } + break; + + case OP_NOT: + if (pf->vartype == V_BOOL) { + EvalFilter(ptp,&res,pf->un.unary.pf); + pres->vartype = V_BOOL; + pres->val.bool = !res.val.bool; + } else { + fprintf(stderr, + "EvalFilter: unary operation %d (%s) not supported on data type %d (%s)\n", + pf->op, Op2Str(pf->op), + pf->vartype, Vartype2Str(pf->vartype)); + exit(-1); + } + break; + + default: + fprintf(stderr, + "EvalFilter: operation %d (%s) not supported on data type %d (%s)\n", + pf->op,Op2Str(pf->op), + pf->vartype,Vartype2Str(pf->vartype)); + exit(-1); + } + + if (debug) + printf("EvalFilter('%s') returns %s\n", + Filter2Str(pf),Res2Str(pres)); + + return; +} + + + + +Bool +PassesFilter( + tcp_pair *ptp) +{ + struct filter_res res; + Bool ret; + + /* recurse down the tree */ + EvalFilter(ptp,&res,filter_root); + ret = res.val.bool; + + if (debug) + printf("PassesFilter('%s<->%s') returns %s\n", + ptp->a_endpoint, ptp->b_endpoint, + BOOL2STR(ret)); + + return(ret); +} + + +static void +HelpFilterVariables(void) +{ + int i; + + fprintf(stderr,"Filter Variables:\n"); + + fprintf(stderr," variable name type description\n"); + fprintf(stderr," ----------------- -------- -----------------------\n"); + + for (i=0; i < NUM_FILTERS; ++i) { + struct filter_line *pf = &filters[i]; + + fprintf(stderr," %-17s %-8s %s\n", + pf->varname, Vartype2BStr(pf->vartype),pf->descr); + } +} + + + +void +HelpFilter(void) +{ + HelpFilterVariables(); + + fprintf(stderr,"\n\ +Filter Syntax:\n\ + numbers:\n\ + variables:\n\ + anything from the above table with a prefix of either 'c_' meaning\n\ + the one for the Client or 's_' meaning the value for the Server. If\n\ + the prefix is omitted, it means \"either one\" (effectively becoming\n\ + \"c_VAR OR s_VAR)\"). As shorthand for a conjunction instead, you can\n\ + use the syntax 'b_' (as in b_mss>100), meaning 'B'oth, (effectively\n\ + becoming \"c_VAR AND s_VAR)\"). For completeness, 'e_' means 'E'ither,\n\ + which is the normal default with no prefix.\n\ + constant:\n\ + strings: anything in double quotes\n\ + booleans: TRUE FALSE\n\ + numbers: signed or unsigned constants\n\ + arithmetic operations: \n\ + any of the operators + - * / %% \n\ + performed on 'numbers'. Normal operator precedence\n\ + is maintained (or use parens)\n\ + relational operators\n\ + any of < > = != >= <= applied to 'numbers'\n\ + boolean operators\n\ + AND, OR, NOT applied to the relational operators above\n\ + misc\n\ + use parens if you're not sure of the precedence\n\ + use parens anyway, you might be smarter than I am! :-)\n\ + you'll probably need to put the '-fexpr' expression in single quotes\n\ + matched connection numbers are saved in file %s for later processing\n\ + with '-o%s' (for graphing, for example). This is helpful, because\n\ + all the work is done in one pass of the file, so if you graph while\n\ + using a filter, you'll get ALL graphs, not just the ones you want.\n\ + Just filter on a first pass, then use the \"-oPF\" flag with graphing\n\ + on the second pass\n\ + most common synonyms for NOT, AND, and OR also work (!,&&,||,-a,-o)\n\ + (for those of us with very poor memories\n\ +Examples\n\ + tcptrace '-fsegs>10' file\n\ + tcptrace '-fc_segs>10 OR s_segs>20 ' file\n\ + tcptrace '-f c_segs+10 > s_segs ' file\n\ + tcptrace -f'thruput>10000 and segs > 100' file\n\ + tcptrace '-fb_segs>10' file\n\ +", PASS_FILTER_FILENAME, PASS_FILTER_FILENAME); +} + + +void +InstallFilter( + struct filter_node *root) +{ + /* result MUST be boolean */ + if (root->vartype != V_BOOL) { + fprintf(stderr,"Filter expression is not boolean: %s\n", + Filter2Str(root)); + exit(-1); + } + filter_root = root; +} + + + +int +filter_getc() +{ + static char *pinput = NULL; + int ch; + + if (pinput == NULL) + pinput = exprstr; + + if (*pinput == '\00') { + static int doneyet = 0; + if (++doneyet>1) { + if (debug > 4) + printf("filter_getc() returns EOF\n"); + return(EOF); + } else { + if (debug > 4) + printf("filter_getc() returns newline\n"); + return('\n'); + } + } + + ch = *pinput++; + + if (debug > 4) + printf("filter_getc() returns char '%c'\n", ch); + + return(ch); +} + + + + +/**************************************************************/ +/**************************************************************/ +/** **/ +/** The following routines are for calculated values **/ +/** **/ +/**************************************************************/ +/**************************************************************/ +static u_llong +VFuncTput( + tcb *ptcb) +{ + tcp_pair *ptp = ptcb->ptp; + u_llong tput; + double tput_f; + double etime; + etime = elapsed(ptp->first_time,ptp->last_time); + + etime /= 1000000.0; /* convert to seconds */ + + if (etime == 0.0) + return(0); + + tput_f = (double)(ptcb->unique_bytes) / etime; + tput = (u_llong)(tput_f+0.5); + + if (debug) + printf("VFuncTput(%s<->%s) = %" FS_ULL "\n", + ptcb->ptp->a_endpoint, + ptcb->ptp->b_endpoint, + tput); + + return(tput); +} + +u_llong +VFuncClntTput( + tcp_pair *ptp) +{ + return(VFuncTput(&ptp->a2b)); +} + +u_llong +VFuncServTput( + tcp_pair *ptp) +{ + return(VFuncTput(&ptp->b2a)); +} + diff --git a/filter.h b/filter.h new file mode 100644 index 0000000..97b181e --- /dev/null +++ b/filter.h @@ -0,0 +1,205 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_filter[] = + "@(#)$Header: /usr/local/cvs/tcptrace/filter.h,v 5.8 2003/11/19 14:38:06 sdo Exp $"; + + +/* all of the variable types that we understand */ +enum vartype { + V_ULONG = 1, + V_LONG = 2, + V_UINT = 3, + V_INT = 4, + V_USHORT = 5, + V_SHORT = 6, + V_UCHAR = 7, + V_CHAR = 8, + V_BOOL = 9, + V_STRING = 10, + V_ULLONG = 11, + V_LLONG = 12, + V_IPADDR = 13, + + /* functions */ + V_FUNC =14, /* function returning unsigned */ + V_UFUNC =15 /* function returning signed */ +}; + + + +/* all of the operations that we understand */ +enum optype { + /* just a constant */ + OP_CONSTANT = 101, + + /* a variable */ + OP_VARIABLE = 102, + + /* BINARY OPs */ + OP_AND = 103, + OP_OR = 104, + OP_EQUAL = 105, + OP_NEQUAL = 106, + OP_GREATER = 107, + OP_GREATER_EQ = 108, + OP_LESS = 109, + OP_LESS_EQ = 110, + + /* Unary OPs */ + OP_NOT = 111, + OP_SIGNED = 112, /* convert unsigned to signed */ + + /* binary arithmetic */ + OP_PLUS = 113, + OP_MINUS = 114, + OP_TIMES = 115, + OP_DIVIDE = 116, + OP_MOD = 117, + + /* bitwise arithmetic */ + OP_BAND = 118, + OP_BOR = 119 +}; + + +/* Constant -- just a big union based on the type */ +union Constant { + u_llong u_longint; + llong longint; + Bool bool; + char *string; + ipaddr *pipaddr; +}; + +/* Variable - keep the name and offset within a tcp_pair */ +struct Variable { + char *name; + u_long offset; + Bool fclient; /* from the client or server side? */ + enum vartype realtype; +}; + +/* Binary - binary operation */ +struct Binary { + struct filter_node *left; + struct filter_node *right; +}; + +/* Unary - unary operations */ +struct Unary { + struct filter_node *pf; +}; + + +struct filter_node { + enum optype op; /* node type */ + enum vartype vartype; /* type of the result */ + union { + struct Unary unary; + struct Binary binary; + struct Variable variable; + union Constant constant; + } un; + Bool conjunction; + struct filter_node *next_var; /* for wildcard variable matches */ +}; + + +/* the result of executing a filter node */ +struct filter_res { + enum vartype vartype; + union Constant val; +}; + + +/* just a big table of things that we can filter on */ +struct filter_line { + char *varname; /* name of the variable to match */ + enum vartype vartype; /* type of the variable */ + void *cl_addr; /* address when in client */ + void *sv_addr; /* address when in server */ + char *descr; /* brief description */ +}; + + + +/* filter globals */ +extern int filtyydebug; + + +/* externals */ +int filtyylex(void); +int filtyyparse(void); +void filtyyerror(char *error_string, ...); +void InstallFilter(struct filter_node *root); +int filter_getc(); +void PrintFilter(struct filter_node *pn); +char *Filter2Str(struct filter_node *pn); + +struct filter_node *MakeUnaryNode(enum optype op, struct filter_node *pf); +struct filter_node *MakeBinaryNode(enum optype op, struct filter_node *pf_left, struct filter_node *pf_right); +struct filter_node *MakeVarNode(char *varname); +struct filter_node *MakeStringConstNode(char *val); +struct filter_node *MakeBoolConstNode(Bool val); +struct filter_node *MakeSignedConstNode(llong val); +struct filter_node *MakeUnsignedConstNode(u_llong val); +struct filter_node *MakeIPaddrConstNode(ipaddr *pipaddr); + +/* functions for calculated values */ +u_llong VFuncClntTput(tcp_pair *ptp); +u_llong VFuncServTput(tcp_pair *ptp); + + + diff --git a/filter_vars.h b/filter_vars.h new file mode 100644 index 0000000..fd50875 --- /dev/null +++ b/filter_vars.h @@ -0,0 +1,148 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_filter_vars[] = + "@(#)$Header: /usr/local/cvs/tcptrace/filter_vars.h,v 5.11 2003/11/19 14:38:07 sdo Exp $"; + + +/* just a big table of things that we can filter on */ +static tcp_pair ptp_dummy; +#define PTCB_C_S(field) &ptp_dummy.a2b.field,&ptp_dummy.b2a.field +#define PTP(a,b) &ptp_dummy.a,&ptp_dummy.b +#define PTPA(a,b) &ptp_dummy.addr_pair.a,&ptp_dummy.addr_pair.b +struct filter_line filters[] = { + {"hostname", V_STRING, PTP(a_hostname,b_hostname),"FQDN host name (unless -n)"}, + {"portname", V_STRING, PTP(a_portname,b_portname),"service name of the port (unless -n)"}, + {"port", V_USHORT, PTPA(a_port,b_port),"port NUMBER"}, + + {"mss", V_INT, PTCB_C_S(mss),"maximum segment size"}, + {"f1323_ws", V_BOOL, PTCB_C_S(f1323_ws),"1323 window scaling requested"}, + {"f1323_ts", V_BOOL, PTCB_C_S(f1323_ts),"1323 time stampts requested"}, + {"fsack_req", V_BOOL, PTCB_C_S(fsack_req),"SACKs requested"}, + {"window_scale", V_BOOL, PTCB_C_S(window_scale),"window scale factor"}, + {"bad_behavior", V_BOOL, PTCB_C_S(bad_behavior),"bad TCP behavior"}, + + {"data_bytes", V_ULLONG, PTCB_C_S(data_bytes),"bytes of data"}, + {"data_segs", V_ULLONG, PTCB_C_S(data_pkts),"segments of data"}, + {"data_segs_push", V_ULLONG, PTCB_C_S(data_pkts_push),"segments with PUSH set"}, + {"unique_bytes", V_ULLONG, PTCB_C_S(unique_bytes),"non-retransmitted bytes"}, + {"rexmit_bytes", V_ULLONG, PTCB_C_S(rexmit_bytes),"retransmitted bytes"}, + {"rexmit_segs", V_ULLONG, PTCB_C_S(rexmit_pkts),"segments w/ retransmitted data"}, + {"ack_segs", V_ULLONG, PTCB_C_S(ack_pkts),"segments containing ACK"}, + {"pureack_segs", V_ULLONG, PTCB_C_S(pureack_pkts),"segments containing PURE ACK (no data/syn/fin/reset)"}, + {"win_max", V_ULONG, PTCB_C_S(win_max),"MAX window advertisement"}, + {"win_min", V_ULONG, PTCB_C_S(win_min),"MIN window advertisement"}, + {"win_zero_ct", V_ULONG, PTCB_C_S(win_zero_ct),"number of ZERO windows advertised"}, + {"min_seq", V_ULONG, PTCB_C_S(min_seq),"smallest sequence number"}, + {"max_seq", V_ULONG, PTCB_C_S(max_seq),"largest sequence number"}, + {"num_sacks", V_ULONG, PTCB_C_S(num_sacks),"number of ACKs carrying SACKs"}, + {"max_sacks", V_ULONG, PTCB_C_S(max_sack_blocks),"most SACK blocks in a single ACK"}, + + /* synonyms */ + {"segs", V_ULLONG, PTCB_C_S(packets),"total segments"}, + {"packets", V_ULLONG, PTCB_C_S(packets),"total segments"}, + + {"syn_count", V_UCHAR, PTCB_C_S(syn_count),"SYNs sent"}, + {"fin_count", V_UCHAR, PTCB_C_S(fin_count),"FINs sent"}, + {"reset_count", V_UCHAR, PTCB_C_S(reset_count),"RESETs sent"}, + {"min_seg_size", V_ULONG, PTCB_C_S(min_seg_size),"smallest amount of data in a segment (not 0)"}, + {"max_seg_size", V_ULONG, PTCB_C_S(max_seg_size),"largest amount of data in a segment"}, + {"out_order_segs", V_ULLONG, PTCB_C_S(out_order_pkts),"out of order segments"}, + {"sacks_sent", V_ULLONG, PTCB_C_S(sacks_sent),"SACKs sent"}, + {"ipv6_segs", V_ULONG, PTCB_C_S(ipv6_segments),"number of IPv6 segments sent"}, + {"max_idle", V_ULLONG, PTCB_C_S(idle_max),"maximum idle time (usecs)"}, + + {"num_hw_dups", V_ULONG, PTCB_C_S(num_hardware_dups),"number of hardware-level duplicates"}, + + {"initwin_bytes", V_ULONG, PTCB_C_S(initialwin_bytes),"number of bytes in initial window"}, + {"initwin_segs", V_ULONG, PTCB_C_S(initialwin_segs),"number of segments in initial window"}, + + {"rtt_min", V_ULONG, PTCB_C_S(rtt_min), "MIN round trip time (usecs)"}, + {"rtt_max", V_ULONG, PTCB_C_S(rtt_max), "MAX round trip time (usecs)"}, + {"rtt_count", V_ULONG, PTCB_C_S(rtt_count), "number of RTT samples"}, + + {"rtt_min_last", V_ULONG, PTCB_C_S(rtt_min_last), "MIN round trip time (usecs) (from last rexmit)"}, + {"rtt_max_last", V_ULONG, PTCB_C_S(rtt_max_last), "MAX round trip time (usecs) (from last rexmit)"}, + {"rtt_count_last", V_ULONG, PTCB_C_S(rtt_count_last), "number of RTT samples (from last rexmit)"}, + + {"rtt_amback", V_ULLONG, PTCB_C_S(rtt_amback), "number of ambiguous ACKs"}, + {"rtt_cumack", V_ULLONG, PTCB_C_S(rtt_cumack), "number of cumulative ACKs"}, + {"rtt_unkack", V_ULLONG, PTCB_C_S(rtt_unkack), "number of unknown ACKs"}, + {"rtt_dupack", V_ULLONG, PTCB_C_S(rtt_dupack), "number of duplicate ACKs"}, + {"rtt_nosample", V_ULLONG, PTCB_C_S(rtt_nosample), "ACKs that generate no valid RTT sample"}, + {"rtt_triple_dupack", V_ULLONG, PTCB_C_S(rtt_triple_dupack), "number of triple duplicate ACKs (fast rexmit)"}, + + {"retr_max", V_ULONG, PTCB_C_S(retr_max), "MAX rexmits of a single segment"}, + {"retr_min_tm", V_ULONG, PTCB_C_S(retr_min_tm), "MIN time until rexmit (usecs)"}, + {"retr_max_tm", V_ULONG, PTCB_C_S(retr_max_tm), "MAX time until rexmit (usecs)"}, + + {"trunc_bytes", V_ULLONG, PTCB_C_S(trunc_bytes), "number of bytes not in the file"}, + {"trunc_segs", V_ULLONG, PTCB_C_S(trunc_segs), "number of segments not in the file"}, + {"num_zwnd_probes", V_ULONG, PTCB_C_S(num_zwnd_probes), "number of zero window probes"}, + {"zwnd_probe_bytes", V_ULONG, PTCB_C_S(zwnd_probe_bytes), "number of window probe bytes"}, + + {"urg_data_pkts", V_ULONG, PTCB_C_S(urg_data_pkts), "Number of packets with URGENT bit set"}, + {"urg_data_bytes", V_ULONG, PTCB_C_S(urg_data_bytes), "Number of bytes of urgent data"}, + + /* HOST IP addresses */ + {"hostaddr", V_IPADDR, + PTP(addr_pair.a_address, addr_pair.b_address), + "IP Address (v4 or v6 in standard textual notation"}, + + /* computed functions */ + + /* throughput in bytes/second - 0 for infinite or none */ + {"thruput", V_UFUNC, (void *)&VFuncClntTput, (void *)&VFuncServTput, "thruput (bytes/sec)"}, +}; +#define NUM_FILTERS (sizeof(filters)/sizeof(struct filter_line)) diff --git a/flex_bison/README_FLEX_BISON b/flex_bison/README_FLEX_BISON new file mode 100644 index 0000000..b061ed8 --- /dev/null +++ b/flex_bison/README_FLEX_BISON @@ -0,0 +1,4 @@ +These are the flex and bison output files that I generated. If you don't +have Gnu's Flex and Bison, you "might" be able to copy these files to the +upper directory and get things to compile. No promises, sorry, but it +usually works for me diff --git a/flex_bison/filt_parser.c b/flex_bison/filt_parser.c new file mode 100644 index 0000000..8b93d49 --- /dev/null +++ b/flex_bison/filt_parser.c @@ -0,0 +1,1142 @@ + +/* A Bison parser, made from ./filt_parser.y + by GNU Bison version 1.28 */ + +#define YYBISON 1 /* Identify Bison output. */ + +#define yyparse filtyyparse +#define yylex filtyylex +#define yyerror filtyyerror +#define yylval filtyylval +#define yychar filtyychar +#define yydebug filtyydebug +#define yynerrs filtyynerrs +#define EOS 257 +#define LPAREN 258 +#define RPAREN 259 +#define GREATER 260 +#define GREATER_EQ 261 +#define LESS 262 +#define LESS_EQ 263 +#define EQUAL 264 +#define NEQUAL 265 +#define NOT 266 +#define AND 267 +#define OR 268 +#define BAND 269 +#define BOR 270 +#define PLUS 271 +#define MINUS 272 +#define TIMES 273 +#define DIVIDE 274 +#define MOD 275 +#define VARIABLE 276 +#define STRING 277 +#define SIGNED 278 +#define UNSIGNED 279 +#define BOOL 280 +#define IPADDR 281 + +#line 1 "./filt_parser.y" + +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + * Ohio University. + * + * --- + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + * ostermann@cs.ohiou.edu + */ + + +#include +#include + +#include "tcptrace.h" +#include "filter.h" + +#define YYDEBUG 1 + + + +#line 70 "./filt_parser.y" +typedef union { /* the types that we use in the tokens */ + char *string; + long signed_long; + u_long unsigned_long; + ipaddr *pipaddr; + Bool bool; + enum optype op; + struct filter_node *pf; +} YYSTYPE; +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const +#endif +#endif + + + +#define YYFINAL 44 +#define YYFLAG -32768 +#define YYNTBASE 28 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 281 ? yytranslate[x] : 33) + +static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 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 +}; + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 3, 7, 11, 14, 18, 20, 24, 28, 32, + 36, 40, 44, 48, 52, 54, 56, 58, 60, 62, + 64, 66, 68, 70, 72, 74, 76 +}; + +static const short yyrhs[] = { 29, + 3, 0, 29, 13, 29, 0, 29, 14, 29, 0, + 12, 29, 0, 30, 32, 30, 0, 30, 0, 30, + 17, 30, 0, 30, 18, 30, 0, 30, 19, 30, + 0, 30, 20, 30, 0, 30, 21, 30, 0, 30, + 15, 30, 0, 30, 16, 30, 0, 4, 29, 5, + 0, 31, 0, 22, 0, 24, 0, 25, 0, 23, + 0, 26, 0, 27, 0, 6, 0, 7, 0, 8, + 0, 9, 0, 10, 0, 11, 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 110, 115, 117, 119, 121, 123, 129, 131, 133, 135, + 137, 139, 141, 143, 145, 150, 152, 154, 156, 158, + 160, 166, 168, 170, 172, 174, 176 +}; +#endif + + +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","EOS","LPAREN", +"RPAREN","GREATER","GREATER_EQ","LESS","LESS_EQ","EQUAL","NEQUAL","NOT","AND", +"OR","BAND","BOR","PLUS","MINUS","TIMES","DIVIDE","MOD","VARIABLE","STRING", +"SIGNED","UNSIGNED","BOOL","IPADDR","line","expr","number","leaf","relop", NULL +}; +#endif + +static const short yyr1[] = { 0, + 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, + 31, 32, 32, 32, 32, 32, 32 +}; + +static const short yyr2[] = { 0, + 2, 3, 3, 2, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1 +}; + +static const short yydefact[] = { 0, + 0, 0, 16, 19, 17, 18, 20, 21, 0, 6, + 15, 0, 4, 1, 0, 0, 22, 23, 24, 25, + 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 2, 3, 12, 13, 7, 8, 9, 10, 11, + 5, 0, 0, 0 +}; + +static const short yydefgoto[] = { 42, + 9, 10, 11, 30 +}; + +static const short yypact[] = { -4, + -4, -4,-32768,-32768,-32768,-32768,-32768,-32768, 33, 24, +-32768, -2, -9,-32768, -4, -4,-32768,-32768,-32768,-32768, +-32768,-32768, 2, 2, 2, 2, 2, 2, 2, 2, +-32768, -7,-32768, 46, 46, 49, 49,-32768,-32768,-32768, + 41, 9, 10,-32768 +}; + +static const short yypgoto[] = {-32768, + 0, 25,-32768,-32768 +}; + + +#define YYLAST 70 + + +static const short yytable[] = { 1, + 12, 13, 31, 15, 16, 1, 16, 2, 43, 44, + 15, 16, 0, 0, 32, 33, 0, 3, 4, 5, + 6, 7, 8, 3, 4, 5, 6, 7, 8, 17, + 18, 19, 20, 21, 22, 14, 0, 0, 23, 24, + 25, 26, 27, 28, 29, 15, 16, 34, 35, 36, + 37, 38, 39, 40, 41, 23, 24, 25, 26, 27, + 28, 29, 25, 26, 27, 28, 29, 27, 28, 29 +}; + +static const short yycheck[] = { 4, + 1, 2, 5, 13, 14, 4, 14, 12, 0, 0, + 13, 14, -1, -1, 15, 16, -1, 22, 23, 24, + 25, 26, 27, 22, 23, 24, 25, 26, 27, 6, + 7, 8, 9, 10, 11, 3, -1, -1, 15, 16, + 17, 18, 19, 20, 21, 13, 14, 23, 24, 25, + 26, 27, 28, 29, 30, 15, 16, 17, 18, 19, + 20, 21, 17, 18, 19, 20, 21, 19, 20, 21 +}; +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/share/bison.simple" +/* This file comes from bison-1.28. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY -2 +#define YYEOF 0 +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrlab1 +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ +#define YYFAIL goto yyerrlab +#define YYRECOVERING() (!!yyerrstatus) +#define YYBACKUP(token, value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { yychar = (token), yylval = (value); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#endif +#endif + +#line 217 "/usr/share/bison.simple" + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +#ifdef YYPARSE_PARAM +int yyparse (void *); +#else +int yyparse (void); +#endif +#endif + +int +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +{ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) +#endif + + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; + +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) + { + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + int size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif + } + else + { + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif + } + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ +yyreduce: + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) + { + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 1: +#line 111 "./filt_parser.y" +{InstallFilter(yyvsp[-1].pf);; + break;} +case 2: +#line 116 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_AND,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 3: +#line 118 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_OR,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 4: +#line 120 "./filt_parser.y" +{ yyval.pf = MakeUnaryNode(OP_NOT,yyvsp[0].pf); ; + break;} +case 5: +#line 122 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(yyvsp[-1].op,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 6: +#line 124 "./filt_parser.y" +{ yyval.pf = yyvsp[0].pf; ; + break;} +case 7: +#line 130 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_PLUS,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 8: +#line 132 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_MINUS,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 9: +#line 134 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_TIMES,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 10: +#line 136 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_DIVIDE,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 11: +#line 138 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_MOD,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 12: +#line 140 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_BAND,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 13: +#line 142 "./filt_parser.y" +{ yyval.pf = MakeBinaryNode(OP_BOR,yyvsp[-2].pf,yyvsp[0].pf);; + break;} +case 14: +#line 144 "./filt_parser.y" +{ yyval.pf = yyvsp[-1].pf; ; + break;} +case 15: +#line 146 "./filt_parser.y" +{ yyval.pf = yyvsp[0].pf; ; + break;} +case 16: +#line 151 "./filt_parser.y" +{ yyval.pf = MakeVarNode(yyvsp[0].string); ; + break;} +case 17: +#line 153 "./filt_parser.y" +{ yyval.pf = MakeSignedConstNode(yyvsp[0].signed_long); ; + break;} +case 18: +#line 155 "./filt_parser.y" +{ yyval.pf = MakeUnsignedConstNode(yyvsp[0].unsigned_long); ; + break;} +case 19: +#line 157 "./filt_parser.y" +{ yyval.pf = MakeStringConstNode(yyvsp[0].string); ; + break;} +case 20: +#line 159 "./filt_parser.y" +{ yyval.pf = MakeBoolConstNode(yyvsp[0].bool); ; + break;} +case 21: +#line 162 "./filt_parser.y" +{ yyval.pf = MakeIPaddrConstNode(yyvsp[0].pipaddr); ; + break;} +case 22: +#line 167 "./filt_parser.y" +{ yyval.op = OP_GREATER;; + break;} +case 23: +#line 169 "./filt_parser.y" +{ yyval.op = OP_GREATER_EQ;; + break;} +case 24: +#line 171 "./filt_parser.y" +{ yyval.op = OP_LESS;; + break;} +case 25: +#line 173 "./filt_parser.y" +{ yyval.op = OP_LESS_EQ;; + break;} +case 26: +#line 175 "./filt_parser.y" +{ yyval.op = OP_EQUAL;; + break;} +case 27: +#line 177 "./filt_parser.y" +{ yyval.op = OP_NEQUAL;; + break;} +} + /* the action file gets copied in in place of this dollarsign */ +#line 543 "/usr/share/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 1; +} +#line 179 "./filt_parser.y" + + +void +filtyyerror(char *error_string, ...) +{ + fprintf(stderr,"Bad filter expr: '%s'\n", error_string); +} diff --git a/flex_bison/filt_parser.h b/flex_bison/filt_parser.h new file mode 100644 index 0000000..4f0f66b --- /dev/null +++ b/flex_bison/filt_parser.h @@ -0,0 +1,37 @@ +typedef union { /* the types that we use in the tokens */ + char *string; + long signed_long; + u_long unsigned_long; + ipaddr *pipaddr; + Bool bool; + enum optype op; + struct filter_node *pf; +} YYSTYPE; +#define EOS 257 +#define LPAREN 258 +#define RPAREN 259 +#define GREATER 260 +#define GREATER_EQ 261 +#define LESS 262 +#define LESS_EQ 263 +#define EQUAL 264 +#define NEQUAL 265 +#define NOT 266 +#define AND 267 +#define OR 268 +#define BAND 269 +#define BOR 270 +#define PLUS 271 +#define MINUS 272 +#define TIMES 273 +#define DIVIDE 274 +#define MOD 275 +#define VARIABLE 276 +#define STRING 277 +#define SIGNED 278 +#define UNSIGNED 279 +#define BOOL 280 +#define IPADDR 281 + + +extern YYSTYPE filtyylval; diff --git a/flex_bison/filt_scanner.c b/flex_bison/filt_scanner.c new file mode 100644 index 0000000..54d7fe4 --- /dev/null +++ b/flex_bison/filt_scanner.c @@ -0,0 +1,1848 @@ +#define yy_create_buffer filtyy_create_buffer +#define yy_delete_buffer filtyy_delete_buffer +#define yy_scan_buffer filtyy_scan_buffer +#define yy_scan_string filtyy_scan_string +#define yy_scan_bytes filtyy_scan_bytes +#define yy_flex_debug filtyy_flex_debug +#define yy_init_buffer filtyy_init_buffer +#define yy_flush_buffer filtyy_flush_buffer +#define yy_load_buffer_state filtyy_load_buffer_state +#define yy_switch_to_buffer filtyy_switch_to_buffer +#define yyin filtyyin +#define yyleng filtyyleng +#define yylex filtyylex +#define yyout filtyyout +#define yyrestart filtyyrestart +#define yytext filtyytext +#define yywrap filtyywrap + +/* A lexical scanner generated by flex */ + +/* Scanner skeleton version: + * $Header: /usr/local/cvs/tcptrace/flex_bison/filt_scanner.c,v 1.37 2004/11/04 22:43:51 mramadas Exp $ + */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 + +#include + + +/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ +#ifdef c_plusplus +#ifndef __cplusplus +#define __cplusplus +#endif +#endif + + +#ifdef __cplusplus + +#include +#include + +/* Use prototypes in function declarations. */ +#define YY_USE_PROTOS + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_PROTOS +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef __TURBOC__ + #pragma warn -rch + #pragma warn -use +#include +#include +#define YY_USE_CONST +#define YY_USE_PROTOS +#endif + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + + +#ifdef YY_USE_PROTOS +#define YY_PROTO(proto) proto +#else +#define YY_PROTO(proto) () +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart( yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#define YY_BUF_SIZE 16384 + +typedef struct yy_buffer_state *YY_BUFFER_STATE; + +extern int yyleng; +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + +/* The funky do-while in the following #define is used to turn the definition + * int a single C statement (which needs a semi-colon terminator). This + * avoids problems with code like: + * + * if ( condition_holds ) + * yyless( 5 ); + * else + * do_something_else(); + * + * Prior to using the do-while the compiler would get upset at the + * "else" because it interpreted the "if" statement as being all + * done when it reached the ';' after the yyless() call. + */ + +/* Return all but the first 'n' matched characters back to the input stream. */ + +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + *yy_cp = yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, yytext_ptr ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ +typedef unsigned int yy_size_t; + + +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + }; + +static YY_BUFFER_STATE yy_current_buffer = 0; + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + */ +#define YY_CURRENT_BUFFER yy_current_buffer + + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; + +static int yy_n_chars; /* number of characters read into yy_ch_buf */ + + +int yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 1; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart YY_PROTO(( FILE *input_file )); + +void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); +void yy_load_buffer_state YY_PROTO(( void )); +YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); +void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); +void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); +void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); +#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) + +YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); +YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); +YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); + +static void *yy_flex_alloc YY_PROTO(( yy_size_t )); +static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); +static void yy_flex_free YY_PROTO(( void * )); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) + +typedef unsigned char YY_CHAR; +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +typedef int yy_state_type; +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state YY_PROTO(( void )); +static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); +static int yy_get_next_buffer YY_PROTO(( void )); +static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yytext_ptr = yy_bp; \ + yyleng = (int) (yy_cp - yy_bp); \ + yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 36 +#define YY_END_OF_BUFFER 37 +static yyconst short int yy_accept[68] = + { 0, + 0, 0, 37, 35, 1, 2, 17, 35, 7, 26, + 8, 9, 5, 3, 4, 6, 29, 10, 14, 12, + 34, 34, 34, 34, 34, 34, 34, 25, 1, 16, + 0, 33, 21, 30, 20, 23, 0, 29, 0, 0, + 11, 15, 13, 34, 34, 34, 34, 34, 22, 34, + 24, 0, 0, 0, 19, 34, 18, 34, 0, 28, + 34, 32, 0, 31, 0, 27, 0 + } ; + +static yyconst int yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 5, 1, 1, 6, 7, 1, 8, + 9, 10, 11, 1, 12, 13, 14, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 16, 1, 17, + 18, 19, 1, 1, 20, 21, 21, 22, 23, 24, + 25, 25, 25, 25, 25, 26, 25, 27, 28, 25, + 25, 29, 30, 31, 32, 25, 25, 25, 25, 25, + 1, 1, 1, 1, 25, 1, 33, 21, 21, 22, + + 21, 21, 25, 25, 25, 25, 25, 25, 25, 27, + 28, 25, 25, 34, 25, 35, 25, 25, 25, 25, + 25, 25, 1, 36, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst int yy_meta[37] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 3, 3, 1, 1, 1, 3, + 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 1 + } ; + +static yyconst short int yy_base[72] = + { 0, + 0, 0, 124, 125, 121, 125, 104, 116, 125, 113, + 125, 125, 125, 125, 22, 125, 25, 101, 100, 99, + 43, 89, 19, 64, 87, 14, 85, 77, 110, 125, + 106, 125, 125, 95, 125, 125, 94, 36, 92, 31, + 125, 125, 125, 0, 80, 84, 27, 26, 0, 73, + 125, 47, 88, 87, 0, 66, 0, 72, 79, 77, + 69, 0, 68, 0, 75, 74, 125, 97, 99, 79, + 42 + } ; + +static yyconst short int yy_def[72] = + { 0, + 67, 1, 67, 67, 67, 67, 67, 68, 67, 67, + 67, 67, 67, 67, 67, 67, 69, 67, 67, 67, + 67, 21, 21, 21, 24, 24, 24, 67, 67, 67, + 68, 67, 67, 67, 67, 67, 67, 69, 70, 69, + 67, 67, 67, 24, 21, 24, 21, 24, 24, 24, + 67, 67, 70, 71, 24, 24, 24, 24, 67, 71, + 24, 24, 67, 24, 67, 67, 0, 67, 67, 67, + 67 + } ; + +static yyconst short int yy_nxt[162] = + { 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 4, 16, 17, 4, 18, 19, 20, 21, + 22, 22, 22, 23, 24, 24, 25, 26, 24, 24, + 27, 24, 21, 24, 24, 28, 34, 37, 47, 38, + 39, 35, 49, 67, 60, 44, 39, 49, 37, 36, + 38, 39, 56, 44, 35, 44, 57, 45, 39, 59, + 57, 52, 45, 45, 45, 45, 45, 44, 44, 46, + 44, 44, 44, 44, 44, 45, 44, 44, 44, 67, + 65, 53, 63, 44, 44, 44, 44, 44, 66, 66, + 44, 64, 54, 63, 62, 61, 44, 31, 31, 31, + + 40, 40, 54, 54, 58, 55, 44, 54, 52, 34, + 32, 29, 51, 50, 48, 44, 43, 42, 41, 33, + 32, 30, 29, 67, 3, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67 + } ; + +static yyconst short int yy_chk[162] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 15, 17, 23, 17, + 17, 15, 26, 40, 71, 23, 40, 26, 38, 15, + 38, 38, 47, 47, 15, 21, 48, 21, 21, 52, + 48, 52, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 24, 24, + 63, 70, 63, 24, 24, 24, 24, 24, 66, 65, + 24, 61, 60, 59, 58, 56, 24, 68, 68, 68, + + 69, 69, 54, 53, 50, 46, 45, 39, 37, 34, + 31, 29, 28, 27, 25, 22, 20, 19, 18, 10, + 8, 7, 5, 3, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "./filt_scanner.l" +#define INITIAL 0 +#line 2 "./filt_scanner.l" +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + * Ohio University. + * + * --- + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + * ostermann@cs.ohiou.edu + */ + + +#include +#include "tcptrace.h" +#include "filter.h" + +#define yylval filtyylval + +#include "filt_parser.h" + +/* define our own input routine using filter_getc() */ +#define YY_INPUT(buf,result,max_size) \ + { \ + int c = filter_getc(); \ + result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \ + } + + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap YY_PROTO(( void )); +#else +extern int yywrap YY_PROTO(( void )); +#endif +#endif + +#ifndef YY_NO_UNPUT +static void yyunput YY_PROTO(( int c, char *buf_ptr )); +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen YY_PROTO(( yyconst char * )); +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus +static int yyinput YY_PROTO(( void )); +#else +static int input YY_PROTO(( void )); +#endif +#endif + +#if YY_STACK_USED +static int yy_start_stack_ptr = 0; +static int yy_start_stack_depth = 0; +static int *yy_start_stack = 0; +#ifndef YY_NO_PUSH_STATE +static void yy_push_state YY_PROTO(( int new_state )); +#endif +#ifndef YY_NO_POP_STATE +static void yy_pop_state YY_PROTO(( void )); +#endif +#ifndef YY_NO_TOP_STATE +static int yy_top_state YY_PROTO(( void )); +#endif + +#else +#define YY_NO_PUSH_STATE 1 +#define YY_NO_POP_STATE 1 +#define YY_NO_TOP_STATE 1 +#endif + +#ifdef YY_MALLOC_DECL +YY_MALLOC_DECL +#else +#if __STDC__ +#ifndef __cplusplus +#include +#endif +#else +/* Just try to get by without declaring the routines. This will fail + * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) + * or sizeof(void*) != sizeof(int). + */ +#endif +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ + +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( yy_current_buffer->yy_is_interactive ) \ + { \ + int c = '*', n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ + && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL int yylex YY_PROTO(( void )) +#endif + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +YY_DECL + { + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 74 "./filt_scanner.l" + + + + if ( yy_init ) + { + yy_init = 0; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yy_start ) + yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! yy_current_buffer ) + yy_current_buffer = + yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_load_buffer_state(); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 68 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 125 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + + +do_action: /* This label is used only to access EOF actions. */ + + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yy_hold_char; + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 76 "./filt_scanner.l" +{ } /* Just ignore white space */ + YY_BREAK +case 2: +YY_RULE_SETUP +#line 78 "./filt_scanner.l" +{ return(EOS); } + YY_BREAK +case 3: +YY_RULE_SETUP +#line 79 "./filt_scanner.l" +{ return(PLUS); } + YY_BREAK +case 4: +YY_RULE_SETUP +#line 80 "./filt_scanner.l" +{ return(MINUS); } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 81 "./filt_scanner.l" +{ return(TIMES); } + YY_BREAK +case 6: +YY_RULE_SETUP +#line 82 "./filt_scanner.l" +{ return(DIVIDE); } + YY_BREAK +case 7: +YY_RULE_SETUP +#line 83 "./filt_scanner.l" +{ return(MOD); } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 84 "./filt_scanner.l" +{ return(LPAREN); } + YY_BREAK +case 9: +YY_RULE_SETUP +#line 85 "./filt_scanner.l" +{ return(RPAREN); } + YY_BREAK +case 10: +YY_RULE_SETUP +#line 86 "./filt_scanner.l" +{ return(LESS); } + YY_BREAK +case 11: +YY_RULE_SETUP +#line 87 "./filt_scanner.l" +{ return(LESS_EQ); } + YY_BREAK +case 12: +YY_RULE_SETUP +#line 88 "./filt_scanner.l" +{ return(GREATER); } + YY_BREAK +case 13: +YY_RULE_SETUP +#line 89 "./filt_scanner.l" +{ return(GREATER_EQ); } + YY_BREAK +case 14: +YY_RULE_SETUP +#line 90 "./filt_scanner.l" +{ return(EQUAL); } + YY_BREAK +case 15: +YY_RULE_SETUP +#line 91 "./filt_scanner.l" +{ return(EQUAL); } /* same as "=" */ + YY_BREAK +case 16: +YY_RULE_SETUP +#line 92 "./filt_scanner.l" +{ return(NEQUAL); } + YY_BREAK +case 17: +YY_RULE_SETUP +#line 93 "./filt_scanner.l" +{ return(NOT); } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 94 "./filt_scanner.l" +{ return(NOT); } /* same as "!" */ + YY_BREAK +case 19: +YY_RULE_SETUP +#line 95 "./filt_scanner.l" +{ return(AND); } + YY_BREAK +case 20: +YY_RULE_SETUP +#line 96 "./filt_scanner.l" +{ return(AND); } /* same as "AND" */ + YY_BREAK +case 21: +YY_RULE_SETUP +#line 97 "./filt_scanner.l" +{ return(AND); } /* same as "AND" */ + YY_BREAK +case 22: +YY_RULE_SETUP +#line 98 "./filt_scanner.l" +{ return(OR); } + YY_BREAK +case 23: +YY_RULE_SETUP +#line 99 "./filt_scanner.l" +{ return(OR); } /* same as "OR" */ + YY_BREAK +case 24: +YY_RULE_SETUP +#line 100 "./filt_scanner.l" +{ return(OR); } /* same as "OR" */ + YY_BREAK +case 25: +YY_RULE_SETUP +#line 101 "./filt_scanner.l" +{ return(BOR); } /* bitwise OR */ + YY_BREAK +case 26: +YY_RULE_SETUP +#line 102 "./filt_scanner.l" +{ return(BAND); } /* bitwise AND */ + YY_BREAK +case 27: +YY_RULE_SETUP +#line 105 "./filt_scanner.l" +{ + /* an IPv4 addr */ + yylval.pipaddr = str2ipaddr(yytext); + return(IPADDR); +} + YY_BREAK +case 28: +YY_RULE_SETUP +#line 111 "./filt_scanner.l" +{ + /* an IPv6 addr */ + yylval.pipaddr = str2ipaddr(yytext); + return(IPADDR); +} + YY_BREAK +case 29: +YY_RULE_SETUP +#line 117 "./filt_scanner.l" +{ + /* an unsigned integer */ + yylval.unsigned_long = atoi(yytext); + return(UNSIGNED); +} + YY_BREAK +case 30: +YY_RULE_SETUP +#line 123 "./filt_scanner.l" +{ + /* a signed integer */ + yylval.signed_long = atoi(yytext); + return(SIGNED); +} + YY_BREAK +case 31: +YY_RULE_SETUP +#line 128 "./filt_scanner.l" +{ yylval.unsigned_long = 0; return(UNSIGNED); } + YY_BREAK +case 32: +YY_RULE_SETUP +#line 129 "./filt_scanner.l" +{ yylval.unsigned_long = 1; return(UNSIGNED); } + YY_BREAK +case 33: +YY_RULE_SETUP +#line 131 "./filt_scanner.l" +{ + /* a string */ + yylval.string = strdup(yytext+1); /* make a copy of the string */ + yylval.string[strlen(yylval.string)-1] = '\00'; + return(STRING); +} + YY_BREAK +case 34: +YY_RULE_SETUP +#line 138 "./filt_scanner.l" +{ + /* a variable (word) */ + yylval.string = strdup(yytext); /* make a copy of the string */ + return(VARIABLE); +} + YY_BREAK +case 35: +YY_RULE_SETUP +#line 145 "./filt_scanner.l" +{ + /* if we haven't matched anything yet, then it's illegal */ + fprintf(stderr, "filter scanner: Bad character '%c' (%d decimal)\n", + *yytext, *yytext); + exit(-1); +} + YY_BREAK +case 36: +YY_RULE_SETUP +#line 153 "./filt_scanner.l" +ECHO; + YY_BREAK +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between yy_current_buffer and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yy_n_chars = yy_current_buffer->yy_n_chars; + yy_current_buffer->yy_input_file = yyin; + yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + yy_did_buffer_switch_on_eof = 0; + + if ( yywrap() ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = + yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yy_c_buf_p = + &yy_current_buffer->yy_ch_buf[yy_n_chars]; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of yylex */ + + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ + +static int yy_get_next_buffer() + { + register char *dest = yy_current_buffer->yy_ch_buf; + register char *source = yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( yy_current_buffer->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + yy_current_buffer->yy_n_chars = yy_n_chars = 0; + + else + { + int num_to_read = + yy_current_buffer->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ +#ifdef YY_USES_REJECT + YY_FATAL_ERROR( +"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); +#else + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = yy_current_buffer; + + int yy_c_buf_p_offset = + (int) (yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yy_flex_realloc( (void *) b->yy_ch_buf, + b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = yy_current_buffer->yy_buf_size - + number_to_move - 1; +#endif + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), + yy_n_chars, num_to_read ); + + yy_current_buffer->yy_n_chars = yy_n_chars; + } + + if ( yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart( yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + yy_current_buffer->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yy_n_chars += number_to_move; + yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; + yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; + + return ret_val; + } + + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +static yy_state_type yy_get_previous_state() + { + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = yy_start; + + for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 68 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; + } + + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + +#ifdef YY_USE_PROTOS +static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) +#else +static yy_state_type yy_try_NUL_trans( yy_current_state ) +yy_state_type yy_current_state; +#endif + { + register int yy_is_jam; + register char *yy_cp = yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 68 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 67); + + return yy_is_jam ? 0 : yy_current_state; + } + + +#ifndef YY_NO_UNPUT +#ifdef YY_USE_PROTOS +static void yyunput( int c, register char *yy_bp ) +#else +static void yyunput( c, yy_bp ) +int c; +register char *yy_bp; +#endif + { + register char *yy_cp = yy_c_buf_p; + + /* undo effects of setting up yytext */ + *yy_cp = yy_hold_char; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register int number_to_move = yy_n_chars + 2; + register char *dest = &yy_current_buffer->yy_ch_buf[ + yy_current_buffer->yy_buf_size + 2]; + register char *source = + &yy_current_buffer->yy_ch_buf[number_to_move]; + + while ( source > yy_current_buffer->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + yy_current_buffer->yy_n_chars = + yy_n_chars = yy_current_buffer->yy_buf_size; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + + yytext_ptr = yy_bp; + yy_hold_char = *yy_cp; + yy_c_buf_p = yy_cp; + } +#endif /* ifndef YY_NO_UNPUT */ + + +#ifdef __cplusplus +static int yyinput() +#else +static int input() +#endif + { + int c; + + *yy_c_buf_p = yy_hold_char; + + if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + /* This was really a NUL. */ + *yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yy_c_buf_p - yytext_ptr; + ++yy_c_buf_p; + + switch ( yy_get_next_buffer() ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart( yyin ); + + /* fall through */ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap() ) + return EOF; + + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ + *yy_c_buf_p = '\0'; /* preserve yytext */ + yy_hold_char = *++yy_c_buf_p; + + + return c; + } + + +#ifdef YY_USE_PROTOS +void yyrestart( FILE *input_file ) +#else +void yyrestart( input_file ) +FILE *input_file; +#endif + { + if ( ! yy_current_buffer ) + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_init_buffer( yy_current_buffer, input_file ); + yy_load_buffer_state(); + } + + +#ifdef YY_USE_PROTOS +void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) +#else +void yy_switch_to_buffer( new_buffer ) +YY_BUFFER_STATE new_buffer; +#endif + { + if ( yy_current_buffer == new_buffer ) + return; + + if ( yy_current_buffer ) + { + /* Flush out information for old buffer. */ + *yy_c_buf_p = yy_hold_char; + yy_current_buffer->yy_buf_pos = yy_c_buf_p; + yy_current_buffer->yy_n_chars = yy_n_chars; + } + + yy_current_buffer = new_buffer; + yy_load_buffer_state(); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yy_did_buffer_switch_on_eof = 1; + } + + +#ifdef YY_USE_PROTOS +void yy_load_buffer_state( void ) +#else +void yy_load_buffer_state() +#endif + { + yy_n_chars = yy_current_buffer->yy_n_chars; + yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; + yyin = yy_current_buffer->yy_input_file; + yy_hold_char = *yy_c_buf_p; + } + + +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) +#else +YY_BUFFER_STATE yy_create_buffer( file, size ) +FILE *file; +int size; +#endif + { + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer( b, file ); + + return b; + } + + +#ifdef YY_USE_PROTOS +void yy_delete_buffer( YY_BUFFER_STATE b ) +#else +void yy_delete_buffer( b ) +YY_BUFFER_STATE b; +#endif + { + if ( ! b ) + return; + + if ( b == yy_current_buffer ) + yy_current_buffer = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yy_flex_free( (void *) b->yy_ch_buf ); + + yy_flex_free( (void *) b ); + } + + +#ifndef YY_ALWAYS_INTERACTIVE +#ifndef YY_NEVER_INTERACTIVE +extern int isatty YY_PROTO(( int )); +#endif +#endif + +#ifdef YY_USE_PROTOS +void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) +#else +void yy_init_buffer( b, file ) +YY_BUFFER_STATE b; +FILE *file; +#endif + + + { + yy_flush_buffer( b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + +#if YY_ALWAYS_INTERACTIVE + b->yy_is_interactive = 1; +#else +#if YY_NEVER_INTERACTIVE + b->yy_is_interactive = 0; +#else + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; +#endif +#endif + } + + +#ifdef YY_USE_PROTOS +void yy_flush_buffer( YY_BUFFER_STATE b ) +#else +void yy_flush_buffer( b ) +YY_BUFFER_STATE b; +#endif + + { + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == yy_current_buffer ) + yy_load_buffer_state(); + } + + +#ifndef YY_NO_SCAN_BUFFER +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) +#else +YY_BUFFER_STATE yy_scan_buffer( base, size ) +char *base; +yy_size_t size; +#endif + { + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer( b ); + + return b; + } +#endif + + +#ifndef YY_NO_SCAN_STRING +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) +#else +YY_BUFFER_STATE yy_scan_string( yy_str ) +yyconst char *yy_str; +#endif + { + int len; + for ( len = 0; yy_str[len]; ++len ) + ; + + return yy_scan_bytes( yy_str, len ); + } +#endif + + +#ifndef YY_NO_SCAN_BYTES +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) +#else +YY_BUFFER_STATE yy_scan_bytes( bytes, len ) +yyconst char *bytes; +int len; +#endif + { + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) yy_flex_alloc( n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; + + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer( buf, n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; + } +#endif + + +#ifndef YY_NO_PUSH_STATE +#ifdef YY_USE_PROTOS +static void yy_push_state( int new_state ) +#else +static void yy_push_state( new_state ) +int new_state; +#endif + { + if ( yy_start_stack_ptr >= yy_start_stack_depth ) + { + yy_size_t new_size; + + yy_start_stack_depth += YY_START_STACK_INCR; + new_size = yy_start_stack_depth * sizeof( int ); + + if ( ! yy_start_stack ) + yy_start_stack = (int *) yy_flex_alloc( new_size ); + + else + yy_start_stack = (int *) yy_flex_realloc( + (void *) yy_start_stack, new_size ); + + if ( ! yy_start_stack ) + YY_FATAL_ERROR( + "out of memory expanding start-condition stack" ); + } + + yy_start_stack[yy_start_stack_ptr++] = YY_START; + + BEGIN(new_state); + } +#endif + + +#ifndef YY_NO_POP_STATE +static void yy_pop_state() + { + if ( --yy_start_stack_ptr < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN(yy_start_stack[yy_start_stack_ptr]); + } +#endif + + +#ifndef YY_NO_TOP_STATE +static int yy_top_state() + { + return yy_start_stack[yy_start_stack_ptr - 1]; + } +#endif + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +#ifdef YY_USE_PROTOS +static void yy_fatal_error( yyconst char msg[] ) +#else +static void yy_fatal_error( msg ) +char msg[]; +#endif + { + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); + } + + + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + yytext[yyleng] = yy_hold_char; \ + yy_c_buf_p = yytext + n; \ + yy_hold_char = *yy_c_buf_p; \ + *yy_c_buf_p = '\0'; \ + yyleng = n; \ + } \ + while ( 0 ) + + +/* Internal utility routines. */ + +#ifndef yytext_ptr +#ifdef YY_USE_PROTOS +static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) +#else +static void yy_flex_strncpy( s1, s2, n ) +char *s1; +yyconst char *s2; +int n; +#endif + { + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; + } +#endif + +#ifdef YY_NEED_STRLEN +#ifdef YY_USE_PROTOS +static int yy_flex_strlen( yyconst char *s ) +#else +static int yy_flex_strlen( s ) +yyconst char *s; +#endif + { + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; + } +#endif + + +#ifdef YY_USE_PROTOS +static void *yy_flex_alloc( yy_size_t size ) +#else +static void *yy_flex_alloc( size ) +yy_size_t size; +#endif + { + return (void *) malloc( size ); + } + +#ifdef YY_USE_PROTOS +static void *yy_flex_realloc( void *ptr, yy_size_t size ) +#else +static void *yy_flex_realloc( ptr, size ) +void *ptr; +yy_size_t size; +#endif + { + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); + } + +#ifdef YY_USE_PROTOS +static void yy_flex_free( void *ptr ) +#else +static void yy_flex_free( ptr ) +void *ptr; +#endif + { + free( ptr ); + } + +#if YY_MAIN +int main() + { + yylex(); + return 0; + } +#endif +#line 153 "./filt_scanner.l" + + +int yywrap(void) +{ + if (0) + unput(0); /* never really called, but shuts up gcc */ + + return(1); +} + diff --git a/gcache.c b/gcache.c new file mode 100644 index 0000000..0eedee9 --- /dev/null +++ b/gcache.c @@ -0,0 +1,858 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/gcache.c,v 5.7 2003/11/19 14:38:02 sdo Exp $"; + + +/* + * gcache.c - generalized cacheing routines + */ + + +#include +#include "gcache.h" + + +/* Let's use ANSI C rather than old BSD calls... */ +#ifndef bzero +#define bzero(ptr,nbytes) memset(ptr,0,nbytes) +#endif +#ifndef bcopy +#define bcopy(from_ptr,to_ptr,nbytes) memcpy(to_ptr,from_ptr,nbytes) +#endif + + + +static int ca_enabled; + + +/* control block for a single cache */ +enum cb_status { CB_INUSE=1, CB_FREE=2}; +typedef enum cb_status cb_status; +struct cacheblk { + cb_status cb_status; /* INUSE or FREE */ + char cb_name[CA_NAMELEN]; /* name of the cache */ + u_short cb_maxent; /* maximum entries */ + u_short cb_nument; /* number of entries */ + u_short cb_hashsize; /* size of hash table */ + u_int cb_maxlife; /* max life of an entry (secs) */ + struct cacheentry *cb_cache; /* free nodes for the cache */ + struct hashentry *cb_hash; /* the hash table */ + tceix cb_freelist; /* list of free cacheentries */ + /* statistics variables, mostly for debugging */ + u_int cb_lookups; /* # lookups */ + u_int cb_hits; /* # hits */ + u_int cb_tos; /* # timed out entries */ + u_int cb_fulls; /* # removed, full table */ +}; + + + +/* a single node in the hash table */ +struct hashentry { + tceix he_ix; +}; +#define NULL_PHE ((struct hashentry *) 0) +#define NULL_IX 0 + + +/* a cached item in the hash list */ +enum ce_status {CE_INUSE=11, CE_FREE=12}; +typedef enum ce_status ce_status; +struct cacheentry { + ce_status ce_status; /* INUSE or FREE */ + char *ce_keyptr; /* pointer to the key */ + tcelen ce_keylen; /* length of the key */ + char *ce_resptr; /* pointer to the result */ + tcelen ce_reslen; /* length of the result */ + thval ce_hash; /* value that was hashed in */ + ttstamp ce_tsinsert; /* timestamp - time inserted */ + ttstamp ce_tsaccess; /* timestamp - last access */ + tceix ce_prev; /* next entry on list */ + tceix ce_next; /* prev entry on list */ +}; +#define NULL_PCE ((struct cacheentry *) 0) + + +/* locally global information */ +static struct cacheblk catab[CA_NUMCACHES]; + + +/* useful macros */ +#define ISBADCID(cid) ((cid < 0) || (cid > CA_NUMCACHES) || \ + (catab[cid].cb_status != CB_INUSE)) +#define HASHTOIX(hash,pcb) ((hash) % (pcb->cb_hashsize)) + +/* debugging hooks */ +static int docadebug = 0; +static int docaerror = 1; +#define CADEBUG if (docadebug) fprintf +#define CAERROR if (docaerror) fprintf + + +/* local routines defns */ +static char *cagetmem(u_int); +static void cadeleteold(struct cacheblk *); +static void caclear(struct cacheblk *, tceix); +static void cafreemem(void *, u_int); +static tceix cagetfree(struct cacheblk *); +static tceix cagetindex(struct cacheblk *, char *, tcelen, thval); +static thval cahash(char *, tcelen); +static int caisold(struct cacheblk *, struct cacheentry *); +static void casetsize(struct cacheblk *, int); +static void caunlink(struct cacheblk *, tceix); + + + +/*************************************************************************/ +/** **/ +/** GLOBAL ROUTINES **/ +/** **/ +/*************************************************************************/ + +/* + * ==================================================================== + * cainit - initialize the caching tables + * ==================================================================== + */ +int +cainit(void) +{ + struct cacheblk *pcb; + int cid; + + for (cid=0; cid < CA_NUMCACHES; ++cid) { + pcb = &catab[cid]; + bzero(pcb,sizeof(struct cacheblk)); + pcb->cb_status = CB_FREE; + } + ca_enabled = TRUE; + return(OK); +} + + + +/* + * ==================================================================== + * cacreate - create a new cache + * ==================================================================== + */ +int +cacreate( + char *name, + int nentries, + int lifetime) +{ + int cid; + tceix ix; + struct cacheblk *pcb; + struct cacheentry *pce; + + /* check config limits */ + if (nentries >= CA_MAXENTRIES) { + CAERROR(stderr,"cacreate(%s,%d,%d): SYSERR, nentries > max (%d)\n", + name, nentries, lifetime, CA_MAXENTRIES); + return(SYSERR); + } + + for (cid=0; cid < CA_NUMCACHES; ++cid) { + pcb = &catab[cid]; + if (pcb->cb_status == CB_FREE) + break; + } + + if (cid == CA_NUMCACHES) { + CAERROR(stderr,"cacreate(%s,%d,%d): SYSERR, no more caches\n", + name, nentries, lifetime); + return(SYSERR); + } + + bzero(pcb, sizeof(struct cacheblk)); + pcb->cb_status = CB_INUSE; +#ifdef linux +#ifdef strncpy + /* stupid Linux (redhat?) bug in macro */ +#undef strncpy +#endif /* strncpy */ +#endif /* linux */ + strncpy(pcb->cb_name,name,CA_NAMELEN); + pcb->cb_name[CA_NAMELEN-1] = '\00'; + pcb->cb_maxent = nentries; + casetsize(pcb,nentries); + pcb->cb_maxlife = lifetime; + + /* allocate the cache entries */ + /* (0 is reserved as a null pointer, so we allocate from 0 */ + /* to maxent, rather than maxent-1) */ + pcb->cb_cache = (struct cacheentry *) + cagetmem((1+pcb->cb_maxent) * sizeof(struct cacheentry)); + bzero(pcb->cb_cache, + (1+pcb->cb_maxent) * sizeof(struct cacheentry)); + /* put them all on the free list (only forward pointers) */ + for (ix=1; ix <= pcb->cb_maxent; ++ix) { + pce = &pcb->cb_cache[ix]; + pce->ce_status = CE_FREE; + pce->ce_next = ix+1; + } + pcb->cb_cache[pcb->cb_maxent].ce_next = NULL_IX; + pcb->cb_freelist = 1; + + /* allocate the hash table */ + pcb->cb_hash = (struct hashentry *) + cagetmem(pcb->cb_hashsize * sizeof(struct hashentry)); + for (ix=0; ix < pcb->cb_hashsize; ++ix) { + pcb->cb_hash[ix].he_ix = NULL_IX; + } + + CADEBUG(stderr,"cacreate(%s,%d,%d) returns cache %d\n", + name, nentries, lifetime, cid); + + return(cid); +} + + + +/* + * ==================================================================== + * cadestroy - destroy an existing cache + * ==================================================================== + */ +int +cadestroy( + int cid) +{ + struct cacheblk *pcb; + + if (ISBADCID(cid)) { + CAERROR(stderr,"cadestroy(%d,...) cid is bad\n", cid); + return(SYSERR); + } + + pcb = &catab[cid]; + + /* free up all the entries */ + (void) capurge(cid); + + /* free up the hash table */ + cafreemem(pcb->cb_hash, + pcb->cb_hashsize * sizeof(struct hashentry)); + + /* free up the cached blocks */ + cafreemem(pcb->cb_cache, + (1+pcb->cb_maxent) * sizeof(struct cacheentry)); + + /* zero out the table */ + bzero(pcb,sizeof(struct cacheblk)); + pcb->cb_status = CB_FREE; + + return(OK); +} + + + +/* + * ==================================================================== + * cainsert - insert a new entry into an existing cache + * ==================================================================== + */ +int +cainsert( + int cid, + char *pkey, + tcelen keylen, + char *pres, + tcelen reslen) +{ + struct cacheblk *pcb; + struct cacheentry *pce; + struct hashentry *phe; + thval hash; + tceix ixnew; + + /* check argument validity */ + if (ISBADCID(cid)) { + CAERROR(stderr,"cainsert(%d,...) cid is bad\n", cid); + return(SYSERR); + } + + if ((keylen > CA_MAXKEY) || (reslen > CA_MAXRES)) { + CAERROR(stderr,"cainsert: SYSERR, key or result too large\n"); + return(SYSERR); + } + + if (!ca_enabled) + return(OK); + + pcb = &catab[cid]; + + hash = cahash(pkey,keylen); + phe = &pcb->cb_hash[HASHTOIX(hash,pcb)]; + + if ((ixnew = cagetindex(pcb,pkey,keylen,hash)) != NULL_IX) { + /* use the old one */ + caclear(pcb,ixnew); + pce = &pcb->cb_cache[ixnew]; + + CADEBUG(stderr,"cainsert(%d): reusing cache slot %d, nument:%d\n", + cid, ixnew, pcb->cb_nument); + } else { + /* get a free cacheentry */ + ixnew = cagetfree(pcb); + pce = &pcb->cb_cache[ixnew]; + + /* ... and put it at the head of the list */ + pce->ce_prev = 0; + pce->ce_next = phe->he_ix; + pcb->cb_cache[phe->he_ix].ce_prev = ixnew; + phe->he_ix = ixnew; + + CADEBUG(stderr,"cainsert(%d): using new cache slot %d, nument:%d\n", + cid, ixnew, pcb->cb_nument); + } + + pce->ce_status = CE_INUSE; + pce->ce_hash = hash; + pce->ce_keyptr = cagetmem(keylen); + pce->ce_keylen = keylen; + bcopy(pkey,pce->ce_keyptr,(int)keylen); + pce->ce_resptr = cagetmem(reslen); + pce->ce_reslen = reslen; + bcopy(pres,pce->ce_resptr,(int)reslen); + time(&pce->ce_tsinsert); + pce->ce_tsaccess = pce->ce_tsinsert; + + return(OK); +} + + + +/* + * ==================================================================== + * calookup - find an entry in the cache given the key, return info + * ==================================================================== + */ +int +calookup( + int cid, + char *pkey, + tcelen keylen, + char *pres, + tcelen *preslen) +{ + struct cacheblk *pcb; + struct cacheentry *pce; + thval hash; + tceix ix; + + if (ISBADCID(cid)) { + CAERROR(stderr,"calookup(%d,...) cid is bad\n", cid); + return(SYSERR); + } + + if (!ca_enabled) + return(SYSERR); + + pcb = &catab[cid]; + hash = cahash(pkey,keylen); + if ((ix = cagetindex(pcb,pkey,keylen,hash)) != NULL_IX) { + pce = &pcb->cb_cache[ix]; + + if (pce->ce_reslen <= *preslen) { + time(&pce->ce_tsaccess); + bcopy(pce->ce_resptr,pres,(int)pce->ce_reslen); + *preslen = pce->ce_reslen; + return(OK); + } + } + + return(SYSERR); +} + + + +/* + * ==================================================================== + * caremove - remove an entry from the cache if it exists + * ==================================================================== + */ +int +caremove( + int cid, + char *pkey, + tcelen keylen) +{ + struct cacheblk *pcb; + unsigned hash; + tceix ix; + + if (ISBADCID(cid)) { + CAERROR(stderr,"caremove(%d,...) cid is bad\n", cid); + return(SYSERR); + } + + pcb = &catab[cid]; + hash = cahash(pkey,keylen); + if ((ix = cagetindex(pcb,pkey,keylen,hash)) != NULL_IX) { + CADEBUG(stderr,"caremove(%d): killing entry in slot %d:\n", + cid, ix); + caunlink(pcb,ix); + } + + return(OK); +} + + + + +/* + * ==================================================================== + * capurge - remove all entries in an existing cache + * ==================================================================== + */ +int +capurge( + int cid) +{ + struct cacheblk *pcb; + struct cacheentry *pce; + struct hashentry *phe; + tceix ix; + + if (ISBADCID(cid)) { + CAERROR(stderr,"capurge(%d,...) cid is bad\n", cid); + return(SYSERR); + } + + pcb = &catab[cid]; + + /* free all cached entries */ + for (ix=1; ix <= pcb->cb_maxent; ++ix) { + pce = &pcb->cb_cache[ix]; + if (pce->ce_status == CE_INUSE) + caunlink(pcb,ix); + pce->ce_status = CE_FREE; + } + + /* clear the hash table */ + for (ix=0; ix < pcb->cb_hashsize; ++ix) { + phe = &pcb->cb_hash[ix]; + bzero(phe,sizeof(struct hashentry)); + phe->he_ix = NULL_IX; + } + + pcb->cb_nument = 0; + + return(OK); +} + + + +/* + * ==================================================================== + * cadump - dump contents of the cache structures + * ==================================================================== + */ +void +cadump(void) +{ + int cid; + int purge; + int zero; + struct cacheblk *pcb; + + purge = zero = FALSE; + + fprintf(stderr,"\nmaxcaches: %d (caching %sabled)\n", + CA_NUMCACHES, + ca_enabled?"en":"DIS"); + fprintf(stderr,"\ +ix name maxent nument htsize life tos full finds hits hit%%\n"); + fprintf(stderr,"\ +== =============== ====== ====== ====== ==== ==== ==== ====== ====== ====\n"); + for (cid=0; cid < CA_NUMCACHES; ++cid) { + pcb = &catab[cid]; + if (pcb->cb_status == CB_FREE) + continue; + + if (purge) + capurge(cid); + + if (zero) { + pcb->cb_tos = 0; + pcb->cb_fulls = 0; + pcb->cb_lookups = 0; + pcb->cb_hits = 0; + } + + fprintf(stderr,"%2d %-15s %6d %6d %6d %4d %4d %4d %6d %6d %3d%%", + cid, + pcb->cb_name, + pcb->cb_maxent, + pcb->cb_nument, + pcb->cb_hashsize, + pcb->cb_maxlife, + pcb->cb_tos, + pcb->cb_fulls, + pcb->cb_lookups, + pcb->cb_hits, + (pcb->cb_lookups)? + ((100 * pcb->cb_hits) / pcb->cb_lookups):0); + fprintf(stderr,"\n"); + } +} + + + +/*************************************************************************/ +/** **/ +/** LOCAL FUNCTIONS **/ +/** **/ +/*************************************************************************/ + + +/* + * ==================================================================== + * cahash - return the hash value for a key + * ==================================================================== + */ +static thval +cahash( + char *pkey, + tcelen keylen) +{ + int i; + thval hval; + + hval = 0; + for (i=0; i < keylen; ++i) + hval += *pkey++; + return(hval); +} + + + +/* try to reduce fragmentation */ +#define CAMEMSIZE(nb) ((unsigned) (((nb) + 31) & ~31)) +/* + * ==================================================================== + * cagetmem - get memory for a cached entry + * ==================================================================== + */ +static char * +cagetmem( + u_int nbytes) +{ + char *ret; + + ret = malloc(CAMEMSIZE(nbytes)); + if (!ret) { + perror("cagetmem malloc"); + exit(-1); + } + + return(ret); +} + + +/* + * ==================================================================== + * cafreemem - free memory from a cached entry + * ==================================================================== + */ +static void +cafreemem( + void *ptr, + u_int nbytes) +{ + free(ptr); +} + + + + +/* + * ==================================================================== + * cadeleteold - delete the "oldest" cached entry + * ==================================================================== + */ +static void +cadeleteold( + struct cacheblk *pcb) +{ + struct cacheentry *pce; + unsigned oldtime; + tceix oldix; + tceix ix; + + /* check everyone against the first entry */ + oldix = 1; + pce = &pcb->cb_cache[oldix]; + oldtime = pce->ce_tsaccess; + + for (ix=2; ix <= pcb->cb_maxent; ++ix) { + pce = &pcb->cb_cache[ix]; + if ((pce->ce_status == CE_INUSE) && + (pce->ce_tsaccess < oldtime)) { + oldix = ix; + oldtime = pce->ce_tsaccess; + } + } + + /* nuke the oldest one */ + pce = &pcb->cb_cache[oldix]; + caunlink(pcb,oldix); + return; +} + + +/* + * ==================================================================== + * caclear - clear out the given entry, set status to FREE + * ==================================================================== + */ +static void +caclear( + struct cacheblk *pcb, + tceix ix) +{ + struct cacheentry *pce; + + pce = &pcb->cb_cache[ix]; + if (pce->ce_keyptr) + cafreemem(pce->ce_keyptr,pce->ce_keylen); + if (pce->ce_resptr) + cafreemem(pce->ce_resptr,pce->ce_reslen); + bzero(pce,sizeof(struct cacheentry)); + pce->ce_status = CE_FREE; +} + + + +/* + * ==================================================================== + * caisold - return TRUE if the given entry is "too old" + * ==================================================================== + */ +static int +caisold( + struct cacheblk *pcb, + struct cacheentry *pce) +{ + time_t now; + + if (pcb->cb_maxlife == 0) + return(FALSE); + + time(&now); + + return ((now - pce->ce_tsaccess) > pcb->cb_maxlife); +} + + + + +/* + * ==================================================================== + * cagetindex - return the index of a matching entry, or SYSERR + * ==================================================================== + */ +static tceix +cagetindex( + struct cacheblk *pcb, + char *pkey, + tcelen keylen, + thval hashval) +{ + struct cacheentry *pce; + tceix ix; + tceix nextix; + + ++pcb->cb_lookups; + + ix = pcb->cb_hash[HASHTOIX(hashval,pcb)].he_ix; + + while (ix != NULL_IX) { + pce = &pcb->cb_cache[ix]; + nextix = pce->ce_next; + + CADEBUG(stderr,"cagetindex[%d]: ", ix); + if ((pce->ce_hash == hashval) && + (pce->ce_keylen == keylen) && + (memcmp((void *)pkey,(void *)pce->ce_keyptr,(int) keylen) == 0)) { + /* this is a match */ + ++pcb->cb_hits; + if (caisold(pcb,pce)) { + ++pcb->cb_tos; + CADEBUG(stderr,"OLD\n"); + caunlink(pcb,ix); + return(NULL_IX); + } else { + CADEBUG(stderr,"YES\n"); + return(ix); + } + } + CADEBUG(stderr,"NO (%d!=%d, %d!=%d)\n", + pce->ce_hash, hashval, + pce->ce_keylen, keylen); + ix = nextix; + } + + return(NULL_IX); +} + + + + +/* + * ==================================================================== + * casetsize - set the hash table size + * ==================================================================== + */ +static void +casetsize( + struct cacheblk *pcb, + int nentries) +{ + if (nentries <= 10) + pcb->cb_hashsize = 13; + else if (nentries <= 25) + pcb->cb_hashsize = 29; + else if (nentries <= 50) + pcb->cb_hashsize = 53; + else if (nentries <= 100) + pcb->cb_hashsize = 101; + else if (nentries <= 200) + pcb->cb_hashsize = 213; + else +/* pcb->cb_hashsize = nentries * 1.25;*/ + + /* avoid the floating point */ + pcb->cb_hashsize = (nentries * 5) >> 2; + /* 5 >> 2 == 5 / 4 == 1.25 */ + + return; +} + + + +/* + * ==================================================================== + * cagetfree - return the index of an unused pce. If there aren't any + * left, delete an old one and return it. + * ==================================================================== + */ +static tceix +cagetfree( + struct cacheblk *pcb) +{ + struct cacheentry *pce; + tceix ix; + + /* if the free list is empty, delete the oldest entry */ + if (pcb->cb_freelist == NULL_IX) { + CADEBUG(stderr,"cagetfree: cache full, deleting old entry, nument:%d\n", + pcb->cb_nument); + cadeleteold(pcb); + ++pcb->cb_fulls; + } + + /* remove the head of the list */ + ix = pcb->cb_freelist; + pce = &pcb->cb_cache[ix]; + pcb->cb_freelist = pce->ce_next; + ++pcb->cb_nument; + + CADEBUG(stderr,"cagetfree: returning slot %d\n", ix); + return(ix); +} + + + +/* + * ==================================================================== + * caunlink - remove a cached entry from a list (and erase it) + * return it to the free list + * ==================================================================== + */ +static void +caunlink( + struct cacheblk *pcb, + tceix ix) +{ + struct cacheentry *pce; + struct hashentry *phe; + thval hash; + + pce = &pcb->cb_cache[ix]; + hash = pce->ce_hash; + phe = &pcb->cb_hash[HASHTOIX(hash,pcb)]; + + if (pce->ce_prev == NULL_IX) + phe->he_ix = pce->ce_next; + else + pcb->cb_cache[pce->ce_prev].ce_next = pce->ce_next; + + pcb->cb_cache[pce->ce_next].ce_prev = pce->ce_prev; + + caclear(pcb,ix); + + /* return it to the free list */ + pce->ce_next = pcb->cb_freelist; + pcb->cb_freelist = ix; + --pcb->cb_nument; +} diff --git a/gcache.h b/gcache.h new file mode 100644 index 0000000..6fddf1d --- /dev/null +++ b/gcache.h @@ -0,0 +1,98 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_gcache[] = + "@(#)$Header: /usr/local/cvs/tcptrace/gcache.h,v 5.4 2003/11/19 14:38:07 sdo Exp $"; + + +/* gcache.h -- a general purpose caching mechanism */ + + +/* types used throughout */ +typedef u_short tcelen; /* length of a cached entry */ +typedef u_short tceix; /* index of a cached entry */ +typedef u_int thval; /* type of the hashed value of a key */ +typedef time_t ttstamp; /* type of a timestamp */ + + +/* configuration constants */ +#define CA_MAXENTRIES 255 /* max entries in a single cache */ +#define CA_MAXKEY 500 /* max size of a key */ +#define CA_MAXRES 500 /* max size of a result */ +#define CA_NAMELEN 15 /* max length of the name of a cache */ +#define CA_NUMCACHES 10 /* max caches in the system */ + +#define BADCID -1 + +#define ISBADCACHE(cid) ((cid < 0) || (cid > CA_NUMCACHES)) + +/* definition of the interface routines */ +int cacreate(char *, int, int); +int cadestroy(int); +int cainsert(int, char *, tcelen, char *, tcelen); +int calookup(int, char *, tcelen, char *, tcelen *); +int capurge(int); +int caremove(int, char *, tcelen); +void cadump(void); +int cainit(void); + + + +/* common defines */ +#define TRUE 1 +#define FALSE 0 +#define OK 0 +#define SYSERR -1 + + diff --git a/includes_vms.tlb b/includes_vms.tlb new file mode 100755 index 0000000..483d5d3 Binary files /dev/null and b/includes_vms.tlb differ diff --git a/input/6syns.dmp.gz b/input/6syns.dmp.gz new file mode 100644 index 0000000..67e3b74 Binary files /dev/null and b/input/6syns.dmp.gz differ diff --git a/input/Makefile b/input/Makefile new file mode 100644 index 0000000..00872d7 --- /dev/null +++ b/input/Makefile @@ -0,0 +1,16 @@ +regress: + bin/REGRESS + +binary: + bin/GRAB_BINARY + +NEWBENCH=${wildcard OUTPUT_*} +newbench: ${NEWBENCH} + rm -rf OUTPUTbench.old + mv OUTPUTbench OUTPUTbench.old + mv "${NEWBENCH}" OUTPUTbench + +all: regress binary + +clean: + rm -rf DIFFS core *.core BINARY_* OUTPUT_* *.xpl diff --git a/input/NASA_ipv6.snoop.gz b/input/NASA_ipv6.snoop.gz new file mode 100644 index 0000000..3ac1047 Binary files /dev/null and b/input/NASA_ipv6.snoop.gz differ diff --git a/input/OUTPUTbench/6syns.dmp.gz.long b/input/OUTPUTbench/6syns.dmp.gz.long new file mode 100644 index 0000000..812656a --- /dev/null +++ b/input/OUTPUTbench/6syns.dmp.gz.long @@ -0,0 +1,181 @@ +1 arg remaining, starting with '6syns.dmp.gz' + +68 packets seen, 68 TCP packets traced +trace file elapsed time: 0:07:05.580142 +TCP connection info: +2 TCP connections traced: +*** 2 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 132.235.67.20:4333 + host b: 132.235.67.34:9080 + complete conn: yes + first packet: Mon Nov 2 13:22:01.021516 1998 + last packet: Mon Nov 2 13:24:54.257715 1998 + elapsed time: 0:02:53.236198 + total packets: 19 + filename: 6syns.dmp.gz + a->b: b->a: + total packets: 13 total packets: 6 + ack pkts sent: 9 ack pkts sent: 6 + pure acks sent: 2 pure acks sent: 4 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 5378 unique bytes sent: 0 + actual data pkts: 7 actual data pkts: 0 + actual data bytes: 9722 actual data bytes: 0 + rexmt data pkts: 6 rexmt data pkts: 0 + rexmt data bytes: 4347 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 4/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 8 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 1034 bytes min segm size: 0 bytes + avg segm size: 1388 bytes avg segm size: 0 bytes + max win adv: 1516544 bytes max win adv: 246720 bytes + min win adv: 1516544 bytes min win adv: 241344 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 1516544 bytes avg win adv: 243700 bytes + max owin: 2897 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1380 bytes avg owin: 1 bytes + wavg owin: 2168 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 5378 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 9344 bytes truncated data: 0 bytes + truncated packets: 7 pkts truncated packets: 0 pkts + data xmit time: 129.376 secs data xmit time: 0.000 secs + idletime max: 63998.8 ms idletime max: 128463.5 ms + throughput: 31 Bps throughput: 0 Bps + + RTT samples: 2 RTT samples: 2 + RTT min: 846.7 ms RTT min: 0.3 ms + RTT max: 909.8 ms RTT max: 0.5 ms + RTT avg: 878.2 ms RTT avg: 0.4 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.3 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 909.8 ms RTT full_sz min: 0.5 ms + RTT full_sz max: 909.8 ms RTT full_sz max: 0.5 ms + RTT full_sz avg: 909.7 ms RTT full_sz avg: 0.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + 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. + ambiguous acks: 2 ambiguous acks: 0 + RTT min (last): 886.7 ms RTT min (last): 0.0 ms + RTT max (last): 1004.5 ms RTT max (last): 0.0 ms + RTT avg (last): 945.6 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 3 max # retrans: 0 + min retr time: 5990.1 ms min retr time: 0.0 ms + max retr time: 128462.3 ms max retr time: 0.0 ms + avg retr time: 49671.7 ms avg retr time: 0.0 ms + sdv retr time: 46027.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.67.20:4333 + host d: 132.235.67.34:9080 + complete conn: yes + first packet: Mon Nov 2 13:28:51.030694 1998 + last packet: Mon Nov 2 13:29:06.601658 1998 + elapsed time: 0:00:15.570964 + total packets: 49 + filename: 6syns.dmp.gz + c->d: d->c: + total packets: 29 total packets: 20 + ack pkts sent: 27 ack pkts sent: 20 + pure acks sent: 2 pure acks sent: 18 + sack pkts sent: 0 sack pkts sent: 3 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 1 + unique bytes sent: 33811 unique bytes sent: 0 + actual data pkts: 25 actual data pkts: 0 + actual data bytes: 35259 actual data bytes: 0 + rexmt data pkts: 2 rexmt data pkts: 0 + rexmt data bytes: 1449 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 2/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 8 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 3 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 507 bytes min segm size: 0 bytes + avg segm size: 1410 bytes avg segm size: 0 bytes + max win adv: 1516544 bytes max win adv: 246720 bytes + min win adv: 1516544 bytes min win adv: 212904 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 1516544 bytes avg win adv: 227461 bytes + max owin: 6300 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 3529 bytes avg owin: 1 bytes + wavg owin: 2369 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 33811 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 33909 bytes truncated data: 0 bytes + truncated packets: 25 pkts truncated packets: 0 pkts + data xmit time: 7.762 secs data xmit time: 0.000 secs + idletime max: 5981.4 ms idletime max: 977.8 ms + throughput: 2171 Bps throughput: 0 Bps + + RTT samples: 13 RTT samples: 2 + RTT min: 759.6 ms RTT min: 0.1 ms + RTT max: 1025.7 ms RTT max: 0.2 ms + RTT avg: 865.2 ms RTT avg: 0.2 ms + RTT stdev: 78.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 13 RTT full_sz smpls: 1 + RTT full_sz min: 759.6 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 1025.7 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 865.2 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 78.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 1 post-loss acks: 0 + 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. + ambiguous acks: 1 ambiguous acks: 0 + RTT min (last): 933.8 ms RTT min (last): 0.0 ms + RTT max (last): 933.8 ms RTT max (last): 0.0 ms + RTT avg (last): 933.7 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 10 segs cum acked: 0 + duplicate acks: 4 duplicate acks: 0 + triple dupacks: 1 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 1379.0 ms min retr time: 0.0 ms + max retr time: 5981.4 ms max retr time: 0.0 ms + avg retr time: 3680.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/6syns.dmp.gz.packets b/input/OUTPUTbench/6syns.dmp.gz.packets new file mode 100644 index 0000000..507f7ea --- /dev/null +++ b/input/OUTPUTbench/6syns.dmp.gz.packets @@ -0,0 +1,1811 @@ +1 arg remaining, starting with '6syns.dmp.gz' + +Packet 1 + Packet Length: 78 + Collected: Mon Nov 2 13:22:01.021516 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 37505 + CKSUM: 0x582a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6194dd5c + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x85ea (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748113,0) SACKREQ +Packet 2 + Packet Length: 78 + Collected: Mon Nov 2 13:22:07.011639 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 38722 + CKSUM: 0x5369 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6194dd5c + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x85df (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748124,0) SACKREQ +Packet 3 + Packet Length: 78 + Collected: Mon Nov 2 13:22:19.013682 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 40906 + CKSUM: 0x4ae1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6194dd5c + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x85c7 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748148,0) SACKREQ +Packet 4 + Packet Length: 78 + Collected: Mon Nov 2 13:22:43.019053 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 45887 + CKSUM: 0x376c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6194dd5c + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x8597 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748196,0) SACKREQ +Packet 5 + Packet Length: 74 + Collected: Mon Nov 2 13:22:44.023593 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 60 + ID: 54152 + CKSUM: 0x1927 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A--S- (0x12) + SEQ: 0x9ca6a020 + ACK: 0x6194dd5d + WIN: 16384 + HLEN: 40 + CKSUM: 0x4694 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(3) SACKREQ +Packet 6 + Packet Length: 66 + Collected: Mon Nov 2 13:22:44.023898 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 46079 + CKSUM: 0x36b8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194dd5d + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xf251 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1748199,1933308) +Packet 7 + Packet Length: 120 + Collected: Mon Nov 2 13:22:44.032222 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 46081 + CKSUM: 0x310e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194dd5d + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xeca9 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748199,1933308) + data: 1448 bytes +Packet 8 + Packet Length: 66 + Collected: Mon Nov 2 13:22:44.883478 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 54310 + CKSUM: 0x1891 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x9ca6a021 + ACK: 0x6194dd5d + WIN: 30840 + HLEN: 32 + CKSUM: 0x3dfd (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933310,0) +Packet 9 + Packet Length: 66 + Collected: Mon Nov 2 13:22:44.941992 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 54322 + CKSUM: 0x1885 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x9ca6a021 + ACK: 0x6194e305 + WIN: 30659 + HLEN: 32 + CKSUM: 0x8c07 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933311,1748199) +Packet 10 + Packet Length: 120 + Collected: Mon Nov 2 13:22:44.943537 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 46295 + CKSUM: 0x3038 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194e305 + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xe700 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748200,1933308) + data: 1448 bytes +Packet 11 + Packet Length: 120 + Collected: Mon Nov 2 13:22:44.944753 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 46296 + CKSUM: 0x3037 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194e8ad + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xe158 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748200,1933308) + data: 1448 bytes +Packet 12 + Packet Length: 120 + Collected: Mon Nov 2 13:23:48.519991 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59226 + CKSUM: 0xfdb4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194e305 + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xe681 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748327,1933308) + data: 1448 bytes +Packet 13 + Packet Length: 120 + Collected: Mon Nov 2 13:24:52.518802 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 7627 + CKSUM: 0xc744 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194e305 + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xe601 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748455,1933308) + data: 1448 bytes +Packet 14 + Packet Length: 66 + Collected: Mon Nov 2 13:24:53.405507 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9506 + CKSUM: 0xc795 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x9ca6a021 + ACK: 0x6194e8ad + WIN: 30478 + HLEN: 32 + CKSUM: 0x8514 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933567,1748455) +Packet 15 + Packet Length: 120 + Collected: Mon Nov 2 13:24:53.407032 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 7802 + CKSUM: 0xc695 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194e8ad + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xe057 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748457,1933308) + data: 1448 bytes +Packet 16 + Packet Length: 120 + Collected: Mon Nov 2 13:24:53.407835 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1086 + ID: 7803 + CKSUM: 0xc832 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -AP--F (0x19) + SEQ: 0x6194ee55 + ACK: 0x9ca6a021 + WIN: 5924 + HLEN: 32 + CKSUM: 0xdc44 (too short to verify) + DLEN: 1034 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748457,1933308) + data: 1034 bytes +Packet 17 + Packet Length: 66 + Collected: Mon Nov 2 13:24:54.254576 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9649 + CKSUM: 0xc706 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x9ca6a021 + ACK: 0x6194f260 + WIN: 30168 + HLEN: 32 + CKSUM: 0x7c93 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933569,1748457) +Packet 18 + Packet Length: 66 + Collected: Mon Nov 2 13:24:54.257254 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9650 + CKSUM: 0xc705 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---F (0x11) + SEQ: 0x9ca6a021 + ACK: 0x6194f260 + WIN: 30168 + HLEN: 32 + CKSUM: 0x7c92 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933569,1748457) +Packet 19 + Packet Length: 66 + Collected: Mon Nov 2 13:24:54.257715 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 7969 + CKSUM: 0xcb96 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x6194f260 + ACK: 0x9ca6a022 + WIN: 5924 + HLEN: 32 + CKSUM: 0xdb44 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1748459,1933569) +Packet 20 + Packet Length: 78 + Collected: Mon Nov 2 13:28:51.030694 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 57685 + CKSUM: 0x0956 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0xe671d16d + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x09c8 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748933,0) SACKREQ +Packet 21 + Packet Length: 78 + Collected: Mon Nov 2 13:28:57.012102 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 59056 + CKSUM: 0x03fb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0xe671d16d + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x09bd (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748944,0) SACKREQ +Packet 22 + Packet Length: 74 + Collected: Mon Nov 2 13:28:57.945891 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 60 + ID: 48380 + CKSUM: 0x2fb3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A--S- (0x12) + SEQ: 0x235e889d + ACK: 0xe671d16e + WIN: 16384 + HLEN: 40 + CKSUM: 0x5b84 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(3) SACKREQ +Packet 23 + Packet Length: 66 + Collected: Mon Nov 2 13:28:57.946104 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 59255 + CKSUM: 0x0340 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671d16e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x0457 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1748946,1934057) +Packet 24 + Packet Length: 120 + Collected: Mon Nov 2 13:28:57.953761 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59261 + CKSUM: 0xfd91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671d16e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xfeae (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748946,1934057) + data: 1448 bytes +Packet 25 + Packet Length: 66 + Collected: Mon Nov 2 13:28:58.828546 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 48533 + CKSUM: 0x2f22 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe671d16e + WIN: 30840 + HLEN: 32 + CKSUM: 0x52ee (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934058,0) +Packet 26 + Packet Length: 66 + Collected: Mon Nov 2 13:28:58.851093 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 48550 + CKSUM: 0x2f11 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe671d716 + WIN: 30659 + HLEN: 32 + CKSUM: 0x9e0d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934059,1748946) +Packet 27 + Packet Length: 120 + Collected: Mon Nov 2 13:28:58.852969 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59514 + CKSUM: 0xfc94 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671d716 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xf904 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748948,1934057) + data: 1448 bytes +Packet 28 + Packet Length: 120 + Collected: Mon Nov 2 13:28:58.854201 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59515 + CKSUM: 0xfc93 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671dcbe + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xf35c (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748948,1934057) + data: 1448 bytes +Packet 29 + Packet Length: 66 + Collected: Mon Nov 2 13:28:59.639286 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 48683 + CKSUM: 0x2e8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe671e266 + WIN: 30297 + HLEN: 32 + CKSUM: 0x9424 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934060,1748948) +Packet 30 + Packet Length: 120 + Collected: Mon Nov 2 13:28:59.640731 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59724 + CKSUM: 0xfbc2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671e266 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xedb2 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748950,1934057) + data: 1448 bytes +Packet 31 + Packet Length: 120 + Collected: Mon Nov 2 13:28:59.641941 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59725 + CKSUM: 0xfbc1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671e80e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xe80a (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748950,1934057) + data: 1448 bytes +Packet 32 + Packet Length: 66 + Collected: Mon Nov 2 13:29:00.526363 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 48862 + CKSUM: 0x2dd9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe671edb6 + WIN: 29935 + HLEN: 32 + CKSUM: 0x8a3a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934062,1748950) +Packet 33 + Packet Length: 120 + Collected: Mon Nov 2 13:29:00.531752 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59939 + CKSUM: 0xfaeb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671edb6 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x3805 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748952,1934057) + data: 1448 bytes +Packet 34 + Packet Length: 120 + Collected: Mon Nov 2 13:29:00.533231 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 59940 + CKSUM: 0xfaea (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671f35e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x10c9 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748952,1934057) + data: 1448 bytes +Packet 35 + Packet Length: 66 + Collected: Mon Nov 2 13:29:01.504129 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49014 + CKSUM: 0x2d41 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe671f906 + WIN: 29573 + HLEN: 32 + CKSUM: 0x8051 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934063,1748952) +Packet 36 + Packet Length: 120 + Collected: Mon Nov 2 13:29:01.506326 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60122 + CKSUM: 0xfa34 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671f906 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xd70f (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748953,1934057) + data: 1448 bytes +Packet 37 + Packet Length: 120 + Collected: Mon Nov 2 13:29:01.507572 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60123 + CKSUM: 0xfa33 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe671feae + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xd167 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748953,1934057) + data: 1448 bytes +Packet 38 + Packet Length: 120 + Collected: Mon Nov 2 13:29:01.513689 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60124 + CKSUM: 0xfa32 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6720456 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x4ee5 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748953,1934057) + data: 1448 bytes +Packet 39 + Packet Length: 66 + Collected: Mon Nov 2 13:29:02.343839 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49151 + CKSUM: 0x2cb8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe6720456 + WIN: 29211 + HLEN: 32 + CKSUM: 0x7668 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934065,1748953) +Packet 40 + Packet Length: 120 + Collected: Mon Nov 2 13:29:02.348985 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60316 + CKSUM: 0xf972 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe67209fe + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x9f77 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748955,1934057) + data: 1448 bytes +Packet 41 + Packet Length: 120 + Collected: Mon Nov 2 13:29:02.350122 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60317 + CKSUM: 0xf971 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6720fa6 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x98d7 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748955,1934057) + data: 1448 bytes +Packet 42 + Packet Length: 66 + Collected: Mon Nov 2 13:29:02.351602 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49157 + CKSUM: 0x2cb2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe67209fe + WIN: 29030 + HLEN: 32 + CKSUM: 0x7175 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934065,1748953) +Packet 43 + Packet Length: 120 + Collected: Mon Nov 2 13:29:02.357110 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60323 + CKSUM: 0xf96b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe672154e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xbac5 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748955,1934057) + data: 1448 bytes +Packet 44 + Packet Length: 66 + Collected: Mon Nov 2 13:29:03.209850 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49283 + CKSUM: 0x2c34 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe672154e + WIN: 28668 + HLEN: 32 + CKSUM: 0x678b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934067,1748955) +Packet 45 + Packet Length: 120 + Collected: Mon Nov 2 13:29:03.212050 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60487 + CKSUM: 0xf8c7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6721af6 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xb51b (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748957,1934057) + data: 1448 bytes +Packet 46 + Packet Length: 120 + Collected: Mon Nov 2 13:29:03.213264 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60488 + CKSUM: 0xf8c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe672209e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xaf73 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748957,1934057) + data: 1448 bytes +Packet 47 + Packet Length: 120 + Collected: Mon Nov 2 13:29:03.214911 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60489 + CKSUM: 0xf8c5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6722646 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xa9cb (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748957,1934057) + data: 1448 bytes +Packet 48 + Packet Length: 66 + Collected: Mon Nov 2 13:29:03.302519 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49322 + CKSUM: 0x2c0d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe6721af6 + WIN: 28487 + HLEN: 32 + CKSUM: 0x6298 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934067,1748955) +Packet 49 + Packet Length: 120 + Collected: Mon Nov 2 13:29:03.304109 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60534 + CKSUM: 0xf898 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6722bee + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x3fb1 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748957,1934057) + data: 1448 bytes +Packet 50 + Packet Length: 66 + Collected: Mon Nov 2 13:29:03.971622 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49445 + CKSUM: 0x2b92 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe672209e + WIN: 28306 + HLEN: 32 + CKSUM: 0x5da1 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934069,1748957) +Packet 51 + Packet Length: 120 + Collected: Mon Nov 2 13:29:03.973788 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60677 + CKSUM: 0xf809 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6723196 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x8ca1 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748958,1934057) + data: 1448 bytes +Packet 52 + Packet Length: 66 + Collected: Mon Nov 2 13:29:04.000410 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49459 + CKSUM: 0x2b84 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe6722bee + WIN: 27944 + HLEN: 32 + CKSUM: 0x53bb (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934069,1748957) +Packet 53 + Packet Length: 120 + Collected: Mon Nov 2 13:29:04.002180 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60699 + CKSUM: 0xf7f3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe672373e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x98d2 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748958,1934057) + data: 1448 bytes +Packet 54 + Packet Length: 120 + Collected: Mon Nov 2 13:29:04.003409 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60700 + CKSUM: 0xf7f2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6723ce6 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x932a (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748958,1934057) + data: 1448 bytes +Packet 55 + Packet Length: 66 + Collected: Mon Nov 2 13:29:04.329810 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49502 + CKSUM: 0x2b59 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe6723196 + WIN: 27763 + HLEN: 32 + CKSUM: 0x4ec8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934069,1748957) +Packet 56 + Packet Length: 120 + Collected: Mon Nov 2 13:29:04.337137 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60771 + CKSUM: 0xf7ab (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe672428e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x4a8a (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748959,1934057) + data: 1448 bytes +Packet 57 + Packet Length: 66 + Collected: Mon Nov 2 13:29:04.819639 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49598 + CKSUM: 0x2af9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe6723ce6 + WIN: 27401 + HLEN: 32 + CKSUM: 0x44e0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934070,1748958) +Packet 58 + Packet Length: 120 + Collected: Mon Nov 2 13:29:04.821798 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60905 + CKSUM: 0xf725 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6724836 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xc331 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748960,1934057) + data: 1448 bytes +Packet 59 + Packet Length: 120 + Collected: Mon Nov 2 13:29:04.823029 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 60906 + CKSUM: 0xf724 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6724dde + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0xbebf (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748960,1934057) + data: 1448 bytes +Packet 60 + Packet Length: 120 + Collected: Mon Nov 2 13:29:04.823321 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 559 + ID: 60907 + CKSUM: 0xfad0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -AP--F (0x19) + SEQ: 0xe6725386 + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x802c (too short to verify) + DLEN: 507 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748960,1934057) + data: 507 bytes +Packet 61 + Packet Length: 66 + Collected: Mon Nov 2 13:29:04.846385 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49603 + CKSUM: 0x2af4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe672428e + WIN: 27220 + HLEN: 32 + CKSUM: 0x3fec (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934071,1748958) +Packet 62 + Packet Length: 78 + Collected: Mon Nov 2 13:29:05.708418 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 49732 + CKSUM: 0x2a67 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe672428e + WIN: 27220 + HLEN: 44 + CKSUM: 0xa6d9 (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(1934072,1748958) SACKS(1)[0xe6724836-0xe6724dde] +Packet 63 + Packet Length: 78 + Collected: Mon Nov 2 13:29:05.710661 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 49733 + CKSUM: 0x2a66 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe672428e + WIN: 27220 + HLEN: 44 + CKSUM: 0xa131 (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(1934072,1748958) SACKS(1)[0xe6724836-0xe6725386] +Packet 64 + Packet Length: 78 + Collected: Mon Nov 2 13:29:05.713943 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 49734 + CKSUM: 0x2a65 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe672428e + WIN: 27220 + HLEN: 44 + CKSUM: 0x9f36 (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(1934072,1748958) SACKS(1)[0xe6724836-0xe6725581] +Packet 65 + Packet Length: 120 + Collected: Mon Nov 2 13:29:05.716105 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 61105 + CKSUM: 0xf65d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe672428e + ACK: 0x235e889e + WIN: 5924 + HLEN: 32 + CKSUM: 0x4a87 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748962,1934057) + data: 1448 bytes +Packet 66 + Packet Length: 66 + Collected: Mon Nov 2 13:29:06.599307 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49865 + CKSUM: 0x29ee (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---- (0x10) + SEQ: 0x235e889e + ACK: 0xe6725582 + WIN: 26613 + HLEN: 32 + CKSUM: 0x2f50 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934074,1748962) +Packet 67 + Packet Length: 66 + Collected: Mon Nov 2 13:29:06.601522 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49867 + CKSUM: 0x29ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4333 + FLG: -A---F (0x11) + SEQ: 0x235e889e + ACK: 0xe6725582 + WIN: 26613 + HLEN: 32 + CKSUM: 0x2f4f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1934074,1748962) +Packet 68 + Packet Length: 66 + Collected: Mon Nov 2 13:29:06.601658 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 61268 + CKSUM: 0xfb62 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4333 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xe6725582 + ACK: 0x235e889f + WIN: 5924 + HLEN: 32 + CKSUM: 0x801e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1748964,1934074) +68 packets seen, 68 TCP packets traced +trace file elapsed time: 0:07:05.580142 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 4 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.67.20:4333 - 132.235.67.34:9080 (a2b) 13> 6< (complete) + 2: 132.235.67.20:4333 - 132.235.67.34:9080 (c2d) 29> 20< (complete) diff --git a/input/OUTPUTbench/6syns.dmp.gz.short b/input/OUTPUTbench/6syns.dmp.gz.short new file mode 100644 index 0000000..fb28fe8 --- /dev/null +++ b/input/OUTPUTbench/6syns.dmp.gz.short @@ -0,0 +1,9 @@ +1 arg remaining, starting with '6syns.dmp.gz' + +68 packets seen, 68 TCP packets traced +trace file elapsed time: 0:07:05.580142 +TCP connection info: +*** 2 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.67.20:4333 - 132.235.67.34:9080 (a2b) 13> 6< (complete) + 2: 132.235.67.20:4333 - 132.235.67.34:9080 (c2d) 29> 20< (complete) diff --git a/input/OUTPUTbench/6syns.dmp.gz.xplots.cksum b/input/OUTPUTbench/6syns.dmp.gz.xplots.cksum new file mode 100644 index 0000000..5c0e045 --- /dev/null +++ b/input/OUTPUTbench/6syns.dmp.gz.xplots.cksum @@ -0,0 +1,22 @@ +3784035608 1929 a2b_owin.xpl +3379057715 252 a2b_rtt.xpl +3211061338 1227 a2b_ssize.xpl +324713085 349 a2b_tput.xpl +2532514217 3348 a2b_tsg.xpl +3353251943 3794 a_b_tline.xpl +2317814203 1509 b2a_owin.xpl +514847952 209 b2a_rtt.xpl +1880157240 127 b2a_ssize.xpl +69312787 118 b2a_tput.xpl +3116777365 2505 b2a_tsg.xpl +1609672760 8474 c2d_owin.xpl +3449402934 1091 c2d_rtt.xpl +2194933853 4086 c2d_ssize.xpl +3298772018 1282 c2d_tput.xpl +716611079 9053 c2d_tsg.xpl +4030144784 10094 c_d_tline.xpl +2186470093 5765 d2c_owin.xpl +608742993 209 d2c_rtt.xpl +1880157240 127 d2c_ssize.xpl +69312787 118 d2c_tput.xpl +505121273 7018 d2c_tsg.xpl diff --git a/input/OUTPUTbench/NASA_ipv6.snoop.gz.long b/input/OUTPUTbench/NASA_ipv6.snoop.gz.long new file mode 100644 index 0000000..3044a1a --- /dev/null +++ b/input/OUTPUTbench/NASA_ipv6.snoop.gz.long @@ -0,0 +1,153 @@ +1 arg remaining, starting with 'NASA_ipv6.snoop.gz' + +169 packets seen, 169 TCP packets traced +trace file elapsed time: 0:00:28.233468 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: fe80::0002:0a00:20ff:fe22:e80f:32797 + host b: fe80::0001:0a00:20ff:fe22:ddb7:21 + complete conn: no (SYNs: 1) (FINs: 1) + first packet: Mon Nov 10 11:02:36.261535 1997 + last packet: Mon Nov 10 11:03:04.495004 1997 + elapsed time: 0:00:28.233468 + total packets: 16 + filename: NASA_ipv6.snoop.gz + a->b: b->a: + total packets: 16 total packets: 0 + ack pkts sent: 15 ack pkts sent: 0 + pure acks sent: 8 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 122 unique bytes sent: 0 + actual data pkts: 6 actual data pkts: 0 + actual data bytes: 122 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1440 bytes mss requested: 0 bytes + max segm size: 66 bytes max segm size: 0 bytes + min segm size: 6 bytes min segm size: 0 bytes + avg segm size: 20 bytes avg segm size: 0 bytes + max win adv: 8640 bytes max win adv: 0 bytes + min win adv: 8640 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8640 bytes avg win adv: 0 bytes + max owin: 125 bytes max owin: 0 bytes + min non-zero owin: 2 bytes min non-zero owin: 0 bytes + avg owin: 65 bytes avg owin: 0 bytes + wavg owin: 43 bytes wavg owin: 0 bytes + initial window: 122 bytes initial window: 0 bytes + initial window: 6 pkts initial window: 0 pkts + ttl stream length: 122 bytes ttl stream length: NA + missed data: 0 bytes missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 24.939 secs data xmit time: 0.000 secs + idletime max: 8705.5 ms idletime max: NA ms + throughput: 4 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: fe80::0002:0a00:20ff:fe22:e80f:32798 + host d: fe80::0001:0a00:20ff:fe22:ddb7:20 + complete conn: no (SYNs: 1) (FINs: 1) + first packet: Mon Nov 10 11:02:58.836617 1997 + last packet: Mon Nov 10 11:02:59.155372 1997 + elapsed time: 0:00:00.318755 + total packets: 153 + filename: NASA_ipv6.snoop.gz + c->d: d->c: + total packets: 153 total packets: 0 + ack pkts sent: 153 ack pkts sent: 0 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 204800 unique bytes sent: 0 + actual data pkts: 150 actual data pkts: 0 + actual data bytes: 204800 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 72 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1440 bytes mss requested: 0 bytes + max segm size: 1440 bytes max segm size: 0 bytes + min segm size: 992 bytes min segm size: 0 bytes + avg segm size: 1365 bytes avg segm size: 0 bytes + max win adv: 25920 bytes max win adv: 0 bytes + min win adv: 8640 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 25807 bytes avg win adv: 0 bytes + max owin: 204803 bytes max owin: 0 bytes + min non-zero owin: 1442 bytes min non-zero owin: 0 bytes + avg owin: 104607 bytes avg owin: 0 bytes + wavg owin: 87986 bytes wavg owin: 0 bytes + initial window: 204800 bytes initial window: 0 bytes + initial window: 150 pkts initial window: 0 pkts + ttl stream length: 204800 bytes ttl stream length: NA + missed data: 0 bytes missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.251 secs data xmit time: 0.000 secs + idletime max: 5339.6 ms idletime max: NA ms + throughput: 642500 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/NASA_ipv6.snoop.gz.packets b/input/OUTPUTbench/NASA_ipv6.snoop.gz.packets new file mode 100644 index 0000000..46f218e --- /dev/null +++ b/input/OUTPUTbench/NASA_ipv6.snoop.gz.packets @@ -0,0 +1,2403 @@ +1 arg remaining, starting with 'NASA_ipv6.snoop.gz' + +Packet 1 + Packet Length: 78 + Collected: Mon Nov 10 11:02:36.261535 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 24 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: ----S- (0x02) + SEQ: 0x0ab40451 + ACK: 0x00000000 + WIN: 8640 + HLEN: 24 + CKSUM: 0xd232 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1440) +Packet 2 + Packet Length: 74 + Collected: Mon Nov 10 11:02:36.263395 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x0ab40452 + ACK: 0x0a8c379d + WIN: 8640 + HLEN: 20 + CKSUM: 0xa7a2 (CORRECT) + DLEN: 0 +Packet 3 + Packet Length: 74 + Collected: Mon Nov 10 11:02:36.710441 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x0ab40452 + ACK: 0x0a8c37db + WIN: 8640 + HLEN: 20 + CKSUM: 0xa764 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 85 + Collected: Mon Nov 10 11:02:39.551149 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 31 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x0ab40452 + ACK: 0x0a8c37db + WIN: 8640 + HLEN: 20 + CKSUM: 0xfebc (CORRECT) + DLEN: 11 + data: 11 bytes +Packet 5 + Packet Length: 74 + Collected: Mon Nov 10 11:02:39.600451 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x0ab4045d + ACK: 0x0a8c37fc + WIN: 8640 + HLEN: 20 + CKSUM: 0xa738 (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 89 + Collected: Mon Nov 10 11:02:43.006097 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 35 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x0ab4045d + ACK: 0x0a8c37fc + WIN: 8640 + HLEN: 20 + CKSUM: 0x433e (CORRECT) + DLEN: 15 + data: 15 bytes +Packet 7 + Packet Length: 74 + Collected: Mon Nov 10 11:02:43.100618 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x0ab4046c + ACK: 0x0a8c3816 + WIN: 8640 + HLEN: 20 + CKSUM: 0xa70f (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 82 + Collected: Mon Nov 10 11:02:50.070774 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 28 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x0ab4046c + ACK: 0x0a8c3816 + WIN: 8640 + HLEN: 20 + CKSUM: 0xd50d (CORRECT) + DLEN: 8 + data: 8 bytes +Packet 9 + Packet Length: 74 + Collected: Mon Nov 10 11:02:50.120494 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x0ab40474 + ACK: 0x0a8c382a + WIN: 8640 + HLEN: 20 + CKSUM: 0xa6f3 (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 140 + Collected: Mon Nov 10 11:02:58.825976 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 86 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x0ab40474 + ACK: 0x0a8c382a + WIN: 8640 + HLEN: 20 + CKSUM: 0x396b (CORRECT) + DLEN: 66 + data: 66 bytes +Packet 11 + Packet Length: 90 + Collected: Mon Nov 10 11:02:58.829606 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 36 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x0ab404b6 + ACK: 0x0a8c3848 + WIN: 8640 + HLEN: 20 + CKSUM: 0x2125 (CORRECT) + DLEN: 16 + data: 16 bytes +Packet 12 + Packet Length: 78 + Collected: Mon Nov 10 11:02:58.836617 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 24 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A--S- (0x12) + SEQ: 0x0ae0083d + ACK: 0x0ab92681 + WIN: 8640 + HLEN: 24 + CKSUM: 0x9cd0 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1440) +Packet 13 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.866108 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0083e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa4d1 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 14 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.869422 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae00dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xdfc2 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 15 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.869635 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0137e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x31f6 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 16 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.873227 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0191e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xf6ed (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 17 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.873418 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae01ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x5761 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 18 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.873583 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0245e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x7d26 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 19 + Packet Length: 74 + Collected: Mon Nov 10 11:02:58.880451 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32797 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x0ab404c6 + ACK: 0x0a8c3896 + WIN: 8640 + HLEN: 20 + CKSUM: 0xa635 (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.921196 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0283e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xe1f4 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 21 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.921367 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae02dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x3611 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 22 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.921561 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0337e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x0315 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 23 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.921747 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0391e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xbac1 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 24 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.927896 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae03ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xb842 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 25 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.928072 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0445e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xe219 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 26 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.928243 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0483e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x4faa (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 27 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.928425 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae04dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x9db5 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 28 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.928620 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0537e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x418f (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 29 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.934870 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0591e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xf7b8 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 30 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.935096 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae05ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x1d4e (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 31 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.935250 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0645e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x01cb (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 32 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.935438 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0683e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xecd9 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 33 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.935622 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae06dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x4842 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 34 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.941651 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0737e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xd2fb (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 35 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.941865 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0791e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xddc8 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 36 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.942038 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae07ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x6716 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 37 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.942220 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0845e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x356b (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 38 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.942396 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0883e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x2987 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 39 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.948528 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae08dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x3eb5 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 40 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.948728 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0937e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x426a (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 41 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.948924 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0991e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xc42c (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 42 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.949121 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae09ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa924 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 43 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.949293 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0a45e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x4221 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 44 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.957789 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0a83e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xecc4 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 45 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.958289 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0adde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xbd6b (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 46 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.958794 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0b37e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xaf55 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 47 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.959383 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0b91e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x1745 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 48 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.959910 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0bebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x703e (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 49 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.960580 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0c45e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x6402 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 50 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.962511 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0c83e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xcbbc (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 51 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.963050 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0cdde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x1393 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 52 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.963779 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0d37e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xb2e6 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 53 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.970245 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0d91e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xed0a (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 54 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.970457 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0debe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x000a (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 55 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.970629 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0e45e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xca37 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 56 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.970861 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0e83e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x2b38 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 57 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.971065 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae0edde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x6604 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 58 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.971273 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0f37e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x2484 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 59 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.971694 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0f91e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x66d8 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 60 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.972156 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae0febe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x867a (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 61 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.984046 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1045e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xf568 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 62 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.993270 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1083e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x446c (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 63 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.993708 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae10dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x7758 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 64 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.994147 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1137e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xfef9 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 65 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.994624 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1191e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xaa4b (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 66 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.995069 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae11ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa285 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 67 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:58.995474 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1245e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x8a57 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 68 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.996680 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1283e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa3d3 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 69 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.997169 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae12dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xc0b6 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 70 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:58.997598 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1337e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x9f63 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 71 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.005179 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1391e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xc044 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 72 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.005365 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae13ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x0b7b (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 73 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:59.005529 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1445e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xacbe (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 74 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.005706 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1483e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xafa7 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 75 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.005886 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae14dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x69b2 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 76 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.006104 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1537e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xf80e (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 77 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.008538 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1591e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x6676 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 78 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.014523 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae15ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x3c6d (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 79 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:59.014701 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1645e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa39d (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 80 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.014902 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1683e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x0456 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 81 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.015091 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae16dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x29c5 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 82 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.015302 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1737e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x4b93 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 83 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.015491 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1791e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xc472 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 84 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.016050 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae17ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x1148 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 85 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:59.016505 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1845e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xfcfd (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 86 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.019854 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1883e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xcae3 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 87 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.020502 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae18dde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x0fbb (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 88 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.027563 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1937e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x5f02 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 89 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.027766 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1991e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xb0cb (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 90 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.027956 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae19ebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xff05 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 91 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:59.028137 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1a45e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa72a (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 92 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.028317 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1a83e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa2a3 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 93 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.028494 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1adde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xdafe (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 94 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.029084 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1b37e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x4617 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 95 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.029588 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1b91e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x4dd5 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 96 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.030137 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x0ae1bebe + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x8637 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 97 + Packet Length: 1066 + Collected: Mon Nov 10 11:02:59.039359 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1c45e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xd798 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 98 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.039570 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1c83e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0x7240 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 99 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.039768 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1cdde + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa2d7 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 100 + Packet Length: 1514 + Collected: Mon Nov 10 11:02:59.039978 1997 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 32798 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x0ae1d37e + ACK: 0x0ab92681 + WIN: 25920 + HLEN: 20 + CKSUM: 0xb977 (CORRECT) + DLEN: 1440 + data: 1440 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:22.778442 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: fe80::0002:0a00:20ff:fe22:e80f:32797 - fe80::0001:0a00:20ff:fe22:ddb7:21 (a2b) 12> 0< (unidirectional) + 2: fe80::0002:0a00:20ff:fe22:e80f:32798 - fe80::0001:0a00:20ff:fe22:ddb7:20 (c2d) 88> 0< (unidirectional) diff --git a/input/OUTPUTbench/NASA_ipv6.snoop.gz.short b/input/OUTPUTbench/NASA_ipv6.snoop.gz.short new file mode 100644 index 0000000..7a49cbe --- /dev/null +++ b/input/OUTPUTbench/NASA_ipv6.snoop.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'NASA_ipv6.snoop.gz' + +169 packets seen, 169 TCP packets traced +trace file elapsed time: 0:00:28.233468 +TCP connection info: + 1: fe80::0002:0a00:20ff:fe22:e80f:32797 - fe80::0001:0a00:20ff:fe22:ddb7:21 (a2b) 16> 0< (unidirectional) + 2: fe80::0002:0a00:20ff:fe22:e80f:32798 - fe80::0001:0a00:20ff:fe22:ddb7:20 (c2d) 153> 0< (unidirectional) diff --git a/input/OUTPUTbench/NASA_ipv6.snoop.gz.xplots.cksum b/input/OUTPUTbench/NASA_ipv6.snoop.gz.xplots.cksum new file mode 100644 index 0000000..0238946 --- /dev/null +++ b/input/OUTPUTbench/NASA_ipv6.snoop.gz.xplots.cksum @@ -0,0 +1,16 @@ +3781533915 4438 a2b_owin.xpl +2882023071 1028 a2b_ssize.xpl +2635363065 334 a2b_tput.xpl +4256698918 2162 a2b_tsg.xpl +1143470980 3148 a_b_tline.xpl +3269830500 162 b2a_owin.xpl +26354894 160 b2a_ssize.xpl +1895462471 3382 b2a_tsg.xpl +146442902 49046 c2d_owin.xpl +2757124690 23923 c2d_ssize.xpl +783701041 8262 c2d_tput.xpl +4120905869 23737 c2d_tsg.xpl +655059292 29686 c_d_tline.xpl +3636276899 162 d2c_owin.xpl +3421599232 160 d2c_ssize.xpl +726941266 30178 d2c_tsg.xpl diff --git a/input/OUTPUTbench/all.snoop.gz.long b/input/OUTPUTbench/all.snoop.gz.long new file mode 100644 index 0000000..dd419f4 --- /dev/null +++ b/input/OUTPUTbench/all.snoop.gz.long @@ -0,0 +1,4079 @@ +1 arg remaining, starting with 'all.snoop.gz' + +829 packets seen, 829 TCP packets traced +trace file elapsed time: 0:00:04.147060 +TCP connection info: +55 TCP connections traced: +*** 2 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 132.235.1.2:119 + host b: 192.20.239.131:2380 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:51.975039 1994 + last packet: Tue Mar 8 21:42:55.515583 1994 + elapsed time: 0:00:03.540544 + total packets: 97 + filename: all.snoop.gz + a->b: b->a: + total packets: 43 total packets: 54 + ack pkts sent: 43 ack pkts sent: 54 + pure acks sent: 17 pure acks sent: 4 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 273 unique bytes sent: 16126 + actual data pkts: 26 actual data pkts: 50 + actual data bytes: 273 actual data bytes: 16126 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 26 pushed data pkts: 25 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 13 bytes max segm size: 512 bytes + min segm size: 8 bytes min segm size: 35 bytes + avg segm size: 10 bytes avg segm size: 322 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 2684 bytes min win adv: 4083 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4063 bytes avg win adv: 4095 bytes + max owin: 14 bytes max owin: 1413 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 7 bytes avg owin: 593 bytes + wavg owin: 2 bytes wavg owin: 320 bytes + initial window: 8 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 273 bytes truncated data: 16126 bytes + truncated packets: 26 pkts truncated packets: 50 pkts + data xmit time: 3.366 secs data xmit time: 3.260 secs + idletime max: 780.7 ms idletime max: 920.1 ms + throughput: 77 Bps throughput: 4555 Bps + + RTT samples: 26 RTT samples: 28 + RTT min: 10.2 ms RTT min: 1.0 ms + RTT max: 174.2 ms RTT max: 127.7 ms + RTT avg: 38.3 ms RTT avg: 27.5 ms + RTT stdev: 35.9 ms RTT stdev: 40.5 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 13 RTT full_sz smpls: 3 + RTT full_sz min: 10.2 ms RTT full_sz min: 1.6 ms + RTT full_sz max: 174.2 ms RTT full_sz max: 2.1 ms + RTT full_sz avg: 36.0 ms RTT full_sz avg: 1.8 ms + RTT full_sz stdev: 44.3 ms RTT full_sz stdev: 0.3 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 22 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.200.5:17157 + host d: 132.235.2.30:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:51.994384 1994 + last packet: Tue Mar 8 21:42:55.881094 1994 + elapsed time: 0:00:03.886709 + total packets: 22 + filename: all.snoop.gz + c->d: d->c: + total packets: 14 total packets: 8 + ack pkts sent: 14 ack pkts sent: 8 + pure acks sent: 14 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 8192 + actual data pkts: 0 actual data pkts: 8 + actual data bytes: 0 actual data bytes: 8192 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 1024 bytes + min segm size: 0 bytes min segm size: 1024 bytes + avg segm size: 0 bytes avg segm size: 1023 bytes + max win adv: 2048 bytes max win adv: 4096 bytes + min win adv: 394 bytes min win adv: 4096 bytes + zero win adv: 2 times zero win adv: 0 times + avg win adv: 1084 bytes avg win adv: 4096 bytes + max owin: 1 bytes max owin: 2049 bytes + min non-zero owin: 1 bytes min non-zero owin: 1025 bytes + avg owin: 0 bytes avg owin: 1281 bytes + wavg owin: 0 bytes wavg owin: 1459 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 8192 bytes + truncated packets: 0 pkts truncated packets: 8 pkts + data xmit time: 0.000 secs data xmit time: 3.878 secs + idletime max: 858.2 ms idletime max: 867.9 ms + throughput: 0 Bps throughput: 2108 Bps + + RTT samples: 0 RTT samples: 8 + RTT min: 0.0 ms RTT min: 4.4 ms + RTT max: 0.0 ms RTT max: 8.3 ms + RTT avg: 0.0 ms RTT avg: 6.5 ms + RTT stdev: 0.0 ms RTT stdev: 1.2 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 8 + RTT full_sz min: 0.0 ms RTT full_sz min: 4.4 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 8.3 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 6.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 1.2 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 3: + host e: 132.235.3.130:1022 + host f: 132.235.1.2:513 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.008614 1994 + last packet: Tue Mar 8 21:42:56.091352 1994 + elapsed time: 0:00:04.082737 + total packets: 27 + filename: all.snoop.gz + e->f: f->e: + total packets: 15 total packets: 12 + ack pkts sent: 15 ack pkts sent: 12 + pure acks sent: 6 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 9 unique bytes sent: 962 + actual data pkts: 9 actual data pkts: 9 + actual data bytes: 9 actual data bytes: 962 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 9 pushed data pkts: 9 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 532 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 0 bytes avg segm size: 106 bytes + max win adv: 16384 bytes max win adv: 4096 bytes + min win adv: 16384 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16384 bytes avg win adv: 4095 bytes + max owin: 2 bytes max owin: 533 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 81 bytes + wavg owin: 0 bytes wavg owin: 147 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 9 bytes truncated data: 962 bytes + truncated packets: 9 pkts truncated packets: 9 pkts + data xmit time: 4.083 secs data xmit time: 3.048 secs + idletime max: 1000.1 ms idletime max: 1121.0 ms + throughput: 2 Bps throughput: 236 Bps + + RTT samples: 8 RTT samples: 9 + RTT min: 2.5 ms RTT min: 25.9 ms + RTT max: 153.6 ms RTT max: 198.5 ms + RTT avg: 65.3 ms RTT avg: 131.1 ms + RTT stdev: 59.4 ms RTT stdev: 65.8 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 17.8 ms RTT full_sz min: 197.0 ms + RTT full_sz max: 17.8 ms RTT full_sz max: 197.0 ms + RTT full_sz avg: 17.8 ms RTT full_sz avg: 197.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 4: + host g: 132.235.1.2:1835 + host h: 149.84.33.3:1729 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.021157 1994 + last packet: Tue Mar 8 21:42:55.621480 1994 + elapsed time: 0:00:03.600322 + total packets: 5 + filename: all.snoop.gz + g->h: h->g: + total packets: 3 total packets: 2 + ack pkts sent: 3 ack pkts sent: 2 + pure acks sent: 3 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 77 + actual data pkts: 0 actual data pkts: 2 + actual data bytes: 0 actual data bytes: 77 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 54 bytes + min segm size: 0 bytes min segm size: 23 bytes + avg segm size: 0 bytes avg segm size: 38 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4042 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4070 bytes avg win adv: 4096 bytes + max owin: 1 bytes max owin: 55 bytes + min non-zero owin: 1 bytes min non-zero owin: 24 bytes + avg owin: 0 bytes avg owin: 39 bytes + wavg owin: 0 bytes wavg owin: 38 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 77 bytes + truncated packets: 0 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 2.564 secs + idletime max: 2599.9 ms idletime max: 2563.6 ms + throughput: 0 Bps throughput: 21 Bps + + RTT samples: 0 RTT samples: 2 + RTT min: 0.0 ms RTT min: 65.2 ms + RTT max: 0.0 ms RTT max: 101.4 ms + RTT avg: 0.0 ms RTT avg: 83.3 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 1 + RTT full_sz min: 0.0 ms RTT full_sz min: 65.2 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 65.2 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 65.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 5: + host i: 132.235.1.2:23 + host j: 132.235.1.64:32023 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.021353 1994 + last packet: Tue Mar 8 21:42:55.863931 1994 + elapsed time: 0:00:03.842578 + total packets: 35 + filename: all.snoop.gz + i->j: j->i: + total packets: 15 total packets: 20 + ack pkts sent: 15 ack pkts sent: 20 + pure acks sent: 5 pure acks sent: 10 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 32 unique bytes sent: 10 + actual data pkts: 10 actual data pkts: 10 + actual data bytes: 32 actual data bytes: 10 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 10 pushed data pkts: 10 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 21 bytes max segm size: 1 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 3 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 164 bytes + min win adv: 4093 bytes min win adv: 89 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4095 bytes avg win adv: 155 bytes + max owin: 22 bytes max owin: 3 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 3 bytes avg owin: 1 bytes + wavg owin: 1 bytes wavg owin: 0 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 32 bytes truncated data: 10 bytes + truncated packets: 10 pkts truncated packets: 10 pkts + data xmit time: 3.777 secs data xmit time: 3.555 secs + idletime max: 889.2 ms idletime max: 852.1 ms + throughput: 8 Bps throughput: 3 Bps + + RTT samples: 10 RTT samples: 8 + RTT min: 11.7 ms RTT min: 1.0 ms + RTT max: 49.2 ms RTT max: 78.4 ms + RTT avg: 20.8 ms RTT avg: 21.2 ms + RTT stdev: 11.7 ms RTT stdev: 31.3 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 11.7 ms RTT full_sz min: 3.5 ms + RTT full_sz max: 11.7 ms RTT full_sz max: 3.5 ms + RTT full_sz avg: 11.7 ms RTT full_sz avg: 3.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 2 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 6: + host k: 129.110.31.10:2770 + host l: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.025175 1994 + last packet: Tue Mar 8 21:42:54.182271 1994 + elapsed time: 0:00:02.157096 + total packets: 14 + filename: all.snoop.gz + k->l: l->k: + total packets: 8 total packets: 6 + ack pkts sent: 8 ack pkts sent: 6 + pure acks sent: 4 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 6 unique bytes sent: 61 + actual data pkts: 4 actual data pkts: 4 + actual data bytes: 6 actual data bytes: 61 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 4 pushed data pkts: 4 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 55 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 15 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 3 bytes max owin: 56 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 11 bytes + wavg owin: 0 bytes wavg owin: 1 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 6 bytes truncated data: 61 bytes + truncated packets: 4 pkts truncated packets: 4 pkts + data xmit time: 2.055 secs data xmit time: 2.062 secs + idletime max: 1939.8 ms idletime max: 2013.3 ms + throughput: 3 Bps throughput: 28 Bps + + RTT samples: 4 RTT samples: 4 + RTT min: 13.5 ms RTT min: 73.5 ms + RTT max: 156.4 ms RTT max: 196.9 ms + RTT avg: 54.9 ms RTT avg: 141.6 ms + RTT stdev: 67.9 ms RTT stdev: 51.7 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 21.5 ms RTT full_sz min: 73.5 ms + RTT full_sz max: 21.5 ms RTT full_sz max: 73.5 ms + RTT full_sz avg: 21.5 ms RTT full_sz avg: 73.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 7: + host m: 132.235.1.64:26638 + host n: 132.235.4.63:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.098512 1994 + last packet: Tue Mar 8 21:42:56.095870 1994 + elapsed time: 0:00:03.997358 + total packets: 51 + filename: all.snoop.gz + m->n: n->m: + total packets: 34 total packets: 17 + ack pkts sent: 34 ack pkts sent: 17 + pure acks sent: 17 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 17 unique bytes sent: 47 + actual data pkts: 17 actual data pkts: 17 + actual data bytes: 17 actual data bytes: 47 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 17 pushed data pkts: 17 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 7 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 0 bytes avg segm size: 2 bytes + max win adv: 130 bytes max win adv: 8774 bytes + min win adv: 83 bytes min win adv: 8774 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 104 bytes avg win adv: 8774 bytes + max owin: 2 bytes max owin: 8 bytes + min non-zero owin: 1 bytes min non-zero owin: 2 bytes + avg owin: 1 bytes avg owin: 3 bytes + wavg owin: 0 bytes wavg owin: 2 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 17 bytes truncated data: 47 bytes + truncated packets: 17 pkts truncated packets: 17 pkts + data xmit time: 3.981 secs data xmit time: 3.981 secs + idletime max: 409.5 ms idletime max: 426.5 ms + throughput: 4 Bps throughput: 12 Bps + + RTT samples: 17 RTT samples: 17 + RTT min: 4.1 ms RTT min: 12.1 ms + RTT max: 4.8 ms RTT max: 40.7 ms + RTT avg: 4.4 ms RTT avg: 17.5 ms + RTT stdev: 0.1 ms RTT stdev: 7.4 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 5 + RTT full_sz min: 4.4 ms RTT full_sz min: 12.1 ms + RTT full_sz max: 4.4 ms RTT full_sz max: 28.6 ms + RTT full_sz avg: 4.4 ms RTT full_sz avg: 17.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 7.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 8: + host o: 147.205.85.10:3043 + host p: 132.235.1.100:5000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.100613 1994 + last packet: Tue Mar 8 21:42:55.863232 1994 + elapsed time: 0:00:03.762618 + total packets: 6 + filename: all.snoop.gz + o->p: p->o: + total packets: 3 total packets: 3 + ack pkts sent: 3 ack pkts sent: 3 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3 unique bytes sent: 720 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 3 actual data bytes: 720 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 512 bytes + min segm size: 3 bytes min segm size: 208 bytes + avg segm size: 2 bytes avg segm size: 359 bytes + max win adv: 6144 bytes max win adv: 4096 bytes + min win adv: 6144 bytes min win adv: 4093 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 6144 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 721 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 411 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 3 bytes truncated data: 720 bytes + truncated packets: 1 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 2870.5 ms idletime max: 942.7 ms + throughput: 1 Bps throughput: 191 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 86.5 ms RTT min: 683.8 ms + RTT max: 86.5 ms RTT max: 683.8 ms + RTT avg: 86.5 ms RTT avg: 683.8 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 86.5 ms RTT full_sz min: 683.8 ms + RTT full_sz max: 86.5 ms RTT full_sz max: 683.8 ms + RTT full_sz avg: 86.5 ms RTT full_sz avg: 683.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 9: + host q: 132.235.200.5:24077 + host r: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.119240 1994 + last packet: Tue Mar 8 21:42:56.046143 1994 + elapsed time: 0:00:03.926902 + total packets: 22 + filename: all.snoop.gz + q->r: r->q: + total packets: 14 total packets: 8 + ack pkts sent: 14 ack pkts sent: 8 + pure acks sent: 14 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 8192 + actual data pkts: 0 actual data pkts: 8 + actual data bytes: 0 actual data bytes: 8192 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 1024 bytes + min segm size: 0 bytes min segm size: 1024 bytes + avg segm size: 0 bytes avg segm size: 1023 bytes + max win adv: 2048 bytes max win adv: 4096 bytes + min win adv: 394 bytes min win adv: 4096 bytes + zero win adv: 2 times zero win adv: 0 times + avg win adv: 1084 bytes avg win adv: 4096 bytes + max owin: 1 bytes max owin: 2049 bytes + min non-zero owin: 1 bytes min non-zero owin: 1025 bytes + avg owin: 0 bytes avg owin: 1281 bytes + wavg owin: 0 bytes wavg owin: 1246 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 8192 bytes + truncated packets: 0 pkts truncated packets: 8 pkts + data xmit time: 0.000 secs data xmit time: 3.917 secs + idletime max: 859.3 ms idletime max: 867.5 ms + throughput: 0 Bps throughput: 2086 Bps + + RTT samples: 0 RTT samples: 8 + RTT min: 0.0 ms RTT min: 5.4 ms + RTT max: 0.0 ms RTT max: 7.8 ms + RTT avg: 0.0 ms RTT avg: 6.6 ms + RTT stdev: 0.0 ms RTT stdev: 0.9 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 8 + RTT full_sz min: 0.0 ms RTT full_sz min: 5.4 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 7.8 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 6.6 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.9 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 10: + host s: 132.235.17.1:3711 + host t: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.157530 1994 + last packet: Tue Mar 8 21:42:52.722329 1994 + elapsed time: 0:00:00.564799 + total packets: 7 + filename: all.snoop.gz + s->t: t->s: + total packets: 4 total packets: 3 + ack pkts sent: 4 ack pkts sent: 3 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 6 unique bytes sent: 6 + actual data pkts: 2 actual data pkts: 2 + actual data bytes: 6 actual data bytes: 6 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 3 bytes + min segm size: 3 bytes min segm size: 3 bytes + avg segm size: 2 bytes avg segm size: 2 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 4 bytes max owin: 4 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2 bytes avg owin: 3 bytes + wavg owin: 1 bytes wavg owin: 1 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 6 bytes truncated data: 6 bytes + truncated packets: 2 pkts truncated packets: 2 pkts + data xmit time: 0.169 secs data xmit time: 0.446 secs + idletime max: 3399.8 ms idletime max: 3508.1 ms + throughput: 11 Bps throughput: 11 Bps + + RTT samples: 2 RTT samples: 2 + RTT min: 10.4 ms RTT min: 108.3 ms + RTT max: 94.8 ms RTT max: 154.5 ms + RTT avg: 52.6 ms RTT avg: 131.4 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 2 RTT full_sz smpls: 2 + RTT full_sz min: 10.4 ms RTT full_sz min: 108.3 ms + RTT full_sz max: 94.8 ms RTT full_sz max: 154.5 ms + RTT full_sz avg: 52.6 ms RTT full_sz avg: 131.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 11: + host u: 150.252.1.1:1211 + host v: 132.235.1.100:5000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.187863 1994 + last packet: Tue Mar 8 21:42:55.828634 1994 + elapsed time: 0:00:03.640771 + total packets: 14 + filename: all.snoop.gz + u->v: v->u: + total packets: 8 total packets: 6 + ack pkts sent: 8 ack pkts sent: 6 + pure acks sent: 4 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 12 unique bytes sent: 1186 + actual data pkts: 4 actual data pkts: 4 + actual data bytes: 12 actual data bytes: 1186 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 4 pushed data pkts: 4 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 425 bytes + min segm size: 3 bytes min segm size: 189 bytes + avg segm size: 2 bytes avg segm size: 296 bytes + max win adv: 6144 bytes max win adv: 4096 bytes + min win adv: 6144 bytes min win adv: 4093 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 6144 bytes avg win adv: 4095 bytes + max owin: 4 bytes max owin: 426 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2 bytes avg owin: 198 bytes + wavg owin: 1 bytes wavg owin: 287 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 12 bytes truncated data: 1186 bytes + truncated packets: 4 pkts truncated packets: 4 pkts + data xmit time: 3.356 secs data xmit time: 3.237 secs + idletime max: 898.6 ms idletime max: 1249.2 ms + throughput: 3 Bps throughput: 326 Bps + + RTT samples: 4 RTT samples: 4 + RTT min: 34.5 ms RTT min: 175.0 ms + RTT max: 110.0 ms RTT max: 279.7 ms + RTT avg: 67.0 ms RTT avg: 230.0 ms + RTT stdev: 32.2 ms RTT stdev: 43.3 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 4 RTT full_sz smpls: 1 + RTT full_sz min: 34.5 ms RTT full_sz min: 240.5 ms + RTT full_sz max: 110.0 ms RTT full_sz max: 240.5 ms + RTT full_sz avg: 67.0 ms RTT full_sz avg: 240.5 ms + RTT full_sz stdev: 32.2 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 12: + host w: 132.235.24.25:23 + host x: 129.71.2.1:1890 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.200649 1994 + last packet: Tue Mar 8 21:42:55.802193 1994 + elapsed time: 0:00:03.601544 + total packets: 32 + filename: all.snoop.gz + w->x: x->w: + total packets: 32 total packets: 0 + ack pkts sent: 32 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 34 unique bytes sent: 0 + actual data pkts: 32 actual data pkts: 0 + actual data bytes: 68 actual data bytes: 0 + rexmt data pkts: 16 rexmt data pkts: 0 + rexmt data bytes: 34 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 32 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 11 bytes max segm size: 0 bytes + min segm size: 1 bytes min segm size: 0 bytes + avg segm size: 2 bytes avg segm size: 0 bytes + max win adv: 9112 bytes max win adv: 0 bytes + min win adv: 9112 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9112 bytes avg win adv: 0 bytes + max owin: 11 bytes max owin: 0 bytes + min non-zero owin: 1 bytes min non-zero owin: 0 bytes + avg owin: 2 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 34 bytes initial window: 0 bytes + initial window: 16 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 68 bytes truncated data: 0 bytes + truncated packets: 32 pkts truncated packets: 0 pkts + data xmit time: 3.602 secs data xmit time: 0.000 secs + idletime max: 436.1 ms idletime max: NA ms + hardware dups: 16 segs hardware dups: 0 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 9 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 0.3 ms min retr time: 0.0 ms + max retr time: 1.4 ms max retr time: 0.0 ms + avg retr time: 0.7 ms avg retr time: 0.0 ms + sdv retr time: 0.3 ms sdv retr time: 0.0 ms +================================ +TCP connection 13: + host y: 132.235.2.30:23 + host z: 132.235.200.5:3592 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.205305 1994 + last packet: Tue Mar 8 21:42:55.908570 1994 + elapsed time: 0:00:03.703265 + total packets: 16 + filename: all.snoop.gz + y->z: z->y: + total packets: 8 total packets: 8 + ack pkts sent: 8 ack pkts sent: 8 + pure acks sent: 0 pure acks sent: 8 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 245 unique bytes sent: 0 + actual data pkts: 8 actual data pkts: 0 + actual data bytes: 245 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 8 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 153 bytes max segm size: 0 bytes + min segm size: 1 bytes min segm size: 0 bytes + avg segm size: 30 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 2048 bytes + min win adv: 4096 bytes min win adv: 2048 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 2048 bytes + max owin: 154 bytes max owin: 1 bytes + min non-zero owin: 2 bytes min non-zero owin: 1 bytes + avg owin: 31 bytes avg owin: 1 bytes + wavg owin: 73 bytes wavg owin: 0 bytes + initial window: 16 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 245 bytes truncated data: 0 bytes + truncated packets: 8 pkts truncated packets: 0 pkts + data xmit time: 3.505 secs data xmit time: 0.000 secs + idletime max: 1666.7 ms idletime max: 1651.3 ms + throughput: 66 Bps throughput: 0 Bps + + RTT samples: 8 RTT samples: 0 + RTT min: 158.3 ms RTT min: 0.0 ms + RTT max: 201.9 ms RTT max: 0.0 ms + RTT avg: 187.3 ms RTT avg: 0.0 ms + RTT stdev: 18.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 198.7 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 198.7 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 198.7 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 14: + host aa: 147.205.85.10:3054 + host ab: 132.235.1.100:5000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.220433 1994 + last packet: Tue Mar 8 21:42:56.014661 1994 + elapsed time: 0:00:03.794227 + total packets: 10 + filename: all.snoop.gz + aa->ab: ab->aa: + total packets: 4 total packets: 6 + ack pkts sent: 4 ack pkts sent: 6 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 8 unique bytes sent: 617 + actual data pkts: 2 actual data pkts: 4 + actual data bytes: 8 actual data bytes: 1129 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 512 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 5 bytes max segm size: 512 bytes + min segm size: 3 bytes min segm size: 52 bytes + avg segm size: 3 bytes avg segm size: 282 bytes + max win adv: 6144 bytes max win adv: 4096 bytes + min win adv: 6144 bytes min win adv: 4091 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 6144 bytes avg win adv: 4094 bytes + max owin: 5 bytes max owin: 565 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2 bytes avg owin: 226 bytes + wavg owin: 3 bytes wavg owin: 20 bytes + initial window: 5 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 8 bytes truncated data: 1129 bytes + truncated packets: 2 pkts truncated packets: 4 pkts + data xmit time: 1.489 secs data xmit time: 2.843 secs + idletime max: 2305.3 ms idletime max: 1443.1 ms + throughput: 2 Bps throughput: 163 Bps + + RTT samples: 2 RTT samples: 1 + RTT min: 37.8 ms RTT min: 593.4 ms + RTT max: 148.9 ms RTT max: 593.4 ms + RTT avg: 93.4 ms RTT avg: 593.4 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 37.8 ms RTT full_sz min: 593.4 ms + RTT full_sz max: 37.8 ms RTT full_sz max: 593.4 ms + RTT full_sz avg: 37.8 ms RTT full_sz avg: 593.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 1 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 1353.8 ms + max retr time: 0.0 ms max retr time: 1353.8 ms + avg retr time: 0.0 ms avg retr time: 1353.6 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 15: + host ac: 132.235.1.64:11049 + host ad: 132.235.2.1:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.258052 1994 + last packet: Tue Mar 8 21:42:55.852370 1994 + elapsed time: 0:00:03.594317 + total packets: 50 + filename: all.snoop.gz + ac->ad: ad->ac: + total packets: 28 total packets: 22 + ack pkts sent: 28 ack pkts sent: 22 + pure acks sent: 14 pure acks sent: 5 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 16 unique bytes sent: 525 + actual data pkts: 14 actual data pkts: 17 + actual data bytes: 16 actual data bytes: 525 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 14 pushed data pkts: 12 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 2 bytes max segm size: 82 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 30 bytes + max win adv: 164 bytes max win adv: 16384 bytes + min win adv: 123 bytes min win adv: 16384 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 154 bytes avg win adv: 16384 bytes + max owin: 3 bytes max owin: 165 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 34 bytes + wavg owin: 0 bytes wavg owin: 10 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 16 bytes truncated data: 525 bytes + truncated packets: 14 pkts truncated packets: 17 pkts + data xmit time: 2.361 secs data xmit time: 3.577 secs + idletime max: 595.0 ms idletime max: 733.7 ms + throughput: 4 Bps throughput: 146 Bps + + RTT samples: 12 RTT samples: 14 + RTT min: 2.7 ms RTT min: 12.8 ms + RTT max: 137.5 ms RTT max: 50.7 ms + RTT avg: 28.5 ms RTT avg: 22.3 ms + RTT stdev: 40.7 ms RTT stdev: 10.7 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 2 RTT full_sz smpls: 3 + RTT full_sz min: 15.9 ms RTT full_sz min: 30.5 ms + RTT full_sz max: 47.0 ms RTT full_sz max: 50.7 ms + RTT full_sz avg: 31.4 ms RTT full_sz avg: 37.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 11.1 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 2 segs cum acked: 3 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 16: + host ae: 132.235.1.100:5000 + host af: 134.241.10.5:1783 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.259342 1994 + last packet: Tue Mar 8 21:42:52.373971 1994 + elapsed time: 0:00:00.114629 + total packets: 2 + filename: all.snoop.gz + ae->af: af->ae: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 437 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 437 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 437 bytes max segm size: 0 bytes + min segm size: 437 bytes min segm size: 0 bytes + avg segm size: 436 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 437 bytes max owin: 1 bytes + min non-zero owin: 437 bytes min non-zero owin: 1 bytes + avg owin: 437 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 437 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 437 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 3862.8 ms idletime max: 3748.1 ms + throughput: 3812 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 114.6 ms RTT min: 0.0 ms + RTT max: 114.6 ms RTT max: 0.0 ms + RTT avg: 114.6 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 114.6 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 114.6 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 114.6 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 17: + host ag: 132.235.17.161:28930 + host ah: 132.235.1.6:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.290607 1994 + last packet: Tue Mar 8 21:42:56.047586 1994 + elapsed time: 0:00:03.756978 + total packets: 32 + filename: all.snoop.gz + ag->ah: ah->ag: + total packets: 16 total packets: 16 + ack pkts sent: 16 ack pkts sent: 16 + pure acks sent: 8 pure acks sent: 8 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 8 unique bytes sent: 8 + actual data pkts: 8 actual data pkts: 8 + actual data bytes: 8 actual data bytes: 8 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 8 pushed data pkts: 8 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 1 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 1024 bytes max win adv: 7798 bytes + min win adv: 1024 bytes min win adv: 7791 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 1024 bytes avg win adv: 7794 bytes + max owin: 2 bytes max owin: 2 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 8 bytes truncated data: 8 bytes + truncated packets: 8 pkts truncated packets: 8 pkts + data xmit time: 3.748 secs data xmit time: 3.746 secs + idletime max: 1894.1 ms idletime max: 1899.7 ms + throughput: 2 Bps throughput: 2 Bps + + RTT samples: 8 RTT samples: 8 + RTT min: 1.4 ms RTT min: 3.8 ms + RTT max: 1.6 ms RTT max: 5.0 ms + RTT avg: 1.5 ms RTT avg: 4.2 ms + RTT stdev: 0.0 ms RTT stdev: 0.4 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1.6 ms RTT full_sz min: 4.4 ms + RTT full_sz max: 1.6 ms RTT full_sz max: 4.4 ms + RTT full_sz avg: 1.6 ms RTT full_sz avg: 4.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 18: + host ai: 132.235.200.5:2065 + host aj: 132.235.2.30:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.330993 1994 + last packet: Tue Mar 8 21:42:55.999623 1994 + elapsed time: 0:00:03.668629 + total packets: 16 + filename: all.snoop.gz + ai->aj: aj->ai: + total packets: 9 total packets: 7 + ack pkts sent: 9 ack pkts sent: 7 + pure acks sent: 5 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 11 unique bytes sent: 381 + actual data pkts: 4 actual data pkts: 6 + actual data bytes: 11 actual data bytes: 381 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 4 pushed data pkts: 6 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 251 bytes + min segm size: 2 bytes min segm size: 2 bytes + avg segm size: 2 bytes avg segm size: 63 bytes + max win adv: 2048 bytes max win adv: 4096 bytes + min win adv: 2048 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 2048 bytes avg win adv: 4096 bytes + max owin: 4 bytes max owin: 252 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2 bytes avg owin: 55 bytes + wavg owin: 0 bytes wavg owin: 128 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 11 bytes truncated data: 381 bytes + truncated packets: 4 pkts truncated packets: 6 pkts + data xmit time: 3.665 secs data xmit time: 3.657 secs + idletime max: 1399.7 ms idletime max: 1371.6 ms + throughput: 3 Bps throughput: 104 Bps + + RTT samples: 4 RTT samples: 5 + RTT min: 3.6 ms RTT min: 158.6 ms + RTT max: 92.9 ms RTT max: 198.9 ms + RTT avg: 28.0 ms RTT avg: 177.2 ms + RTT stdev: 43.4 ms RTT stdev: 18.6 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 3 RTT full_sz smpls: 1 + RTT full_sz min: 3.6 ms RTT full_sz min: 198.9 ms + RTT full_sz max: 11.3 ms RTT full_sz max: 198.9 ms + RTT full_sz avg: 6.3 ms RTT full_sz avg: 198.9 ms + RTT full_sz stdev: 4.3 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 19: + host ak: 132.235.1.64:32301 + host al: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.358858 1994 + last packet: Tue Mar 8 21:42:55.480405 1994 + elapsed time: 0:00:03.121547 + total packets: 24 + filename: all.snoop.gz + ak->al: al->ak: + total packets: 16 total packets: 8 + ack pkts sent: 16 ack pkts sent: 8 + pure acks sent: 8 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 8 unique bytes sent: 59 + actual data pkts: 8 actual data pkts: 8 + actual data bytes: 8 actual data bytes: 59 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 8 pushed data pkts: 8 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 8 bytes + min segm size: 1 bytes min segm size: 3 bytes + avg segm size: 0 bytes avg segm size: 7 bytes + max win adv: 153 bytes max win adv: 4096 bytes + min win adv: 94 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 121 bytes avg win adv: 4096 bytes + max owin: 2 bytes max owin: 9 bytes + min non-zero owin: 1 bytes min non-zero owin: 4 bytes + avg owin: 1 bytes avg owin: 8 bytes + wavg owin: 0 bytes wavg owin: 7 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 8 bytes truncated data: 59 bytes + truncated packets: 8 pkts truncated packets: 8 pkts + data xmit time: 3.105 secs data xmit time: 3.093 secs + idletime max: 1277.2 ms idletime max: 1294.6 ms + throughput: 3 Bps throughput: 19 Bps + + RTT samples: 8 RTT samples: 8 + RTT min: 3.3 ms RTT min: 12.7 ms + RTT max: 62.6 ms RTT max: 42.3 ms + RTT avg: 19.2 ms RTT avg: 18.2 ms + RTT stdev: 22.2 ms RTT stdev: 10.2 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 7 + RTT full_sz min: 3.3 ms RTT full_sz min: 12.7 ms + RTT full_sz max: 3.3 ms RTT full_sz max: 42.3 ms + RTT full_sz avg: 3.3 ms RTT full_sz avg: 18.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 10.8 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 20: + host am: 132.235.1.100:5000 + host an: 144.32.128.6:4427 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.414407 1994 + last packet: Tue Mar 8 21:42:52.671748 1994 + elapsed time: 0:00:00.257341 + total packets: 2 + filename: all.snoop.gz + am->an: an->am: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 55 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 55 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 55 bytes max segm size: 0 bytes + min segm size: 55 bytes min segm size: 0 bytes + avg segm size: 54 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 61440 bytes + min win adv: 4096 bytes min win adv: 61440 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 61440 bytes + max owin: 55 bytes max owin: 1 bytes + min non-zero owin: 55 bytes min non-zero owin: 1 bytes + avg owin: 55 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 55 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 55 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 3707.7 ms idletime max: 3450.4 ms + throughput: 214 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 257.3 ms RTT min: 0.0 ms + RTT max: 257.3 ms RTT max: 0.0 ms + RTT avg: 257.3 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 257.3 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 257.3 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 257.3 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 21: + host ao: 132.235.1.2:3141 + host ap: 132.235.1.147:9100 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Mar 8 21:42:52.585542 1994 + last packet: Tue Mar 8 21:42:53.888845 1994 + elapsed time: 0:00:01.303303 + total packets: 16 + filename: all.snoop.gz + ao->ap: ap->ao: + total packets: 9 total packets: 7 + ack pkts sent: 8 ack pkts sent: 7 + pure acks sent: 1 pure acks sent: 6 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3695 unique bytes sent: 0 + actual data pkts: 7 actual data pkts: 0 + actual data bytes: 3695 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1460 bytes max segm size: 0 bytes + min segm size: 2 bytes min segm size: 0 bytes + avg segm size: 527 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 8760 bytes + min win adv: 4096 bytes min win adv: 7244 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 8101 bytes + max owin: 2178 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 645 bytes avg owin: 1 bytes + wavg owin: 451 bytes wavg owin: 0 bytes + initial window: 42 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 3695 bytes truncated data: 0 bytes + truncated packets: 7 pkts truncated packets: 0 pkts + data xmit time: 1.177 secs data xmit time: 0.000 secs + idletime max: 2349.6 ms idletime max: 2233.3 ms + throughput: 2835 Bps throughput: 0 Bps + + RTT samples: 7 RTT samples: 1 + RTT min: 3.7 ms RTT min: 0.8 ms + RTT max: 212.2 ms RTT max: 0.8 ms + RTT avg: 104.5 ms RTT avg: 0.8 ms + RTT stdev: 76.3 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 3.7 ms RTT from 3WHS: 0.8 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 109.6 ms RTT full_sz min: 0.8 ms + RTT full_sz max: 109.6 ms RTT full_sz max: 0.8 ms + RTT full_sz avg: 109.6 ms RTT full_sz avg: 0.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 22: + host aq: 130.236.254.159:2000 + host ar: 132.235.1.2:1459 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.593311 1994 + last packet: Tue Mar 8 21:42:52.621670 1994 + elapsed time: 0:00:00.028359 + total packets: 2 + filename: all.snoop.gz + aq->ar: ar->aq: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 327 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 327 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 327 bytes max segm size: 0 bytes + min segm size: 327 bytes min segm size: 0 bytes + avg segm size: 326 bytes avg segm size: 0 bytes + max win adv: 9112 bytes max win adv: 4096 bytes + min win adv: 9112 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9112 bytes avg win adv: 4096 bytes + max owin: 327 bytes max owin: 1 bytes + min non-zero owin: 327 bytes min non-zero owin: 1 bytes + avg owin: 327 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 327 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 327 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 3528.8 ms idletime max: 3500.4 ms + throughput: 11531 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 28.4 ms RTT min: 0.0 ms + RTT max: 28.4 ms RTT max: 0.0 ms + RTT avg: 28.4 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 28.4 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 28.4 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 28.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 23: + host as: 132.235.1.2:23 + host at: 132.235.1.64:22058 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.603979 1994 + last packet: Tue Mar 8 21:42:52.647744 1994 + elapsed time: 0:00:00.043765 + total packets: 6 + filename: all.snoop.gz + as->at: at->as: + total packets: 4 total packets: 2 + ack pkts sent: 4 ack pkts sent: 2 + pure acks sent: 0 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 327 unique bytes sent: 0 + actual data pkts: 4 actual data pkts: 0 + actual data bytes: 327 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 82 bytes max segm size: 0 bytes + min segm size: 81 bytes min segm size: 0 bytes + avg segm size: 81 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 164 bytes + min win adv: 4096 bytes min win adv: 164 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 164 bytes + max owin: 164 bytes max owin: 1 bytes + min non-zero owin: 82 bytes min non-zero owin: 1 bytes + avg owin: 102 bytes avg owin: 1 bytes + wavg owin: 45 bytes wavg owin: 0 bytes + initial window: 164 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 327 bytes truncated data: 0 bytes + truncated packets: 4 pkts truncated packets: 0 pkts + data xmit time: 0.025 secs data xmit time: 0.000 secs + idletime max: 3492.9 ms idletime max: 3474.4 ms + throughput: 7472 Bps throughput: 0 Bps + + RTT samples: 2 RTT samples: 0 + RTT min: 18.5 ms RTT min: 0.0 ms + RTT max: 23.4 ms RTT max: 0.0 ms + RTT avg: 21.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 23.4 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 23.4 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 23.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 2 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 24: + host au: 132.235.1.64:6917 + host av: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.607895 1994 + last packet: Tue Mar 8 21:42:55.733841 1994 + elapsed time: 0:00:03.125945 + total packets: 42 + filename: all.snoop.gz + au->av: av->au: + total packets: 25 total packets: 17 + ack pkts sent: 25 ack pkts sent: 17 + pure acks sent: 12 pure acks sent: 5 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 15 unique bytes sent: 47 + actual data pkts: 13 actual data pkts: 12 + actual data bytes: 15 actual data bytes: 47 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 13 pushed data pkts: 12 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 15 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 3 bytes + max win adv: 164 bytes max win adv: 4096 bytes + min win adv: 95 bytes min win adv: 4093 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 119 bytes avg win adv: 4095 bytes + max owin: 4 bytes max owin: 16 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 3 bytes + wavg owin: 0 bytes wavg owin: 1 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 15 bytes truncated data: 47 bytes + truncated packets: 13 pkts truncated packets: 12 pkts + data xmit time: 3.110 secs data xmit time: 2.780 secs + idletime max: 1252.6 ms idletime max: 1287.8 ms + throughput: 5 Bps throughput: 15 Bps + + RTT samples: 12 RTT samples: 12 + RTT min: 4.0 ms RTT min: 12.2 ms + RTT max: 104.5 ms RTT max: 37.6 ms + RTT avg: 29.4 ms RTT avg: 20.1 ms + RTT stdev: 36.5 ms RTT stdev: 8.4 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 6.4 ms RTT full_sz min: 27.0 ms + RTT full_sz max: 6.4 ms RTT full_sz max: 27.0 ms + RTT full_sz avg: 6.4 ms RTT full_sz avg: 27.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 25: + host aw: 132.235.1.64:272 + host ax: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.697360 1994 + last packet: Tue Mar 8 21:42:54.881238 1994 + elapsed time: 0:00:02.183878 + total packets: 19 + filename: all.snoop.gz + aw->ax: ax->aw: + total packets: 12 total packets: 7 + ack pkts sent: 12 ack pkts sent: 7 + pure acks sent: 6 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 6 unique bytes sent: 19 + actual data pkts: 6 actual data pkts: 6 + actual data bytes: 6 actual data bytes: 19 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 6 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 5 bytes + min segm size: 1 bytes min segm size: 2 bytes + avg segm size: 0 bytes avg segm size: 3 bytes + max win adv: 111 bytes max win adv: 4096 bytes + min win adv: 92 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 101 bytes avg win adv: 4095 bytes + max owin: 2 bytes max owin: 6 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 3 bytes + wavg owin: 0 bytes wavg owin: 3 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 6 bytes truncated data: 19 bytes + truncated packets: 6 pkts truncated packets: 6 pkts + data xmit time: 2.168 secs data xmit time: 2.153 secs + idletime max: 1240.9 ms idletime max: 1253.7 ms + throughput: 3 Bps throughput: 9 Bps + + RTT samples: 6 RTT samples: 6 + RTT min: 3.1 ms RTT min: 12.9 ms + RTT max: 18.3 ms RTT max: 48.4 ms + RTT avg: 9.8 ms RTT avg: 21.6 ms + RTT stdev: 7.0 ms RTT stdev: 13.7 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 3.1 ms RTT full_sz min: 15.1 ms + RTT full_sz max: 3.1 ms RTT full_sz max: 15.1 ms + RTT full_sz avg: 3.1 ms RTT full_sz avg: 15.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 26: + host ay: 132.235.17.13:1569 + host az: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.897830 1994 + last packet: Tue Mar 8 21:42:56.062954 1994 + elapsed time: 0:00:03.165124 + total packets: 19 + filename: all.snoop.gz + ay->az: az->ay: + total packets: 12 total packets: 7 + ack pkts sent: 12 ack pkts sent: 7 + pure acks sent: 6 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 6 unique bytes sent: 24 + actual data pkts: 6 actual data pkts: 6 + actual data bytes: 6 actual data bytes: 24 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 6 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 4 bytes + min segm size: 1 bytes min segm size: 4 bytes + avg segm size: 0 bytes avg segm size: 3 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 2 bytes max owin: 5 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 4 bytes + wavg owin: 0 bytes wavg owin: 3 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 6 bytes truncated data: 24 bytes + truncated packets: 6 pkts truncated packets: 6 pkts + data xmit time: 3.029 secs data xmit time: 2.981 secs + idletime max: 1373.4 ms idletime max: 1433.9 ms + throughput: 2 Bps throughput: 8 Bps + + RTT samples: 6 RTT samples: 6 + RTT min: 3.7 ms RTT min: 15.4 ms + RTT max: 95.4 ms RTT max: 131.7 ms + RTT avg: 29.4 ms RTT avg: 66.0 ms + RTT stdev: 37.2 ms RTT stdev: 47.9 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 6 + RTT full_sz min: 4.8 ms RTT full_sz min: 15.4 ms + RTT full_sz max: 4.8 ms RTT full_sz max: 131.7 ms + RTT full_sz avg: 4.8 ms RTT full_sz avg: 66.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 47.9 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 27: + host ba: 128.8.11.201:5000 + host bb: 132.235.1.2:2865 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.904102 1994 + last packet: Tue Mar 8 21:42:53.021472 1994 + elapsed time: 0:00:00.117370 + total packets: 2 + filename: all.snoop.gz + ba->bb: bb->ba: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 37 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 37 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 37 bytes max segm size: 0 bytes + min segm size: 37 bytes min segm size: 0 bytes + avg segm size: 36 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 37 bytes max owin: 1 bytes + min non-zero owin: 37 bytes min non-zero owin: 1 bytes + avg owin: 37 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 37 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 37 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 3218.0 ms idletime max: 3100.6 ms + throughput: 315 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 117.4 ms RTT min: 0.0 ms + RTT max: 117.4 ms RTT max: 0.0 ms + RTT avg: 117.4 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 117.4 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 117.4 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 117.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 28: + host bc: 132.235.1.2:23 + host bd: 132.235.1.64:26129 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:52.914649 1994 + last packet: Tue Mar 8 21:42:52.931796 1994 + elapsed time: 0:00:00.017147 + total packets: 2 + filename: all.snoop.gz + bc->bd: bd->bc: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 38 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 38 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 38 bytes max segm size: 0 bytes + min segm size: 38 bytes min segm size: 0 bytes + avg segm size: 37 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 123 bytes + min win adv: 4096 bytes min win adv: 123 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 123 bytes + max owin: 38 bytes max owin: 1 bytes + min non-zero owin: 38 bytes min non-zero owin: 1 bytes + avg owin: 38 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 38 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 38 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 3207.5 ms idletime max: 3190.3 ms + throughput: 2216 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 17.1 ms RTT min: 0.0 ms + RTT max: 17.1 ms RTT max: 0.0 ms + RTT avg: 17.1 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 17.1 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 17.1 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 17.1 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 29: + host be: 132.235.1.64:23326 + host bf: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.041195 1994 + last packet: Tue Mar 8 21:42:54.303985 1994 + elapsed time: 0:00:01.262790 + total packets: 17 + filename: all.snoop.gz + be->bf: bf->be: + total packets: 11 total packets: 6 + ack pkts sent: 11 ack pkts sent: 6 + pure acks sent: 6 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 6 unique bytes sent: 12 + actual data pkts: 5 actual data pkts: 6 + actual data bytes: 6 actual data bytes: 12 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 5 pushed data pkts: 6 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 2 bytes max segm size: 6 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 1 bytes + max win adv: 99 bytes max win adv: 4096 bytes + min win adv: 87 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 95 bytes avg win adv: 4096 bytes + max owin: 3 bytes max owin: 7 bytes + min non-zero owin: 1 bytes min non-zero owin: 2 bytes + avg owin: 1 bytes avg owin: 3 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 6 bytes truncated data: 12 bytes + truncated packets: 5 pkts truncated packets: 6 pkts + data xmit time: 1.117 secs data xmit time: 1.229 secs + idletime max: 1818.1 ms idletime max: 1836.8 ms + throughput: 5 Bps throughput: 10 Bps + + RTT samples: 5 RTT samples: 6 + RTT min: 4.5 ms RTT min: 13.4 ms + RTT max: 15.1 ms RTT max: 30.9 ms + RTT avg: 8.5 ms RTT avg: 21.6 ms + RTT stdev: 4.2 ms RTT stdev: 5.9 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 4.5 ms RTT full_sz min: 18.7 ms + RTT full_sz max: 4.5 ms RTT full_sz max: 18.7 ms + RTT full_sz avg: 4.5 ms RTT full_sz avg: 18.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 30: + host bg: 132.235.1.129:14458 + host bh: 132.235.2.1:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.052803 1994 + last packet: Tue Mar 8 21:42:56.111077 1994 + elapsed time: 0:00:03.058273 + total packets: 66 + filename: all.snoop.gz + bg->bh: bh->bg: + total packets: 42 total packets: 24 + ack pkts sent: 42 ack pkts sent: 24 + pure acks sent: 24 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 21 unique bytes sent: 554 + actual data pkts: 18 actual data pkts: 24 + actual data bytes: 21 actual data bytes: 554 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 18 pushed data pkts: 24 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 2 bytes max segm size: 217 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 23 bytes + max win adv: 4096 bytes max win adv: 16384 bytes + min win adv: 4079 bytes min win adv: 16384 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4095 bytes avg win adv: 16384 bytes + max owin: 3 bytes max owin: 218 bytes + min non-zero owin: 1 bytes min non-zero owin: 2 bytes + avg owin: 1 bytes avg owin: 24 bytes + wavg owin: 0 bytes wavg owin: 35 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 21 bytes truncated data: 554 bytes + truncated packets: 18 pkts truncated packets: 24 pkts + data xmit time: 3.052 secs data xmit time: 3.052 secs + idletime max: 384.1 ms idletime max: 391.3 ms + throughput: 7 Bps throughput: 181 Bps + + RTT samples: 18 RTT samples: 24 + RTT min: 3.1 ms RTT min: 2.2 ms + RTT max: 14.1 ms RTT max: 38.0 ms + RTT avg: 5.1 ms RTT avg: 7.4 ms + RTT stdev: 3.1 ms RTT stdev: 8.8 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 3 RTT full_sz smpls: 1 + RTT full_sz min: 6.6 ms RTT full_sz min: 38.0 ms + RTT full_sz max: 14.1 ms RTT full_sz max: 38.0 ms + RTT full_sz avg: 11.0 ms RTT full_sz avg: 38.0 ms + RTT full_sz stdev: 3.9 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 31: + host bi: 132.235.24.250:6381 + host bj: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.099697 1994 + last packet: Tue Mar 8 21:42:54.661395 1994 + elapsed time: 0:00:01.561698 + total packets: 38 + filename: all.snoop.gz + bi->bj: bj->bi: + total packets: 20 total packets: 18 + ack pkts sent: 20 ack pkts sent: 18 + pure acks sent: 18 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 1473 + actual data pkts: 2 actual data pkts: 18 + actual data bytes: 2 actual data bytes: 1473 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 18 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 279 bytes + min segm size: 1 bytes min segm size: 7 bytes + avg segm size: 0 bytes avg segm size: 81 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 3802 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4048 bytes avg win adv: 4096 bytes + max owin: 2 bytes max owin: 280 bytes + min non-zero owin: 1 bytes min non-zero owin: 8 bytes + avg owin: 1 bytes avg owin: 82 bytes + wavg owin: 0 bytes wavg owin: 23 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 2 bytes truncated data: 1473 bytes + truncated packets: 2 pkts truncated packets: 18 pkts + data xmit time: 1.511 secs data xmit time: 1.534 secs + idletime max: 1460.7 ms idletime max: 1480.1 ms + throughput: 1 Bps throughput: 943 Bps + + RTT samples: 2 RTT samples: 18 + RTT min: 3.7 ms RTT min: 3.3 ms + RTT max: 7.8 ms RTT max: 19.4 ms + RTT avg: 5.7 ms RTT avg: 6.4 ms + RTT stdev: 0.0 ms RTT stdev: 5.3 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 3.7 ms RTT full_sz min: 15.1 ms + RTT full_sz max: 3.7 ms RTT full_sz max: 15.1 ms + RTT full_sz avg: 3.7 ms RTT full_sz avg: 15.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 32: + host bk: 132.235.200.5:32260 + host bl: 132.235.2.30:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.212625 1994 + last packet: Tue Mar 8 21:42:53.659849 1994 + elapsed time: 0:00:00.447224 + total packets: 6 + filename: all.snoop.gz + bk->bl: bl->bk: + total packets: 3 total packets: 3 + ack pkts sent: 3 ack pkts sent: 3 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1 unique bytes sent: 401 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 1 actual data bytes: 401 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 350 bytes + min segm size: 1 bytes min segm size: 51 bytes + avg segm size: 0 bytes avg segm size: 200 bytes + max win adv: 2048 bytes max win adv: 4096 bytes + min win adv: 2048 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 2048 bytes avg win adv: 4096 bytes + max owin: 1 bytes max owin: 351 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 134 bytes + wavg owin: 0 bytes wavg owin: 20 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 1 bytes truncated data: 401 bytes + truncated packets: 1 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.190 secs + idletime max: 2462.3 ms idletime max: 2663.1 ms + throughput: 2 Bps throughput: 897 Bps + + RTT samples: 1 RTT samples: 2 + RTT min: 8.9 ms RTT min: 188.2 ms + RTT max: 8.9 ms RTT max: 200.8 ms + RTT avg: 8.9 ms RTT avg: 194.5 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 8.9 ms RTT full_sz min: 200.8 ms + RTT full_sz max: 8.9 ms RTT full_sz max: 200.8 ms + RTT full_sz avg: 8.9 ms RTT full_sz avg: 200.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 33: + host bm: 132.235.17.195:17802 + host bn: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.406767 1994 + last packet: Tue Mar 8 21:42:54.904013 1994 + elapsed time: 0:00:01.497246 + total packets: 13 + filename: all.snoop.gz + bm->bn: bn->bm: + total packets: 8 total packets: 5 + ack pkts sent: 8 ack pkts sent: 5 + pure acks sent: 6 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3 unique bytes sent: 415 + actual data pkts: 2 actual data pkts: 4 + actual data bytes: 3 actual data bytes: 415 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 4 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 2 bytes max segm size: 366 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 103 bytes + max win adv: 1024 bytes max win adv: 4096 bytes + min win adv: 658 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 972 bytes avg win adv: 4096 bytes + max owin: 3 bytes max owin: 367 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 84 bytes + wavg owin: 0 bytes wavg owin: 114 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 3 bytes truncated data: 415 bytes + truncated packets: 2 pkts truncated packets: 4 pkts + data xmit time: 0.103 secs data xmit time: 1.283 secs + idletime max: 1218.1 ms idletime max: 1222.1 ms + throughput: 2 Bps throughput: 277 Bps + + RTT samples: 2 RTT samples: 4 + RTT min: 15.5 ms RTT min: 2.0 ms + RTT max: 106.7 ms RTT max: 12.5 ms + RTT avg: 61.1 ms RTT avg: 5.5 ms + RTT stdev: 0.0 ms RTT stdev: 4.7 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 106.7 ms RTT full_sz min: 3.6 ms + RTT full_sz max: 106.7 ms RTT full_sz max: 3.6 ms + RTT full_sz avg: 106.7 ms RTT full_sz avg: 3.6 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 34: + host bo: 132.235.4.216:10388 + host bp: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.436676 1994 + last packet: Tue Mar 8 21:42:53.692947 1994 + elapsed time: 0:00:00.256271 + total packets: 4 + filename: all.snoop.gz + bo->bp: bp->bo: + total packets: 2 total packets: 2 + ack pkts sent: 2 ack pkts sent: 2 + pure acks sent: 1 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1 unique bytes sent: 72 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 1 actual data bytes: 72 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 72 bytes + min segm size: 1 bytes min segm size: 72 bytes + avg segm size: 0 bytes avg segm size: 71 bytes + max win adv: 512 bytes max win adv: 4096 bytes + min win adv: 512 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 512 bytes avg win adv: 4096 bytes + max owin: 1 bytes max owin: 73 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 37 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 1 bytes truncated data: 72 bytes + truncated packets: 1 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 2429.2 ms idletime max: 2478.4 ms + throughput: 4 Bps throughput: 281 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 185.2 ms RTT min: 49.2 ms + RTT max: 185.2 ms RTT max: 49.2 ms + RTT avg: 185.1 ms RTT avg: 49.2 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 185.2 ms RTT full_sz min: 49.2 ms + RTT full_sz max: 185.2 ms RTT full_sz max: 49.2 ms + RTT full_sz avg: 185.1 ms RTT full_sz avg: 49.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 35: + host bq: 132.235.1.2:2635 + host br: 162.148.13.44:4000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.623190 1994 + last packet: Tue Mar 8 21:42:55.021229 1994 + elapsed time: 0:00:01.398039 + total packets: 6 + filename: all.snoop.gz + bq->br: br->bq: + total packets: 3 total packets: 3 + ack pkts sent: 3 ack pkts sent: 3 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3 unique bytes sent: 396 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 3 actual data bytes: 396 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 354 bytes + min segm size: 3 bytes min segm size: 42 bytes + avg segm size: 2 bytes avg segm size: 197 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4093 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 355 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 133 bytes + wavg owin: 1 bytes wavg owin: 118 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 3 bytes truncated data: 396 bytes + truncated packets: 1 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.466 secs + idletime max: 1100.9 ms idletime max: 1225.0 ms + throughput: 2 Bps throughput: 283 Bps + + RTT samples: 1 RTT samples: 2 + RTT min: 95.8 ms RTT min: 124.2 ms + RTT max: 95.8 ms RTT max: 190.1 ms + RTT avg: 95.8 ms RTT avg: 157.1 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 95.8 ms RTT full_sz min: 190.1 ms + RTT full_sz max: 95.8 ms RTT full_sz max: 190.1 ms + RTT full_sz avg: 95.8 ms RTT full_sz avg: 190.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 36: + host bs: 192.216.54.2:8888 + host bt: 132.235.1.2:1527 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.961778 1994 + last packet: Tue Mar 8 21:42:55.421124 1994 + elapsed time: 0:00:01.459346 + total packets: 10 + filename: all.snoop.gz + bs->bt: bt->bs: + total packets: 5 total packets: 5 + ack pkts sent: 5 ack pkts sent: 5 + pure acks sent: 0 pure acks sent: 5 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 165 unique bytes sent: 0 + actual data pkts: 5 actual data pkts: 0 + actual data bytes: 242 actual data bytes: 0 + rexmt data pkts: 1 rexmt data pkts: 0 + rexmt data bytes: 77 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 4 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 77 bytes max segm size: 0 bytes + min segm size: 15 bytes min segm size: 0 bytes + avg segm size: 48 bytes avg segm size: 0 bytes + max win adv: 9112 bytes max win adv: 4096 bytes + min win adv: 9112 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9112 bytes avg win adv: 4096 bytes + max owin: 78 bytes max owin: 1 bytes + min non-zero owin: 16 bytes min non-zero owin: 1 bytes + avg owin: 42 bytes avg owin: 1 bytes + wavg owin: 27 bytes wavg owin: 0 bytes + initial window: 25 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 242 bytes truncated data: 0 bytes + truncated packets: 5 pkts truncated packets: 0 pkts + data xmit time: 1.375 secs data xmit time: 0.000 secs + idletime max: 785.7 ms idletime max: 701.0 ms + throughput: 113 Bps throughput: 0 Bps + + RTT samples: 4 RTT samples: 0 + RTT min: 60.0 ms RTT min: 0.0 ms + RTT max: 155.3 ms RTT max: 0.0 ms + RTT avg: 101.3 ms RTT avg: 0.0 ms + RTT stdev: 40.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 155.3 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 155.3 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 155.3 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 37: + host bu: 192.216.54.2:8888 + host bv: 132.235.1.2:4548 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.962408 1994 + last packet: Tue Mar 8 21:42:56.056105 1994 + elapsed time: 0:00:02.093697 + total packets: 5 + filename: all.snoop.gz + bu->bv: bv->bu: + total packets: 3 total packets: 2 + ack pkts sent: 3 ack pkts sent: 2 + pure acks sent: 0 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 92 unique bytes sent: 0 + actual data pkts: 3 actual data pkts: 0 + actual data bytes: 92 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 3 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 37 bytes max segm size: 0 bytes + min segm size: 26 bytes min segm size: 0 bytes + avg segm size: 30 bytes avg segm size: 0 bytes + max win adv: 9112 bytes max win adv: 4096 bytes + min win adv: 9112 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9112 bytes avg win adv: 4096 bytes + max owin: 38 bytes max owin: 1 bytes + min non-zero owin: 26 bytes min non-zero owin: 1 bytes + avg owin: 31 bytes avg owin: 1 bytes + wavg owin: 26 bytes wavg owin: 0 bytes + initial window: 26 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 92 bytes truncated data: 0 bytes + truncated packets: 3 pkts truncated packets: 0 pkts + data xmit time: 2.094 secs data xmit time: 0.000 secs + idletime max: 1775.0 ms idletime max: 1799.1 ms + throughput: 44 Bps throughput: 0 Bps + + RTT samples: 2 RTT samples: 0 + RTT min: 59.6 ms RTT min: 0.0 ms + RTT max: 83.6 ms RTT max: 0.0 ms + RTT avg: 71.6 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 83.6 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 83.6 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 83.6 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 38: + host bw: 132.235.1.2:23 + host bx: 132.235.1.64:19211 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.976717 1994 + last packet: Tue Mar 8 21:42:56.074308 1994 + elapsed time: 0:00:02.097590 + total packets: 6 + filename: all.snoop.gz + bw->bx: bx->bw: + total packets: 3 total packets: 3 + ack pkts sent: 3 ack pkts sent: 3 + pure acks sent: 0 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 92 unique bytes sent: 0 + actual data pkts: 3 actual data pkts: 0 + actual data bytes: 92 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 3 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 37 bytes max segm size: 0 bytes + min segm size: 26 bytes min segm size: 0 bytes + avg segm size: 30 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 164 bytes + min win adv: 4096 bytes min win adv: 92 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 127 bytes + max owin: 38 bytes max owin: 1 bytes + min non-zero owin: 26 bytes min non-zero owin: 1 bytes + avg owin: 31 bytes avg owin: 1 bytes + wavg owin: 25 bytes wavg owin: 0 bytes + initial window: 26 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 92 bytes truncated data: 0 bytes + truncated packets: 3 pkts truncated packets: 0 pkts + data xmit time: 2.082 secs data xmit time: 0.000 secs + idletime max: 1763.6 ms idletime max: 1747.9 ms + throughput: 44 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 0 + RTT min: 13.4 ms RTT min: 0.0 ms + RTT max: 29.0 ms RTT max: 0.0 ms + RTT avg: 19.3 ms RTT avg: 0.0 ms + RTT stdev: 8.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 15.4 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 15.4 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 15.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 39: + host by: 144.32.128.6:3207 + host bz: 132.235.1.100:5000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.985870 1994 + last packet: Tue Mar 8 21:42:55.469003 1994 + elapsed time: 0:00:01.483133 + total packets: 7 + filename: all.snoop.gz + by->bz: bz->by: + total packets: 3 total packets: 4 + ack pkts sent: 3 ack pkts sent: 4 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3 unique bytes sent: 1002 + actual data pkts: 1 actual data pkts: 3 + actual data bytes: 3 actual data bytes: 1002 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 512 bytes + min segm size: 3 bytes min segm size: 122 bytes + avg segm size: 2 bytes avg segm size: 333 bytes + max win adv: 61440 bytes max win adv: 4096 bytes + min win adv: 61440 bytes min win adv: 4093 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 61440 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 881 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 379 bytes + wavg owin: 1 bytes wavg owin: 607 bytes + initial window: 3 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 3 bytes truncated data: 1002 bytes + truncated packets: 1 pkts truncated packets: 3 pkts + data xmit time: 0.000 secs data xmit time: 1.023 secs + idletime max: 1026.5 ms idletime max: 1023.1 ms + throughput: 2 Bps throughput: 676 Bps + + RTT samples: 1 RTT samples: 2 + RTT min: 71.8 ms RTT min: 284.8 ms + RTT max: 71.8 ms RTT max: 288.2 ms + RTT avg: 71.8 ms RTT avg: 286.5 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 71.8 ms RTT full_sz min: 284.8 ms + RTT full_sz max: 71.8 ms RTT full_sz max: 284.8 ms + RTT full_sz avg: 71.8 ms RTT full_sz avg: 284.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 40: + host ca: 132.235.1.64:18461 + host cb: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:53.985977 1994 + last packet: Tue Mar 8 21:42:53.985977 1994 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: all.snoop.gz + ca->cb: cb->ca: + total packets: 1 total packets: 0 + ack pkts sent: 1 ack pkts sent: 0 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 148 bytes max win adv: 0 bytes + min win adv: 148 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 148 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 2136.1 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 41: + host cc: 132.235.1.64:17416 + host cd: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.080341 1994 + last packet: Tue Mar 8 21:42:54.080341 1994 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: all.snoop.gz + cc->cd: cd->cc: + total packets: 1 total packets: 0 + ack pkts sent: 1 ack pkts sent: 0 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 126 bytes max win adv: 0 bytes + min win adv: 126 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 126 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 2041.8 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 42: + host ce: 132.235.4.217:7581 + host cf: 132.235.1.6:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.147527 1994 + last packet: Tue Mar 8 21:42:54.196709 1994 + elapsed time: 0:00:00.049182 + total packets: 4 + filename: all.snoop.gz + ce->cf: cf->ce: + total packets: 2 total packets: 2 + ack pkts sent: 2 ack pkts sent: 2 + pure acks sent: 1 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1 unique bytes sent: 1 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 1 actual data bytes: 1 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 1 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 512 bytes max win adv: 7903 bytes + min win adv: 512 bytes min win adv: 7903 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 512 bytes avg win adv: 7903 bytes + max owin: 1 bytes max owin: 2 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 1 bytes truncated data: 1 bytes + truncated packets: 1 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1925.4 ms idletime max: 1968.1 ms + throughput: 20 Bps throughput: 20 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 1.6 ms RTT min: 42.7 ms + RTT max: 1.6 ms RTT max: 42.7 ms + RTT avg: 1.6 ms RTT avg: 42.7 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1.6 ms RTT full_sz min: 42.7 ms + RTT full_sz max: 1.6 ms RTT full_sz max: 42.7 ms + RTT full_sz avg: 1.6 ms RTT full_sz avg: 42.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 43: + host cg: 132.235.1.100:5000 + host ch: 144.32.128.6:3379 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.156057 1994 + last packet: Tue Mar 8 21:42:55.468574 1994 + elapsed time: 0:00:01.312516 + total packets: 5 + filename: all.snoop.gz + cg->ch: ch->cg: + total packets: 3 total packets: 2 + ack pkts sent: 3 ack pkts sent: 2 + pure acks sent: 0 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1041 unique bytes sent: 0 + actual data pkts: 3 actual data pkts: 0 + actual data bytes: 1041 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 512 bytes max segm size: 0 bytes + min segm size: 120 bytes min segm size: 0 bytes + avg segm size: 346 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 61440 bytes + min win adv: 4096 bytes min win adv: 61440 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 61440 bytes + max owin: 512 bytes max owin: 1 bytes + min non-zero owin: 121 bytes min non-zero owin: 1 bytes + avg owin: 347 bytes avg owin: 1 bytes + wavg owin: 318 bytes wavg owin: 0 bytes + initial window: 921 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 1041 bytes truncated data: 0 bytes + truncated packets: 3 pkts truncated packets: 0 pkts + data xmit time: 1.024 secs data xmit time: 0.000 secs + idletime max: 1023.7 ms idletime max: 1026.8 ms + throughput: 793 Bps throughput: 0 Bps + + RTT samples: 2 RTT samples: 0 + RTT min: 285.5 ms RTT min: 0.0 ms + RTT max: 288.6 ms RTT max: 0.0 ms + RTT avg: 287.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 285.5 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 285.5 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 285.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 44: + host ci: 132.235.1.2:3143 + host cj: 129.174.1.3:25 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Mar 8 21:42:54.265149 1994 + last packet: Tue Mar 8 21:42:54.400563 1994 + elapsed time: 0:00:00.135414 + total packets: 3 + filename: all.snoop.gz + ci->cj: cj->ci: + total packets: 2 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 1 bytes max owin: 0 bytes + min non-zero owin: 1 bytes min non-zero owin: 0 bytes + avg owin: 1 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1721.5 ms idletime max: 1722.2 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 134.7 ms RTT min: 0.7 ms + RTT max: 134.7 ms RTT max: 0.7 ms + RTT avg: 134.7 ms RTT avg: 0.7 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 134.7 ms RTT from 3WHS: 0.7 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 134.7 ms RTT full_sz min: 0.7 ms + RTT full_sz max: 134.7 ms RTT full_sz max: 0.7 ms + RTT full_sz avg: 134.7 ms RTT full_sz avg: 0.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 45: + host ck: 132.235.1.64:21809 + host cl: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.318874 1994 + last packet: Tue Mar 8 21:42:54.864610 1994 + elapsed time: 0:00:00.545736 + total packets: 8 + filename: all.snoop.gz + ck->cl: cl->ck: + total packets: 4 total packets: 4 + ack pkts sent: 4 ack pkts sent: 4 + pure acks sent: 3 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 183 + actual data pkts: 1 actual data pkts: 4 + actual data bytes: 2 actual data bytes: 183 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 2 bytes max segm size: 82 bytes + min segm size: 2 bytes min segm size: 2 bytes + avg segm size: 1 bytes avg segm size: 45 bytes + max win adv: 164 bytes max win adv: 4096 bytes + min win adv: 162 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 163 bytes avg win adv: 4096 bytes + max owin: 2 bytes max owin: 100 bytes + min non-zero owin: 1 bytes min non-zero owin: 3 bytes + avg owin: 1 bytes avg owin: 67 bytes + wavg owin: 0 bytes wavg owin: 3 bytes + initial window: 2 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 2 bytes truncated data: 183 bytes + truncated packets: 1 pkts truncated packets: 4 pkts + data xmit time: 0.000 secs data xmit time: 0.498 secs + idletime max: 1257.5 ms idletime max: 1281.0 ms + throughput: 4 Bps throughput: 335 Bps + + RTT samples: 1 RTT samples: 3 + RTT min: 24.5 ms RTT min: 15.4 ms + RTT max: 24.5 ms RTT max: 23.5 ms + RTT avg: 24.5 ms RTT avg: 19.6 ms + RTT stdev: 0.0 ms RTT stdev: 4.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 24.5 ms RTT full_sz min: 15.4 ms + RTT full_sz max: 24.5 ms RTT full_sz max: 15.4 ms + RTT full_sz avg: 24.5 ms RTT full_sz avg: 15.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 46: + host cm: 132.235.1.2:3122 + host cn: 134.53.14.115:4000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.344409 1994 + last packet: Tue Mar 8 21:42:54.821050 1994 + elapsed time: 0:00:00.476641 + total packets: 4 + filename: all.snoop.gz + cm->cn: cn->cm: + total packets: 2 total packets: 2 + ack pkts sent: 2 ack pkts sent: 2 + pure acks sent: 1 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 164 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 2 actual data bytes: 164 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 2 bytes max segm size: 164 bytes + min segm size: 2 bytes min segm size: 164 bytes + avg segm size: 1 bytes avg segm size: 163 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4094 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4095 bytes + max owin: 2 bytes max owin: 165 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 83 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 2 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 2 bytes truncated data: 164 bytes + truncated packets: 1 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1301.0 ms idletime max: 1308.7 ms + throughput: 4 Bps throughput: 344 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 56.7 ms RTT min: 7.6 ms + RTT max: 56.7 ms RTT max: 7.6 ms + RTT avg: 56.7 ms RTT avg: 7.6 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 56.7 ms RTT full_sz min: 7.6 ms + RTT full_sz max: 56.7 ms RTT full_sz max: 7.6 ms + RTT full_sz avg: 56.7 ms RTT full_sz avg: 7.6 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 47: + host co: 132.235.24.50:1906 + host cp: 132.235.1.2:119 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.365071 1994 + last packet: Tue Mar 8 21:42:54.793855 1994 + elapsed time: 0:00:00.428784 + total packets: 7 + filename: all.snoop.gz + co->cp: cp->co: + total packets: 4 total packets: 3 + ack pkts sent: 4 ack pkts sent: 3 + pure acks sent: 2 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 27 unique bytes sent: 3152 + actual data pkts: 2 actual data pkts: 3 + actual data bytes: 27 actual data bytes: 3152 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 15 bytes max segm size: 1460 bytes + min segm size: 12 bytes min segm size: 771 bytes + avg segm size: 13 bytes avg segm size: 1050 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 16 bytes max owin: 2382 bytes + min non-zero owin: 1 bytes min non-zero owin: 772 bytes + avg owin: 7 bytes avg owin: 1538 bytes + wavg owin: 2 bytes wavg owin: 704 bytes + initial window: 12 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 27 bytes truncated data: 3152 bytes + truncated packets: 2 pkts truncated packets: 3 pkts + data xmit time: 0.416 secs data xmit time: 0.392 secs + idletime max: 1328.2 ms idletime max: 1334.4 ms + throughput: 63 Bps throughput: 7351 Bps + + RTT samples: 2 RTT samples: 2 + RTT min: 5.8 ms RTT min: 6.1 ms + RTT max: 31.0 ms RTT max: 103.9 ms + RTT avg: 18.4 ms RTT avg: 55.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 5.8 ms RTT full_sz min: 6.1 ms + RTT full_sz max: 5.8 ms RTT full_sz max: 6.1 ms + RTT full_sz avg: 5.8 ms RTT full_sz avg: 6.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 48: + host cq: 130.236.253.6:113 + host cr: 132.235.1.2:3138 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Tue Mar 8 21:42:54.549107 1994 + last packet: Tue Mar 8 21:42:54.733576 1994 + elapsed time: 0:00:00.184469 + total packets: 5 + filename: all.snoop.gz + cq->cr: cr->cq: + total packets: 3 total packets: 2 + ack pkts sent: 3 ack pkts sent: 2 + pure acks sent: 1 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 34 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 34 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 34 bytes max segm size: 0 bytes + min segm size: 34 bytes min segm size: 0 bytes + avg segm size: 33 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 34 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 12 bytes avg owin: 1 bytes + wavg owin: 32 bytes wavg owin: 0 bytes + initial window: 34 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 34 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 183.3 ms idletime max: 183.1 ms + throughput: 184 Bps throughput: 0 Bps + + RTT samples: 2 RTT samples: 1 + RTT min: 0.6 ms RTT min: 181.9 ms + RTT max: 1.4 ms RTT max: 181.9 ms + RTT avg: 1.0 ms RTT avg: 181.9 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1.4 ms RTT full_sz min: 181.9 ms + RTT full_sz max: 1.4 ms RTT full_sz max: 181.9 ms + RTT full_sz avg: 1.4 ms RTT full_sz avg: 181.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 49: + host cs: 132.235.1.2:25 + host ct: 130.236.253.6:4234 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.558445 1994 + last packet: Tue Mar 8 21:42:55.945957 1994 + elapsed time: 0:00:01.387512 + total packets: 13 + filename: all.snoop.gz + cs->ct: ct->cs: + total packets: 8 total packets: 5 + ack pkts sent: 8 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 452 unique bytes sent: 171 + actual data pkts: 6 actual data pkts: 5 + actual data bytes: 452 actual data bytes: 171 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 5 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 125 bytes max segm size: 56 bytes + min segm size: 50 bytes min segm size: 6 bytes + avg segm size: 75 bytes avg segm size: 34 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4096 bytes + max owin: 126 bytes max owin: 57 bytes + min non-zero owin: 1 bytes min non-zero owin: 7 bytes + avg owin: 57 bytes avg owin: 35 bytes + wavg owin: 70 bytes wavg owin: 34 bytes + initial window: 118 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 452 bytes truncated data: 171 bytes + truncated packets: 6 pkts truncated packets: 5 pkts + data xmit time: 1.388 secs data xmit time: 1.149 secs + idletime max: 352.2 ms idletime max: 354.9 ms + throughput: 326 Bps throughput: 123 Bps + + RTT samples: 5 RTT samples: 5 + RTT min: 164.5 ms RTT min: 2.6 ms + RTT max: 196.6 ms RTT max: 187.7 ms + RTT avg: 180.4 ms RTT avg: 70.6 ms + RTT stdev: 14.0 ms RTT stdev: 70.8 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 183.9 ms RTT full_sz min: 79.5 ms + RTT full_sz max: 183.9 ms RTT full_sz max: 79.5 ms + RTT full_sz avg: 183.9 ms RTT full_sz avg: 79.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 50: + host cu: 132.235.1.64:1816 + host cv: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:54.824975 1994 + last packet: Tue Mar 8 21:42:56.122100 1994 + elapsed time: 0:00:01.297125 + total packets: 2 + filename: all.snoop.gz + cu->cv: cv->cu: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 82 + actual data pkts: 0 actual data pkts: 1 + actual data bytes: 0 actual data bytes: 82 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 82 bytes + min segm size: 0 bytes min segm size: 82 bytes + avg segm size: 0 bytes avg segm size: 81 bytes + max win adv: 151 bytes max win adv: 4096 bytes + min win adv: 151 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 151 bytes avg win adv: 4096 bytes + max owin: 0 bytes max owin: 83 bytes + min non-zero owin: 0 bytes min non-zero owin: 83 bytes + avg owin: 0 bytes avg owin: 83 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 82 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1297.1 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 63 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 51: + host cw: 132.235.1.64:2598 + host cx: 132.235.1.2:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:55.376363 1994 + last packet: Tue Mar 8 21:42:55.376363 1994 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: all.snoop.gz + cw->cx: cx->cw: + total packets: 1 total packets: 0 + ack pkts sent: 1 ack pkts sent: 0 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 127 bytes max win adv: 0 bytes + min win adv: 127 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 127 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 745.7 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 52: + host cy: 132.235.8.7:2033 + host cz: 132.235.1.100:5000 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:55.998438 1994 + last packet: Tue Mar 8 21:42:56.057449 1994 + elapsed time: 0:00:00.059011 + total packets: 2 + filename: all.snoop.gz + cy->cz: cz->cy: + total packets: 1 total packets: 1 + ack pkts sent: 1 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 80 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 80 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 80 bytes max segm size: 0 bytes + min segm size: 80 bytes min segm size: 0 bytes + avg segm size: 79 bytes avg segm size: 0 bytes + max win adv: 4096 bytes max win adv: 4016 bytes + min win adv: 4096 bytes min win adv: 4016 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4016 bytes + max owin: 80 bytes max owin: 1 bytes + min non-zero owin: 80 bytes min non-zero owin: 1 bytes + avg owin: 80 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 80 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 80 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 123.7 ms idletime max: 64.7 ms + throughput: 1356 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 59.0 ms RTT min: 0.0 ms + RTT max: 59.0 ms RTT max: 0.0 ms + RTT avg: 59.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 59.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 59.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 59.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 53: + host da: 130.215.24.1:20 + host db: 132.235.17.163:3129 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:56.016189 1994 + last packet: Tue Mar 8 21:42:56.016189 1994 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: all.snoop.gz + da->db: db->da: + total packets: 1 total packets: 0 + ack pkts sent: 1 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 1 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 0 bytes + min segm size: 1 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 16384 bytes max win adv: 0 bytes + min win adv: 16384 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16384 bytes avg win adv: 0 bytes + max owin: 1 bytes max owin: 0 bytes + min non-zero owin: 1 bytes min non-zero owin: 0 bytes + avg owin: 1 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 1 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 105.9 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 54: + host dc: 132.235.1.64:17922 + host dd: 132.235.24.50:23 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:56.024915 1994 + last packet: Tue Mar 8 21:42:56.024915 1994 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: all.snoop.gz + dc->dd: dd->dc: + total packets: 1 total packets: 0 + ack pkts sent: 1 ack pkts sent: 0 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 164 bytes max win adv: 0 bytes + min win adv: 164 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 164 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 97.2 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 55: + host de: 192.216.54.2:8888 + host df: 132.235.1.2:2892 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Mar 8 21:42:56.107132 1994 + last packet: Tue Mar 8 21:42:56.107132 1994 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: all.snoop.gz + de->df: df->de: + total packets: 1 total packets: 0 + ack pkts sent: 1 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 267 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 267 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 267 bytes max segm size: 0 bytes + min segm size: 267 bytes min segm size: 0 bytes + avg segm size: 266 bytes avg segm size: 0 bytes + max win adv: 9112 bytes max win adv: 0 bytes + min win adv: 9112 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9112 bytes avg win adv: 0 bytes + max owin: 267 bytes max owin: 0 bytes + min non-zero owin: 267 bytes min non-zero owin: 0 bytes + avg owin: 267 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 267 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 267 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 15.0 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/all.snoop.gz.packets b/input/OUTPUTbench/all.snoop.gz.packets new file mode 100644 index 0000000..59e7cdb --- /dev/null +++ b/input/OUTPUTbench/all.snoop.gz.packets @@ -0,0 +1,2608 @@ +1 arg remaining, starting with 'all.snoop.gz' + +Packet 1 + Packet Length: 62 (saved length 54) + Collected: Tue Mar 8 21:42:51.975039 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 192.20.239.131 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 48 + ID: 1319 + CKSUM: 0x441c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 119 + DPRT: 2380 + FLG: -AP--- (0x18) + SEQ: 0x2e71ab91 + ACK: 0x090918d4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x9fd3 (too short to verify) + DLEN: 8 (none of it in dump file) + data: 8 bytes +Packet 2 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:51.994384 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.2.30 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58951 + CKSUM: 0xe27e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 17157 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xba61450d + ACK: 0x2115129e + WIN: 2048 + HLEN: 20 + CKSUM: 0x5d9c (CORRECT) + DLEN: 0 +Packet 3 + Packet Length: 1078 (saved length 54) + Collected: Tue Mar 8 21:42:51.996231 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:02:03:a8:6f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.30 + IP Dest: 132.235.200.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 1064 + ID: 1320 + CKSUM: 0xa1ae (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 17157 + FLG: -A---- (0x10) + SEQ: 0x2115129e + ACK: 0xba61450d + WIN: 4096 + HLEN: 20 + CKSUM: 0xe86d (too short to verify) + DLEN: 1024 (none of it in dump file) + data: 1024 bytes +Packet 4 + Packet Length: 1078 (saved length 54) + Collected: Tue Mar 8 21:42:51.997089 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:02:03:a8:6f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.30 + IP Dest: 132.235.200.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 1064 + ID: 1321 + CKSUM: 0xa1ad (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 17157 + FLG: -A---- (0x10) + SEQ: 0x2115169e + ACK: 0xba61450d + WIN: 4096 + HLEN: 20 + CKSUM: 0xb685 (too short to verify) + DLEN: 1024 (none of it in dump file) + data: 1024 bytes +Packet 5 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.001687 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.2.30 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58952 + CKSUM: 0xe27d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 17157 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xba61450d + ACK: 0x2115169e + WIN: 1024 + HLEN: 20 + CKSUM: 0x5d9c (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.004776 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.2.30 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58953 + CKSUM: 0xe27c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 17157 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xba61450d + ACK: 0x21151a9e + WIN: 0 + HLEN: 20 + CKSUM: 0x5d9c (CORRECT) + DLEN: 0 +Packet 7 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.008614 1994 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 50919 + CKSUM: 0xa98d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1022 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x021343d8 + ACK: 0x2a486969 + WIN: 16384 + HLEN: 20 + CKSUM: 0x1cd5 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 8 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.017653 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 1322 + CKSUM: 0x6b4b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 513 + DPRT: 1022 + FLG: -AP--- (0x18) + SEQ: 0x2a486969 + ACK: 0x021343d9 + WIN: 4096 + HLEN: 20 + CKSUM: 0x4cd4 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 9 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.021157 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 149.84.33.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1323 + CKSUM: 0x3d61 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1835 + DPRT: 1729 + FLG: -A---- (0x10) + SEQ: 0x09b09310 + ACK: 0x068cc5cd + WIN: 4073 + HLEN: 20 + CKSUM: 0xeca0 (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.021353 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1324 + CKSUM: 0x6d8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 32023 + FLG: -A---- (0x10) + SEQ: 0x083c5684 + ACK: 0x3d7294a3 + WIN: 4094 + HLEN: 20 + CKSUM: 0xe5b9 (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.025175 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 129.110.31.10 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 44 + LEN: 43 + ID: 60446 + CKSUM: 0x7c49 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2770 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x00abebdb + ACK: 0x24bec127 + WIN: 4096 + HLEN: 20 + CKSUM: 0x3cbf (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 12 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.046685 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 129.110.31.10 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 1325 + CKSUM: 0x533a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 2770 + FLG: -AP--- (0x18) + SEQ: 0x24bec127 + ACK: 0x00abebde + WIN: 4096 + HLEN: 20 + CKSUM: 0x38a5 (too short to verify) + DLEN: 4 (none of it in dump file) + data: 4 bytes +Packet 13 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.063628 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 1326 + CKSUM: 0x6d89 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 32023 + FLG: -AP--- (0x18) + SEQ: 0x083c5684 + ACK: 0x3d7294a3 + WIN: 4094 + HLEN: 20 + CKSUM: 0x75b0 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 14 + Packet Length: 566 (saved length 54) + Collected: Tue Mar 8 21:42:52.076053 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.20.239.131 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 55 + LEN: 552 + ID: 52842 + CKSUM: 0x7de0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2380 + DPRT: 119 + FLG: -A---- (0x10) + SEQ: 0x090918d4 + ACK: 0x2e71ab99 + WIN: 4096 + HLEN: 20 + CKSUM: 0x90a7 (too short to verify) + DLEN: 512 (none of it in dump file) + data: 512 bytes +Packet 15 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.077124 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30005 + CKSUM: 0x1b83 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32023 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3d7294a3 + ACK: 0x083c5685 + WIN: 89 + HLEN: 20 + CKSUM: 0xf55d (CORRECT) + DLEN: 0 +Packet 16 + Packet Length: 566 (saved length 54) + Collected: Tue Mar 8 21:42:52.080254 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.20.239.131 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 55 + LEN: 552 + ID: 52843 + CKSUM: 0x7ddf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2380 + DPRT: 119 + FLG: -A---- (0x10) + SEQ: 0x09091ad4 + ACK: 0x2e71ab99 + WIN: 4096 + HLEN: 20 + CKSUM: 0xcf61 (too short to verify) + DLEN: 512 (none of it in dump file) + data: 512 bytes +Packet 17 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.082337 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 192.20.239.131 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1327 + CKSUM: 0x441c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 119 + DPRT: 2380 + FLG: -A---- (0x10) + SEQ: 0x2e71ab99 + ACK: 0x09091cd4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x60a4 (CORRECT) + DLEN: 0 +Packet 18 + Packet Length: 566 (saved length 54) + Collected: Tue Mar 8 21:42:52.083192 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.20.239.131 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 55 + LEN: 552 + ID: 52844 + CKSUM: 0x7dde (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2380 + DPRT: 119 + FLG: -A---- (0x10) + SEQ: 0x09091cd4 + ACK: 0x2e71ab99 + WIN: 4096 + HLEN: 20 + CKSUM: 0x68bc (too short to verify) + DLEN: 512 (none of it in dump file) + data: 512 bytes +Packet 19 + Packet Length: 342 (saved length 54) + Collected: Tue Mar 8 21:42:52.084088 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.20.239.131 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 55 + LEN: 328 + ID: 52845 + CKSUM: 0x7ebd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2380 + DPRT: 119 + FLG: -AP--- (0x18) + SEQ: 0x09091ed4 + ACK: 0x2e71ab99 + WIN: 4096 + HLEN: 20 + CKSUM: 0xd943 (too short to verify) + DLEN: 288 (none of it in dump file) + data: 288 bytes +Packet 20 + Packet Length: 67 (saved length 54) + Collected: Tue Mar 8 21:42:52.097531 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 192.20.239.131 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 53 + ID: 1328 + CKSUM: 0x440e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 119 + DPRT: 2380 + FLG: -AP--- (0x18) + SEQ: 0x2e71ab99 + ACK: 0x09091ff4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x9cc4 (too short to verify) + DLEN: 13 (none of it in dump file) + data: 13 bytes +Packet 21 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.098512 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:1b:4b:f4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.4.63 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30006 + CKSUM: 0x1844 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 26638 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d9bf35c + ACK: 0x44444a8d + WIN: 130 + HLEN: 20 + CKSUM: 0x5805 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 22 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.100362 1994 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 50920 + CKSUM: 0xa98c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1022 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x021343d9 + ACK: 0x2a48696a + WIN: 16384 + HLEN: 20 + CKSUM: 0x0fd3 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 23 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.100613 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:09:99:75 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 147.205.85.10 + IP Dest: 132.235.1.100 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 48 + LEN: 40 + ID: 14479 + CKSUM: 0xe31a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3043 + DPRT: 5000 + FLG: -A---- (0x10) + SEQ: 0x1af56c06 + ACK: 0x1c2e99dc + WIN: 6144 + HLEN: 20 + CKSUM: 0xcc3c (CORRECT) + DLEN: 0 +Packet 24 + Packet Length: 61 (saved length 54) + Collected: Tue Mar 8 21:42:52.102961 1994 + ETH Srce: 08:00:20:1b:4b:f4 + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.4.63 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 47 + ID: 27736 + CKSUM: 0x001b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 26638 + FLG: -AP--- (0x18) + SEQ: 0x44444a8d + ACK: 0x3d9bf35d + WIN: 8774 + HLEN: 20 + CKSUM: 0x896d (too short to verify) + DLEN: 7 (none of it in dump file) + data: 7 bytes +Packet 25 + Packet Length: 100 (saved length 54) + Collected: Tue Mar 8 21:42:52.109527 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.20.239.131 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 55 + LEN: 86 + ID: 52847 + CKSUM: 0x7fad (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2380 + DPRT: 119 + FLG: -AP--- (0x18) + SEQ: 0x09091ff4 + ACK: 0x2e71aba6 + WIN: 4096 + HLEN: 20 + CKSUM: 0xc49d (too short to verify) + DLEN: 46 (none of it in dump file) + data: 46 bytes +Packet 26 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.115071 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:1b:4b:f4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.4.63 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30007 + CKSUM: 0x1844 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 26638 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3d9bf35d + ACK: 0x44444a94 + WIN: 123 + HLEN: 20 + CKSUM: 0x780d (CORRECT) + DLEN: 0 +Packet 27 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.119240 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58956 + CKSUM: 0xe395 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 24077 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xba5967ba + ACK: 0x1c620145 + WIN: 1418 + HLEN: 20 + CKSUM: 0x398d (CORRECT) + DLEN: 0 +Packet 28 + Packet Length: 1078 (saved length 54) + Collected: Tue Mar 8 21:42:52.121144 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:02:03:a8:6f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.200.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 1064 + ID: 1329 + CKSUM: 0xa2c1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 24077 + FLG: -A---- (0x10) + SEQ: 0x1c620145 + ACK: 0xba5967ba + WIN: 4096 + HLEN: 20 + CKSUM: 0x09bf (too short to verify) + DLEN: 1024 (none of it in dump file) + data: 1024 bytes +Packet 29 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.122955 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 1330 + CKSUM: 0x6b43 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 513 + DPRT: 1022 + FLG: -AP--- (0x18) + SEQ: 0x2a48696a + ACK: 0x021343da + WIN: 4096 + HLEN: 20 + CKSUM: 0x3fd2 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 30 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.127640 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58957 + CKSUM: 0xe394 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 24077 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xba5967ba + ACK: 0x1c620545 + WIN: 394 + HLEN: 20 + CKSUM: 0x398d (CORRECT) + DLEN: 0 +Packet 31 + Packet Length: 75 (saved length 54) + Collected: Tue Mar 8 21:42:52.152715 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 61 + ID: 1331 + CKSUM: 0x6d70 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 32023 + FLG: -AP--- (0x18) + SEQ: 0x083c5685 + ACK: 0x3d7294a3 + WIN: 4096 + HLEN: 20 + CKSUM: 0xe012 (too short to verify) + DLEN: 21 (none of it in dump file) + data: 21 bytes +Packet 32 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.157530 1994 + ETH Srce: 08:00:20:11:cf:1e + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.17.1 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 43 + ID: 5848 + CKSUM: 0x4c1c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3711 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x4345ce33 + ACK: 0x5d8fc762 + WIN: 4096 + HLEN: 20 + CKSUM: 0xe29f (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 33 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.164450 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30008 + CKSUM: 0x1b80 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32023 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3d7294a3 + ACK: 0x083c569a + WIN: 164 + HLEN: 20 + CKSUM: 0xf4fd (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.167886 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:11:cf:1e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.17.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 43 + ID: 1332 + CKSUM: 0x5dc0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 3711 + FLG: -AP--- (0x18) + SEQ: 0x5d8fc762 + ACK: 0x4345ce36 + WIN: 4096 + HLEN: 20 + CKSUM: 0xe290 (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 35 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.184067 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 129.110.31.10 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 44 + LEN: 40 + ID: 60460 + CKSUM: 0x7c3e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2770 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x00abebde + ACK: 0x24bec12b + WIN: 4096 + HLEN: 20 + CKSUM: 0x9c12 (CORRECT) + DLEN: 0 +Packet 36 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.185039 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 129.110.31.10 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 1333 + CKSUM: 0x5335 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 2770 + FLG: -AP--- (0x18) + SEQ: 0x24bec12b + ACK: 0x00abebde + WIN: 4096 + HLEN: 20 + CKSUM: 0x5809 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 37 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.187863 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:09:99:75 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 150.252.1.1 + IP Dest: 132.235.1.100 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 43 + ID: 57961 + CKSUM: 0x8f17 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1211 + DPRT: 5000 + FLG: -AP--- (0x18) + SEQ: 0x38fde379 + ACK: 0x1c0d82cf + WIN: 6144 + HLEN: 20 + CKSUM: 0x36d9 (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 38 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.200649 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.24.25 + IP Dest: 129.71.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 41 + ID: 46086 + CKSUM: 0xa87b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 1890 + FLG: -AP--- (0x18) + SEQ: 0x53f0ec27 + ACK: 0x76540554 + WIN: 9112 + HLEN: 20 + CKSUM: 0x3fad (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 39 + Packet Length: 55 (saved length 54) + Collected: Tue Mar 8 21:42:52.200980 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.24.25 + IP Dest: 129.71.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 41 + ID: 46086 + CKSUM: 0xa87b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 1890 + FLG: -AP--- (0x18) + SEQ: 0x53f0ec27 + ACK: 0x76540554 + WIN: 9112 + HLEN: 20 + CKSUM: 0x3fad (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 40 + Packet Length: 70 (saved length 54) + Collected: Tue Mar 8 21:42:52.205305 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:02:03:a8:6f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.30 + IP Dest: 132.235.200.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 56 + ID: 1334 + CKSUM: 0xa590 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 3592 + FLG: -AP--- (0x18) + SEQ: 0x5474ae28 + ACK: 0xb9ddaccf + WIN: 4096 + HLEN: 20 + CKSUM: 0x524c (too short to verify) + DLEN: 16 (none of it in dump file) + data: 16 bytes +Packet 41 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.220433 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:09:99:75 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 147.205.85.10 + IP Dest: 132.235.1.100 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 48 + LEN: 45 + ID: 14480 + CKSUM: 0xe314 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3054 + DPRT: 5000 + FLG: -AP--- (0x18) + SEQ: 0x1e049d97 + ACK: 0x1f31cfe4 + WIN: 6144 + HLEN: 20 + CKSUM: 0xadfc (too short to verify) + DLEN: 5 (none of it in dump file) + data: 5 bytes +Packet 42 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.221160 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 192.20.239.131 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1335 + CKSUM: 0x4414 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 119 + DPRT: 2380 + FLG: -A---- (0x10) + SEQ: 0x2e71aba6 + ACK: 0x09092022 + WIN: 4096 + HLEN: 20 + CKSUM: 0x5d49 (CORRECT) + DLEN: 0 +Packet 43 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.258052 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:2b:1d:6f:30 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30009 + CKSUM: 0x1a7f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 11049 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3db4abf4 + ACK: 0x737e6856 + WIN: 164 + HLEN: 20 + CKSUM: 0x4c52 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 44 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.258249 1994 + ETH Srce: 08:00:20:09:99:75 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.100 + IP Dest: 147.205.85.10 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 21946 + CKSUM: 0xb9ef (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5000 + DPRT: 3054 + FLG: -A---- (0x10) + SEQ: 0x1f31cfe4 + ACK: 0x1e049d9c + WIN: 4091 + HLEN: 20 + CKSUM: 0x6686 (CORRECT) + DLEN: 0 +Packet 45 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.258436 1994 + ETH Srce: 08:00:20:09:99:75 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.100 + IP Dest: 150.252.1.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 21947 + CKSUM: 0x0ac9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5000 + DPRT: 1211 + FLG: -A---- (0x10) + SEQ: 0x1c0d82cf + ACK: 0x38fde37c + WIN: 4093 + HLEN: 20 + CKSUM: 0xadf1 (CORRECT) + DLEN: 0 +Packet 46 + Packet Length: 491 (saved length 54) + Collected: Tue Mar 8 21:42:52.259342 1994 + ETH Srce: 08:00:20:09:99:75 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.100 + IP Dest: 134.241.10.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 477 + ID: 21948 + CKSUM: 0x101a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5000 + DPRT: 1783 + FLG: -AP--- (0x18) + SEQ: 0x27b576dc + ACK: 0x0c65d838 + WIN: 4096 + HLEN: 20 + CKSUM: 0x2f5c (too short to verify) + DLEN: 437 (none of it in dump file) + data: 437 bytes +Packet 47 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.261280 1994 + ETH Srce: 08:00:2b:1d:6f:30 + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.1 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 55470 + CKSUM: 0x9909 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 11049 + FLG: -AP--- (0x18) + SEQ: 0x737e6856 + ACK: 0x3db4abf5 + WIN: 16384 + HLEN: 20 + CKSUM: 0x0cf5 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 48 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.267403 1994 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 50921 + CKSUM: 0xa98b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1022 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x021343da + ACK: 0x2a48696b + WIN: 16384 + HLEN: 20 + CKSUM: 0x53d1 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 49 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.276253 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:2b:1d:6f:30 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30010 + CKSUM: 0x1a7f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 11049 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3db4abf5 + ACK: 0x737e6857 + WIN: 163 + HLEN: 20 + CKSUM: 0xb15a (CORRECT) + DLEN: 0 +Packet 50 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.282865 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30011 + CKSUM: 0x1b7c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32023 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d7294a3 + ACK: 0x083c569a + WIN: 164 + HLEN: 20 + CKSUM: 0x87f4 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 51 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.290607 1994 + ETH Srce: 02:60:8c:8d:4d:de + ETH Dest: aa:00:04:00:54:b4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.17.161 + IP Dest: 132.235.1.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 11123 + CKSUM: 0x36df (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 28930 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x00158499 + ACK: 0x22832b16 + WIN: 1024 + HLEN: 20 + CKSUM: 0x2bed (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 52 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.292137 1994 + ETH Srce: aa:00:04:00:54:b4 + ETH Dest: 02:60:8c:8d:4d:de + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.6 + IP Dest: 132.235.17.161 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 32 + LEN: 40 + ID: 2056 + CKSUM: 0x764b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 28930 + FLG: -A---- (0x10) + SEQ: 0x22832b16 + ACK: 0x0015849a + WIN: 7798 + HLEN: 20 + CKSUM: 0x317f (CORRECT) + DLEN: 0 +Packet 53 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.296804 1994 + ETH Srce: aa:00:04:00:54:b4 + ETH Dest: 02:60:8c:8d:4d:de + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.6 + IP Dest: 132.235.17.161 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 32 + LEN: 41 + ID: 2057 + CKSUM: 0x7649 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 28930 + FLG: -AP--- (0x18) + SEQ: 0x22832b16 + ACK: 0x0015849a + WIN: 7798 + HLEN: 20 + CKSUM: 0x1176 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 54 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.300842 1994 + ETH Srce: 02:60:8c:8d:4d:de + ETH Dest: aa:00:04:00:54:b4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.17.161 + IP Dest: 132.235.1.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 11379 + CKSUM: 0x35e0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 28930 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x0015849a + ACK: 0x22832b17 + WIN: 1024 + HLEN: 20 + CKSUM: 0x4bec (CORRECT) + DLEN: 0 +Packet 55 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.319045 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:1b:4b:f4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.4.63 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30012 + CKSUM: 0x183e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 26638 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d9bf35d + ACK: 0x44444a94 + WIN: 123 + HLEN: 20 + CKSUM: 0x0a04 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 56 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.322349 1994 + ETH Srce: 08:00:20:11:cf:1e + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.17.1 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 5850 + CKSUM: 0x4c1d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3711 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x4345ce36 + ACK: 0x5d8fc765 + WIN: 4096 + HLEN: 20 + CKSUM: 0x3ef4 (CORRECT) + DLEN: 0 +Packet 57 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.323367 1994 + ETH Srce: 08:00:20:1b:4b:f4 + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.4.63 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 27737 + CKSUM: 0x0020 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 26638 + FLG: -AP--- (0x18) + SEQ: 0x44444a94 + ACK: 0x3d9bf35e + WIN: 8774 + HLEN: 20 + CKSUM: 0xe837 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 58 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.325764 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:2b:1d:6f:30 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30013 + CKSUM: 0x1a7b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 11049 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3db4abf5 + ACK: 0x737e6857 + WIN: 163 + HLEN: 20 + CKSUM: 0x3a51 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 59 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.326830 1994 + ETH Srce: 08:00:20:11:cf:1e + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.17.1 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 43 + ID: 5851 + CKSUM: 0x4c19 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3711 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x4345ce36 + ACK: 0x5d8fc765 + WIN: 4096 + HLEN: 20 + CKSUM: 0xe299 (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 60 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.328457 1994 + ETH Srce: 08:00:2b:1d:6f:30 + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.1 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 55471 + CKSUM: 0x9908 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 11049 + FLG: -AP--- (0x18) + SEQ: 0x737e6857 + ACK: 0x3db4abf6 + WIN: 16384 + HLEN: 20 + CKSUM: 0xfaf2 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 61 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.330993 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.2.30 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 43 + ID: 58960 + CKSUM: 0xe272 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2065 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0xba3a1300 + ACK: 0x09832f11 + WIN: 2048 + HLEN: 20 + CKSUM: 0x697d (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 62 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.340700 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:1b:4b:f4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.4.63 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30014 + CKSUM: 0x183d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 26638 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3d9bf35e + ACK: 0x44444a95 + WIN: 122 + HLEN: 20 + CKSUM: 0x780c (CORRECT) + DLEN: 0 +Packet 63 + Packet Length: 72 (saved length 54) + Collected: Tue Mar 8 21:42:52.342278 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:02:03:a8:6f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.30 + IP Dest: 132.235.200.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 58 + ID: 1338 + CKSUM: 0xa58a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 2065 + FLG: -AP--- (0x18) + SEQ: 0x09832f11 + ACK: 0xba3a1303 + WIN: 4096 + HLEN: 20 + CKSUM: 0x4374 (too short to verify) + DLEN: 18 (none of it in dump file) + data: 18 bytes +Packet 64 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.350591 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:2b:1d:6f:30 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30015 + CKSUM: 0x1a7a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 11049 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3db4abf6 + ACK: 0x737e6858 + WIN: 162 + HLEN: 20 + CKSUM: 0xb159 (CORRECT) + DLEN: 0 +Packet 65 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.358858 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30016 + CKSUM: 0x1b77 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32301 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d910135 + ACK: 0x1a2e948d + WIN: 153 + HLEN: 20 + CKSUM: 0xbe53 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 66 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.373971 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:09:99:75 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 134.241.10.5 + IP Dest: 132.235.1.100 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 15 + LEN: 40 + ID: 48962 + CKSUM: 0xd548 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1783 + DPRT: 5000 + FLG: -A---- (0x10) + SEQ: 0x0c65d838 + ACK: 0x27b57891 + WIN: 4096 + HLEN: 20 + CKSUM: 0xe92b (CORRECT) + DLEN: 0 +Packet 67 + Packet Length: 62 (saved length 54) + Collected: Tue Mar 8 21:42:52.374224 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 48 + ID: 1339 + CKSUM: 0x6d75 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 32301 + FLG: -AP--- (0x18) + SEQ: 0x1a2e948d + ACK: 0x3d910136 + WIN: 4096 + HLEN: 20 + CKSUM: 0x0094 (too short to verify) + DLEN: 8 (none of it in dump file) + data: 8 bytes +Packet 68 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.381942 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 129.110.31.10 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 44 + LEN: 40 + ID: 60480 + CKSUM: 0x7c2a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2770 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x00abebde + ACK: 0x24bec12c + WIN: 4096 + HLEN: 20 + CKSUM: 0x9c11 (CORRECT) + DLEN: 0 +Packet 69 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.386906 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30017 + CKSUM: 0x1b77 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32301 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3d910136 + ACK: 0x1a2e9495 + WIN: 145 + HLEN: 20 + CKSUM: 0x375c (CORRECT) + DLEN: 0 +Packet 70 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.407247 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.2.30 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58961 + CKSUM: 0xe274 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3592 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xb9ddaccf + ACK: 0x5474ae38 + WIN: 2048 + HLEN: 20 + CKSUM: 0x5c61 (CORRECT) + DLEN: 0 +Packet 71 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.409177 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:02:03:a8:6f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.30 + IP Dest: 132.235.200.5 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 43 + ID: 1340 + CKSUM: 0xa597 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 3592 + FLG: -AP--- (0x18) + SEQ: 0x5474ae38 + ACK: 0xb9ddaccf + WIN: 4096 + HLEN: 20 + CKSUM: 0x404c (too short to verify) + DLEN: 3 (none of it in dump file) + data: 3 bytes +Packet 72 + Packet Length: 109 (saved length 54) + Collected: Tue Mar 8 21:42:52.414407 1994 + ETH Srce: 08:00:20:09:99:75 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.100 + IP Dest: 144.32.128.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 95 + ID: 21949 + CKSUM: 0x9266 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5000 + DPRT: 4427 + FLG: -AP--- (0x18) + SEQ: 0x2b1f2ce4 + ACK: 0x68966b10 + WIN: 4096 + HLEN: 20 + CKSUM: 0x464b (too short to verify) + DLEN: 55 (none of it in dump file) + data: 55 bytes +Packet 73 + Packet Length: 107 (saved length 54) + Collected: Tue Mar 8 21:42:52.415197 1994 + ETH Srce: 08:00:20:09:99:75 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.100 + IP Dest: 147.205.85.10 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 93 + ID: 21950 + CKSUM: 0xb9b6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5000 + DPRT: 3054 + FLG: -AP--- (0x18) + SEQ: 0x1f31cfe4 + ACK: 0x1e049d9c + WIN: 4096 + HLEN: 20 + CKSUM: 0xf804 (too short to verify) + DLEN: 53 (none of it in dump file) + data: 53 bytes +Packet 74 + Packet Length: 378 (saved length 54) + Collected: Tue Mar 8 21:42:52.416298 1994 + ETH Srce: 08:00:20:09:99:75 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.100 + IP Dest: 150.252.1.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 364 + ID: 21951 + CKSUM: 0x0981 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5000 + DPRT: 1211 + FLG: -AP--- (0x18) + SEQ: 0x1c0d82cf + ACK: 0x38fde37c + WIN: 4096 + HLEN: 20 + CKSUM: 0xc4ae (too short to verify) + DLEN: 324 (none of it in dump file) + data: 324 bytes +Packet 75 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.416714 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.24.25 + IP Dest: 129.71.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 42 + ID: 46087 + CKSUM: 0xa879 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 1890 + FLG: -AP--- (0x18) + SEQ: 0x53f0ec28 + ACK: 0x76540554 + WIN: 9112 + HLEN: 20 + CKSUM: 0x3b8b (too short to verify) + DLEN: 2 (none of it in dump file) + data: 2 bytes +Packet 76 + Packet Length: 56 (saved length 54) + Collected: Tue Mar 8 21:42:52.417133 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.24.25 + IP Dest: 129.71.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 42 + ID: 46087 + CKSUM: 0xa879 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 1890 + FLG: -AP--- (0x18) + SEQ: 0x53f0ec28 + ACK: 0x76540554 + WIN: 9112 + HLEN: 20 + CKSUM: 0x3b8b (too short to verify) + DLEN: 2 (none of it in dump file) + data: 2 bytes +Packet 77 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.418165 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30018 + CKSUM: 0x1b75 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32023 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d7294a4 + ACK: 0x083c569a + WIN: 164 + HLEN: 20 + CKSUM: 0x93f3 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 78 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.421010 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1341 + CKSUM: 0x6b39 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 513 + DPRT: 1022 + FLG: -A---- (0x10) + SEQ: 0x2a48696b + ACK: 0x021343db + WIN: 4096 + HLEN: 20 + CKSUM: 0xb1d9 (CORRECT) + DLEN: 0 +Packet 79 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.421319 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1342 + CKSUM: 0x6d7a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 32023 + FLG: -A---- (0x10) + SEQ: 0x083c569a + ACK: 0x3d7294a5 + WIN: 4095 + HLEN: 20 + CKSUM: 0xe5a0 (CORRECT) + DLEN: 0 +Packet 80 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.421598 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:11:cf:1e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.17.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1343 + CKSUM: 0x5db8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 3711 + FLG: -A---- (0x10) + SEQ: 0x5d8fc765 + ACK: 0x4345ce39 + WIN: 4096 + HLEN: 20 + CKSUM: 0x3ef1 (CORRECT) + DLEN: 0 +Packet 81 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.422424 1994 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 50922 + CKSUM: 0xa98a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1022 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x021343db + ACK: 0x2a48696b + WIN: 16384 + HLEN: 20 + CKSUM: 0x1ed0 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 82 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.497040 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:1b:4b:f4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.4.63 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30019 + CKSUM: 0x1837 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 26638 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d9bf35e + ACK: 0x44444a95 + WIN: 122 + HLEN: 20 + CKSUM: 0x0903 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 83 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.501308 1994 + ETH Srce: 08:00:20:1b:4b:f4 + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.4.63 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 27738 + CKSUM: 0x001f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 23 + DPRT: 26638 + FLG: -AP--- (0x18) + SEQ: 0x44444a95 + ACK: 0x3d9bf35f + WIN: 8774 + HLEN: 20 + CKSUM: 0xe735 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 84 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.505988 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 1344 + CKSUM: 0x6b35 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 513 + DPRT: 1022 + FLG: -AP--- (0x18) + SEQ: 0x2a48696b + ACK: 0x021343dc + WIN: 4096 + HLEN: 20 + CKSUM: 0x83cf (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 85 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.507967 1994 + ETH Srce: 08:00:02:03:a8:6f + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.200.5 + IP Dest: 132.235.2.30 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 58963 + CKSUM: 0xe272 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 2065 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0xba3a1303 + ACK: 0x09832f23 + WIN: 2048 + HLEN: 20 + CKSUM: 0xc5ce (CORRECT) + DLEN: 0 +Packet 86 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.515214 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:1b:4b:f4 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.4.63 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30020 + CKSUM: 0x1837 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 26638 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3d9bf35f + ACK: 0x44444a96 + WIN: 121 + HLEN: 20 + CKSUM: 0x780b (CORRECT) + DLEN: 0 +Packet 87 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.538325 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:2b:1d:6f:30 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30021 + CKSUM: 0x1a73 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 11049 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3db4abf6 + ACK: 0x737e6858 + WIN: 162 + HLEN: 20 + CKSUM: 0x4250 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 88 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.541109 1994 + ETH Srce: 08:00:2b:1d:6f:30 + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.1 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 55473 + CKSUM: 0x9906 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 11049 + FLG: -AP--- (0x18) + SEQ: 0x737e6858 + ACK: 0x3db4abf7 + WIN: 16384 + HLEN: 20 + CKSUM: 0x02f1 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 89 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.544960 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 41 + ID: 30022 + CKSUM: 0x1b71 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 32301 + DPRT: 23 + FLG: -AP--- (0x18) + SEQ: 0x3d910136 + ACK: 0x1a2e9495 + WIN: 145 + HLEN: 20 + CKSUM: 0xc852 (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 90 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.551175 1994 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 50923 + CKSUM: 0xa989 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1022 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x021343dc + ACK: 0x2a48696c + WIN: 16384 + HLEN: 20 + CKSUM: 0x74ce (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 91 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.553682 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 41 + ID: 1345 + CKSUM: 0x6b34 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 513 + DPRT: 1022 + FLG: -AP--- (0x18) + SEQ: 0x2a48696c + ACK: 0x021343dd + WIN: 4095 + HLEN: 20 + CKSUM: 0x4ece (too short to verify) + DLEN: 1 (none of it in dump file) + data: 1 bytes +Packet 92 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.558200 1994 + ETH Srce: 00:00:d0:00:80:05 + ETH Dest: 08:00:2b:1d:6f:30 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.64 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 30 + LEN: 40 + ID: 30023 + CKSUM: 0x1a72 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 11049 + DPRT: 23 + FLG: -A---- (0x10) + SEQ: 0x3db4abf7 + ACK: 0x737e6859 + WIN: 161 + HLEN: 20 + CKSUM: 0xb158 (CORRECT) + DLEN: 0 +Packet 93 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.585542 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:09:49:d4:f9 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.147 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 1348 + CKSUM: 0x6d1d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3141 + DPRT: 9100 + FLG: ----S- (0x02) + SEQ: 0x301b6e00 + ACK: 0x00000000 + WIN: 4096 + HLEN: 24 (only 20 bytes in dump file) + CKSUM: 0xadce (too short to verify) + DLEN: 0 + OPTS: 4 bytes (none of it in dump file) +Packet 94 + Packet Length: 62 (saved length 54) + Collected: Tue Mar 8 21:42:52.588438 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 48 + ID: 1349 + CKSUM: 0x6d6b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 32301 + FLG: -AP--- (0x18) + SEQ: 0x1a2e9495 + ACK: 0x3d910137 + WIN: 4096 + HLEN: 20 + CKSUM: 0x0a8b (too short to verify) + DLEN: 8 (none of it in dump file) + data: 8 bytes +Packet 95 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.589239 1994 + ETH Srce: 08:00:09:49:d4:f9 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.147 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 1528 + CKSUM: 0x6c69 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9100 + DPRT: 3141 + FLG: -A--S- (0x12) + SEQ: 0x0003281d + ACK: 0x301b6e01 + WIN: 8760 + HLEN: 24 (only 20 bytes in dump file) + CKSUM: 0x7365 (too short to verify) + DLEN: 0 + OPTS: 4 bytes (none of it in dump file) +Packet 96 + Packet Length: 60 (saved length 54) + Collected: Tue Mar 8 21:42:52.590064 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:09:49:d4:f9 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.147 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1350 + CKSUM: 0x6d1f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3141 + DPRT: 9100 + FLG: -A---- (0x10) + SEQ: 0x301b6e01 + ACK: 0x0003281e + WIN: 4096 + HLEN: 20 + CKSUM: 0x9d5a (CORRECT) + DLEN: 0 +Packet 97 + Packet Length: 381 (saved length 54) + Collected: Tue Mar 8 21:42:52.593311 1994 + ETH Srce: aa:00:04:00:fd:b5 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.236.254.159 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 241 + LEN: 367 + ID: 16286 + CKSUM: 0x4171 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2000 + DPRT: 1459 + FLG: -AP--- (0x18) + SEQ: 0x3c65a2fb + ACK: 0x704c23a5 + WIN: 9112 + HLEN: 20 + CKSUM: 0xf455 (too short to verify) + DLEN: 327 (none of it in dump file) + data: 327 bytes +Packet 98 + Packet Length: 96 (saved length 54) + Collected: Tue Mar 8 21:42:52.595327 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:09:49:d4:f9 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.147 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 82 + ID: 1351 + CKSUM: 0x6cf4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3141 + DPRT: 9100 + FLG: -AP--- (0x18) + SEQ: 0x301b6e01 + ACK: 0x0003281e + WIN: 4096 + HLEN: 20 + CKSUM: 0x121b (too short to verify) + DLEN: 42 (none of it in dump file) + data: 42 bytes +Packet 99 + Packet Length: 136 (saved length 54) + Collected: Tue Mar 8 21:42:52.603979 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 122 + ID: 1352 + CKSUM: 0x6d1e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 22058 + FLG: -A---- (0x10) + SEQ: 0x6f484aad + ACK: 0x3d457089 + WIN: 4096 + HLEN: 20 + CKSUM: 0x6e7e (too short to verify) + DLEN: 82 (none of it in dump file) + data: 82 bytes +Packet 100 + Packet Length: 136 (saved length 54) + Collected: Tue Mar 8 21:42:52.604321 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 00:00:d0:00:80:05 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 122 + ID: 1353 + CKSUM: 0x6d1d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 23 + DPRT: 22058 + FLG: -A---- (0x10) + SEQ: 0x6f484aff + ACK: 0x3d457089 + WIN: 4096 + HLEN: 20 + CKSUM: 0x3330 (too short to verify) + DLEN: 82 (none of it in dump file) + data: 82 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.629282 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 4 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.1.2:119 - 192.20.239.131:2380 (a2b) 4> 5< + 2: 132.235.200.5:17157 - 132.235.2.30:23 (c2d) 3> 2< + 3: 132.235.3.130:1022 - 132.235.1.2:513 (e2f) 5> 5< + 4: 132.235.1.2:1835 - 149.84.33.3:1729 (g2h) 1> 0< (unidirectional) + 5: 132.235.1.2:23 - 132.235.1.64:32023 (i2j) 4> 4< + 6: 129.110.31.10:2770 - 132.235.1.2:23 (k2l) 3> 2< + 7: 132.235.1.64:26638 - 132.235.4.63:23 (m2n) 6> 3< + 8: 147.205.85.10:3043 - 132.235.1.100:5000 (o2p) 1> 0< (unidirectional) + 9: 132.235.200.5:24077 - 132.235.1.2:23 (q2r) 2> 1< + 10: 132.235.17.1:3711 - 132.235.1.2:23 (s2t) 3> 2< + 11: 150.252.1.1:1211 - 132.235.1.100:5000 (u2v) 1> 2< + 12: 132.235.24.25:23 - 129.71.2.1:1890 (w2x) 4> 0< (unidirectional) + ** Warning, w2x: detected 2 hardware duplicate(s) (same seq # and IP ID) + 13: 132.235.2.30:23 - 132.235.200.5:3592 (y2z) 2> 1< + 14: 147.205.85.10:3054 - 132.235.1.100:5000 (aa2ab) 1> 2< + 15: 132.235.1.64:11049 - 132.235.2.1:23 (ac2ad) 6> 3< + 16: 132.235.1.100:5000 - 134.241.10.5:1783 (ae2af) 1> 1< + 17: 132.235.17.161:28930 - 132.235.1.6:23 (ag2ah) 2> 2< + 18: 132.235.200.5:2065 - 132.235.2.30:23 (ai2aj) 2> 1< + 19: 132.235.1.64:32301 - 132.235.1.2:23 (ak2al) 3> 2< + 20: 132.235.1.100:5000 - 144.32.128.6:4427 (am2an) 1> 0< (unidirectional) + 21: 132.235.1.2:3141 - 132.235.1.147:9100 (ao2ap) 3> 1< + 22: 130.236.254.159:2000 - 132.235.1.2:1459 (aq2ar) 1> 0< (unidirectional) + 23: 132.235.1.2:23 - 132.235.1.64:22058 (as2at) 2> 0< (unidirectional) diff --git a/input/OUTPUTbench/all.snoop.gz.short b/input/OUTPUTbench/all.snoop.gz.short new file mode 100644 index 0000000..5ff4fe9 --- /dev/null +++ b/input/OUTPUTbench/all.snoop.gz.short @@ -0,0 +1,63 @@ +1 arg remaining, starting with 'all.snoop.gz' + +829 packets seen, 829 TCP packets traced +trace file elapsed time: 0:00:04.147060 +TCP connection info: +*** 2 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.1.2:119 - 192.20.239.131:2380 (a2b) 43> 54< + 2: 132.235.200.5:17157 - 132.235.2.30:23 (c2d) 14> 8< + 3: 132.235.3.130:1022 - 132.235.1.2:513 (e2f) 15> 12< + 4: 132.235.1.2:1835 - 149.84.33.3:1729 (g2h) 3> 2< + 5: 132.235.1.2:23 - 132.235.1.64:32023 (i2j) 15> 20< + 6: 129.110.31.10:2770 - 132.235.1.2:23 (k2l) 8> 6< + 7: 132.235.1.64:26638 - 132.235.4.63:23 (m2n) 34> 17< + 8: 147.205.85.10:3043 - 132.235.1.100:5000 (o2p) 3> 3< + 9: 132.235.200.5:24077 - 132.235.1.2:23 (q2r) 14> 8< + 10: 132.235.17.1:3711 - 132.235.1.2:23 (s2t) 4> 3< + 11: 150.252.1.1:1211 - 132.235.1.100:5000 (u2v) 8> 6< + 12: 132.235.24.25:23 - 129.71.2.1:1890 (w2x) 32> 0< (unidirectional) + ** Warning, w2x: detected 16 hardware duplicate(s) (same seq # and IP ID) + 13: 132.235.2.30:23 - 132.235.200.5:3592 (y2z) 8> 8< + 14: 147.205.85.10:3054 - 132.235.1.100:5000 (aa2ab) 4> 6< + 15: 132.235.1.64:11049 - 132.235.2.1:23 (ac2ad) 28> 22< + 16: 132.235.1.100:5000 - 134.241.10.5:1783 (ae2af) 1> 1< + 17: 132.235.17.161:28930 - 132.235.1.6:23 (ag2ah) 16> 16< + 18: 132.235.200.5:2065 - 132.235.2.30:23 (ai2aj) 9> 7< + 19: 132.235.1.64:32301 - 132.235.1.2:23 (ak2al) 16> 8< + 20: 132.235.1.100:5000 - 144.32.128.6:4427 (am2an) 1> 1< + 21: 132.235.1.2:3141 - 132.235.1.147:9100 (ao2ap) 9> 7< + 22: 130.236.254.159:2000 - 132.235.1.2:1459 (aq2ar) 1> 1< + 23: 132.235.1.2:23 - 132.235.1.64:22058 (as2at) 4> 2< + 24: 132.235.1.64:6917 - 132.235.1.2:23 (au2av) 25> 17< + 25: 132.235.1.64:272 - 132.235.1.2:23 (aw2ax) 12> 7< + 26: 132.235.17.13:1569 - 132.235.1.2:23 (ay2az) 12> 7< + 27: 128.8.11.201:5000 - 132.235.1.2:2865 (ba2bb) 1> 1< + 28: 132.235.1.2:23 - 132.235.1.64:26129 (bc2bd) 1> 1< + 29: 132.235.1.64:23326 - 132.235.1.2:23 (be2bf) 11> 6< + 30: 132.235.1.129:14458 - 132.235.2.1:23 (bg2bh) 42> 24< + 31: 132.235.24.250:6381 - 132.235.1.2:23 (bi2bj) 20> 18< + 32: 132.235.200.5:32260 - 132.235.2.30:23 (bk2bl) 3> 3< + 33: 132.235.17.195:17802 - 132.235.1.2:23 (bm2bn) 8> 5< + 34: 132.235.4.216:10388 - 132.235.1.2:23 (bo2bp) 2> 2< + 35: 132.235.1.2:2635 - 162.148.13.44:4000 (bq2br) 3> 3< + 36: 192.216.54.2:8888 - 132.235.1.2:1527 (bs2bt) 5> 5< + 37: 192.216.54.2:8888 - 132.235.1.2:4548 (bu2bv) 3> 2< + 38: 132.235.1.2:23 - 132.235.1.64:19211 (bw2bx) 3> 3< + 39: 144.32.128.6:3207 - 132.235.1.100:5000 (by2bz) 3> 4< + 40: 132.235.1.64:18461 - 132.235.1.2:23 (ca2cb) 1> 0< (unidirectional) + 41: 132.235.1.64:17416 - 132.235.1.2:23 (cc2cd) 1> 0< (unidirectional) + 42: 132.235.4.217:7581 - 132.235.1.6:23 (ce2cf) 2> 2< + 43: 132.235.1.100:5000 - 144.32.128.6:3379 (cg2ch) 3> 2< + 44: 132.235.1.2:3143 - 129.174.1.3:25 (ci2cj) 2> 1< + 45: 132.235.1.64:21809 - 132.235.1.2:23 (ck2cl) 4> 4< + 46: 132.235.1.2:3122 - 134.53.14.115:4000 (cm2cn) 2> 2< + 47: 132.235.24.50:1906 - 132.235.1.2:119 (co2cp) 4> 3< + 48: 130.236.253.6:113 - 132.235.1.2:3138 (cq2cr) 3> 2< + 49: 132.235.1.2:25 - 130.236.253.6:4234 (cs2ct) 8> 5< + 50: 132.235.1.64:1816 - 132.235.1.2:23 (cu2cv) 1> 1< + 51: 132.235.1.64:2598 - 132.235.1.2:23 (cw2cx) 1> 0< (unidirectional) + 52: 132.235.8.7:2033 - 132.235.1.100:5000 (cy2cz) 1> 1< + 53: 130.215.24.1:20 - 132.235.17.163:3129 (da2db) 1> 0< (unidirectional) + 54: 132.235.1.64:17922 - 132.235.24.50:23 (dc2dd) 1> 0< (unidirectional) + 55: 192.216.54.2:8888 - 132.235.1.2:2892 (de2df) 1> 0< (unidirectional) diff --git a/input/OUTPUTbench/all.snoop.gz.xplots.cksum b/input/OUTPUTbench/all.snoop.gz.xplots.cksum new file mode 100644 index 0000000..36be650 --- /dev/null +++ b/input/OUTPUTbench/all.snoop.gz.xplots.cksum @@ -0,0 +1,567 @@ +1921872397 12748 a2b_owin.xpl +1027049012 2001 a2b_rtt.xpl +3621647073 3894 a2b_ssize.xpl +930342019 1194 a2b_tput.xpl +3157100788 17722 a2b_tsg.xpl +1253959722 18309 a_b_tline.xpl +961624720 1207 aa2ab_owin.xpl +954409389 249 aa2ab_rtt.xpl +2037772854 402 aa2ab_ssize.xpl +1833242043 148 aa2ab_tput.xpl +2131188969 1688 aa2ab_tsg.xpl +1529392095 2137 aa_ab_tline.xpl +2402223617 1548 ab2aa_owin.xpl +3746147981 141 ab2aa_rtt.xpl +732809015 721 ab2aa_ssize.xpl +989891958 248 ab2aa_tput.xpl +798006717 1629 ab2aa_tsg.xpl +3999167185 8322 ac2ad_owin.xpl +64615658 958 ac2ad_rtt.xpl +880777809 2090 ac2ad_ssize.xpl +776129738 566 ac2ad_tput.xpl +1443349227 8588 ac2ad_tsg.xpl +2536236485 9913 ac_ad_tline.xpl +3930932336 6511 ad2ac_owin.xpl +1001881006 1119 ad2ac_rtt.xpl +2199422289 2556 ad2ac_ssize.xpl +1818630756 678 ad2ac_tput.xpl +2693425648 9308 ad2ac_tsg.xpl +2054782304 217 ae2af_owin.xpl +1968988836 140 ae2af_rtt.xpl +3051607485 185 ae2af_ssize.xpl +819790075 117 ae2af_tput.xpl +1245080295 299 ae2af_tsg.xpl +2906470238 561 ae_af_tline.xpl +4116650282 216 af2ae_owin.xpl +35010345 126 af2ae_ssize.xpl +2647835338 117 af2ae_tput.xpl +3009692756 196 af2ae_tsg.xpl +1468640459 4704 ag2ah_owin.xpl +3375273289 660 ag2ah_rtt.xpl +505753745 1246 ag2ah_ssize.xpl +618054625 326 ag2ah_tput.xpl +2929065510 4960 ag2ah_tsg.xpl +1571777653 6389 ag_ah_tline.xpl +3458136513 4751 ah2ag_owin.xpl +2789766905 660 ah2ag_rtt.xpl +142779423 1246 ah2ag_ssize.xpl +3794841941 358 ah2ag_tput.xpl +3774181513 5500 ah2ag_tsg.xpl +3703455346 2638 ai2aj_owin.xpl +2739934488 385 ai2aj_rtt.xpl +2838621435 681 ai2aj_ssize.xpl +3276982259 206 ai2aj_tput.xpl +4210357535 2608 ai2aj_tsg.xpl +910545306 3320 ai_aj_tline.xpl +4215013732 2152 aj2ai_owin.xpl +3475609291 477 aj2ai_rtt.xpl +2496057121 995 aj2ai_ssize.xpl +2715096871 271 aj2ai_tput.xpl +90861107 3092 aj2ai_tsg.xpl +965507643 4702 ak2al_owin.xpl +2091580568 670 ak2al_rtt.xpl +3383106998 1244 ak2al_ssize.xpl +3374978337 324 ak2al_tput.xpl +376045820 3982 ak2al_tsg.xpl +2935829040 4832 ak_al_tline.xpl +542842103 2364 al2ak_owin.xpl +1903040705 681 al2ak_rtt.xpl +2539095592 1244 al2ak_ssize.xpl +2301877706 330 al2ak_tput.xpl +3902985684 4698 al2ak_tsg.xpl +3809704169 215 am2an_owin.xpl +2074016734 140 am2an_rtt.xpl +3778241749 183 am2an_ssize.xpl +2473933456 117 am2an_tput.xpl +1969642934 299 am2an_tsg.xpl +186649185 561 am_an_tline.xpl +2524249268 216 an2am_owin.xpl +1692167614 126 an2am_ssize.xpl +2890429801 117 an2am_tput.xpl +4129956174 198 an2am_tsg.xpl +2145640989 2492 ao2ap_owin.xpl +3319651270 619 ao2ap_rtt.xpl +2651314217 1172 ao2ap_ssize.xpl +469994341 346 ao2ap_tput.xpl +1323540036 2932 ao2ap_tsg.xpl +1648337387 3255 ao_ap_tline.xpl +2981900699 1760 ap2ao_owin.xpl +2051443182 137 ap2ao_rtt.xpl +1393570025 125 ap2ao_ssize.xpl +3026382906 116 ap2ao_tput.xpl +789624948 1979 ap2ao_tsg.xpl +1119696412 218 aq2ar_owin.xpl +2669260045 140 aq2ar_rtt.xpl +1687289684 186 aq2ar_ssize.xpl +46795952 118 aq2ar_tput.xpl +2737783497 305 aq2ar_tsg.xpl +880921008 559 aq_ar_tline.xpl +2739340439 217 ar2aq_owin.xpl +2766059647 127 ar2aq_ssize.xpl +3134003651 118 ar2aq_tput.xpl +2337010464 199 ar2aq_tsg.xpl +294729443 1219 as2at_owin.xpl +1687446942 243 as2at_rtt.xpl +1955971515 702 as2at_ssize.xpl +2489565220 217 as2at_tput.xpl +2194579168 969 as2at_tsg.xpl +4290917104 1327 as_at_tline.xpl +614649157 578 at2as_owin.xpl +1269293803 123 at2as_ssize.xpl +3168676784 114 at2as_tput.xpl +1254020353 880 at2as_tsg.xpl +3065265996 7356 au2av_owin.xpl +646726421 964 au2av_rtt.xpl +2921164448 1948 au2av_ssize.xpl +3790128966 529 au2av_tput.xpl +3675228649 7184 au2av_tsg.xpl +621007399 8274 au_av_tline.xpl +3732037937 4993 av2au_owin.xpl +3921391170 972 av2au_rtt.xpl +250973849 1813 av2au_ssize.xpl +2748171025 540 av2au_tput.xpl +2573555656 7678 av2au_tsg.xpl +2274727786 3520 aw2ax_owin.xpl +104804585 525 aw2ax_rtt.xpl +1233943802 960 aw2ax_ssize.xpl +814885697 262 aw2ax_tput.xpl +728157191 3153 aw2ax_tsg.xpl +731458628 3828 aw_ax_tline.xpl +658028626 2067 ax2aw_owin.xpl +1400337027 533 ax2aw_rtt.xpl +270789095 960 ax2aw_ssize.xpl +1252504433 263 ax2aw_tput.xpl +746816572 3576 ax2aw_tsg.xpl +3296048092 3522 ay2az_owin.xpl +567906137 527 ay2az_rtt.xpl +778326430 962 ay2az_ssize.xpl +1076241675 264 ay2az_tput.xpl +589581693 3155 ay2az_tsg.xpl +1854107264 3873 ay_az_tline.xpl +872792185 2094 az2ay_owin.xpl +2548347394 539 az2ay_rtt.xpl +1681424087 962 az2ay_ssize.xpl +2293444374 267 az2ay_tput.xpl +862044899 3734 az2ay_tsg.xpl +592043271 16899 b2a_owin.xpl +2887292570 2108 b2a_rtt.xpl +1095911454 7714 b2a_ssize.xpl +2777659423 2563 b2a_tput.xpl +4188518090 17897 b2a_tsg.xpl +3030127784 213 ba2bb_owin.xpl +3044574924 138 ba2bb_rtt.xpl +319054546 181 ba2bb_ssize.xpl +4173802679 115 ba2bb_tput.xpl +130799415 302 ba2bb_tsg.xpl +2596101023 555 ba_bb_tline.xpl +3338016421 214 bb2ba_owin.xpl +3133964753 124 bb2ba_ssize.xpl +1271121143 115 bb2ba_tput.xpl +4079404613 194 bb2ba_tsg.xpl +2026078464 212 bc2bd_owin.xpl +713795303 136 bc2bd_rtt.xpl +2997961021 180 bc2bd_ssize.xpl +1110327622 114 bc2bd_tput.xpl +31281898 296 bc2bd_tsg.xpl +1642452788 553 bc_bd_tline.xpl +4254656991 213 bd2bc_owin.xpl +2289256925 123 bd2bc_ssize.xpl +1429084700 114 bd2bc_tput.xpl +270260088 195 bd2bc_tsg.xpl +1047279864 3227 be2bf_owin.xpl +250240966 451 be2bf_rtt.xpl +2293695086 821 be2bf_ssize.xpl +1664339619 236 be2bf_tput.xpl +1660145519 2716 be2bf_tsg.xpl +3243046571 3461 be_bf_tline.xpl +3547191459 1765 bf2be_owin.xpl +1616078324 535 bf2be_rtt.xpl +658343706 962 bf2be_ssize.xpl +2518728520 267 bf2be_tput.xpl +274909541 3307 bf2be_tsg.xpl +838365893 12495 bg2bh_owin.xpl +47355074 1365 bg2bh_rtt.xpl +3757790105 2655 bg2bh_ssize.xpl +1658850638 689 bg2bh_tput.xpl +821827196 10497 bg2bh_tsg.xpl +2856661729 13192 bg_bh_tline.xpl +291878984 7246 bh2bg_owin.xpl +3335471632 1800 bh2bg_rtt.xpl +1400332170 3584 bh2bg_ssize.xpl +2266541281 1123 bh2bg_tput.xpl +1567313262 14107 bh2bg_tsg.xpl +4018187792 5883 bi2bj_owin.xpl +2919352986 239 bi2bj_rtt.xpl +3674682778 399 bi2bj_ssize.xpl +1352875875 145 bi2bj_tput.xpl +3888230776 5207 bi2bj_tsg.xpl +2895188103 7542 bi_bj_tline.xpl +3861195665 5489 bj2bi_owin.xpl +3308924483 1368 bj2bi_rtt.xpl +3546877904 2766 bj2bi_ssize.xpl +2270925965 739 bj2bi_tput.xpl +1613925168 7985 bj2bi_tsg.xpl +1156171946 869 bk2bl_owin.xpl +2070381494 137 bk2bl_rtt.xpl +1776699480 180 bk2bl_ssize.xpl +2574779652 116 bk2bl_tput.xpl +3319840371 861 bk2bl_tsg.xpl +215939192 1338 bk_bl_tline.xpl +757222231 935 bl2bk_owin.xpl +825285387 250 bl2bk_rtt.xpl +2329149426 416 bl2bk_ssize.xpl +2799348715 182 bl2bk_tput.xpl +3300012322 1047 bl2bk_tsg.xpl +2095340529 2344 bm2bn_owin.xpl +3634423738 247 bm2bn_rtt.xpl +337973707 400 bm2bn_ssize.xpl +4203246460 147 bm2bn_tput.xpl +3732921237 1663 bm2bn_tsg.xpl +1668325145 2741 bm_bn_tline.xpl +1994713450 1523 bn2bm_owin.xpl +516966216 383 bn2bm_rtt.xpl +1152493177 700 bn2bm_ssize.xpl +95202115 241 bn2bm_tput.xpl +4220345030 2490 bn2bm_tsg.xpl +36159202 573 bo2bp_owin.xpl +870690882 138 bo2bp_rtt.xpl +1575571576 179 bo2bp_ssize.xpl +2025103642 115 bo2bp_tput.xpl +29515853 568 bo2bp_tsg.xpl +1918060174 943 bo_bp_tline.xpl +1621271607 580 bp2bo_owin.xpl +1074253381 137 bp2bo_rtt.xpl +3588723372 181 bp2bo_ssize.xpl +17114048 148 bp2bo_tput.xpl +2136578147 620 bp2bo_tsg.xpl +2179272282 910 bq2br_owin.xpl +3360158123 138 bq2br_rtt.xpl +3165072784 180 bq2br_ssize.xpl +3709997207 116 bq2br_tput.xpl +3820488474 866 bq2br_tsg.xpl +1406486767 1347 bq_br_tline.xpl +1522685329 942 br2bq_owin.xpl +3434070402 250 br2bq_rtt.xpl +4040468344 418 br2bq_ssize.xpl +438716036 179 br2bq_tput.xpl +2622416538 1047 br2bq_tsg.xpl +1531833039 1234 bs2bt_owin.xpl +2439931642 397 bs2bt_rtt.xpl +3540505152 850 bs2bt_ssize.xpl +2880177239 242 bs2bt_tput.xpl +2299129320 2003 bs2bt_tsg.xpl +2014772541 2132 bs_bt_tline.xpl +657453513 1464 bt2bs_owin.xpl +898158090 124 bt2bs_ssize.xpl +3666188570 115 bt2bs_tput.xpl +3276490066 1312 bt2bs_tsg.xpl +566925845 930 bu2bv_owin.xpl +1728340397 244 bu2bv_rtt.xpl +690093853 556 bu2bv_ssize.xpl +1713878903 178 bu2bv_tput.xpl +640952795 923 bu2bv_tsg.xpl +2481327298 1144 bu_bv_tline.xpl +719554254 579 bv2bu_owin.xpl +2804173140 124 bv2bu_ssize.xpl +2582170044 115 bv2bu_tput.xpl +1152195745 678 bv2bu_tsg.xpl +3516668584 919 bw2bx_owin.xpl +3122000774 316 bw2bx_rtt.xpl +3700951239 555 bw2bx_ssize.xpl +360037312 177 bw2bx_tput.xpl +3069230516 1152 bw2bx_tsg.xpl +763797769 1323 bw_bx_tline.xpl +1256435675 873 bx2bw_owin.xpl +3771403240 123 bx2bw_ssize.xpl +2213640775 114 bx2bw_tput.xpl +2284566530 753 bx2bw_tsg.xpl +1538623378 911 by2bz_owin.xpl +1156801317 139 by2bz_rtt.xpl +3393736211 181 by2bz_ssize.xpl +3896897175 117 by2bz_tput.xpl +127709031 1064 by2bz_tsg.xpl +1364900916 1549 by_bz_tline.xpl +83011896 1265 bz2by_owin.xpl +280709080 251 bz2by_rtt.xpl +3681046286 574 bz2by_ssize.xpl +2791496490 218 bz2by_tput.xpl +3232022409 1213 bz2by_tsg.xpl +3353366429 4075 c2d_owin.xpl +66638582 125 c2d_ssize.xpl +1397933260 116 c2d_tput.xpl +3603073964 2606 c2d_tsg.xpl +4025619827 4290 c_d_tline.xpl +3529287 210 ca2cb_owin.xpl +1400106119 123 ca2cb_ssize.xpl +650483870 114 ca2cb_tput.xpl +2436915042 195 ca2cb_tsg.xpl +1224899789 354 ca_cb_tline.xpl +6893645 125 cb2ca_owin.xpl +3282302726 123 cb2ca_ssize.xpl +2250700536 119 cb2ca_tsg.xpl +1276980276 210 cc2cd_owin.xpl +631594147 123 cc2cd_ssize.xpl +658335860 114 cc2cd_tput.xpl +417969245 195 cc2cd_tsg.xpl +2105702044 354 cc_cd_tline.xpl +2143080544 125 cd2cc_owin.xpl +276872387 123 cd2cc_ssize.xpl +2579985383 119 cd2cc_tsg.xpl +3440053904 572 ce2cf_owin.xpl +172432415 135 ce2cf_rtt.xpl +2895198192 178 ce2cf_ssize.xpl +3826405519 114 ce2cf_tput.xpl +1628345384 567 ce2cf_tsg.xpl +3798342622 947 ce_cf_tline.xpl +1625610317 573 cf2ce_owin.xpl +3735907747 136 cf2ce_rtt.xpl +3801196965 178 cf2ce_ssize.xpl +1545105702 146 cf2ce_tput.xpl +1589528078 619 cf2ce_tsg.xpl +1906255363 943 cg2ch_owin.xpl +1281175141 251 cg2ch_rtt.xpl +3457396048 574 cg2ch_ssize.xpl +406662029 185 cg2ch_tput.xpl +780058258 880 cg2ch_tsg.xpl +205948449 1147 cg_ch_tline.xpl +2590528732 581 ch2cg_owin.xpl +3855860603 126 ch2cg_ssize.xpl +987883693 117 ch2cg_tput.xpl +3978193359 664 ch2cg_tsg.xpl +3558108172 211 ci2cj_owin.xpl +1927701960 135 ci2cj_rtt.xpl +1555884679 121 ci2cj_ssize.xpl +2044207878 112 ci2cj_tput.xpl +2529803337 369 ci2cj_tsg.xpl +165792099 725 ci_cj_tline.xpl +3243755192 123 cj2ci_owin.xpl +448851083 133 cj2ci_rtt.xpl +3503400067 121 cj2ci_ssize.xpl +3557955359 112 cj2ci_tput.xpl +1136791384 332 cj2ci_tsg.xpl +1909701404 1162 ck2cl_owin.xpl +1042660801 136 ck2cl_rtt.xpl +2946746504 178 ck2cl_ssize.xpl +1615211569 114 ck2cl_tput.xpl +455595425 1138 ck2cl_tsg.xpl +4100906750 1706 ck_cl_tline.xpl +3304613797 1218 cl2ck_owin.xpl +2850400486 316 cl2ck_rtt.xpl +159510901 698 cl2ck_ssize.xpl +1039634140 213 cl2ck_tput.xpl +3985286296 1501 cl2ck_tsg.xpl +900854610 574 cm2cn_owin.xpl +3985718580 138 cm2cn_rtt.xpl +2856029983 180 cm2cn_ssize.xpl +3679722351 116 cm2cn_tput.xpl +3936446219 595 cm2cn_tsg.xpl +4214001373 941 cm_cn_tline.xpl +3677460706 588 cn2cm_owin.xpl +3802897957 137 cn2cm_rtt.xpl +2441818464 184 cn2cm_ssize.xpl +809895742 148 cn2cm_tput.xpl +1685633443 621 cn2cm_tsg.xpl +1229084624 1211 co2cp_owin.xpl +4192197756 242 co2cp_rtt.xpl +3026916843 409 co2cp_ssize.xpl +1653193966 146 co2cp_tput.xpl +1046052752 1068 co2cp_tsg.xpl +2272498654 1540 co_cp_tline.xpl +4211028891 968 cp2co_owin.xpl +1450918355 244 cp2co_rtt.xpl +108936826 581 cp2co_ssize.xpl +3487920270 184 cp2co_tput.xpl +4138489360 1302 cp2co_tsg.xpl +2647536809 925 cq2cr_owin.xpl +1948072048 206 cq2cr_rtt.xpl +335558174 181 cq2cr_ssize.xpl +165754170 115 cq2cr_tput.xpl +3045903112 814 cq2cr_tsg.xpl +3403951670 1135 cq_cr_tline.xpl +2124614495 579 cr2cq_owin.xpl +2797867058 138 cr2cq_rtt.xpl +132650456 124 cr2cq_ssize.xpl +1615377783 115 cr2cq_tput.xpl +1822519769 814 cr2cq_tsg.xpl +777407275 2464 cs2ct_owin.xpl +3418345300 476 cs2ct_rtt.xpl +2430912527 1008 cs2ct_ssize.xpl +1112401999 274 cs2ct_tput.xpl +3626920083 2325 cs2ct_tsg.xpl +567944462 2686 cs_ct_tline.xpl +1163235348 1541 ct2cs_owin.xpl +1099973858 463 ct2cs_rtt.xpl +273081777 847 ct2cs_ssize.xpl +4067470640 241 ct2cs_tput.xpl +1594351587 2720 ct2cs_tsg.xpl +1170669914 209 cu2cv_owin.xpl +1611358967 122 cu2cv_ssize.xpl +168886541 113 cu2cv_tput.xpl +3696252493 194 cu2cv_tsg.xpl +1339313207 545 cu_cv_tline.xpl +1192878663 213 cv2cu_owin.xpl +3283458771 179 cv2cu_ssize.xpl +3707178723 113 cv2cu_tput.xpl +3898268724 251 cv2cu_tsg.xpl +3972240755 209 cw2cx_owin.xpl +2939214120 122 cw2cx_ssize.xpl +2038726440 113 cw2cx_tput.xpl +1810261074 194 cw2cx_tsg.xpl +2877565452 353 cw_cx_tline.xpl +1368952900 124 cx2cw_owin.xpl +3895680755 122 cx2cw_ssize.xpl +1730148649 118 cx2cw_tsg.xpl +3921464561 214 cy2cz_owin.xpl +2824021760 138 cy2cz_rtt.xpl +2483752135 182 cy2cz_ssize.xpl +1645844672 116 cy2cz_tput.xpl +698033476 298 cy2cz_tsg.xpl +3287955947 559 cy_cz_tline.xpl +1291803358 215 cz2cy_owin.xpl +845909068 125 cz2cy_ssize.xpl +570745963 116 cz2cy_tput.xpl +729962354 195 cz2cy_tsg.xpl +1720638652 2583 d2c_owin.xpl +3849824297 660 d2c_rtt.xpl +3703342439 1384 d2c_ssize.xpl +211424588 353 d2c_tput.xpl +2474819861 4170 d2c_tsg.xpl +1411837971 212 da2db_owin.xpl +63890466 180 da2db_ssize.xpl +158273153 116 da2db_tput.xpl +1434849119 258 da2db_tsg.xpl +247759017 358 da_db_tline.xpl +2709547764 127 db2da_owin.xpl +3269571747 125 db2da_ssize.xpl +703337215 121 db2da_tsg.xpl +2652536338 212 dc2dd_owin.xpl +2361935679 125 dc2dd_ssize.xpl +2934933975 116 dc2dd_tput.xpl +3562315543 197 dc2dd_tsg.xpl +3840802800 356 dc_dd_tline.xpl +2425627667 127 dd2dc_owin.xpl +1304438366 125 dd2dc_ssize.xpl +1833448487 121 dd2dc_tsg.xpl +4260246055 215 de2df_owin.xpl +2470102161 183 de2df_ssize.xpl +4129459007 115 de2df_tput.xpl +195224210 302 de2df_tsg.xpl +1516953355 363 de_df_tline.xpl +12186563 126 df2de_owin.xpl +3194278034 124 df2de_ssize.xpl +3880940064 120 df2de_tsg.xpl +2244570477 4408 e2f_owin.xpl +3397701086 686 e2f_rtt.xpl +2572402126 1386 e2f_ssize.xpl +2795964444 356 e2f_tput.xpl +1268767004 4551 e2f_tsg.xpl +1160573876 5467 e_f_tline.xpl +44874038 3645 f2e_owin.xpl +1705862086 774 f2e_rtt.xpl +2960131944 1406 f2e_ssize.xpl +385144708 364 f2e_tput.xpl +2534097057 5161 f2e_tsg.xpl +3685463419 828 g2h_owin.xpl +1939541232 123 g2h_ssize.xpl +1921587382 114 g2h_tput.xpl +1502997883 538 g2h_tsg.xpl +1902283124 1145 g_h_tline.xpl +504989865 589 h2g_owin.xpl +1280760415 245 h2g_rtt.xpl +2508956498 408 h2g_ssize.xpl +3341653219 144 h2g_tput.xpl +2938243310 971 h2g_tsg.xpl +2493940434 4402 i2j_owin.xpl +543867971 827 i2j_rtt.xpl +1225281223 1533 i2j_ssize.xpl +3568952403 474 i2j_tput.xpl +3315726775 6262 i2j_tsg.xpl +2538661456 6978 i_j_tline.xpl +635632916 5888 j2i_owin.xpl +3802310481 667 j2i_rtt.xpl +1295442311 1526 j2i_ssize.xpl +2477458591 469 j2i_tput.xpl +3428779716 6000 j2i_tsg.xpl +2548628530 2342 k2l_owin.xpl +3310133971 392 k2l_rtt.xpl +4072639338 680 k2l_ssize.xpl +134910237 204 k2l_tput.xpl +2224344824 2200 k2l_tsg.xpl +1257194088 2878 k_l_tline.xpl +1834386411 1803 l2k_owin.xpl +3049078466 398 l2k_rtt.xpl +817412116 684 l2k_ssize.xpl +1344366870 205 l2k_tput.xpl +2692824977 2562 l2k_tsg.xpl +359612601 10013 m2n_owin.xpl +2244116929 1289 m2n_rtt.xpl +634495786 2514 m2n_ssize.xpl +2271215425 650 m2n_tput.xpl +3139750414 8618 m2n_tsg.xpl +1607948501 10011 m_n_tline.xpl +28547286 4978 n2m_owin.xpl +419403878 1339 n2m_rtt.xpl +295992133 2514 n2m_ssize.xpl +1755264423 656 n2m_tput.xpl +809650548 10372 n2m_tsg.xpl +2015029960 862 o2p_owin.xpl +973730458 140 o2p_rtt.xpl +1701253561 182 o2p_ssize.xpl +2649867724 148 o2p_tput.xpl +1800079059 868 o2p_tsg.xpl +2105858087 1346 o_p_tline.xpl +235527050 901 p2o_owin.xpl +722921049 141 p2o_rtt.xpl +3440710825 422 p2o_ssize.xpl +910448596 186 p2o_tput.xpl +2390573089 953 p2o_tsg.xpl +166722703 4074 q2r_owin.xpl +1864947380 124 q2r_ssize.xpl +3402249818 115 q2r_tput.xpl +4030168670 2605 q2r_tsg.xpl +1886030089 4454 q_r_tline.xpl +2054132174 2588 r2q_owin.xpl +50420923 659 r2q_rtt.xpl +3124745734 1383 r2q_ssize.xpl +243461854 352 r2q_tput.xpl +592328158 4169 r2q_tsg.xpl +736824857 1202 s2t_owin.xpl +3268170717 242 s2t_rtt.xpl +866648085 397 s2t_ssize.xpl +1909931488 144 s2t_tput.xpl +2522646757 1094 s2t_tsg.xpl +3197365483 1528 s_t_tline.xpl +219498476 913 t2s_owin.xpl +3324431189 247 t2s_rtt.xpl +3907178083 397 t2s_ssize.xpl +2570041119 143 t2s_tput.xpl +1241746646 1275 t2s_tsg.xpl +3382063261 2385 u2v_owin.xpl +529336891 393 u2v_rtt.xpl +2628665333 682 u2v_ssize.xpl +93360090 206 u2v_tput.xpl +3618090260 2292 u2v_tsg.xpl +1975136538 2905 u_v_tline.xpl +1289102288 1878 v2u_owin.xpl +1749414663 402 v2u_rtt.xpl +619980303 726 v2u_ssize.xpl +3730398820 245 v2u_tput.xpl +3647867805 2564 v2u_tsg.xpl +3018265389 4532 w2x_owin.xpl +2962126167 4633 w2x_ssize.xpl +1007871968 1513 w2x_tput.xpl +1587368842 6678 w2x_tsg.xpl +3337124664 6516 w_x_tline.xpl +4095894393 124 x2w_owin.xpl +3748976309 122 x2w_ssize.xpl +4292185383 6465 x2w_tsg.xpl +2434891666 2424 y2z_owin.xpl +3968276587 705 y2z_rtt.xpl +1156309236 1274 y2z_ssize.xpl +495621339 332 y2z_tput.xpl +3528512814 3375 y2z_tsg.xpl +4257595436 3289 y_z_tline.xpl +1317966284 2349 z2y_owin.xpl +3043556507 124 z2y_ssize.xpl +547571725 115 z2y_tput.xpl +1563705264 2149 z2y_tsg.xpl diff --git a/input/OUTPUTbench/atm.erf.gz.long b/input/OUTPUTbench/atm.erf.gz.long new file mode 100644 index 0000000..9a60176 --- /dev/null +++ b/input/OUTPUTbench/atm.erf.gz.long @@ -0,0 +1,81 @@ +1 arg remaining, starting with 'atm.erf.gz' + +13 packets seen, 13 TCP packets traced +trace file elapsed time: 0:00:01.191704 +TCP connection info: +1 TCP connection traced: +*** 13 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 130.216.128.100:80 + host b: 209.202.148.58:3631 + complete conn: no (SYNs: 1) (FINs: 1) + first packet: Tue Jun 12 14:00:04.558952 2001 + last packet: Tue Jun 12 14:00:05.750656 2001 + elapsed time: 0:00:01.191704 + total packets: 13 + filename: atm.erf.gz + a->b: b->a: + total packets: 13 total packets: 0 + ack pkts sent: 13 ack pkts sent: 0 + pure acks sent: 2 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 12888 unique bytes sent: 0 + actual data pkts: 10 actual data pkts: 0 + actual data bytes: 12888 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 10 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1368 bytes max segm size: 0 bytes + min segm size: 576 bytes min segm size: 0 bytes + avg segm size: 1288 bytes avg segm size: 0 bytes + max win adv: 31740 bytes max win adv: 0 bytes + min win adv: 31740 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 31740 bytes avg win adv: 0 bytes + max owin: 12891 bytes max owin: 0 bytes + min non-zero owin: 2 bytes min non-zero owin: 0 bytes + avg owin: 7280 bytes avg owin: 0 bytes + wavg owin: 5498 bytes wavg owin: 0 bytes + initial window: 12888 bytes initial window: 0 bytes + initial window: 10 pkts initial window: 0 pkts + ttl stream length: 12888 bytes ttl stream length: NA + missed data: 0 bytes missed data: NA + truncated data: 13008 bytes truncated data: 0 bytes + truncated packets: 10 pkts truncated packets: 0 pkts + data xmit time: 0.598 secs data xmit time: 0.000 secs + idletime max: 247.0 ms idletime max: NA ms + throughput: 10815 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/atm.erf.gz.packets b/input/OUTPUTbench/atm.erf.gz.packets new file mode 100644 index 0000000..1e1e22f --- /dev/null +++ b/input/OUTPUTbench/atm.erf.gz.packets @@ -0,0 +1,371 @@ +1 arg remaining, starting with 'atm.erf.gz' + +Packet 1 + Packet Length: 48 + Collected: Tue Jun 12 14:00:04.558952 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 56 + ID: 60634 + CKSUM: 0xe7a3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -A--S- (0x12) + SEQ: 0x56b9831f + ACK: 0x64f77553 + WIN: 31740 + HLEN: 36 (only 20 bytes in dump file) + CKSUM: 0xd1c8 (too short to verify) + DLEN: 0 + OPTS: 16 bytes (none of it in dump file) +Packet 2 + Packet Length: 48 + Collected: Tue Jun 12 14:00:04.799870 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 52 + ID: 60635 + CKSUM: 0xe7a6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -A---- (0x10) + SEQ: 0x56b98320 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xe7cf (too short to verify) + DLEN: 0 + OPTS: 12 bytes (none of it in dump file) +Packet 3 + Packet Length: 48 + Collected: Tue Jun 12 14:00:04.911244 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60636 + CKSUM: 0xe24d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b98320 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xede0 (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 4 + Packet Length: 48 + Collected: Tue Jun 12 14:00:04.914398 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60637 + CKSUM: 0xe24c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b98878 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xf07a (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 5 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.161445 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60638 + CKSUM: 0xe24b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b98dd0 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xdbd1 (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 6 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.164596 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60639 + CKSUM: 0xe24a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b99328 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0x989b (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 7 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.167744 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60640 + CKSUM: 0xe249 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b99880 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0x9a23 (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 8 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.409611 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60641 + CKSUM: 0xe248 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b99dd8 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0x7595 (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 9 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.412756 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60642 + CKSUM: 0xe247 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b9a330 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0x0590 (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 10 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.415910 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60643 + CKSUM: 0xe246 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b9a888 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xdb9f (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 11 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.506494 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 1420 + ID: 60644 + CKSUM: 0xe245 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--- (0x18) + SEQ: 0x56b9ade0 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xd100 (too short to verify) + DLEN: 1368 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 1368 bytes +Packet 12 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.509640 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 628 + ID: 60645 + CKSUM: 0xe55c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -AP--F (0x19) + SEQ: 0x56b9b338 + ACK: 0x64f77689 + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xea94 (too short to verify) + DLEN: 576 (none of it in dump file) + OPTS: 12 bytes (none of it in dump file) + data: 576 bytes +Packet 13 + Packet Length: 48 + Collected: Tue Jun 12 14:00:05.750656 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.128.100 + IP Dest: 209.202.148.58 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 61 + LEN: 52 + ID: 60646 + CKSUM: 0xe79b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 3631 + FLG: -A---- (0x10) + SEQ: 0x56b9b579 + ACK: 0x64f7768a + WIN: 31740 + HLEN: 32 (only 20 bytes in dump file) + CKSUM: 0xb4b7 (too short to verify) + DLEN: 0 + OPTS: 12 bytes (none of it in dump file) +13 packets seen, 13 TCP packets traced +trace file elapsed time: 0:00:01.191704 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 26 packets were too short to process at some point + (use -w option to show details) + 1: 130.216.128.100:80 - 209.202.148.58:3631 (a2b) 13> 0< (unidirectional) diff --git a/input/OUTPUTbench/atm.erf.gz.short b/input/OUTPUTbench/atm.erf.gz.short new file mode 100644 index 0000000..d919d34 --- /dev/null +++ b/input/OUTPUTbench/atm.erf.gz.short @@ -0,0 +1,8 @@ +1 arg remaining, starting with 'atm.erf.gz' + +13 packets seen, 13 TCP packets traced +trace file elapsed time: 0:00:01.191704 +TCP connection info: +*** 13 packets were too short to process at some point + (use -w option to show details) + 1: 130.216.128.100:80 - 209.202.148.58:3631 (a2b) 13> 0< (unidirectional) diff --git a/input/OUTPUTbench/atm.erf.gz.xplots.cksum b/input/OUTPUTbench/atm.erf.gz.xplots.cksum new file mode 100644 index 0000000..e99333a --- /dev/null +++ b/input/OUTPUTbench/atm.erf.gz.xplots.cksum @@ -0,0 +1,8 @@ +2720684015 3717 a2b_owin.xpl +3084714168 1703 a2b_ssize.xpl +2498515533 525 a2b_tput.xpl +2793482353 2375 a2b_tsg.xpl +127636116 2654 a_b_tline.xpl +2346252560 130 b2a_owin.xpl +2010545445 128 b2a_ssize.xpl +2745824695 2668 b2a_tsg.xpl diff --git a/input/OUTPUTbench/bad_ack_code.dmp.gz.long b/input/OUTPUTbench/bad_ack_code.dmp.gz.long new file mode 100644 index 0000000..bc20171 --- /dev/null +++ b/input/OUTPUTbench/bad_ack_code.dmp.gz.long @@ -0,0 +1,172 @@ +1 arg remaining, starting with 'bad_ack_code.dmp.gz' + +40 packets seen, 40 TCP packets traced +trace file elapsed time: 0:00:01.448223 +TCP connection info: +2 TCP connections traced: +*** 2 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 128.224.2.23:1036 + host b: 128.224.1.148:9 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Feb 11 19:25:57.818762 1997 + last packet: Tue Feb 11 19:25:59.266986 1997 + elapsed time: 0:00:01.448223 + total packets: 37 + filename: bad_ack_code.dmp.gz + a->b: b->a: + total packets: 19 total packets: 18 + ack pkts sent: 18 ack pkts sent: 18 + pure acks sent: 1 pure acks sent: 16 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 8650 unique bytes sent: 0 + actual data pkts: 17 actual data pkts: 0 + actual data bytes: 8650 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 1 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 2/0 + req 1323 ws/ts: Y/N req 1323 ws/ts: N/N + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 536 bytes + max segm size: 536 bytes max segm size: 0 bytes + min segm size: 74 bytes min segm size: 0 bytes + avg segm size: 508 bytes avg segm size: 0 bytes + max win adv: 16616 bytes max win adv: 16384 bytes + min win adv: 16384 bytes min win adv: 16384 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16603 bytes avg win adv: 16384 bytes + max owin: 16081 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 6560 bytes avg owin: 1 bytes + wavg owin: 6081 bytes wavg owin: 0 bytes + initial window: 610 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 8412 bytes truncated data: 0 bytes + truncated packets: 17 pkts truncated packets: 0 pkts + data xmit time: 1.382 secs data xmit time: 0.000 secs + idletime max: 87.1 ms idletime max: 687.4 ms + hardware dups: 0 segs hardware dups: 9 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 5973 Bps throughput: 0 Bps + + RTT samples: 9 RTT samples: 0 + RTT min: 1.2 ms RTT min: 0.0 ms + RTT max: 2.0 ms RTT max: 0.0 ms + RTT avg: 1.4 ms RTT avg: 0.0 ms + RTT stdev: 0.2 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.6 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 8 RTT full_sz smpls: 0 + RTT full_sz min: 1.2 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 2.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 1.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.2 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + 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. + ambiguous acks: 0 ambiguous acks: 1 + RTT min (last): 0.0 ms RTT min (last): 35.4 ms + RTT max (last): 0.0 ms RTT max (last): 35.4 ms + RTT avg (last): 0.0 ms RTT avg (last): 35.4 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 8 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 2.6 ms + max retr time: 0.0 ms max retr time: 2.6 ms + avg retr time: 0.0 ms avg retr time: 2.6 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 128.224.2.23:1037 + host d: 128.224.1.148:19 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Feb 11 19:25:57.831914 1997 + last packet: Tue Feb 11 19:25:57.835566 1997 + elapsed time: 0:00:00.003652 + total packets: 3 + filename: bad_ack_code.dmp.gz + c->d: d->c: + total packets: 1 total packets: 2 + ack pkts sent: 0 ack pkts sent: 2 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 1 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 2/0 + req 1323 ws/ts: Y/N req 1323 ws/ts: N/N + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 536 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 16384 bytes max win adv: 1 bytes + min win adv: 16384 bytes min win adv: 1 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16384 bytes avg win adv: 1 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1435.1 ms idletime max: 1431.4 ms + hardware dups: 0 segs hardware dups: 1 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 1.1 ms RTT min: 0.0 ms + RTT max: 1.1 ms RTT max: 0.0 ms + RTT avg: 1.1 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.1 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 1.1 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 1.1 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 1.1 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 2.6 ms + max retr time: 0.0 ms max retr time: 2.6 ms + avg retr time: 0.0 ms avg retr time: 2.6 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/bad_ack_code.dmp.gz.packets b/input/OUTPUTbench/bad_ack_code.dmp.gz.packets new file mode 100644 index 0000000..57ff6f9 --- /dev/null +++ b/input/OUTPUTbench/bad_ack_code.dmp.gz.packets @@ -0,0 +1,1056 @@ +1 arg remaining, starting with 'bad_ack_code.dmp.gz' + +Packet 1 + Packet Length: 82 (saved length 68) + Collected: Tue Feb 11 19:25:57.818762 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 68 + ID: 17307 + CKSUM: 0xf3ad (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: ----S- (0x02) + SEQ: 0x4fa65001 + ACK: 0x00000000 + WIN: 16384 + HLEN: 48 (only 34 bytes in dump file) + CKSUM: 0xc481 (too short to verify) + DLEN: 0 + OPTS: 28 bytes (14 bytes in file) MSS(1460) WS(0) +Packet 2 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.820318 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 6607 + CKSUM: 0x9c91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A--S- (0x12) + SEQ: 0xb5648846 + ACK: 0x4fa65002 + WIN: 16384 + HLEN: 24 + CKSUM: 0x74de (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 3 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.822881 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 44 + ID: 6607 + CKSUM: 0x9d91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A--S- (0x12) + SEQ: 0xb5648846 + ACK: 0x4fa65002 + WIN: 16384 + HLEN: 24 + CKSUM: 0x74de (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 4 + Packet Length: 82 (saved length 68) + Collected: Tue Feb 11 19:25:57.831914 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 68 + ID: 17309 + CKSUM: 0xf3ab (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1037 + DPRT: 19 + FLG: ----S- (0x02) + SEQ: 0x4fa74a01 + ACK: 0x00000000 + WIN: 16384 + HLEN: 48 (only 34 bytes in dump file) + CKSUM: 0xca74 (too short to verify) + DLEN: 0 + OPTS: 28 bytes (14 bytes in file) MSS(1460) WS(0) +Packet 5 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.833011 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 6608 + CKSUM: 0x9c90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 19 + DPRT: 1037 + FLG: -A--S- (0x12) + SEQ: 0xb56493fe + ACK: 0x4fa74a02 + WIN: 1 + HLEN: 24 + CKSUM: 0xaf19 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 6 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.835566 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 44 + ID: 6608 + CKSUM: 0x9d90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 19 + DPRT: 1037 + FLG: -A--S- (0x12) + SEQ: 0xb56493fe + ACK: 0x4fa74a02 + WIN: 1 + HLEN: 24 + CKSUM: 0xaf19 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 7 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.858270 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 40 + ID: 17310 + CKSUM: 0xf3c6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65002 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x8817 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 128 (saved length 68) + Collected: Tue Feb 11 19:25:57.884522 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 114 + ID: 17312 + CKSUM: 0xf37a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x4fa65002 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xe0fd (too short to verify) + DLEN: 74 (only 14 bytes in dump file) + data: 74 bytes +Packet 9 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:57.971608 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17313 + CKSUM: 0xf1ab (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6504c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x4788 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 10 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.972862 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6609 + CKSUM: 0x9c93 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65264 + WIN: 16384 + HLEN: 20 + CKSUM: 0x869d (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.975427 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6609 + CKSUM: 0x9d93 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65264 + WIN: 16384 + HLEN: 20 + CKSUM: 0x869d (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.057734 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17314 + CKSUM: 0xf1aa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65264 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x3964 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 13 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.059060 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6610 + CKSUM: 0x9c92 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6547c + WIN: 16384 + HLEN: 20 + CKSUM: 0x8485 (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.061661 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6610 + CKSUM: 0x9d92 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6547c + WIN: 16384 + HLEN: 20 + CKSUM: 0x8485 (CORRECT) + DLEN: 0 +Packet 15 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.143811 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17315 + CKSUM: 0xf1a9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6547c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x2b40 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 16 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.145820 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6611 + CKSUM: 0x9c91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65694 + WIN: 16384 + HLEN: 20 + CKSUM: 0x826d (CORRECT) + DLEN: 0 +Packet 17 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.148399 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6611 + CKSUM: 0x9d91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65694 + WIN: 16384 + HLEN: 20 + CKSUM: 0x826d (CORRECT) + DLEN: 0 +Packet 18 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.230253 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17316 + CKSUM: 0xf1a8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65694 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x8b00 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 19 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.231697 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6612 + CKSUM: 0x9c90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa658ac + WIN: 16384 + HLEN: 20 + CKSUM: 0x8055 (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.234260 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6612 + CKSUM: 0x9d90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa658ac + WIN: 16384 + HLEN: 20 + CKSUM: 0x8055 (CORRECT) + DLEN: 0 +Packet 21 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.316637 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17317 + CKSUM: 0xf1a7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa658ac + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x7e84 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 22 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.317993 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6613 + CKSUM: 0x9c8f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ac4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7e3d (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.320594 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6613 + CKSUM: 0x9d8f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ac4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7e3d (CORRECT) + DLEN: 0 +Packet 24 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.402943 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17318 + CKSUM: 0xf1a6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65ac4 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x1963 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 25 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.404383 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6614 + CKSUM: 0x9c8e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65cdc + WIN: 16384 + HLEN: 20 + CKSUM: 0x7c25 (CORRECT) + DLEN: 0 +Packet 26 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.406932 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6614 + CKSUM: 0x9d8e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65cdc + WIN: 16384 + HLEN: 20 + CKSUM: 0x7c25 (CORRECT) + DLEN: 0 +Packet 27 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.489366 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17319 + CKSUM: 0xf1a5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65cdc + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xbbef (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 28 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.490698 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6615 + CKSUM: 0x9c8d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ef4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7a0d (CORRECT) + DLEN: 0 +Packet 29 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.493308 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6615 + CKSUM: 0x9d8d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ef4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7a0d (CORRECT) + DLEN: 0 +Packet 30 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.575800 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17320 + CKSUM: 0xf1a4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65ef4 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xd797 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 31 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.577042 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6616 + CKSUM: 0x9c8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6610c + WIN: 16384 + HLEN: 20 + CKSUM: 0x77f5 (CORRECT) + DLEN: 0 +Packet 32 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.579624 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6616 + CKSUM: 0x9d8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6610c + WIN: 16384 + HLEN: 20 + CKSUM: 0x77f5 (CORRECT) + DLEN: 0 +Packet 33 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.661993 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17344 + CKSUM: 0xf18c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa68f1c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xeab2 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 34 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.748523 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17345 + CKSUM: 0xf18b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69134 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x2f3f (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 35 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.834693 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17347 + CKSUM: 0xf189 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6934c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x6765 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 36 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.921277 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17350 + CKSUM: 0xf186 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69564 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xbd43 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 37 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.007758 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17352 + CKSUM: 0xf184 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6977c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x602e (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 38 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.094309 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17359 + CKSUM: 0xf17d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69994 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x1dd6 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 39 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.180587 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17369 + CKSUM: 0xf173 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x4fa69bac + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x94d5 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 40 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.266986 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17371 + CKSUM: 0xf171 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69dc4 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x911d (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +40 packets seen, 40 TCP packets traced +trace file elapsed time: 0:00:01.448223 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 4 packets were too short to process at some point + (use -w option to show details) + 1: 128.224.2.23:1036 - 128.224.1.148:9 (a2b) 19> 18< + ** Warning, b2a: detected 9 hardware duplicate(s) (same seq # and IP ID) + 2: 128.224.2.23:1037 - 128.224.1.148:19 (c2d) 1> 2< + ** Warning, d2c: detected 1 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/bad_ack_code.dmp.gz.short b/input/OUTPUTbench/bad_ack_code.dmp.gz.short new file mode 100644 index 0000000..f408f9e --- /dev/null +++ b/input/OUTPUTbench/bad_ack_code.dmp.gz.short @@ -0,0 +1,11 @@ +1 arg remaining, starting with 'bad_ack_code.dmp.gz' + +40 packets seen, 40 TCP packets traced +trace file elapsed time: 0:00:01.448223 +TCP connection info: +*** 2 packets were too short to process at some point + (use -w option to show details) + 1: 128.224.2.23:1036 - 128.224.1.148:9 (a2b) 19> 18< + ** Warning, b2a: detected 9 hardware duplicate(s) (same seq # and IP ID) + 2: 128.224.2.23:1037 - 128.224.1.148:19 (c2d) 1> 2< + ** Warning, d2c: detected 1 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/bad_ack_code.dmp.gz.xplots.cksum b/input/OUTPUTbench/bad_ack_code.dmp.gz.xplots.cksum new file mode 100644 index 0000000..d10d028 --- /dev/null +++ b/input/OUTPUTbench/bad_ack_code.dmp.gz.xplots.cksum @@ -0,0 +1,20 @@ +3017168630 5769 a2b_owin.xpl +3919851649 728 a2b_rtt.xpl +1770673556 2709 a2b_ssize.xpl +2037755829 736 a2b_tput.xpl +3830229492 6680 a2b_tsg.xpl +4150372792 6764 a_b_tline.xpl +4003407307 4755 b2a_owin.xpl +1547498569 123 b2a_ssize.xpl +2946010257 114 b2a_tput.xpl +2465268075 5229 b2a_tsg.xpl +387554380 126 c2d_owin.xpl +2322257161 136 c2d_rtt.xpl +3547524405 124 c2d_ssize.xpl +2401853822 115 c2d_tput.xpl +2832848055 506 c2d_tsg.xpl +3211285756 746 c_d_tline.xpl +3292905497 126 d2c_owin.xpl +613628918 124 d2c_ssize.xpl +2317801752 115 d2c_tput.xpl +1285756174 563 d2c_tsg.xpl diff --git a/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.long b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.long new file mode 100644 index 0000000..f31e3a6 --- /dev/null +++ b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.long @@ -0,0 +1,79 @@ +1 arg remaining, starting with 'bad_tcp_checksum.dmp.gz' + +10 packets seen, 10 TCP packets traced +trace file elapsed time: 0:00:00.012379 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 139.88.44.112:139 + host b: 139.88.45.93:2270 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Wed Mar 8 15:29:58.085005 2000 + last packet: Wed Mar 8 15:29:58.097384 2000 + elapsed time: 0:00:00.012379 + total packets: 10 + filename: bad_tcp_checksum.dmp.gz + a->b: b->a: + total packets: 7 total packets: 3 + ack pkts sent: 7 ack pkts sent: 3 + pure acks sent: 0 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 10220 unique bytes sent: 0 + actual data pkts: 7 actual data pkts: 0 + actual data bytes: 10220 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1460 bytes max segm size: 0 bytes + min segm size: 1460 bytes min segm size: 0 bytes + avg segm size: 1459 bytes avg segm size: 0 bytes + max win adv: 8632 bytes max win adv: 8760 bytes + min win adv: 8632 bytes min win adv: 8760 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8632 bytes avg win adv: 8760 bytes + max owin: 8761 bytes max owin: 1 bytes + min non-zero owin: 1460 bytes min non-zero owin: 1 bytes + avg owin: 5423 bytes avg owin: 1 bytes + wavg owin: 3392 bytes wavg owin: 0 bytes + initial window: 1460 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.012 secs data xmit time: 0.000 secs + idletime max: 6.0 ms idletime max: 6.2 ms + throughput: 825592 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.packets b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.packets new file mode 100644 index 0000000..2157e79 --- /dev/null +++ b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.packets @@ -0,0 +1,275 @@ +1 arg remaining, starting with 'bad_tcp_checksum.dmp.gz' + +Packet 1 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.085005 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 51825 + CKSUM: 0xba2c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e009304 + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0xd2a6 (WRONG) + DLEN: 1460 + data: 1460 bytes +Packet 2 + Packet Length: 60 + Collected: Wed Mar 8 15:29:58.089687 2000 + ETH Srce: 00:00:0c:20:00:12 + ETH Dest: 00:60:08:31:e4:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.45.93 + IP Dest: 139.88.44.112 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 125 + LEN: 40 + ID: 25416 + CKSUM: 0x2a0a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2270 + DPRT: 139 + FLG: -A---- (0x10) + SEQ: 0x0176c158 + ACK: 0x0e1f81e8 + WIN: 8760 + HLEN: 20 + CKSUM: 0xc0df (CORRECT) + DLEN: 0 +Packet 3 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.091023 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 52081 + CKSUM: 0xb92c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e1f98b8 + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0xdf4b (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 4 + Packet Length: 60 + Collected: Wed Mar 8 15:29:58.091090 2000 + ETH Srce: 00:00:0c:20:00:12 + ETH Dest: 00:60:08:31:e4:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.45.93 + IP Dest: 139.88.44.112 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 125 + LEN: 40 + ID: 25672 + CKSUM: 0x290a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2270 + DPRT: 139 + FLG: -A---- (0x10) + SEQ: 0x0176c158 + ACK: 0x0e1f8d50 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb577 (CORRECT) + DLEN: 0 +Packet 5 + Packet Length: 60 + Collected: Wed Mar 8 15:29:58.091157 2000 + ETH Srce: 00:00:0c:20:00:12 + ETH Dest: 00:60:08:31:e4:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.45.93 + IP Dest: 139.88.44.112 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 125 + LEN: 40 + ID: 25928 + CKSUM: 0x280a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2270 + DPRT: 139 + FLG: -A---- (0x10) + SEQ: 0x0176c158 + ACK: 0x0e1f98b8 + WIN: 8760 + HLEN: 20 + CKSUM: 0xaa0f (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.092412 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 52337 + CKSUM: 0xb82c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e1f9e6c + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0x0a01 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 7 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.093648 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 52593 + CKSUM: 0xb72c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e1fa420 + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0xeed8 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 8 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.094891 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 52849 + CKSUM: 0xb62c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e1fa9d4 + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0x7b7f (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 9 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.096135 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 53105 + CKSUM: 0xb52c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e1faf88 + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0xd023 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 10 + Packet Length: 1514 + Collected: Wed Mar 8 15:29:58.097384 2000 + ETH Srce: 00:60:08:31:e4:8c + ETH Dest: 00:00:0c:20:00:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 139.88.44.112 + IP Dest: 139.88.45.93 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 1500 + ID: 53361 + CKSUM: 0xb42c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 139 + DPRT: 2270 + FLG: -A---- (0x10) + SEQ: 0x0e1fb53c + ACK: 0x0176c158 + WIN: 8632 + HLEN: 20 + CKSUM: 0xa89f (CORRECT) + DLEN: 1460 + data: 1460 bytes +10 packets seen, 9 TCP packets traced +trace file elapsed time: 0:00:00.012379 +bad IP checksums: 0 +bad TCP checksums: 1 +TCP connection info: + 1: 139.88.45.93:2270 - 139.88.44.112:139 (a2b) 3> 6< diff --git a/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.short b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.short new file mode 100644 index 0000000..2b98f6b --- /dev/null +++ b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'bad_tcp_checksum.dmp.gz' + +10 packets seen, 10 TCP packets traced +trace file elapsed time: 0:00:00.012379 +TCP connection info: + 1: 139.88.44.112:139 - 139.88.45.93:2270 (a2b) 7> 3< diff --git a/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.xplots.cksum b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.xplots.cksum new file mode 100644 index 0000000..abf197b --- /dev/null +++ b/input/OUTPUTbench/bad_tcp_checksum.dmp.gz.xplots.cksum @@ -0,0 +1,9 @@ +2412869863 2261 a2b_owin.xpl +3599292829 1225 a2b_ssize.xpl +2427541600 331 a2b_tput.xpl +2758536695 1550 a2b_tsg.xpl +722592821 1986 a_b_tline.xpl +4228329452 875 b2a_owin.xpl +2854328153 125 b2a_ssize.xpl +613936023 116 b2a_tput.xpl +1574063076 1483 b2a_tsg.xpl diff --git a/input/OUTPUTbench/badsyns.dmp.gz.long b/input/OUTPUTbench/badsyns.dmp.gz.long new file mode 100644 index 0000000..265affc --- /dev/null +++ b/input/OUTPUTbench/badsyns.dmp.gz.long @@ -0,0 +1,157 @@ +1 arg remaining, starting with 'badsyns.dmp.gz' + +17 packets seen, 17 TCP packets traced +trace file elapsed time: 0:03:23.788559 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: 132.235.67.36:1700 + host b: 132.235.67.21:9080 + complete conn: no (SYNs: 1) (FINs: 0) + first packet: Wed Nov 25 09:29:23.422612 1998 + last packet: Wed Nov 25 09:30:05.298931 1998 + elapsed time: 0:00:41.876319 + total packets: 4 + filename: badsyns.dmp.gz + a->b: b->a: + total packets: 4 total packets: 0 + ack pkts sent: 0 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 3 rexmt data pkts: 0 + rexmt data bytes: 3 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 4/0 SYN/FIN pkts sent: 0/0 + req 1323 ws/ts: Y/Y req 1323 ws/ts: N/N + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 16384 bytes max win adv: 0 bytes + min win adv: 16384 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16384 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 161912.2 ms idletime max: NA ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 3 max # retrans: 0 + min retr time: 5869.8 ms min retr time: 0.0 ms + max retr time: 24005.4 ms max retr time: 0.0 ms + avg retr time: 13958.3 ms avg retr time: 0.0 ms + sdv retr time: 9225.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.67.36:1700 + host d: 132.235.67.21:9080 + complete conn: yes + first packet: Wed Nov 25 09:32:40.470421 1998 + last packet: Wed Nov 25 09:32:47.211172 1998 + elapsed time: 0:00:06.740751 + total packets: 13 + filename: badsyns.dmp.gz + c->d: d->c: + total packets: 9 total packets: 4 + ack pkts sent: 8 ack pkts sent: 4 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 6231 unique bytes sent: 0 + actual data pkts: 6 actual data pkts: 0 + actual data bytes: 7679 actual data bytes: 0 + rexmt data pkts: 1 rexmt data pkts: 0 + rexmt data bytes: 1448 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 439 bytes min segm size: 0 bytes + avg segm size: 1279 bytes avg segm size: 0 bytes + max win adv: 17520 bytes max win adv: 65535 bytes + min win adv: 17520 bytes min win adv: 64088 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 17520 bytes avg win adv: 65052 bytes + max owin: 2897 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1304 bytes avg owin: 1 bytes + wavg owin: 1706 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 6231 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 7355 bytes truncated data: 0 bytes + truncated packets: 6 pkts truncated packets: 0 pkts + data xmit time: 3.873 secs data xmit time: 0.000 secs + idletime max: 1918.7 ms idletime max: 3732.7 ms + throughput: 924 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 939.6 ms RTT min: 0.1 ms + RTT max: 1035.0 ms RTT max: 0.2 ms + RTT avg: 998.3 ms RTT avg: 0.2 ms + RTT stdev: 51.4 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 939.6 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 2 RTT full_sz smpls: 1 + RTT full_sz min: 1020.3 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 1035.0 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 1027.6 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 1 post-loss acks: 0 + segs cum acked: 2 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 1812.4 ms min retr time: 0.0 ms + max retr time: 1812.4 ms max retr time: 0.0 ms + avg retr time: 1812.2 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/badsyns.dmp.gz.packets b/input/OUTPUTbench/badsyns.dmp.gz.packets new file mode 100644 index 0000000..2d989b5 --- /dev/null +++ b/input/OUTPUTbench/badsyns.dmp.gz.packets @@ -0,0 +1,460 @@ +1 arg remaining, starting with 'badsyns.dmp.gz' + +Packet 1 + Packet Length: 74 + Collected: Wed Nov 25 09:29:23.422612 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 6913 + CKSUM: 0xcfab (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6261df04 + ACK: 0x00000000 + WIN: 16384 + HLEN: 40 + CKSUM: 0xf989 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(5612,0) +Packet 2 + Packet Length: 74 + Collected: Wed Nov 25 09:29:29.292397 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 8177 + CKSUM: 0xcabb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6261df04 + ACK: 0x00000000 + WIN: 16384 + HLEN: 40 + CKSUM: 0xf97e (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(5623,0) +Packet 3 + Packet Length: 74 + Collected: Wed Nov 25 09:29:41.293485 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 10701 + CKSUM: 0xc0df (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6261df04 + ACK: 0x00000000 + WIN: 16384 + HLEN: 40 + CKSUM: 0xf966 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(5647,0) +Packet 4 + Packet Length: 74 + Collected: Wed Nov 25 09:30:05.298931 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 15918 + CKSUM: 0xac7e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x6261df04 + ACK: 0x00000000 + WIN: 16384 + HLEN: 40 + CKSUM: 0xf936 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(5695,0) +Packet 5 + Packet Length: 74 + Collected: Wed Nov 25 09:32:40.470421 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 50614 + CKSUM: 0x24f6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0xa6a7ca89 + ACK: 0x00000000 + WIN: 16384 + HLEN: 40 + CKSUM: 0xc834 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(6006,0) +Packet 6 + Packet Length: 74 + Collected: Wed Nov 25 09:32:41.410044 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 60 + ID: 17809 + CKSUM: 0xa71b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 1700 + FLG: -A--S- (0x12) + SEQ: 0x17748010 + ACK: 0xa6a7ca8a + WIN: 16384 + HLEN: 40 + CKSUM: 0x9333 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(171369,6006) +Packet 7 + Packet Length: 66 + Collected: Wed Nov 25 09:32:41.410271 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 50850 + CKSUM: 0x2412 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7ca8a + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xba85 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(6008,171369) +Packet 8 + Packet Length: 1514 (saved length 120) + Collected: Wed Nov 25 09:32:41.419890 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 50851 + CKSUM: 0x1e69 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7ca8a + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xb4dd (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(6008,171369) + data: 1448 bytes +Packet 9 + Packet Length: 66 + Collected: Wed Nov 25 09:32:42.454890 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 17967 + CKSUM: 0x6685 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 1700 + FLG: -A---- (0x10) + SEQ: 0x17748011 + ACK: 0xa6a7d032 + WIN: 65535 + HLEN: 32 + CKSUM: 0xf94b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(171371,6008) +Packet 10 + Packet Length: 1514 (saved length 120) + Collected: Wed Nov 25 09:32:42.456841 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 51149 + CKSUM: 0x1d3f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7d032 + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xaf33 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(6010,171369) + data: 1448 bytes +Packet 11 + Packet Length: 1514 (saved length 120) + Collected: Wed Nov 25 09:32:42.458090 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 51150 + CKSUM: 0x1d3e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7d5da + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa98b (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(6010,171369) + data: 1448 bytes +Packet 12 + Packet Length: 66 + Collected: Wed Nov 25 09:32:43.478400 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 18095 + CKSUM: 0x6605 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 1700 + FLG: -A---- (0x10) + SEQ: 0x17748011 + ACK: 0xa6a7db82 + WIN: 64088 + HLEN: 32 + CKSUM: 0xf39e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(171373,6010) +Packet 13 + Packet Length: 1514 (saved length 120) + Collected: Wed Nov 25 09:32:43.480078 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 51323 + CKSUM: 0x1c91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7db82 + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa3e1 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(6012,171369) + data: 1448 bytes +Packet 14 + Packet Length: 505 (saved length 120) + Collected: Wed Nov 25 09:32:43.480378 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 491 + ID: 51324 + CKSUM: 0x2081 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -AP--F (0x19) + SEQ: 0xa6a7e12a + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa221 (too short to verify) + DLEN: 439 (only 54 bytes in dump file) + OPTS: 12 bytes TS(6012,171369) + data: 439 bytes +Packet 15 + Packet Length: 1514 (saved length 120) + Collected: Wed Nov 25 09:32:45.292433 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 51646 + CKSUM: 0x1b4e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7db82 + ACK: 0x17748011 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa3de (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(6015,171369) + data: 1448 bytes +Packet 16 + Packet Length: 66 + Collected: Wed Nov 25 09:32:47.211080 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 18679 + CKSUM: 0x63bd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 1700 + FLG: -A---F (0x11) + SEQ: 0x17748011 + ACK: 0xa6a7e2e2 + WIN: 65535 + HLEN: 32 + CKSUM: 0xe68d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(171380,6012) +Packet 17 + Packet Length: 66 + Collected: Wed Nov 25 09:32:47.211172 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 52069 + CKSUM: 0x1f4f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1700 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0xa6a7e2e2 + ACK: 0x17748012 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa216 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(6019,171380) +17 packets seen, 17 TCP packets traced +trace file elapsed time: 0:03:23.788559 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.67.36:1700 - 132.235.67.21:9080 (a2b) 4> 0< (unidirectional) + 2: 132.235.67.36:1700 - 132.235.67.21:9080 (c2d) 9> 4< (complete) diff --git a/input/OUTPUTbench/badsyns.dmp.gz.short b/input/OUTPUTbench/badsyns.dmp.gz.short new file mode 100644 index 0000000..f252b0a --- /dev/null +++ b/input/OUTPUTbench/badsyns.dmp.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'badsyns.dmp.gz' + +17 packets seen, 17 TCP packets traced +trace file elapsed time: 0:03:23.788559 +TCP connection info: + 1: 132.235.67.36:1700 - 132.235.67.21:9080 (a2b) 4> 0< (unidirectional) + 2: 132.235.67.36:1700 - 132.235.67.21:9080 (c2d) 9> 4< (complete) diff --git a/input/OUTPUTbench/badsyns.dmp.gz.xplots.cksum b/input/OUTPUTbench/badsyns.dmp.gz.xplots.cksum new file mode 100644 index 0000000..ce13917 --- /dev/null +++ b/input/OUTPUTbench/badsyns.dmp.gz.xplots.cksum @@ -0,0 +1,19 @@ +293841553 129 a2b_owin.xpl +122707759 127 a2b_ssize.xpl +1392997788 118 a2b_tput.xpl +3902425936 852 a2b_tsg.xpl +1787309671 925 a_b_tline.xpl +2292235016 129 b2a_owin.xpl +740553723 127 b2a_ssize.xpl +2519932109 123 b2a_tsg.xpl +1569154668 2250 c2d_owin.xpl +1963093619 333 c2d_rtt.xpl +3824786269 1065 c2d_ssize.xpl +1528210320 321 c2d_tput.xpl +1194395967 2198 c2d_tsg.xpl +663635862 2531 c_d_tline.xpl +1842754414 885 d2c_owin.xpl +3257076635 209 d2c_rtt.xpl +740553723 127 d2c_ssize.xpl +4289611792 118 d2c_tput.xpl +2361838732 2091 d2c_tsg.xpl diff --git a/input/OUTPUTbench/chdlc.erf.gz.long b/input/OUTPUTbench/chdlc.erf.gz.long new file mode 100644 index 0000000..6e8e8b9 --- /dev/null +++ b/input/OUTPUTbench/chdlc.erf.gz.long @@ -0,0 +1,227 @@ +1 arg remaining, starting with 'chdlc.erf.gz' + +3 packets seen, 3 TCP packets traced +trace file elapsed time: 0:00:00.000402 +TCP connection info: +3 TCP connections traced: +TCP connection 1: + host a: 1.30.197.172:0 + host b: 198.19.1.1:0 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Fri Jun 22 05:53:38.532316 2001 + last packet: Fri Jun 22 05:53:38.532316 2001 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: chdlc.erf.gz + a->b: b->a: + total packets: 1 total packets: 0 + ack pkts sent: 0 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 264 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 264 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 264 bytes max segm size: 0 bytes + min segm size: 264 bytes min segm size: 0 bytes + avg segm size: 263 bytes avg segm size: 0 bytes + max win adv: 0 bytes max win adv: 0 bytes + min win adv: 0 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 0 bytes avg win adv: 0 bytes + max owin: 264 bytes max owin: 0 bytes + min non-zero owin: 264 bytes min non-zero owin: 0 bytes + avg owin: 264 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 264 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.4 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 1.30.197.173:0 + host d: 198.19.1.1:0 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Fri Jun 22 05:53:38.532517 2001 + last packet: Fri Jun 22 05:53:38.532517 2001 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: chdlc.erf.gz + c->d: d->c: + total packets: 1 total packets: 0 + ack pkts sent: 0 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 264 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 264 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 264 bytes max segm size: 0 bytes + min segm size: 264 bytes min segm size: 0 bytes + avg segm size: 263 bytes avg segm size: 0 bytes + max win adv: 0 bytes max win adv: 0 bytes + min win adv: 0 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 0 bytes avg win adv: 0 bytes + max owin: 264 bytes max owin: 0 bytes + min non-zero owin: 264 bytes min non-zero owin: 0 bytes + avg owin: 264 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 264 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.2 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 3: + host e: 1.30.197.174:0 + host f: 198.19.1.1:0 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Fri Jun 22 05:53:38.532718 2001 + last packet: Fri Jun 22 05:53:38.532718 2001 + elapsed time: 0:00:00.000000 + total packets: 1 + filename: chdlc.erf.gz + e->f: f->e: + total packets: 1 total packets: 0 + ack pkts sent: 0 ack pkts sent: 0 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 264 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 264 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 264 bytes max segm size: 0 bytes + min segm size: 264 bytes min segm size: 0 bytes + avg segm size: 263 bytes avg segm size: 0 bytes + max win adv: 0 bytes max win adv: 0 bytes + min win adv: 0 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 0 bytes avg win adv: 0 bytes + max owin: 264 bytes max owin: 0 bytes + min non-zero owin: 264 bytes min non-zero owin: 0 bytes + avg owin: 264 bytes avg owin: 0 bytes + wavg owin: NA wavg owin: NA + initial window: 264 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.0 ms idletime max: NA ms + throughput: NA throughput: NA + + RTT samples: 0 RTT samples: 0 + RTT min: 0.0 ms RTT min: 0.0 ms + RTT max: 0.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 0 + RTT full_sz min: 0.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/chdlc.erf.gz.packets b/input/OUTPUTbench/chdlc.erf.gz.packets new file mode 100644 index 0000000..2923988 --- /dev/null +++ b/input/OUTPUTbench/chdlc.erf.gz.packets @@ -0,0 +1,85 @@ +1 arg remaining, starting with 'chdlc.erf.gz' + +Packet 1 + Packet Length: 308 + Collected: Fri Jun 22 05:53:38.532316 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 1.30.197.172 + IP Dest: 198.19.1.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 304 + ID: 0 + CKSUM: 0xebe9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 0 + DPRT: 0 + FLG: ------ (0x00) + SEQ: 0xffeb0000 + ACK: 0x00000000 + WIN: 0 + HLEN: 20 + CKSUM: 0xd187 (WRONG) + DLEN: 264 + data: 264 bytes +Packet 2 + Packet Length: 308 + Collected: Fri Jun 22 05:53:38.532517 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 1.30.197.173 + IP Dest: 198.19.1.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 304 + ID: 0 + CKSUM: 0xebe8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 0 + DPRT: 0 + FLG: ------ (0x00) + SEQ: 0xffeb0000 + ACK: 0x00000000 + WIN: 0 + HLEN: 20 + CKSUM: 0xd187 (WRONG) + DLEN: 264 + data: 264 bytes +Packet 3 + Packet Length: 308 + Collected: Fri Jun 22 05:53:38.532718 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 1.30.197.174 + IP Dest: 198.19.1.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 304 + ID: 0 + CKSUM: 0xebe7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 0 + DPRT: 0 + FLG: ------ (0x00) + SEQ: 0xffeb0000 + ACK: 0x00000000 + WIN: 0 + HLEN: 20 + CKSUM: 0xd187 (WRONG) + DLEN: 264 + data: 264 bytes +3 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.000402 +bad IP checksums: 0 +bad TCP checksums: 3 +no traced TCP packets diff --git a/input/OUTPUTbench/chdlc.erf.gz.short b/input/OUTPUTbench/chdlc.erf.gz.short new file mode 100644 index 0000000..40629f2 --- /dev/null +++ b/input/OUTPUTbench/chdlc.erf.gz.short @@ -0,0 +1,8 @@ +1 arg remaining, starting with 'chdlc.erf.gz' + +3 packets seen, 3 TCP packets traced +trace file elapsed time: 0:00:00.000402 +TCP connection info: + 1: 1.30.197.172:0 - 198.19.1.1:0 (a2b) 1> 0< (unidirectional) + 2: 1.30.197.173:0 - 198.19.1.1:0 (c2d) 1> 0< (unidirectional) + 3: 1.30.197.174:0 - 198.19.1.1:0 (e2f) 1> 0< (unidirectional) diff --git a/input/OUTPUTbench/chdlc.erf.gz.xplots.cksum b/input/OUTPUTbench/chdlc.erf.gz.xplots.cksum new file mode 100644 index 0000000..fec22c0 --- /dev/null +++ b/input/OUTPUTbench/chdlc.erf.gz.xplots.cksum @@ -0,0 +1,24 @@ +3667628773 208 a2b_owin.xpl +2155300841 176 a2b_ssize.xpl +1087705472 108 a2b_tput.xpl +3120994518 250 a2b_tsg.xpl +3515214861 335 a_b_tline.xpl +3982467648 119 b2a_owin.xpl +1059353779 117 b2a_ssize.xpl +4091063571 113 b2a_tsg.xpl +3069806376 208 c2d_owin.xpl +1711274208 176 c2d_ssize.xpl +3117389154 108 c2d_tput.xpl +2806574904 250 c2d_tsg.xpl +449297985 319 c_d_tline.xpl +1168536259 119 d2c_owin.xpl +3071741439 117 d2c_ssize.xpl +2758863174 113 d2c_tsg.xpl +2666506732 208 e2f_owin.xpl +784696714 176 e2f_ssize.xpl +1594372258 108 e2f_tput.xpl +1800707814 250 e2f_tsg.xpl +2932474716 319 e_f_tline.xpl +302540691 119 f2e_owin.xpl +46941634 117 f2e_ssize.xpl +115878234 113 f2e_tsg.xpl diff --git a/input/OUTPUTbench/discard.solaris.dmp.gz.long b/input/OUTPUTbench/discard.solaris.dmp.gz.long new file mode 100644 index 0000000..88d4b33 --- /dev/null +++ b/input/OUTPUTbench/discard.solaris.dmp.gz.long @@ -0,0 +1,397 @@ +1 arg remaining, starting with 'discard.solaris.dmp.gz' + +2550 packets seen, 2550 TCP packets traced +trace file elapsed time: 0:00:38.349719 +TCP connection info: +5 TCP connections traced: +TCP connection 1: + host a: 132.235.1.184:35651 + host b: 132.235.1.2:9 + complete conn: RESET (SYNs: 1) (FINs: 0) + first packet: Thu Aug 4 16:47:57.261947 1994 + last packet: Thu Aug 4 16:47:57.263033 1994 + elapsed time: 0:00:00.001086 + total packets: 2 + filename: discard.solaris.dmp.gz + a->b: b->a: + total packets: 1 total packets: 1 + resets sent: 0 resets sent: 1 + ack pkts sent: 0 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 8760 bytes max win adv: 0 bytes + min win adv: 8760 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.0 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 1.1 ms RTT min: 0.0 ms + RTT max: 1.1 ms RTT max: 0.0 ms + RTT avg: 1.1 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.1 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 1.1 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 1.1 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 1.1 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.1.184:35652 + host d: 132.235.2.1:9 + complete conn: RESET (SYNs: 1) (FINs: 0) + first packet: Thu Aug 4 16:48:03.250874 1994 + last packet: Thu Aug 4 16:48:03.255572 1994 + elapsed time: 0:00:00.004698 + total packets: 2 + filename: discard.solaris.dmp.gz + c->d: d->c: + total packets: 1 total packets: 1 + resets sent: 0 resets sent: 1 + ack pkts sent: 0 ack pkts sent: 1 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 8760 bytes max win adv: 0 bytes + min win adv: 8760 bytes min win adv: 0 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 0 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.0 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 4.7 ms RTT min: 0.0 ms + RTT max: 4.7 ms RTT max: 0.0 ms + RTT avg: 4.7 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 4.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 4.7 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 4.7 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 4.7 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 3: + host e: 132.235.1.184:35653 + host f: 132.235.3.134:9 + complete conn: yes + first packet: Thu Aug 4 16:48:06.166396 1994 + last packet: Thu Aug 4 16:48:08.236911 1994 + elapsed time: 0:00:02.070514 + total packets: 1040 + filename: discard.solaris.dmp.gz + e->f: f->e: + total packets: 604 total packets: 436 + ack pkts sent: 603 ack pkts sent: 436 + pure acks sent: 2 pure acks sent: 434 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 819200 unique bytes sent: 0 + actual data pkts: 600 actual data pkts: 0 + actual data bytes: 819200 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 2 outoforder pkts: 0 + pushed data pkts: 39 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1460 bytes max segm size: 0 bytes + min segm size: 892 bytes min segm size: 0 bytes + avg segm size: 1365 bytes avg segm size: 0 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 1744 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 3241 bytes + max owin: 3813 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2165 bytes avg owin: 1 bytes + wavg owin: 2197 bytes wavg owin: 0 bytes + initial window: 1460 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 819200 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 794000 bytes truncated data: 0 bytes + truncated packets: 600 pkts truncated packets: 0 pkts + data xmit time: 1.875 secs data xmit time: 0.000 secs + idletime max: 226.5 ms idletime max: 167.4 ms + throughput: 395650 Bps throughput: 0 Bps + + RTT samples: 311 RTT samples: 2 + RTT min: 0.4 ms RTT min: 0.6 ms + RTT max: 85.0 ms RTT max: 50.6 ms + RTT avg: 1.9 ms RTT avg: 25.6 ms + RTT stdev: 4.7 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.3 ms RTT from 3WHS: 50.6 ms + + RTT full_sz smpls: 273 RTT full_sz smpls: 1 + RTT full_sz min: 1.2 ms RTT full_sz min: 0.6 ms + RTT full_sz max: 85.0 ms RTT full_sz max: 0.6 ms + RTT full_sz avg: 1.9 ms RTT full_sz avg: 0.6 ms + RTT full_sz stdev: 5.1 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 2 post-loss acks: 0 + segs cum acked: 289 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 4: + host g: 132.235.1.184:35654 + host h: 132.235.1.221:9 + complete conn: yes + first packet: Thu Aug 4 16:48:11.951023 1994 + last packet: Thu Aug 4 16:48:14.456877 1994 + elapsed time: 0:00:02.505853 + total packets: 1380 + filename: discard.solaris.dmp.gz + g->h: h->g: + total packets: 655 total packets: 725 + ack pkts sent: 654 ack pkts sent: 725 + pure acks sent: 2 pure acks sent: 723 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 819200 unique bytes sent: 0 + actual data pkts: 651 actual data pkts: 0 + actual data bytes: 888196 actual data bytes: 0 + rexmt data pkts: 51 rexmt data pkts: 0 + rexmt data bytes: 68996 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 216 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1436 bytes + max segm size: 1436 bytes max segm size: 0 bytes + min segm size: 1012 bytes min segm size: 0 bytes + avg segm size: 1364 bytes avg segm size: 0 bytes + max win adv: 10052 bytes max win adv: 8192 bytes + min win adv: 8760 bytes min win adv: 88 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 10050 bytes avg win adv: 7018 bytes + max owin: 8193 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 5151 bytes avg owin: 1 bytes + wavg owin: 3867 bytes wavg owin: 0 bytes + initial window: 1436 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 819200 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 860854 bytes truncated data: 0 bytes + truncated packets: 651 pkts truncated packets: 0 pkts + data xmit time: 2.165 secs data xmit time: 0.000 secs + idletime max: 134.4 ms idletime max: 144.6 ms + throughput: 326914 Bps throughput: 0 Bps + + RTT samples: 281 RTT samples: 2 + RTT min: 0.7 ms RTT min: 0.5 ms + RTT max: 11.9 ms RTT max: 47.5 ms + RTT avg: 7.1 ms RTT avg: 24.0 ms + RTT stdev: 2.7 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.0 ms RTT from 3WHS: 47.5 ms + + RTT full_sz smpls: 231 RTT full_sz smpls: 1 + RTT full_sz min: 1.7 ms RTT full_sz min: 0.5 ms + RTT full_sz max: 11.9 ms RTT full_sz max: 0.5 ms + RTT full_sz avg: 7.2 ms RTT full_sz avg: 0.5 ms + RTT full_sz stdev: 2.7 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 54 post-loss acks: 0 + 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. + ambiguous acks: 4 ambiguous acks: 0 + RTT min (last): 1.9 ms RTT min (last): 0.0 ms + RTT max (last): 2.2 ms RTT max (last): 0.0 ms + RTT avg (last): 2.0 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.1 ms RTT sdv (last): 0.0 ms + segs cum acked: 263 segs cum acked: 0 + duplicate acks: 307 duplicate acks: 1 + triple dupacks: 51 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 9.3 ms min retr time: 0.0 ms + max retr time: 18.2 ms max retr time: 0.0 ms + avg retr time: 12.9 ms avg retr time: 0.0 ms + sdv retr time: 1.6 ms sdv retr time: 0.0 ms +================================ +TCP connection 5: + host i: 132.235.1.184:35655 + host j: 132.235.201.18:9 + complete conn: no (SYNs: 2) (FINs: 1) + first packet: Thu Aug 4 16:48:21.933818 1994 + last packet: Thu Aug 4 16:48:35.611666 1994 + elapsed time: 0:00:13.677847 + total packets: 126 + filename: discard.solaris.dmp.gz + i->j: j->i: + total packets: 88 total packets: 38 + ack pkts sent: 86 ack pkts sent: 38 + pure acks sent: 2 pure acks sent: 37 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 28884 unique bytes sent: 0 + actual data pkts: 84 actual data pkts: 0 + actual data bytes: 114688 actual data bytes: 0 + rexmt data pkts: 64 rexmt data pkts: 0 + rexmt data bytes: 85806 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 12 pushed data pkts: 0 + SYN/FIN pkts sent: 2/2 SYN/FIN pkts sent: 1/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1436 bytes + max segm size: 1436 bytes max segm size: 0 bytes + min segm size: 1012 bytes min segm size: 0 bytes + avg segm size: 1365 bytes avg segm size: 0 bytes + max win adv: 10052 bytes max win adv: 8192 bytes + min win adv: 8760 bytes min win adv: 8192 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 10022 bytes avg win adv: 8192 bytes + max owin: 6757 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2743 bytes avg owin: 1 bytes + wavg owin: 3995 bytes wavg owin: 0 bytes + initial window: 1436 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 28884 bytes ttl stream length: NA + missed data: 0 bytes missed data: NA + truncated data: 111160 bytes truncated data: 0 bytes + truncated packets: 84 pkts truncated packets: 0 pkts + data xmit time: 12.652 secs data xmit time: 0.000 secs + idletime max: 1027.7 ms idletime max: 640.3 ms + hardware dups: 44 segs hardware dups: 0 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 2112 Bps throughput: 0 Bps + + RTT samples: 0 RTT samples: 1 + RTT min: 0.0 ms RTT min: 43.7 ms + RTT max: 0.0 ms RTT max: 43.7 ms + RTT avg: 0.0 ms RTT avg: 43.7 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 43.7 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 1 + RTT full_sz min: 0.0 ms RTT full_sz min: 43.7 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 43.7 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 43.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 1 post-loss acks: 0 + 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. + ambiguous acks: 19 ambiguous acks: 0 + RTT min (last): 19.0 ms RTT min (last): 0.0 ms + RTT max (last): 1112.7 ms RTT max (last): 0.0 ms + RTT avg (last): 359.2 ms RTT avg (last): 0.0 ms + RTT sdv (last): 239.9 ms RTT sdv (last): 0.0 ms + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 18 duplicate acks: 0 + triple dupacks: 4 triple dupacks: 0 + max # retrans: 5 max # retrans: 0 + min retr time: 1.0 ms min retr time: 0.0 ms + max retr time: 2898.0 ms max retr time: 0.0 ms + avg retr time: 406.1 ms avg retr time: 0.0 ms + sdv retr time: 746.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/discard.solaris.dmp.gz.packets b/input/OUTPUTbench/discard.solaris.dmp.gz.packets new file mode 100644 index 0000000..7d7d384 --- /dev/null +++ b/input/OUTPUTbench/discard.solaris.dmp.gz.packets @@ -0,0 +1,2628 @@ +1 arg remaining, starting with 'discard.solaris.dmp.gz' + +Packet 1 + Packet Length: 60 + Collected: Thu Aug 4 16:47:57.261947 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 22575 + CKSUM: 0x170c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35651 + DPRT: 9 + FLG: ----S- (0x02) + SEQ: 0x940689d0 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0xc03a (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 60 + Collected: Thu Aug 4 16:47:57.263033 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 1005 + CKSUM: 0x6e53 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35651 + FLG: -A-R-- (0x14) + SEQ: 0x00000000 + ACK: 0x940689d1 + WIN: 0 + HLEN: 20 + CKSUM: 0xfa1b (CORRECT) + DLEN: 0 +Packet 3 + Packet Length: 60 + Collected: Thu Aug 4 16:48:03.250874 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: aa:00:04:00:fd:b5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.2.1 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 28565 + CKSUM: 0xfea6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35652 + DPRT: 9 + FLG: ----S- (0x02) + SEQ: 0x941435d0 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0x132d (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 4 + Packet Length: 60 + Collected: Thu Aug 4 16:48:03.255572 1994 + ETH Srce: 08:00:2b:1d:6f:30 + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.2.1 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 43559 + CKSUM: 0xc719 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35652 + FLG: -A-R-- (0x14) + SEQ: 0x00000000 + ACK: 0x941435d1 + WIN: 0 + HLEN: 20 + CKSUM: 0x4d0e (CORRECT) + DLEN: 0 +Packet 5 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.166396 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 9394 + CKSUM: 0x4805 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: ----S- (0x02) + SEQ: 0x941c05d0 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0x419f (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 6 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.167702 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 34478 + CKSUM: 0xe909 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A--S- (0x12) + SEQ: 0x1fce9401 + ACK: 0x941c05d1 + WIN: 4096 + HLEN: 24 + CKSUM: 0x9ff6 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 7 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.218278 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 9395 + CKSUM: 0x4808 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c05d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xa57b (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.329428 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9396 + CKSUM: 0x4253 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x941c05d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x77b5 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 9 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.332186 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34479 + CKSUM: 0xe90c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c0b85 + WIN: 4096 + HLEN: 20 + CKSUM: 0xb1ff (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.333881 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9397 + CKSUM: 0x4252 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c0b85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x3a73 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 11 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.335090 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9398 + CKSUM: 0x4251 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x941c1139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x7b5c (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 12 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.336971 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34480 + CKSUM: 0xe90b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c16ed + WIN: 3224 + HLEN: 20 + CKSUM: 0xa9ff (CORRECT) + DLEN: 0 +Packet 13 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.338560 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9399 + CKSUM: 0x4250 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c16ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb6f1 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 14 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.339827 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9400 + CKSUM: 0x424f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c1ca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x79a7 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 15 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.341171 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34481 + CKSUM: 0xe90a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c2255 + WIN: 2200 + HLEN: 20 + CKSUM: 0xa297 (CORRECT) + DLEN: 0 +Packet 16 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.342295 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9401 + CKSUM: 0x4486 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c2255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb0c3 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 17 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.342526 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34482 + CKSUM: 0xe909 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c2255 + WIN: 4096 + HLEN: 20 + CKSUM: 0x9b2f (CORRECT) + DLEN: 0 +Packet 18 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.344161 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9402 + CKSUM: 0x424d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c25d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x57bd (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 19 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.345300 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9403 + CKSUM: 0x424c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c2b85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x1a73 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 20 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.347160 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34483 + CKSUM: 0xe908 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c3139 + WIN: 2200 + HLEN: 20 + CKSUM: 0x93b3 (CORRECT) + DLEN: 0 +Packet 21 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.348436 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9404 + CKSUM: 0x424b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c3139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x5b64 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 22 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.348663 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34484 + CKSUM: 0xe907 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c3139 + WIN: 4096 + HLEN: 20 + CKSUM: 0x8c4b (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.350165 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9405 + CKSUM: 0x424a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c36ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x96f1 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 24 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.351566 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34485 + CKSUM: 0xe906 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c3ca1 + WIN: 3224 + HLEN: 20 + CKSUM: 0x844b (CORRECT) + DLEN: 0 +Packet 25 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.353132 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9406 + CKSUM: 0x4249 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c3ca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x59a7 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 26 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.353889 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9407 + CKSUM: 0x4480 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c4255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x90c3 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 27 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.355357 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34486 + CKSUM: 0xe905 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c45d1 + WIN: 2768 + HLEN: 20 + CKSUM: 0x7ce3 (CORRECT) + DLEN: 0 +Packet 28 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.356910 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9408 + CKSUM: 0x4247 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c45d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x37bd (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 29 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.358765 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34487 + CKSUM: 0xe904 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c4b85 + WIN: 3660 + HLEN: 20 + CKSUM: 0x73b3 (CORRECT) + DLEN: 0 +Packet 30 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.360887 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9409 + CKSUM: 0x4246 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c4b85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xfa72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 31 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.362145 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9410 + CKSUM: 0x4245 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c5139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x3b64 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 32 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.363491 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34488 + CKSUM: 0xe903 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c56ed + WIN: 2200 + HLEN: 20 + CKSUM: 0x6dff (CORRECT) + DLEN: 0 +Packet 33 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.365175 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9411 + CKSUM: 0x4244 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c56ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x76f1 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 34 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.365864 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34489 + CKSUM: 0xe902 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c56ed + WIN: 4096 + HLEN: 20 + CKSUM: 0x6697 (CORRECT) + DLEN: 0 +Packet 35 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.366777 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9412 + CKSUM: 0x4243 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c5ca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x39a7 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 36 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.368564 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34490 + CKSUM: 0xe901 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c6255 + WIN: 3224 + HLEN: 20 + CKSUM: 0x5e97 (CORRECT) + DLEN: 0 +Packet 37 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.369624 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9413 + CKSUM: 0x447a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c6255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x70c3 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 38 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.370837 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9414 + CKSUM: 0x4241 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x941c65d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x17b5 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 39 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.372100 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34491 + CKSUM: 0xe900 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c6b85 + WIN: 2768 + HLEN: 20 + CKSUM: 0x572f (CORRECT) + DLEN: 0 +Packet 40 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.373726 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9415 + CKSUM: 0x4240 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c6b85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xda72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 41 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.375220 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34492 + CKSUM: 0xe8ff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c7139 + WIN: 3660 + HLEN: 20 + CKSUM: 0x4dff (CORRECT) + DLEN: 0 +Packet 42 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.376784 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9416 + CKSUM: 0x423f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c7139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x1b64 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 43 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.377992 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9417 + CKSUM: 0x423e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c76ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x56f1 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 44 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.379345 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34493 + CKSUM: 0xe8fe (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c7ca1 + WIN: 2200 + HLEN: 20 + CKSUM: 0x484b (CORRECT) + DLEN: 0 +Packet 45 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.380920 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9418 + CKSUM: 0x423d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c7ca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x19a7 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 46 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.381161 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34494 + CKSUM: 0xe8fd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c7ca1 + WIN: 4096 + HLEN: 20 + CKSUM: 0x40e3 (CORRECT) + DLEN: 0 +Packet 47 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.382089 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9419 + CKSUM: 0x4474 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c8255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x50c3 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 48 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.383332 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9420 + CKSUM: 0x423b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x941c85d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf7b4 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 49 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.384930 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34495 + CKSUM: 0xe8fc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c8b85 + WIN: 2332 + HLEN: 20 + CKSUM: 0x38e3 (CORRECT) + DLEN: 0 +Packet 50 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.386755 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9421 + CKSUM: 0x423a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c8b85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xba72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 51 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.387220 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34496 + CKSUM: 0xe8fb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c8b85 + WIN: 4096 + HLEN: 20 + CKSUM: 0x31ff (CORRECT) + DLEN: 0 +Packet 52 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.388677 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9422 + CKSUM: 0x4239 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c9139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xfb63 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 53 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.388920 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34497 + CKSUM: 0xe8fa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c9139 + WIN: 4096 + HLEN: 20 + CKSUM: 0x2c4b (CORRECT) + DLEN: 0 +Packet 54 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.390282 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9423 + CKSUM: 0x4238 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c96ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x36f1 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 55 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.391733 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34498 + CKSUM: 0xe8f9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941c9ca1 + WIN: 3224 + HLEN: 20 + CKSUM: 0x244b (CORRECT) + DLEN: 0 +Packet 56 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.393276 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9424 + CKSUM: 0x4237 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941c9ca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf9a6 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 57 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.394031 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9425 + CKSUM: 0x446e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941ca255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x30c3 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 58 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.395512 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34499 + CKSUM: 0xe8f8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941ca5d1 + WIN: 2768 + HLEN: 20 + CKSUM: 0x1ce3 (CORRECT) + DLEN: 0 +Packet 59 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.397214 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9426 + CKSUM: 0x4235 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941ca5d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xd7bc (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 60 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.398703 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34500 + CKSUM: 0xe8f7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cab85 + WIN: 3660 + HLEN: 20 + CKSUM: 0x13b3 (CORRECT) + DLEN: 0 +Packet 61 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.400353 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9427 + CKSUM: 0x4234 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cab85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9a72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 62 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.401561 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9428 + CKSUM: 0x4233 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cb139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xdb63 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 63 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.402924 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34501 + CKSUM: 0xe8f6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cb6ed + WIN: 2200 + HLEN: 20 + CKSUM: 0x0dff (CORRECT) + DLEN: 0 +Packet 64 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.404497 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9429 + CKSUM: 0x4232 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cb6ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x16f1 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 65 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.404732 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34502 + CKSUM: 0xe8f5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cb6ed + WIN: 4096 + HLEN: 20 + CKSUM: 0x0697 (CORRECT) + DLEN: 0 +Packet 66 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.406202 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9430 + CKSUM: 0x4231 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cbca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xd9a6 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 67 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.406885 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9431 + CKSUM: 0x4468 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x941cc255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x10bb (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 68 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.408552 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34503 + CKSUM: 0xe8f4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cc5d1 + WIN: 2332 + HLEN: 20 + CKSUM: 0xfe96 (CORRECT) + DLEN: 0 +Packet 69 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.410246 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9432 + CKSUM: 0x422f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cc5d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb7bc (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 70 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.410505 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34504 + CKSUM: 0xe8f3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cc5d1 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf7b2 (CORRECT) + DLEN: 0 +Packet 71 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.411737 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9433 + CKSUM: 0x422e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941ccb85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x7a72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 72 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.413240 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34505 + CKSUM: 0xe8f2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cd139 + WIN: 3224 + HLEN: 20 + CKSUM: 0xefb2 (CORRECT) + DLEN: 0 +Packet 73 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.414791 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9434 + CKSUM: 0x422d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cd139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xbb63 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 74 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.415998 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9435 + CKSUM: 0x422c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cd6ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf6f0 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 75 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.417436 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34506 + CKSUM: 0xe8f1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cdca1 + WIN: 2200 + HLEN: 20 + CKSUM: 0xe84a (CORRECT) + DLEN: 0 +Packet 76 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.419055 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9436 + CKSUM: 0x422b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cdca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb9a6 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 77 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.419296 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34507 + CKSUM: 0xe8f0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cdca1 + WIN: 4096 + HLEN: 20 + CKSUM: 0xe0e2 (CORRECT) + DLEN: 0 +Packet 78 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.420285 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9437 + CKSUM: 0x4462 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941ce255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf0c2 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 79 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.421489 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9438 + CKSUM: 0x4229 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941ce5d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x97bc (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 80 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.423008 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34508 + CKSUM: 0xe8ef (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941ceb85 + WIN: 2332 + HLEN: 20 + CKSUM: 0xd8e2 (CORRECT) + DLEN: 0 +Packet 81 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.425242 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34509 + CKSUM: 0xe8ee (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941ceb85 + WIN: 4096 + HLEN: 20 + CKSUM: 0xd1fe (CORRECT) + DLEN: 0 +Packet 82 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.425629 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9439 + CKSUM: 0x4228 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941ceb85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x5a72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 83 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.426860 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9440 + CKSUM: 0x4227 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cf139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9b63 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 84 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.428669 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34510 + CKSUM: 0xe8ed (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941cf6ed + WIN: 3224 + HLEN: 20 + CKSUM: 0xc9fe (CORRECT) + DLEN: 0 +Packet 85 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.430379 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9441 + CKSUM: 0x4226 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941cf6ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xd6f0 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 86 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.431502 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9442 + CKSUM: 0x4225 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x941cfca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x999e (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 87 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.432877 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34511 + CKSUM: 0xe8ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941d0255 + WIN: 2200 + HLEN: 20 + CKSUM: 0xc296 (CORRECT) + DLEN: 0 +Packet 88 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.434058 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9443 + CKSUM: 0x445c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d0255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xd0c2 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 89 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.434292 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34512 + CKSUM: 0xe8eb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941d0255 + WIN: 4096 + HLEN: 20 + CKSUM: 0xbb2e (CORRECT) + DLEN: 0 +Packet 90 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.435779 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9444 + CKSUM: 0x4223 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d05d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x77bc (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 91 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.436981 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9445 + CKSUM: 0x4222 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d0b85 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x3a72 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 92 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.438453 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34513 + CKSUM: 0xe8ea (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941d1139 + WIN: 2200 + HLEN: 20 + CKSUM: 0xb3b2 (CORRECT) + DLEN: 0 +Packet 93 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.440162 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9446 + CKSUM: 0x4221 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d1139 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x7b63 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 94 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.440406 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34514 + CKSUM: 0xe8e9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941d1139 + WIN: 4096 + HLEN: 20 + CKSUM: 0xac4a (CORRECT) + DLEN: 0 +Packet 95 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.441707 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9447 + CKSUM: 0x4220 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d16ed + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb6f0 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 96 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.443250 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34515 + CKSUM: 0xe8e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941d1ca1 + WIN: 3224 + HLEN: 20 + CKSUM: 0xa44a (CORRECT) + DLEN: 0 +Packet 97 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.444862 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9448 + CKSUM: 0x421f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d1ca1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x79a6 (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +Packet 98 + Packet Length: 946 (saved length 96) + Collected: Thu Aug 4 16:48:06.445617 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 932 + ID: 9449 + CKSUM: 0x4456 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d2255 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb0c2 (too short to verify) + DLEN: 892 (only 42 bytes in dump file) + data: 892 bytes +Packet 99 + Packet Length: 60 + Collected: Thu Aug 4 16:48:06.447181 1994 + ETH Srce: 08:00:20:10:4d:db + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.134 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 34516 + CKSUM: 0xe8e7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 35653 + FLG: -A---- (0x10) + SEQ: 0x1fce9402 + ACK: 0x941d25d1 + WIN: 2768 + HLEN: 20 + CKSUM: 0x9ce2 (CORRECT) + DLEN: 0 +Packet 100 + Packet Length: 1514 (saved length 96) + Collected: Thu Aug 4 16:48:06.448803 1994 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:20:10:4d:db + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.134 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 1500 + ID: 9450 + CKSUM: 0x421d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 35653 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x941d25d1 + ACK: 0x1fce9402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x57bc (too short to verify) + DLEN: 1460 (only 42 bytes in dump file) + data: 1460 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:09.186856 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.1.184:35651 - 132.235.1.2:9 (a2b) 1> 1< (reset) + 2: 132.235.1.184:35652 - 132.235.2.1:9 (c2d) 1> 1< (reset) + 3: 132.235.1.184:35653 - 132.235.3.134:9 (e2f) 57> 39< diff --git a/input/OUTPUTbench/discard.solaris.dmp.gz.short b/input/OUTPUTbench/discard.solaris.dmp.gz.short new file mode 100644 index 0000000..58242d7 --- /dev/null +++ b/input/OUTPUTbench/discard.solaris.dmp.gz.short @@ -0,0 +1,11 @@ +1 arg remaining, starting with 'discard.solaris.dmp.gz' + +2550 packets seen, 2550 TCP packets traced +trace file elapsed time: 0:00:38.349719 +TCP connection info: + 1: 132.235.1.184:35651 - 132.235.1.2:9 (a2b) 1> 1< (reset) + 2: 132.235.1.184:35652 - 132.235.2.1:9 (c2d) 1> 1< (reset) + 3: 132.235.1.184:35653 - 132.235.3.134:9 (e2f) 604> 436< (complete) + 4: 132.235.1.184:35654 - 132.235.1.221:9 (g2h) 655> 725< (complete) + 5: 132.235.1.184:35655 - 132.235.201.18:9 (i2j) 88> 38< + ** Warning, i2j: detected 44 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/discard.solaris.dmp.gz.xplots.cksum b/input/OUTPUTbench/discard.solaris.dmp.gz.xplots.cksum new file mode 100644 index 0000000..47d1b58 --- /dev/null +++ b/input/OUTPUTbench/discard.solaris.dmp.gz.xplots.cksum @@ -0,0 +1,31 @@ +3359967874 125 a2b_owin.xpl +739051954 135 a2b_rtt.xpl +1885032463 123 a2b_ssize.xpl +450082611 114 a2b_tput.xpl +1718341737 351 a2b_tsg.xpl +753449053 525 a_b_tline.xpl +1189726422 125 b2a_owin.xpl +223710956 123 b2a_ssize.xpl +299400916 114 b2a_tput.xpl +282654973 218 b2a_tsg.xpl +811169263 125 c2d_owin.xpl +643964083 135 c2d_rtt.xpl +848957676 123 c2d_ssize.xpl +2910164527 114 c2d_tput.xpl +1680029533 351 c2d_tsg.xpl +2742759657 525 c_d_tline.xpl +2291127419 125 d2c_owin.xpl +4012173156 123 d2c_ssize.xpl +3380656714 114 d2c_tput.xpl +1093956761 218 d2c_tsg.xpl +4063332650 185139 e2f_owin.xpl +3604205802 21033 e2f_rtt.xpl +2190779471 91567 e2f_ssize.xpl +731123304 31384 e2f_tput.xpl +2177377269 184812 e2f_tsg.xpl +1338798091 176412 e_f_tline.xpl +3381266558 122710 f2e_owin.xpl +2495884061 138 f2e_rtt.xpl +1123405081 125 f2e_ssize.xpl +601366973 116 f2e_tput.xpl +1938884194 144789 f2e_tsg.xpl diff --git a/input/OUTPUTbench/dlt_null.dmp.gz.long b/input/OUTPUTbench/dlt_null.dmp.gz.long new file mode 100644 index 0000000..6caf852 --- /dev/null +++ b/input/OUTPUTbench/dlt_null.dmp.gz.long @@ -0,0 +1,83 @@ +1 arg remaining, starting with 'dlt_null.dmp.gz' + +470 packets seen, 470 TCP packets traced +trace file elapsed time: 0:00:01.046289 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 10.0.0.3:1479 + host b: 10.0.0.4:9000 + complete conn: yes + first packet: Fri Sep 5 13:47:33.254875 1997 + last packet: Fri Sep 5 13:47:34.301165 1997 + elapsed time: 0:00:01.046289 + total packets: 470 + filename: dlt_null.dmp.gz + a->b: b->a: + total packets: 241 total packets: 229 + ack pkts sent: 240 ack pkts sent: 229 + pure acks sent: 2 pure acks sent: 227 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 331296 unique bytes sent: 0 + actual data pkts: 238 actual data pkts: 0 + actual data bytes: 331296 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 214 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 0 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1392 bytes mss requested: 1392 bytes + max segm size: 1392 bytes max segm size: 0 bytes + min segm size: 1392 bytes min segm size: 0 bytes + avg segm size: 1391 bytes avg segm size: 0 bytes + max win adv: 16704 bytes max win adv: 16704 bytes + min win adv: 16704 bytes min win adv: 15312 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16704 bytes avg win adv: 15397 bytes + max owin: 16705 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 14356 bytes avg owin: 1 bytes + wavg owin: 12574 bytes wavg owin: 0 bytes + initial window: 1392 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 331296 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 321776 bytes truncated data: 0 bytes + truncated packets: 238 pkts truncated packets: 0 pkts + data xmit time: 0.968 secs data xmit time: 0.000 secs + idletime max: 41.3 ms idletime max: 40.1 ms + throughput: 316639 Bps throughput: 0 Bps + + RTT samples: 228 RTT samples: 2 + RTT min: 26.7 ms RTT min: 0.1 ms + RTT max: 61.0 ms RTT max: 0.1 ms + RTT avg: 38.1 ms RTT avg: 0.1 ms + RTT stdev: 6.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 35.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 41.2 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 41.2 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 41.2 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 11 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/dlt_null.dmp.gz.packets b/input/OUTPUTbench/dlt_null.dmp.gz.packets new file mode 100644 index 0000000..7cd359f --- /dev/null +++ b/input/OUTPUTbench/dlt_null.dmp.gz.packets @@ -0,0 +1,2667 @@ +1 arg remaining, starting with 'dlt_null.dmp.gz' + +Packet 1 + Packet Length: 68 + Collected: Fri Sep 5 13:47:33.254875 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 13166 + CKSUM: 0x3344 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: ----S- (0x02) + SEQ: 0x260c3c00 + ACK: 0x00000000 + WIN: 16384 + HLEN: 44 + CKSUM: 0x9690 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1392) WS(0) TS(311470,0) SACKREQ +Packet 2 + Packet Length: 68 + Collected: Fri Sep 5 13:47:33.290664 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 13168 + CKSUM: 0x3342 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A--S- (0x12) + SEQ: 0x260d3600 + ACK: 0x260c3c01 + WIN: 16704 + HLEN: 44 + CKSUM: 0x787f (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1392) WS(0) TS(311470,311470) SACKREQ +Packet 3 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.290726 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13170 + CKSUM: 0x334c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c3c01 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xb906 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311470,311470) +Packet 4 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.291629 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13172 + CKSUM: 0x2dda (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260c3c01 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xb38e (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311470,311470) + data: 1392 bytes +Packet 5 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.330699 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13174 + CKSUM: 0x3348 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c4171 + WIN: 15312 + HLEN: 32 + CKSUM: 0xb906 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311470,311470) +Packet 6 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.330784 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13176 + CKSUM: 0x2dd6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c4171 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xae26 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311470,311470) + data: 1392 bytes +Packet 7 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.330817 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13177 + CKSUM: 0x2dd5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c46e1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xa8b6 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311470,311470) + data: 1392 bytes +Packet 8 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.370652 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13180 + CKSUM: 0x3342 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c46e1 + WIN: 16704 + HLEN: 32 + CKSUM: 0xae26 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311470,311470) +Packet 9 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.370708 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13182 + CKSUM: 0x2dd0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c4c51 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xa346 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311470,311470) + data: 1392 bytes +Packet 10 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.370735 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13183 + CKSUM: 0x2dcf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c51c1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x9dd6 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311470,311470) + data: 1392 bytes +Packet 11 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.410770 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13186 + CKSUM: 0x333c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c51c1 + WIN: 16704 + HLEN: 32 + CKSUM: 0xa346 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311470,311470) +Packet 12 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.410836 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13190 + CKSUM: 0x2dc8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c5731 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x9865 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 13 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.410865 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13191 + CKSUM: 0x2dc7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c5ca1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x92f5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 14 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.410889 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13192 + CKSUM: 0x2dc6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c6211 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x8d85 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 15 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.430621 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13188 + CKSUM: 0x333a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c5731 + WIN: 16704 + HLEN: 32 + CKSUM: 0x9dd6 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311470,311470) +Packet 16 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.430678 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13196 + CKSUM: 0x2dc2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c6781 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x8815 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 17 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.430704 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13197 + CKSUM: 0x2dc1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c6cf1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x82a5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 18 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.453375 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13200 + CKSUM: 0x332e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c6211 + WIN: 16704 + HLEN: 32 + CKSUM: 0x92f4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 19 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.453433 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13204 + CKSUM: 0x2dba (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c7261 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x7d35 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 20 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.453464 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13205 + CKSUM: 0x2db9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c77d1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x77c5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 21 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.453485 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13206 + CKSUM: 0x2db8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c7d41 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x7255 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 22 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.470634 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13202 + CKSUM: 0x332c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c6cf1 + WIN: 16704 + HLEN: 32 + CKSUM: 0x8814 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 23 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.470686 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13210 + CKSUM: 0x2db4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c82b1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x6ce5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 24 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.470709 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13211 + CKSUM: 0x2db3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c8821 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x6775 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 25 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.470729 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13212 + CKSUM: 0x2db2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c8d91 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x6205 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 26 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.494625 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13216 + CKSUM: 0x331e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c77d1 + WIN: 16704 + HLEN: 32 + CKSUM: 0x7d34 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 27 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.494679 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13222 + CKSUM: 0x2da8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c9301 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x5c95 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 28 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.494700 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13223 + CKSUM: 0x2da7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c9871 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x5725 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 29 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.494721 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13224 + CKSUM: 0x2da6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260c9de1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x51b5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 30 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.495142 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13218 + CKSUM: 0x331c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c82b1 + WIN: 16704 + HLEN: 32 + CKSUM: 0x7254 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 31 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.495194 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13226 + CKSUM: 0x2da4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260ca351 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x4c45 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 32 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.495216 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13227 + CKSUM: 0x2da3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260ca8c1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x46d5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 33 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.495235 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13228 + CKSUM: 0x2da2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260cae31 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x4165 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 34 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.515955 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13220 + CKSUM: 0x331a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c8d91 + WIN: 16704 + HLEN: 32 + CKSUM: 0x6774 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 35 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.516007 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13238 + CKSUM: 0x2d98 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260cb3a1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x3bf5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 36 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.516028 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13239 + CKSUM: 0x2d97 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260cb911 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x3685 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 37 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.516049 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13240 + CKSUM: 0x2d96 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cbe81 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x310d (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 38 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.530695 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13234 + CKSUM: 0x330c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260c9871 + WIN: 16704 + HLEN: 32 + CKSUM: 0x5c94 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 39 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.530747 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13246 + CKSUM: 0x2d90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -A---- (0x10) + SEQ: 0x260cc3f1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x2ba5 (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 40 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.530771 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13247 + CKSUM: 0x2d8f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cc961 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x262d (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 41 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.530823 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13248 + CKSUM: 0x2d8e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cced1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x20bd (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 42 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.531516 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13236 + CKSUM: 0x330a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260ca351 + WIN: 16704 + HLEN: 32 + CKSUM: 0x51b4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 43 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.531571 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13250 + CKSUM: 0x2d8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cd441 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x1b4d (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 44 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.531626 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13251 + CKSUM: 0x2d8b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cd9b1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x15dd (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 45 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.531670 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13252 + CKSUM: 0x2d8a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cdf21 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x106d (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 46 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.542340 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13244 + CKSUM: 0x3302 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cae31 + WIN: 16704 + HLEN: 32 + CKSUM: 0x46d4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 47 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.542443 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13262 + CKSUM: 0x2d80 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260ce491 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x0afd (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 48 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.542488 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13263 + CKSUM: 0x2d7f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cea01 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x058d (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 49 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.548110 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13255 + CKSUM: 0x32f7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cb911 + WIN: 16704 + HLEN: 32 + CKSUM: 0x3bf4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 50 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.548208 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13270 + CKSUM: 0x2d78 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cef71 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x001d (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 51 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.548253 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13271 + CKSUM: 0x2d77 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cf4e1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xfaac (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 52 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.556608 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13260 + CKSUM: 0x32f2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cc3f1 + WIN: 15312 + HLEN: 32 + CKSUM: 0x3684 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 53 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.556712 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13282 + CKSUM: 0x2d6c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cfa51 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xf53c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 54 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.563063 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13266 + CKSUM: 0x32ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cc961 + WIN: 16704 + HLEN: 32 + CKSUM: 0x2ba4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 55 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.563113 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13290 + CKSUM: 0x2d64 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260cffc1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xefcc (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 56 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.563168 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13291 + CKSUM: 0x2d63 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d0531 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xea5c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 57 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.563529 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13268 + CKSUM: 0x32ea (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cced1 + WIN: 15312 + HLEN: 32 + CKSUM: 0x2ba4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 58 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.568084 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13274 + CKSUM: 0x32e4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cd441 + WIN: 15312 + HLEN: 32 + CKSUM: 0x2634 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 59 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.568171 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13296 + CKSUM: 0x2d5e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d0aa1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xe4ec (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 60 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.568623 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13276 + CKSUM: 0x32e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cd9b1 + WIN: 15312 + HLEN: 32 + CKSUM: 0x20c4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 61 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.568674 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13298 + CKSUM: 0x2d5c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d1011 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xdf7c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 62 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.569061 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13278 + CKSUM: 0x32e0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cdf21 + WIN: 15312 + HLEN: 32 + CKSUM: 0x1b54 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 63 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.569112 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13300 + CKSUM: 0x2d5a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d1581 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xda0c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 64 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.569505 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13280 + CKSUM: 0x32de (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260ce491 + WIN: 15312 + HLEN: 32 + CKSUM: 0x15e4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 65 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.569556 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13302 + CKSUM: 0x2d58 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d1af1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xd49c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 66 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.575585 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13284 + CKSUM: 0x32da (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cea01 + WIN: 15312 + HLEN: 32 + CKSUM: 0x1074 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 67 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.575671 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13306 + CKSUM: 0x2d54 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d2061 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xcf2c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 68 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.576075 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13286 + CKSUM: 0x32d8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cef71 + WIN: 15312 + HLEN: 32 + CKSUM: 0x0b04 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 69 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.576125 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13308 + CKSUM: 0x2d52 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d25d1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xc9bc (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 70 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.576511 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13288 + CKSUM: 0x32d6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cf4e1 + WIN: 15312 + HLEN: 32 + CKSUM: 0x0594 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 71 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.576561 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13310 + CKSUM: 0x2d50 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d2b41 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xc44c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 72 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.583868 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13294 + CKSUM: 0x32d0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cfa51 + WIN: 15312 + HLEN: 32 + CKSUM: 0x0024 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 73 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.583936 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13318 + CKSUM: 0x2d48 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d30b1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xbedc (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 74 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.589933 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13304 + CKSUM: 0x32c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260cffc1 + WIN: 15312 + HLEN: 32 + CKSUM: 0xfab3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 75 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.589985 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13326 + CKSUM: 0x2d40 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d3621 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xb96c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 76 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.595746 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13312 + CKSUM: 0x32be (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d0531 + WIN: 15312 + HLEN: 32 + CKSUM: 0xf543 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 77 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.595812 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13334 + CKSUM: 0x2d38 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d3b91 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xb3fc (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 78 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.596300 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13314 + CKSUM: 0x32bc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d0aa1 + WIN: 15312 + HLEN: 32 + CKSUM: 0xefd3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 79 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.596351 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13336 + CKSUM: 0x2d36 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d4101 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xae8c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 80 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.596738 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13316 + CKSUM: 0x32ba (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d1011 + WIN: 15312 + HLEN: 32 + CKSUM: 0xea63 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 81 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.596789 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13338 + CKSUM: 0x2d34 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d4671 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xa91c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 82 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.601603 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13320 + CKSUM: 0x32b6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d1581 + WIN: 15312 + HLEN: 32 + CKSUM: 0xe4f3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 83 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.601672 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13342 + CKSUM: 0x2d30 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d4be1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0xa3ac (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 84 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.602060 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13322 + CKSUM: 0x32b4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d1af1 + WIN: 15312 + HLEN: 32 + CKSUM: 0xdf83 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 85 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.602110 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13344 + CKSUM: 0x2d2e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d5151 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x9e3c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 86 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.602507 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13324 + CKSUM: 0x32b2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d2061 + WIN: 15312 + HLEN: 32 + CKSUM: 0xda13 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 87 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.602560 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13346 + CKSUM: 0x2d2c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d56c1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x98cc (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 88 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.607841 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13328 + CKSUM: 0x32ae (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d25d1 + WIN: 15312 + HLEN: 32 + CKSUM: 0xd4a3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 89 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.607925 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13350 + CKSUM: 0x2d28 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d5c31 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x935c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 90 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.608331 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13330 + CKSUM: 0x32ac (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d2b41 + WIN: 15312 + HLEN: 32 + CKSUM: 0xcf33 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 91 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.608381 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13352 + CKSUM: 0x2d26 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d61a1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x8dec (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 92 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.608771 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13332 + CKSUM: 0x32aa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d30b1 + WIN: 15312 + HLEN: 32 + CKSUM: 0xc9c3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 93 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.608821 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13354 + CKSUM: 0x2d24 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d6711 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x887c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 94 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.616241 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13340 + CKSUM: 0x32a2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d3621 + WIN: 15312 + HLEN: 32 + CKSUM: 0xc453 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 95 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.616295 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13362 + CKSUM: 0x2d1c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d6c81 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x830c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 96 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.623693 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13348 + CKSUM: 0x329a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d3b91 + WIN: 15312 + HLEN: 32 + CKSUM: 0xbee3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 97 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.623762 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13372 + CKSUM: 0x2d12 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d71f1 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x7d9c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 98 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.628656 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13356 + CKSUM: 0x3292 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d4101 + WIN: 15312 + HLEN: 32 + CKSUM: 0xb973 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +Packet 99 + Packet Length: 1448 (saved length 96) + Collected: Fri Sep 5 13:47:33.628745 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.3 + IP Dest: 10.0.0.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1444 + ID: 13378 + CKSUM: 0x2d0c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1479 + DPRT: 9000 + FLG: -AP--- (0x18) + SEQ: 0x260d7761 + ACK: 0x260d3601 + WIN: 16704 + HLEN: 32 + CKSUM: 0x782c (too short to verify) + DLEN: 1392 (only 40 bytes in dump file) + OPTS: 12 bytes TS(311471,311470) + data: 1392 bytes +Packet 100 + Packet Length: 56 + Collected: Fri Sep 5 13:47:33.629169 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 10.0.0.4 + IP Dest: 10.0.0.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 13358 + CKSUM: 0x3290 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9000 + DPRT: 1479 + FLG: -A---- (0x10) + SEQ: 0x260d3601 + ACK: 0x260d4671 + WIN: 15312 + HLEN: 32 + CKSUM: 0xb403 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(311471,311471) +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.374294 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 10.0.0.3:1479 - 10.0.0.4:9000 (a2b) 61> 39< diff --git a/input/OUTPUTbench/dlt_null.dmp.gz.short b/input/OUTPUTbench/dlt_null.dmp.gz.short new file mode 100644 index 0000000..87fa9a6 --- /dev/null +++ b/input/OUTPUTbench/dlt_null.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'dlt_null.dmp.gz' + +470 packets seen, 470 TCP packets traced +trace file elapsed time: 0:00:01.046289 +TCP connection info: + 1: 10.0.0.3:1479 - 10.0.0.4:9000 (a2b) 241> 229< (complete) diff --git a/input/OUTPUTbench/dlt_null.dmp.gz.xplots.cksum b/input/OUTPUTbench/dlt_null.dmp.gz.xplots.cksum new file mode 100644 index 0000000..c74556d --- /dev/null +++ b/input/OUTPUTbench/dlt_null.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +2209347639 79628 a2b_owin.xpl +817540095 16735 a2b_rtt.xpl +1646278201 37946 a2b_ssize.xpl +4122067272 13008 a2b_tput.xpl +802463919 98259 a2b_tsg.xpl +402513605 84320 a_b_tline.xpl +3772140873 67925 b2a_owin.xpl +3570510458 199 b2a_rtt.xpl +1985184340 117 b2a_ssize.xpl +2785094597 108 b2a_tput.xpl +3581312898 64435 b2a_tsg.xpl diff --git a/input/OUTPUTbench/dsack.dmp.gz.long b/input/OUTPUTbench/dsack.dmp.gz.long new file mode 100644 index 0000000..42d9fe8 --- /dev/null +++ b/input/OUTPUTbench/dsack.dmp.gz.long @@ -0,0 +1,92 @@ +1 arg remaining, starting with 'dsack.dmp.gz' + +15710 packets seen, 15710 TCP packets traced +trace file elapsed time: 0:02:31.129120 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.3.145:1024 + host b: 132.235.3.157:5001 + complete conn: yes + first packet: Thu Aug 22 14:09:27.357161 1996 + last packet: Thu Aug 22 14:11:58.486281 1996 + elapsed time: 0:02:31.129120 + total packets: 15710 + filename: dsack.dmp.gz + a->b: b->a: + total packets: 11597 total packets: 4113 + ack pkts sent: 11596 ack pkts sent: 4113 + pure acks sent: 2 pure acks sent: 4111 + sack pkts sent: 0 sack pkts sent: 179 + dsack pkts sent: 0 dsack pkts sent: 1 + max sack blks/ack: 0 max sack blks/ack: 1 + unique bytes sent: 16777216 unique bytes sent: 0 + actual data pkts: 11594 actual data pkts: 0 + actual data bytes: 16787352 actual data bytes: 0 + rexmt data pkts: 7 rexmt data pkts: 0 + rexmt data bytes: 10136 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 179 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 996 bytes min segm size: 0 bytes + avg segm size: 1447 bytes avg segm size: 0 bytes + max win adv: 17520 bytes max win adv: 121180 bytes + min win adv: 17520 bytes min win adv: 3892 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 17520 bytes avg win adv: 120711 bytes + max owin: 120185 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 73984 bytes avg owin: 1 bytes + wavg owin: 67137 bytes wavg owin: 0 bytes + initial window: 2896 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: 16777216 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 15233756 bytes truncated data: 0 bytes + truncated packets: 11594 pkts truncated packets: 0 pkts + data xmit time: 149.877 secs data xmit time: 0.000 secs + idletime max: 621.4 ms idletime max: 559.9 ms + throughput: 111012 Bps throughput: 0 Bps + + RTT samples: 3900 RTT samples: 2 + RTT min: 559.5 ms RTT min: 0.9 ms + RTT max: 907.2 ms RTT max: 0.9 ms + RTT avg: 585.6 ms RTT avg: 0.9 ms + RTT stdev: 20.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 559.5 ms RTT from 3WHS: 0.9 ms + + RTT full_sz smpls: 3897 RTT full_sz smpls: 1 + RTT full_sz min: 560.4 ms RTT full_sz min: 0.9 ms + RTT full_sz max: 907.2 ms RTT full_sz max: 0.9 ms + RTT full_sz avg: 585.6 ms RTT full_sz avg: 0.9 ms + RTT full_sz stdev: 20.9 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 3 post-loss acks: 0 + 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. + ambiguous acks: 4 ambiguous acks: 0 + RTT min (last): 561.3 ms RTT min (last): 0.0 ms + RTT max (last): 616.8 ms RTT max (last): 0.0 ms + RTT avg (last): 588.1 ms RTT avg (last): 0.0 ms + RTT sdv (last): 28.3 ms RTT sdv (last): 0.0 ms + segs cum acked: 7681 segs cum acked: 0 + duplicate acks: 169 duplicate acks: 0 + triple dupacks: 3 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 652.2 ms min retr time: 0.0 ms + max retr time: 969.7 ms max retr time: 0.0 ms + avg retr time: 745.8 ms avg retr time: 0.0 ms + sdv retr time: 153.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/dsack.dmp.gz.packets b/input/OUTPUTbench/dsack.dmp.gz.packets new file mode 100644 index 0000000..14e03b6 --- /dev/null +++ b/input/OUTPUTbench/dsack.dmp.gz.packets @@ -0,0 +1,2683 @@ +1 arg remaining, starting with 'dsack.dmp.gz' + +Packet 1 + Packet Length: 78 + Collected: Thu Aug 22 14:09:27.357161 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 357 + CKSUM: 0x684f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: ----S- (0x02) + SEQ: 0x023f3201 + ACK: 0x00000000 + WIN: 16384 + HLEN: 44 + CKSUM: 0x96e7 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(0) TS(588,0) SACKREQ +Packet 2 + Packet Length: 78 + Collected: Thu Aug 22 14:09:27.916658 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 18716 + CKSUM: 0x2098 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A--S- (0x12) + SEQ: 0x1ac67e01 + ACK: 0x023f3202 + WIN: 65535 + HLEN: 44 + CKSUM: 0x22a8 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(1) TS(7014,588) SACKREQ +Packet 3 + Packet Length: 66 + Collected: Thu Aug 22 14:09:27.917600 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 358 + CKSUM: 0x685a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f3202 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1f01 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(591,7014) +Packet 4 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.022684 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 361 + CKSUM: 0x62af (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f3202 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5abe (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(591,7014) + data: 1448 bytes +Packet 5 + Packet Length: 66 + Collected: Thu Aug 22 14:09:28.476607 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18717 + CKSUM: 0x20a3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f3202 + WIN: 60590 + HLEN: 32 + CKSUM: 0x76c4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7015,588) +Packet 6 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.479568 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 363 + CKSUM: 0x62ad (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f37aa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x7adc (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(592,7014) + data: 1448 bytes +Packet 7 + Packet Length: 66 + Collected: Thu Aug 22 14:09:28.696566 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18719 + CKSUM: 0x20a1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f37aa + WIN: 60590 + HLEN: 32 + CKSUM: 0x7119 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7015,591) +Packet 8 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.699346 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 364 + CKSUM: 0x62ac (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f3d52 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3c5a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(592,7014) + data: 1448 bytes +Packet 9 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.700621 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 365 + CKSUM: 0x62ab (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f42fa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5c79 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(592,7014) + data: 1448 bytes +Packet 10 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.096527 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18720 + CKSUM: 0x20a0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f3d52 + WIN: 60590 + HLEN: 32 + CKSUM: 0x6b6f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7016,592) +Packet 11 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.099373 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 366 + CKSUM: 0x62aa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f48a2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xd7af (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 12 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.100667 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 367 + CKSUM: 0x62a9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f4e4a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3f75 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 13 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.296624 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18721 + CKSUM: 0x209f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f48a2 + WIN: 60590 + HLEN: 32 + CKSUM: 0x601f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7016,592) +Packet 14 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.299464 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 368 + CKSUM: 0x62a8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f53f2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x75aa (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 15 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.300753 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 369 + CKSUM: 0x62a7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f599a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3728 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 16 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.302057 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 370 + CKSUM: 0x62a6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f5f42 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5747 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 17 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.687210 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18722 + CKSUM: 0x209e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f53f2 + WIN: 60590 + HLEN: 32 + CKSUM: 0x54cd (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7017,593) +Packet 18 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.690151 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 371 + CKSUM: 0x62a5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f64ea + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x731e (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(594,7014) + data: 1448 bytes +Packet 19 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.691450 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 372 + CKSUM: 0x62a4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f6a92 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x525b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(594,7014) + data: 1448 bytes +Packet 20 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.692764 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 373 + CKSUM: 0x62a3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f703a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x424a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(594,7014) + data: 1448 bytes +Packet 21 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.876550 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18723 + CKSUM: 0x209d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f64ea + WIN: 60590 + HLEN: 32 + CKSUM: 0x43d4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7018,593) +Packet 22 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.879603 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 374 + CKSUM: 0x62a2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f75e2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x31f5 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 23 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.881082 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 375 + CKSUM: 0x62a1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f7b8a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5214 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 24 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.882242 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 376 + CKSUM: 0x62a0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f8132 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0e8d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 25 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.883752 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 377 + CKSUM: 0x629f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f86da + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x4d29 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 26 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.266549 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18724 + CKSUM: 0x209c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f75e2 + WIN: 60590 + HLEN: 32 + CKSUM: 0x32db (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7018,594) +Packet 27 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.269448 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 378 + CKSUM: 0x629e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f8c82 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2702 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 28 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.270759 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 379 + CKSUM: 0x629d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f922a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2cc4 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 29 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.272041 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 380 + CKSUM: 0x629c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f97d2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x4ce3 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 30 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.273310 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 381 + CKSUM: 0x629b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f9d7a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa9fc (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 31 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.456617 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18725 + CKSUM: 0x209b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f86da + WIN: 60590 + HLEN: 32 + CKSUM: 0x21e1 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7019,595) +Packet 32 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.459535 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 382 + CKSUM: 0x629a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fa322 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x47f7 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 33 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.460829 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 383 + CKSUM: 0x6299 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fa8ca + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6816 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 34 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.462154 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 384 + CKSUM: 0x6298 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fae72 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcb35 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 35 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.463437 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 385 + CKSUM: 0x6297 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fb41a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x47b1 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 36 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.496538 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18726 + CKSUM: 0x209a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f8c82 + WIN: 60590 + HLEN: 32 + CKSUM: 0x1c39 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7019,595) +Packet 37 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.499473 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 386 + CKSUM: 0x6296 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fb9c2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x456b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 38 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.500788 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 387 + CKSUM: 0x6295 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fbf6a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x42c6 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 39 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.856561 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18727 + CKSUM: 0x2099 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f9d7a + WIN: 60590 + HLEN: 32 + CKSUM: 0x0b40 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,595) +Packet 40 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.859439 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 388 + CKSUM: 0x6294 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fc512 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x62e4 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 41 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.860768 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 389 + CKSUM: 0x6293 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fcaba + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2462 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 42 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.862077 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 390 + CKSUM: 0x6292 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fd062 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xce0a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 43 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.863354 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 391 + CKSUM: 0x6291 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fd60a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xe0d9 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 44 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.896589 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18728 + CKSUM: 0x2098 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fa322 + WIN: 60590 + HLEN: 32 + CKSUM: 0x0598 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,595) +Packet 45 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.899454 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 392 + CKSUM: 0x6290 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fdbb2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3d94 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 46 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.900748 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 393 + CKSUM: 0x628f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fe15a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5db3 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 47 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.036567 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18729 + CKSUM: 0x2097 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fb41a + WIN: 60590 + HLEN: 32 + CKSUM: 0xf49e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,596) +Packet 48 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.039482 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 394 + CKSUM: 0x628e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fe702 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1f31 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 49 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.040779 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 395 + CKSUM: 0x628d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fecaa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xb2c3 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 50 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.042050 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 396 + CKSUM: 0x628c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023ff252 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x7c49 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 51 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.043387 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 397 + CKSUM: 0x628b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023ff7fa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3863 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 52 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.076598 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18730 + CKSUM: 0x2096 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fc512 + WIN: 60590 + HLEN: 32 + CKSUM: 0xe3a6 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,596) +Packet 53 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.079519 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 398 + CKSUM: 0x628a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023ffda2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5882 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 54 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.080839 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 399 + CKSUM: 0x6289 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240034a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1a00 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 55 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.082125 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 400 + CKSUM: 0x6288 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x024008f2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xf93c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 56 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.083410 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 401 + CKSUM: 0x6287 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02400e9a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xb5f8 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 57 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.436563 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18731 + CKSUM: 0x2095 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fd60a + WIN: 60590 + HLEN: 32 + CKSUM: 0xd2ac (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 58 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.439461 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 402 + CKSUM: 0x6286 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02401442 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3331 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 59 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.440760 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 403 + CKSUM: 0x6285 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x024019ea + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5350 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 60 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.442056 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 404 + CKSUM: 0x6284 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02401f92 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x14ce (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 61 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.443390 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 405 + CKSUM: 0x6283 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240253a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x94ab (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 62 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.476525 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18732 + CKSUM: 0x2094 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fe702 + WIN: 60590 + HLEN: 32 + CKSUM: 0xc1b4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 63 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.479427 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 406 + CKSUM: 0x6282 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02402ae2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6e84 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 64 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.480742 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 407 + CKSUM: 0x6281 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240308a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5a2c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 65 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.482068 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 408 + CKSUM: 0x6280 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02403632 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x4e1f (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 66 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.483351 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 409 + CKSUM: 0x627f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02403bda + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0f9d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 67 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.616573 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18733 + CKSUM: 0x2093 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023ff7fa + WIN: 60590 + HLEN: 32 + CKSUM: 0xb0bc (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 68 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.619507 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 410 + CKSUM: 0x627e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02404182 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x301b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 69 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.620805 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 411 + CKSUM: 0x627d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240472a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6953 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 70 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.622112 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 412 + CKSUM: 0x627c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02404cd2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3ee5 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 71 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.623383 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 413 + CKSUM: 0x627b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240527a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x48ee (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 72 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.656553 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18734 + CKSUM: 0x2092 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02400e9a + WIN: 60590 + HLEN: 32 + CKSUM: 0x9a1c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 73 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.659496 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 414 + CKSUM: 0x627a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02405822 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0a6c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 74 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.660802 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 415 + CKSUM: 0x6279 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02405dca + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2a8b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 75 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.662058 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 416 + CKSUM: 0x6278 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02406372 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0522 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 76 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.663354 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 417 + CKSUM: 0x6277 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240691a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x25a0 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 77 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.664667 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 418 + CKSUM: 0x6276 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02406ec2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x41bb (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 78 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.696613 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18735 + CKSUM: 0x2091 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02401442 + WIN: 60590 + HLEN: 32 + CKSUM: 0x9474 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 79 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.699529 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 419 + CKSUM: 0x6275 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240746a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x053b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 80 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.700805 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 420 + CKSUM: 0x6274 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02407a12 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x255a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 81 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.016547 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18736 + CKSUM: 0x2090 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x0240253a + WIN: 60590 + HLEN: 32 + CKSUM: 0x837a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 82 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.019473 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 421 + CKSUM: 0x6273 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02407fba + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa090 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 83 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.020761 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 422 + CKSUM: 0x6272 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02408562 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x206e (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 84 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.022031 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 423 + CKSUM: 0x6271 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02408b0a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x408d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 85 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.023317 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 424 + CKSUM: 0x6270 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x024090b2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xe5ee (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 86 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.056496 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18737 + CKSUM: 0x208f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02403bda + WIN: 60590 + HLEN: 32 + CKSUM: 0x6cda (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 87 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.059462 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 425 + CKSUM: 0x626f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240965a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2028 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 88 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.060750 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 426 + CKSUM: 0x626e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02409c02 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3c00 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 89 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.062234 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 427 + CKSUM: 0x626d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240a1aa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1b3d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 90 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.063407 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 428 + CKSUM: 0x626c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240a752 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3b5c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 91 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.064914 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 429 + CKSUM: 0x626b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240acfa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcaa7 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 92 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.096525 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18738 + CKSUM: 0x208e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02404182 + WIN: 60590 + HLEN: 32 + CKSUM: 0x6732 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 93 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.099467 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 430 + CKSUM: 0x626a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240b2a2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1af7 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 94 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.100935 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 431 + CKSUM: 0x6269 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240b84a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xd76f (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 95 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.216514 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18739 + CKSUM: 0x208d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02405822 + WIN: 60590 + HLEN: 32 + CKSUM: 0x5092 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 96 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.219490 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 432 + CKSUM: 0x6268 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240bdf2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x160c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 97 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.220719 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 433 + CKSUM: 0x6267 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240c39a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x362b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 98 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.222067 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 434 + CKSUM: 0x6266 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240c942 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xf7a8 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 99 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.223393 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 435 + CKSUM: 0x6265 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240ceea + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcd7d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 100 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.224699 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 436 + CKSUM: 0x6264 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240d492 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x72df (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:04.867537 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.145:1024 - 132.235.3.157:5001 (a2b) 77> 23< diff --git a/input/OUTPUTbench/dsack.dmp.gz.short b/input/OUTPUTbench/dsack.dmp.gz.short new file mode 100644 index 0000000..5ebc2d5 --- /dev/null +++ b/input/OUTPUTbench/dsack.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'dsack.dmp.gz' + +15710 packets seen, 15710 TCP packets traced +trace file elapsed time: 0:02:31.129120 +TCP connection info: + 1: 132.235.3.145:1024 - 132.235.3.157:5001 (a2b) 11597> 4113< (complete) diff --git a/input/OUTPUTbench/dsack.dmp.gz.xplots.cksum b/input/OUTPUTbench/dsack.dmp.gz.xplots.cksum new file mode 100644 index 0000000..d16935d --- /dev/null +++ b/input/OUTPUTbench/dsack.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +4158003597 258578 a2b_owin.xpl +2781120016 17732 a2b_rtt.xpl +2453265213 121431 a2b_ssize.xpl +1552950510 40775 a2b_tput.xpl +3294024462 155089 a2b_tsg.xpl +1789200913 180963 a_b_tline.xpl +545167068 69723 b2a_owin.xpl +803335463 139 b2a_rtt.xpl +2207219268 127 b2a_ssize.xpl +4034901542 118 b2a_tput.xpl +3042990778 167965 b2a_tsg.xpl diff --git a/input/OUTPUTbench/eth.erf.gz.long b/input/OUTPUTbench/eth.erf.gz.long new file mode 100644 index 0000000..d127d0f --- /dev/null +++ b/input/OUTPUTbench/eth.erf.gz.long @@ -0,0 +1,81 @@ +1 arg remaining, starting with 'eth.erf.gz' + +22 packets seen, 22 TCP packets traced +trace file elapsed time: 0:00:00.921455 +TCP connection info: +1 TCP connection traced: +*** 2 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 216.35.116.64:31943 + host b: 130.216.74.4:80 + complete conn: yes + first packet: Tue Jun 12 14:00:02.095017 2001 + last packet: Tue Jun 12 14:00:03.016472 2001 + elapsed time: 0:00:00.921455 + total packets: 22 + filename: eth.erf.gz + a->b: b->a: + total packets: 10 total packets: 12 + ack pkts sent: 9 ack pkts sent: 12 + pure acks sent: 7 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 198 unique bytes sent: 10909 + actual data pkts: 1 actual data pkts: 9 + actual data bytes: 198 actual data bytes: 10909 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 6 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 198 bytes max segm size: 1460 bytes + min segm size: 198 bytes min segm size: 101 bytes + avg segm size: 197 bytes avg segm size: 1211 bytes + max win adv: 65535 bytes max win adv: 6432 bytes + min win adv: 32850 bytes min win adv: 5840 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 36118 bytes avg win adv: 6382 bytes + max owin: 199 bytes max owin: 7402 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 23 bytes avg owin: 3621 bytes + wavg owin: 41 bytes wavg owin: 4447 bytes + initial window: 198 bytes initial window: 2048 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 198 bytes ttl stream length: 10909 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 198 bytes truncated data: 10909 bytes + truncated packets: 1 pkts truncated packets: 9 pkts + data xmit time: 0.000 secs data xmit time: 0.360 secs + idletime max: 199.6 ms idletime max: 378.2 ms + throughput: 215 Bps throughput: 11839 Bps + + RTT samples: 3 RTT samples: 7 + RTT min: 0.8 ms RTT min: 152.9 ms + RTT max: 11.8 ms RTT max: 228.2 ms + RTT avg: 4.4 ms RTT avg: 188.8 ms + RTT stdev: 6.3 ms RTT stdev: 28.4 ms + + RTT from 3WHS: 11.8 ms RTT from 3WHS: 152.9 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 4 + RTT full_sz min: 0.8 ms RTT full_sz min: 177.9 ms + RTT full_sz max: 0.8 ms RTT full_sz max: 228.2 ms + RTT full_sz avg: 0.8 ms RTT full_sz avg: 190.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 25.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/eth.erf.gz.packets b/input/OUTPUTbench/eth.erf.gz.packets new file mode 100644 index 0000000..3efafeb --- /dev/null +++ b/input/OUTPUTbench/eth.erf.gz.packets @@ -0,0 +1,594 @@ +1 arg remaining, starting with 'eth.erf.gz' + +Packet 1 + Packet Length: 62 (saved length 54) + Collected: Tue Jun 12 14:00:02.095017 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 48 + ID: 13439 + CKSUM: 0x3f08 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0x3c60e7c9 + ACK: 0x00000000 + WIN: 65535 + HLEN: 28 (only 20 bytes in dump file) + CKSUM: 0xc99c (too short to verify) + DLEN: 0 + OPTS: 8 bytes (none of it in dump file) +Packet 2 + Packet Length: 62 (saved length 54) + Collected: Tue Jun 12 14:00:02.106788 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 48 + ID: 0 + CKSUM: 0x2388 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -A--S- (0x12) + SEQ: 0x5707d1e8 + ACK: 0x3c60e7ca + WIN: 5840 + HLEN: 28 (only 20 bytes in dump file) + CKSUM: 0x89cc (too short to verify) + DLEN: 0 + OPTS: 8 bytes (none of it in dump file) +Packet 3 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.259645 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13440 + CKSUM: 0x3f0f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e7ca + ACK: 0x5707d1e9 + WIN: 32850 + HLEN: 20 + CKSUM: 0x4c0e (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 252 (saved length 54) + Collected: Tue Jun 12 14:00:02.264731 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 238 + ID: 13441 + CKSUM: 0x3e48 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x3c60e7ca + ACK: 0x5707d1e9 + WIN: 32850 + HLEN: 20 + CKSUM: 0x7e2c (too short to verify) + DLEN: 198 (none of it in dump file) + data: 198 bytes +Packet 5 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.265508 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 40 + ID: 0 + CKSUM: 0x2390 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -A---- (0x10) + SEQ: 0x5707d1e9 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0xb27a (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.278501 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -A---- (0x10) + SEQ: 0x5707d1e9 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x76b6 (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 7 + Packet Length: 642 (saved length 54) + Collected: Tue Jun 12 14:00:02.278624 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 628 + ID: 0 + CKSUM: 0x2144 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -AP--- (0x18) + SEQ: 0x5707d79d + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x3c0a (too short to verify) + DLEN: 588 (none of it in dump file) + data: 588 bytes +Packet 8 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.456902 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13442 + CKSUM: 0x3f0d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e890 + ACK: 0x5707d79d + WIN: 32850 + HLEN: 20 + CKSUM: 0x4594 (CORRECT) + DLEN: 0 +Packet 9 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.458562 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -A---- (0x10) + SEQ: 0x5707d9e9 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x84b9 (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 10 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.458699 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -AP--- (0x18) + SEQ: 0x5707df9d + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x3888 (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 11 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.506545 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13443 + CKSUM: 0x3f0c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e890 + ACK: 0x5707d9e9 + WIN: 32850 + HLEN: 20 + CKSUM: 0x4348 (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.508086 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -AP--- (0x18) + SEQ: 0x5707e551 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0xb0e0 (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 13 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.508223 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -A---- (0x10) + SEQ: 0x5707eb05 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x3bc3 (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 14 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.636471 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13444 + CKSUM: 0x3f0b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e890 + ACK: 0x5707df9d + WIN: 32850 + HLEN: 20 + CKSUM: 0x3d94 (CORRECT) + DLEN: 0 +Packet 15 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.638013 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -AP--- (0x18) + SEQ: 0x5707f0b9 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0xe5d1 (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 16 + Packet Length: 1514 (saved length 54) + Collected: Tue Jun 12 14:00:02.638152 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 0 + CKSUM: 0x1ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -AP--- (0x18) + SEQ: 0x5707f66d + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x94df (too short to verify) + DLEN: 1460 (none of it in dump file) + data: 1460 bytes +Packet 17 + Packet Length: 155 (saved length 54) + Collected: Tue Jun 12 14:00:02.638276 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 141 + ID: 0 + CKSUM: 0x232b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -AP--F (0x19) + SEQ: 0x5707fc21 + ACK: 0x3c60e890 + WIN: 6432 + HLEN: 20 + CKSUM: 0x94fc (too short to verify) + DLEN: 101 (none of it in dump file) + data: 101 bytes +Packet 18 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.686444 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13445 + CKSUM: 0x3f0a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e890 + ACK: 0x5707eb05 + WIN: 32850 + HLEN: 20 + CKSUM: 0x322c (CORRECT) + DLEN: 0 +Packet 19 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.736455 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13446 + CKSUM: 0x3f09 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e890 + ACK: 0x5707f0b9 + WIN: 32850 + HLEN: 20 + CKSUM: 0x2c78 (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:02.816041 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13447 + CKSUM: 0x3f08 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x3c60e890 + ACK: 0x5707fc87 + WIN: 32850 + HLEN: 20 + CKSUM: 0x20aa (CORRECT) + DLEN: 0 +Packet 21 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:03.015686 2001 + ETH Srce: 00:00:0c:46:5c:d1 + ETH Dest: 00:e0:1e:8e:31:71 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 216.35.116.64 + IP Dest: 130.216.74.4 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 238 + LEN: 40 + ID: 13448 + CKSUM: 0x3f07 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 31943 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0x3c60e890 + ACK: 0x5707fc87 + WIN: 32850 + HLEN: 20 + CKSUM: 0x20a9 (CORRECT) + DLEN: 0 +Packet 22 + Packet Length: 60 (saved length 54) + Collected: Tue Jun 12 14:00:03.016472 2001 + ETH Srce: 00:e0:1e:8e:31:71 + ETH Dest: 00:00:0c:46:5c:d1 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 130.216.74.4 + IP Dest: 216.35.116.64 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 253 + LEN: 40 + ID: 0 + CKSUM: 0x648f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 31943 + FLG: -A---- (0x10) + SEQ: 0x5707fc87 + ACK: 0x3c60e891 + WIN: 6432 + HLEN: 20 + CKSUM: 0x87db (CORRECT) + DLEN: 0 +22 packets seen, 22 TCP packets traced +trace file elapsed time: 0:00:00.921455 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 4 packets were too short to process at some point + (use -w option to show details) + 1: 216.35.116.64:31943 - 130.216.74.4:80 (a2b) 10> 12< (complete) diff --git a/input/OUTPUTbench/eth.erf.gz.short b/input/OUTPUTbench/eth.erf.gz.short new file mode 100644 index 0000000..b4714c3 --- /dev/null +++ b/input/OUTPUTbench/eth.erf.gz.short @@ -0,0 +1,8 @@ +1 arg remaining, starting with 'eth.erf.gz' + +22 packets seen, 22 TCP packets traced +trace file elapsed time: 0:00:00.921455 +TCP connection info: +*** 2 packets were too short to process at some point + (use -w option to show details) + 1: 216.35.116.64:31943 - 130.216.74.4:80 (a2b) 10> 12< (complete) diff --git a/input/OUTPUTbench/eth.erf.gz.xplots.cksum b/input/OUTPUTbench/eth.erf.gz.xplots.cksum new file mode 100644 index 0000000..88526cc --- /dev/null +++ b/input/OUTPUTbench/eth.erf.gz.xplots.cksum @@ -0,0 +1,11 @@ +3878624660 2745 a2b_owin.xpl +2012975624 279 a2b_rtt.xpl +1489107947 184 a2b_ssize.xpl +950216736 149 a2b_tput.xpl +1315793510 3538 a2b_tsg.xpl +874871782 4164 a_b_tline.xpl +1698574085 3548 b2a_owin.xpl +77227219 630 b2a_rtt.xpl +130332911 1538 b2a_ssize.xpl +2211517774 495 b2a_tput.xpl +1613524702 4003 b2a_tsg.xpl diff --git a/input/OUTPUTbench/fast_reuse.dmp.gz.long b/input/OUTPUTbench/fast_reuse.dmp.gz.long new file mode 100644 index 0000000..134fbcf --- /dev/null +++ b/input/OUTPUTbench/fast_reuse.dmp.gz.long @@ -0,0 +1,1408 @@ +1 arg remaining, starting with 'fast_reuse.dmp.gz' + +513 packets seen, 513 TCP packets traced +trace file elapsed time: 0:55:11.347437 +TCP connection info: +18 TCP connections traced: +*** 17 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 132.235.67.21:9080 + host b: 132.235.67.36:3330 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Fri Oct 9 17:47:58.936566 1998 + last packet: Fri Oct 9 17:48:00.237093 1998 + elapsed time: 0:00:01.300527 + total packets: 14 + filename: fast_reuse.dmp.gz + a->b: b->a: + total packets: 7 total packets: 7 + ack pkts sent: 7 ack pkts sent: 7 + pure acks sent: 6 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 8146 + actual data pkts: 0 actual data pkts: 6 + actual data bytes: 0 actual data bytes: 8146 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 1 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + req 1323 ws/ts: N/Y req 1323 ws/ts: N/Y + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 1448 bytes + min segm size: 0 bytes min segm size: 906 bytes + avg segm size: 0 bytes avg segm size: 1357 bytes + max win adv: 29935 bytes max win adv: 30840 bytes + min win adv: 28736 bytes min win adv: 30840 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 29230 bytes avg win adv: 30840 bytes + max owin: 1 bytes max owin: 7241 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 0 bytes avg owin: 4474 bytes + wavg owin: 0 bytes wavg owin: 6123 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 7774 bytes + truncated packets: 0 pkts truncated packets: 6 pkts + data xmit time: 0.000 secs data xmit time: 0.666 secs + idletime max: 548.1 ms idletime max: 633.1 ms + throughput: 0 Bps throughput: 6264 Bps + + RTT samples: 1 RTT samples: 4 + RTT min: 0.1 ms RTT min: 630.4 ms + RTT max: 0.1 ms RTT max: 710.5 ms + RTT avg: 0.1 ms RTT avg: 676.8 ms + RTT stdev: 0.0 ms RTT stdev: 37.3 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 0.1 ms RTT full_sz min: 663.2 ms + RTT full_sz max: 0.1 ms RTT full_sz max: 710.5 ms + RTT full_sz avg: 0.1 ms RTT full_sz avg: 692.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 25.5 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 2 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.67.36:3330 + host d: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 17:50:57.829117 1998 + last packet: Fri Oct 9 17:51:14.427575 1998 + elapsed time: 0:00:16.598458 + total packets: 70 + filename: fast_reuse.dmp.gz + c->d: d->c: + total packets: 37 total packets: 33 + ack pkts sent: 36 ack pkts sent: 33 + pure acks sent: 2 pure acks sent: 31 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 32198 unique bytes sent: 0 + actual data pkts: 34 actual data pkts: 0 + actual data bytes: 32198 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 23 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 100 bytes min segm size: 0 bytes + avg segm size: 946 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 214520 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 226484 bytes + max owin: 7241 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1581 bytes avg owin: 1 bytes + wavg owin: 1243 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 32198 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 30090 bytes truncated data: 0 bytes + truncated packets: 34 pkts truncated packets: 0 pkts + data xmit time: 15.407 secs data xmit time: 0.000 secs + idletime max: 669.9 ms idletime max: 671.1 ms + throughput: 1940 Bps throughput: 0 Bps + + RTT samples: 31 RTT samples: 2 + RTT min: 577.8 ms RTT min: 0.2 ms + RTT max: 757.9 ms RTT max: 0.2 ms + RTT avg: 616.7 ms RTT avg: 0.2 ms + RTT stdev: 42.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 577.8 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 7 RTT full_sz smpls: 1 + RTT full_sz min: 605.7 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 757.9 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 658.9 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 61.7 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 4 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 3: + host e: 132.235.67.36:3330 + host f: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 17:54:07.626531 1998 + last packet: Fri Oct 9 17:54:37.161181 1998 + elapsed time: 0:00:29.534649 + total packets: 110 + filename: fast_reuse.dmp.gz + e->f: f->e: + total packets: 57 total packets: 53 + ack pkts sent: 56 ack pkts sent: 53 + pure acks sent: 2 pure acks sent: 51 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 45516 unique bytes sent: 0 + actual data pkts: 54 actual data pkts: 0 + actual data bytes: 45516 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 43 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 100 bytes min segm size: 0 bytes + avg segm size: 842 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 201200 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 219144 bytes + max owin: 7241 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1255 bytes avg owin: 1 bytes + wavg owin: 998 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 45516 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 42168 bytes truncated data: 0 bytes + truncated packets: 54 pkts truncated packets: 0 pkts + data xmit time: 28.241 secs data xmit time: 0.000 secs + idletime max: 788.0 ms idletime max: 718.2 ms + throughput: 1541 Bps throughput: 0 Bps + + RTT samples: 51 RTT samples: 2 + RTT min: 572.5 ms RTT min: 0.2 ms + RTT max: 783.2 ms RTT max: 0.2 ms + RTT avg: 628.9 ms RTT avg: 0.2 ms + RTT stdev: 46.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 635.8 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 7 RTT full_sz smpls: 1 + RTT full_sz min: 601.6 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 783.2 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 680.4 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 80.3 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 4 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 4: + host g: 132.235.67.36:3330 + host h: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 17:57:12.894225 1998 + last packet: Fri Oct 9 17:57:48.956193 1998 + elapsed time: 0:00:36.061968 + total packets: 130 + filename: fast_reuse.dmp.gz + g->h: h->g: + total packets: 67 total packets: 63 + ack pkts sent: 66 ack pkts sent: 63 + pure acks sent: 2 pure acks sent: 61 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 51643 unique bytes sent: 0 + actual data pkts: 64 actual data pkts: 0 + actual data bytes: 51643 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 53 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 100 bytes min segm size: 0 bytes + avg segm size: 806 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 195072 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 215572 bytes + max owin: 7241 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1157 bytes avg owin: 1 bytes + wavg owin: 925 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 51643 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 47675 bytes truncated data: 0 bytes + truncated packets: 64 pkts truncated packets: 0 pkts + data xmit time: 34.826 secs data xmit time: 0.000 secs + idletime max: 726.3 ms idletime max: 711.3 ms + throughput: 1432 Bps throughput: 0 Bps + + RTT samples: 61 RTT samples: 2 + RTT min: 572.5 ms RTT min: 0.1 ms + RTT max: 758.5 ms RTT max: 0.1 ms + RTT avg: 629.8 ms RTT avg: 0.1 ms + RTT stdev: 41.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 615.4 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 7 RTT full_sz smpls: 1 + RTT full_sz min: 583.3 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 758.5 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 650.1 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 69.3 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 4 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 5: + host i: 132.235.67.36:3330 + host j: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:00:19.880790 1998 + last packet: Fri Oct 9 18:00:21.176395 1998 + elapsed time: 0:00:01.295604 + total packets: 10 + filename: fast_reuse.dmp.gz + i->j: j->i: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1193 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 1193 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1193 bytes max segm size: 0 bytes + min segm size: 1193 bytes min segm size: 0 bytes + avg segm size: 1191 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 245528 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 245826 bytes + max owin: 1194 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 597 bytes avg owin: 1 bytes + wavg owin: 598 bytes wavg owin: 0 bytes + initial window: 1193 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 1193 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 1131 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 649.9 ms idletime max: 645.7 ms + throughput: 921 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 638.4 ms RTT min: 0.2 ms + RTT max: 648.9 ms RTT max: 0.2 ms + RTT avg: 645.1 ms RTT avg: 0.2 ms + RTT stdev: 5.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 638.4 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 648.1 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 648.1 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 648.1 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 6: + host k: 132.235.67.36:3330 + host l: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:03:14.981391 1998 + last packet: Fri Oct 9 18:03:18.470111 1998 + elapsed time: 0:00:03.488719 + total packets: 19 + filename: fast_reuse.dmp.gz + k->l: l->k: + total packets: 11 total packets: 8 + ack pkts sent: 10 ack pkts sent: 8 + pure acks sent: 2 pure acks sent: 6 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 11424 unique bytes sent: 0 + actual data pkts: 8 actual data pkts: 0 + actual data bytes: 11424 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 1288 bytes min segm size: 0 bytes + avg segm size: 1427 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 235296 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 240353 bytes + max owin: 4345 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2157 bytes avg owin: 1 bytes + wavg owin: 2512 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 11424 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 10928 bytes truncated data: 0 bytes + truncated packets: 8 pkts truncated packets: 0 pkts + data xmit time: 2.147 secs data xmit time: 0.000 secs + idletime max: 784.5 ms idletime max: 715.3 ms + throughput: 3275 Bps throughput: 0 Bps + + RTT samples: 6 RTT samples: 2 + RTT min: 645.3 ms RTT min: 0.2 ms + RTT max: 780.4 ms RTT max: 0.2 ms + RTT avg: 690.5 ms RTT avg: 0.2 ms + RTT stdev: 49.3 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 671.9 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 4 RTT full_sz smpls: 1 + RTT full_sz min: 645.3 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 780.4 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 703.6 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 57.6 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 3 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 7: + host m: 132.235.67.36:3330 + host n: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:06:47.396182 1998 + last packet: Fri Oct 9 18:06:48.720007 1998 + elapsed time: 0:00:01.323825 + total packets: 10 + filename: fast_reuse.dmp.gz + m->n: n->m: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 806 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 806 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 806 bytes max segm size: 0 bytes + min segm size: 806 bytes min segm size: 0 bytes + avg segm size: 805 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 245912 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 246114 bytes + max owin: 807 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 404 bytes avg owin: 1 bytes + wavg owin: 370 bytes wavg owin: 0 bytes + initial window: 806 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 806 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 744 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 705.4 ms idletime max: 608.7 ms + throughput: 609 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 606.1 ms RTT min: 0.2 ms + RTT max: 705.2 ms RTT max: 0.2 ms + RTT avg: 639.5 ms RTT avg: 0.2 ms + RTT stdev: 56.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 705.2 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 606.1 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 606.1 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 606.1 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 8: + host o: 132.235.67.36:3330 + host p: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:10:01.235615 1998 + last packet: Fri Oct 9 18:10:03.298681 1998 + elapsed time: 0:00:02.063066 + total packets: 10 + filename: fast_reuse.dmp.gz + o->p: p->o: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1670 unique bytes sent: 0 + actual data pkts: 2 actual data pkts: 0 + actual data bytes: 1670 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 222 bytes min segm size: 0 bytes + avg segm size: 834 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 245048 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 245522 bytes + max owin: 1449 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 418 bytes avg owin: 1 bytes + wavg owin: 613 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 1670 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 1546 bytes truncated data: 0 bytes + truncated packets: 2 pkts truncated packets: 0 pkts + data xmit time: 0.773 secs data xmit time: 0.000 secs + idletime max: 773.0 ms idletime max: 655.6 ms + throughput: 809 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 630.0 ms RTT min: 0.2 ms + RTT max: 772.2 ms RTT max: 0.2 ms + RTT avg: 685.6 ms RTT avg: 0.2 ms + RTT stdev: 76.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 630.0 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 772.2 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 772.2 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 772.2 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 9: + host q: 132.235.67.36:3330 + host r: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:13:10.391421 1998 + last packet: Fri Oct 9 18:13:12.468268 1998 + elapsed time: 0:00:02.076846 + total packets: 10 + filename: fast_reuse.dmp.gz + q->r: r->q: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2521 unique bytes sent: 0 + actual data pkts: 2 actual data pkts: 0 + actual data bytes: 2521 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 1073 bytes min segm size: 0 bytes + avg segm size: 1259 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 244200 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 245098 bytes + max owin: 1449 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 631 bytes avg owin: 1 bytes + wavg owin: 891 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 2521 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 2397 bytes truncated data: 0 bytes + truncated packets: 2 pkts truncated packets: 0 pkts + data xmit time: 0.814 secs data xmit time: 0.000 secs + idletime max: 814.4 ms idletime max: 671.8 ms + throughput: 1214 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 625.1 ms RTT min: 0.2 ms + RTT max: 810.4 ms RTT max: 0.2 ms + RTT avg: 688.7 ms RTT avg: 0.2 ms + RTT stdev: 105.4 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 630.7 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 810.4 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 810.4 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 810.3 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 10: + host s: 132.235.67.36:3330 + host t: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:16:21.488711 1998 + last packet: Fri Oct 9 18:16:22.795523 1998 + elapsed time: 0:00:01.306812 + total packets: 10 + filename: fast_reuse.dmp.gz + s->t: t->s: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1380 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 1380 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1380 bytes max segm size: 0 bytes + min segm size: 1380 bytes min segm size: 0 bytes + avg segm size: 1378 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 245336 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 245682 bytes + max owin: 1381 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 691 bytes avg owin: 1 bytes + wavg owin: 686 bytes wavg owin: 0 bytes + initial window: 1380 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 1380 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 1318 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 650.2 ms idletime max: 650.6 ms + throughput: 1056 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 648.4 ms RTT min: 0.2 ms + RTT max: 649.3 ms RTT max: 0.2 ms + RTT avg: 648.9 ms RTT avg: 0.2 ms + RTT stdev: 0.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 649.3 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 648.4 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 648.4 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 648.3 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 11: + host u: 132.235.67.36:3330 + host v: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:20:07.427037 1998 + last packet: Fri Oct 9 18:20:08.820091 1998 + elapsed time: 0:00:01.393054 + total packets: 10 + filename: fast_reuse.dmp.gz + u->v: v->u: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 20 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 20 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 20 bytes max segm size: 0 bytes + min segm size: 20 bytes min segm size: 0 bytes + avg segm size: 19 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 246696 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 246702 bytes + max owin: 21 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 11 bytes avg owin: 1 bytes + wavg owin: 10 bytes wavg owin: 0 bytes + initial window: 20 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 20 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 698.7 ms idletime max: 702.0 ms + throughput: 14 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 686.7 ms RTT min: 0.2 ms + RTT max: 698.1 ms RTT max: 0.2 ms + RTT avg: 694.2 ms RTT avg: 0.2 ms + RTT stdev: 6.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 686.7 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 697.8 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 697.8 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 697.7 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 12: + host w: 132.235.67.36:3330 + host x: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:23:32.205350 1998 + last packet: Fri Oct 9 18:23:33.618927 1998 + elapsed time: 0:00:01.413577 + total packets: 10 + filename: fast_reuse.dmp.gz + w->x: x->w: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 20 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 20 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 20 bytes max segm size: 0 bytes + min segm size: 20 bytes min segm size: 0 bytes + avg segm size: 19 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 246696 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 246702 bytes + max owin: 21 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 11 bytes avg owin: 1 bytes + wavg owin: 10 bytes wavg owin: 0 bytes + initial window: 20 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 20 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 730.0 ms idletime max: 728.6 ms + throughput: 14 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 682.7 ms RTT min: 0.1 ms + RTT max: 729.0 ms RTT max: 0.2 ms + RTT avg: 713.3 ms RTT avg: 0.1 ms + RTT stdev: 26.6 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 682.7 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 728.3 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 728.3 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 728.2 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 13: + host y: 132.235.67.36:3330 + host z: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:26:53.958379 1998 + last packet: Fri Oct 9 18:26:55.272761 1998 + elapsed time: 0:00:01.314381 + total packets: 10 + filename: fast_reuse.dmp.gz + y->z: z->y: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 657 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 657 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 657 bytes max segm size: 0 bytes + min segm size: 657 bytes min segm size: 0 bytes + avg segm size: 656 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 246064 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 246228 bytes + max owin: 658 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 329 bytes avg owin: 1 bytes + wavg owin: 337 bytes wavg owin: 0 bytes + initial window: 657 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 657 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 595 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 675.5 ms idletime max: 675.5 ms + throughput: 500 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 633.5 ms RTT min: 0.2 ms + RTT max: 674.5 ms RTT max: 0.2 ms + RTT avg: 660.6 ms RTT avg: 0.2 ms + RTT stdev: 23.4 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 633.5 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 673.7 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 673.7 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 673.7 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 14: + host aa: 132.235.67.36:3330 + host ab: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:30:00.720599 1998 + last packet: Fri Oct 9 18:30:01.951556 1998 + elapsed time: 0:00:01.230957 + total packets: 10 + filename: fast_reuse.dmp.gz + aa->ab: ab->aa: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 941 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 941 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 941 bytes max segm size: 0 bytes + min segm size: 941 bytes min segm size: 0 bytes + avg segm size: 940 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 245776 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 246012 bytes + max owin: 942 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 471 bytes avg owin: 1 bytes + wavg owin: 478 bytes wavg owin: 0 bytes + initial window: 941 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 941 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 879 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 626.1 ms idletime max: 631.5 ms + throughput: 764 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 596.9 ms RTT min: 0.2 ms + RTT max: 625.0 ms RTT max: 0.3 ms + RTT avg: 615.4 ms RTT avg: 0.2 ms + RTT stdev: 16.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 596.9 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 624.3 ms RTT full_sz min: 0.3 ms + RTT full_sz max: 624.3 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 624.2 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 15: + host ac: 132.235.67.36:3330 + host ad: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:33:16.117368 1998 + last packet: Fri Oct 9 18:33:18.319094 1998 + elapsed time: 0:00:02.201725 + total packets: 10 + filename: fast_reuse.dmp.gz + ac->ad: ad->ac: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2550 unique bytes sent: 0 + actual data pkts: 2 actual data pkts: 0 + actual data bytes: 2550 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 1102 bytes min segm size: 0 bytes + avg segm size: 1274 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 244168 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 245082 bytes + max owin: 1449 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 638 bytes avg owin: 1 bytes + wavg owin: 855 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 2550 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 2426 bytes truncated data: 0 bytes + truncated packets: 2 pkts truncated packets: 0 pkts + data xmit time: 0.776 secs data xmit time: 0.000 secs + idletime max: 775.6 ms idletime max: 689.1 ms + throughput: 1158 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 687.3 ms RTT min: 0.2 ms + RTT max: 773.8 ms RTT max: 0.2 ms + RTT avg: 729.4 ms RTT avg: 0.2 ms + RTT stdev: 43.3 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 727.1 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 773.8 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 773.8 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 773.7 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 16: + host ae: 132.235.67.36:3330 + host af: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:36:32.236466 1998 + last packet: Fri Oct 9 18:36:33.660158 1998 + elapsed time: 0:00:01.423691 + total packets: 10 + filename: fast_reuse.dmp.gz + ae->af: af->ae: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 20 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 20 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 20 bytes max segm size: 0 bytes + min segm size: 20 bytes min segm size: 0 bytes + avg segm size: 19 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 246696 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 246702 bytes + max owin: 21 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 11 bytes avg owin: 1 bytes + wavg owin: 10 bytes wavg owin: 0 bytes + initial window: 20 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 20 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 714.6 ms idletime max: 722.5 ms + throughput: 14 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 698.5 ms RTT min: 0.2 ms + RTT max: 713.6 ms RTT max: 0.2 ms + RTT avg: 708.3 ms RTT avg: 0.2 ms + RTT stdev: 8.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 698.5 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 712.8 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 712.8 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 712.8 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 17: + host ag: 132.235.67.36:3330 + host ah: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:39:57.584832 1998 + last packet: Fri Oct 9 18:40:08.509360 1998 + elapsed time: 0:00:10.924528 + total packets: 50 + filename: fast_reuse.dmp.gz + ag->ah: ah->ag: + total packets: 27 total packets: 23 + ack pkts sent: 26 ack pkts sent: 23 + pure acks sent: 2 pure acks sent: 21 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 23987 unique bytes sent: 0 + actual data pkts: 24 actual data pkts: 0 + actual data bytes: 23987 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 13 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 100 bytes min segm size: 0 bytes + avg segm size: 999 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 222728 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 230769 bytes + max owin: 7241 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1874 bytes avg owin: 1 bytes + wavg owin: 1476 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 23987 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 22499 bytes truncated data: 0 bytes + truncated packets: 24 pkts truncated packets: 0 pkts + data xmit time: 9.645 secs data xmit time: 0.000 secs + idletime max: 769.3 ms idletime max: 691.4 ms + throughput: 2196 Bps throughput: 0 Bps + + RTT samples: 21 RTT samples: 2 + RTT min: 572.4 ms RTT min: 0.2 ms + RTT max: 771.0 ms RTT max: 0.3 ms + RTT avg: 642.6 ms RTT avg: 0.2 ms + RTT stdev: 63.4 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 671.1 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 7 RTT full_sz smpls: 1 + RTT full_sz min: 592.1 ms RTT full_sz min: 0.3 ms + RTT full_sz max: 771.0 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 680.2 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 84.5 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 4 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 18: + host ai: 132.235.67.36:3330 + host aj: 132.235.67.21:9080 + complete conn: yes + first packet: Fri Oct 9 18:43:09.051644 1998 + last packet: Fri Oct 9 18:43:10.284004 1998 + elapsed time: 0:00:01.232359 + total packets: 10 + filename: fast_reuse.dmp.gz + ai->aj: aj->ai: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1124 unique bytes sent: 0 + actual data pkts: 1 actual data pkts: 0 + actual data bytes: 1124 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 3 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1124 bytes max segm size: 0 bytes + min segm size: 1124 bytes min segm size: 0 bytes + avg segm size: 1122 bytes avg segm size: 0 bytes + max win adv: 246720 bytes max win adv: 246720 bytes + min win adv: 246720 bytes min win adv: 245592 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 246720 bytes avg win adv: 245874 bytes + max owin: 1125 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 563 bytes avg owin: 1 bytes + wavg owin: 544 bytes wavg owin: 0 bytes + initial window: 1124 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 1124 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 1062 bytes truncated data: 0 bytes + truncated packets: 1 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 631.9 ms idletime max: 583.3 ms + throughput: 912 Bps throughput: 0 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 595.2 ms RTT min: 0.1 ms + RTT max: 631.8 ms RTT max: 0.2 ms + RTT avg: 607.6 ms RTT avg: 0.1 ms + RTT stdev: 20.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 631.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 595.2 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 595.2 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 595.1 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/fast_reuse.dmp.gz.packets b/input/OUTPUTbench/fast_reuse.dmp.gz.packets new file mode 100644 index 0000000..83e38d2 --- /dev/null +++ b/input/OUTPUTbench/fast_reuse.dmp.gz.packets @@ -0,0 +1,2704 @@ +1 arg remaining, starting with 'fast_reuse.dmp.gz' + +Packet 1 + Packet Length: 66 + Collected: Fri Oct 9 17:47:58.936566 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49929 + CKSUM: 0xe9aa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x0801dc11 + ACK: 0x0ba855b0 + WIN: 29935 + HLEN: 32 + CKSUM: 0x76a6 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16962,17136) +Packet 2 + Packet Length: 128 + Collected: Fri Oct 9 17:47:58.938339 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 50612 + CKSUM: 0x1f58 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x0ba85b58 + ACK: 0x0801dc11 + WIN: 30840 + HLEN: 32 + CKSUM: 0x67d0 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17137,16958) + data: 1448 bytes +Packet 3 + Packet Length: 128 + Collected: Fri Oct 9 17:47:58.939562 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 50613 + CKSUM: 0x1f57 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x0ba86100 + ACK: 0x0801dc11 + WIN: 30840 + HLEN: 32 + CKSUM: 0x6228 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17137,16958) + data: 1448 bytes +Packet 4 + Packet Length: 128 + Collected: Fri Oct 9 17:47:58.940794 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 50614 + CKSUM: 0x1f56 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x0ba866a8 + ACK: 0x0801dc11 + WIN: 30840 + HLEN: 32 + CKSUM: 0x5c80 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17137,16958) + data: 1448 bytes +Packet 5 + Packet Length: 66 + Collected: Fri Oct 9 17:47:59.054636 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 49961 + CKSUM: 0xe98a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x0801dc11 + ACK: 0x0ba85b58 + WIN: 29754 + HLEN: 32 + CKSUM: 0x71b3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16962,17136) +Packet 6 + Packet Length: 128 + Collected: Fri Oct 9 17:47:59.056356 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 50646 + CKSUM: 0x1f36 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x0ba86c50 + ACK: 0x0801dc11 + WIN: 30840 + HLEN: 32 + CKSUM: 0x3310 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17138,16958) + data: 1448 bytes +Packet 7 + Packet Length: 128 + Collected: Fri Oct 9 17:47:59.057574 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 50647 + CKSUM: 0x1f35 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x0ba871f8 + ACK: 0x0801dc11 + WIN: 30840 + HLEN: 32 + CKSUM: 0xd214 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17138,16958) + data: 1448 bytes +Packet 8 + Packet Length: 66 + Collected: Fri Oct 9 17:47:59.602780 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50083 + CKSUM: 0xe910 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x0801dc11 + ACK: 0x0ba866a8 + WIN: 29392 + HLEN: 32 + CKSUM: 0x67cb (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16963,17137) +Packet 9 + Packet Length: 128 + Collected: Fri Oct 9 17:47:59.604028 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 958 + ID: 50786 + CKSUM: 0x20c8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--F (0x19) + SEQ: 0x0ba877a0 + ACK: 0x0801dc11 + WIN: 30840 + HLEN: 32 + CKSUM: 0x1015 (too short to verify) + DLEN: 906 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17139,16958) + data: 906 bytes +Packet 10 + Packet Length: 66 + Collected: Fri Oct 9 17:47:59.651335 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50092 + CKSUM: 0xe907 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x0801dc11 + ACK: 0x0ba86c50 + WIN: 29211 + HLEN: 32 + CKSUM: 0x62d8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16963,17137) +Packet 11 + Packet Length: 66 + Collected: Fri Oct 9 17:47:59.760731 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50115 + CKSUM: 0xe8f0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x0801dc11 + ACK: 0x0ba877a0 + WIN: 28849 + HLEN: 32 + CKSUM: 0x58f0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16964,17138) +Packet 12 + Packet Length: 66 + Collected: Fri Oct 9 17:48:00.234474 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50237 + CKSUM: 0xe876 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x0801dc11 + ACK: 0x0ba87b2b + WIN: 28736 + HLEN: 32 + CKSUM: 0x55d5 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16964,17139) +Packet 13 + Packet Length: 66 + Collected: Fri Oct 9 17:48:00.237032 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50239 + CKSUM: 0xe874 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---F (0x11) + SEQ: 0x0801dc11 + ACK: 0x0ba87b2b + WIN: 28736 + HLEN: 32 + CKSUM: 0x55d4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(16964,17139) +Packet 14 + Packet Length: 66 + Collected: Fri Oct 9 17:48:00.237093 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 50943 + CKSUM: 0x23b5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x0ba87b2b + ACK: 0x0801dc12 + WIN: 30840 + HLEN: 32 + CKSUM: 0x4d9b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17140,16964) +Packet 15 + Packet Length: 78 + Collected: Fri Oct 9 17:50:57.829117 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 30698 + CKSUM: 0x72be (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x3f882e0a + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0xc38a (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(3) TS(17495,0) SACKREQ +Packet 16 + Packet Length: 74 + Collected: Fri Oct 9 17:50:58.406957 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 60 + ID: 24211 + CKSUM: 0x8e19 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A--S- (0x12) + SEQ: 0x3bdb368e + ACK: 0x3f882e0b + WIN: 16384 + HLEN: 40 + CKSUM: 0x22c3 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(3) SACKREQ +Packet 17 + Packet Length: 66 + Collected: Fri Oct 9 17:50:58.407138 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 30844 + CKSUM: 0x7238 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f882e0b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xd5bb (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17496,17321) +Packet 18 + Packet Length: 128 + Collected: Fri Oct 9 17:50:58.413545 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 30846 + CKSUM: 0x6c8e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f882e0b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xd013 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17496,17321) + data: 1448 bytes +Packet 19 + Packet Length: 66 + Collected: Fri Oct 9 17:50:59.022739 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24329 + CKSUM: 0x4dab (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f882e0b + WIN: 30840 + HLEN: 32 + CKSUM: 0x1a13 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17322,0) +Packet 20 + Packet Length: 66 + Collected: Fri Oct 9 17:50:59.054892 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24335 + CKSUM: 0x4da5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f8833b3 + WIN: 30659 + HLEN: 32 + CKSUM: 0xd0c7 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17322,17496) +Packet 21 + Packet Length: 128 + Collected: Fri Oct 9 17:50:59.056651 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31004 + CKSUM: 0x6bf0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f8833b3 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xca69 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17498,17321) + data: 1448 bytes +Packet 22 + Packet Length: 128 + Collected: Fri Oct 9 17:50:59.057881 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31005 + CKSUM: 0x6bef (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f88395b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xc4c1 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17498,17321) + data: 1448 bytes +Packet 23 + Packet Length: 66 + Collected: Fri Oct 9 17:50:59.690386 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24464 + CKSUM: 0x4d24 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f883f03 + WIN: 30297 + HLEN: 32 + CKSUM: 0xc6de (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17323,17498) +Packet 24 + Packet Length: 128 + Collected: Fri Oct 9 17:50:59.692169 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31158 + CKSUM: 0x6b56 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f883f03 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xbf18 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17499,17321) + data: 1448 bytes +Packet 25 + Packet Length: 128 + Collected: Fri Oct 9 17:50:59.693397 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31159 + CKSUM: 0x6b55 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f8844ab + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x1c60 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17499,17321) + data: 1448 bytes +Packet 26 + Packet Length: 128 + Collected: Fri Oct 9 17:50:59.694630 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31160 + CKSUM: 0x6b54 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f884a53 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xa401 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17499,17321) + data: 1448 bytes +Packet 27 + Packet Length: 66 + Collected: Fri Oct 9 17:51:00.311801 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24598 + CKSUM: 0x4c9e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f884a53 + WIN: 29935 + HLEN: 32 + CKSUM: 0xbcf5 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17325,17499) +Packet 28 + Packet Length: 128 + Collected: Fri Oct 9 17:51:00.313570 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31309 + CKSUM: 0x6abf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f884ffb + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xae1f (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17500,17321) + data: 1448 bytes +Packet 29 + Packet Length: 128 + Collected: Fri Oct 9 17:51:00.314812 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31310 + CKSUM: 0x6abe (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f8855a3 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xa877 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17500,17321) + data: 1448 bytes +Packet 30 + Packet Length: 128 + Collected: Fri Oct 9 17:51:00.316034 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31311 + CKSUM: 0x6abd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f885b4b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xa2cf (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17500,17321) + data: 1448 bytes +Packet 31 + Packet Length: 66 + Collected: Fri Oct 9 17:51:00.452519 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24631 + CKSUM: 0x4c7d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f884ffb + WIN: 29754 + HLEN: 32 + CKSUM: 0xb802 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17325,17499) +Packet 32 + Packet Length: 128 + Collected: Fri Oct 9 17:51:00.457851 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31347 + CKSUM: 0x6a99 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f8860f3 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x7960 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17500,17321) + data: 1448 bytes +Packet 33 + Packet Length: 128 + Collected: Fri Oct 9 17:51:00.459088 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31348 + CKSUM: 0x6a98 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f88669b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x1865 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17500,17321) + data: 1448 bytes +Packet 34 + Packet Length: 66 + Collected: Fri Oct 9 17:51:00.920552 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24728 + CKSUM: 0x4c1c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f885b4b + WIN: 29392 + HLEN: 32 + CKSUM: 0xae1a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17326,17500) +Packet 35 + Packet Length: 66 + Collected: Fri Oct 9 17:51:01.052608 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24755 + CKSUM: 0x4c01 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f8860f3 + WIN: 29211 + HLEN: 32 + CKSUM: 0xa927 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17326,17500) +Packet 36 + Packet Length: 66 + Collected: Fri Oct 9 17:51:01.078678 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24759 + CKSUM: 0x4bfd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f886c43 + WIN: 28849 + HLEN: 32 + CKSUM: 0x9f41 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17326,17500) +Packet 37 + Packet Length: 128 + Collected: Fri Oct 9 17:51:01.079363 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 508 + ID: 31510 + CKSUM: 0x6dd6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f886c43 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xcb95 (too short to verify) + DLEN: 456 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17502,17321) + data: 456 bytes +Packet 38 + Packet Length: 66 + Collected: Fri Oct 9 17:51:01.711295 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 24895 + CKSUM: 0x4b75 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f886e0b + WIN: 28792 + HLEN: 32 + CKSUM: 0x9daf (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17327,17502) +Packet 39 + Packet Length: 128 + Collected: Fri Oct 9 17:51:01.711637 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 31666 + CKSUM: 0x6e9e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f886e0b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x9548 (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17503,17321) + data: 100 bytes +Packet 40 + Packet Length: 66 + Collected: Fri Oct 9 17:51:02.300060 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25032 + CKSUM: 0x4aec (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f886e6f + WIN: 28779 + HLEN: 32 + CKSUM: 0x9d55 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17329,17503) +Packet 41 + Packet Length: 128 + Collected: Fri Oct 9 17:51:02.301700 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 31817 + CKSUM: 0x6927 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f886e6f + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x9003 (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17504,17321) + data: 1348 bytes +Packet 42 + Packet Length: 66 + Collected: Fri Oct 9 17:51:02.891796 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25161 + CKSUM: 0x4a6b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f8873b3 + WIN: 28611 + HLEN: 32 + CKSUM: 0x98b7 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17330,17504) +Packet 43 + Packet Length: 128 + Collected: Fri Oct 9 17:51:02.892285 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 31956 + CKSUM: 0x6d7c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f8873b3 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x8f9e (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17505,17321) + data: 100 bytes +Packet 44 + Packet Length: 66 + Collected: Fri Oct 9 17:51:03.555973 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25289 + CKSUM: 0x49eb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f887417 + WIN: 28598 + HLEN: 32 + CKSUM: 0x985e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17331,17505) +Packet 45 + Packet Length: 128 + Collected: Fri Oct 9 17:51:03.557729 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 32105 + CKSUM: 0x6807 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f887417 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x8a58 (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17507,17321) + data: 1348 bytes +Packet 46 + Packet Length: 66 + Collected: Fri Oct 9 17:51:04.147582 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25416 + CKSUM: 0x496c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88795b + WIN: 28430 + HLEN: 32 + CKSUM: 0x93bf (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17332,17507) +Packet 47 + Packet Length: 128 + Collected: Fri Oct 9 17:51:04.147941 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 32253 + CKSUM: 0x6c53 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f88795b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x89f3 (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17508,17321) + data: 100 bytes +Packet 48 + Packet Length: 66 + Collected: Fri Oct 9 17:51:04.727383 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25536 + CKSUM: 0x48f4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f8879bf + WIN: 28417 + HLEN: 32 + CKSUM: 0x9366 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17333,17508) +Packet 49 + Packet Length: 128 + Collected: Fri Oct 9 17:51:04.728989 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 32401 + CKSUM: 0x66df (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f8879bf + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x84ae (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17509,17321) + data: 1348 bytes +Packet 50 + Packet Length: 66 + Collected: Fri Oct 9 17:51:05.314718 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25665 + CKSUM: 0x4873 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f887f03 + WIN: 28249 + HLEN: 32 + CKSUM: 0x8ec7 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17335,17509) +Packet 51 + Packet Length: 128 + Collected: Fri Oct 9 17:51:05.315080 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 32561 + CKSUM: 0x6b1f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f887f03 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x8449 (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17510,17321) + data: 100 bytes +Packet 52 + Packet Length: 66 + Collected: Fri Oct 9 17:51:05.945864 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25801 + CKSUM: 0x47eb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f887f67 + WIN: 28236 + HLEN: 32 + CKSUM: 0x8e6e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17336,17510) +Packet 53 + Packet Length: 128 + Collected: Fri Oct 9 17:51:05.947498 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 32711 + CKSUM: 0x65a9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f887f67 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x7f04 (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17511,17321) + data: 1348 bytes +Packet 54 + Packet Length: 66 + Collected: Fri Oct 9 17:51:06.616954 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 25935 + CKSUM: 0x4765 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f8884ab + WIN: 28068 + HLEN: 32 + CKSUM: 0x89d0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17337,17511) +Packet 55 + Packet Length: 128 + Collected: Fri Oct 9 17:51:06.617406 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 32849 + CKSUM: 0x69ff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f8884ab + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x7e9e (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17513,17321) + data: 100 bytes +Packet 56 + Packet Length: 66 + Collected: Fri Oct 9 17:51:07.202693 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26071 + CKSUM: 0x46dd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88850f + WIN: 28055 + HLEN: 32 + CKSUM: 0x8976 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17338,17513) +Packet 57 + Packet Length: 128 + Collected: Fri Oct 9 17:51:07.204409 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 32996 + CKSUM: 0x648c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f88850f + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xdc48 (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17514,17321) + data: 1348 bytes +Packet 58 + Packet Length: 66 + Collected: Fri Oct 9 17:51:07.784917 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26197 + CKSUM: 0x465f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f888a53 + WIN: 27887 + HLEN: 32 + CKSUM: 0x84d7 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17340,17514) +Packet 59 + Packet Length: 128 + Collected: Fri Oct 9 17:51:07.785362 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 33143 + CKSUM: 0x68d9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f888a53 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x7ad6 (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17515,17321) + data: 100 bytes +Packet 60 + Packet Length: 66 + Collected: Fri Oct 9 17:51:08.385623 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26330 + CKSUM: 0x45da (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f888ab7 + WIN: 27874 + HLEN: 32 + CKSUM: 0x847e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17341,17515) +Packet 61 + Packet Length: 128 + Collected: Fri Oct 9 17:51:08.387340 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 33304 + CKSUM: 0x6358 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f888ab7 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x6206 (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17516,17321) + data: 1348 bytes +Packet 62 + Packet Length: 66 + Collected: Fri Oct 9 17:51:09.005632 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26466 + CKSUM: 0x4552 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f888ffb + WIN: 27706 + HLEN: 32 + CKSUM: 0x7fe0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17342,17516) +Packet 63 + Packet Length: 128 + Collected: Fri Oct 9 17:51:09.006124 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 33459 + CKSUM: 0x679d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f888ffb + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x7349 (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17518,17321) + data: 100 bytes +Packet 64 + Packet Length: 66 + Collected: Fri Oct 9 17:51:09.606419 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26606 + CKSUM: 0x44c6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88905f + WIN: 27693 + HLEN: 32 + CKSUM: 0x7f86 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17343,17518) +Packet 65 + Packet Length: 128 + Collected: Fri Oct 9 17:51:09.608137 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 33618 + CKSUM: 0x621e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f88905f + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x6e04 (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17519,17321) + data: 1348 bytes +Packet 66 + Packet Length: 66 + Collected: Fri Oct 9 17:51:10.212761 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26742 + CKSUM: 0x443e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f8895a3 + WIN: 27525 + HLEN: 32 + CKSUM: 0x7ae8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17344,17519) +Packet 67 + Packet Length: 128 + Collected: Fri Oct 9 17:51:10.213115 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 33777 + CKSUM: 0x665f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f8895a3 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x6d9f (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17520,17321) + data: 100 bytes +Packet 68 + Packet Length: 66 + Collected: Fri Oct 9 17:51:10.829063 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 26885 + CKSUM: 0x43af (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f889607 + WIN: 27512 + HLEN: 32 + CKSUM: 0x7a8e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17346,17520) +Packet 69 + Packet Length: 128 + Collected: Fri Oct 9 17:51:10.830782 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 33924 + CKSUM: 0x60ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f889607 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x685a (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17521,17321) + data: 1348 bytes +Packet 70 + Packet Length: 66 + Collected: Fri Oct 9 17:51:11.417361 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27018 + CKSUM: 0x432a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f889b4b + WIN: 27344 + HLEN: 32 + CKSUM: 0x75f0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17347,17521) +Packet 71 + Packet Length: 128 + Collected: Fri Oct 9 17:51:11.417785 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 34084 + CKSUM: 0x652c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f889b4b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x67f5 (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17522,17321) + data: 100 bytes +Packet 72 + Packet Length: 66 + Collected: Fri Oct 9 17:51:12.019001 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27162 + CKSUM: 0x429a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f889baf + WIN: 27331 + HLEN: 32 + CKSUM: 0x7597 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17348,17522) +Packet 73 + Packet Length: 128 + Collected: Fri Oct 9 17:51:12.020675 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 34231 + CKSUM: 0x5fb9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f889baf + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x62af (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17524,17321) + data: 1348 bytes +Packet 74 + Packet Length: 66 + Collected: Fri Oct 9 17:51:12.613141 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27294 + CKSUM: 0x4216 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88a0f3 + WIN: 27163 + HLEN: 32 + CKSUM: 0x70f8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17349,17524) +Packet 75 + Packet Length: 128 + Collected: Fri Oct 9 17:51:12.613497 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 34362 + CKSUM: 0x6416 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f88a0f3 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x624a (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17525,17321) + data: 100 bytes +Packet 76 + Packet Length: 66 + Collected: Fri Oct 9 17:51:13.196758 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27402 + CKSUM: 0x41aa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88a157 + WIN: 27150 + HLEN: 32 + CKSUM: 0x709f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17350,17525) +Packet 77 + Packet Length: 128 + Collected: Fri Oct 9 17:51:13.198705 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1400 + ID: 34499 + CKSUM: 0x5ead (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f88a157 + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x393e (too short to verify) + DLEN: 1348 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17526,17321) + data: 1348 bytes +Packet 78 + Packet Length: 66 + Collected: Fri Oct 9 17:51:13.819071 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27526 + CKSUM: 0x412e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88a69b + WIN: 26982 + HLEN: 32 + CKSUM: 0x6c00 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17352,17526) +Packet 79 + Packet Length: 128 + Collected: Fri Oct 9 17:51:13.819420 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 152 + ID: 34641 + CKSUM: 0x62ff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--- (0x18) + SEQ: 0x3f88a69b + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0x94de (too short to verify) + DLEN: 100 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17527,17321) + data: 100 bytes +Packet 80 + Packet Length: 128 + Collected: Fri Oct 9 17:51:13.820909 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1286 + ID: 34642 + CKSUM: 0x5e90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -AP--F (0x19) + SEQ: 0x3f88a6ff + ACK: 0x3bdb368f + WIN: 30840 + HLEN: 32 + CKSUM: 0xa9e7 (too short to verify) + DLEN: 1234 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17527,17321) + data: 1234 bytes +Packet 81 + Packet Length: 66 + Collected: Fri Oct 9 17:51:14.423410 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27645 + CKSUM: 0x40b7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88a6ff + WIN: 26969 + HLEN: 32 + CKSUM: 0x6ba7 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17353,17527) +Packet 82 + Packet Length: 66 + Collected: Fri Oct 9 17:51:14.426390 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27646 + CKSUM: 0x40b6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x3bdb368f + ACK: 0x3f88abd2 + WIN: 26815 + HLEN: 32 + CKSUM: 0x676e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17353,17527) +Packet 83 + Packet Length: 66 + Collected: Fri Oct 9 17:51:14.427388 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27647 + CKSUM: 0x40b5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---F (0x11) + SEQ: 0x3bdb368f + ACK: 0x3f88abd2 + WIN: 26815 + HLEN: 32 + CKSUM: 0x676d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17353,17527) +Packet 84 + Packet Length: 66 + Collected: Fri Oct 9 17:51:14.427575 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 34793 + CKSUM: 0x62cb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x3f88abd2 + ACK: 0x3bdb3690 + WIN: 30840 + HLEN: 32 + CKSUM: 0x57b3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17528,17353) +Packet 85 + Packet Length: 78 + Collected: Fri Oct 9 17:54:07.626531 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 12742 + CKSUM: 0xb8e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x73aa1862 + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0xa394 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(3) TS(17875,0) SACKREQ +Packet 86 + Packet Length: 74 + Collected: Fri Oct 9 17:54:08.262333 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 60 + ID: 168 + CKSUM: 0xec04 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A--S- (0x12) + SEQ: 0x70013252 + ACK: 0x73aa1863 + WIN: 16384 + HLEN: 40 + CKSUM: 0xd2e2 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(3) SACKREQ +Packet 87 + Packet Length: 66 + Collected: Fri Oct 9 17:54:08.262537 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 12902 + CKSUM: 0xb84e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa1863 + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x845f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17876,17701) +Packet 88 + Packet Length: 128 + Collected: Fri Oct 9 17:54:08.270913 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 12904 + CKSUM: 0xb2a4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa1863 + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x7eb7 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17876,17701) + data: 1448 bytes +Packet 89 + Packet Length: 66 + Collected: Fri Oct 9 17:54:08.910117 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 306 + CKSUM: 0xab82 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x70013253 + ACK: 0x73aa1863 + WIN: 30840 + HLEN: 32 + CKSUM: 0xca32 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17702,0) +Packet 90 + Packet Length: 66 + Collected: Fri Oct 9 17:54:09.054109 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 337 + CKSUM: 0xab63 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x70013253 + ACK: 0x73aa1e0b + WIN: 30659 + HLEN: 32 + CKSUM: 0x7f6b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17702,17876) +Packet 91 + Packet Length: 128 + Collected: Fri Oct 9 17:54:09.058868 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13095 + CKSUM: 0xb1e5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa1e0b + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x790d (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17878,17701) + data: 1448 bytes +Packet 92 + Packet Length: 128 + Collected: Fri Oct 9 17:54:09.060099 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13096 + CKSUM: 0xb1e4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa23b3 + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x7365 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17878,17701) + data: 1448 bytes +Packet 93 + Packet Length: 66 + Collected: Fri Oct 9 17:54:09.674284 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 480 + CKSUM: 0xaad4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x70013253 + ACK: 0x73aa295b + WIN: 30297 + HLEN: 32 + CKSUM: 0x7582 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17703,17878) +Packet 94 + Packet Length: 128 + Collected: Fri Oct 9 17:54:09.676536 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13250 + CKSUM: 0xb14a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa295b + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x6dbc (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17879,17701) + data: 1448 bytes +Packet 95 + Packet Length: 128 + Collected: Fri Oct 9 17:54:09.677767 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13251 + CKSUM: 0xb149 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa2f03 + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0xcb03 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17879,17701) + data: 1448 bytes +Packet 96 + Packet Length: 128 + Collected: Fri Oct 9 17:54:09.679003 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13252 + CKSUM: 0xb148 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa34ab + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x52a5 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17879,17701) + data: 1448 bytes +Packet 97 + Packet Length: 66 + Collected: Fri Oct 9 17:54:10.307424 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.21 + IP Dest: 132.235.67.36 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 614 + CKSUM: 0xaa4e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 9080 + DPRT: 3330 + FLG: -A---- (0x10) + SEQ: 0x70013253 + ACK: 0x73aa34ab + WIN: 29935 + HLEN: 32 + CKSUM: 0x6b99 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(17705,17879) +Packet 98 + Packet Length: 128 + Collected: Fri Oct 9 17:54:10.309259 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13403 + CKSUM: 0xb0b1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa3a53 + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x5cc3 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17880,17701) + data: 1448 bytes +Packet 99 + Packet Length: 128 + Collected: Fri Oct 9 17:54:10.310492 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13404 + CKSUM: 0xb0b0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa3ffb + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x571b (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17880,17701) + data: 1448 bytes +Packet 100 + Packet Length: 128 + Collected: Fri Oct 9 17:54:10.311725 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.36 + IP Dest: 132.235.67.21 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 13405 + CKSUM: 0xb0af (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3330 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x73aa45a3 + ACK: 0x70013253 + WIN: 30840 + HLEN: 32 + CKSUM: 0x5173 (too short to verify) + DLEN: 1448 (only 62 bytes in dump file) + OPTS: 12 bytes TS(17880,17701) + data: 1448 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:06:11.375158 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 4 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.67.21:9080 - 132.235.67.36:3330 (a2b) 7> 7< + 2: 132.235.67.36:3330 - 132.235.67.21:9080 (c2d) 37> 33< (complete) + 3: 132.235.67.36:3330 - 132.235.67.21:9080 (e2f) 11> 5< diff --git a/input/OUTPUTbench/fast_reuse.dmp.gz.short b/input/OUTPUTbench/fast_reuse.dmp.gz.short new file mode 100644 index 0000000..d732815 --- /dev/null +++ b/input/OUTPUTbench/fast_reuse.dmp.gz.short @@ -0,0 +1,25 @@ +1 arg remaining, starting with 'fast_reuse.dmp.gz' + +513 packets seen, 513 TCP packets traced +trace file elapsed time: 0:55:11.347437 +TCP connection info: +*** 17 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.67.21:9080 - 132.235.67.36:3330 (a2b) 7> 7< + 2: 132.235.67.36:3330 - 132.235.67.21:9080 (c2d) 37> 33< (complete) + 3: 132.235.67.36:3330 - 132.235.67.21:9080 (e2f) 57> 53< (complete) + 4: 132.235.67.36:3330 - 132.235.67.21:9080 (g2h) 67> 63< (complete) + 5: 132.235.67.36:3330 - 132.235.67.21:9080 (i2j) 5> 5< (complete) + 6: 132.235.67.36:3330 - 132.235.67.21:9080 (k2l) 11> 8< (complete) + 7: 132.235.67.36:3330 - 132.235.67.21:9080 (m2n) 5> 5< (complete) + 8: 132.235.67.36:3330 - 132.235.67.21:9080 (o2p) 5> 5< (complete) + 9: 132.235.67.36:3330 - 132.235.67.21:9080 (q2r) 5> 5< (complete) + 10: 132.235.67.36:3330 - 132.235.67.21:9080 (s2t) 5> 5< (complete) + 11: 132.235.67.36:3330 - 132.235.67.21:9080 (u2v) 5> 5< (complete) + 12: 132.235.67.36:3330 - 132.235.67.21:9080 (w2x) 5> 5< (complete) + 13: 132.235.67.36:3330 - 132.235.67.21:9080 (y2z) 5> 5< (complete) + 14: 132.235.67.36:3330 - 132.235.67.21:9080 (aa2ab) 5> 5< (complete) + 15: 132.235.67.36:3330 - 132.235.67.21:9080 (ac2ad) 5> 5< (complete) + 16: 132.235.67.36:3330 - 132.235.67.21:9080 (ae2af) 5> 5< (complete) + 17: 132.235.67.36:3330 - 132.235.67.21:9080 (ag2ah) 27> 23< (complete) + 18: 132.235.67.36:3330 - 132.235.67.21:9080 (ai2aj) 5> 5< (complete) diff --git a/input/OUTPUTbench/fast_reuse.dmp.gz.xplots.cksum b/input/OUTPUTbench/fast_reuse.dmp.gz.xplots.cksum new file mode 100644 index 0000000..70321ca --- /dev/null +++ b/input/OUTPUTbench/fast_reuse.dmp.gz.xplots.cksum @@ -0,0 +1,198 @@ +3338927863 2030 a2b_owin.xpl +4045996178 139 a2b_rtt.xpl +2705825967 127 a2b_ssize.xpl +3834630507 118 a2b_tput.xpl +3013315178 1975 a2b_tsg.xpl +2617257901 2647 a_b_tline.xpl +216821764 1264 aa2ab_owin.xpl +3268624827 328 aa2ab_rtt.xpl +771515582 186 aa2ab_ssize.xpl +1956419108 151 aa2ab_tput.xpl +3883063501 1766 aa2ab_tsg.xpl +3378343017 2139 aa_ab_tline.xpl +3216744761 1194 ab2aa_owin.xpl +3749946918 209 ab2aa_rtt.xpl +2705825967 127 ab2aa_ssize.xpl +3834630507 118 ab2aa_tput.xpl +1122818229 1414 ab2aa_tsg.xpl +4201896897 1279 ac2ad_owin.xpl +587578791 328 ac2ad_rtt.xpl +1358921266 432 ac2ad_ssize.xpl +390550314 184 ac2ad_tput.xpl +4194496128 1707 ac2ad_tsg.xpl +2521582296 2100 ac_ad_tline.xpl +3810511743 1194 ad2ac_owin.xpl +1078458683 209 ad2ac_rtt.xpl +2705825967 127 ad2ac_ssize.xpl +3834630507 118 ad2ac_tput.xpl +3446221988 1377 ad2ac_tsg.xpl +3931794916 1243 ae2af_owin.xpl +3322151783 328 ae2af_rtt.xpl +1492114883 184 ae2af_ssize.xpl +3616448290 149 ae2af_tput.xpl +2630411509 1766 ae2af_tsg.xpl +1577737642 2138 ae_af_tline.xpl +2902123420 1194 af2ae_owin.xpl +2922886597 209 af2ae_rtt.xpl +2705825967 127 af2ae_ssize.xpl +3834630507 118 af2ae_tput.xpl +1319490486 1414 af2ae_tsg.xpl +1083534889 8472 ag2ah_owin.xpl +1654798473 1696 ag2ah_rtt.xpl +1344317621 3905 ag2ah_ssize.xpl +134281579 1229 ag2ah_tput.xpl +1428815892 9719 ag2ah_tsg.xpl +2304264514 10149 ag_ah_tline.xpl +953601342 6612 ah2ag_owin.xpl +1033250922 209 ah2ag_rtt.xpl +2705825967 127 ah2ag_ssize.xpl +3834630507 118 ah2ag_tput.xpl +588522321 7248 ah2ag_tsg.xpl +1061635314 1270 ai2aj_owin.xpl +862861842 328 ai2aj_rtt.xpl +3829827941 188 ai2aj_ssize.xpl +1939630601 151 ai2aj_tput.xpl +2026053386 1766 ai2aj_tsg.xpl +586679843 2140 ai_aj_tline.xpl +2281962900 1194 aj2ai_owin.xpl +2160386114 209 aj2ai_rtt.xpl +2705825967 127 aj2ai_ssize.xpl +3834630507 118 aj2ai_tput.xpl +1072248728 1414 aj2ai_tsg.xpl +3421630036 2283 b2a_owin.xpl +791633785 404 b2a_rtt.xpl +844300058 1066 b2a_ssize.xpl +449928085 293 b2a_tput.xpl +1042722992 2537 b2a_tsg.xpl +2219902864 11740 c2d_owin.xpl +3353378093 2456 c2d_rtt.xpl +220632118 5461 c2d_ssize.xpl +1634332687 1714 c2d_tput.xpl +3730637717 14136 c2d_tsg.xpl +1055670422 14048 c_d_tline.xpl +359979618 9622 d2c_owin.xpl +114345197 209 d2c_rtt.xpl +2705825967 127 d2c_ssize.xpl +3834630507 118 d2c_tput.xpl +1047276888 10038 d2c_tsg.xpl +1251239967 18253 e2f_owin.xpl +2607923349 3976 e2f_rtt.xpl +3267781030 8548 e2f_ssize.xpl +3925799988 2840 e2f_tput.xpl +2087890345 22916 e2f_tsg.xpl +2850838205 22494 e_f_tline.xpl +3269936567 15642 f2e_owin.xpl +394020405 209 f2e_rtt.xpl +2705825967 127 f2e_ssize.xpl +3834630507 118 f2e_tput.xpl +1255529407 15618 f2e_tsg.xpl +1548346806 21485 g2h_owin.xpl +894355483 4736 g2h_rtt.xpl +2343395699 10088 g2h_ssize.xpl +3441206317 3322 g2h_tput.xpl +3808926799 27279 g2h_tsg.xpl +2734574231 26607 g_h_tline.xpl +1076363911 18652 h2g_owin.xpl +773900560 209 h2g_rtt.xpl +2705825967 127 h2g_ssize.xpl +3834630507 118 h2g_tput.xpl +4172478447 18408 h2g_tsg.xpl +599979975 1270 i2j_owin.xpl +3671936085 328 i2j_rtt.xpl +4104517854 188 i2j_ssize.xpl +4046426878 151 i2j_tput.xpl +303565485 1766 i2j_tsg.xpl +3805035391 2140 i_j_tline.xpl +1991971301 1194 j2i_owin.xpl +1422122461 209 j2i_rtt.xpl +2705825967 127 j2i_ssize.xpl +3834630507 118 j2i_tput.xpl +1781171862 1414 j2i_tsg.xpl +3711706608 3248 k2l_owin.xpl +2131467533 556 k2l_rtt.xpl +604079754 1386 k2l_ssize.xpl +1009677228 394 k2l_tput.xpl +707938963 3174 k2l_tsg.xpl +1512705117 3846 k_l_tline.xpl +3936928276 2097 l2k_owin.xpl +1800552764 209 l2k_rtt.xpl +2705825967 127 l2k_ssize.xpl +3834630507 118 l2k_tput.xpl +291698721 2781 l2k_tsg.xpl +332524012 1264 m2n_owin.xpl +2406438790 328 m2n_rtt.xpl +1424378757 186 m2n_ssize.xpl +2246872250 151 m2n_tput.xpl +1345546631 1766 m2n_tsg.xpl +40202371 2125 m_n_tline.xpl +3122654341 1194 n2m_owin.xpl +1980467606 209 n2m_rtt.xpl +2705825967 127 n2m_ssize.xpl +3834630507 118 n2m_tput.xpl +772171520 1414 n2m_tsg.xpl +2179745203 1276 o2p_owin.xpl +312653840 328 o2p_rtt.xpl +3587119661 427 o2p_ssize.xpl +822412787 183 o2p_tput.xpl +2280713235 1755 o2p_tsg.xpl +1508314566 2142 o_p_tline.xpl +3896523841 1194 p2o_owin.xpl +2117702902 209 p2o_rtt.xpl +2705825967 127 p2o_ssize.xpl +3834630507 118 p2o_tput.xpl +1508895061 1414 p2o_tsg.xpl +3839195488 1279 q2r_owin.xpl +3102766902 328 q2r_rtt.xpl +2946644479 432 q2r_ssize.xpl +2440983158 184 q2r_tput.xpl +618315623 1755 q2r_tsg.xpl +1414842975 2143 q_r_tline.xpl +2988689080 1194 r2q_owin.xpl +3189474984 209 r2q_rtt.xpl +2705825967 127 r2q_ssize.xpl +3834630507 118 r2q_tput.xpl +3884821977 1414 r2q_tsg.xpl +3518414698 1270 s2t_owin.xpl +2713807730 328 s2t_rtt.xpl +3692629831 188 s2t_ssize.xpl +3469224684 151 s2t_tput.xpl +1626815985 1766 s2t_tsg.xpl +1030987158 2140 s_t_tline.xpl +1995165773 1194 t2s_owin.xpl +4158012073 209 t2s_rtt.xpl +2705825967 127 t2s_ssize.xpl +3834630507 118 t2s_tput.xpl +3582183206 1414 t2s_tsg.xpl +1517303779 1243 u2v_owin.xpl +3172887335 328 u2v_rtt.xpl +2176769554 184 u2v_ssize.xpl +3061267664 149 u2v_tput.xpl +1098274892 1718 u2v_tsg.xpl +3358630446 2109 u_v_tline.xpl +4065389347 1194 v2u_owin.xpl +778112391 209 v2u_rtt.xpl +2705825967 127 v2u_ssize.xpl +3834630507 118 v2u_tput.xpl +3845323475 1377 v2u_tsg.xpl +3189618150 1243 w2x_owin.xpl +2292199577 328 w2x_rtt.xpl +3901075878 184 w2x_ssize.xpl +4040421946 149 w2x_tput.xpl +3503870724 1766 w2x_tsg.xpl +3963540021 2138 w_x_tline.xpl +2041151638 1194 x2w_owin.xpl +831810644 209 x2w_rtt.xpl +2705825967 127 x2w_ssize.xpl +3834630507 118 x2w_tput.xpl +2370690946 1414 x2w_tsg.xpl +4096701009 1264 y2z_owin.xpl +4200803631 328 y2z_rtt.xpl +556362710 186 y2z_ssize.xpl +1480752583 151 y2z_tput.xpl +2702354479 1766 y2z_tsg.xpl +3914438972 2139 y_z_tline.xpl +586021943 1194 z2y_owin.xpl +2731882893 209 z2y_rtt.xpl +2705825967 127 z2y_ssize.xpl +3834630507 118 z2y_tput.xpl +1822253344 1414 z2y_tsg.xpl diff --git a/input/OUTPUTbench/finger.netm.gz.long b/input/OUTPUTbench/finger.netm.gz.long new file mode 100644 index 0000000..fd86bd5 --- /dev/null +++ b/input/OUTPUTbench/finger.netm.gz.long @@ -0,0 +1,79 @@ +1 arg remaining, starting with 'finger.netm.gz' + +9 packets seen, 9 TCP packets traced +trace file elapsed time: 0:00:00.318940 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.1.184:40491 + host b: 132.235.3.130:79 + complete conn: yes + first packet: Fri Dec 3 17:47:05.621339 1993 + last packet: Fri Dec 3 17:47:05.940279 1993 + elapsed time: 0:00:00.318940 + total packets: 9 + filename: finger.netm.gz + a->b: b->a: + total packets: 4 total packets: 5 + ack pkts sent: 3 ack pkts sent: 5 + pure acks sent: 1 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 117 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 2 actual data bytes: 117 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 2 bytes max segm size: 117 bytes + min segm size: 2 bytes min segm size: 117 bytes + avg segm size: 1 bytes avg segm size: 116 bytes + max win adv: 8760 bytes max win adv: 16384 bytes + min win adv: 8760 bytes min win adv: 16384 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 16384 bytes + max owin: 3 bytes max owin: 118 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 59 bytes + wavg owin: 0 bytes wavg owin: 3 bytes + initial window: 2 bytes initial window: 117 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 2 bytes ttl stream length: 117 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 298.8 ms idletime max: 162.9 ms + throughput: 6 Bps throughput: 367 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 1.4 ms RTT min: 0.4 ms + RTT max: 134.6 ms RTT max: 4.6 ms + RTT avg: 46.2 ms RTT avg: 2.5 ms + RTT stdev: 76.6 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 2.5 ms RTT from 3WHS: 4.6 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 134.6 ms RTT full_sz min: 0.4 ms + RTT full_sz max: 134.6 ms RTT full_sz max: 0.4 ms + RTT full_sz avg: 134.6 ms RTT full_sz avg: 0.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/finger.netm.gz.packets b/input/OUTPUTbench/finger.netm.gz.packets new file mode 100644 index 0000000..40db537 --- /dev/null +++ b/input/OUTPUTbench/finger.netm.gz.packets @@ -0,0 +1,241 @@ +1 arg remaining, starting with 'finger.netm.gz' + +Packet 1 + Packet Length: 58 + Collected: Fri Dec 3 17:47:05.621339 1993 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 971 + CKSUM: 0x68f0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 40491 + DPRT: 79 + FLG: ----S- (0x02) + SEQ: 0xd423204a + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0xd3f5 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 60 + Collected: Fri Dec 3 17:47:05.623805 1993 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 39731 + CKSUM: 0xd488 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 40491 + FLG: -A--S- (0x12) + SEQ: 0x36572200 + ACK: 0xd423204b + WIN: 16384 + HLEN: 24 + CKSUM: 0x5dc5 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 56 + Collected: Fri Dec 3 17:47:05.628388 1993 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 42 + ID: 972 + CKSUM: 0x68f1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 40491 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0xd423204b + ACK: 0x36572201 + WIN: 8760 + HLEN: 20 + CKSUM: 0x8636 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 4 + Packet Length: 60 + Collected: Fri Dec 3 17:47:05.763022 1993 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39732 + CKSUM: 0xd48b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 40491 + FLG: -A---- (0x10) + SEQ: 0x36572201 + ACK: 0xd423204d + WIN: 16384 + HLEN: 20 + CKSUM: 0x7580 (CORRECT) + DLEN: 0 +Packet 5 + Packet Length: 171 + Collected: Fri Dec 3 17:47:05.925908 1993 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 157 + ID: 39733 + CKSUM: 0xd415 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 40491 + FLG: -AP--- (0x18) + SEQ: 0x36572201 + ACK: 0xd423204d + WIN: 16384 + HLEN: 20 + CKSUM: 0xed1c (CORRECT) + DLEN: 117 + data: 117 bytes +Packet 6 + Packet Length: 60 + Collected: Fri Dec 3 17:47:05.926791 1993 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39734 + CKSUM: 0xd489 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 40491 + FLG: -A---F (0x11) + SEQ: 0x36572276 + ACK: 0xd423204d + WIN: 16384 + HLEN: 20 + CKSUM: 0x750a (CORRECT) + DLEN: 0 +Packet 7 + Packet Length: 54 + Collected: Fri Dec 3 17:47:05.927234 1993 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 973 + CKSUM: 0x68f2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 40491 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0xd423204d + ACK: 0x36572277 + WIN: 8760 + HLEN: 20 + CKSUM: 0x92d2 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 54 + Collected: Fri Dec 3 17:47:05.938877 1993 + ETH Srce: 08:00:20:1b:42:d0 + ETH Dest: 08:00:2b:15:c3:b7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.184 + IP Dest: 132.235.3.130 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 974 + CKSUM: 0x68f1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 40491 + DPRT: 79 + FLG: -A---F (0x11) + SEQ: 0xd423204d + ACK: 0x36572277 + WIN: 8760 + HLEN: 20 + CKSUM: 0x92d1 (CORRECT) + DLEN: 0 +Packet 9 + Packet Length: 60 + Collected: Fri Dec 3 17:47:05.940279 1993 + ETH Srce: 08:00:2b:15:c3:b7 + ETH Dest: 08:00:20:1b:42:d0 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.130 + IP Dest: 132.235.1.184 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39735 + CKSUM: 0xd488 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 40491 + FLG: -A---- (0x10) + SEQ: 0x36572277 + ACK: 0xd423204e + WIN: 16384 + HLEN: 20 + CKSUM: 0x7509 (CORRECT) + DLEN: 0 +9 packets seen, 9 TCP packets traced +trace file elapsed time: 0:00:00.318940 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.1.184:40491 - 132.235.3.130:79 (a2b) 4> 5< (complete) diff --git a/input/OUTPUTbench/finger.netm.gz.short b/input/OUTPUTbench/finger.netm.gz.short new file mode 100644 index 0000000..29e55dd --- /dev/null +++ b/input/OUTPUTbench/finger.netm.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'finger.netm.gz' + +9 packets seen, 9 TCP packets traced +trace file elapsed time: 0:00:00.318940 +TCP connection info: + 1: 132.235.1.184:40491 - 132.235.3.130:79 (a2b) 4> 5< (complete) diff --git a/input/OUTPUTbench/finger.netm.gz.xplots.cksum b/input/OUTPUTbench/finger.netm.gz.xplots.cksum new file mode 100644 index 0000000..b0e6067 --- /dev/null +++ b/input/OUTPUTbench/finger.netm.gz.xplots.cksum @@ -0,0 +1,11 @@ +1243742994 884 a2b_owin.xpl +3344421374 318 a2b_rtt.xpl +2539040228 181 a2b_ssize.xpl +3525425662 149 a2b_tput.xpl +3403315447 1662 a2b_tsg.xpl +220347899 1800 a_b_tline.xpl +2631995290 1234 b2a_owin.xpl +3545839837 208 b2a_rtt.xpl +3478687160 185 b2a_ssize.xpl +181086036 149 b2a_tput.xpl +4169640599 1282 b2a_tsg.xpl diff --git a/input/OUTPUTbench/finger.snoop.gz.long b/input/OUTPUTbench/finger.snoop.gz.long new file mode 100644 index 0000000..3aa9c3f --- /dev/null +++ b/input/OUTPUTbench/finger.snoop.gz.long @@ -0,0 +1,79 @@ +1 arg remaining, starting with 'finger.snoop.gz' + +13 packets seen, 13 TCP packets traced +trace file elapsed time: 0:00:10.438257 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.3.133:1084 + host b: 132.235.1.2:79 + complete conn: yes + first packet: Wed Jul 20 16:40:30.688114 1994 + last packet: Wed Jul 20 16:40:41.126372 1994 + elapsed time: 0:00:10.438257 + total packets: 13 + filename: finger.snoop.gz + a->b: b->a: + total packets: 7 total packets: 6 + ack pkts sent: 6 ack pkts sent: 6 + pure acks sent: 3 pure acks sent: 3 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 11 unique bytes sent: 1152 + actual data pkts: 2 actual data pkts: 1 + actual data bytes: 11 actual data bytes: 1152 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 9 bytes max segm size: 1152 bytes + min segm size: 2 bytes min segm size: 1152 bytes + avg segm size: 5 bytes avg segm size: 1150 bytes + max win adv: 4096 bytes max win adv: 4096 bytes + min win adv: 4096 bytes min win adv: 4085 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 4096 bytes avg win adv: 4092 bytes + max owin: 10 bytes max owin: 1153 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2 bytes avg owin: 231 bytes + wavg owin: 2 bytes wavg owin: 4 bytes + initial window: 9 bytes initial window: 1152 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 11 bytes ttl stream length: 1152 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.047 secs data xmit time: 0.000 secs + idletime max: 10344.1 ms idletime max: 10125.8 ms + throughput: 1 Bps throughput: 110 Bps + + RTT samples: 4 RTT samples: 3 + RTT min: 1.0 ms RTT min: 0.7 ms + RTT max: 199.0 ms RTT max: 19.4 ms + RTT avg: 62.0 ms RTT avg: 7.0 ms + RTT stdev: 93.7 ms RTT stdev: 10.7 ms + + RTT from 3WHS: 1.9 ms RTT from 3WHS: 0.8 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 45.9 ms RTT full_sz min: 19.4 ms + RTT full_sz max: 45.9 ms RTT full_sz max: 19.4 ms + RTT full_sz avg: 45.9 ms RTT full_sz avg: 19.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/finger.snoop.gz.packets b/input/OUTPUTbench/finger.snoop.gz.packets new file mode 100644 index 0000000..74d31bd --- /dev/null +++ b/input/OUTPUTbench/finger.snoop.gz.packets @@ -0,0 +1,338 @@ +1 arg remaining, starting with 'finger.snoop.gz' + +Packet 1 + Packet Length: 60 + Collected: Wed Jul 20 16:40:30.688114 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 62891 + CKSUM: 0x7ac3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: ----S- (0x02) + SEQ: 0x1846d800 + ACK: 0x00000000 + WIN: 4096 + HLEN: 24 + CKSUM: 0x84f7 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 60 + Collected: Wed Jul 20 16:40:30.689987 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:10:4c:ea + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.133 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 44 + ID: 39270 + CKSUM: 0xd708 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 1084 + FLG: -A--S- (0x12) + SEQ: 0x38936600 + ACK: 0x1846d801 + WIN: 4096 + HLEN: 24 + CKSUM: 0xe652 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 60 + Collected: Wed Jul 20 16:40:30.690814 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 62892 + CKSUM: 0x7ac6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x1846d801 + ACK: 0x38936601 + WIN: 4096 + HLEN: 20 + CKSUM: 0xfe0f (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 63 + Collected: Wed Jul 20 16:40:30.693981 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 49 + ID: 62894 + CKSUM: 0x7abb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0x1846d801 + ACK: 0x38936601 + WIN: 4096 + HLEN: 20 + CKSUM: 0xd849 (CORRECT) + DLEN: 9 + data: 9 bytes +Packet 5 + Packet Length: 60 + Collected: Wed Jul 20 16:40:30.739883 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:10:4c:ea + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.133 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39273 + CKSUM: 0xd709 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 1084 + FLG: -A---- (0x10) + SEQ: 0x38936601 + ACK: 0x1846d80a + WIN: 4087 + HLEN: 20 + CKSUM: 0xfe0f (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 60 + Collected: Wed Jul 20 16:40:30.740569 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 42 + ID: 62895 + CKSUM: 0x7ac1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0x1846d80a + ACK: 0x38936601 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf0f2 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 7 + Packet Length: 60 + Collected: Wed Jul 20 16:40:30.939590 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:10:4c:ea + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.133 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39286 + CKSUM: 0xd6fc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 1084 + FLG: -A---- (0x10) + SEQ: 0x38936601 + ACK: 0x1846d80c + WIN: 4085 + HLEN: 20 + CKSUM: 0xfe0f (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 1206 + Collected: Wed Jul 20 16:40:41.065353 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:10:4c:ea + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.133 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 1192 + ID: 39815 + CKSUM: 0xd06b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 1084 + FLG: -AP--- (0x18) + SEQ: 0x38936601 + ACK: 0x1846d80c + WIN: 4096 + HLEN: 20 + CKSUM: 0x83da (CORRECT) + DLEN: 1152 + data: 1152 bytes +Packet 9 + Packet Length: 60 + Collected: Wed Jul 20 16:40:41.084712 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 62906 + CKSUM: 0x7ab8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x1846d80c + ACK: 0x38936a81 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf984 (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 60 + Collected: Wed Jul 20 16:40:41.095959 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:10:4c:ea + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.133 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39816 + CKSUM: 0xd4ea (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 1084 + FLG: -A---F (0x11) + SEQ: 0x38936a81 + ACK: 0x1846d80c + WIN: 4096 + HLEN: 20 + CKSUM: 0xf983 (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 60 + Collected: Wed Jul 20 16:40:41.096678 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 62907 + CKSUM: 0x7ab7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x1846d80c + ACK: 0x38936a82 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf983 (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 60 + Collected: Wed Jul 20 16:40:41.125335 1994 + ETH Srce: 08:00:20:10:4c:ea + ETH Dest: 08:00:20:0f:1a:be + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.133 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 62909 + CKSUM: 0x7ab5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1084 + DPRT: 79 + FLG: -A---F (0x11) + SEQ: 0x1846d80c + ACK: 0x38936a82 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf982 (CORRECT) + DLEN: 0 +Packet 13 + Packet Length: 60 + Collected: Wed Jul 20 16:40:41.126372 1994 + ETH Srce: 08:00:20:0f:1a:be + ETH Dest: 08:00:20:10:4c:ea + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.133 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 39818 + CKSUM: 0xd4e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 1084 + FLG: -A---- (0x10) + SEQ: 0x38936a82 + ACK: 0x1846d80d + WIN: 4096 + HLEN: 20 + CKSUM: 0xf982 (CORRECT) + DLEN: 0 +13 packets seen, 13 TCP packets traced +trace file elapsed time: 0:00:10.438257 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.133:1084 - 132.235.1.2:79 (a2b) 7> 6< (complete) diff --git a/input/OUTPUTbench/finger.snoop.gz.short b/input/OUTPUTbench/finger.snoop.gz.short new file mode 100644 index 0000000..0003d3e --- /dev/null +++ b/input/OUTPUTbench/finger.snoop.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'finger.snoop.gz' + +13 packets seen, 13 TCP packets traced +trace file elapsed time: 0:00:10.438257 +TCP connection info: + 1: 132.235.3.133:1084 - 132.235.1.2:79 (a2b) 7> 6< (complete) diff --git a/input/OUTPUTbench/finger.snoop.gz.xplots.cksum b/input/OUTPUTbench/finger.snoop.gz.xplots.cksum new file mode 100644 index 0000000..85a852f --- /dev/null +++ b/input/OUTPUTbench/finger.snoop.gz.xplots.cksum @@ -0,0 +1,11 @@ +2704113527 1802 a2b_owin.xpl +4195419154 388 a2b_rtt.xpl +2781109211 398 a2b_ssize.xpl +3762156705 178 a2b_tput.xpl +3340856344 2162 a2b_tsg.xpl +163195511 2529 a_b_tline.xpl +3007691213 1529 b2a_owin.xpl +7223538 312 b2a_rtt.xpl +128420501 184 b2a_ssize.xpl +131803773 146 b2a_tput.xpl +2411933611 1996 b2a_tsg.xpl diff --git a/input/OUTPUTbench/first_seg_ooo.dmp.gz.long b/input/OUTPUTbench/first_seg_ooo.dmp.gz.long new file mode 100644 index 0000000..eb94c14 --- /dev/null +++ b/input/OUTPUTbench/first_seg_ooo.dmp.gz.long @@ -0,0 +1,92 @@ +1 arg remaining, starting with 'first_seg_ooo.dmp.gz' + +243 packets seen, 243 TCP packets traced +trace file elapsed time: 0:00:06.579813 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.67.34:1150 + host b: 132.235.67.19:80 + complete conn: yes + first packet: Fri Nov 28 11:43:33.350561 1997 + last packet: Fri Nov 28 11:43:39.930375 1997 + elapsed time: 0:00:06.579813 + total packets: 243 + filename: first_seg_ooo.dmp.gz + a->b: b->a: + total packets: 109 total packets: 134 + ack pkts sent: 108 ack pkts sent: 134 + pure acks sent: 103 pure acks sent: 4 + sack pkts sent: 0 sack pkts sent: 1 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 1 + unique bytes sent: 1064 unique bytes sent: 63066 + actual data pkts: 4 actual data pkts: 128 + actual data bytes: 1115 actual data bytes: 63066 + rexmt data pkts: 1 rexmt data pkts: 0 + rexmt data bytes: 51 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 4 pushed data pkts: 99 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 1 adv wind scale: 0 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 526 bytes max segm size: 1448 bytes + min segm size: 51 bytes min segm size: 1 bytes + avg segm size: 278 bytes avg segm size: 492 bytes + max win adv: 99280 bytes max win adv: 17520 bytes + min win adv: 99280 bytes min win adv: 16994 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 99280 bytes avg win adv: 17345 bytes + max owin: 527 bytes max owin: 4345 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 34 bytes avg owin: 780 bytes + wavg owin: 150 bytes wavg owin: 718 bytes + initial window: 51 bytes initial window: 2048 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 1064 bytes ttl stream length: 63066 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 3.537 secs data xmit time: 2.533 secs + idletime max: 2266.7 ms idletime max: 2267.3 ms + throughput: 162 Bps throughput: 9585 Bps + + RTT samples: 4 RTT samples: 105 + RTT min: 574.0 ms RTT min: 0.2 ms + RTT max: 606.9 ms RTT max: 29.4 ms + RTT avg: 582.7 ms RTT avg: 0.6 ms + RTT stdev: 16.1 ms RTT stdev: 2.9 ms + + RTT from 3WHS: 574.0 ms RTT from 3WHS: 2.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 4 + RTT full_sz min: 606.9 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 606.9 ms RTT full_sz max: 29.4 ms + RTT full_sz avg: 606.8 ms RTT full_sz avg: 9.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 13.9 ms + + post-loss acks: 0 post-loss acks: 0 + 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. + ambiguous acks: 1 ambiguous acks: 0 + RTT min (last): 574.6 ms RTT min (last): 0.0 ms + RTT max (last): 574.6 ms RTT max (last): 0.0 ms + RTT avg (last): 574.6 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 1 segs cum acked: 25 + duplicate acks: 2 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 2266.7 ms min retr time: 0.0 ms + max retr time: 2266.7 ms max retr time: 0.0 ms + avg retr time: 2266.5 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/first_seg_ooo.dmp.gz.packets b/input/OUTPUTbench/first_seg_ooo.dmp.gz.packets new file mode 100644 index 0000000..d4efedf --- /dev/null +++ b/input/OUTPUTbench/first_seg_ooo.dmp.gz.packets @@ -0,0 +1,2667 @@ +1 arg remaining, starting with 'first_seg_ooo.dmp.gz' + +Packet 1 + Packet Length: 78 + Collected: Fri Nov 28 11:43:33.350561 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 54457 + CKSUM: 0x15f3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0x0a807a01 + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x1269 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(1) TS(2620,0) SACKREQ +Packet 2 + Packet Length: 78 + Collected: Fri Nov 28 11:43:33.924528 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 61480 + CKSUM: 0xfc83 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A--S- (0x12) + SEQ: 0x0ac2e201 + ACK: 0x0a807a02 + WIN: 17520 + HLEN: 44 + CKSUM: 0xd69c (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(0) TS(2696,2620) SACKREQ +Packet 3 + Packet Length: 117 + Collected: Fri Nov 28 11:43:33.926564 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 103 + ID: 54460 + CKSUM: 0x15c9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x0a807a66 + ACK: 0x0ac2e202 + WIN: 49640 + HLEN: 32 + CKSUM: 0x74c3 (CORRECT) + DLEN: 51 + OPTS: 12 bytes TS(2621,2696) + data: 51 bytes +Packet 4 + Packet Length: 78 + Collected: Fri Nov 28 11:43:34.500647 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 61481 + CKSUM: 0xfc82 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2e202 + ACK: 0x0a807a02 + WIN: 17520 + HLEN: 44 + CKSUM: 0xd74f (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(2697,2620) SACKS(1)[0x0a807a66-0x0a807a99] +Packet 5 + Packet Length: 217 + Collected: Fri Nov 28 11:43:36.193284 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 203 + ID: 54461 + CKSUM: 0x1564 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x0a807a02 + ACK: 0x0ac2e202 + WIN: 49640 + HLEN: 32 + CKSUM: 0x9984 (CORRECT) + DLEN: 151 + OPTS: 12 bytes TS(2625,2696) + data: 151 bytes +Packet 6 + Packet Length: 66 + Collected: Fri Nov 28 11:43:36.767930 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 61482 + CKSUM: 0xfc8d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2e202 + ACK: 0x0a807a99 + WIN: 17369 + HLEN: 32 + CKSUM: 0x175d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2702,2625) +Packet 7 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:36.821509 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61483 + CKSUM: 0xf6e4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2e202 + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0a37 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2702,2625) + data: 1448 bytes +Packet 8 + Packet Length: 666 + Collected: Fri Nov 28 11:43:36.824148 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61484 + CKSUM: 0xfa33 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac2e7aa + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3149 (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2702,2625) + data: 600 bytes +Packet 9 + Packet Length: 66 + Collected: Fri Nov 28 11:43:36.824410 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54462 + CKSUM: 0x15fa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807a99 + ACK: 0x0ac2ea02 + WIN: 49640 + HLEN: 32 + CKSUM: 0x914b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2627,2702) +Packet 10 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:36.832837 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61485 + CKSUM: 0xf6e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2ea02 + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0x8e17 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2702,2625) + data: 1448 bytes +Packet 11 + Packet Length: 666 + Collected: Fri Nov 28 11:43:36.835529 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61486 + CKSUM: 0xfa31 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac2efaa + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0xf91c (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2702,2625) + data: 600 bytes +Packet 12 + Packet Length: 66 + Collected: Fri Nov 28 11:43:36.835755 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54463 + CKSUM: 0x15f9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807a99 + ACK: 0x0ac2f202 + WIN: 49640 + HLEN: 32 + CKSUM: 0x894b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2627,2702) +Packet 13 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:36.844168 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61487 + CKSUM: 0xf6e0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2f202 + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcec4 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2702,2625) + data: 1448 bytes +Packet 14 + Packet Length: 453 + Collected: Fri Nov 28 11:43:36.873567 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 439 + ID: 54464 + CKSUM: 0x1475 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x0a807a99 + ACK: 0x0ac2f7aa + WIN: 49640 + HLEN: 32 + CKSUM: 0x2016 (CORRECT) + DLEN: 387 + OPTS: 12 bytes TS(2627,2702) + data: 387 bytes +Packet 15 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:37.408529 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61488 + CKSUM: 0xf6df (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2f7aa + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0xe5cb (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2703,2625) + data: 1448 bytes +Packet 16 + Packet Length: 176 + Collected: Fri Nov 28 11:43:37.408579 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 162 + ID: 61489 + CKSUM: 0xfc18 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac2fd52 + ACK: 0x0a807a99 + WIN: 17520 + HLEN: 32 + CKSUM: 0x32ee (CORRECT) + DLEN: 110 + OPTS: 12 bytes TS(2703,2625) + data: 110 bytes +Packet 17 + Packet Length: 66 + Collected: Fri Nov 28 11:43:37.408826 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54465 + CKSUM: 0x15f7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807c1c + ACK: 0x0ac2fdc0 + WIN: 49640 + HLEN: 32 + CKSUM: 0x7c08 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2628,2703) +Packet 18 + Packet Length: 66 + Collected: Fri Nov 28 11:43:37.449648 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 61490 + CKSUM: 0xfc85 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2fdc0 + ACK: 0x0a807c1c + WIN: 17133 + HLEN: 32 + CKSUM: 0xfb04 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2703,2627) +Packet 19 + Packet Length: 592 + Collected: Fri Nov 28 11:43:37.463682 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 578 + ID: 54466 + CKSUM: 0x13e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x0a807c1c + ACK: 0x0ac2fdc0 + WIN: 49640 + HLEN: 32 + CKSUM: 0x4a4d (CORRECT) + DLEN: 526 + OPTS: 12 bytes TS(2628,2703) + data: 526 bytes +Packet 20 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:37.483594 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61491 + CKSUM: 0xf6dc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac2fdc0 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0xca87 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2703,2627) + data: 1448 bytes +Packet 21 + Packet Length: 666 + Collected: Fri Nov 28 11:43:37.486284 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61492 + CKSUM: 0xfa2b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac30368 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0xe49f (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2703,2627) + data: 600 bytes +Packet 22 + Packet Length: 66 + Collected: Fri Nov 28 11:43:37.486509 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54467 + CKSUM: 0x15f5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac305c0 + WIN: 49640 + HLEN: 32 + CKSUM: 0x71fa (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2628,2703) +Packet 23 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:37.495015 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61493 + CKSUM: 0xf6da (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac305c0 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0x3ca1 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2703,2627) + data: 1448 bytes +Packet 24 + Packet Length: 666 + Collected: Fri Nov 28 11:43:37.497746 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61494 + CKSUM: 0xfa29 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac30b68 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0x717b (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2703,2627) + data: 600 bytes +Packet 25 + Packet Length: 66 + Collected: Fri Nov 28 11:43:37.497972 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54468 + CKSUM: 0x15f4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac30dc0 + WIN: 49640 + HLEN: 32 + CKSUM: 0x69fa (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2628,2703) +Packet 26 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:37.520705 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61495 + CKSUM: 0xf6d8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac30dc0 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0xff6f (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2703,2627) + data: 1448 bytes +Packet 27 + Packet Length: 666 + Collected: Fri Nov 28 11:43:37.523395 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61496 + CKSUM: 0xfa27 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac31368 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0xc6ef (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2703,2627) + data: 600 bytes +Packet 28 + Packet Length: 66 + Collected: Fri Nov 28 11:43:37.523625 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54469 + CKSUM: 0x15f3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac315c0 + WIN: 49640 + HLEN: 32 + CKSUM: 0x61fa (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2628,2703) +Packet 29 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:37.532110 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61497 + CKSUM: 0xf6d6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac315c0 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0xb21a (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2703,2627) + data: 1448 bytes +Packet 30 + Packet Length: 666 + Collected: Fri Nov 28 11:43:37.534807 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61498 + CKSUM: 0xfa25 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac31b68 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0x4cfc (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2703,2627) + data: 600 bytes +Packet 31 + Packet Length: 66 + Collected: Fri Nov 28 11:43:37.535029 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54470 + CKSUM: 0x15f2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac31dc0 + WIN: 49640 + HLEN: 32 + CKSUM: 0x59fa (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2628,2703) +Packet 32 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:37.992865 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61499 + CKSUM: 0xf6d4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac31dc0 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0x890d (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2627) + data: 1448 bytes +Packet 33 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.000820 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61500 + CKSUM: 0xf6d3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac32368 + ACK: 0x0a807c1c + WIN: 17520 + HLEN: 32 + CKSUM: 0x6a5d (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2627) + data: 1448 bytes +Packet 34 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.070545 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61501 + CKSUM: 0xf6d2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac32910 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xad30 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 35 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.070785 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54471 + CKSUM: 0x15f1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac32eb8 + WIN: 49640 + HLEN: 32 + CKSUM: 0x4900 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2629,2704) +Packet 36 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.078550 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61502 + CKSUM: 0xf6d1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac32eb8 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x55da (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 37 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.086460 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61503 + CKSUM: 0xf6d0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac33460 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xb773 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 38 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.093016 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54472 + CKSUM: 0x15f0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac33a08 + WIN: 49640 + HLEN: 32 + CKSUM: 0x3db0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2629,2704) +Packet 39 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.094455 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61504 + CKSUM: 0xf6cf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac33a08 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xdafa (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 40 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.102367 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61505 + CKSUM: 0xf6ce (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac33fb0 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x9c48 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 41 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.110297 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61506 + CKSUM: 0xf6cd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac34558 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x2868 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 42 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.110534 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54473 + CKSUM: 0x15ef (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac34b00 + WIN: 49640 + HLEN: 32 + CKSUM: 0x2cb8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2629,2704) +Packet 43 + Packet Length: 1055 + Collected: Fri Nov 28 11:43:38.115382 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1041 + ID: 61507 + CKSUM: 0xf897 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac34b00 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xfe54 (CORRECT) + DLEN: 989 + OPTS: 12 bytes TS(2704,2628) + data: 989 bytes +Packet 44 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.115611 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54474 + CKSUM: 0x15ee (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac34edd + WIN: 49640 + HLEN: 32 + CKSUM: 0x28db (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2629,2704) +Packet 45 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.123742 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61508 + CKSUM: 0xf6cb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac34edd + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xf6f9 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 46 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.131702 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61509 + CKSUM: 0xf6ca (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac35485 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x4a31 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 47 + Packet Length: 69 + Collected: Fri Nov 28 11:43:38.131737 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 55 + ID: 61510 + CKSUM: 0xfc6e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac35a2d + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x4d1c (CORRECT) + DLEN: 3 + OPTS: 12 bytes TS(2704,2628) + data: 3 bytes +Packet 48 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.131964 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54475 + CKSUM: 0x15ed (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac35a30 + WIN: 49640 + HLEN: 32 + CKSUM: 0x1d88 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2629,2704) +Packet 49 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.139974 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61511 + CKSUM: 0xf6c8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac35a30 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xc925 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2704,2628) + data: 1448 bytes +Packet 50 + Packet Length: 666 + Collected: Fri Nov 28 11:43:38.142674 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61512 + CKSUM: 0xfa17 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac35fd8 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x8244 (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2704,2628) + data: 600 bytes +Packet 51 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.142891 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54476 + CKSUM: 0x15ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac36230 + WIN: 49640 + HLEN: 32 + CKSUM: 0x1588 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2629,2704) +Packet 52 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.655574 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61513 + CKSUM: 0xf6c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac36230 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xd66d (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2705,2628) + data: 1448 bytes +Packet 53 + Packet Length: 666 + Collected: Fri Nov 28 11:43:38.658257 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61514 + CKSUM: 0xfa15 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac367d8 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xa4fd (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2705,2628) + data: 600 bytes +Packet 54 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.658484 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54477 + CKSUM: 0x15eb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac36a30 + WIN: 49640 + HLEN: 32 + CKSUM: 0x0d86 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 55 + Packet Length: 1263 + Collected: Fri Nov 28 11:43:38.665429 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1249 + ID: 61515 + CKSUM: 0xf7bf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac36a30 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x4ee7 (CORRECT) + DLEN: 1197 + OPTS: 12 bytes TS(2705,2628) + data: 1197 bytes +Packet 56 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.665662 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54478 + CKSUM: 0x15ea (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac36edd + WIN: 49640 + HLEN: 32 + CKSUM: 0x08d9 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 57 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.678134 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61516 + CKSUM: 0xf6c3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac36edd + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x17ca (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2705,2628) + data: 1448 bytes +Packet 58 + Packet Length: 666 + Collected: Fri Nov 28 11:43:38.680832 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 652 + ID: 61517 + CKSUM: 0xfa12 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37485 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x7803 (CORRECT) + DLEN: 600 + OPTS: 12 bytes TS(2705,2628) + data: 600 bytes +Packet 59 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.681066 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54479 + CKSUM: 0x15e9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac376dd + WIN: 49640 + HLEN: 32 + CKSUM: 0x00d9 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 60 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.681251 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61518 + CKSUM: 0xfc05 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac376dd + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x45e4 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 61 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.681470 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54480 + CKSUM: 0x15e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37741 + WIN: 49640 + HLEN: 32 + CKSUM: 0x0075 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 62 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.682042 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61519 + CKSUM: 0xfc04 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37741 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x2f6a (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 63 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.682263 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54481 + CKSUM: 0x15e7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac377a5 + WIN: 49640 + HLEN: 32 + CKSUM: 0x0011 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 64 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.682891 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61520 + CKSUM: 0xfc03 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac377a5 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x6255 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 65 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.683155 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54482 + CKSUM: 0x15e6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37809 + WIN: 49640 + HLEN: 32 + CKSUM: 0xffac (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 66 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.683735 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61521 + CKSUM: 0xfc02 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37809 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x2774 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 67 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.683956 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54483 + CKSUM: 0x15e5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac3786d + WIN: 49640 + HLEN: 32 + CKSUM: 0xff48 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 68 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.684581 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61522 + CKSUM: 0xfc01 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac3786d + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xef0e (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 69 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.684803 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54484 + CKSUM: 0x15e4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac378d1 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfee4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 70 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.685452 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61523 + CKSUM: 0xfc00 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac378d1 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xfe63 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 71 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.685677 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54485 + CKSUM: 0x15e3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37935 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfe80 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 72 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.686262 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61524 + CKSUM: 0xfbff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37935 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x7b6f (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 73 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.686486 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54486 + CKSUM: 0x15e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37999 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfe1c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 74 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.687107 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61525 + CKSUM: 0xfbfe (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37999 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x616b (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 75 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.687338 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54487 + CKSUM: 0x15e1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac379fd + WIN: 49640 + HLEN: 32 + CKSUM: 0xfdb8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 76 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.687958 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61526 + CKSUM: 0xfbfd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac379fd + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x323a (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 77 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.688182 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54488 + CKSUM: 0x15e0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37a61 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfd54 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 78 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.688801 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61527 + CKSUM: 0xfbfc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37a61 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x51f4 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 79 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.689027 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54489 + CKSUM: 0x15df (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37ac5 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfcf0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 80 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.689650 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61528 + CKSUM: 0xfbfb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37ac5 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x9250 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 81 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.689875 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54490 + CKSUM: 0x15de (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37b29 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfc8c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 82 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.690487 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61529 + CKSUM: 0xfbfa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37b29 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x315e (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 83 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.690709 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54491 + CKSUM: 0x15dd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37b8d + WIN: 49640 + HLEN: 32 + CKSUM: 0xfc28 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 84 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.691336 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61530 + CKSUM: 0xfbf9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37b8d + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x02ca (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 85 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.691561 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54492 + CKSUM: 0x15dc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37bf1 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfbc4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 86 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.692172 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61531 + CKSUM: 0xfbf8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37bf1 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x9419 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 87 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.692396 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54493 + CKSUM: 0x15db (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37c55 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfb60 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2630,2705) +Packet 88 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.693023 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61532 + CKSUM: 0xfbf7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37c55 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x2f23 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 89 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.693242 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54494 + CKSUM: 0x15da (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37cb9 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfafb (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2631,2705) +Packet 90 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.693866 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61533 + CKSUM: 0xfbf6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37cb9 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xa2d1 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 91 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.694087 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54495 + CKSUM: 0x15d9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37d1d + WIN: 49640 + HLEN: 32 + CKSUM: 0xfa97 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2631,2705) +Packet 92 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.694709 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61534 + CKSUM: 0xfbf5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37d1d + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xe86e (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 93 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.694932 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54496 + CKSUM: 0x15d8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37d81 + WIN: 49640 + HLEN: 32 + CKSUM: 0xfa33 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2631,2705) +Packet 94 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.695558 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61535 + CKSUM: 0xfbf4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37d81 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x3835 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 95 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.695779 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54497 + CKSUM: 0x15d7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37de5 + WIN: 49640 + HLEN: 32 + CKSUM: 0xf9cf (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2631,2705) +Packet 96 + Packet Length: 166 + Collected: Fri Nov 28 11:43:38.696398 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 61536 + CKSUM: 0xfbf3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37de5 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x7d30 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(2705,2628) + data: 100 bytes +Packet 97 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.696622 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54498 + CKSUM: 0x15d6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37e49 + WIN: 49640 + HLEN: 32 + CKSUM: 0xf96b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2631,2705) +Packet 98 + Packet Length: 113 + Collected: Fri Nov 28 11:43:38.697118 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 99 + ID: 61537 + CKSUM: 0xfc27 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -AP--- (0x18) + SEQ: 0x0ac37e49 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0x5861 (CORRECT) + DLEN: 47 + OPTS: 12 bytes TS(2705,2628) + data: 47 bytes +Packet 99 + Packet Length: 66 + Collected: Fri Nov 28 11:43:38.697348 1997 + ETH Srce: 00:60:97:70:87:c8 + ETH Dest: 00:e0:b0:55:47:3a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 54499 + CKSUM: 0x15d5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1150 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0a807e2a + ACK: 0x0ac37e78 + WIN: 49640 + HLEN: 32 + CKSUM: 0xf93c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2631,2705) +Packet 100 + Packet Length: 1514 + Collected: Fri Nov 28 11:43:38.706166 1997 + ETH Srce: 00:e0:b0:55:47:3a + ETH Dest: 00:60:97:70:87:c8 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 1500 + ID: 61538 + CKSUM: 0xf6ad (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1150 + FLG: -A---- (0x10) + SEQ: 0x0ac37e78 + ACK: 0x0a807e2a + WIN: 16994 + HLEN: 32 + CKSUM: 0xc4b7 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(2706,2628) + data: 1448 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:05.355604 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.67.34:1150 - 132.235.67.19:80 (a2b) 41> 59< diff --git a/input/OUTPUTbench/first_seg_ooo.dmp.gz.short b/input/OUTPUTbench/first_seg_ooo.dmp.gz.short new file mode 100644 index 0000000..7344d5d --- /dev/null +++ b/input/OUTPUTbench/first_seg_ooo.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'first_seg_ooo.dmp.gz' + +243 packets seen, 243 TCP packets traced +trace file elapsed time: 0:00:06.579813 +TCP connection info: + 1: 132.235.67.34:1150 - 132.235.67.19:80 (a2b) 109> 134< (complete) diff --git a/input/OUTPUTbench/first_seg_ooo.dmp.gz.xplots.cksum b/input/OUTPUTbench/first_seg_ooo.dmp.gz.xplots.cksum new file mode 100644 index 0000000..433e4e3 --- /dev/null +++ b/input/OUTPUTbench/first_seg_ooo.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +2145625662 33016 a2b_owin.xpl +4255000049 402 a2b_rtt.xpl +3473414047 721 a2b_ssize.xpl +1045254491 242 a2b_tput.xpl +3802020721 35422 a2b_tsg.xpl +907686719 44361 a_b_tline.xpl +303302625 42351 b2a_owin.xpl +1947249237 7454 b2a_rtt.xpl +1171235799 19875 b2a_ssize.xpl +1139697791 6842 b2a_tput.xpl +2397241336 48673 b2a_tsg.xpl diff --git a/input/OUTPUTbench/hardware_dups.dmp.gz.long b/input/OUTPUTbench/hardware_dups.dmp.gz.long new file mode 100644 index 0000000..cbdcee6 --- /dev/null +++ b/input/OUTPUTbench/hardware_dups.dmp.gz.long @@ -0,0 +1,90 @@ +1 arg remaining, starting with 'hardware_dups.dmp.gz' + +1458 packets seen, 1458 TCP packets traced +trace file elapsed time: 0:00:03.710329 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 144.16.64.215:20 + host b: 144.16.64.141:1644 + complete conn: yes + first packet: Tue Jan 6 13:58:07.353828 1998 + last packet: Tue Jan 6 13:58:11.064158 1998 + elapsed time: 0:00:03.710329 + total packets: 1458 + filename: hardware_dups.dmp.gz + a->b: b->a: + total packets: 486 total packets: 972 + ack pkts sent: 485 ack pkts sent: 972 + pure acks sent: 484 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 584267 + actual data pkts: 0 actual data pkts: 966 + actual data bytes: 0 actual data bytes: 1168534 + rexmt data pkts: 0 rexmt data pkts: 485 + rexmt data bytes: 0 rexmt data bytes: 584269 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 966 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 2/2 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 0 bytes max segm size: 1460 bytes + min segm size: 0 bytes min segm size: 20 bytes + avg segm size: 0 bytes avg segm size: 1209 bytes + max win adv: 64240 bytes max win adv: 31744 bytes + min win adv: 32767 bytes min win adv: 31744 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 64175 bytes avg win adv: 31744 bytes + max owin: 1 bytes max owin: 4381 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 1933 bytes + wavg owin: 0 bytes wavg owin: 1755 bytes + initial window: 0 bytes initial window: 1024 bytes + initial window: 0 pkts initial window: 1 pkts + ttl stream length: 0 bytes ttl stream length: 584267 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 1155010 bytes + truncated packets: 0 pkts truncated packets: 966 pkts + data xmit time: 0.000 secs data xmit time: 3.676 secs + idletime max: 95.2 ms idletime max: 101.3 ms + hardware dups: 0 segs hardware dups: 486 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 0 Bps throughput: 157470 Bps + + RTT samples: 2 RTT samples: 0 + RTT min: 0.9 ms RTT min: 0.0 ms + RTT max: 1.4 ms RTT max: 0.0 ms + RTT avg: 1.2 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.4 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 0.9 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.9 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.9 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 10 + 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. + ambiguous acks: 0 ambiguous acks: 474 + RTT min (last): 0.0 ms RTT min (last): 0.2 ms + RTT max (last): 0.0 ms RTT max (last): 13.7 ms + RTT avg (last): 0.0 ms RTT avg (last): 0.3 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.8 ms + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 3 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 1.4 ms + max retr time: 0.0 ms max retr time: 19.0 ms + avg retr time: 0.0 ms avg retr time: 6.4 ms + sdv retr time: 0.0 ms sdv retr time: 2.3 ms diff --git a/input/OUTPUTbench/hardware_dups.dmp.gz.packets b/input/OUTPUTbench/hardware_dups.dmp.gz.packets new file mode 100644 index 0000000..dca424c --- /dev/null +++ b/input/OUTPUTbench/hardware_dups.dmp.gz.packets @@ -0,0 +1,2675 @@ +1 arg remaining, starting with 'hardware_dups.dmp.gz' + +Packet 1 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.353828 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 44 + ID: 2082 + CKSUM: 0x911d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: ----S- (0x02) + SEQ: 0xccb5b3a2 + ACK: 0x00000000 + WIN: 32767 + HLEN: 24 + CKSUM: 0xefc9 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 58 + Collected: Tue Jan 6 13:58:07.355212 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 44 + ID: 34661 + CKSUM: 0x51e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1644 + DPRT: 20 + FLG: -A--S- (0x12) + SEQ: 0xd8231361 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 24 + CKSUM: 0x0833 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.355956 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 44 + ID: 34661 + CKSUM: 0x52e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1644 + DPRT: 20 + FLG: -A--S- (0x12) + SEQ: 0xd8231361 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 24 + CKSUM: 0x0833 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 4 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.356141 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2083 + CKSUM: 0x9120 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8231362 + WIN: 64240 + HLEN: 20 + CKSUM: 0xa0ff (CORRECT) + DLEN: 0 +Packet 5 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.385073 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1064 + ID: 34663 + CKSUM: 0x0ddc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xece2 (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 6 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.390304 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1064 + ID: 34663 + CKSUM: 0x0edc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xece2 (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 7 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.392514 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2085 + CKSUM: 0x911e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8231762 + WIN: 64240 + HLEN: 20 + CKSUM: 0x9cff (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.409167 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1064 + ID: 34664 + CKSUM: 0x0ddb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231762 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x7052 (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 9 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.414317 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1064 + ID: 34664 + CKSUM: 0x0edb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231762 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x7052 (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 10 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.427973 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2086 + CKSUM: 0x911d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8231b62 + WIN: 64240 + HLEN: 20 + CKSUM: 0x98ff (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.439612 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1064 + ID: 34665 + CKSUM: 0x0dda (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231b62 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xeedc (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 12 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.451553 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1064 + ID: 34665 + CKSUM: 0x0eda (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231b62 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xeedc (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 13 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.441940 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2087 + CKSUM: 0x911c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8231f62 + WIN: 64240 + HLEN: 20 + CKSUM: 0x94ff (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.463857 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1064 + ID: 34666 + CKSUM: 0x0dd9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231f62 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xc948 (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 15 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.466615 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34667 + CKSUM: 0x0c24 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8232362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x5c60 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 16 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.469321 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1064 + ID: 34666 + CKSUM: 0x0ed9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8231f62 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xc948 (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 17 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.470355 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34668 + CKSUM: 0x0c23 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8232916 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf071 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 18 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.474949 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34667 + CKSUM: 0x0d24 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8232362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x5c60 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 19 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.475152 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2088 + CKSUM: 0x911b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8232362 + WIN: 64240 + HLEN: 20 + CKSUM: 0x90ff (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.475563 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34669 + CKSUM: 0x0c22 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8232eca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x3e0b (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 21 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.478559 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34668 + CKSUM: 0x0d23 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8232916 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf071 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 22 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.478760 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2089 + CKSUM: 0x911a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8232eca + WIN: 64240 + HLEN: 20 + CKSUM: 0x8597 (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.480210 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34670 + CKSUM: 0x0c21 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823347e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xa5b7 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 24 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.483257 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34669 + CKSUM: 0x0d22 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8232eca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x3e0b (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 25 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.483711 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2090 + CKSUM: 0x9119 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823347e + WIN: 64240 + HLEN: 20 + CKSUM: 0x7fe3 (CORRECT) + DLEN: 0 +Packet 26 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.485571 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34671 + CKSUM: 0x0c20 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8233a32 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x6d93 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 27 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.488577 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34670 + CKSUM: 0x0d21 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823347e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xa5b7 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 28 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.488773 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2091 + CKSUM: 0x9118 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8233a32 + WIN: 64240 + HLEN: 20 + CKSUM: 0x7a2f (CORRECT) + DLEN: 0 +Packet 29 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.490108 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34672 + CKSUM: 0x0c1f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8233fe6 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x5cfe (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 30 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.493156 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34671 + CKSUM: 0x0d20 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8233a32 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x6d93 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 31 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.493751 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2092 + CKSUM: 0x9117 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8233fe6 + WIN: 64240 + HLEN: 20 + CKSUM: 0x747b (CORRECT) + DLEN: 0 +Packet 32 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.495065 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34673 + CKSUM: 0x0c1e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823459a + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x019b (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 33 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.498085 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34672 + CKSUM: 0x0d1f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8233fe6 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x5cfe (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 34 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.498283 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2093 + CKSUM: 0x9116 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823459a + WIN: 64240 + HLEN: 20 + CKSUM: 0x6ec7 (CORRECT) + DLEN: 0 +Packet 35 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.499974 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34674 + CKSUM: 0x0c1d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8234b4e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x6724 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 36 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.503013 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34673 + CKSUM: 0x0d1e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823459a + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x019b (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 37 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.503828 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2094 + CKSUM: 0x9115 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8234b4e + WIN: 64240 + HLEN: 20 + CKSUM: 0x6913 (CORRECT) + DLEN: 0 +Packet 38 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.506972 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34674 + CKSUM: 0x0d1d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8234b4e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x6724 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 39 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.507353 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2095 + CKSUM: 0x9114 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8235102 + WIN: 64240 + HLEN: 20 + CKSUM: 0x635f (CORRECT) + DLEN: 0 +Packet 40 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.508634 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34675 + CKSUM: 0x0c1c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8235102 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x9bfd (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 41 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.512055 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34676 + CKSUM: 0x0c1b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd82356b6 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x21c4 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 42 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.515662 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34675 + CKSUM: 0x0d1c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8235102 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x9bfd (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 43 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.515880 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2096 + CKSUM: 0x9113 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd82356b6 + WIN: 64240 + HLEN: 20 + CKSUM: 0x5dab (CORRECT) + DLEN: 0 +Packet 44 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.516455 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34677 + CKSUM: 0x0c1a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8235c6a + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xb8cc (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 45 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.519638 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34676 + CKSUM: 0x0d1b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd82356b6 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x21c4 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 46 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.520060 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2097 + CKSUM: 0x9112 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8235c6a + WIN: 64240 + HLEN: 20 + CKSUM: 0x57f7 (CORRECT) + DLEN: 0 +Packet 47 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.523571 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34677 + CKSUM: 0x0d1a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8235c6a + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xb8cc (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 48 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.524405 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2098 + CKSUM: 0x9111 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823621e + WIN: 64240 + HLEN: 20 + CKSUM: 0x5243 (CORRECT) + DLEN: 0 +Packet 49 + Packet Length: 378 (saved length 68) + Collected: Tue Jan 6 13:58:07.524993 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 364 + ID: 34678 + CKSUM: 0x1089 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823621e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x7b94 (too short to verify) + DLEN: 324 (only 14 bytes in dump file) + data: 324 bytes +Packet 50 + Packet Length: 378 (saved length 68) + Collected: Tue Jan 6 13:58:07.527190 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 364 + ID: 34678 + CKSUM: 0x1189 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823621e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x7b94 (too short to verify) + DLEN: 324 (only 14 bytes in dump file) + data: 324 bytes +Packet 51 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.527388 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2099 + CKSUM: 0x9110 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8236362 + WIN: 64240 + HLEN: 20 + CKSUM: 0x50ff (CORRECT) + DLEN: 0 +Packet 52 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.535546 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1064 + ID: 34679 + CKSUM: 0x0dcc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8236362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf9ce (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 53 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.538067 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34680 + CKSUM: 0x0c17 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8236762 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xc7ce (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 54 + Packet Length: 1078 (saved length 68) + Collected: Tue Jan 6 13:58:07.540815 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1064 + ID: 34679 + CKSUM: 0x0ecc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8236362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf9ce (too short to verify) + DLEN: 1024 (only 14 bytes in dump file) + data: 1024 bytes +Packet 55 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.541157 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2100 + CKSUM: 0x910f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8236762 + WIN: 64240 + HLEN: 20 + CKSUM: 0x4cff (CORRECT) + DLEN: 0 +Packet 56 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.542353 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34681 + CKSUM: 0x0c16 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8236d16 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x984b (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 57 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.547431 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34680 + CKSUM: 0x0d17 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8236762 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xc7ce (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 58 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.547873 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2101 + CKSUM: 0x910e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8236d16 + WIN: 64240 + HLEN: 20 + CKSUM: 0x474b (CORRECT) + DLEN: 0 +Packet 59 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.551442 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34681 + CKSUM: 0x0d16 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8236d16 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x984b (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 60 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.551638 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2102 + CKSUM: 0x910d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd82372ca + WIN: 64240 + HLEN: 20 + CKSUM: 0x4197 (CORRECT) + DLEN: 0 +Packet 61 + Packet Length: 1230 (saved length 68) + Collected: Tue Jan 6 13:58:07.552099 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1216 + ID: 34682 + CKSUM: 0x0d31 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd82372ca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xe865 (too short to verify) + DLEN: 1176 (only 14 bytes in dump file) + data: 1176 bytes +Packet 62 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.555519 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34683 + CKSUM: 0x0c14 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8237762 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xd0cb (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 63 + Packet Length: 1230 (saved length 68) + Collected: Tue Jan 6 13:58:07.559336 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1216 + ID: 34682 + CKSUM: 0x0e31 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd82372ca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xe865 (too short to verify) + DLEN: 1176 (only 14 bytes in dump file) + data: 1176 bytes +Packet 64 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.559547 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2103 + CKSUM: 0x910c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8237762 + WIN: 64240 + HLEN: 20 + CKSUM: 0x3cff (CORRECT) + DLEN: 0 +Packet 65 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.552988 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34683 + CKSUM: 0x0d14 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8237762 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xd0cb (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 66 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.553377 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2104 + CKSUM: 0x910b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8237d16 + WIN: 64240 + HLEN: 20 + CKSUM: 0x374b (CORRECT) + DLEN: 0 +Packet 67 + Packet Length: 642 (saved length 68) + Collected: Tue Jan 6 13:58:07.574374 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 628 + ID: 34684 + CKSUM: 0x0f7b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8237d16 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf5fa (too short to verify) + DLEN: 588 (only 14 bytes in dump file) + data: 588 bytes +Packet 68 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.576590 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34685 + CKSUM: 0x0c12 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8237f62 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xd91d (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 69 + Packet Length: 642 (saved length 68) + Collected: Tue Jan 6 13:58:07.578829 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 628 + ID: 34684 + CKSUM: 0x107b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8237d16 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf5fa (too short to verify) + DLEN: 588 (only 14 bytes in dump file) + data: 588 bytes +Packet 70 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.579029 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2105 + CKSUM: 0x910a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8237f62 + WIN: 64240 + HLEN: 20 + CKSUM: 0x34ff (CORRECT) + DLEN: 0 +Packet 71 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.581176 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34686 + CKSUM: 0x0c11 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8238516 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x6d57 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 72 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.584244 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34685 + CKSUM: 0x0d12 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8237f62 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xd91d (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 73 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.584445 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2106 + CKSUM: 0x9109 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8238516 + WIN: 64240 + HLEN: 20 + CKSUM: 0x2f4b (CORRECT) + DLEN: 0 +Packet 74 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.586586 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34687 + CKSUM: 0x0c10 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8238aca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x1109 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 75 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.591673 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34686 + CKSUM: 0x0d11 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8238516 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x6d57 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 76 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.582685 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2107 + CKSUM: 0x9108 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8238aca + WIN: 64240 + HLEN: 20 + CKSUM: 0x2997 (CORRECT) + DLEN: 0 +Packet 77 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.605600 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34687 + CKSUM: 0x0d10 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8238aca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x1109 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 78 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.605792 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2108 + CKSUM: 0x9107 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823907e + WIN: 64240 + HLEN: 20 + CKSUM: 0x23e3 (CORRECT) + DLEN: 0 +Packet 79 + Packet Length: 794 (saved length 68) + Collected: Tue Jan 6 13:58:07.606159 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 780 + ID: 34688 + CKSUM: 0x0edf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823907e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf5b0 (too short to verify) + DLEN: 740 (only 14 bytes in dump file) + data: 740 bytes +Packet 80 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.608863 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34689 + CKSUM: 0x0c0e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8239362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xcdeb (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 81 + Packet Length: 794 (saved length 68) + Collected: Tue Jan 6 13:58:07.611276 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 780 + ID: 34688 + CKSUM: 0x0fdf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823907e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xf5b0 (too short to verify) + DLEN: 740 (only 14 bytes in dump file) + data: 740 bytes +Packet 82 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.601489 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2109 + CKSUM: 0x9106 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8239362 + WIN: 64240 + HLEN: 20 + CKSUM: 0x20ff (CORRECT) + DLEN: 0 +Packet 83 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.612792 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34690 + CKSUM: 0x0c0d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8239916 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x0a6a (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 84 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.615917 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34689 + CKSUM: 0x0d0e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8239362 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0xcdeb (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 85 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.616119 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2110 + CKSUM: 0x9105 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8239916 + WIN: 64240 + HLEN: 20 + CKSUM: 0x1b4b (CORRECT) + DLEN: 0 +Packet 86 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.619942 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34690 + CKSUM: 0x0d0d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8239916 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x0a6a (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 87 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.610137 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2111 + CKSUM: 0x9104 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd8239eca + WIN: 64240 + HLEN: 20 + CKSUM: 0x1597 (CORRECT) + DLEN: 0 +Packet 88 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.620539 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34691 + CKSUM: 0x0c0c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8239eca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x256f (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 89 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.622901 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34692 + CKSUM: 0x0c0b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823a47e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x8b83 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 90 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.627507 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34691 + CKSUM: 0x0d0c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd8239eca + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x256f (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 91 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.627899 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2112 + CKSUM: 0x9103 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823a47e + WIN: 64240 + HLEN: 20 + CKSUM: 0x0fe3 (CORRECT) + DLEN: 0 +Packet 92 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.629378 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34693 + CKSUM: 0x0c0a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823aa32 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x608c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 93 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.632452 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34692 + CKSUM: 0x0d0b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823a47e + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x8b83 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 94 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.622646 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2113 + CKSUM: 0x9102 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823aa32 + WIN: 64240 + HLEN: 20 + CKSUM: 0x0a2f (CORRECT) + DLEN: 0 +Packet 95 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.634005 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34694 + CKSUM: 0x0c09 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823afe6 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x1587 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 96 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.637091 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34693 + CKSUM: 0x0d0a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823aa32 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x608c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 97 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.637293 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2114 + CKSUM: 0x9101 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823afe6 + WIN: 64240 + HLEN: 20 + CKSUM: 0x047b (CORRECT) + DLEN: 0 +Packet 98 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.639196 1998 + ETH Srce: 00:80:c8:14:44:08 + ETH Dest: 00:40:05:1d:e9:2e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 34695 + CKSUM: 0x0c08 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823b59a + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x71d9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 99 + Packet Length: 1514 (saved length 68) + Collected: Tue Jan 6 13:58:07.642257 1998 + ETH Srce: 00:40:05:1d:e9:2e + ETH Dest: 00:80:48:ee:27:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.141 + IP Dest: 144.16.64.215 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 63 + LEN: 1500 + ID: 34694 + CKSUM: 0x0d09 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1644 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0xd823afe6 + ACK: 0xccb5b3a3 + WIN: 31744 + HLEN: 20 + CKSUM: 0x1587 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 100 + Packet Length: 60 + Collected: Tue Jan 6 13:58:07.632454 1998 + ETH Srce: 00:80:48:ee:27:33 + ETH Dest: 00:80:c8:14:44:08 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 144.16.64.215 + IP Dest: 144.16.64.141 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 2115 + CKSUM: 0x9100 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1644 + FLG: -A---- (0x10) + SEQ: 0xccb5b3a3 + ACK: 0xd823b59a + WIN: 64240 + HLEN: 20 + CKSUM: 0xfec6 (CORRECT) + DLEN: 0 +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.278626 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 144.16.64.215:20 - 144.16.64.141:1644 (a2b) 33> 67< + ** Warning, b2a: detected 33 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/hardware_dups.dmp.gz.short b/input/OUTPUTbench/hardware_dups.dmp.gz.short new file mode 100644 index 0000000..04a70e2 --- /dev/null +++ b/input/OUTPUTbench/hardware_dups.dmp.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'hardware_dups.dmp.gz' + +1458 packets seen, 1458 TCP packets traced +trace file elapsed time: 0:00:03.710329 +TCP connection info: + 1: 144.16.64.215:20 - 144.16.64.141:1644 (a2b) 486> 972< (complete) + ** Warning, b2a: detected 486 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/hardware_dups.dmp.gz.xplots.cksum b/input/OUTPUTbench/hardware_dups.dmp.gz.xplots.cksum new file mode 100644 index 0000000..43fab64 --- /dev/null +++ b/input/OUTPUTbench/hardware_dups.dmp.gz.xplots.cksum @@ -0,0 +1,10 @@ +3611683823 98925 a2b_owin.xpl +4141755662 137 a2b_rtt.xpl +2567386448 125 a2b_ssize.xpl +4288120252 116 a2b_tput.xpl +639673698 160734 a2b_tsg.xpl +3738017137 183068 a_b_tline.xpl +1341808562 108081 b2a_owin.xpl +791770758 105571 b2a_ssize.xpl +4201293780 35874 b2a_tput.xpl +2094315518 221933 b2a_tsg.xpl diff --git a/input/OUTPUTbench/http.dmp.gz.long b/input/OUTPUTbench/http.dmp.gz.long new file mode 100644 index 0000000..c8bdbc1 --- /dev/null +++ b/input/OUTPUTbench/http.dmp.gz.long @@ -0,0 +1,4589 @@ +1 arg remaining, starting with 'http.dmp.gz' + +1270 packets seen, 1270 TCP packets traced +trace file elapsed time: 35808:37:13.781571 +TCP connection info: +61 TCP connections traced: +TCP connection 1: + host a: 132.235.3.128:47483 + host b: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:27.748442 1997 + last packet: Mon Jul 14 13:10:27.836747 1997 + elapsed time: 0:00:00.088305 + total packets: 18 + filename: http.dmp.gz + a->b: b->a: + total packets: 8 total packets: 10 + ack pkts sent: 7 ack pkts sent: 10 + pure acks sent: 5 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 280 unique bytes sent: 179 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 280 actual data bytes: 179 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 280 bytes max segm size: 46 bytes + min segm size: 280 bytes min segm size: 2 bytes + avg segm size: 279 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 281 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 41 bytes avg owin: 28 bytes + wavg owin: 237 bytes wavg owin: 0 bytes + initial window: 280 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 280 bytes ttl stream length: 179 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.005 secs + idletime max: 74.9 ms idletime max: 76.3 ms + throughput: 3171 Bps throughput: 2027 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.5 ms RTT min: 0.1 ms + RTT max: 73.9 ms RTT max: 0.5 ms + RTT avg: 26.7 ms RTT avg: 0.1 ms + RTT stdev: 40.9 ms RTT stdev: 0.2 ms + + RTT from 3WHS: 4.5 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 73.9 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 73.9 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 73.9 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.3.128:47484 + host d: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:27.934079 1997 + last packet: Mon Jul 14 13:10:28.135097 1997 + elapsed time: 0:00:00.201018 + total packets: 19 + filename: http.dmp.gz + c->d: d->c: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 338 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 338 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 338 bytes max segm size: 46 bytes + min segm size: 338 bytes min segm size: 2 bytes + avg segm size: 337 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 339 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 49 bytes avg owin: 26 bytes + wavg owin: 228 bytes wavg owin: 0 bytes + initial window: 338 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 338 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.011 secs + idletime max: 136.1 ms idletime max: 96.5 ms + throughput: 1681 Bps throughput: 895 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 2.0 ms RTT min: 0.1 ms + RTT max: 58.8 ms RTT max: 0.9 ms + RTT avg: 21.1 ms RTT avg: 0.2 ms + RTT stdev: 32.6 ms RTT stdev: 0.3 ms + + RTT from 3WHS: 2.5 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 58.8 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 58.8 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 58.7 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 3: + host e: 132.235.3.128:47485 + host f: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:27.938572 1997 + last packet: Mon Jul 14 13:10:28.194705 1997 + elapsed time: 0:00:00.256133 + total packets: 19 + filename: http.dmp.gz + e->f: f->e: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 340 unique bytes sent: 179 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 340 actual data bytes: 179 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 340 bytes max segm size: 46 bytes + min segm size: 340 bytes min segm size: 2 bytes + avg segm size: 339 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 341 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 49 bytes avg owin: 26 bytes + wavg owin: 238 bytes wavg owin: 0 bytes + initial window: 340 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 340 bytes ttl stream length: 179 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.007 secs + idletime max: 179.7 ms idletime max: 116.5 ms + throughput: 1327 Bps throughput: 699 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 61.9 ms RTT max: 0.1 ms + RTT avg: 22.0 ms RTT avg: 0.1 ms + RTT stdev: 34.6 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 61.9 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 61.9 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 61.9 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 4: + host g: 132.235.3.128:47486 + host h: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:27.946056 1997 + last packet: Mon Jul 14 13:10:28.164435 1997 + elapsed time: 0:00:00.218379 + total packets: 19 + filename: http.dmp.gz + g->h: h->g: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 338 unique bytes sent: 179 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 338 actual data bytes: 179 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 338 bytes max segm size: 46 bytes + min segm size: 338 bytes min segm size: 2 bytes + avg segm size: 337 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 339 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 49 bytes avg owin: 26 bytes + wavg owin: 279 bytes wavg owin: 0 bytes + initial window: 338 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 338 bytes ttl stream length: 179 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.007 secs + idletime max: 182.1 ms idletime max: 116.1 ms + throughput: 1548 Bps throughput: 820 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 64.6 ms RTT max: 0.2 ms + RTT avg: 22.8 ms RTT avg: 0.2 ms + RTT stdev: 36.1 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.2 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 64.6 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 64.6 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 64.6 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 5: + host i: 132.235.3.128:47487 + host j: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:27.949752 1997 + last packet: Mon Jul 14 13:10:28.130609 1997 + elapsed time: 0:00:00.180857 + total packets: 19 + filename: http.dmp.gz + i->j: j->i: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 346 unique bytes sent: 178 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 346 actual data bytes: 178 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 346 bytes max segm size: 46 bytes + min segm size: 346 bytes min segm size: 2 bytes + avg segm size: 345 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 347 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 50 bytes avg owin: 26 bytes + wavg owin: 276 bytes wavg owin: 0 bytes + initial window: 346 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 346 bytes ttl stream length: 178 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.012 secs + idletime max: 146.8 ms idletime max: 80.9 ms + throughput: 1913 Bps throughput: 984 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.6 ms RTT min: 0.1 ms + RTT max: 69.5 ms RTT max: 5.7 ms + RTT avg: 24.3 ms RTT avg: 1.0 ms + RTT stdev: 39.1 ms RTT stdev: 2.3 ms + + RTT from 3WHS: 1.9 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 69.5 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 69.5 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 69.4 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 6: + host k: 132.235.3.128:47488 + host l: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:27.955718 1997 + last packet: Mon Jul 14 13:10:28.138488 1997 + elapsed time: 0:00:00.182770 + total packets: 19 + filename: http.dmp.gz + k->l: l->k: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 336 unique bytes sent: 178 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 336 actual data bytes: 178 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 336 bytes max segm size: 46 bytes + min segm size: 336 bytes min segm size: 2 bytes + avg segm size: 335 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 337 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 49 bytes avg owin: 26 bytes + wavg owin: 251 bytes wavg owin: 0 bytes + initial window: 336 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 336 bytes ttl stream length: 178 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.012 secs + idletime max: 137.8 ms idletime max: 83.7 ms + throughput: 1838 Bps throughput: 974 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.6 ms RTT min: 0.1 ms + RTT max: 51.2 ms RTT max: 2.9 ms + RTT avg: 18.2 ms RTT avg: 0.6 ms + RTT stdev: 28.6 ms RTT stdev: 1.2 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 51.2 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 51.2 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 51.2 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 7: + host m: 132.235.3.128:47489 + host n: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.272613 1997 + last packet: Mon Jul 14 13:10:30.362143 1997 + elapsed time: 0:00:00.089530 + total packets: 18 + filename: http.dmp.gz + m->n: n->m: + total packets: 8 total packets: 10 + ack pkts sent: 7 ack pkts sent: 10 + pure acks sent: 5 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 344 unique bytes sent: 179 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 344 actual data bytes: 179 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 344 bytes max segm size: 46 bytes + min segm size: 344 bytes min segm size: 2 bytes + avg segm size: 343 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 345 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 50 bytes avg owin: 28 bytes + wavg owin: 301 bytes wavg owin: 0 bytes + initial window: 344 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 344 bytes ttl stream length: 179 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.004 secs + idletime max: 78.5 ms idletime max: 80.0 ms + throughput: 3842 Bps throughput: 1999 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.6 ms RTT min: 0.1 ms + RTT max: 77.6 ms RTT max: 0.5 ms + RTT avg: 27.0 ms RTT avg: 0.2 ms + RTT stdev: 43.8 ms RTT stdev: 0.2 ms + + RTT from 3WHS: 1.9 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 77.6 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 77.6 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 77.6 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 8: + host o: 132.235.3.128:47490 + host p: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.465489 1997 + last packet: Mon Jul 14 13:10:30.673525 1997 + elapsed time: 0:00:00.208036 + total packets: 19 + filename: http.dmp.gz + o->p: p->o: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 362 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 362 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 362 bytes max segm size: 46 bytes + min segm size: 362 bytes min segm size: 2 bytes + avg segm size: 361 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 363 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 52 bytes avg owin: 26 bytes + wavg owin: 240 bytes wavg owin: 0 bytes + initial window: 362 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 362 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.010 secs + idletime max: 139.4 ms idletime max: 166.4 ms + throughput: 1740 Bps throughput: 865 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 113.5 ms RTT max: 0.6 ms + RTT avg: 39.1 ms RTT avg: 0.2 ms + RTT stdev: 64.4 ms RTT stdev: 0.2 ms + + RTT from 3WHS: 2.0 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 113.5 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 113.5 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 113.5 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 9: + host q: 132.235.3.128:47491 + host r: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.469609 1997 + last packet: Mon Jul 14 13:10:30.753450 1997 + elapsed time: 0:00:00.283841 + total packets: 19 + filename: http.dmp.gz + q->r: r->q: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 365 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 365 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 365 bytes max segm size: 46 bytes + min segm size: 365 bytes min segm size: 2 bytes + avg segm size: 364 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 366 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 253 bytes wavg owin: 0 bytes + initial window: 365 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 365 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.038 secs + idletime max: 198.0 ms idletime max: 161.5 ms + throughput: 1286 Bps throughput: 634 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.9 ms RTT min: 0.1 ms + RTT max: 116.0 ms RTT max: 0.1 ms + RTT avg: 40.1 ms RTT avg: 0.1 ms + RTT stdev: 65.7 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 2.6 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 116.0 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 116.0 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 115.9 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 10: + host s: 132.235.3.128:47492 + host t: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.473491 1997 + last packet: Mon Jul 14 13:10:30.806996 1997 + elapsed time: 0:00:00.333505 + total packets: 20 + filename: http.dmp.gz + s->t: t->s: + total packets: 9 total packets: 11 + ack pkts sent: 8 ack pkts sent: 11 + pure acks sent: 6 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 368 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 368 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 1 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/2 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 368 bytes max segm size: 46 bytes + min segm size: 368 bytes min segm size: 2 bytes + avg segm size: 367 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 369 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 47 bytes avg owin: 29 bytes + wavg owin: 311 bytes wavg owin: 0 bytes + initial window: 368 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 368 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.008 secs + idletime max: 281.9 ms idletime max: 160.1 ms + throughput: 1103 Bps throughput: 540 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.9 ms RTT min: 0.1 ms + RTT max: 118.5 ms RTT max: 3.4 ms + RTT avg: 40.8 ms RTT avg: 0.6 ms + RTT stdev: 67.3 ms RTT stdev: 1.3 ms + + RTT from 3WHS: 1.9 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 118.5 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 118.5 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 118.5 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 11: + host u: 132.235.3.128:47493 + host v: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.477607 1997 + last packet: Mon Jul 14 13:10:30.776213 1997 + elapsed time: 0:00:00.298606 + total packets: 19 + filename: http.dmp.gz + u->v: v->u: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 367 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 367 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 367 bytes max segm size: 46 bytes + min segm size: 367 bytes min segm size: 2 bytes + avg segm size: 366 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 368 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 301 bytes wavg owin: 0 bytes + initial window: 367 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 367 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.010 secs + idletime max: 246.0 ms idletime max: 153.5 ms + throughput: 1229 Bps throughput: 603 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 121.1 ms RTT max: 6.7 ms + RTT avg: 41.7 ms RTT avg: 1.2 ms + RTT stdev: 68.8 ms RTT stdev: 2.7 ms + + RTT from 3WHS: 2.2 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 121.1 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 121.1 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 121.1 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 12: + host w: 132.235.3.128:47494 + host x: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.481699 1997 + last packet: Mon Jul 14 13:10:30.737703 1997 + elapsed time: 0:00:00.256004 + total packets: 19 + filename: http.dmp.gz + w->x: x->w: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 366 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 366 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 366 bytes max segm size: 46 bytes + min segm size: 366 bytes min segm size: 2 bytes + avg segm size: 365 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 367 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 273 bytes wavg owin: 0 bytes + initial window: 366 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 366 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.012 secs + idletime max: 192.8 ms idletime max: 149.4 ms + throughput: 1430 Bps throughput: 703 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 2.1 ms RTT min: 0.1 ms + RTT max: 123.7 ms RTT max: 15.2 ms + RTT avg: 43.3 ms RTT avg: 2.6 ms + RTT stdev: 69.6 ms RTT stdev: 6.2 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 123.7 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 123.7 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 123.6 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 13: + host y: 132.235.3.128:47495 + host z: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.485660 1997 + last packet: Mon Jul 14 13:10:30.723660 1997 + elapsed time: 0:00:00.238000 + total packets: 19 + filename: http.dmp.gz + y->z: z->y: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 365 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 365 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 365 bytes max segm size: 46 bytes + min segm size: 365 bytes min segm size: 2 bytes + avg segm size: 364 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 366 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 306 bytes wavg owin: 0 bytes + initial window: 365 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 365 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.012 secs + idletime max: 199.8 ms idletime max: 145.3 ms + throughput: 1534 Bps throughput: 756 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.6 ms RTT min: 0.1 ms + RTT max: 128.4 ms RTT max: 4.2 ms + RTT avg: 44.0 ms RTT avg: 0.8 ms + RTT stdev: 73.1 ms RTT stdev: 1.7 ms + + RTT from 3WHS: 2.0 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 128.4 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 128.4 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 128.4 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 14: + host aa: 132.235.3.128:47496 + host ab: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.674875 1997 + last packet: Mon Jul 14 13:10:30.912124 1997 + elapsed time: 0:00:00.237249 + total packets: 19 + filename: http.dmp.gz + aa->ab: ab->aa: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 363 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 363 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 363 bytes max segm size: 46 bytes + min segm size: 363 bytes min segm size: 2 bytes + avg segm size: 362 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 364 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 52 bytes avg owin: 26 bytes + wavg owin: 265 bytes wavg owin: 0 bytes + initial window: 363 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 363 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.006 secs + idletime max: 174.1 ms idletime max: 156.8 ms + throughput: 1530 Bps throughput: 759 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 2.1 ms RTT min: 0.1 ms + RTT max: 153.1 ms RTT max: 18.5 ms + RTT avg: 52.7 ms RTT avg: 3.2 ms + RTT stdev: 87.0 ms RTT stdev: 7.5 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 153.1 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 153.1 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 153.1 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 15: + host ac: 132.235.3.128:47497 + host ad: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.724811 1997 + last packet: Mon Jul 14 13:10:30.986332 1997 + elapsed time: 0:00:00.261521 + total packets: 19 + filename: http.dmp.gz + ac->ad: ad->ac: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 366 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 366 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 366 bytes max segm size: 46 bytes + min segm size: 366 bytes min segm size: 2 bytes + avg segm size: 365 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 367 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 271 bytes wavg owin: 0 bytes + initial window: 366 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 366 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.011 secs + idletime max: 194.5 ms idletime max: 106.8 ms + throughput: 1400 Bps throughput: 688 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 85.6 ms RTT max: 0.2 ms + RTT avg: 29.9 ms RTT avg: 0.1 ms + RTT stdev: 48.3 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 85.6 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 85.6 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 85.6 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 16: + host ae: 132.235.3.128:47498 + host af: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.735098 1997 + last packet: Mon Jul 14 13:10:31.027841 1997 + elapsed time: 0:00:00.292743 + total packets: 19 + filename: http.dmp.gz + ae->af: af->ae: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 370 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 370 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 370 bytes max segm size: 46 bytes + min segm size: 370 bytes min segm size: 2 bytes + avg segm size: 369 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 371 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 293 bytes wavg owin: 0 bytes + initial window: 370 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 370 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.012 secs + idletime max: 234.4 ms idletime max: 141.9 ms + throughput: 1264 Bps throughput: 615 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.7 ms RTT min: 0.1 ms + RTT max: 90.9 ms RTT max: 0.2 ms + RTT avg: 31.6 ms RTT avg: 0.1 ms + RTT stdev: 51.3 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 90.9 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 90.9 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 90.8 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 17: + host ag: 132.235.3.128:47499 + host ah: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.759000 1997 + last packet: Mon Jul 14 13:10:31.024318 1997 + elapsed time: 0:00:00.265318 + total packets: 19 + filename: http.dmp.gz + ag->ah: ah->ag: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 370 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 370 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 370 bytes max segm size: 46 bytes + min segm size: 370 bytes min segm size: 2 bytes + avg segm size: 369 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 371 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 335 bytes wavg owin: 0 bytes + initial window: 370 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 370 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.010 secs + idletime max: 240.6 ms idletime max: 170.3 ms + throughput: 1395 Bps throughput: 678 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.7 ms RTT min: 0.1 ms + RTT max: 66.2 ms RTT max: 2.1 ms + RTT avg: 23.4 ms RTT avg: 0.4 ms + RTT stdev: 37.1 ms RTT stdev: 0.8 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 66.2 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 66.2 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 66.2 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 18: + host ai: 132.235.3.128:47500 + host aj: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.780007 1997 + last packet: Mon Jul 14 13:10:31.136908 1997 + elapsed time: 0:00:00.356901 + total packets: 19 + filename: http.dmp.gz + ai->aj: aj->ai: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 367 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 367 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 367 bytes max segm size: 46 bytes + min segm size: 367 bytes min segm size: 2 bytes + avg segm size: 366 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 368 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 277 bytes wavg owin: 5 bytes + initial window: 367 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 367 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.042 secs + idletime max: 270.3 ms idletime max: 224.5 ms + throughput: 1028 Bps throughput: 504 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.7 ms RTT min: 0.1 ms + RTT max: 44.9 ms RTT max: 0.9 ms + RTT avg: 16.3 ms RTT avg: 0.2 ms + RTT stdev: 24.8 ms RTT stdev: 0.3 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 44.9 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 44.9 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 44.9 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 19: + host ak: 132.235.3.128:47501 + host al: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.812276 1997 + last packet: Mon Jul 14 13:10:31.163308 1997 + elapsed time: 0:00:00.351032 + total packets: 19 + filename: http.dmp.gz + ak->al: al->ak: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 369 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 369 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 369 bytes max segm size: 46 bytes + min segm size: 369 bytes min segm size: 2 bytes + avg segm size: 368 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 370 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 327 bytes wavg owin: 0 bytes + initial window: 369 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 369 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.015 secs + idletime max: 312.1 ms idletime max: 294.2 ms + throughput: 1051 Bps throughput: 513 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 2.0 ms RTT min: 0.1 ms + RTT max: 13.1 ms RTT max: 0.1 ms + RTT avg: 5.7 ms RTT avg: 0.1 ms + RTT stdev: 6.4 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 2.1 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 13.1 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 13.1 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 13.1 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 20: + host am: 132.235.3.128:47502 + host an: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.885182 1997 + last packet: Mon Jul 14 13:10:31.162516 1997 + elapsed time: 0:00:00.277334 + total packets: 19 + filename: http.dmp.gz + am->an: an->am: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 364 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 364 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 364 bytes max segm size: 46 bytes + min segm size: 364 bytes min segm size: 2 bytes + avg segm size: 363 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4096 bytes + max owin: 365 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 53 bytes avg owin: 26 bytes + wavg owin: 306 bytes wavg owin: 0 bytes + initial window: 364 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 364 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.009 secs + idletime max: 233.6 ms idletime max: 139.8 ms + throughput: 1312 Bps throughput: 649 Bps + + RTT samples: 3 RTT samples: 6 + RTT min: 1.7 ms RTT min: 0.1 ms + RTT max: 116.9 ms RTT max: 2.1 ms + RTT avg: 42.2 ms RTT avg: 0.5 ms + RTT stdev: 64.8 ms RTT stdev: 0.8 ms + + RTT from 3WHS: 8.0 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 116.9 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 116.9 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 116.9 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 21: + host ao: 132.235.3.128:47503 + host ap: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:30.991604 1997 + last packet: Mon Jul 14 13:10:31.262822 1997 + elapsed time: 0:00:00.271218 + total packets: 19 + filename: http.dmp.gz + ao->ap: ap->ao: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 375 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 375 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 375 bytes max segm size: 46 bytes + min segm size: 375 bytes min segm size: 2 bytes + avg segm size: 374 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 376 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 54 bytes avg owin: 26 bytes + wavg owin: 291 bytes wavg owin: 0 bytes + initial window: 375 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 375 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.009 secs + idletime max: 211.9 ms idletime max: 239.2 ms + throughput: 1383 Bps throughput: 664 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.9 ms RTT min: 0.1 ms + RTT max: 200.6 ms RTT max: 0.2 ms + RTT avg: 68.2 ms RTT avg: 0.1 ms + RTT stdev: 114.7 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 2.2 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 200.6 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 200.6 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 200.6 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 22: + host aq: 132.235.3.128:47504 + host ar: 132.235.1.2:80 + complete conn: yes + first packet: Mon Jul 14 13:10:31.022537 1997 + last packet: Mon Jul 14 13:10:31.292521 1997 + elapsed time: 0:00:00.269984 + total packets: 19 + filename: http.dmp.gz + aq->ar: ar->aq: + total packets: 8 total packets: 11 + ack pkts sent: 7 ack pkts sent: 11 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 371 unique bytes sent: 180 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 371 actual data bytes: 180 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 7 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 371 bytes max segm size: 46 bytes + min segm size: 371 bytes min segm size: 2 bytes + avg segm size: 370 bytes avg segm size: 25 bytes + max win adv: 8760 bytes max win adv: 4096 bytes + min win adv: 8760 bytes min win adv: 4095 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 4095 bytes + max owin: 372 bytes max owin: 67 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 54 bytes avg owin: 26 bytes + wavg owin: 277 bytes wavg owin: 0 bytes + initial window: 371 bytes initial window: 64 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 371 bytes ttl stream length: 180 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.011 secs + idletime max: 202.2 ms idletime max: 207.9 ms + throughput: 1374 Bps throughput: 667 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.6 ms RTT min: 0.1 ms + RTT max: 176.8 ms RTT max: 0.3 ms + RTT avg: 60.3 ms RTT avg: 0.1 ms + RTT stdev: 100.9 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 2.5 ms RTT from 3WHS: 0.3 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 176.8 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 176.8 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 176.8 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 23: + host as: 132.235.3.132:33654 + host at: 4.17.168.6:80 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Tue Aug 14 13:47:01.638680 2001 + last packet: Tue Aug 14 13:47:01.639298 2001 + elapsed time: 0:00:00.000618 + total packets: 3 + filename: http.dmp.gz + as->at: at->as: + total packets: 2 total packets: 1 + ack pkts sent: 2 ack pkts sent: 1 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 24820 bytes max win adv: 10523 bytes + min win adv: 24820 bytes min win adv: 10523 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 10523 bytes + max owin: 1 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 0 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.6 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 0.6 ms RTT max: 0.0 ms + RTT avg: 0.6 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.6 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.6 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.6 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 24: + host au: 132.235.3.132:33666 + host av: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:01.714483 2001 + last packet: Tue Aug 14 13:47:01.806006 2001 + elapsed time: 0:00:00.091523 + total packets: 9 + filename: http.dmp.gz + au->av: av->au: + total packets: 6 total packets: 3 + ack pkts sent: 5 ack pkts sent: 3 + pure acks sent: 3 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 278 unique bytes sent: 392 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 278 actual data bytes: 392 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 278 bytes max segm size: 392 bytes + min segm size: 278 bytes min segm size: 392 bytes + avg segm size: 277 bytes avg segm size: 391 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5865 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5958 bytes + max owin: 279 bytes max owin: 393 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 56 bytes avg owin: 197 bytes + wavg owin: 262 bytes wavg owin: 10 bytes + initial window: 278 bytes initial window: 392 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 278 bytes ttl stream length: 392 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 86.3 ms idletime max: 88.0 ms + throughput: 3037 Bps throughput: 4283 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 86.0 ms RTT max: 0.3 ms + RTT avg: 29.5 ms RTT avg: 0.1 ms + RTT stdev: 48.9 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 86.0 ms RTT full_sz min: 0.3 ms + RTT full_sz max: 86.0 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 86.0 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 25: + host aw: 132.235.3.132:33667 + host ax: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:01.805113 2001 + last packet: Tue Aug 14 13:47:02.328048 2001 + elapsed time: 0:00:00.522935 + total packets: 48 + filename: http.dmp.gz + aw->ax: ax->aw: + total packets: 21 total packets: 27 + ack pkts sent: 20 ack pkts sent: 27 + pure acks sent: 17 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 584 unique bytes sent: 35350 + actual data pkts: 2 actual data pkts: 25 + actual data bytes: 584 actual data bytes: 35350 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 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 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 295 bytes max segm size: 1460 bytes + min segm size: 289 bytes min segm size: 680 bytes + avg segm size: 291 bytes avg segm size: 1413 bytes + max win adv: 24820 bytes max win adv: 7604 bytes + min win adv: 2920 bytes min win adv: 5855 bytes + zero win adv: 1 times zero win adv: 0 times + avg win adv: 19188 bytes avg win adv: 5995 bytes + max owin: 296 bytes max owin: 13141 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 30 bytes avg owin: 5066 bytes + wavg owin: 51 bytes wavg owin: 3241 bytes + initial window: 289 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 584 bytes ttl stream length: 35350 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 11390 bytes + truncated packets: 0 pkts truncated packets: 24 pkts + data xmit time: 0.326 secs data xmit time: 0.326 secs + idletime max: 120.8 ms idletime max: 192.7 ms + throughput: 1117 Bps throughput: 67599 Bps + + RTT samples: 4 RTT samples: 16 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 1.9 ms RTT max: 119.2 ms + RTT avg: 1.4 ms RTT avg: 25.3 ms + RTT stdev: 0.6 ms RTT stdev: 32.3 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 12 + RTT full_sz min: 1.4 ms RTT full_sz min: 0.4 ms + RTT full_sz max: 1.4 ms RTT full_sz max: 18.4 ms + RTT full_sz avg: 1.4 ms RTT full_sz avg: 16.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 5.1 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 11 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 26: + host ay: 132.235.3.132:33655 + host az: 4.17.168.6:80 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Tue Aug 14 13:47:01.900681 2001 + last packet: Tue Aug 14 13:47:01.901408 2001 + elapsed time: 0:00:00.000727 + total packets: 3 + filename: http.dmp.gz + ay->az: az->ay: + total packets: 2 total packets: 1 + ack pkts sent: 2 ack pkts sent: 1 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 24820 bytes max win adv: 10523 bytes + min win adv: 24820 bytes min win adv: 10523 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 10523 bytes + max owin: 1 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 0 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.7 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 0.7 ms RTT max: 0.0 ms + RTT avg: 0.7 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.7 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.7 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.7 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 27: + host ba: 132.235.3.132:33668 + host bb: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:01.901684 2001 + last packet: Tue Aug 14 13:47:02.315161 2001 + elapsed time: 0:00:00.413477 + total packets: 11 + filename: http.dmp.gz + ba->bb: bb->ba: + total packets: 7 total packets: 4 + ack pkts sent: 6 ack pkts sent: 4 + pure acks sent: 4 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 294 unique bytes sent: 2721 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 294 actual data bytes: 2721 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 294 bytes max segm size: 1460 bytes + min segm size: 294 bytes min segm size: 1261 bytes + avg segm size: 293 bytes avg segm size: 1359 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5849 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5923 bytes + max owin: 295 bytes max owin: 2722 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 50 bytes avg owin: 1394 bytes + wavg owin: 2 bytes wavg owin: 2657 bytes + initial window: 294 bytes initial window: 2721 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 294 bytes ttl stream length: 2721 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 781 bytes + truncated packets: 0 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 287.7 ms idletime max: 404.0 ms + throughput: 711 Bps throughput: 6581 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 2.1 ms RTT max: 115.2 ms + RTT avg: 1.3 ms RTT avg: 29.2 ms + RTT stdev: 0.7 ms RTT stdev: 57.4 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 2.1 ms RTT full_sz min: 1.4 ms + RTT full_sz max: 2.1 ms RTT full_sz max: 1.4 ms + RTT full_sz avg: 2.1 ms RTT full_sz avg: 1.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 28: + host bc: 132.235.3.132:33656 + host bd: 4.17.168.6:80 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Tue Aug 14 13:47:02.282984 2001 + last packet: Tue Aug 14 13:47:02.283849 2001 + elapsed time: 0:00:00.000865 + total packets: 3 + filename: http.dmp.gz + bc->bd: bd->bc: + total packets: 2 total packets: 1 + ack pkts sent: 2 ack pkts sent: 1 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 24820 bytes max win adv: 10209 bytes + min win adv: 24820 bytes min win adv: 10209 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 10209 bytes + max owin: 1 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 0 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.9 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 0.8 ms RTT min: 0.0 ms + RTT max: 0.8 ms RTT max: 0.0 ms + RTT avg: 0.8 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.8 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.8 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.8 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 29: + host be: 132.235.3.132:33657 + host bf: 4.17.168.6:80 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Tue Aug 14 13:47:02.299881 2001 + last packet: Tue Aug 14 13:47:02.300479 2001 + elapsed time: 0:00:00.000598 + total packets: 3 + filename: http.dmp.gz + be->bf: bf->be: + total packets: 2 total packets: 1 + ack pkts sent: 2 ack pkts sent: 1 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 24820 bytes max win adv: 10523 bytes + min win adv: 24820 bytes min win adv: 10523 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 10523 bytes + max owin: 1 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 0 bytes avg owin: 1 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 0.6 ms idletime max: 0.0 ms + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 1 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 0.6 ms RTT max: 0.0 ms + RTT avg: 0.6 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.6 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 0.6 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.6 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 30: + host bg: 132.235.3.132:33669 + host bh: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:02.495416 2001 + last packet: Tue Aug 14 13:47:10.097222 2001 + elapsed time: 0:00:07.601805 + total packets: 45 + filename: http.dmp.gz + bg->bh: bh->bg: + total packets: 26 total packets: 19 + ack pkts sent: 25 ack pkts sent: 19 + pure acks sent: 15 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3291 unique bytes sent: 15099 + actual data pkts: 9 actual data pkts: 17 + actual data bytes: 3291 actual data bytes: 15099 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 9 pushed data pkts: 9 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 369 bytes max segm size: 1460 bytes + min segm size: 360 bytes min segm size: 62 bytes + avg segm size: 365 bytes avg segm size: 888 bytes + max win adv: 24820 bytes max win adv: 16364 bytes + min win adv: 24758 bytes min win adv: 5775 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24817 bytes avg win adv: 9005 bytes + max owin: 370 bytes max owin: 5841 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 132 bytes avg owin: 2056 bytes + wavg owin: 50 bytes wavg owin: 696 bytes + initial window: 369 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 3291 bytes ttl stream length: 15099 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 3920 bytes + truncated packets: 0 pkts truncated packets: 8 pkts + data xmit time: 6.390 secs data xmit time: 6.375 secs + idletime max: 3052.0 ms idletime max: 3185.9 ms + throughput: 433 Bps throughput: 1986 Bps + + RTT samples: 11 RTT samples: 15 + RTT min: 0.8 ms RTT min: 0.1 ms + RTT max: 38.0 ms RTT max: 135.9 ms + RTT avg: 19.5 ms RTT avg: 72.7 ms + RTT stdev: 10.7 ms RTT stdev: 55.4 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 4 RTT full_sz smpls: 4 + RTT full_sz min: 20.2 ms RTT full_sz min: 0.6 ms + RTT full_sz max: 38.0 ms RTT full_sz max: 20.2 ms + RTT full_sz avg: 25.5 ms RTT full_sz avg: 12.2 ms + RTT full_sz stdev: 8.4 ms RTT full_sz stdev: 8.7 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 4 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 31: + host bi: 132.235.3.132:33670 + host bj: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:02.501946 2001 + last packet: Tue Aug 14 13:47:08.970136 2001 + elapsed time: 0:00:06.468189 + total packets: 45 + filename: http.dmp.gz + bi->bj: bj->bi: + total packets: 27 total packets: 18 + ack pkts sent: 26 ack pkts sent: 18 + pure acks sent: 15 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 3686 unique bytes sent: 15808 + actual data pkts: 10 actual data pkts: 16 + actual data bytes: 3686 actual data bytes: 15808 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 10 pushed data pkts: 10 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 380 bytes max segm size: 1460 bytes + min segm size: 360 bytes min segm size: 347 bytes + avg segm size: 368 bytes avg segm size: 987 bytes + max win adv: 24820 bytes max win adv: 19284 bytes + min win adv: 24820 bytes min win adv: 5779 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 10828 bytes + max owin: 381 bytes max owin: 4381 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 142 bytes avg owin: 1617 bytes + wavg owin: 75 bytes wavg owin: 956 bytes + initial window: 365 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 3686 bytes ttl stream length: 15808 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 3614 bytes + truncated packets: 0 pkts truncated packets: 9 pkts + data xmit time: 3.283 secs data xmit time: 3.266 secs + idletime max: 3042.8 ms idletime max: 3161.2 ms + throughput: 570 Bps throughput: 2444 Bps + + RTT samples: 12 RTT samples: 15 + RTT min: 0.7 ms RTT min: 0.1 ms + RTT max: 38.2 ms RTT max: 142.8 ms + RTT avg: 18.9 ms RTT avg: 83.2 ms + RTT stdev: 9.8 ms RTT stdev: 55.3 ms + + RTT from 3WHS: 0.9 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 21.3 ms RTT full_sz min: 13.5 ms + RTT full_sz max: 21.3 ms RTT full_sz max: 17.1 ms + RTT full_sz avg: 21.3 ms RTT full_sz avg: 14.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 2.1 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 32: + host bk: 132.235.3.132:33671 + host bl: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:02.508393 2001 + last packet: Tue Aug 14 13:47:08.446447 2001 + elapsed time: 0:00:05.938054 + total packets: 37 + filename: http.dmp.gz + bk->bl: bl->bk: + total packets: 22 total packets: 15 + ack pkts sent: 21 ack pkts sent: 15 + pure acks sent: 12 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2949 unique bytes sent: 11843 + actual data pkts: 8 actual data pkts: 13 + actual data bytes: 2949 actual data bytes: 11843 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 8 pushed data pkts: 8 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 380 bytes max segm size: 1460 bytes + min segm size: 361 bytes min segm size: 245 bytes + avg segm size: 368 bytes avg segm size: 910 bytes + max win adv: 24820 bytes max win adv: 16364 bytes + min win adv: 24820 bytes min win adv: 5771 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 9718 bytes + max owin: 381 bytes max owin: 4381 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 141 bytes avg owin: 1576 bytes + wavg owin: 75 bytes wavg owin: 832 bytes + initial window: 373 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 2949 bytes ttl stream length: 11843 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 2507 bytes + truncated packets: 0 pkts truncated packets: 7 pkts + data xmit time: 3.111 secs data xmit time: 3.093 secs + idletime max: 2689.3 ms idletime max: 2804.2 ms + throughput: 497 Bps throughput: 1994 Bps + + RTT samples: 10 RTT samples: 13 + RTT min: 0.5 ms RTT min: 0.0 ms + RTT max: 38.0 ms RTT max: 282.8 ms + RTT avg: 18.8 ms RTT avg: 90.8 ms + RTT stdev: 11.0 ms RTT stdev: 79.4 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 23.5 ms RTT full_sz min: 17.6 ms + RTT full_sz max: 23.5 ms RTT full_sz max: 18.2 ms + RTT full_sz avg: 23.5 ms RTT full_sz avg: 17.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.3 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 2 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 33: + host bm: 132.235.3.132:33672 + host bn: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:02.513788 2001 + last packet: Tue Aug 14 13:47:08.235833 2001 + elapsed time: 0:00:05.722044 + total packets: 35 + filename: http.dmp.gz + bm->bn: bn->bm: + total packets: 22 total packets: 13 + ack pkts sent: 21 ack pkts sent: 13 + pure acks sent: 12 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2923 unique bytes sent: 8493 + actual data pkts: 8 actual data pkts: 11 + actual data bytes: 2923 actual data bytes: 8493 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 8 pushed data pkts: 8 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 369 bytes max segm size: 1460 bytes + min segm size: 361 bytes min segm size: 193 bytes + avg segm size: 365 bytes avg segm size: 772 bytes + max win adv: 24820 bytes max win adv: 16364 bytes + min win adv: 24820 bytes min win adv: 5775 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 10551 bytes + max owin: 370 bytes max owin: 4199 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 140 bytes avg owin: 1195 bytes + wavg owin: 68 bytes wavg owin: 694 bytes + initial window: 369 bytes initial window: 4198 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 2923 bytes ttl stream length: 8493 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 1778 bytes + truncated packets: 0 pkts truncated packets: 4 pkts + data xmit time: 2.948 secs data xmit time: 2.936 secs + idletime max: 2628.6 ms idletime max: 2746.5 ms + throughput: 511 Bps throughput: 1484 Bps + + RTT samples: 10 RTT samples: 12 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 57.9 ms RTT max: 134.6 ms + RTT avg: 22.4 ms RTT avg: 81.6 ms + RTT stdev: 16.5 ms RTT stdev: 55.9 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 2 RTT full_sz smpls: 2 + RTT full_sz min: 37.1 ms RTT full_sz min: 13.0 ms + RTT full_sz max: 57.9 ms RTT full_sz max: 13.1 ms + RTT full_sz avg: 47.5 ms RTT full_sz avg: 13.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 34: + host bo: 132.235.3.132:33673 + host bp: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:08.236126 2001 + last packet: Tue Aug 14 13:47:08.355371 2001 + elapsed time: 0:00:00.119245 + total packets: 9 + filename: http.dmp.gz + bo->bp: bp->bo: + total packets: 6 total packets: 3 + ack pkts sent: 5 ack pkts sent: 3 + pure acks sent: 3 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 385 unique bytes sent: 469 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 385 actual data bytes: 469 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 385 bytes max segm size: 469 bytes + min segm size: 385 bytes min segm size: 469 bytes + avg segm size: 384 bytes avg segm size: 468 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5758 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5887 bytes + max owin: 386 bytes max owin: 470 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 78 bytes avg owin: 235 bytes + wavg owin: 134 bytes wavg owin: 293 bytes + initial window: 385 bytes initial window: 469 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 385 bytes ttl stream length: 469 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 73.4 ms idletime max: 74.5 ms + throughput: 3229 Bps throughput: 3933 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.8 ms RTT min: 0.0 ms + RTT max: 41.3 ms RTT max: 0.3 ms + RTT avg: 14.3 ms RTT avg: 0.1 ms + RTT stdev: 23.4 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 41.3 ms RTT full_sz min: 0.3 ms + RTT full_sz max: 41.3 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 41.3 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 35: + host bq: 132.235.3.132:33674 + host br: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:08.355705 2001 + last packet: Tue Aug 14 13:47:10.373069 2001 + elapsed time: 0:00:02.017364 + total packets: 54 + filename: http.dmp.gz + bq->br: br->bq: + total packets: 24 total packets: 30 + ack pkts sent: 23 ack pkts sent: 30 + pure acks sent: 17 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2045 unique bytes sent: 36865 + actual data pkts: 5 actual data pkts: 28 + actual data bytes: 2045 actual data bytes: 36865 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 5 pushed data pkts: 4 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 437 bytes max segm size: 1460 bytes + min segm size: 379 bytes min segm size: 287 bytes + avg segm size: 408 bytes avg segm size: 1316 bytes + max win adv: 24820 bytes max win adv: 11984 bytes + min win adv: 2920 bytes min win adv: 5725 bytes + zero win adv: 1 times zero win adv: 0 times + avg win adv: 22325 bytes avg win adv: 6490 bytes + max owin: 438 bytes max owin: 8761 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 89 bytes avg owin: 4292 bytes + wavg owin: 87 bytes wavg owin: 1426 bytes + initial window: 419 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 2045 bytes ttl stream length: 48551 bytes + missed data: 0 bytes missed data: 11686 bytes + truncated data: 0 bytes truncated data: 11760 bytes + truncated packets: 0 pkts truncated packets: 24 pkts + data xmit time: 1.488 secs data xmit time: 1.485 secs + idletime max: 758.9 ms idletime max: 879.0 ms + throughput: 1014 Bps throughput: 18274 Bps + + RTT samples: 7 RTT samples: 13 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 4.5 ms RTT max: 118.8 ms + RTT avg: 1.7 ms RTT avg: 39.4 ms + RTT stdev: 1.4 ms RTT stdev: 47.8 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 7 + RTT full_sz min: 1.3 ms RTT full_sz min: 0.4 ms + RTT full_sz max: 1.3 ms RTT full_sz max: 18.4 ms + RTT full_sz avg: 1.3 ms RTT full_sz avg: 12.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 7.4 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 17 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 36: + host bs: 132.235.3.132:33675 + host bt: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:08.446893 2001 + last packet: Tue Aug 14 13:47:10.441274 2001 + elapsed time: 0:00:01.994381 + total packets: 18 + filename: http.dmp.gz + bs->bt: bt->bs: + total packets: 12 total packets: 6 + ack pkts sent: 11 ack pkts sent: 6 + pure acks sent: 6 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1675 unique bytes sent: 1986 + actual data pkts: 4 actual data pkts: 4 + actual data bytes: 1675 actual data bytes: 1986 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 4 pushed data pkts: 4 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 437 bytes max segm size: 876 bytes + min segm size: 383 bytes min segm size: 324 bytes + avg segm size: 418 bytes avg segm size: 496 bytes + max win adv: 24820 bytes max win adv: 10524 bytes + min win adv: 24820 bytes min win adv: 5707 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 8261 bytes + max owin: 438 bytes max owin: 877 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 153 bytes avg owin: 398 bytes + wavg owin: 66 bytes wavg owin: 440 bytes + initial window: 437 bytes initial window: 324 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 1675 bytes ttl stream length: 1986 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 1.558 secs data xmit time: 1.558 secs + idletime max: 937.5 ms idletime max: 1049.2 ms + throughput: 840 Bps throughput: 996 Bps + + RTT samples: 6 RTT samples: 6 + RTT min: 0.7 ms RTT min: 0.1 ms + RTT max: 6.1 ms RTT max: 111.2 ms + RTT avg: 2.0 ms RTT avg: 52.8 ms + RTT stdev: 2.0 ms RTT stdev: 57.4 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1.4 ms RTT full_sz min: 92.8 ms + RTT full_sz max: 1.4 ms RTT full_sz max: 92.8 ms + RTT full_sz avg: 1.4 ms RTT full_sz avg: 92.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 37: + host bu: 132.235.3.132:33676 + host bv: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:08.975116 2001 + last packet: Tue Aug 14 13:47:10.253586 2001 + elapsed time: 0:00:01.278470 + total packets: 9 + filename: http.dmp.gz + bu->bv: bv->bu: + total packets: 6 total packets: 3 + ack pkts sent: 5 ack pkts sent: 3 + pure acks sent: 3 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 425 unique bytes sent: 369 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 425 actual data bytes: 369 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 425 bytes max segm size: 369 bytes + min segm size: 425 bytes min segm size: 369 bytes + avg segm size: 424 bytes avg segm size: 368 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5718 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5860 bytes + max owin: 426 bytes max owin: 370 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 86 bytes avg owin: 185 bytes + wavg owin: 5 bytes wavg owin: 191 bytes + initial window: 425 bytes initial window: 369 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 425 bytes ttl stream length: 369 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 645.7 ms idletime max: 663.5 ms + throughput: 332 Bps throughput: 289 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.8 ms RTT min: 0.0 ms + RTT max: 1.4 ms RTT max: 17.0 ms + RTT avg: 1.0 ms RTT avg: 5.7 ms + RTT stdev: 0.4 ms RTT stdev: 9.8 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1.4 ms RTT full_sz min: 17.0 ms + RTT full_sz max: 1.4 ms RTT full_sz max: 17.0 ms + RTT full_sz avg: 1.4 ms RTT full_sz avg: 17.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 38: + host bw: 132.235.3.132:33677 + host bx: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:10.097234 2001 + last packet: Tue Aug 14 13:47:11.982730 2001 + elapsed time: 0:00:01.885496 + total packets: 11 + filename: http.dmp.gz + bw->bx: bx->bw: + total packets: 7 total packets: 4 + ack pkts sent: 6 ack pkts sent: 4 + pure acks sent: 4 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 426 unique bytes sent: 1727 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 426 actual data bytes: 1727 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 426 bytes max segm size: 1460 bytes + min segm size: 426 bytes min segm size: 267 bytes + avg segm size: 425 bytes avg segm size: 863 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5717 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5824 bytes + max owin: 427 bytes max owin: 1728 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 72 bytes avg owin: 1063 bytes + wavg owin: 5 bytes wavg owin: 1407 bytes + initial window: 426 bytes initial window: 1727 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 426 bytes ttl stream length: 1727 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 490 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1424.9 ms idletime max: 1536.3 ms + throughput: 226 Bps throughput: 916 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 2.3 ms RTT max: 110.7 ms + RTT avg: 1.3 ms RTT avg: 32.5 ms + RTT stdev: 0.9 ms RTT stdev: 52.9 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 2.3 ms RTT full_sz min: 19.2 ms + RTT full_sz max: 2.3 ms RTT full_sz max: 19.2 ms + RTT full_sz avg: 2.3 ms RTT full_sz avg: 19.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 39: + host by: 132.235.3.132:33678 + host bz: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:10.253799 2001 + last packet: Tue Aug 14 13:47:15.726716 2001 + elapsed time: 0:00:05.472916 + total packets: 47 + filename: http.dmp.gz + by->bz: bz->by: + total packets: 21 total packets: 26 + ack pkts sent: 20 ack pkts sent: 26 + pure acks sent: 13 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2263 unique bytes sent: 28541 + actual data pkts: 6 actual data pkts: 23 + actual data bytes: 2263 actual data bytes: 28541 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 6 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 391 bytes max segm size: 1460 bytes + min segm size: 370 bytes min segm size: 349 bytes + avg segm size: 377 bytes avg segm size: 1240 bytes + max win adv: 24820 bytes max win adv: 7604 bytes + min win adv: 20922 bytes min win adv: 5766 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24564 bytes avg win adv: 6636 bytes + max owin: 392 bytes max owin: 7301 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 114 bytes avg owin: 3420 bytes + wavg owin: 220 bytes wavg owin: 2342 bytes + initial window: 378 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 2263 bytes ttl stream length: 28541 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 8338 bytes + truncated packets: 0 pkts truncated packets: 18 pkts + data xmit time: 2.665 secs data xmit time: 5.387 secs + idletime max: 2755.8 ms idletime max: 2591.8 ms + throughput: 413 Bps throughput: 5215 Bps + + RTT samples: 8 RTT samples: 17 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 160.0 ms RTT max: 118.2 ms + RTT avg: 46.5 ms RTT avg: 41.7 ms + RTT stdev: 56.4 ms RTT stdev: 45.1 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 9 + RTT full_sz min: 105.6 ms RTT full_sz min: 11.9 ms + RTT full_sz max: 105.6 ms RTT full_sz max: 26.0 ms + RTT full_sz avg: 105.6 ms RTT full_sz avg: 18.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 4.9 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 8 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 40: + host ca: 132.235.3.132:33679 + host cb: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:10.373321 2001 + last packet: Tue Aug 14 13:47:12.139617 2001 + elapsed time: 0:00:01.766296 + total packets: 9 + filename: http.dmp.gz + ca->cb: cb->ca: + total packets: 6 total packets: 3 + ack pkts sent: 5 ack pkts sent: 3 + pure acks sent: 3 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 370 unique bytes sent: 375 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 370 actual data bytes: 375 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 370 bytes max segm size: 375 bytes + min segm size: 370 bytes min segm size: 375 bytes + avg segm size: 369 bytes avg segm size: 374 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5773 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5897 bytes + max owin: 371 bytes max owin: 376 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 75 bytes avg owin: 188 bytes + wavg owin: 7 bytes wavg owin: 331 bytes + initial window: 370 bytes initial window: 375 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 370 bytes ttl stream length: 375 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1516.6 ms idletime max: 1558.3 ms + throughput: 209 Bps throughput: 212 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 25.7 ms RTT max: 15.9 ms + RTT avg: 15.6 ms RTT avg: 5.4 ms + RTT stdev: 13.2 ms RTT stdev: 9.2 ms + + RTT from 3WHS: 0.6 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 20.4 ms RTT full_sz min: 15.9 ms + RTT full_sz max: 20.4 ms RTT full_sz max: 15.9 ms + RTT full_sz avg: 20.4 ms RTT full_sz avg: 15.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 41: + host cc: 132.235.3.132:33680 + host cd: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:10.440600 2001 + last packet: Tue Aug 14 13:47:12.212005 2001 + elapsed time: 0:00:01.771404 + total packets: 14 + filename: http.dmp.gz + cc->cd: cd->cc: + total packets: 8 total packets: 6 + ack pkts sent: 7 ack pkts sent: 6 + pure acks sent: 5 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 392 unique bytes sent: 4474 + actual data pkts: 1 actual data pkts: 4 + actual data bytes: 392 actual data bytes: 4474 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 392 bytes max segm size: 1460 bytes + min segm size: 392 bytes min segm size: 94 bytes + avg segm size: 391 bytes avg segm size: 1118 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5751 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5817 bytes + max owin: 393 bytes max owin: 4381 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 57 bytes avg owin: 2063 bytes + wavg owin: 7 bytes wavg owin: 1450 bytes + initial window: 392 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 392 bytes ttl stream length: 4474 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 1470 bytes + truncated packets: 0 pkts truncated packets: 3 pkts + data xmit time: 0.000 secs data xmit time: 0.014 secs + idletime max: 1514.3 ms idletime max: 1614.2 ms + throughput: 221 Bps throughput: 2526 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 20.9 ms RTT max: 99.3 ms + RTT avg: 7.4 ms RTT avg: 25.1 ms + RTT stdev: 11.7 ms RTT stdev: 42.0 ms + + RTT from 3WHS: 0.6 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 2 + RTT full_sz min: 20.9 ms RTT full_sz min: 13.1 ms + RTT full_sz max: 20.9 ms RTT full_sz max: 13.2 ms + RTT full_sz avg: 20.9 ms RTT full_sz avg: 13.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 42: + host ce: 132.235.3.132:33681 + host cf: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:11.982966 2001 + last packet: Tue Aug 14 13:47:24.748599 2001 + elapsed time: 0:00:12.765632 + total packets: 9 + filename: http.dmp.gz + ce->cf: cf->ce: + total packets: 5 total packets: 4 + ack pkts sent: 4 ack pkts sent: 4 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 370 unique bytes sent: 349 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 370 actual data bytes: 349 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 370 bytes max segm size: 349 bytes + min segm size: 370 bytes min segm size: 349 bytes + avg segm size: 369 bytes avg segm size: 348 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5773 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5866 bytes + max owin: 371 bytes max owin: 350 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 93 bytes avg owin: 117 bytes + wavg owin: 103 bytes wavg owin: 247 bytes + initial window: 370 bytes initial window: 349 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 370 bytes ttl stream length: 349 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 9025.2 ms idletime max: 9026.6 ms + throughput: 29 Bps throughput: 27 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 133.8 ms RTT max: 188.8 ms + RTT avg: 45.1 ms RTT avg: 63.2 ms + RTT stdev: 76.8 ms RTT stdev: 108.8 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 188.8 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 133.8 ms RTT full_sz min: 0.7 ms + RTT full_sz max: 133.8 ms RTT full_sz max: 0.7 ms + RTT full_sz avg: 133.8 ms RTT full_sz avg: 0.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 43: + host cg: 132.235.3.132:33682 + host ch: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:12.114478 2001 + last packet: Tue Aug 14 13:47:12.301451 2001 + elapsed time: 0:00:00.186973 + total packets: 11 + filename: http.dmp.gz + cg->ch: ch->cg: + total packets: 7 total packets: 4 + ack pkts sent: 6 ack pkts sent: 4 + pure acks sent: 4 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 426 unique bytes sent: 2450 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 426 actual data bytes: 2450 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 426 bytes max segm size: 1460 bytes + min segm size: 426 bytes min segm size: 990 bytes + avg segm size: 425 bytes avg segm size: 1224 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5717 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5824 bytes + max owin: 427 bytes max owin: 2451 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 72 bytes avg owin: 1304 bytes + wavg owin: 37 bytes wavg owin: 1577 bytes + initial window: 426 bytes initial window: 2450 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 426 bytes ttl stream length: 2450 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 510 bytes + truncated packets: 0 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 100.0 ms idletime max: 120.5 ms + throughput: 2278 Bps throughput: 13103 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.7 ms RTT min: 0.0 ms + RTT max: 25.1 ms RTT max: 116.3 ms + RTT avg: 9.3 ms RTT avg: 33.2 ms + RTT stdev: 13.7 ms RTT stdev: 56.0 ms + + RTT from 3WHS: 25.1 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 2.2 ms RTT full_sz min: 16.4 ms + RTT full_sz max: 2.2 ms RTT full_sz max: 16.4 ms + RTT full_sz avg: 2.2 ms RTT full_sz avg: 16.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 44: + host ci: 132.235.3.132:33683 + host cj: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:12.212208 2001 + last packet: Tue Aug 14 13:47:12.421304 2001 + elapsed time: 0:00:00.209096 + total packets: 11 + filename: http.dmp.gz + ci->cj: cj->ci: + total packets: 7 total packets: 4 + ack pkts sent: 6 ack pkts sent: 4 + pure acks sent: 4 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 380 unique bytes sent: 1469 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 380 actual data bytes: 1469 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 380 bytes max segm size: 1460 bytes + min segm size: 380 bytes min segm size: 9 bytes + avg segm size: 379 bytes avg segm size: 734 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5763 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5858 bytes + max owin: 381 bytes max owin: 1470 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 64 bytes avg owin: 977 bytes + wavg owin: 0 bytes wavg owin: 1343 bytes + initial window: 380 bytes initial window: 1469 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 380 bytes ttl stream length: 1469 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 490 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 97.8 ms idletime max: 191.8 ms + throughput: 1817 Bps throughput: 7025 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.8 ms RTT min: 0.0 ms + RTT max: 2.0 ms RTT max: 97.8 ms + RTT avg: 1.4 ms RTT avg: 24.5 ms + RTT stdev: 0.6 ms RTT stdev: 48.8 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 2.0 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 2.0 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 2.0 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 45: + host ck: 132.235.3.132:33684 + host cl: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:12.301593 2001 + last packet: Tue Aug 14 13:47:31.786299 2001 + elapsed time: 0:00:19.484705 + total packets: 10 + filename: http.dmp.gz + ck->cl: cl->ck: + total packets: 6 total packets: 4 + ack pkts sent: 5 ack pkts sent: 4 + pure acks sent: 3 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 370 unique bytes sent: 375 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 370 actual data bytes: 375 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 370 bytes max segm size: 375 bytes + min segm size: 370 bytes min segm size: 375 bytes + avg segm size: 369 bytes avg segm size: 374 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5773 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5866 bytes + max owin: 371 bytes max owin: 376 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 75 bytes avg owin: 126 bytes + wavg owin: 59 bytes wavg owin: 315 bytes + initial window: 370 bytes initial window: 375 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 370 bytes ttl stream length: 375 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 16351.5 ms idletime max: 16352.4 ms + throughput: 19 Bps throughput: 19 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 164.5 ms RTT max: 0.3 ms + RTT avg: 55.3 ms RTT avg: 0.1 ms + RTT stdev: 94.6 ms RTT stdev: 0.2 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 164.5 ms RTT full_sz min: 0.3 ms + RTT full_sz max: 164.5 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 164.5 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 46: + host cm: 132.235.3.132:33685 + host cn: 216.52.153.132:80 + complete conn: yes + first packet: Tue Aug 14 13:47:12.420440 2001 + last packet: Tue Aug 14 13:47:12.910627 2001 + elapsed time: 0:00:00.490187 + total packets: 15 + filename: http.dmp.gz + cm->cn: cn->cm: + total packets: 8 total packets: 7 + ack pkts sent: 7 ack pkts sent: 7 + pure acks sent: 4 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 762 unique bytes sent: 4885 + actual data pkts: 2 actual data pkts: 4 + actual data bytes: 762 actual data bytes: 4885 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 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 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 387 bytes max segm size: 1460 bytes + min segm size: 375 bytes min segm size: 768 bytes + avg segm size: 380 bytes avg segm size: 1220 bytes + max win adv: 24820 bytes max win adv: 7604 bytes + min win adv: 24820 bytes min win adv: 5757 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 6867 bytes + max owin: 388 bytes max owin: 2229 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 109 bytes avg owin: 1058 bytes + wavg owin: 242 bytes wavg owin: 667 bytes + initial window: 387 bytes initial window: 1197 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 762 bytes ttl stream length: 4885 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 1207 bytes + truncated packets: 0 pkts truncated packets: 3 pkts + data xmit time: 0.279 secs data xmit time: 0.148 secs + idletime max: 222.3 ms idletime max: 214.6 ms + throughput: 1555 Bps throughput: 9966 Bps + + RTT samples: 4 RTT samples: 5 + RTT min: 0.6 ms RTT min: 0.0 ms + RTT max: 162.7 ms RTT max: 67.2 ms + RTT avg: 63.4 ms RTT avg: 13.6 ms + RTT stdev: 78.3 ms RTT stdev: 30.0 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 162.7 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 162.7 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 162.7 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 47: + host co: 132.235.3.132:33686 + host cp: 216.52.45.129:80 + complete conn: yes + first packet: Tue Aug 14 13:47:12.910869 2001 + last packet: Tue Aug 14 13:47:35.682433 2001 + elapsed time: 0:00:22.771564 + total packets: 11 + filename: http.dmp.gz + co->cp: cp->co: + total packets: 7 total packets: 4 + ack pkts sent: 6 ack pkts sent: 4 + pure acks sent: 4 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 432 unique bytes sent: 2008 + actual data pkts: 1 actual data pkts: 2 + actual data bytes: 432 actual data bytes: 2008 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 432 bytes max segm size: 1460 bytes + min segm size: 432 bytes min segm size: 548 bytes + avg segm size: 431 bytes avg segm size: 1003 bytes + max win adv: 24820 bytes max win adv: 6144 bytes + min win adv: 24820 bytes min win adv: 5711 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 5819 bytes + max owin: 433 bytes max owin: 2009 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 73 bytes avg owin: 1157 bytes + wavg owin: 1 bytes wavg owin: 2002 bytes + initial window: 432 bytes initial window: 2008 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 432 bytes ttl stream length: 2008 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 490 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 22583.7 ms idletime max: 22696.5 ms + throughput: 19 Bps throughput: 88 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.8 ms RTT min: 0.0 ms + RTT max: 2.1 ms RTT max: 111.4 ms + RTT avg: 1.4 ms RTT avg: 28.0 ms + RTT stdev: 0.7 ms RTT stdev: 55.6 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 2.1 ms RTT full_sz min: 0.4 ms + RTT full_sz max: 2.1 ms RTT full_sz max: 0.4 ms + RTT full_sz avg: 2.1 ms RTT full_sz avg: 0.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 48: + host cq: 132.235.3.132:33687 + host cr: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:24.638389 2001 + last packet: Tue Aug 14 13:47:24.755783 2001 + elapsed time: 0:00:00.117394 + total packets: 11 + filename: http.dmp.gz + cq->cr: cr->cq: + total packets: 6 total packets: 5 + ack pkts sent: 5 ack pkts sent: 5 + pure acks sent: 3 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 279 unique bytes sent: 990 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 279 actual data bytes: 990 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 279 bytes max segm size: 990 bytes + min segm size: 279 bytes min segm size: 990 bytes + avg segm size: 278 bytes avg segm size: 989 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 24820 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 24820 bytes + max owin: 280 bytes max owin: 991 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 56 bytes avg owin: 496 bytes + wavg owin: 0 bytes wavg owin: 928 bytes + initial window: 279 bytes initial window: 990 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 279 bytes ttl stream length: 990 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 20 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 110.7 ms idletime max: 111.0 ms + throughput: 2377 Bps throughput: 8433 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 0.3 ms RTT max: 0.2 ms + RTT avg: 0.2 ms RTT avg: 0.1 ms + RTT stdev: 0.1 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.3 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 49: + host cs: 132.235.3.132:33688 + host ct: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:24.749737 2001 + last packet: Tue Aug 14 13:47:26.979580 2001 + elapsed time: 0:00:02.229842 + total packets: 83 + filename: http.dmp.gz + cs->ct: ct->cs: + total packets: 19 total packets: 64 + ack pkts sent: 18 ack pkts sent: 64 + pure acks sent: 15 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 643 unique bytes sent: 83486 + actual data pkts: 2 actual data pkts: 60 + actual data bytes: 643 actual data bytes: 83486 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 19 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 323 bytes max segm size: 1460 bytes + min segm size: 320 bytes min segm size: 350 bytes + avg segm size: 321 bytes avg segm size: 1391 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 2920 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 22668 bytes avg win adv: 24820 bytes + max owin: 324 bytes max owin: 17521 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 36 bytes avg owin: 7934 bytes + wavg owin: 2 bytes wavg owin: 16026 bytes + initial window: 323 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 643 bytes ttl stream length: 103926 bytes + missed data: 0 bytes missed data: 20440 bytes + truncated data: 0 bytes truncated data: 26957 bytes + truncated packets: 0 pkts truncated packets: 56 pkts + data xmit time: 2.196 secs data xmit time: 2.195 secs + idletime max: 1847.9 ms idletime max: 1884.6 ms + throughput: 288 Bps throughput: 37440 Bps + + RTT samples: 4 RTT samples: 14 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 1.1 ms RTT max: 106.4 ms + RTT avg: 0.5 ms RTT avg: 23.6 ms + RTT stdev: 0.4 ms RTT stdev: 25.3 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 11 + RTT full_sz min: 0.3 ms RTT full_sz min: 15.8 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 106.4 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 26.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 26.4 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 48 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 50: + host cu: 132.235.3.132:33689 + host cv: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:27.007529 2001 + last packet: Tue Aug 14 13:47:27.376993 2001 + elapsed time: 0:00:00.369464 + total packets: 20 + filename: http.dmp.gz + cu->cv: cv->cu: + total packets: 8 total packets: 12 + ack pkts sent: 7 ack pkts sent: 12 + pure acks sent: 5 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 324 unique bytes sent: 12712 + actual data pkts: 1 actual data pkts: 9 + actual data bytes: 324 actual data bytes: 12712 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 3 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 324 bytes max segm size: 1460 bytes + min segm size: 324 bytes min segm size: 1176 bytes + avg segm size: 323 bytes avg segm size: 1412 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 19292 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24129 bytes avg win adv: 24820 bytes + max owin: 325 bytes max owin: 5725 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 47 bytes avg owin: 2916 bytes + wavg owin: 2 bytes wavg owin: 5443 bytes + initial window: 324 bytes initial window: 4264 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 324 bytes ttl stream length: 12712 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 3982 bytes + truncated packets: 0 pkts truncated packets: 9 pkts + data xmit time: 0.000 secs data xmit time: 0.017 secs + idletime max: 328.1 ms idletime max: 347.5 ms + throughput: 877 Bps throughput: 34407 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 0.3 ms RTT max: 19.2 ms + RTT avg: 0.3 ms RTT avg: 10.1 ms + RTT stdev: 0.1 ms RTT stdev: 9.2 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 0.3 ms RTT full_sz min: 0.4 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 15.9 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 10.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 8.7 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 5 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 51: + host cw: 132.235.3.132:33690 + host cx: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:27.147720 2001 + last packet: Tue Aug 14 13:47:33.633026 2001 + elapsed time: 0:00:06.485305 + total packets: 97 + filename: http.dmp.gz + cw->cx: cx->cw: + total packets: 21 total packets: 76 + ack pkts sent: 20 ack pkts sent: 76 + pure acks sent: 17 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 677 unique bytes sent: 101471 + actual data pkts: 2 actual data pkts: 72 + actual data bytes: 677 actual data bytes: 101471 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 19 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 341 bytes max segm size: 1460 bytes + min segm size: 336 bytes min segm size: 350 bytes + avg segm size: 338 bytes avg segm size: 1409 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 8760 bytes min win adv: 24820 bytes + zero win adv: 1 times zero win adv: 0 times + avg win adv: 22317 bytes avg win adv: 24820 bytes + max owin: 342 bytes max owin: 19629 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 34 bytes avg owin: 9262 bytes + wavg owin: 1 bytes wavg owin: 12378 bytes + initial window: 336 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 677 bytes ttl stream length: 104391 bytes + missed data: 0 bytes missed data: 2920 bytes + truncated data: 0 bytes truncated data: 32895 bytes + truncated packets: 0 pkts truncated packets: 69 pkts + data xmit time: 6.371 secs data xmit time: 6.379 secs + idletime max: 5838.9 ms idletime max: 5965.2 ms + throughput: 104 Bps throughput: 15646 Bps + + RTT samples: 4 RTT samples: 16 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 9.3 ms RTT max: 116.9 ms + RTT avg: 2.5 ms RTT avg: 23.5 ms + RTT stdev: 4.5 ms RTT stdev: 26.3 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 13 + RTT full_sz min: 9.3 ms RTT full_sz min: 3.9 ms + RTT full_sz max: 9.3 ms RTT full_sz max: 27.7 ms + RTT full_sz avg: 9.3 ms RTT full_sz avg: 19.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 5.8 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 58 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 52: + host cy: 132.235.3.132:33691 + host cz: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:31.661391 2001 + last packet: Tue Aug 14 13:47:31.797533 2001 + elapsed time: 0:00:00.136142 + total packets: 14 + filename: http.dmp.gz + cy->cz: cz->cy: + total packets: 7 total packets: 7 + ack pkts sent: 6 ack pkts sent: 7 + pure acks sent: 4 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 322 unique bytes sent: 3576 + actual data pkts: 1 actual data pkts: 3 + actual data bytes: 322 actual data bytes: 3576 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe 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: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 322 bytes max segm size: 1460 bytes + min segm size: 322 bytes min segm size: 656 bytes + avg segm size: 321 bytes avg segm size: 1191 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 24820 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 24820 bytes + max owin: 323 bytes max owin: 3577 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 54 bytes avg owin: 1923 bytes + wavg owin: 7 bytes wavg owin: 3430 bytes + initial window: 322 bytes initial window: 3576 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 322 bytes ttl stream length: 3576 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 980 bytes + truncated packets: 0 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 130.4 ms idletime max: 130.8 ms + throughput: 2365 Bps throughput: 26267 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 0.4 ms RTT max: 0.3 ms + RTT avg: 0.3 ms RTT avg: 0.2 ms + RTT stdev: 0.1 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 0.4 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 2 + RTT full_sz min: 0.3 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 53: + host da: 132.235.3.132:33692 + host db: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:31.786618 2001 + last packet: Tue Aug 14 13:47:35.683021 2001 + elapsed time: 0:00:03.896402 + total packets: 11 + filename: http.dmp.gz + da->db: db->da: + total packets: 6 total packets: 5 + ack pkts sent: 5 ack pkts sent: 5 + pure acks sent: 3 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 337 unique bytes sent: 1178 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 337 actual data bytes: 1178 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 337 bytes max segm size: 1178 bytes + min segm size: 337 bytes min segm size: 1178 bytes + avg segm size: 336 bytes avg segm size: 1176 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 24820 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 24820 bytes + max owin: 338 bytes max owin: 1179 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 68 bytes avg owin: 295 bytes + wavg owin: 1 bytes wavg owin: 1175 bytes + initial window: 337 bytes initial window: 1178 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 337 bytes ttl stream length: 1178 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 208 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 3873.5 ms idletime max: 3884.6 ms + throughput: 86 Bps throughput: 302 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 0.3 ms RTT max: 10.9 ms + RTT avg: 0.2 ms RTT avg: 3.7 ms + RTT stdev: 0.1 ms RTT stdev: 6.3 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.3 ms RTT full_sz min: 10.9 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 10.9 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 10.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 54: + host dc: 132.235.3.132:33693 + host dd: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:33.627769 2001 + last packet: Tue Aug 14 13:47:35.686762 2001 + elapsed time: 0:00:02.058993 + total packets: 27 + filename: http.dmp.gz + dc->dd: dd->dc: + total packets: 11 total packets: 16 + ack pkts sent: 10 ack pkts sent: 16 + pure acks sent: 8 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 354 unique bytes sent: 16876 + actual data pkts: 1 actual data pkts: 12 + actual data bytes: 354 actual data bytes: 16876 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 6 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 354 bytes max segm size: 1460 bytes + min segm size: 354 bytes min segm size: 816 bytes + avg segm size: 353 bytes avg segm size: 1406 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 16060 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 23758 bytes avg win adv: 24820 bytes + max owin: 355 bytes max owin: 8761 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 36 bytes avg owin: 4046 bytes + wavg owin: 4 bytes wavg owin: 6491 bytes + initial window: 354 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 354 bytes ttl stream length: 16876 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 5390 bytes + truncated packets: 0 pkts truncated packets: 11 pkts + data xmit time: 0.000 secs data xmit time: 0.039 secs + idletime max: 1847.1 ms idletime max: 1966.6 ms + throughput: 172 Bps throughput: 8196 Bps + + RTT samples: 3 RTT samples: 8 + RTT min: 0.2 ms RTT min: 0.0 ms + RTT max: 0.3 ms RTT max: 119.4 ms + RTT avg: 0.2 ms RTT avg: 24.3 ms + RTT stdev: 0.1 ms RTT stdev: 39.5 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 5 + RTT full_sz min: 0.3 ms RTT full_sz min: 0.4 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 19.6 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 14.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 8.2 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 6 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 55: + host de: 132.235.3.132:33694 + host df: 132.235.1.2:80 + complete conn: yes + first packet: Tue Aug 14 13:47:35.412174 2001 + last packet: Tue Aug 14 13:47:35.483587 2001 + elapsed time: 0:00:00.071413 + total packets: 11 + filename: http.dmp.gz + de->df: df->de: + total packets: 6 total packets: 5 + ack pkts sent: 5 ack pkts sent: 5 + pure acks sent: 3 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 342 unique bytes sent: 457 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 342 actual data bytes: 457 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 342 bytes max segm size: 457 bytes + min segm size: 342 bytes min segm size: 457 bytes + avg segm size: 341 bytes avg segm size: 456 bytes + max win adv: 24820 bytes max win adv: 4096 bytes + min win adv: 24820 bytes min win adv: 3754 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 4027 bytes + max owin: 343 bytes max owin: 458 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 69 bytes avg owin: 115 bytes + wavg owin: 308 bytes wavg owin: 0 bytes + initial window: 342 bytes initial window: 457 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 342 bytes ttl stream length: 457 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 66.5 ms idletime max: 56.1 ms + throughput: 4789 Bps throughput: 6399 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 1.2 ms RTT min: 0.0 ms + RTT max: 9.5 ms RTT max: 0.8 ms + RTT avg: 4.1 ms RTT avg: 0.3 ms + RTT stdev: 4.7 ms RTT stdev: 0.4 ms + + RTT from 3WHS: 1.5 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 9.5 ms RTT full_sz min: 0.8 ms + RTT full_sz max: 9.5 ms RTT full_sz max: 0.8 ms + RTT full_sz avg: 9.5 ms RTT full_sz avg: 0.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 56: + host dg: 132.235.3.132:33695 + host dh: 132.235.1.2:80 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Aug 14 13:47:35.508921 2001 + last packet: Tue Aug 14 13:47:36.099485 2001 + elapsed time: 0:00:00.590564 + total packets: 17 + filename: http.dmp.gz + dg->dh: dh->dg: + total packets: 9 total packets: 8 + ack pkts sent: 8 ack pkts sent: 8 + pure acks sent: 5 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1067 unique bytes sent: 6576 + actual data pkts: 3 actual data pkts: 6 + actual data bytes: 1067 actual data bytes: 6576 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 3 pushed data pkts: 4 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 364 bytes max segm size: 1460 bytes + min segm size: 347 bytes min segm size: 545 bytes + avg segm size: 355 bytes avg segm size: 1095 bytes + max win adv: 24820 bytes max win adv: 4096 bytes + min win adv: 24820 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 4096 bytes + max owin: 365 bytes max owin: 3912 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 134 bytes avg owin: 1525 bytes + wavg owin: 279 bytes wavg owin: 1474 bytes + initial window: 347 bytes initial window: 1460 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 1491 bytes + truncated packets: 0 pkts truncated packets: 4 pkts + data xmit time: 0.407 secs data xmit time: 0.364 secs + idletime max: 5430.5 ms idletime max: 5543.5 ms + throughput: 1807 Bps throughput: 11135 Bps + + RTT samples: 4 RTT samples: 6 + RTT min: 1.5 ms RTT min: 0.0 ms + RTT max: 111.1 ms RTT max: 113.0 ms + RTT avg: 65.0 ms RTT avg: 34.7 ms + RTT stdev: 46.1 ms RTT stdev: 46.0 ms + + RTT from 3WHS: 1.5 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 2 + RTT full_sz min: 80.0 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 80.0 ms RTT full_sz max: 15.7 ms + RTT full_sz avg: 80.0 ms RTT full_sz avg: 8.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 57: + host di: 132.235.3.132:33696 + host dj: 132.235.1.2:80 + complete conn: yes + first packet: Tue Aug 14 13:47:35.681775 2001 + last packet: Tue Aug 14 13:47:41.262222 2001 + elapsed time: 0:00:05.580447 + total packets: 29 + filename: http.dmp.gz + di->dj: dj->di: + total packets: 11 total packets: 18 + ack pkts sent: 10 ack pkts sent: 18 + pure acks sent: 8 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 353 unique bytes sent: 16837 + actual data pkts: 1 actual data pkts: 14 + actual data bytes: 353 actual data bytes: 16837 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 5 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 353 bytes max segm size: 1460 bytes + min segm size: 353 bytes min segm size: 152 bytes + avg segm size: 352 bytes avg segm size: 1202 bytes + max win adv: 24820 bytes max win adv: 4096 bytes + min win adv: 15151 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 23037 bytes avg win adv: 4096 bytes + max owin: 354 bytes max owin: 4249 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 36 bytes avg owin: 2567 bytes + wavg owin: 11 bytes wavg owin: 2566 bytes + initial window: 353 bytes initial window: 4096 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 353 bytes ttl stream length: 16837 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 4893 bytes + truncated packets: 0 pkts truncated packets: 12 pkts + data xmit time: 0.000 secs data xmit time: 0.081 secs + idletime max: 5260.6 ms idletime max: 5275.2 ms + throughput: 63 Bps throughput: 3017 Bps + + RTT samples: 3 RTT samples: 8 + RTT min: 1.4 ms RTT min: 0.0 ms + RTT max: 70.8 ms RTT max: 14.5 ms + RTT avg: 24.5 ms RTT avg: 10.1 ms + RTT stdev: 40.0 ms RTT stdev: 6.2 ms + + RTT from 3WHS: 1.5 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 5 + RTT full_sz min: 70.8 ms RTT full_sz min: 12.5 ms + RTT full_sz max: 70.8 ms RTT full_sz max: 14.5 ms + RTT full_sz avg: 70.8 ms RTT full_sz avg: 13.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.7 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 8 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 58: + host dk: 132.235.3.132:33697 + host dl: 132.235.1.2:80 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Aug 14 13:47:35.683480 2001 + last packet: Tue Aug 14 13:47:35.989806 2001 + elapsed time: 0:00:00.306326 + total packets: 16 + filename: http.dmp.gz + dk->dl: dl->dk: + total packets: 7 total packets: 9 + ack pkts sent: 6 ack pkts sent: 9 + pure acks sent: 5 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 357 unique bytes sent: 8195 + actual data pkts: 1 actual data pkts: 7 + actual data bytes: 357 actual data bytes: 8195 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 3 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 357 bytes max segm size: 1460 bytes + min segm size: 357 bytes min segm size: 152 bytes + avg segm size: 356 bytes avg segm size: 1170 bytes + max win adv: 24820 bytes max win adv: 4096 bytes + min win adv: 23793 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24673 bytes avg win adv: 4096 bytes + max owin: 358 bytes max owin: 4249 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 60 bytes avg owin: 2580 bytes + wavg owin: 228 bytes wavg owin: 522 bytes + initial window: 357 bytes initial window: 4096 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 2223 bytes + truncated packets: 0 pkts truncated packets: 6 pkts + data xmit time: 0.000 secs data xmit time: 0.041 secs + idletime max: 5540.2 ms idletime max: 5556.2 ms + throughput: 1165 Bps throughput: 26753 Bps + + RTT samples: 2 RTT samples: 5 + RTT min: 1.6 ms RTT min: 0.0 ms + RTT max: 71.5 ms RTT max: 16.3 ms + RTT avg: 36.6 ms RTT avg: 12.2 ms + RTT stdev: 0.0 ms RTT stdev: 6.9 ms + + RTT from 3WHS: 1.6 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 71.5 ms RTT full_sz min: 13.4 ms + RTT full_sz max: 71.5 ms RTT full_sz max: 16.3 ms + RTT full_sz avg: 71.5 ms RTT full_sz avg: 14.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 1.4 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 59: + host dm: 132.235.3.132:33698 + host dn: 132.235.1.2:80 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Aug 14 13:47:35.687100 2001 + last packet: Tue Aug 14 13:47:35.989820 2001 + elapsed time: 0:00:00.302720 + total packets: 11 + filename: http.dmp.gz + dm->dn: dn->dm: + total packets: 6 total packets: 5 + ack pkts sent: 5 ack pkts sent: 5 + pure acks sent: 4 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 355 unique bytes sent: 3424 + actual data pkts: 1 actual data pkts: 3 + actual data bytes: 355 actual data bytes: 3424 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + req sack: Y req sack: N + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 355 bytes max segm size: 1460 bytes + min segm size: 355 bytes min segm size: 504 bytes + avg segm size: 354 bytes avg segm size: 1140 bytes + max win adv: 24820 bytes max win adv: 4096 bytes + min win adv: 24820 bytes min win adv: 4096 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 4096 bytes + max owin: 356 bytes max owin: 3425 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 72 bytes avg owin: 1952 bytes + wavg owin: 158 bytes wavg owin: 3 bytes + initial window: 355 bytes initial window: 3424 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 980 bytes + truncated packets: 0 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.001 secs + idletime max: 5540.2 ms idletime max: 5651.5 ms + throughput: 1173 Bps throughput: 11311 Bps + + RTT samples: 2 RTT samples: 4 + RTT min: 1.8 ms RTT min: 0.0 ms + RTT max: 72.3 ms RTT max: 111.3 ms + RTT avg: 37.0 ms RTT avg: 33.6 ms + RTT stdev: 0.0 ms RTT stdev: 52.0 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 2 + RTT full_sz min: 72.3 ms RTT full_sz min: 11.0 ms + RTT full_sz max: 72.3 ms RTT full_sz max: 12.3 ms + RTT full_sz avg: 72.3 ms RTT full_sz avg: 11.6 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 60: + host do: 132.235.3.132:33699 + host dp: 132.235.3.154:80 + complete conn: yes + first packet: Tue Aug 14 13:47:41.260867 2001 + last packet: Tue Aug 14 13:47:41.346894 2001 + elapsed time: 0:00:00.086027 + total packets: 14 + filename: http.dmp.gz + do->dp: dp->do: + total packets: 7 total packets: 7 + ack pkts sent: 6 ack pkts sent: 7 + pure acks sent: 4 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 332 unique bytes sent: 3048 + actual data pkts: 1 actual data pkts: 3 + actual data bytes: 332 actual data bytes: 3048 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe 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: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 332 bytes max segm size: 1460 bytes + min segm size: 332 bytes min segm size: 128 bytes + avg segm size: 331 bytes avg segm size: 1015 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 24820 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 24820 bytes + max owin: 333 bytes max owin: 3049 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 56 bytes avg owin: 1747 bytes + wavg owin: 11 bytes wavg owin: 2847 bytes + initial window: 332 bytes initial window: 3048 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: 332 bytes ttl stream length: 3048 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 980 bytes + truncated packets: 0 pkts truncated packets: 2 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 80.2 ms idletime max: 80.6 ms + throughput: 3859 Bps throughput: 35431 Bps + + RTT samples: 3 RTT samples: 4 + RTT min: 0.2 ms RTT min: 0.1 ms + RTT max: 0.4 ms RTT max: 0.3 ms + RTT avg: 0.3 ms RTT avg: 0.2 ms + RTT stdev: 0.1 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 2 + RTT full_sz min: 0.4 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 0.4 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 0.4 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 61: + host dq: 132.235.3.132:33700 + host dr: 132.235.3.154:80 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Aug 14 13:47:41.407897 2001 + last packet: Tue Aug 14 13:47:41.530013 2001 + elapsed time: 0:00:00.122116 + total packets: 12 + filename: http.dmp.gz + dq->dr: dr->dq: + total packets: 6 total packets: 6 + ack pkts sent: 5 ack pkts sent: 6 + pure acks sent: 4 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 345 unique bytes sent: 4449 + actual data pkts: 1 actual data pkts: 4 + actual data bytes: 345 actual data bytes: 4449 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 3 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 345 bytes max segm size: 1460 bytes + min segm size: 345 bytes min segm size: 69 bytes + avg segm size: 344 bytes avg segm size: 1111 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 24820 bytes min win adv: 24820 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 24820 bytes + max owin: 346 bytes max owin: 4381 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 70 bytes avg owin: 2350 bytes + wavg owin: 8 bytes wavg owin: 65 bytes + initial window: 345 bytes initial window: 4380 bytes + initial window: 1 pkts initial window: 3 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 1470 bytes + truncated packets: 0 pkts truncated packets: 3 pkts + data xmit time: 0.000 secs data xmit time: 0.002 secs + idletime max: 100.0 ms idletime max: 112.2 ms + throughput: 2825 Bps throughput: 36433 Bps + + RTT samples: 2 RTT samples: 4 + RTT min: 0.3 ms RTT min: 0.0 ms + RTT max: 0.3 ms RTT max: 112.2 ms + RTT avg: 0.3 ms RTT avg: 32.1 ms + RTT stdev: 0.0 ms RTT stdev: 53.8 ms + + RTT from 3WHS: 0.3 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 2 + RTT full_sz min: 0.3 ms RTT full_sz min: 1.9 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 14.2 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 8.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/http.dmp.gz.packets b/input/OUTPUTbench/http.dmp.gz.packets new file mode 100644 index 0000000..03c7aa3 --- /dev/null +++ b/input/OUTPUTbench/http.dmp.gz.packets @@ -0,0 +1,2612 @@ +1 arg remaining, starting with 'http.dmp.gz' + +Packet 1 + Packet Length: 58 + Collected: Mon Jul 14 13:10:27.748442 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 43932 + CKSUM: 0xc1d6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xaf316f48 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0x8f50 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.752992 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 28802 + CKSUM: 0x00f2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -A--S- (0x12) + SEQ: 0x2a5ac601 + ACK: 0xaf316f49 + WIN: 4096 + HLEN: 24 + CKSUM: 0xb11b (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.753062 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43933 + CKSUM: 0xc1d9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf316f49 + ACK: 0x2a5ac602 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb6a0 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 334 + Collected: Mon Jul 14 13:10:27.755348 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 320 + ID: 43934 + CKSUM: 0xc0c0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xaf316f49 + ACK: 0x2a5ac602 + WIN: 8760 + HLEN: 20 + CKSUM: 0x919a (CORRECT) + DLEN: 280 + data: 280 bytes +Packet 5 + Packet Length: 81 + Collected: Mon Jul 14 13:10:27.829256 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 67 + ID: 28811 + CKSUM: 0x00d2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac602 + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0x1cc3 (CORRECT) + DLEN: 27 + data: 27 bytes +Packet 6 + Packet Length: 91 + Collected: Mon Jul 14 13:10:27.830108 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 77 + ID: 28812 + CKSUM: 0x00c7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac61d + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0x0456 (CORRECT) + DLEN: 37 + data: 37 bytes +Packet 7 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.830216 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43935 + CKSUM: 0xc1d7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf317061 + ACK: 0x2a5ac642 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb548 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 74 + Collected: Mon Jul 14 13:10:27.830484 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 60 + ID: 28813 + CKSUM: 0x00d7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac642 + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0x27cf (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 9 + Packet Length: 100 + Collected: Mon Jul 14 13:10:27.831128 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 86 + ID: 28814 + CKSUM: 0x00bc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac656 + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0xdaae (CORRECT) + DLEN: 46 + data: 46 bytes +Packet 10 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.831211 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43936 + CKSUM: 0xc1d6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf317061 + ACK: 0x2a5ac684 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb506 (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 79 + Collected: Mon Jul 14 13:10:27.831904 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 65 + ID: 28815 + CKSUM: 0x00d0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac684 + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0x15e2 (CORRECT) + DLEN: 25 + data: 25 bytes +Packet 12 + Packet Length: 76 + Collected: Mon Jul 14 13:10:27.833344 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 62 + ID: 28816 + CKSUM: 0x00d2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac69d + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0x3fbf (CORRECT) + DLEN: 22 + data: 22 bytes +Packet 13 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.833414 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43937 + CKSUM: 0xc1d5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf317061 + ACK: 0x2a5ac6b3 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb4d7 (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.833823 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 42 + ID: 28817 + CKSUM: 0x00e5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -AP--- (0x18) + SEQ: 0x2a5ac6b3 + ACK: 0xaf317061 + WIN: 4096 + HLEN: 20 + CKSUM: 0xb9fb (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 15 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.834294 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43938 + CKSUM: 0xc1d4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0xaf317061 + ACK: 0x2a5ac6b5 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb4d4 (CORRECT) + DLEN: 0 +Packet 16 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.835816 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28818 + CKSUM: 0x00e6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -A---- (0x10) + SEQ: 0x2a5ac6b5 + ACK: 0xaf317062 + WIN: 4096 + HLEN: 20 + CKSUM: 0xc70c (CORRECT) + DLEN: 0 +Packet 17 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.836678 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28819 + CKSUM: 0x00e5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47483 + FLG: -A---F (0x11) + SEQ: 0x2a5ac6b5 + ACK: 0xaf317062 + WIN: 4096 + HLEN: 20 + CKSUM: 0xc70b (CORRECT) + DLEN: 0 +Packet 18 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.836747 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43939 + CKSUM: 0xc1d3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47483 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf317062 + ACK: 0x2a5ac6b6 + WIN: 8760 + HLEN: 20 + CKSUM: 0xb4d3 (CORRECT) + DLEN: 0 +Packet 19 + Packet Length: 58 + Collected: Mon Jul 14 13:10:27.934079 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 43940 + CKSUM: 0xc1ce (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xaf331950 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0xe545 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 20 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.936601 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 28824 + CKSUM: 0x00dc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -A--S- (0x12) + SEQ: 0x2a5bc001 + ACK: 0xaf331951 + WIN: 4096 + HLEN: 24 + CKSUM: 0x0d10 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 21 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.936705 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43941 + CKSUM: 0xc1d1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf331951 + ACK: 0x2a5bc002 + WIN: 8760 + HLEN: 20 + CKSUM: 0x1295 (CORRECT) + DLEN: 0 +Packet 22 + Packet Length: 58 + Collected: Mon Jul 14 13:10:27.938572 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 43942 + CKSUM: 0xc1cc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47485 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xaf33f747 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0x074d (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 23 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.940654 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 28825 + CKSUM: 0x00db (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -A--S- (0x12) + SEQ: 0x2a5cba01 + ACK: 0xaf33f748 + WIN: 4096 + HLEN: 24 + CKSUM: 0x3516 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 24 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.940731 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43943 + CKSUM: 0xc1cf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47485 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf33f748 + ACK: 0x2a5cba02 + WIN: 8760 + HLEN: 20 + CKSUM: 0x3a9b (CORRECT) + DLEN: 0 +Packet 25 + Packet Length: 58 + Collected: Mon Jul 14 13:10:27.946056 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 43944 + CKSUM: 0xc1ca (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47486 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xaf34a09c + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0x5df6 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 26 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.947873 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 28826 + CKSUM: 0x00da (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -A--S- (0x12) + SEQ: 0x2a5db401 + ACK: 0xaf34a09d + WIN: 4096 + HLEN: 24 + CKSUM: 0x91be (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 27 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.948049 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43945 + CKSUM: 0xc1cd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47486 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf34a09d + ACK: 0x2a5db402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9743 (CORRECT) + DLEN: 0 +Packet 28 + Packet Length: 58 + Collected: Mon Jul 14 13:10:27.949752 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 43946 + CKSUM: 0xc1c8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xaf3641d5 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0xbcba (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 29 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.951689 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 28827 + CKSUM: 0x00d9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -A--S- (0x12) + SEQ: 0x2a5eae01 + ACK: 0xaf3641d6 + WIN: 4096 + HLEN: 24 + CKSUM: 0xf681 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 30 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.951773 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43947 + CKSUM: 0xc1cb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf3641d6 + ACK: 0x2a5eae02 + WIN: 8760 + HLEN: 20 + CKSUM: 0xfc06 (CORRECT) + DLEN: 0 +Packet 31 + Packet Length: 58 + Collected: Mon Jul 14 13:10:27.955718 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 43948 + CKSUM: 0xc1c6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xaf38123a + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0xec52 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 32 + Packet Length: 60 + Collected: Mon Jul 14 13:10:27.957513 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 28828 + CKSUM: 0x00d8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -A--S- (0x12) + SEQ: 0x2a5fa801 + ACK: 0xaf38123b + WIN: 4096 + HLEN: 24 + CKSUM: 0x2c19 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 33 + Packet Length: 54 + Collected: Mon Jul 14 13:10:27.957614 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43949 + CKSUM: 0xc1c9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf38123b + ACK: 0x2a5fa802 + WIN: 8760 + HLEN: 20 + CKSUM: 0x319e (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 400 + Collected: Mon Jul 14 13:10:27.963158 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 386 + ID: 43950 + CKSUM: 0xc06e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xaf3641d6 + ACK: 0x2a5eae02 + WIN: 8760 + HLEN: 20 + CKSUM: 0xea57 (CORRECT) + DLEN: 346 + data: 346 bytes +Packet 35 + Packet Length: 392 + Collected: Mon Jul 14 13:10:27.968187 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 378 + ID: 43951 + CKSUM: 0xc075 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47486 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xaf34a09d + ACK: 0x2a5db402 + WIN: 8760 + HLEN: 20 + CKSUM: 0x8cdf (CORRECT) + DLEN: 338 + data: 338 bytes +Packet 36 + Packet Length: 394 + Collected: Mon Jul 14 13:10:27.970971 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 380 + ID: 43952 + CKSUM: 0xc072 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47485 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xaf33f748 + ACK: 0x2a5cba02 + WIN: 8760 + HLEN: 20 + CKSUM: 0xc2d5 (CORRECT) + DLEN: 340 + data: 340 bytes +Packet 37 + Packet Length: 392 + Collected: Mon Jul 14 13:10:27.974360 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 378 + ID: 43953 + CKSUM: 0xc073 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xaf331951 + ACK: 0x2a5bc002 + WIN: 8760 + HLEN: 20 + CKSUM: 0x593f (CORRECT) + DLEN: 338 + data: 338 bytes +Packet 38 + Packet Length: 390 + Collected: Mon Jul 14 13:10:27.981219 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 376 + ID: 43954 + CKSUM: 0xc074 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xaf38123b + ACK: 0x2a5fa802 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2c0d (CORRECT) + DLEN: 336 + data: 336 bytes +Packet 39 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.032466 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28854 + CKSUM: 0x00c2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -A---- (0x10) + SEQ: 0x2a5fa802 + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0x4286 (CORRECT) + DLEN: 0 +Packet 40 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.032612 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28855 + CKSUM: 0x00c1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -A---- (0x10) + SEQ: 0x2a5eae02 + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x0ce5 (CORRECT) + DLEN: 0 +Packet 41 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.032762 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28856 + CKSUM: 0x00c0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -A---- (0x10) + SEQ: 0x2a5db402 + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0xa829 (CORRECT) + DLEN: 0 +Packet 42 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.032914 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28857 + CKSUM: 0x00bf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -A---- (0x10) + SEQ: 0x2a5cba02 + ACK: 0xaf33f89c + WIN: 4096 + HLEN: 20 + CKSUM: 0x4b7f (CORRECT) + DLEN: 0 +Packet 43 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.033113 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28858 + CKSUM: 0x00be (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -A---- (0x10) + SEQ: 0x2a5bc002 + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x237b (CORRECT) + DLEN: 0 +Packet 44 + Packet Length: 81 + Collected: Mon Jul 14 13:10:28.106386 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 67 + ID: 28874 + CKSUM: 0x0093 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc002 + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x787d (CORRECT) + DLEN: 27 + data: 27 bytes +Packet 45 + Packet Length: 81 + Collected: Mon Jul 14 13:10:28.107864 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 67 + ID: 28875 + CKSUM: 0x0092 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eae02 + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x61e7 (CORRECT) + DLEN: 27 + data: 27 bytes +Packet 46 + Packet Length: 91 + Collected: Mon Jul 14 13:10:28.109878 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 77 + ID: 28876 + CKSUM: 0x0087 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eae1d + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x497a (CORRECT) + DLEN: 37 + data: 37 bytes +Packet 47 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.109950 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43955 + CKSUM: 0xc1c3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf364330 + ACK: 0x2a5eae42 + WIN: 8760 + HLEN: 20 + CKSUM: 0xfa6c (CORRECT) + DLEN: 0 +Packet 48 + Packet Length: 91 + Collected: Mon Jul 14 13:10:28.110359 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 77 + ID: 28877 + CKSUM: 0x0086 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc01d + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x6010 (CORRECT) + DLEN: 37 + data: 37 bytes +Packet 49 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.110421 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43956 + CKSUM: 0xc1c2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf331aa3 + ACK: 0x2a5bc042 + WIN: 8760 + HLEN: 20 + CKSUM: 0x1103 (CORRECT) + DLEN: 0 +Packet 50 + Packet Length: 74 + Collected: Mon Jul 14 13:10:28.111277 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 60 + ID: 28878 + CKSUM: 0x0096 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc042 + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x8389 (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 51 + Packet Length: 100 + Collected: Mon Jul 14 13:10:28.113472 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 86 + ID: 28879 + CKSUM: 0x007b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc056 + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x4581 (CORRECT) + DLEN: 46 + data: 46 bytes +Packet 52 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.113539 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43957 + CKSUM: 0xc1c1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf331aa3 + ACK: 0x2a5bc084 + WIN: 8760 + HLEN: 20 + CKSUM: 0x10c1 (CORRECT) + DLEN: 0 +Packet 53 + Packet Length: 74 + Collected: Mon Jul 14 13:10:28.113858 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 60 + ID: 28880 + CKSUM: 0x0094 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eae42 + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x6cf3 (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 54 + Packet Length: 79 + Collected: Mon Jul 14 13:10:28.114468 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 65 + ID: 28881 + CKSUM: 0x008e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc084 + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x70de (CORRECT) + DLEN: 25 + data: 25 bytes +Packet 55 + Packet Length: 100 + Collected: Mon Jul 14 13:10:28.114865 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 86 + ID: 28882 + CKSUM: 0x0078 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eae56 + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x2fda (CORRECT) + DLEN: 46 + data: 46 bytes +Packet 56 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.114945 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43958 + CKSUM: 0xc1c0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf364330 + ACK: 0x2a5eae84 + WIN: 8760 + HLEN: 20 + CKSUM: 0xfa2a (CORRECT) + DLEN: 0 +Packet 57 + Packet Length: 77 + Collected: Mon Jul 14 13:10:28.115702 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 63 + ID: 28883 + CKSUM: 0x008e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc09d + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x6474 (CORRECT) + DLEN: 23 + data: 23 bytes +Packet 58 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.115783 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43959 + CKSUM: 0xc1bf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf331aa3 + ACK: 0x2a5bc0b4 + WIN: 8760 + HLEN: 20 + CKSUM: 0x1091 (CORRECT) + DLEN: 0 +Packet 59 + Packet Length: 81 + Collected: Mon Jul 14 13:10:28.116175 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 67 + ID: 28884 + CKSUM: 0x0089 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa802 + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0x9788 (CORRECT) + DLEN: 27 + data: 27 bytes +Packet 60 + Packet Length: 79 + Collected: Mon Jul 14 13:10:28.117102 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 65 + ID: 28885 + CKSUM: 0x008a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eae84 + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x5a48 (CORRECT) + DLEN: 25 + data: 25 bytes +Packet 61 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.117870 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 42 + ID: 28886 + CKSUM: 0x00a0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -AP--- (0x18) + SEQ: 0x2a5bc0b4 + ACK: 0xaf331aa3 + WIN: 4096 + HLEN: 20 + CKSUM: 0x15b5 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 62 + Packet Length: 75 + Collected: Mon Jul 14 13:10:28.118437 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 61 + ID: 28887 + CKSUM: 0x008c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eae9d + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0x8413 (CORRECT) + DLEN: 21 + data: 21 bytes +Packet 63 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.118524 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43960 + CKSUM: 0xc1be (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf364330 + ACK: 0x2a5eaeb2 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf9fc (CORRECT) + DLEN: 0 +Packet 64 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.118769 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43961 + CKSUM: 0xc1bd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0xaf331aa3 + ACK: 0x2a5bc0b6 + WIN: 8760 + HLEN: 20 + CKSUM: 0x108e (CORRECT) + DLEN: 0 +Packet 65 + Packet Length: 91 + Collected: Mon Jul 14 13:10:28.118906 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 77 + ID: 28888 + CKSUM: 0x007b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa81d + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0x7f1b (CORRECT) + DLEN: 37 + data: 37 bytes +Packet 66 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.119044 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43962 + CKSUM: 0xc1bc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf38138b + ACK: 0x2a5fa842 + WIN: 8760 + HLEN: 20 + CKSUM: 0x300e (CORRECT) + DLEN: 0 +Packet 67 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.119955 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 42 + ID: 28889 + CKSUM: 0x009d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -AP--- (0x18) + SEQ: 0x2a5eaeb2 + ACK: 0xaf364330 + WIN: 4096 + HLEN: 20 + CKSUM: 0xff20 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 68 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.120808 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28890 + CKSUM: 0x009e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -A---- (0x10) + SEQ: 0x2a5bc0b6 + ACK: 0xaf331aa4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x22c6 (CORRECT) + DLEN: 0 +Packet 69 + Packet Length: 74 + Collected: Mon Jul 14 13:10:28.121711 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 60 + ID: 28892 + CKSUM: 0x0088 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa842 + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0xa294 (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 70 + Packet Length: 100 + Collected: Mon Jul 14 13:10:28.122798 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 86 + ID: 28893 + CKSUM: 0x006d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa856 + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0x4ba3 (CORRECT) + DLEN: 46 + data: 46 bytes +Packet 71 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.122883 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43963 + CKSUM: 0xc1bb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf38138b + ACK: 0x2a5fa884 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2fcc (CORRECT) + DLEN: 0 +Packet 72 + Packet Length: 79 + Collected: Mon Jul 14 13:10:28.124653 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 65 + ID: 28894 + CKSUM: 0x0081 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa884 + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0x8fe9 (CORRECT) + DLEN: 25 + data: 25 bytes +Packet 73 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.125678 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43964 + CKSUM: 0xc1ba (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0xaf364330 + ACK: 0x2a5eaeb4 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf9f9 (CORRECT) + DLEN: 0 +Packet 74 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.127265 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28895 + CKSUM: 0x0099 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -A---- (0x10) + SEQ: 0x2a5eaeb4 + ACK: 0xaf364331 + WIN: 4096 + HLEN: 20 + CKSUM: 0x0c32 (CORRECT) + DLEN: 0 +Packet 75 + Packet Length: 75 + Collected: Mon Jul 14 13:10:28.127648 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 61 + ID: 28896 + CKSUM: 0x0083 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa89d + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0xbfb5 (CORRECT) + DLEN: 21 + data: 21 bytes +Packet 76 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.127739 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43965 + CKSUM: 0xc1b9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf38138b + ACK: 0x2a5fa8b2 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2f9e (CORRECT) + DLEN: 0 +Packet 77 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.128586 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 42 + ID: 28897 + CKSUM: 0x0095 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -AP--- (0x18) + SEQ: 0x2a5fa8b2 + ACK: 0xaf38138b + WIN: 4096 + HLEN: 20 + CKSUM: 0x34c2 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 78 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.130508 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28898 + CKSUM: 0x0096 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47487 + FLG: -A---F (0x11) + SEQ: 0x2a5eaeb4 + ACK: 0xaf364331 + WIN: 4096 + HLEN: 20 + CKSUM: 0x0c31 (CORRECT) + DLEN: 0 +Packet 79 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.130609 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43966 + CKSUM: 0xc1b8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47487 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf364331 + ACK: 0x2a5eaeb5 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf9f8 (CORRECT) + DLEN: 0 +Packet 80 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.131509 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43967 + CKSUM: 0xc1b7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0xaf38138b + ACK: 0x2a5fa8b4 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2f9b (CORRECT) + DLEN: 0 +Packet 81 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.133060 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28899 + CKSUM: 0x0095 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -A---- (0x10) + SEQ: 0x2a5fa8b4 + ACK: 0xaf38138c + WIN: 4096 + HLEN: 20 + CKSUM: 0x41d3 (CORRECT) + DLEN: 0 +Packet 82 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.134968 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28900 + CKSUM: 0x0094 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47484 + FLG: -A---F (0x11) + SEQ: 0x2a5bc0b6 + ACK: 0xaf331aa4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x22c5 (CORRECT) + DLEN: 0 +Packet 83 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.135097 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43968 + CKSUM: 0xc1b6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47484 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf331aa4 + ACK: 0x2a5bc0b7 + WIN: 8760 + HLEN: 20 + CKSUM: 0x108d (CORRECT) + DLEN: 0 +Packet 84 + Packet Length: 60 + Collected: Mon Jul 14 13:10:28.138377 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 28901 + CKSUM: 0x0093 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47488 + FLG: -A---F (0x11) + SEQ: 0x2a5fa8b4 + ACK: 0xaf38138c + WIN: 4096 + HLEN: 20 + CKSUM: 0x41d2 (CORRECT) + DLEN: 0 +Packet 85 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.138488 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43969 + CKSUM: 0xc1b5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47488 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf38138c + ACK: 0x2a5fa8b5 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2f9a (CORRECT) + DLEN: 0 +Packet 86 + Packet Length: 81 + Collected: Mon Jul 14 13:10:28.148879 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 67 + ID: 28902 + CKSUM: 0x0077 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -AP--- (0x18) + SEQ: 0x2a5db402 + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0xfd2b (CORRECT) + DLEN: 27 + data: 27 bytes +Packet 87 + Packet Length: 81 + Collected: Mon Jul 14 13:10:28.149394 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 67 + ID: 28903 + CKSUM: 0x0076 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -AP--- (0x18) + SEQ: 0x2a5cba02 + ACK: 0xaf33f89c + WIN: 4096 + HLEN: 20 + CKSUM: 0xa081 (CORRECT) + DLEN: 27 + data: 27 bytes +Packet 88 + Packet Length: 91 + Collected: Mon Jul 14 13:10:28.150214 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 77 + ID: 28904 + CKSUM: 0x006b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -AP--- (0x18) + SEQ: 0x2a5db41d + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0xe4be (CORRECT) + DLEN: 37 + data: 37 bytes +Packet 89 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.150314 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43970 + CKSUM: 0xc1b4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47486 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf34a1ef + ACK: 0x2a5db442 + WIN: 8760 + HLEN: 20 + CKSUM: 0x95b1 (CORRECT) + DLEN: 0 +Packet 90 + Packet Length: 91 + Collected: Mon Jul 14 13:10:28.150611 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 77 + ID: 28905 + CKSUM: 0x006a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -AP--- (0x18) + SEQ: 0x2a5cba1d + ACK: 0xaf33f89c + WIN: 4096 + HLEN: 20 + CKSUM: 0x8814 (CORRECT) + DLEN: 37 + data: 37 bytes +Packet 91 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.150697 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43971 + CKSUM: 0xc1b3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47485 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf33f89c + ACK: 0x2a5cba42 + WIN: 8760 + HLEN: 20 + CKSUM: 0x3907 (CORRECT) + DLEN: 0 +Packet 92 + Packet Length: 74 + Collected: Mon Jul 14 13:10:28.150931 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 60 + ID: 28906 + CKSUM: 0x007a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -AP--- (0x18) + SEQ: 0x2a5db442 + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0x0838 (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 93 + Packet Length: 74 + Collected: Mon Jul 14 13:10:28.151499 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 60 + ID: 28907 + CKSUM: 0x0079 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -AP--- (0x18) + SEQ: 0x2a5cba42 + ACK: 0xaf33f89c + WIN: 4096 + HLEN: 20 + CKSUM: 0xab8d (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 94 + Packet Length: 100 + Collected: Mon Jul 14 13:10:28.152918 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 86 + ID: 28908 + CKSUM: 0x005e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -AP--- (0x18) + SEQ: 0x2a5db456 + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0xcb1f (CORRECT) + DLEN: 46 + data: 46 bytes +Packet 95 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.153058 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43972 + CKSUM: 0xc1b2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47486 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf34a1ef + ACK: 0x2a5db484 + WIN: 8760 + HLEN: 20 + CKSUM: 0x956f (CORRECT) + DLEN: 0 +Packet 96 + Packet Length: 100 + Collected: Mon Jul 14 13:10:28.153360 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 86 + ID: 28909 + CKSUM: 0x005d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -AP--- (0x18) + SEQ: 0x2a5cba56 + ACK: 0xaf33f89c + WIN: 4096 + HLEN: 20 + CKSUM: 0x777a (CORRECT) + DLEN: 46 + data: 46 bytes +Packet 97 + Packet Length: 54 + Collected: Mon Jul 14 13:10:28.153447 1997 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 43973 + CKSUM: 0xc1b1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 47485 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xaf33f89c + ACK: 0x2a5cba84 + WIN: 8760 + HLEN: 20 + CKSUM: 0x38c5 (CORRECT) + DLEN: 0 +Packet 98 + Packet Length: 79 + Collected: Mon Jul 14 13:10:28.153755 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 65 + ID: 28910 + CKSUM: 0x0071 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -AP--- (0x18) + SEQ: 0x2a5db484 + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0xf58c (CORRECT) + DLEN: 25 + data: 25 bytes +Packet 99 + Packet Length: 79 + Collected: Mon Jul 14 13:10:28.154410 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 65 + ID: 28911 + CKSUM: 0x0070 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47485 + FLG: -AP--- (0x18) + SEQ: 0x2a5cba84 + ACK: 0xaf33f89c + WIN: 4096 + HLEN: 20 + CKSUM: 0x98e2 (CORRECT) + DLEN: 25 + data: 25 bytes +Packet 100 + Packet Length: 76 + Collected: Mon Jul 14 13:10:28.154886 1997 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 62 + ID: 28912 + CKSUM: 0x0072 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 47486 + FLG: -AP--- (0x18) + SEQ: 0x2a5db49d + ACK: 0xaf34a1ef + WIN: 4096 + HLEN: 20 + CKSUM: 0x1f28 (CORRECT) + DLEN: 22 + data: 22 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.406444 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.128:47483 - 132.235.1.2:80 (a2b) 8> 10< (complete) + 2: 132.235.3.128:47484 - 132.235.1.2:80 (c2d) 8> 11< (complete) + 3: 132.235.3.128:47485 - 132.235.1.2:80 (e2f) 5> 7< + 4: 132.235.3.128:47486 - 132.235.1.2:80 (g2h) 5> 8< + 5: 132.235.3.128:47487 - 132.235.1.2:80 (i2j) 8> 11< (complete) + 6: 132.235.3.128:47488 - 132.235.1.2:80 (k2l) 8> 11< (complete) diff --git a/input/OUTPUTbench/http.dmp.gz.short b/input/OUTPUTbench/http.dmp.gz.short new file mode 100644 index 0000000..03cfbdd --- /dev/null +++ b/input/OUTPUTbench/http.dmp.gz.short @@ -0,0 +1,66 @@ +1 arg remaining, starting with 'http.dmp.gz' + +1270 packets seen, 1270 TCP packets traced +trace file elapsed time: 35808:37:13.781571 +TCP connection info: + 1: 132.235.3.128:47483 - 132.235.1.2:80 (a2b) 8> 10< (complete) + 2: 132.235.3.128:47484 - 132.235.1.2:80 (c2d) 8> 11< (complete) + 3: 132.235.3.128:47485 - 132.235.1.2:80 (e2f) 8> 11< (complete) + 4: 132.235.3.128:47486 - 132.235.1.2:80 (g2h) 8> 11< (complete) + 5: 132.235.3.128:47487 - 132.235.1.2:80 (i2j) 8> 11< (complete) + 6: 132.235.3.128:47488 - 132.235.1.2:80 (k2l) 8> 11< (complete) + 7: 132.235.3.128:47489 - 132.235.1.2:80 (m2n) 8> 10< (complete) + 8: 132.235.3.128:47490 - 132.235.1.2:80 (o2p) 8> 11< (complete) + 9: 132.235.3.128:47491 - 132.235.1.2:80 (q2r) 8> 11< (complete) + 10: 132.235.3.128:47492 - 132.235.1.2:80 (s2t) 9> 11< (complete) + 11: 132.235.3.128:47493 - 132.235.1.2:80 (u2v) 8> 11< (complete) + 12: 132.235.3.128:47494 - 132.235.1.2:80 (w2x) 8> 11< (complete) + 13: 132.235.3.128:47495 - 132.235.1.2:80 (y2z) 8> 11< (complete) + 14: 132.235.3.128:47496 - 132.235.1.2:80 (aa2ab) 8> 11< (complete) + 15: 132.235.3.128:47497 - 132.235.1.2:80 (ac2ad) 8> 11< (complete) + 16: 132.235.3.128:47498 - 132.235.1.2:80 (ae2af) 8> 11< (complete) + 17: 132.235.3.128:47499 - 132.235.1.2:80 (ag2ah) 8> 11< (complete) + 18: 132.235.3.128:47500 - 132.235.1.2:80 (ai2aj) 8> 11< (complete) + 19: 132.235.3.128:47501 - 132.235.1.2:80 (ak2al) 8> 11< (complete) + 20: 132.235.3.128:47502 - 132.235.1.2:80 (am2an) 8> 11< (complete) + 21: 132.235.3.128:47503 - 132.235.1.2:80 (ao2ap) 8> 11< (complete) + 22: 132.235.3.128:47504 - 132.235.1.2:80 (aq2ar) 8> 11< (complete) + 23: 132.235.3.132:33654 - 4.17.168.6:80 (as2at) 2> 1< + 24: 132.235.3.132:33666 - 216.52.45.129:80 (au2av) 6> 3< (complete) + 25: 132.235.3.132:33667 - 216.52.45.129:80 (aw2ax) 21> 27< (complete) + 26: 132.235.3.132:33655 - 4.17.168.6:80 (ay2az) 2> 1< + 27: 132.235.3.132:33668 - 216.52.45.129:80 (ba2bb) 7> 4< (complete) + 28: 132.235.3.132:33656 - 4.17.168.6:80 (bc2bd) 2> 1< + 29: 132.235.3.132:33657 - 4.17.168.6:80 (be2bf) 2> 1< + 30: 132.235.3.132:33669 - 216.52.153.132:80 (bg2bh) 26> 19< (complete) + 31: 132.235.3.132:33670 - 216.52.153.132:80 (bi2bj) 27> 18< (complete) + 32: 132.235.3.132:33671 - 216.52.153.132:80 (bk2bl) 22> 15< (complete) + 33: 132.235.3.132:33672 - 216.52.153.132:80 (bm2bn) 22> 13< (complete) + 34: 132.235.3.132:33673 - 216.52.45.129:80 (bo2bp) 6> 3< (complete) + 35: 132.235.3.132:33674 - 216.52.45.129:80 (bq2br) 24> 30< (complete) + 36: 132.235.3.132:33675 - 216.52.45.129:80 (bs2bt) 12> 6< (complete) + 37: 132.235.3.132:33676 - 216.52.45.129:80 (bu2bv) 6> 3< (complete) + 38: 132.235.3.132:33677 - 216.52.45.129:80 (bw2bx) 7> 4< (complete) + 39: 132.235.3.132:33678 - 216.52.153.132:80 (by2bz) 21> 26< (complete) + 40: 132.235.3.132:33679 - 216.52.153.132:80 (ca2cb) 6> 3< (complete) + 41: 132.235.3.132:33680 - 216.52.153.132:80 (cc2cd) 8> 6< (complete) + 42: 132.235.3.132:33681 - 216.52.153.132:80 (ce2cf) 5> 4< (complete) + 43: 132.235.3.132:33682 - 216.52.45.129:80 (cg2ch) 7> 4< (complete) + 44: 132.235.3.132:33683 - 216.52.45.129:80 (ci2cj) 7> 4< (complete) + 45: 132.235.3.132:33684 - 216.52.153.132:80 (ck2cl) 6> 4< (complete) + 46: 132.235.3.132:33685 - 216.52.153.132:80 (cm2cn) 8> 7< (complete) + 47: 132.235.3.132:33686 - 216.52.45.129:80 (co2cp) 7> 4< (complete) + 48: 132.235.3.132:33687 - 132.235.3.154:80 (cq2cr) 6> 5< (complete) + 49: 132.235.3.132:33688 - 132.235.3.154:80 (cs2ct) 19> 64< (complete) + 50: 132.235.3.132:33689 - 132.235.3.154:80 (cu2cv) 8> 12< (complete) + 51: 132.235.3.132:33690 - 132.235.3.154:80 (cw2cx) 21> 76< (complete) + 52: 132.235.3.132:33691 - 132.235.3.154:80 (cy2cz) 7> 7< (complete) + 53: 132.235.3.132:33692 - 132.235.3.154:80 (da2db) 6> 5< (complete) + 54: 132.235.3.132:33693 - 132.235.3.154:80 (dc2dd) 11> 16< (complete) + 55: 132.235.3.132:33694 - 132.235.1.2:80 (de2df) 6> 5< (complete) + 56: 132.235.3.132:33695 - 132.235.1.2:80 (dg2dh) 9> 8< + 57: 132.235.3.132:33696 - 132.235.1.2:80 (di2dj) 11> 18< (complete) + 58: 132.235.3.132:33697 - 132.235.1.2:80 (dk2dl) 7> 9< + 59: 132.235.3.132:33698 - 132.235.1.2:80 (dm2dn) 6> 5< + 60: 132.235.3.132:33699 - 132.235.3.154:80 (do2dp) 7> 7< (complete) + 61: 132.235.3.132:33700 - 132.235.3.154:80 (dq2dr) 6> 6< diff --git a/input/OUTPUTbench/http.dmp.gz.xplots.cksum b/input/OUTPUTbench/http.dmp.gz.xplots.cksum new file mode 100644 index 0000000..ac29a5e --- /dev/null +++ b/input/OUTPUTbench/http.dmp.gz.xplots.cksum @@ -0,0 +1,550 @@ +954540565 2154 a2b_owin.xpl +914785436 313 a2b_rtt.xpl +827403559 183 a2b_ssize.xpl +1117485139 149 a2b_tput.xpl +766752378 2979 a2b_tsg.xpl +1080224167 3401 a_b_tline.xpl +689057034 2157 aa2ab_owin.xpl +253859248 316 aa2ab_rtt.xpl +2605368130 183 aa2ab_ssize.xpl +1081128772 149 aa2ab_tput.xpl +1067771179 3182 aa2ab_tsg.xpl +1324083402 3736 aa_ab_tline.xpl +2598611182 2984 ab2aa_owin.xpl +3318326665 522 ab2aa_rtt.xpl +3386426744 1142 ab2aa_ssize.xpl +1132686555 350 ab2aa_tput.xpl +3365116660 3338 ab2aa_tsg.xpl +918251849 2157 ac2ad_owin.xpl +2240958600 313 ac2ad_rtt.xpl +3811547220 183 ac2ad_ssize.xpl +2689338608 149 ac2ad_tput.xpl +2276080323 3155 ac2ad_tsg.xpl +2290604489 3736 ac_ad_tline.xpl +3993276001 2984 ad2ac_owin.xpl +2582382917 416 ad2ac_rtt.xpl +2788113889 1142 ad2ac_ssize.xpl +1690031138 348 ad2ac_tput.xpl +4122172357 3286 ad2ac_tsg.xpl +3549505331 2157 ae2af_owin.xpl +1079900049 313 ae2af_rtt.xpl +2614148792 183 ae2af_ssize.xpl +93432745 149 ae2af_tput.xpl +1530411245 3155 ae2af_tsg.xpl +2451738322 3736 ae_af_tline.xpl +670532842 2984 af2ae_owin.xpl +3365639664 416 af2ae_rtt.xpl +900219050 1142 af2ae_ssize.xpl +2125274757 348 af2ae_tput.xpl +2501202726 3286 af2ae_tsg.xpl +4191461684 2157 ag2ah_owin.xpl +949096381 313 ag2ah_rtt.xpl +3198390857 183 ag2ah_ssize.xpl +728304038 149 ag2ah_tput.xpl +1064769802 3182 ag2ah_tsg.xpl +4064823408 3736 ag_ah_tline.xpl +3054652701 2984 ah2ag_owin.xpl +3499146010 519 ah2ag_rtt.xpl +380814429 1142 ah2ag_ssize.xpl +3740955509 349 ah2ag_tput.xpl +495946550 3338 ah2ag_tsg.xpl +2711697911 2157 ai2aj_owin.xpl +141107658 313 ai2aj_rtt.xpl +3910501633 183 ai2aj_ssize.xpl +1731551867 149 ai2aj_tput.xpl +3793987899 3182 ai2aj_tsg.xpl +849000833 3736 ai_aj_tline.xpl +1469814724 3025 aj2ai_owin.xpl +2766941994 486 aj2ai_rtt.xpl +1869254957 1142 aj2ai_ssize.xpl +2904526612 346 aj2ai_tput.xpl +3212467312 3338 aj2ai_tsg.xpl +4258278950 2157 ak2al_owin.xpl +3240482416 312 ak2al_rtt.xpl +3276960306 183 ak2al_ssize.xpl +3588626912 149 ak2al_tput.xpl +1900348468 3155 ak2al_tsg.xpl +3335938134 3736 ak_al_tline.xpl +3787462773 2984 al2ak_owin.xpl +4163634990 416 al2ak_rtt.xpl +4109136576 1142 al2ak_ssize.xpl +462206798 346 al2ak_tput.xpl +106326021 3286 al2ak_tsg.xpl +576899445 2157 am2an_owin.xpl +277934668 316 am2an_rtt.xpl +938009097 183 am2an_ssize.xpl +3301219964 149 am2an_tput.xpl +144291967 3182 am2an_tsg.xpl +2872721659 3736 am_an_tline.xpl +2604914381 2984 an2am_owin.xpl +2728779564 519 an2am_rtt.xpl +1171933084 1142 an2am_ssize.xpl +492686446 350 an2am_tput.xpl +19787806 3338 an2am_tsg.xpl +3231806037 2157 ao2ap_owin.xpl +3049174015 317 ao2ap_rtt.xpl +3224916768 183 ao2ap_ssize.xpl +791540585 148 ao2ap_tput.xpl +56448584 3155 ao2ap_tsg.xpl +906271170 3736 ao_ap_tline.xpl +1580095534 2984 ap2ao_owin.xpl +2765239327 416 ap2ao_rtt.xpl +1080972297 1142 ap2ao_ssize.xpl +353722121 350 ap2ao_tput.xpl +672724031 3286 ap2ao_tsg.xpl +2300946706 2157 aq2ar_owin.xpl +990892127 316 aq2ar_rtt.xpl +881709452 183 aq2ar_ssize.xpl +750053664 149 aq2ar_tput.xpl +680794220 3155 aq2ar_tsg.xpl +1472141873 3736 aq_ar_tline.xpl +1967545645 2984 ar2aq_owin.xpl +1240130107 416 ar2aq_rtt.xpl +2846692043 1142 ar2aq_ssize.xpl +3000276845 349 ar2aq_tput.xpl +281162328 3286 ar2aq_tsg.xpl +3884028207 535 as2at_owin.xpl +3318189508 135 as2at_rtt.xpl +1091763175 123 as2at_ssize.xpl +1596072319 114 as2at_tput.xpl +3666882949 374 as2at_tsg.xpl +583691043 757 as_at_tline.xpl +2981545295 214 at2as_owin.xpl +3600538674 135 at2as_rtt.xpl +2694563292 123 at2as_ssize.xpl +2554958822 114 at2as_tput.xpl +2802632314 555 at2as_tsg.xpl +3161856139 1548 au2av_owin.xpl +3001822500 315 au2av_rtt.xpl +54780225 185 au2av_ssize.xpl +526292322 152 au2av_tput.xpl +2902449285 1354 au2av_tsg.xpl +2284898299 1925 au_av_tline.xpl +811310829 603 av2au_owin.xpl +3712251312 278 av2au_rtt.xpl +1764548481 185 av2au_ssize.xpl +3345778265 150 av2au_tput.xpl +2722292958 1624 av2au_tsg.xpl +2489309775 6015 aw2ax_owin.xpl +269868260 381 aw2ax_rtt.xpl +4028671071 421 aw2ax_ssize.xpl +1465545620 184 aw2ax_tput.xpl +1556102922 7526 aw2ax_tsg.xpl +2233574657 9551 aw_ax_tline.xpl +304624847 8438 ax2aw_owin.xpl +3981607726 1263 ax2aw_rtt.xpl +3177403171 4086 ax2aw_ssize.xpl +958339057 1348 ax2aw_tput.xpl +1927250971 8559 ax2aw_tsg.xpl +1134526679 535 ay2az_owin.xpl +3212482557 135 ay2az_rtt.xpl +2748868324 123 ay2az_ssize.xpl +673564854 114 ay2az_tput.xpl +3911950455 374 ay2az_tsg.xpl +4227578571 757 ay_az_tline.xpl +4074965103 214 az2ay_owin.xpl +4199233284 135 az2ay_rtt.xpl +1429337935 123 az2ay_ssize.xpl +3571399126 114 az2ay_tput.xpl +2789096440 555 az2ay_tsg.xpl +2656044528 2688 b2a_owin.xpl +1630683134 486 b2a_rtt.xpl +1431295957 1142 b2a_ssize.xpl +1592081495 350 b2a_tput.xpl +2573025714 3264 b2a_tsg.xpl +3822725478 1832 ba2bb_owin.xpl +3403916891 311 ba2bb_rtt.xpl +2915288178 185 ba2bb_ssize.xpl +1016378674 151 ba2bb_tput.xpl +1915728724 1633 ba2bb_tsg.xpl +398664043 2316 ba_bb_tline.xpl +3954241373 976 bb2ba_owin.xpl +3824498346 387 bb2ba_rtt.xpl +2990815039 431 bb2ba_ssize.xpl +4203760105 189 bb2ba_tput.xpl +3331860155 2018 bb2ba_tsg.xpl +2446082148 535 bc2bd_owin.xpl +3464412862 135 bc2bd_rtt.xpl +2152127574 123 bc2bd_ssize.xpl +2972578541 114 bc2bd_tput.xpl +3481121218 374 bc2bd_tsg.xpl +3996049098 757 bc_bd_tline.xpl +1578662508 214 bd2bc_owin.xpl +1634542381 135 bd2bc_rtt.xpl +1326366029 123 bd2bc_ssize.xpl +23381894 114 bd2bc_tput.xpl +353662888 555 bd2bc_tsg.xpl +3341800678 535 be2bf_owin.xpl +1473850263 135 be2bf_rtt.xpl +1653358933 123 be2bf_ssize.xpl +3324648228 114 be2bf_tput.xpl +3385313579 374 be2bf_tsg.xpl +2641839644 757 be_bf_tline.xpl +455871797 214 bf2be_owin.xpl +4208673375 135 bf2be_rtt.xpl +3131346910 123 bf2be_ssize.xpl +1307733430 114 bf2be_tput.xpl +2476159164 555 bf2be_tsg.xpl +71242434 7709 bg2bh_owin.xpl +61468457 900 bg2bh_rtt.xpl +2327519728 1493 bg2bh_ssize.xpl +1699298737 470 bg2bh_tput.xpl +2952076034 7376 bg2bh_tsg.xpl +3035297297 9015 bg_bh_tline.xpl +2659364928 5807 bh2bg_owin.xpl +1207036456 1213 bh2bg_rtt.xpl +3581300127 2777 bh2bg_ssize.xpl +1942042773 761 bh2bg_tput.xpl +512560502 8912 bh2bg_tsg.xpl +2314280093 8082 bi2bj_owin.xpl +2165421830 973 bi2bj_rtt.xpl +427786817 1646 bi2bj_ssize.xpl +1823359960 506 bi2bj_tput.xpl +3716541580 7436 bi2bj_tsg.xpl +2696163949 9027 bi_bj_tline.xpl +2659947392 5497 bj2bi_owin.xpl +1405308769 1221 bj2bi_rtt.xpl +695098245 2633 bj2bi_ssize.xpl +1447390198 729 bj2bi_tput.xpl +84957214 8996 bj2bi_tsg.xpl +2520947019 6526 bk2bl_owin.xpl +443227936 827 bk2bl_rtt.xpl +3364209811 1340 bk2bl_ssize.xpl +4198218319 380 bk2bl_tput.xpl +946646418 6127 bk2bl_tsg.xpl +4110131126 7449 bk_bl_tline.xpl +2886004198 4522 bl2bk_owin.xpl +650974786 1069 bl2bk_rtt.xpl +328002095 2153 bl2bk_ssize.xpl +2223914039 624 bl2bk_tput.xpl +3480810630 7372 bl2bk_tsg.xpl +348978422 6529 bm2bn_owin.xpl +157881810 827 bm2bn_rtt.xpl +2382201897 1340 bm2bn_ssize.xpl +1551372701 381 bm2bn_tput.xpl +3192952154 5721 bm2bn_tsg.xpl +3343264123 7055 bm_bn_tline.xpl +2174139780 3861 bn2bm_owin.xpl +91973837 996 bn2bm_rtt.xpl +3052852875 1823 bn2bm_ssize.xpl +1530725129 552 bn2bm_tput.xpl +2328745927 7044 bn2bm_tsg.xpl +3422307498 1551 bo2bp_owin.xpl +229333590 315 bo2bp_rtt.xpl +2274075607 185 bo2bp_ssize.xpl +1366087026 152 bo2bp_tput.xpl +2499302906 1354 bo2bp_tsg.xpl +2452094395 1925 bo_bp_tline.xpl +2838244459 604 bp2bo_owin.xpl +2557082869 278 bp2bo_rtt.xpl +351533557 185 bp2bo_ssize.xpl +1507696457 151 bp2bo_tput.xpl +3383490915 1624 bp2bo_tsg.xpl +1123901316 7018 bq2br_owin.xpl +4128512677 591 bq2br_rtt.xpl +594154517 880 bq2br_ssize.xpl +2522402523 283 bq2br_tput.xpl +1331949126 8843 bq2br_tsg.xpl +110499402 10749 bq_br_tline.xpl +2443003241 9398 br2bq_owin.xpl +4088208501 1044 br2bq_rtt.xpl +2040616017 4554 br2bq_ssize.xpl +1829647 1614 br2bq_tput.xpl +969157919 9777 br2bq_tsg.xpl +2293939592 3401 bs2bt_owin.xpl +2407295275 521 bs2bt_rtt.xpl +3029753197 727 bs2bt_ssize.xpl +244789237 249 bs2bt_tput.xpl +642336972 2899 bs2bt_tsg.xpl +3601940851 3703 bs_bt_tline.xpl +1461724204 1595 bt2bs_owin.xpl +1590757319 536 bt2bs_rtt.xpl +95977486 727 bt2bs_ssize.xpl +2745420433 249 bt2bs_tput.xpl +2293596415 3550 bt2bs_tsg.xpl +346598186 1540 bu2bv_owin.xpl +3818721491 311 bu2bv_rtt.xpl +3351575705 185 bu2bv_ssize.xpl +1223753921 149 bu2bv_tput.xpl +3164545666 1354 bu2bv_tsg.xpl +505784795 1925 bu_bv_tline.xpl +3383488020 604 bv2bu_owin.xpl +3194042910 314 bv2bu_rtt.xpl +3051437661 185 bv2bu_ssize.xpl +1987860720 149 bv2bu_tput.xpl +3008825046 1624 bv2bu_tsg.xpl +3116558502 1842 bw2bx_owin.xpl +1552467313 311 bw2bx_rtt.xpl +373480278 185 bw2bx_ssize.xpl +3504388892 150 bw2bx_tput.xpl +830807359 1633 bw2bx_tsg.xpl +2983000939 2315 bw_bx_tline.xpl +3509067055 975 bx2bw_owin.xpl +3364904060 391 bx2bw_rtt.xpl +1147878650 426 bx2bw_ssize.xpl +1418158598 186 bx2bw_tput.xpl +1976612417 2018 bx2bw_tsg.xpl +2276115410 6128 by2bz_owin.xpl +3845446441 687 by2bz_rtt.xpl +1163739436 1034 by2bz_ssize.xpl +2542971926 315 by2bz_tput.xpl +533317510 7883 by2bz_tsg.xpl +1974709813 9394 by_bz_tline.xpl +714453023 8087 bz2by_owin.xpl +367501638 1346 bz2by_rtt.xpl +3129826365 3754 bz2by_ssize.xpl +1330267899 1255 bz2by_tput.xpl +3369832918 8741 bz2by_tsg.xpl +2354155607 2157 c2d_owin.xpl +990668370 313 c2d_rtt.xpl +1795205837 183 c2d_ssize.xpl +4041635284 148 c2d_tput.xpl +3944818811 3182 c2d_tsg.xpl +3844050643 3651 c_d_tline.xpl +2559900801 1538 ca2cb_owin.xpl +1300167467 318 ca2cb_rtt.xpl +2691854161 186 ca2cb_ssize.xpl +3539183632 151 ca2cb_tput.xpl +1547775259 1355 ca2cb_tsg.xpl +3744028125 1926 ca_cb_tline.xpl +3919030668 605 cb2ca_owin.xpl +3038161840 315 cb2ca_rtt.xpl +3696111624 186 cb2ca_ssize.xpl +3325712941 151 cb2ca_tput.xpl +2767602225 1625 cb2ca_tsg.xpl +1823659981 2140 cc2cd_owin.xpl +1997734369 316 cc2cd_rtt.xpl +2534916184 186 cc2cd_ssize.xpl +1193779131 151 cc2cd_tput.xpl +1631661783 2116 cc2cd_tsg.xpl +1492276438 2902 cc_cd_tline.xpl +1670328368 1614 cd2cc_owin.xpl +1171250393 461 cd2cc_rtt.xpl +2247151059 746 cd2cc_ssize.xpl +3967939430 259 cd2cc_tput.xpl +1888020585 2550 cd2cc_tsg.xpl +1884145666 1255 ce2cf_owin.xpl +2649096336 319 ce2cf_rtt.xpl +3004626546 186 ce2cf_ssize.xpl +3903763905 151 ce2cf_tput.xpl +1103444502 1482 ce2cf_tsg.xpl +1599270859 1945 ce_cf_tline.xpl +2027687754 951 cf2ce_owin.xpl +724758822 283 cf2ce_rtt.xpl +3505172264 186 cf2ce_ssize.xpl +1574171703 149 cf2ce_tput.xpl +213417974 1498 cf2ce_tsg.xpl +1536688596 1847 cg2ch_owin.xpl +2611185136 314 cg2ch_rtt.xpl +2984675285 185 cg2ch_ssize.xpl +2983054782 150 cg2ch_tput.xpl +1793205280 1633 cg2ch_tsg.xpl +1800943774 2315 cg_ch_tline.xpl +3534692559 975 ch2cg_owin.xpl +3996717049 390 ch2cg_rtt.xpl +3533950604 429 ch2cg_ssize.xpl +1346172768 188 ch2cg_tput.xpl +3343529828 2018 ch2cg_tsg.xpl +1942012494 1790 ci2cj_owin.xpl +1390066008 311 ci2cj_rtt.xpl +4106451072 185 ci2cj_ssize.xpl +2057660043 151 ci2cj_tput.xpl +2301372935 1633 ci2cj_tsg.xpl +2898377247 2313 ci_cj_tline.xpl +3129444042 973 cj2ci_owin.xpl +1105544099 385 cj2ci_rtt.xpl +2388882119 422 cj2ci_ssize.xpl +1947486820 185 cj2ci_tput.xpl +1405031315 2018 cj2ci_tsg.xpl +213078892 943 ck2cl_owin.xpl +3523002460 247 ck2cl_rtt.xpl +2764207157 186 ck2cl_ssize.xpl +1470014523 151 ck2cl_tput.xpl +1478777548 1073 ck2cl_tsg.xpl +1471541220 1527 ck_cl_tline.xpl +4106844440 598 cl2ck_owin.xpl +508031208 209 cl2ck_rtt.xpl +1358001426 186 cl2ck_ssize.xpl +526996179 150 cl2ck_tput.xpl +853456511 1062 cl2ck_tsg.xpl +247334363 2177 cm2cn_owin.xpl +3935433685 392 cm2cn_rtt.xpl +2742959218 422 cm2cn_ssize.xpl +3528978878 184 cm2cn_tput.xpl +1266322477 2479 cm2cn_tsg.xpl +755349495 3107 cm_cn_tline.xpl +2357866034 1920 cn2cm_owin.xpl +1951694275 456 cn2cm_rtt.xpl +1714940888 748 cn2cm_ssize.xpl +272595941 256 cn2cm_tput.xpl +390734464 2671 cn2cm_tsg.xpl +3278168599 1241 co2cp_owin.xpl +1693606246 241 co2cp_rtt.xpl +3644889338 185 co2cp_ssize.xpl +2924980029 150 co2cp_tput.xpl +2340613893 1148 co2cp_tsg.xpl +2433703239 1722 co_cp_tline.xpl +3945503705 616 cp2co_owin.xpl +2068115056 316 cp2co_rtt.xpl +3980519599 429 cp2co_ssize.xpl +1400948444 188 cp2co_tput.xpl +758659848 1379 cp2co_tsg.xpl +3940515066 1503 cq2cr_owin.xpl +3566821157 278 cq2cr_rtt.xpl +1237811945 185 cq2cr_ssize.xpl +1327180830 151 cq2cr_tput.xpl +3795962010 1814 cq2cr_tsg.xpl +2604040090 2299 cq_cr_tline.xpl +4027294567 1261 cr2cq_owin.xpl +3996154660 278 cr2cq_rtt.xpl +1480811190 185 cr2cq_ssize.xpl +4275078431 152 cr2cq_tput.xpl +3308794284 1776 cr2cq_tsg.xpl +2627235400 5512 cs2ct_owin.xpl +3624485965 381 cs2ct_rtt.xpl +707638874 421 cs2ct_ssize.xpl +663541985 183 cs2ct_tput.xpl +2063417872 14939 cs2ct_tsg.xpl +491608087 16432 cs_ct_tline.xpl +1978383146 20547 ct2cs_owin.xpl +2058912241 1120 ct2cs_rtt.xpl +2339246004 9639 ct2cs_ssize.xpl +447620544 3310 ct2cs_tput.xpl +151590800 13875 ct2cs_tsg.xpl +646061584 1559 cu2cv_owin.xpl +317368190 208 cu2cv_rtt.xpl +1593980681 185 cu2cv_ssize.xpl +1020090167 152 cu2cv_tput.xpl +2370176366 2469 cu2cv_tsg.xpl +402765462 3089 cu_cv_tline.xpl +1145885316 2565 cv2cu_owin.xpl +3458798115 386 cv2cu_rtt.xpl +3781905409 1226 cv2cu_ssize.xpl +11450263 370 cv2cu_tput.xpl +1952514662 2487 cv2cu_tsg.xpl +437564310 2984 d2c_owin.xpl +3661412552 486 d2c_rtt.xpl +1267715691 1142 d2c_ssize.xpl +1564391502 348 d2c_tput.xpl +1352236874 3338 d2c_tsg.xpl +2965101637 2157 e2f_owin.xpl +4108197134 313 e2f_rtt.xpl +1864125252 183 e2f_ssize.xpl +2769945513 149 e2f_tput.xpl +2304914986 3155 e2f_tsg.xpl +2833189907 3680 e_f_tline.xpl +1685793850 2984 f2e_owin.xpl +3681395378 416 f2e_rtt.xpl +3772252825 1142 f2e_ssize.xpl +3095373911 350 f2e_tput.xpl +1889383833 3286 f2e_tsg.xpl +3517397347 2157 g2h_owin.xpl +2320163683 313 g2h_rtt.xpl +1290347819 183 g2h_ssize.xpl +1682522787 149 g2h_tput.xpl +3658128792 3155 g2h_tsg.xpl +700234357 3680 g_h_tline.xpl +3328021176 2984 h2g_owin.xpl +2442095513 416 h2g_rtt.xpl +1837006298 1142 h2g_ssize.xpl +4006628163 350 h2g_tput.xpl +2988703061 3286 h2g_tsg.xpl +3284894645 2157 i2j_owin.xpl +620096872 313 i2j_rtt.xpl +400619324 183 i2j_ssize.xpl +3037382000 149 i2j_tput.xpl +892521358 3182 i2j_tsg.xpl +367964974 3680 i_j_tline.xpl +3773153170 2984 j2i_owin.xpl +317075356 519 j2i_rtt.xpl +938525483 1142 j2i_ssize.xpl +4240069554 349 j2i_tput.xpl +4043070219 3338 j2i_tsg.xpl +2910060163 2157 k2l_owin.xpl +2084013985 313 k2l_rtt.xpl +1796342795 183 k2l_ssize.xpl +1986101118 149 k2l_tput.xpl +2675906703 3182 k2l_tsg.xpl +3124403332 3680 k_l_tline.xpl +3599727236 2984 l2k_owin.xpl +2837163969 519 l2k_rtt.xpl +3141172420 1142 l2k_ssize.xpl +3822679783 348 l2k_tput.xpl +112771373 3338 l2k_tsg.xpl +4169693982 2157 m2n_owin.xpl +1554037751 313 m2n_rtt.xpl +832442214 183 m2n_ssize.xpl +990235527 149 m2n_tput.xpl +3944489460 2979 m2n_tsg.xpl +1672072003 3497 m_n_tline.xpl +2493949602 2688 n2m_owin.xpl +4053470838 486 n2m_rtt.xpl +654533324 1142 n2m_ssize.xpl +2047446418 350 n2m_tput.xpl +3788633660 3264 n2m_tsg.xpl +172547702 2157 o2p_owin.xpl +190821901 316 o2p_rtt.xpl +3491170814 183 o2p_ssize.xpl +3710971274 148 o2p_tput.xpl +2832798549 3182 o2p_tsg.xpl +4235151028 3680 o_p_tline.xpl +3058931737 2984 p2o_owin.xpl +2749832031 486 p2o_rtt.xpl +3923844902 1142 p2o_ssize.xpl +1010366560 350 p2o_tput.xpl +1507193445 3338 p2o_tsg.xpl +682818092 2157 q2r_owin.xpl +3620600000 316 q2r_rtt.xpl +1590186002 183 q2r_ssize.xpl +1818469968 148 q2r_tput.xpl +3362597610 3155 q2r_tsg.xpl +3137725174 3680 q_r_tline.xpl +3727165987 2984 r2q_owin.xpl +50333402 416 r2q_rtt.xpl +4070708420 1142 r2q_ssize.xpl +3337598034 349 r2q_tput.xpl +2159226241 3286 r2q_tsg.xpl +3561307859 2461 s2t_owin.xpl +615279782 316 s2t_rtt.xpl +307208310 183 s2t_ssize.xpl +1759037382 148 s2t_tput.xpl +861577927 3231 s2t_tsg.xpl +1792875013 3897 s_t_tline.xpl +3991269738 2686 t2s_owin.xpl +2670880160 519 t2s_rtt.xpl +3968646822 1142 t2s_ssize.xpl +2046395102 349 t2s_tput.xpl +1238044488 3634 t2s_tsg.xpl +3622326086 2157 u2v_owin.xpl +3912240096 316 u2v_rtt.xpl +1722665573 183 u2v_ssize.xpl +3276374525 149 u2v_tput.xpl +3248938512 3182 u2v_tsg.xpl +423496279 3707 u_v_tline.xpl +3919099136 2984 v2u_owin.xpl +2969800405 519 v2u_rtt.xpl +4007281740 1142 v2u_ssize.xpl +1468448253 348 v2u_tput.xpl +2446824035 3338 v2u_tsg.xpl +2096530941 2157 w2x_owin.xpl +1610103882 316 w2x_rtt.xpl +3387281877 183 w2x_ssize.xpl +627051129 149 w2x_tput.xpl +828648839 3182 w2x_tsg.xpl +3966274773 3736 w_x_tline.xpl +197590561 2984 x2w_owin.xpl +3188381866 522 x2w_rtt.xpl +1804667975 1142 x2w_ssize.xpl +2846309428 349 x2w_tput.xpl +4182218998 3338 x2w_tsg.xpl +1571752432 2157 y2z_owin.xpl +1015540242 316 y2z_rtt.xpl +2026245554 183 y2z_ssize.xpl +270936309 149 y2z_tput.xpl +1636082217 3182 y2z_tsg.xpl +4062041466 3736 y_z_tline.xpl +4038732685 2984 z2y_owin.xpl +3524669009 519 z2y_rtt.xpl +427035545 1142 z2y_ssize.xpl +3674542776 349 z2y_tput.xpl +4160979939 3338 z2y_tsg.xpl diff --git a/input/OUTPUTbench/http.epeek7.gz.long b/input/OUTPUTbench/http.epeek7.gz.long new file mode 100644 index 0000000..edb3e72 --- /dev/null +++ b/input/OUTPUTbench/http.epeek7.gz.long @@ -0,0 +1,80 @@ +1 arg remaining, starting with 'http.epeek7.gz' + +33 packets seen, 33 TCP packets traced +trace file elapsed time: 0:00:01.834824 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.67.34:3759 + host b: 132.235.67.19:80 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Dec 16 07:10:34.457621 1997 + last packet: Tue Dec 16 07:10:36.292446 1997 + elapsed time: 0:00:01.834824 + total packets: 33 + filename: http.epeek7.gz + a->b: b->a: + total packets: 9 total packets: 24 + ack pkts sent: 9 ack pkts sent: 24 + pure acks sent: 6 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 403 unique bytes sent: 29194 + actual data pkts: 3 actual data pkts: 22 + actual data bytes: 403 actual data bytes: 29194 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 3 pushed data pkts: 1 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + req 1323 ws/ts: N/Y req 1323 ws/ts: N/Y + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 268 bytes max segm size: 1448 bytes + min segm size: 35 bytes min segm size: 48 bytes + avg segm size: 134 bytes avg segm size: 1326 bytes + max win adv: 49640 bytes max win adv: 17520 bytes + min win adv: 49640 bytes min win adv: 17520 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 49640 bytes avg win adv: 17520 bytes + max owin: 269 bytes max owin: 11585 bytes + min non-zero owin: 1 bytes min non-zero owin: 1449 bytes + avg owin: 56 bytes avg owin: 5941 bytes + wavg owin: 118 bytes wavg owin: 5912 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.580 secs data xmit time: 1.833 secs + idletime max: 554.9 ms idletime max: 554.1 ms + throughput: 220 Bps throughput: 15911 Bps + + RTT samples: 3 RTT samples: 5 + RTT min: 1.0 ms RTT min: 586.9 ms + RTT max: 2.0 ms RTT max: 597.7 ms + RTT avg: 1.4 ms RTT avg: 592.9 ms + RTT stdev: 0.5 ms RTT stdev: 4.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 1.0 ms RTT full_sz min: 591.2 ms + RTT full_sz max: 1.0 ms RTT full_sz max: 594.4 ms + RTT full_sz avg: 1.0 ms RTT full_sz avg: 593.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 1.8 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 9 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/http.epeek7.gz.packets b/input/OUTPUTbench/http.epeek7.gz.packets new file mode 100644 index 0000000..6a682f4 --- /dev/null +++ b/input/OUTPUTbench/http.epeek7.gz.packets @@ -0,0 +1,891 @@ +1 arg remaining, starting with 'http.epeek7.gz' + +Packet 1 + Packet Length: 70 + Collected: Tue Dec 16 07:10:34.457621 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 4511 + CKSUM: 0xdb19 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x7f971699 + ACK: 0x04297602 + WIN: 49640 + HLEN: 32 + CKSUM: 0x8974 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(30698,1039) +Packet 2 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:34.459830 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10900 + CKSUM: 0xba7c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x04297602 + ACK: 0x7f971699 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2aaf (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1040,30696) + data: 1448 bytes +Packet 3 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:34.461060 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10901 + CKSUM: 0xba7b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x04297baa + ACK: 0x7f971699 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6233 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1040,30696) + data: 1448 bytes +Packet 4 + Packet Length: 256 + Collected: Tue Dec 16 07:10:34.461883 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 238 + ID: 10902 + CKSUM: 0xbf68 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -AP--- (0x18) + SEQ: 0x04298152 + ACK: 0x7f971699 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3274 (CORRECT) + DLEN: 186 + OPTS: 12 bytes TS(1040,30696) + data: 186 bytes +Packet 5 + Packet Length: 338 + Collected: Tue Dec 16 07:10:34.513966 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 320 + ID: 4512 + CKSUM: 0xda0c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x7f971699 + ACK: 0x04297602 + WIN: 49640 + HLEN: 32 + CKSUM: 0x9ad8 (CORRECT) + DLEN: 268 + OPTS: 12 bytes TS(30698,1039) + data: 268 bytes +Packet 6 + Packet Length: 70 + Collected: Tue Dec 16 07:10:34.514975 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 10903 + CKSUM: 0xc021 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429820c + ACK: 0x7f9717a5 + WIN: 17520 + HLEN: 32 + CKSUM: 0xf9d5 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1040,30698) +Packet 7 + Packet Length: 70 + Collected: Tue Dec 16 07:10:35.048828 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 4513 + CKSUM: 0xdb17 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x7f9717a5 + ACK: 0x0429820c + WIN: 49640 + HLEN: 32 + CKSUM: 0x7c5c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(30699,1040) +Packet 8 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.051024 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10904 + CKSUM: 0xba78 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429820c + ACK: 0x7f9717a5 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa1b1 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1041,30698) + data: 1448 bytes +Packet 9 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.052248 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10905 + CKSUM: 0xba77 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x042987b4 + ACK: 0x7f9717a5 + WIN: 17520 + HLEN: 32 + CKSUM: 0xd079 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1041,30698) + data: 1448 bytes +Packet 10 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.053489 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10906 + CKSUM: 0xba76 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x04298d5c + ACK: 0x7f9717a5 + WIN: 17520 + HLEN: 32 + CKSUM: 0xe4cf (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1041,30698) + data: 1448 bytes +Packet 11 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.054712 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10907 + CKSUM: 0xba75 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x04299304 + ACK: 0x7f9717a5 + WIN: 17520 + HLEN: 32 + CKSUM: 0x66fe (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1041,30698) + data: 1448 bytes +Packet 12 + Packet Length: 170 + Collected: Tue Dec 16 07:10:35.093082 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 152 + ID: 4514 + CKSUM: 0xdab2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x7f9717a5 + ACK: 0x0429820c + WIN: 49640 + HLEN: 32 + CKSUM: 0xe143 (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(30699,1040) + data: 100 bytes +Packet 13 + Packet Length: 105 + Collected: Tue Dec 16 07:10:35.093886 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 87 + ID: 4515 + CKSUM: 0xdaf2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x7f971809 + ACK: 0x0429820c + WIN: 49640 + HLEN: 32 + CKSUM: 0x1917 (CORRECT) + DLEN: 35 + OPTS: 12 bytes TS(30699,1040) + data: 35 bytes +Packet 14 + Packet Length: 118 + Collected: Tue Dec 16 07:10:35.094267 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 100 + ID: 10908 + CKSUM: 0xbfec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x042998ac + ACK: 0x7f971809 + WIN: 17520 + HLEN: 32 + CKSUM: 0xae40 (CORRECT) + DLEN: 48 + OPTS: 12 bytes TS(1041,30699) + data: 48 bytes +Packet 15 + Packet Length: 70 + Collected: Tue Dec 16 07:10:35.095902 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 10909 + CKSUM: 0xc01b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x042998dc + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xe27c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1041,30699) +Packet 16 + Packet Length: 70 + Collected: Tue Dec 16 07:10:35.647813 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 4516 + CKSUM: 0xdb14 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x7f97182c + ACK: 0x04299304 + WIN: 49640 + HLEN: 32 + CKSUM: 0x6adb (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(30700,1041) +Packet 17 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.650030 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10910 + CKSUM: 0xba72 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x042998dc + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xd4ff (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1042,30699) + data: 1448 bytes +Packet 18 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.651244 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10911 + CKSUM: 0xba71 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x04299e84 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xb29b (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1042,30699) + data: 1448 bytes +Packet 19 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.652484 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10912 + CKSUM: 0xba70 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429a42c + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x350d (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1042,30699) + data: 1448 bytes +Packet 20 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.653703 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10913 + CKSUM: 0xba6f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429a9d4 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xdf44 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1042,30699) + data: 1448 bytes +Packet 21 + Packet Length: 70 + Collected: Tue Dec 16 07:10:35.691956 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 4517 + CKSUM: 0xdb13 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x7f97182c + ACK: 0x042998dc + WIN: 49640 + HLEN: 32 + CKSUM: 0x6503 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(30700,1041) +Packet 22 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.694119 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10914 + CKSUM: 0xba6e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429af7c + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x233a (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1042,30699) + data: 1448 bytes +Packet 23 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:35.695339 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10915 + CKSUM: 0xba6d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429b524 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xd5aa (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1042,30699) + data: 1448 bytes +Packet 24 + Packet Length: 70 + Collected: Tue Dec 16 07:10:36.246858 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 4518 + CKSUM: 0xdb12 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x7f97182c + ACK: 0x0429a9d4 + WIN: 49640 + HLEN: 32 + CKSUM: 0x5409 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(30701,1042) +Packet 25 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.249104 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10916 + CKSUM: 0xba6c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429bacc + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xe309 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1043,30699) + data: 1448 bytes +Packet 26 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.250338 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10917 + CKSUM: 0xba6b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429c074 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x0e83 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1043,30699) + data: 1448 bytes +Packet 27 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.251565 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10918 + CKSUM: 0xba6a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429c61c + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x52a4 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1043,30699) + data: 1448 bytes +Packet 28 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.252797 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10919 + CKSUM: 0xba69 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429cbc4 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x9fad (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1043,30699) + data: 1448 bytes +Packet 29 + Packet Length: 70 + Collected: Tue Dec 16 07:10:36.286540 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:a0:24:6c:c2:c2 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.19 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 4519 + CKSUM: 0xdb11 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3759 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x7f97182c + ACK: 0x0429bacc + WIN: 49640 + HLEN: 32 + CKSUM: 0x4311 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(30701,1042) +Packet 30 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.288755 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10920 + CKSUM: 0xba68 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429d16c + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x7baa (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1044,30699) + data: 1448 bytes +Packet 31 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.289986 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10921 + CKSUM: 0xba67 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429d714 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0x177a (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1044,30699) + data: 1448 bytes +Packet 32 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.291207 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10922 + CKSUM: 0xba66 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429dcbc + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xf4a6 (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1044,30699) + data: 1448 bytes +Packet 33 + Packet Length: 1518 + Collected: Tue Dec 16 07:10:36.292446 1997 + ETH Srce: 00:a0:24:6c:c2:c2 + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.19 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 10923 + CKSUM: 0xba65 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 3759 + FLG: -A---- (0x10) + SEQ: 0x0429e264 + ACK: 0x7f97182c + WIN: 17520 + HLEN: 32 + CKSUM: 0xefab (CORRECT) + DLEN: 1448 + OPTS: 12 bytes TS(1044,30699) + data: 1448 bytes +33 packets seen, 33 TCP packets traced +trace file elapsed time: 0:00:01.834824 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.67.34:3759 - 132.235.67.19:80 (a2b) 9> 24< diff --git a/input/OUTPUTbench/http.epeek7.gz.short b/input/OUTPUTbench/http.epeek7.gz.short new file mode 100644 index 0000000..3b1096d --- /dev/null +++ b/input/OUTPUTbench/http.epeek7.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'http.epeek7.gz' + +33 packets seen, 33 TCP packets traced +trace file elapsed time: 0:00:01.834824 +TCP connection info: + 1: 132.235.67.34:3759 - 132.235.67.19:80 (a2b) 9> 24< diff --git a/input/OUTPUTbench/http.epeek7.gz.xplots.cksum b/input/OUTPUTbench/http.epeek7.gz.xplots.cksum new file mode 100644 index 0000000..f8409bf --- /dev/null +++ b/input/OUTPUTbench/http.epeek7.gz.xplots.cksum @@ -0,0 +1,11 @@ +119793574 2795 a2b_owin.xpl +2782532881 310 a2b_rtt.xpl +3761728498 571 a2b_ssize.xpl +4273251299 215 a2b_tput.xpl +1737494516 5954 a2b_tsg.xpl +357936425 6116 a_b_tline.xpl +1811434422 7814 b2a_owin.xpl +3215393451 478 b2a_rtt.xpl +3947191579 3601 b2a_ssize.xpl +826254752 1167 b2a_tput.xpl +872817486 4924 b2a_tsg.xpl diff --git a/input/OUTPUTbench/ipfrags.dmp.gz.long b/input/OUTPUTbench/ipfrags.dmp.gz.long new file mode 100644 index 0000000..2235771 --- /dev/null +++ b/input/OUTPUTbench/ipfrags.dmp.gz.long @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'ipfrags.dmp.gz' + +5 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:22.460000 +no traced TCP packets diff --git a/input/OUTPUTbench/ipfrags.dmp.gz.packets b/input/OUTPUTbench/ipfrags.dmp.gz.packets new file mode 100644 index 0000000..c64dd7e --- /dev/null +++ b/input/OUTPUTbench/ipfrags.dmp.gz.packets @@ -0,0 +1,92 @@ +1 arg remaining, starting with 'ipfrags.dmp.gz' + +Packet 1 + Packet Length: 68 + Collected: Tue Feb 3 20:01:09.397081 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 204.123.2.84 + IP Dest: 208.159.216.49 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 56 + LEN: 1496 + ID: 14095 + CKSUM: 0x8e6f (CORRECT) + OFFSET: 0x4001 (frag: 1476 bytes at offset 8 - Last Frag) Don't Fragment + +Packet 2 + Packet Length: 68 + Collected: Tue Feb 3 20:01:10.867081 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 204.123.2.84 + IP Dest: 208.159.216.49 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 56 + LEN: 1496 + ID: 15129 + CKSUM: 0x8a65 (CORRECT) + OFFSET: 0x4001 (frag: 1476 bytes at offset 8 - Last Frag) Don't Fragment + +Packet 3 + Packet Length: 68 + Collected: Tue Feb 3 20:01:13.907081 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 204.123.2.84 + IP Dest: 208.159.216.49 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 56 + LEN: 1496 + ID: 17365 + CKSUM: 0x81a9 (CORRECT) + OFFSET: 0x4001 (frag: 1476 bytes at offset 8 - Last Frag) Don't Fragment + +Packet 4 + Packet Length: 68 + Collected: Tue Feb 3 20:01:19.867081 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 204.123.2.84 + IP Dest: 208.159.216.49 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 56 + LEN: 1496 + ID: 21486 + CKSUM: 0x7190 (CORRECT) + OFFSET: 0x4001 (frag: 1476 bytes at offset 8 - Last Frag) Don't Fragment + +Packet 5 + Packet Length: 68 + Collected: Tue Feb 3 20:01:31.857081 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 204.123.2.84 + IP Dest: 208.159.216.49 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 56 + LEN: 1496 + ID: 30140 + CKSUM: 0x4fc2 (CORRECT) + OFFSET: 0x4001 (frag: 1476 bytes at offset 8 - Last Frag) Don't Fragment + +5 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:22.460000 +bad IP checksums: 0 +bad TCP checksums: 0 +no traced TCP packets diff --git a/input/OUTPUTbench/ipfrags.dmp.gz.short b/input/OUTPUTbench/ipfrags.dmp.gz.short new file mode 100644 index 0000000..2235771 --- /dev/null +++ b/input/OUTPUTbench/ipfrags.dmp.gz.short @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'ipfrags.dmp.gz' + +5 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:22.460000 +no traced TCP packets diff --git a/input/OUTPUTbench/ipfrags.dmp.gz.xplots.cksum b/input/OUTPUTbench/ipfrags.dmp.gz.xplots.cksum new file mode 100644 index 0000000..e69de29 diff --git a/input/OUTPUTbench/ipopts.dmp.gz.long b/input/OUTPUTbench/ipopts.dmp.gz.long new file mode 100644 index 0000000..5d7f3c7 --- /dev/null +++ b/input/OUTPUTbench/ipopts.dmp.gz.long @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'ipopts.dmp.gz' + +8 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:03.065961 +no traced TCP packets diff --git a/input/OUTPUTbench/ipopts.dmp.gz.packets b/input/OUTPUTbench/ipopts.dmp.gz.packets new file mode 100644 index 0000000..aaeb237 --- /dev/null +++ b/input/OUTPUTbench/ipopts.dmp.gz.packets @@ -0,0 +1,255 @@ +1 arg remaining, starting with 'ipopts.dmp.gz' + +Packet 1 + Packet Length: 138 + Collected: Wed Jan 27 16:55:20.877461 1999 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:47:be:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 135.145.9.134 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 255 + LEN: 124 + ID: 21572 + CKSUM: 0xf892 (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:4 + 1: xxxxxxxxxxx + 2: xxxxxxxxxxx + 3: xxxxxxxxxxx + 4: xxxxxxxxxxx + 5: xxxxxxxxxxx + 6: xxxxxxxxxxx + 7: xxxxxxxxxxx + 8: xxxxxxxxxxx + 9: xxxxxxxxxxx + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 2 + Packet Length: 138 + Collected: Wed Jan 27 16:55:20.945113 1999 + ETH Srce: 00:00:0c:47:be:87 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 135.145.9.134 + IP Dest: 132.235.3.128 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 245 + LEN: 124 + ID: 10801 + CKSUM: 0x1a7b (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:40 + 1: 132.235.1.22 132.235.1.22 + 2: 199.18.18.6 199.18.18.6 + 3: 199.18.202.82 199.18.202.82 + 4: 199.18.202.13 199.18.202.13 + 5: 157.130.102.158 157.130.102.158 + 6: 146.188.209.65 146.188.209.65 + 7: 146.188.208.154 146.188.208.154 + 8: 157.130.96.9 157.130.96.9 + 9: 192.205.31.125 192.205.31.125 + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 3 + Packet Length: 138 + Collected: Wed Jan 27 16:55:21.877469 1999 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:47:be:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 135.145.9.134 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 255 + LEN: 124 + ID: 21573 + CKSUM: 0xf891 (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:4 + 1: xxxxxxxxxxx + 2: xxxxxxxxxxx + 3: xxxxxxxxxxx + 4: xxxxxxxxxxx + 5: xxxxxxxxxxx + 6: xxxxxxxxxxx + 7: xxxxxxxxxxx + 8: xxxxxxxxxxx + 9: xxxxxxxxxxx + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 4 + Packet Length: 138 + Collected: Wed Jan 27 16:55:21.971355 1999 + ETH Srce: 00:00:0c:47:be:87 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 135.145.9.134 + IP Dest: 132.235.3.128 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 245 + LEN: 124 + ID: 10802 + CKSUM: 0x2a7a (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:40 + 1: 132.235.1.22 132.235.1.22 + 2: 199.18.18.6 199.18.18.6 + 3: 199.18.202.82 199.18.202.82 + 4: 199.18.202.13 199.18.202.13 + 5: 157.130.102.158 157.130.102.158 + 6: 146.188.209.69 146.188.209.69 + 7: 146.188.208.150 146.188.208.150 + 8: 157.130.96.9 157.130.96.9 + 9: 192.205.31.109 192.205.31.109 + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 5 + Packet Length: 138 + Collected: Wed Jan 27 16:55:22.877515 1999 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:47:be:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 135.145.9.134 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 255 + LEN: 124 + ID: 21574 + CKSUM: 0xf890 (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:4 + 1: xxxxxxxxxxx + 2: xxxxxxxxxxx + 3: xxxxxxxxxxx + 4: xxxxxxxxxxx + 5: xxxxxxxxxxx + 6: xxxxxxxxxxx + 7: xxxxxxxxxxx + 8: xxxxxxxxxxx + 9: xxxxxxxxxxx + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 6 + Packet Length: 138 + Collected: Wed Jan 27 16:55:22.976203 1999 + ETH Srce: 00:00:0c:47:be:87 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 135.145.9.134 + IP Dest: 132.235.3.128 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 245 + LEN: 124 + ID: 10803 + CKSUM: 0x1a79 (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:40 + 1: 132.235.1.22 132.235.1.22 + 2: 199.18.18.6 199.18.18.6 + 3: 199.18.202.82 199.18.202.82 + 4: 199.18.202.13 199.18.202.13 + 5: 157.130.102.158 157.130.102.158 + 6: 146.188.209.65 146.188.209.65 + 7: 146.188.208.154 146.188.208.154 + 8: 157.130.96.9 157.130.96.9 + 9: 192.205.31.125 192.205.31.125 + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 7 + Packet Length: 138 + Collected: Wed Jan 27 16:55:23.877578 1999 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:47:be:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 135.145.9.134 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 255 + LEN: 124 + ID: 21575 + CKSUM: 0xf88f (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:4 + 1: xxxxxxxxxxx + 2: xxxxxxxxxxx + 3: xxxxxxxxxxx + 4: xxxxxxxxxxx + 5: xxxxxxxxxxx + 6: xxxxxxxxxxx + 7: xxxxxxxxxxx + 8: xxxxxxxxxxx + 9: xxxxxxxxxxx + IP option 0 (copy:N class:ctrl number:0) + EOL + +Packet 8 + Packet Length: 138 + Collected: Wed Jan 27 16:55:23.943422 1999 + ETH Srce: 00:00:0c:47:be:87 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 135.145.9.134 + IP Dest: 132.235.3.128 + Type: 0x1 (ICMP) + HLEN: 60 + TTL: 245 + LEN: 124 + ID: 10804 + CKSUM: 0x2a78 (CORRECT) + OFFSET: 0x4000 Don't Fragment + Options: 40 bytes + IP option 7 (copy:N class:ctrl number:7) + Record Route: len: 39 ptr:40 + 1: 132.235.1.22 132.235.1.22 + 2: 199.18.18.6 199.18.18.6 + 3: 199.18.202.82 199.18.202.82 + 4: 199.18.202.13 199.18.202.13 + 5: 157.130.102.158 157.130.102.158 + 6: 146.188.209.69 146.188.209.69 + 7: 146.188.208.150 146.188.208.150 + 8: 157.130.96.9 157.130.96.9 + 9: 192.205.31.109 192.205.31.109 + IP option 0 (copy:N class:ctrl number:0) + EOL + +8 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:03.065961 +bad IP checksums: 0 +bad TCP checksums: 0 +no traced TCP packets diff --git a/input/OUTPUTbench/ipopts.dmp.gz.short b/input/OUTPUTbench/ipopts.dmp.gz.short new file mode 100644 index 0000000..5d7f3c7 --- /dev/null +++ b/input/OUTPUTbench/ipopts.dmp.gz.short @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'ipopts.dmp.gz' + +8 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:03.065961 +no traced TCP packets diff --git a/input/OUTPUTbench/ipopts.dmp.gz.xplots.cksum b/input/OUTPUTbench/ipopts.dmp.gz.xplots.cksum new file mode 100644 index 0000000..e69de29 diff --git a/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.long b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.long new file mode 100644 index 0000000..5b7f226 --- /dev/null +++ b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.long @@ -0,0 +1,236 @@ +1 arg remaining, starting with 'ipv6_ftp_nasa.snp.gz' + +1166 packets seen, 1164 TCP packets traced +trace file elapsed time: 0:01:35.571054 +TCP connection info: +3 TCP connections traced: +TCP connection 1: + host a: fe80::0002:0a00:20ff:fe22:e80f:33793 + host b: fe80::0001:0a00:20ff:fe22:ddb7:21 + complete conn: yes + first packet: Mon Mar 2 11:51:09.763956 1998 + last packet: Mon Mar 2 11:52:45.335010 1998 + elapsed time: 0:01:35.571054 + total packets: 27 + filename: ipv6_ftp_nasa.snp.gz + a->b: b->a: + total packets: 15 total packets: 12 + ack pkts sent: 14 ack pkts sent: 12 + pure acks sent: 7 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 123 unique bytes sent: 287 + actual data pkts: 6 actual data pkts: 8 + actual data bytes: 123 actual data bytes: 287 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 6 pushed data pkts: 8 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1440 bytes mss requested: 1440 bytes + max segm size: 65 bytes max segm size: 78 bytes + min segm size: 6 bytes min segm size: 14 bytes + avg segm size: 20 bytes avg segm size: 35 bytes + max win adv: 8640 bytes max win adv: 8640 bytes + min win adv: 8640 bytes min win adv: 8640 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8640 bytes avg win adv: 8640 bytes + max owin: 66 bytes max owin: 79 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 9 bytes avg owin: 27 bytes + wavg owin: 0 bytes wavg owin: 24 bytes + initial window: 11 bytes initial window: 62 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 123 bytes ttl stream length: 287 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 83.600 secs data xmit time: 83.613 secs + idletime max: 59571.8 ms idletime max: 59616.4 ms + throughput: 1 Bps throughput: 3 Bps + + RTT samples: 8 RTT samples: 10 + RTT min: 0.7 ms RTT min: 0.3 ms + RTT max: 45.7 ms RTT max: 47.5 ms + RTT avg: 8.8 ms RTT avg: 24.0 ms + RTT stdev: 15.3 ms RTT stdev: 22.3 ms + + RTT from 3WHS: 1.5 ms RTT from 3WHS: 0.3 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1.9 ms RTT full_sz min: 44.9 ms + RTT full_sz max: 1.9 ms RTT full_sz max: 44.9 ms + RTT full_sz avg: 1.9 ms RTT full_sz avg: 44.9 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 198.119.6.39:1023 + host d: 128.183.34.146:513 + complete conn: no (SYNs: 0) (FINs: 2) + first packet: Mon Mar 2 11:51:47.784391 1998 + last packet: Mon Mar 2 11:51:50.820332 1998 + elapsed time: 0:00:03.035940 + total packets: 32 + filename: ipv6_ftp_nasa.snp.gz + c->d: d->c: + total packets: 20 total packets: 12 + ack pkts sent: 20 ack pkts sent: 12 + pure acks sent: 9 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 10 unique bytes sent: 23 + actual data pkts: 10 actual data pkts: 10 + actual data bytes: 12 actual data bytes: 23 + rexmt data pkts: 2 rexmt data pkts: 0 + rexmt data bytes: 2 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 9 pushed data pkts: 10 + SYN/FIN pkts sent: 0/1 SYN/FIN pkts sent: 0/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 3 bytes max segm size: 9 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 2 bytes + max win adv: 8760 bytes max win adv: 8760 bytes + min win adv: 8760 bytes min win adv: 8760 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8760 bytes avg win adv: 8760 bytes + max owin: 4 bytes max owin: 10 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 2 bytes + wavg owin: 0 bytes wavg owin: 1 bytes + initial window: 1 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 1.710 secs data xmit time: 1.706 secs + idletime max: 1256.4 ms idletime max: 1299.0 ms + throughput: 3 Bps throughput: 8 Bps + + RTT samples: 8 RTT samples: 11 + RTT min: 2.3 ms RTT min: 0.2 ms + RTT max: 6.7 ms RTT max: 50.7 ms + RTT avg: 4.2 ms RTT avg: 36.7 ms + RTT stdev: 1.8 ms RTT stdev: 19.4 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 2.4 ms RTT full_sz min: 49.8 ms + RTT full_sz max: 2.4 ms RTT full_sz max: 49.8 ms + RTT full_sz avg: 2.4 ms RTT full_sz avg: 49.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + 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. + ambiguous acks: 1 ambiguous acks: 0 + RTT min (last): 16.0 ms RTT min (last): 0.0 ms + RTT max (last): 16.0 ms RTT max (last): 0.0 ms + RTT avg (last): 16.0 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 2 max # retrans: 0 + min retr time: 186.2 ms min retr time: 0.0 ms + max retr time: 380.0 ms max retr time: 0.0 ms + avg retr time: 283.1 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 3: + host e: fe80::0001:0a00:20ff:fe22:ddb7:20 + host f: fe80::0002:0a00:20ff:fe22:e80f:33794 + complete conn: yes + first packet: Mon Mar 2 11:52:34.453217 1998 + last packet: Mon Mar 2 11:52:41.908420 1998 + elapsed time: 0:00:07.455203 + total packets: 1105 + filename: ipv6_ftp_nasa.snp.gz + e->f: f->e: + total packets: 191 total packets: 914 + ack pkts sent: 190 ack pkts sent: 914 + pure acks sent: 189 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 1243008 + actual data pkts: 0 actual data pkts: 911 + actual data bytes: 0 actual data bytes: 1243008 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 634 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1440 bytes mss requested: 1440 bytes + max segm size: 0 bytes max segm size: 1440 bytes + min segm size: 0 bytes min segm size: 704 bytes + avg segm size: 0 bytes avg segm size: 1364 bytes + max win adv: 25920 bytes max win adv: 25920 bytes + min win adv: 8544 bytes min win adv: 8640 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 25750 bytes avg win adv: 25901 bytes + max owin: 1 bytes max owin: 679937 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 52850 bytes + wavg owin: 0 bytes wavg owin: 32783 bytes + initial window: 0 bytes initial window: 1440 bytes + initial window: 0 pkts initial window: 1 pkts + ttl stream length: 0 bytes ttl stream length: 6311424 bytes + missed data: 0 bytes missed data: 5068416 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 7.382 secs + idletime max: 633.5 ms idletime max: 619.9 ms + throughput: 0 Bps throughput: 166730 Bps + + RTT samples: 2 RTT samples: 160 + RTT min: 0.3 ms RTT min: 0.8 ms + RTT max: 0.8 ms RTT max: 56.6 ms + RTT avg: 0.6 ms RTT avg: 15.6 ms + RTT stdev: 0.0 ms RTT stdev: 8.9 ms + + RTT from 3WHS: 0.8 ms RTT from 3WHS: 0.8 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 130 + RTT full_sz min: 0.3 ms RTT full_sz min: 2.2 ms + RTT full_sz max: 0.3 ms RTT full_sz max: 25.5 ms + RTT full_sz avg: 0.3 ms RTT full_sz avg: 14.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 4.9 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 753 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.packets b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.packets new file mode 100644 index 0000000..e460fd2 --- /dev/null +++ b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.packets @@ -0,0 +1,2458 @@ +1 arg remaining, starting with 'ipv6_ftp_nasa.snp.gz' + +Packet 1 + Packet Length: 78 + Collected: Mon Mar 2 11:51:09.763956 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 24 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: ----S- (0x02) + SEQ: 0x8a0e0945 + ACK: 0x00000000 + WIN: 8640 + HLEN: 24 + CKSUM: 0x4a00 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1440) +Packet 2 + Packet Length: 78 + Collected: Mon Mar 2 11:51:09.765437 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 24 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -A--S- (0x12) + SEQ: 0x8e963f61 + ACK: 0x8a0e0946 + WIN: 8640 + HLEN: 24 + CKSUM: 0x7bf7 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1440) +Packet 3 + Packet Length: 74 + Collected: Mon Mar 2 11:51:09.765760 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x8a0e0946 + ACK: 0x8e963f62 + WIN: 8640 + HLEN: 20 + CKSUM: 0x93a0 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 86 + Collected: Mon Mar 2 11:51:14.450374 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 15 + Flow: 0 + PLEN: 32 + NXTH: 58 (IPv6 ICMP) + HLIM: 255 +Packet 5 + Packet Length: 86 + Collected: Mon Mar 2 11:51:14.451207 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 15 + Flow: 0 + PLEN: 40 + NXTH: 58 (IPv6 ICMP) + HLIM: 255 +Packet 6 + Packet Length: 136 + Collected: Mon Mar 2 11:51:21.704882 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 82 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -AP--- (0x18) + SEQ: 0x8e963f62 + ACK: 0x8a0e0946 + WIN: 8640 + HLEN: 20 + CKSUM: 0x11dc (CORRECT) + DLEN: 62 + data: 62 bytes +Packet 7 + Packet Length: 85 + Collected: Mon Mar 2 11:51:21.716106 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 31 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x8a0e0946 + ACK: 0x8e963fa0 + WIN: 8640 + HLEN: 20 + CKSUM: 0xeaba (CORRECT) + DLEN: 11 + data: 11 bytes +Packet 8 + Packet Length: 107 + Collected: Mon Mar 2 11:51:21.724017 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 53 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -AP--- (0x18) + SEQ: 0x8e963fa0 + ACK: 0x8a0e0951 + WIN: 8640 + HLEN: 20 + CKSUM: 0xbcde (CORRECT) + DLEN: 33 + data: 33 bytes +Packet 9 + Packet Length: 74 + Collected: Mon Mar 2 11:51:21.770552 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x8a0e0951 + ACK: 0x8e963fc1 + WIN: 8640 + HLEN: 20 + CKSUM: 0x9336 (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 91 + Collected: Mon Mar 2 11:51:25.826392 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 37 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x8a0e0951 + ACK: 0x8e963fc1 + WIN: 8640 + HLEN: 20 + CKSUM: 0x13c2 (CORRECT) + DLEN: 17 + data: 17 bytes +Packet 11 + Packet Length: 74 + Collected: Mon Mar 2 11:51:25.872140 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -A---- (0x10) + SEQ: 0x8e963fc1 + ACK: 0x8a0e0962 + WIN: 8640 + HLEN: 20 + CKSUM: 0x9325 (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 100 + Collected: Mon Mar 2 11:51:25.872925 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 46 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -AP--- (0x18) + SEQ: 0x8e963fc1 + ACK: 0x8a0e0962 + WIN: 8640 + HLEN: 20 + CKSUM: 0x9ceb (CORRECT) + DLEN: 26 + data: 26 bytes +Packet 13 + Packet Length: 74 + Collected: Mon Mar 2 11:51:25.920445 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x8a0e0962 + ACK: 0x8e963fdb + WIN: 8640 + HLEN: 20 + CKSUM: 0x930b (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 82 + Collected: Mon Mar 2 11:51:34.826184 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 28 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x8a0e0962 + ACK: 0x8e963fdb + WIN: 8640 + HLEN: 20 + CKSUM: 0xc109 (CORRECT) + DLEN: 8 + data: 8 bytes +Packet 15 + Packet Length: 94 + Collected: Mon Mar 2 11:51:34.827770 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 40 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -AP--- (0x18) + SEQ: 0x8e963fdb + ACK: 0x8a0e096a + WIN: 8640 + HLEN: 20 + CKSUM: 0x0004 (CORRECT) + DLEN: 20 + data: 20 bytes +Packet 16 + Packet Length: 74 + Collected: Mon Mar 2 11:51:34.870449 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x8a0e096a + ACK: 0x8e963fef + WIN: 8640 + HLEN: 20 + CKSUM: 0x92ef (CORRECT) + DLEN: 0 +Packet 17 + Packet Length: 55 + Collected: Mon Mar 2 11:51:47.784391 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37181 + CKSUM: 0x7aa9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b42c + ACK: 0xea9f797d + WIN: 8760 + HLEN: 20 + CKSUM: 0x345a (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 18 + Packet Length: 60 + Collected: Mon Mar 2 11:51:47.791088 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 41 + ID: 4075 + CKSUM: 0xfefb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f797d + ACK: 0x6607b42d + WIN: 8760 + HLEN: 20 + CKSUM: 0x3459 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 19 + Packet Length: 54 + Collected: Mon Mar 2 11:51:47.840746 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37182 + CKSUM: 0x7aa9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b42d + ACK: 0xea9f797e + WIN: 8760 + HLEN: 20 + CKSUM: 0x9961 (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 55 + Collected: Mon Mar 2 11:51:47.964221 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37183 + CKSUM: 0x7aa7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b42d + ACK: 0xea9f797e + WIN: 8760 + HLEN: 20 + CKSUM: 0x2158 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 21 + Packet Length: 60 + Collected: Mon Mar 2 11:51:47.968024 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 41 + ID: 4076 + CKSUM: 0xfefa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f797e + ACK: 0x6607b42e + WIN: 8760 + HLEN: 20 + CKSUM: 0x2157 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 22 + Packet Length: 54 + Collected: Mon Mar 2 11:51:48.010477 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37184 + CKSUM: 0x7aa7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b42e + ACK: 0xea9f797f + WIN: 8760 + HLEN: 20 + CKSUM: 0x995f (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 55 + Collected: Mon Mar 2 11:51:48.024139 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37185 + CKSUM: 0x7aa5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b42e + ACK: 0xea9f797f + WIN: 8760 + HLEN: 20 + CKSUM: 0x3056 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 24 + Packet Length: 60 + Collected: Mon Mar 2 11:51:48.030086 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 41 + ID: 4077 + CKSUM: 0xfef9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f797f + ACK: 0x6607b42f + WIN: 8760 + HLEN: 20 + CKSUM: 0x3055 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 25 + Packet Length: 54 + Collected: Mon Mar 2 11:51:48.080771 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37186 + CKSUM: 0x7aa5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b42f + ACK: 0xea9f7980 + WIN: 8760 + HLEN: 20 + CKSUM: 0x995d (CORRECT) + DLEN: 0 +Packet 26 + Packet Length: 55 + Collected: Mon Mar 2 11:51:48.174129 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37187 + CKSUM: 0x7aa3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b42f + ACK: 0xea9f7980 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2554 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 27 + Packet Length: 60 + Collected: Mon Mar 2 11:51:48.180454 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 41 + ID: 4078 + CKSUM: 0xfef8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f7980 + ACK: 0x6607b430 + WIN: 8760 + HLEN: 20 + CKSUM: 0x2553 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 28 + Packet Length: 54 + Collected: Mon Mar 2 11:51:48.230378 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37188 + CKSUM: 0x7aa3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b430 + ACK: 0xea9f7981 + WIN: 8760 + HLEN: 20 + CKSUM: 0x995b (CORRECT) + DLEN: 0 +Packet 29 + Packet Length: 55 + Collected: Mon Mar 2 11:51:48.294250 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37189 + CKSUM: 0x7aa1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b430 + ACK: 0xea9f7981 + WIN: 8760 + HLEN: 20 + CKSUM: 0x8c52 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 30 + Packet Length: 60 + Collected: Mon Mar 2 11:51:48.297195 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 42 + ID: 4079 + CKSUM: 0xfef6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f7981 + ACK: 0x6607b431 + WIN: 8760 + HLEN: 20 + CKSUM: 0x8c46 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 31 + Packet Length: 54 + Collected: Mon Mar 2 11:51:48.340431 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37190 + CKSUM: 0x7aa1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b431 + ACK: 0xea9f7983 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9958 (CORRECT) + DLEN: 0 +Packet 32 + Packet Length: 63 + Collected: Mon Mar 2 11:51:48.350581 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 49 + ID: 4080 + CKSUM: 0xfeee (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f7983 + ACK: 0x6607b431 + WIN: 8760 + HLEN: 20 + CKSUM: 0xd4c7 (CORRECT) + DLEN: 9 + data: 9 bytes +Packet 33 + Packet Length: 54 + Collected: Mon Mar 2 11:51:48.400340 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37191 + CKSUM: 0x7aa0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b431 + ACK: 0xea9f798c + WIN: 8760 + HLEN: 20 + CKSUM: 0x994f (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 60 + Collected: Mon Mar 2 11:51:48.410904 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 42 + ID: 4081 + CKSUM: 0xfef4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f798c + ACK: 0x6607b431 + WIN: 8760 + HLEN: 20 + CKSUM: 0x7525 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 35 + Packet Length: 54 + Collected: Mon Mar 2 11:51:48.460359 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37192 + CKSUM: 0x7a9f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b431 + ACK: 0xea9f798e + WIN: 8760 + HLEN: 20 + CKSUM: 0x994d (CORRECT) + DLEN: 0 +Packet 36 + Packet Length: 55 + Collected: Mon Mar 2 11:51:48.884224 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37193 + CKSUM: 0x7a9d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b431 + ACK: 0xea9f798e + WIN: 8760 + HLEN: 20 + CKSUM: 0x3444 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 37 + Packet Length: 55 + Collected: Mon Mar 2 11:51:49.070407 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37194 + CKSUM: 0x7a9c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b431 + ACK: 0xea9f798e + WIN: 8760 + HLEN: 20 + CKSUM: 0x3444 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 38 + Packet Length: 55 + Collected: Mon Mar 2 11:51:49.450443 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37195 + CKSUM: 0x7a9b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b431 + ACK: 0xea9f798e + WIN: 8760 + HLEN: 20 + CKSUM: 0x344c (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 39 + Packet Length: 60 + Collected: Mon Mar 2 11:51:49.466432 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 41 + ID: 4086 + CKSUM: 0xfef0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f798e + ACK: 0x6607b432 + WIN: 8760 + HLEN: 20 + CKSUM: 0x3443 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 40 + Packet Length: 57 + Collected: Mon Mar 2 11:51:49.466668 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 43 + ID: 37196 + CKSUM: 0x7a98 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b432 + ACK: 0xea9f798f + WIN: 8760 + HLEN: 20 + CKSUM: 0xacd6 (CORRECT) + DLEN: 3 + data: 3 bytes +Packet 41 + Packet Length: 60 + Collected: Mon Mar 2 11:51:49.469104 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 43 + ID: 4087 + CKSUM: 0xfeed (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f798f + ACK: 0x6607b435 + WIN: 8760 + HLEN: 20 + CKSUM: 0xacd3 (CORRECT) + DLEN: 3 + data: 3 bytes +Packet 42 + Packet Length: 55 + Collected: Mon Mar 2 11:51:49.494130 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 41 + ID: 37197 + CKSUM: 0x7a99 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -AP--- (0x18) + SEQ: 0x6607b435 + ACK: 0xea9f7992 + WIN: 8760 + HLEN: 20 + CKSUM: 0x8c3c (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 43 + Packet Length: 60 + Collected: Mon Mar 2 11:51:49.497528 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 42 + ID: 4088 + CKSUM: 0xfeed (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -AP--- (0x18) + SEQ: 0xea9f7992 + ACK: 0x6607b436 + WIN: 8760 + HLEN: 20 + CKSUM: 0x8c30 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 44 + Packet Length: 54 + Collected: Mon Mar 2 11:51:49.540401 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37198 + CKSUM: 0x7a99 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b436 + ACK: 0xea9f7994 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9942 (CORRECT) + DLEN: 0 +Packet 45 + Packet Length: 60 + Collected: Mon Mar 2 11:51:50.796488 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 40 + ID: 4089 + CKSUM: 0xfeee (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -A---F (0x11) + SEQ: 0xea9f7994 + ACK: 0x6607b436 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9941 (CORRECT) + DLEN: 0 +Packet 46 + Packet Length: 54 + Collected: Mon Mar 2 11:51:50.796793 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37199 + CKSUM: 0x7a98 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---- (0x10) + SEQ: 0x6607b436 + ACK: 0xea9f7995 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9941 (CORRECT) + DLEN: 0 +Packet 47 + Packet Length: 54 + Collected: Mon Mar 2 11:51:50.817987 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 00:00:0c:07:23:41 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.119.6.39 + IP Dest: 128.183.34.146 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 37200 + CKSUM: 0x7a97 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1023 + DPRT: 513 + FLG: -A---F (0x11) + SEQ: 0x6607b436 + ACK: 0xea9f7995 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9940 (CORRECT) + DLEN: 0 +Packet 48 + Packet Length: 60 + Collected: Mon Mar 2 11:51:50.820332 1998 + ETH Srce: 00:00:0c:07:23:41 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.183.34.146 + IP Dest: 198.119.6.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 252 + LEN: 40 + ID: 4090 + CKSUM: 0xfeed (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 513 + DPRT: 1023 + FLG: -A---- (0x10) + SEQ: 0xea9f7995 + ACK: 0x6607b437 + WIN: 8760 + HLEN: 20 + CKSUM: 0x9940 (CORRECT) + DLEN: 0 +Packet 49 + Packet Length: 139 + Collected: Mon Mar 2 11:52:34.442299 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 85 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x8a0e096a + ACK: 0x8e963fef + WIN: 8640 + HLEN: 20 + CKSUM: 0x2f94 (CORRECT) + DLEN: 65 + data: 65 bytes +Packet 50 + Packet Length: 104 + Collected: Mon Mar 2 11:52:34.444150 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 50 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -AP--- (0x18) + SEQ: 0x8e963fef + ACK: 0x8a0e09ab + WIN: 8640 + HLEN: 20 + CKSUM: 0xd99f (CORRECT) + DLEN: 30 + data: 30 bytes +Packet 51 + Packet Length: 90 + Collected: Mon Mar 2 11:52:34.446121 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 36 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0x8a0e09ab + ACK: 0x8e96400d + WIN: 8640 + HLEN: 20 + CKSUM: 0x0d22 (CORRECT) + DLEN: 16 + data: 16 bytes +Packet 52 + Packet Length: 78 + Collected: Mon Mar 2 11:52:34.453217 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 24 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: ----S- (0x02) + SEQ: 0x8f39727a + ACK: 0x00000000 + WIN: 25920 + HLEN: 24 + CKSUM: 0x981f (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1440) +Packet 53 + Packet Length: 78 + Collected: Mon Mar 2 11:52:34.454051 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 24 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A--S- (0x12) + SEQ: 0x8ab20441 + ACK: 0x8f39727b + WIN: 8640 + HLEN: 24 + CKSUM: 0x4c9b (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1440) +Packet 54 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.454833 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab20442 + WIN: 25920 + HLEN: 20 + CKSUM: 0x20c4 (CORRECT) + DLEN: 0 +Packet 55 + Packet Length: 152 + Collected: Mon Mar 2 11:52:34.456086 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 98 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 21 + DPRT: 33793 + FLG: -AP--- (0x18) + SEQ: 0x8e96400d + ACK: 0x8a0e09bb + WIN: 8640 + HLEN: 20 + CKSUM: 0x1e85 (CORRECT) + DLEN: 78 + data: 78 bytes +Packet 56 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.493819 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab20442 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x643a (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 57 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.496002 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab209e2 + WIN: 25920 + HLEN: 20 + CKSUM: 0x1b24 (CORRECT) + DLEN: 0 +Packet 58 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.496324 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab209e2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x7620 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 59 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.496522 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab20f82 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x9e71 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 60 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.499677 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab21522 + WIN: 25920 + HLEN: 20 + CKSUM: 0x0fe4 (CORRECT) + DLEN: 0 +Packet 61 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.500326 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab21522 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x5872 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 62 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.500540 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab21ac2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xe8fb (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 63 + Packet Length: 1066 + Collected: Mon Mar 2 11:52:34.500718 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab22062 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xc084 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 64 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.501004 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33793 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0x8a0e09bb + ACK: 0x8e96405b + WIN: 8640 + HLEN: 20 + CKSUM: 0x9232 (CORRECT) + DLEN: 0 +Packet 65 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.546345 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab22442 + WIN: 25920 + HLEN: 20 + CKSUM: 0x00c4 (CORRECT) + DLEN: 0 +Packet 66 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.546755 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab22442 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x93be (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 67 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.546969 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab229e2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x0970 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 68 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.547172 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab22f82 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xa659 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 69 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.547363 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab23522 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x894d (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 70 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.552205 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab229e2 + WIN: 25920 + HLEN: 20 + CKSUM: 0xfb23 (CORRECT) + DLEN: 0 +Packet 71 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.552428 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab23522 + WIN: 25920 + HLEN: 20 + CKSUM: 0xefe3 (CORRECT) + DLEN: 0 +Packet 72 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.552794 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab23ac2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x5ab2 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 73 + Packet Length: 1066 + Collected: Mon Mar 2 11:52:34.552978 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab24062 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x7755 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 74 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.553509 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab24442 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x3b9f (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 75 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.554067 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab249e2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xbab8 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 76 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.554560 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab24f82 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x52a5 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 77 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.559301 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab249e2 + WIN: 25920 + HLEN: 20 + CKSUM: 0xdb23 (CORRECT) + DLEN: 0 +Packet 78 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.559665 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab25522 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xab06 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 79 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.559879 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab25ac2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x07e0 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 80 + Packet Length: 1066 + Collected: Mon Mar 2 11:52:34.560112 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab26062 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xd6a8 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 81 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.560325 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab26442 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x72b6 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 82 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.560531 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab269e2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xb0cd (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 83 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.566179 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab26062 + WIN: 25920 + HLEN: 20 + CKSUM: 0xc4a3 (CORRECT) + DLEN: 0 +Packet 84 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.566653 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab26f82 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xa520 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 85 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.566871 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab27522 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x9b1e (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 86 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.567090 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab27ac2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x87a8 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 87 + Packet Length: 1066 + Collected: Mon Mar 2 11:52:34.567289 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab28062 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x46a0 (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 88 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.567496 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab28442 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x97ce (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 89 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.573128 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab28062 + WIN: 25920 + HLEN: 20 + CKSUM: 0xa4a3 (CORRECT) + DLEN: 0 +Packet 90 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.573519 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab289e2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xa771 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 91 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.573749 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab28f82 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x202b (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 92 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.573966 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab29522 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xa979 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 93 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.574199 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0x8ab29ac2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x742a (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 94 + Packet Length: 1066 + Collected: Mon Mar 2 11:52:34.574412 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1012 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab2a062 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xff0d (CORRECT) + DLEN: 992 + data: 992 bytes +Packet 95 + Packet Length: 74 + Collected: Mon Mar 2 11:52:34.579926 1998 + ETH Srce: 08:00:20:22:dd:b7 + ETH Dest: 08:00:20:22:e8:0f + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0001:0a00:20ff:fe22:ddb7 + IP Dest: fe80::0002:0a00:20ff:fe22:e80f + Class: 0 + Flow: 0 + PLEN: 20 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 20 + DPRT: 33794 + FLG: -A---- (0x10) + SEQ: 0x8f39727b + ACK: 0x8ab2a442 + WIN: 25920 + HLEN: 20 + CKSUM: 0x80c3 (CORRECT) + DLEN: 0 +Packet 96 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.586710 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab2a442 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xba15 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 97 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.587368 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab2a9e2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xbbb4 (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 98 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.587975 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab2af82 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x5b6d (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 99 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.588546 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab2b522 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0xf8fd (CORRECT) + DLEN: 1440 + data: 1440 bytes +Packet 100 + Packet Length: 1514 + Collected: Mon Mar 2 11:52:34.589056 1998 + ETH Srce: 08:00:20:22:e8:0f + ETH Dest: 08:00:20:22:dd:b7 + Type: 0x86dd (IPv6) + IP Vers: 6 + IP Srce: fe80::0002:0a00:20ff:fe22:e80f + IP Dest: fe80::0001:0a00:20ff:fe22:ddb7 + Class: 0 + Flow: 0 + PLEN: 1460 + NXTH: 6 (TCP) + HLIM: 255 + TCP SPRT: 33794 + DPRT: 20 + FLG: -AP--- (0x18) + SEQ: 0x8ab2bac2 + ACK: 0x8f39727b + WIN: 25920 + HLEN: 20 + CKSUM: 0x021e (CORRECT) + DLEN: 1440 + data: 1440 bytes +100 packets seen, 98 TCP packets traced +trace file elapsed time: 0:01:24.825100 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: fe80::0002:0a00:20ff:fe22:e80f:33793 - fe80::0001:0a00:20ff:fe22:ddb7:21 (a2b) 11> 8< + 2: 198.119.6.39:1023 - 128.183.34.146:513 (c2d) 20> 12< + 3: fe80::0001:0a00:20ff:fe22:ddb7:20 - fe80::0002:0a00:20ff:fe22:e80f:33794 (e2f) 11> 36< diff --git a/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.short b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.short new file mode 100644 index 0000000..02ed244 --- /dev/null +++ b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.short @@ -0,0 +1,8 @@ +1 arg remaining, starting with 'ipv6_ftp_nasa.snp.gz' + +1166 packets seen, 1164 TCP packets traced +trace file elapsed time: 0:01:35.571054 +TCP connection info: + 1: fe80::0002:0a00:20ff:fe22:e80f:33793 - fe80::0001:0a00:20ff:fe22:ddb7:21 (a2b) 15> 12< (complete) + 2: 198.119.6.39:1023 - 128.183.34.146:513 (c2d) 20> 12< + 3: fe80::0001:0a00:20ff:fe22:ddb7:20 - fe80::0002:0a00:20ff:fe22:e80f:33794 (e2f) 191> 914< (complete) diff --git a/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.xplots.cksum b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.xplots.cksum new file mode 100644 index 0000000..254e12c --- /dev/null +++ b/input/OUTPUTbench/ipv6_ftp_nasa.snp.gz.xplots.cksum @@ -0,0 +1,33 @@ +2166523008 2995 a2b_owin.xpl +2891382603 558 a2b_rtt.xpl +3127370672 883 a2b_ssize.xpl +1340127885 304 a2b_tput.xpl +2972683626 3320 a2b_tsg.xpl +2370502172 3688 a_b_tline.xpl +1690328349 2176 b2a_owin.xpl +553716015 639 b2a_rtt.xpl +2431083099 1033 b2a_ssize.xpl +44827189 337 b2a_tput.xpl +2628749082 3696 b2a_tsg.xpl +2349006535 5295 c2d_owin.xpl +2630879552 661 c2d_rtt.xpl +3587564147 1529 c2d_ssize.xpl +3453731727 446 c2d_tput.xpl +3286296283 5513 c2d_tsg.xpl +3072309039 6475 c_d_tline.xpl +1448318720 3575 d2c_owin.xpl +2026326251 898 d2c_rtt.xpl +1533468210 1529 d2c_ssize.xpl +2276854971 453 d2c_tput.xpl +1275164144 6648 d2c_tsg.xpl +1094244225 41742 e2f_owin.xpl +3584561386 172 e2f_rtt.xpl +3748732766 160 e2f_ssize.xpl +2398295969 151 e2f_tput.xpl +1863128045 174421 e2f_tsg.xpl +720425367 187999 e_f_tline.xpl +3095566210 267499 f2e_owin.xpl +1466778767 8835 f2e_rtt.xpl +2503146160 127738 f2e_ssize.xpl +787984545 44236 f2e_tput.xpl +2556934108 171468 f2e_tsg.xpl diff --git a/input/OUTPUTbench/linux_cooked_socket.dmp.gz.long b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.long new file mode 100644 index 0000000..f193f43 --- /dev/null +++ b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.long @@ -0,0 +1,160 @@ +TCP packet 4: reserved bits are not all zero. + Further warnings disabled, use '-w' for more info +1 arg remaining, starting with 'linux_cooked_socket.dmp.gz' + +17 packets seen, 17 TCP packets traced +trace file elapsed time: 0:00:01.430824 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: 212.38.233.159:1355 + host b: 209.10.41.242:21 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Wed May 23 16:46:25.426210 2001 + last packet: Wed May 23 16:46:26.547195 2001 + elapsed time: 0:00:01.120984 + total packets: 9 + filename: linux_cooked_socket.dmp.gz + a->b: b->a: + total packets: 5 total packets: 4 + ack pkts sent: 5 ack pkts sent: 4 + pure acks sent: 3 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 12 unique bytes sent: 128 + actual data pkts: 2 actual data pkts: 3 + actual data bytes: 12 actual data bytes: 128 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 3 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + req 1323 ws/ts: N/Y req 1323 ws/ts: N/Y + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 6 bytes max segm size: 54 bytes + min segm size: 6 bytes min segm size: 24 bytes + avg segm size: 5 bytes avg segm size: 42 bytes + max win adv: 11584 bytes max win adv: 5792 bytes + min win adv: 11584 bytes min win adv: 5792 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 11584 bytes avg win adv: 5792 bytes + max owin: 7 bytes max owin: 55 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 3 bytes avg owin: 33 bytes + wavg owin: 6 bytes wavg owin: 21 bytes + initial window: 6 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.342 secs data xmit time: 0.780 secs + idletime max: 739.4 ms idletime max: 400.0 ms + throughput: 11 Bps throughput: 114 Bps + + RTT samples: 2 RTT samples: 3 + RTT min: 340.9 ms RTT min: 0.1 ms + RTT max: 399.4 ms RTT max: 40.0 ms + RTT avg: 370.1 ms RTT avg: 13.4 ms + RTT stdev: 0.0 ms RTT stdev: 23.1 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 2 RTT full_sz smpls: 1 + RTT full_sz min: 340.9 ms RTT full_sz min: 40.0 ms + RTT full_sz max: 399.4 ms RTT full_sz max: 40.0 ms + RTT full_sz avg: 370.1 ms RTT full_sz avg: 40.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 212.38.233.159:1357 + host d: 209.10.41.242:32774 + complete conn: yes + first packet: Wed May 23 16:46:25.767662 2001 + last packet: Wed May 23 16:46:26.857034 2001 + elapsed time: 0:00:01.089372 + total packets: 8 + filename: linux_cooked_socket.dmp.gz + c->d: d->c: + total packets: 4 total packets: 4 + ack pkts sent: 3 ack pkts sent: 4 + pure acks sent: 2 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 458 + actual data pkts: 0 actual data pkts: 2 + actual data bytes: 0 actual data bytes: 458 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 2 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 0 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 0 bytes max segm size: 375 bytes + min segm size: 0 bytes min segm size: 83 bytes + avg segm size: 0 bytes avg segm size: 228 bytes + max win adv: 6432 bytes max win adv: 5792 bytes + min win adv: 5840 bytes min win adv: 5792 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 6037 bytes avg win adv: 5792 bytes + max owin: 1 bytes max owin: 376 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 153 bytes + wavg owin: 0 bytes wavg owin: 113 bytes + initial window: 0 bytes initial window: 83 bytes + initial window: 0 pkts initial window: 1 pkts + ttl stream length: 0 bytes ttl stream length: 458 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.050 secs + idletime max: 359.9 ms idletime max: 360.0 ms + throughput: 0 Bps throughput: 420 Bps + + RTT samples: 2 RTT samples: 3 + RTT min: 319.6 ms RTT min: 0.1 ms + RTT max: 359.4 ms RTT max: 0.3 ms + RTT avg: 339.5 ms RTT avg: 0.2 ms + RTT stdev: 0.0 ms RTT stdev: 0.1 ms + + RTT from 3WHS: 359.4 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 319.6 ms RTT full_sz min: 0.3 ms + RTT full_sz max: 319.6 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 319.6 ms RTT full_sz avg: 0.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/linux_cooked_socket.dmp.gz.packets b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.packets new file mode 100644 index 0000000..16c6539 --- /dev/null +++ b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.packets @@ -0,0 +1,475 @@ +1 arg remaining, starting with 'linux_cooked_socket.dmp.gz' + +Packet 1 + Packet Length: 74 + Collected: Wed May 23 16:46:25.426210 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 58 + ID: 43130 + CKSUM: 0xd47e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1355 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0xf13247c5 + ACK: 0xf1850fbc + WIN: 11584 + HLEN: 32 + CKSUM: 0x8531 (CORRECT) + DLEN: 6 + OPTS: 12 bytes TS(525857,205850833) + data: 6 bytes +Packet 2 + Packet Length: 118 + Collected: Wed May 23 16:46:25.767138 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 102 + ID: 62006 + CKSUM: 0x9c96 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 21 + DPRT: 1355 + FLG: -AP--- (0x18) + SEQ: 0xf1850fbc + ACK: 0xf13247cb + WIN: 5792 + HLEN: 32 + CKSUM: 0xdba3 (CORRECT) + DLEN: 50 + OPTS: 12 bytes TS(205851357,525857) + data: 50 bytes +Packet 3 + Packet Length: 68 + Collected: Wed May 23 16:46:25.767247 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 52 + ID: 43131 + CKSUM: 0xd485 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1355 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0xf13247cb + ACK: 0xf1850fee + WIN: 11584 + HLEN: 32 + CKSUM: 0x337a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(525892,205851357) +Packet 4 + Packet Length: 76 + Collected: Wed May 23 16:46:25.767662 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 60 + ID: 35419 + CKSUM: 0xf29d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1357 + DPRT: 32774 + FLG: ??----S- (0xc2) + SEQ: 0xf4fa8c1f + ACK: 0x00000000 + WIN: 5840 + HLEN: 40 + CKSUM: 0x6afa (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(525892,0) SACKREQ +Packet 5 + Packet Length: 74 + Collected: Wed May 23 16:46:25.767743 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 58 + ID: 43132 + CKSUM: 0xd47c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1355 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0xf13247cb + ACK: 0xf1850fee + WIN: 11584 + HLEN: 32 + CKSUM: 0x86c4 (CORRECT) + DLEN: 6 + OPTS: 12 bytes TS(525892,205851357) + data: 6 bytes +Packet 6 + Packet Length: 76 + Collected: Wed May 23 16:46:26.127111 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 60 + ID: 0 + CKSUM: 0x8ef9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 32774 + DPRT: 1357 + FLG: ? -A--S- (0x52) + SEQ: 0xf51977c4 + ACK: 0xf4fa8c20 + WIN: 5792 + HLEN: 40 + CKSUM: 0xe773 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(205851394,525892) SACKREQ +Packet 7 + Packet Length: 68 + Collected: Wed May 23 16:46:26.127231 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 52 + ID: 35420 + CKSUM: 0xf2a4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1357 + DPRT: 32774 + FLG: -A---- (0x10) + SEQ: 0xf4fa8c20 + ACK: 0xf51977c5 + WIN: 5840 + HLEN: 32 + CKSUM: 0x1625 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(525928,205851394) +Packet 8 + Packet Length: 68 + Collected: Wed May 23 16:46:26.167101 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 52 + ID: 62007 + CKSUM: 0x9cc9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 21 + DPRT: 1355 + FLG: -A---- (0x10) + SEQ: 0xf1850fee + ACK: 0xf13247d1 + WIN: 5792 + HLEN: 32 + CKSUM: 0x49eb (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(205851398,525892) +Packet 9 + Packet Length: 122 + Collected: Wed May 23 16:46:26.467069 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 106 + ID: 62008 + CKSUM: 0x9c90 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 21 + DPRT: 1355 + FLG: -AP--- (0x18) + SEQ: 0xf1850fee + ACK: 0xf13247d1 + WIN: 5792 + HLEN: 32 + CKSUM: 0x5976 (CORRECT) + DLEN: 54 + OPTS: 12 bytes TS(205851427,525892) + data: 54 bytes +Packet 10 + Packet Length: 151 + Collected: Wed May 23 16:46:26.487070 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 135 + ID: 31975 + CKSUM: 0x11c5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 32774 + DPRT: 1357 + FLG: -AP--- (0x18) + SEQ: 0xf51977c5 + ACK: 0xf4fa8c20 + WIN: 5792 + HLEN: 32 + CKSUM: 0xbe2e (CORRECT) + DLEN: 83 + OPTS: 12 bytes TS(205851427,525928) + data: 83 bytes +Packet 11 + Packet Length: 68 + Collected: Wed May 23 16:46:26.487178 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 52 + ID: 35421 + CKSUM: 0xf2a3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1357 + DPRT: 32774 + FLG: -A---- (0x10) + SEQ: 0xf4fa8c20 + ACK: 0xf5197818 + WIN: 5840 + HLEN: 32 + CKSUM: 0x158d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(525964,205851427) +Packet 12 + Packet Length: 68 + Collected: Wed May 23 16:46:26.507109 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 52 + ID: 43133 + CKSUM: 0xd483 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1355 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0xf13247d1 + ACK: 0xf1851024 + WIN: 11584 + HLEN: 32 + CKSUM: 0x32ae (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(525966,205851427) +Packet 13 + Packet Length: 443 + Collected: Wed May 23 16:46:26.537065 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 427 + ID: 31976 + CKSUM: 0x10a0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 32774 + DPRT: 1357 + FLG: -AP--F (0x19) + SEQ: 0xf5197818 + ACK: 0xf4fa8c20 + WIN: 5792 + HLEN: 32 + CKSUM: 0x1de3 (CORRECT) + DLEN: 375 + OPTS: 12 bytes TS(205851427,525928) + data: 375 bytes +Packet 14 + Packet Length: 68 + Collected: Wed May 23 16:46:26.537399 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 52 + ID: 35422 + CKSUM: 0xf2a2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1357 + DPRT: 32774 + FLG: -A---F (0x11) + SEQ: 0xf4fa8c20 + ACK: 0xf5197990 + WIN: 6432 + HLEN: 32 + CKSUM: 0x11bf (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(525969,205851427) +Packet 15 + Packet Length: 92 + Collected: Wed May 23 16:46:26.547074 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 76 + ID: 62009 + CKSUM: 0x9cad (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 21 + DPRT: 1355 + FLG: -AP--- (0x18) + SEQ: 0xf1851024 + ACK: 0xf13247d1 + WIN: 5792 + HLEN: 32 + CKSUM: 0x7a82 (CORRECT) + DLEN: 24 + OPTS: 12 bytes TS(205851427,525892) + data: 24 bytes +Packet 16 + Packet Length: 68 + Collected: Wed May 23 16:46:26.547195 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 212.38.233.159 + IP Dest: 209.10.41.242 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 69 + LEN: 52 + ID: 43134 + CKSUM: 0xd482 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1355 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0xf13247d1 + ACK: 0xf185103c + WIN: 11584 + HLEN: 32 + CKSUM: 0x3292 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(525970,205851427) +Packet 17 + Packet Length: 68 + Collected: Wed May 23 16:46:26.857034 2001 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 209.10.41.242 + IP Dest: 212.38.233.159 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 51 + LEN: 52 + ID: 31977 + CKSUM: 0x1218 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 32774 + DPRT: 1357 + FLG: -A---- (0x10) + SEQ: 0xf5197990 + ACK: 0xf4fa8c21 + WIN: 5792 + HLEN: 32 + CKSUM: 0x1417 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(205851467,525969) +17 packets seen, 17 TCP packets traced +trace file elapsed time: 0:00:01.430824 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 212.38.233.159:1355 - 209.10.41.242:21 (a2b) 5> 4< + 2: 212.38.233.159:1357 - 209.10.41.242:32774 (c2d) 4> 4< (complete) diff --git a/input/OUTPUTbench/linux_cooked_socket.dmp.gz.short b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.short new file mode 100644 index 0000000..c460726 --- /dev/null +++ b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.short @@ -0,0 +1,9 @@ +TCP packet 4: reserved bits are not all zero. + Further warnings disabled, use '-w' for more info +1 arg remaining, starting with 'linux_cooked_socket.dmp.gz' + +17 packets seen, 17 TCP packets traced +trace file elapsed time: 0:00:01.430824 +TCP connection info: + 1: 212.38.233.159:1355 - 209.10.41.242:21 (a2b) 5> 4< + 2: 212.38.233.159:1357 - 209.10.41.242:32774 (c2d) 4> 4< (complete) diff --git a/input/OUTPUTbench/linux_cooked_socket.dmp.gz.xplots.cksum b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.xplots.cksum new file mode 100644 index 0000000..c076d04 --- /dev/null +++ b/input/OUTPUTbench/linux_cooked_socket.dmp.gz.xplots.cksum @@ -0,0 +1,22 @@ +1674183812 1501 a2b_owin.xpl +1000910337 251 a2b_rtt.xpl +2828379512 401 a2b_ssize.xpl +3000528505 148 a2b_tput.xpl +2301564199 1377 a2b_tsg.xpl +1692379323 1769 a_b_tline.xpl +2351337549 1250 b2a_owin.xpl +1691929238 315 b2a_rtt.xpl +4138794308 558 b2a_ssize.xpl +895055203 180 b2a_tput.xpl +2414493891 1718 b2a_tsg.xpl +357481834 879 c2d_owin.xpl +1949605928 254 c2d_rtt.xpl +1329799042 129 c2d_ssize.xpl +388816308 120 c2d_tput.xpl +2493188809 1383 c2d_tsg.xpl +3454991072 1693 c_d_tline.xpl +2717160104 949 d2c_owin.xpl +1794100141 281 d2c_rtt.xpl +376375849 420 d2c_ssize.xpl +2032300942 185 d2c_tput.xpl +859034504 1358 d2c_tsg.xpl diff --git a/input/OUTPUTbench/long_rtt.dmp.gz.long b/input/OUTPUTbench/long_rtt.dmp.gz.long new file mode 100644 index 0000000..4365754 --- /dev/null +++ b/input/OUTPUTbench/long_rtt.dmp.gz.long @@ -0,0 +1,94 @@ +1 arg remaining, starting with 'long_rtt.dmp.gz' + +42 packets seen, 42 TCP packets traced +trace file elapsed time: 0:04:22.897942 +TCP connection info: +1 TCP connection traced: +*** 1 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 132.235.67.20:4701 + host b: 132.235.67.34:9080 + complete conn: yes + first packet: Mon Nov 2 13:22:21.442755 1998 + last packet: Mon Nov 2 13:26:44.340698 1998 + elapsed time: 0:04:22.897942 + total packets: 42 + filename: long_rtt.dmp.gz + a->b: b->a: + total packets: 25 total packets: 17 + ack pkts sent: 24 ack pkts sent: 17 + pure acks sent: 2 pure acks sent: 15 + sack pkts sent: 0 sack pkts sent: 7 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 2 + unique bytes sent: 24201 unique bytes sent: 0 + actual data pkts: 22 actual data pkts: 0 + actual data bytes: 31441 actual data bytes: 0 + rexmt data pkts: 5 rexmt data pkts: 0 + rexmt data bytes: 7240 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 8 adv wind scale: 3 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 7 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 1033 bytes min segm size: 0 bytes + avg segm size: 1429 bytes avg segm size: 0 bytes + max win adv: 1516544 bytes max win adv: 246720 bytes + min win adv: 1516544 bytes min win adv: 222520 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 1516544 bytes avg win adv: 234373 bytes + max owin: 11170 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 4856 bytes avg owin: 1 bytes + wavg owin: 11023 bytes wavg owin: 0 bytes + initial window: 1448 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: 24201 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 30253 bytes truncated data: 0 bytes + truncated packets: 22 pkts truncated packets: 0 pkts + data xmit time: 261.186 secs data xmit time: 0.000 secs + idletime max: 64506.0 ms idletime max: 64679.2 ms + throughput: 92 Bps throughput: 0 Bps + + RTT samples: 7 RTT samples: 2 + RTT min: 880.3 ms RTT min: 0.1 ms + RTT max: 1087.2 ms RTT max: 0.1 ms + RTT avg: 970.7 ms RTT avg: 0.1 ms + RTT stdev: 69.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 880.3 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 6 RTT full_sz smpls: 1 + RTT full_sz min: 899.2 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 1087.2 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 985.7 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 62.9 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 2 post-loss acks: 0 + 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. + ambiguous acks: 2 ambiguous acks: 0 + RTT min (last): 828.5 ms RTT min (last): 0.0 ms + RTT max (last): 924.7 ms RTT max (last): 0.0 ms + RTT avg (last): 876.6 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 7 segs cum acked: 0 + duplicate acks: 5 duplicate acks: 0 + triple dupacks: 1 triple dupacks: 0 + max # retrans: 2 max # retrans: 0 + min retr time: 2003.7 ms min retr time: 0.0 ms + max retr time: 257352.1 ms max retr time: 0.0 ms + avg retr time: 128849.7 ms avg retr time: 0.0 ms + sdv retr time: 101321.8 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/long_rtt.dmp.gz.packets b/input/OUTPUTbench/long_rtt.dmp.gz.packets new file mode 100644 index 0000000..fa6def0 --- /dev/null +++ b/input/OUTPUTbench/long_rtt.dmp.gz.packets @@ -0,0 +1,1124 @@ +1 arg remaining, starting with 'long_rtt.dmp.gz' + +Packet 1 + Packet Length: 78 + Collected: Mon Nov 2 13:22:21.442755 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 41445 + CKSUM: 0x48c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: ----S- (0x02) + SEQ: 0x67f61cca + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0x3e83 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(8) TS(1748153,0) SACKREQ +Packet 2 + Packet Length: 74 + Collected: Mon Nov 2 13:22:22.323098 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 60 + ID: 50743 + CKSUM: 0x2678 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A--S- (0x12) + SEQ: 0xa31ee2ad + ACK: 0x67f61ccb + WIN: 16384 + HLEN: 40 + CKSUM: 0xb67a (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(3) SACKREQ +Packet 3 + Packet Length: 66 + Collected: Mon Nov 2 13:22:22.323229 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 41581 + CKSUM: 0x484a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f61ccb + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x6264 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1748155,1933265) +Packet 4 + Packet Length: 120 + Collected: Mon Nov 2 13:22:22.332432 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 41584 + CKSUM: 0x429f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f61ccb + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x5cbc (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748155,1933265) + data: 1448 bytes +Packet 5 + Packet Length: 66 + Collected: Mon Nov 2 13:22:23.124401 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50857 + CKSUM: 0x260e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f61ccb + WIN: 30840 + HLEN: 32 + CKSUM: 0xade3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933267,0) +Packet 6 + Packet Length: 66 + Collected: Mon Nov 2 13:22:23.318349 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 50874 + CKSUM: 0x25fd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f62273 + WIN: 30659 + HLEN: 32 + CKSUM: 0xfc1a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933267,1748155) +Packet 7 + Packet Length: 120 + Collected: Mon Nov 2 13:22:23.319903 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 41787 + CKSUM: 0x41d4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f62273 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x5712 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748157,1933265) + data: 1448 bytes +Packet 8 + Packet Length: 120 + Collected: Mon Nov 2 13:22:23.321238 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 41788 + CKSUM: 0x41d3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f6281b + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x516a (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748157,1933265) + data: 1448 bytes +Packet 9 + Packet Length: 66 + Collected: Mon Nov 2 13:22:24.220416 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 51023 + CKSUM: 0x2568 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f62dc3 + WIN: 30297 + HLEN: 32 + CKSUM: 0xf230 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933269,1748157) +Packet 10 + Packet Length: 120 + Collected: Mon Nov 2 13:22:24.222656 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 41976 + CKSUM: 0x4117 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f62dc3 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x4bc0 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748159,1933265) + data: 1448 bytes +Packet 11 + Packet Length: 120 + Collected: Mon Nov 2 13:22:24.223750 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 41977 + CKSUM: 0x4116 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f6336b + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x4618 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748159,1933265) + data: 1448 bytes +Packet 12 + Packet Length: 120 + Collected: Mon Nov 2 13:22:24.225005 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 41978 + CKSUM: 0x4115 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f63913 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x9614 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748159,1933265) + data: 1448 bytes +Packet 13 + Packet Length: 66 + Collected: Mon Nov 2 13:22:25.170200 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 51175 + CKSUM: 0x24d0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f63913 + WIN: 29935 + HLEN: 32 + CKSUM: 0xe846 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933271,1748159) +Packet 14 + Packet Length: 120 + Collected: Mon Nov 2 13:22:25.172462 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42164 + CKSUM: 0x405b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f63ebb + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x6ed6 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748161,1933265) + data: 1448 bytes +Packet 15 + Packet Length: 120 + Collected: Mon Nov 2 13:22:25.173540 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42165 + CKSUM: 0x405a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f64463 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x351e (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748161,1933265) + data: 1448 bytes +Packet 16 + Packet Length: 120 + Collected: Mon Nov 2 13:22:25.175050 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42166 + CKSUM: 0x4059 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f64a0b + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x2f76 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748161,1933265) + data: 1448 bytes +Packet 17 + Packet Length: 66 + Collected: Mon Nov 2 13:22:25.231720 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 51188 + CKSUM: 0x24c3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f63ebb + WIN: 29754 + HLEN: 32 + CKSUM: 0xe353 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933271,1748159) +Packet 18 + Packet Length: 120 + Collected: Mon Nov 2 13:22:25.233917 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42177 + CKSUM: 0x404e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f64fb3 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0xacf3 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748161,1933265) + data: 1448 bytes +Packet 19 + Packet Length: 120 + Collected: Mon Nov 2 13:22:25.235091 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42178 + CKSUM: 0x404d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f6555b + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x93d5 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748161,1933265) + data: 1448 bytes +Packet 20 + Packet Length: 66 + Collected: Mon Nov 2 13:22:26.162642 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 51319 + CKSUM: 0x2440 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f64a0b + WIN: 29392 + HLEN: 32 + CKSUM: 0xd969 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933273,1748161) +Packet 21 + Packet Length: 120 + Collected: Mon Nov 2 13:22:26.163926 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42375 + CKSUM: 0x3f88 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f65b03 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x9ac0 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748163,1933265) + data: 1448 bytes +Packet 22 + Packet Length: 120 + Collected: Mon Nov 2 13:22:26.165158 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42376 + CKSUM: 0x3f87 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f660ab + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x18d4 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748163,1933265) + data: 1448 bytes +Packet 23 + Packet Length: 120 + Collected: Mon Nov 2 13:22:26.166385 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42377 + CKSUM: 0x3f86 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f66653 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x132c (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748163,1933265) + data: 1448 bytes +Packet 24 + Packet Length: 66 + Collected: Mon Nov 2 13:22:26.262279 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 51327 + CKSUM: 0x2438 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f64fb3 + WIN: 29211 + HLEN: 32 + CKSUM: 0xd476 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933273,1748161) +Packet 25 + Packet Length: 120 + Collected: Mon Nov 2 13:22:26.263721 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42390 + CKSUM: 0x3f79 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f66bfb + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x0d84 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748163,1933265) + data: 1448 bytes +Packet 26 + Packet Length: 120 + Collected: Mon Nov 2 13:22:26.264938 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42391 + CKSUM: 0x3f78 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f671a3 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x07dc (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748163,1933265) + data: 1448 bytes +Packet 27 + Packet Length: 78 + Collected: Mon Nov 2 13:22:27.082897 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 51479 + CKSUM: 0x2394 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f64fb3 + WIN: 29211 + HLEN: 44 + CKSUM: 0x12c2 (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(1933275,1748161) SACKS(1)[0x67f65b03-0x67f660ab] +Packet 28 + Packet Length: 120 + Collected: Mon Nov 2 13:22:27.084157 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1085 + ID: 42577 + CKSUM: 0x405d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -AP--F (0x19) + SEQ: 0x67f6774b + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x0cd0 (too short to verify) + DLEN: 1033 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748165,1933265) + data: 1033 bytes +Packet 29 + Packet Length: 86 + Collected: Mon Nov 2 13:22:27.234849 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 72 + ID: 51485 + CKSUM: 0x2386 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f64fb3 + WIN: 29211 + HLEN: 52 + CKSUM: 0x4526 (CORRECT) + DLEN: 0 + OPTS: 32 bytes TS(1933275,1748161) SACKS(2)[0x67f66bfb-0x67f671a3][0x67f65b03-0x67f660ab] +Packet 30 + Packet Length: 86 + Collected: Mon Nov 2 13:22:27.235407 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 72 + ID: 51486 + CKSUM: 0x2385 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f64fb3 + WIN: 29211 + HLEN: 52 + CKSUM: 0x3f7e (CORRECT) + DLEN: 0 + OPTS: 32 bytes TS(1933275,1748161) SACKS(2)[0x67f66bfb-0x67f6774b][0x67f65b03-0x67f660ab] +Packet 31 + Packet Length: 120 + Collected: Mon Nov 2 13:22:27.237607 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 42590 + CKSUM: 0x3eb1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f64fb3 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0xacef (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748165,1933265) + data: 1448 bytes +Packet 32 + Packet Length: 86 + Collected: Mon Nov 2 13:22:28.226458 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 72 + ID: 51620 + CKSUM: 0x22ff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f64fb3 + WIN: 29211 + HLEN: 52 + CKSUM: 0x3b73 (CORRECT) + DLEN: 0 + OPTS: 32 bytes TS(1933277,1748161) SACKS(2)[0x67f66bfb-0x67f67b54][0x67f65b03-0x67f660ab] +Packet 33 + Packet Length: 120 + Collected: Mon Nov 2 13:23:30.013362 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 55277 + CKSUM: 0x0d22 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f64fb3 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0xac72 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748290,1933265) + data: 1448 bytes +Packet 34 + Packet Length: 86 + Collected: Mon Nov 2 13:23:30.841899 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 72 + ID: 61511 + CKSUM: 0xfc5b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f6555b + WIN: 29030 + HLEN: 52 + CKSUM: 0x35ff (CORRECT) + DLEN: 0 + OPTS: 32 bytes TS(1933402,1748165) SACKS(2)[0x67f66bfb-0x67f67b54][0x67f65b03-0x67f660ab] +Packet 35 + Packet Length: 120 + Collected: Mon Nov 2 13:24:34.517921 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 3716 + CKSUM: 0xd68b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f6555b + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x92d3 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748419,1933265) + data: 1448 bytes +Packet 36 + Packet Length: 78 + Collected: Mon Nov 2 13:24:35.257962 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 6481 + CKSUM: 0xd35a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f660ab + WIN: 28668 + HLEN: 44 + CKSUM: 0xd645 (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(1933531,1748419) SACKS(1)[0x67f66bfb-0x67f67b54] +Packet 37 + Packet Length: 120 + Collected: Mon Nov 2 13:25:39.012427 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 17447 + CKSUM: 0xa0e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f660ab + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x1753 (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748548,1933265) + data: 1448 bytes +Packet 38 + Packet Length: 78 + Collected: Mon Nov 2 13:25:39.937147 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 64 + ID: 16990 + CKSUM: 0xaa4d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f66653 + WIN: 28487 + HLEN: 44 + CKSUM: 0xd050 (CORRECT) + DLEN: 0 + OPTS: 24 bytes TS(1933660,1748548) SACKS(1)[0x67f66bfb-0x67f67b54] +Packet 39 + Packet Length: 120 + Collected: Mon Nov 2 13:26:43.518441 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 31521 + CKSUM: 0x69ee (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f66653 + ACK: 0xa31ee2ae + WIN: 5924 + HLEN: 32 + CKSUM: 0x112a (too short to verify) + DLEN: 1448 (only 54 bytes in dump file) + OPTS: 12 bytes TS(1748677,1933265) + data: 1448 bytes +Packet 40 + Packet Length: 66 + Collected: Mon Nov 2 13:26:44.328449 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27541 + CKSUM: 0x8122 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---- (0x10) + SEQ: 0xa31ee2ae + ACK: 0x67f67b55 + WIN: 27815 + HLEN: 32 + CKSUM: 0xaa40 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933789,1748677) +Packet 41 + Packet Length: 66 + Collected: Mon Nov 2 13:26:44.340639 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.34 + IP Dest: 132.235.67.20 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 27543 + CKSUM: 0x8120 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9080 + DPRT: 4701 + FLG: -A---F (0x11) + SEQ: 0xa31ee2ae + ACK: 0x67f67b55 + WIN: 27815 + HLEN: 32 + CKSUM: 0xaa3f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1933789,1748677) +Packet 42 + Packet Length: 66 + Collected: Mon Nov 2 13:26:44.340698 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.67.20 + IP Dest: 132.235.67.34 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 31708 + CKSUM: 0x6edb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 4701 + DPRT: 9080 + FLG: -A---- (0x10) + SEQ: 0x67f67b55 + ACK: 0xa31ee2af + WIN: 5924 + HLEN: 32 + CKSUM: 0xffc0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1748679,1933789) +42 packets seen, 42 TCP packets traced +trace file elapsed time: 0:04:22.897942 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 2 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.67.20:4701 - 132.235.67.34:9080 (a2b) 25> 17< (complete) diff --git a/input/OUTPUTbench/long_rtt.dmp.gz.short b/input/OUTPUTbench/long_rtt.dmp.gz.short new file mode 100644 index 0000000..6c04a10 --- /dev/null +++ b/input/OUTPUTbench/long_rtt.dmp.gz.short @@ -0,0 +1,8 @@ +1 arg remaining, starting with 'long_rtt.dmp.gz' + +42 packets seen, 42 TCP packets traced +trace file elapsed time: 0:04:22.897942 +TCP connection info: +*** 1 packets were too short to process at some point + (use -w option to show details) + 1: 132.235.67.20:4701 - 132.235.67.34:9080 (a2b) 25> 17< (complete) diff --git a/input/OUTPUTbench/long_rtt.dmp.gz.xplots.cksum b/input/OUTPUTbench/long_rtt.dmp.gz.xplots.cksum new file mode 100644 index 0000000..8e376b2 --- /dev/null +++ b/input/OUTPUTbench/long_rtt.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +1363753804 6208 a2b_owin.xpl +2633723140 637 a2b_rtt.xpl +2232860368 3612 a2b_ssize.xpl +2692827200 1170 a2b_tput.xpl +3063623832 9411 a2b_tsg.xpl +2321191496 7827 a_b_tline.xpl +483202850 4853 b2a_owin.xpl +1280100858 209 b2a_rtt.xpl +3927655761 127 b2a_ssize.xpl +1319724957 118 b2a_tput.xpl +3356721261 6386 b2a_tsg.xpl diff --git a/input/OUTPUTbench/nlanr.tsh.gz.long b/input/OUTPUTbench/nlanr.tsh.gz.long new file mode 100644 index 0000000..1147c54 --- /dev/null +++ b/input/OUTPUTbench/nlanr.tsh.gz.long @@ -0,0 +1,16 @@ +Unknown input file format +Supported Input File Formats: + 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 + netscout NetScout Manager format + erf Endace Extensible Record Format +Try the tethereal program from the ethereal project to see if +it can understand this capture format. If so, you may use +tethereal to convert it to a tcpdump format file as in : + tethereal -r inputfile -w outputfile +and feed the outputfile to tcptrace +1 arg remaining, starting with 'nlanr.tsh.gz' + diff --git a/input/OUTPUTbench/nlanr.tsh.gz.packets b/input/OUTPUTbench/nlanr.tsh.gz.packets new file mode 100644 index 0000000..ca78747 --- /dev/null +++ b/input/OUTPUTbench/nlanr.tsh.gz.packets @@ -0,0 +1,2 @@ +1 arg remaining, starting with 'nlanr.tsh.gz' + diff --git a/input/OUTPUTbench/nlanr.tsh.gz.short b/input/OUTPUTbench/nlanr.tsh.gz.short new file mode 100644 index 0000000..1147c54 --- /dev/null +++ b/input/OUTPUTbench/nlanr.tsh.gz.short @@ -0,0 +1,16 @@ +Unknown input file format +Supported Input File Formats: + 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 + netscout NetScout Manager format + erf Endace Extensible Record Format +Try the tethereal program from the ethereal project to see if +it can understand this capture format. If so, you may use +tethereal to convert it to a tcpdump format file as in : + tethereal -r inputfile -w outputfile +and feed the outputfile to tcptrace +1 arg remaining, starting with 'nlanr.tsh.gz' + diff --git a/input/OUTPUTbench/nlanr.tsh.gz.xplots.cksum b/input/OUTPUTbench/nlanr.tsh.gz.xplots.cksum new file mode 100644 index 0000000..e69de29 diff --git a/input/OUTPUTbench/pcap_v2.2.dmp.gz.long b/input/OUTPUTbench/pcap_v2.2.dmp.gz.long new file mode 100644 index 0000000..7dec954 --- /dev/null +++ b/input/OUTPUTbench/pcap_v2.2.dmp.gz.long @@ -0,0 +1,172 @@ +1 arg remaining, starting with 'pcap_v2.2.dmp.gz' + +40 packets seen, 40 TCP packets traced +trace file elapsed time: 0:00:01.448223 +TCP connection info: +2 TCP connections traced: +*** 2 packets were too short to process at some point + (use -w option to show details) +TCP connection 1: + host a: 128.224.2.23:1036 + host b: 128.224.1.148:9 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Feb 11 19:25:57.818762 1997 + last packet: Tue Feb 11 19:25:59.266986 1997 + elapsed time: 0:00:01.448223 + total packets: 37 + filename: pcap_v2.2.dmp.gz + a->b: b->a: + total packets: 19 total packets: 18 + ack pkts sent: 18 ack pkts sent: 18 + pure acks sent: 1 pure acks sent: 16 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 8650 unique bytes sent: 0 + actual data pkts: 17 actual data pkts: 0 + actual data bytes: 8650 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 1 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 2/0 + req 1323 ws/ts: Y/N req 1323 ws/ts: N/N + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 536 bytes + max segm size: 536 bytes max segm size: 0 bytes + min segm size: 74 bytes min segm size: 0 bytes + avg segm size: 508 bytes avg segm size: 0 bytes + max win adv: 16616 bytes max win adv: 16384 bytes + min win adv: 16384 bytes min win adv: 16384 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16603 bytes avg win adv: 16384 bytes + max owin: 16081 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 6560 bytes avg owin: 1 bytes + wavg owin: 6081 bytes wavg owin: 0 bytes + initial window: 610 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 8412 bytes truncated data: 0 bytes + truncated packets: 17 pkts truncated packets: 0 pkts + data xmit time: 1.382 secs data xmit time: 0.000 secs + idletime max: 87.1 ms idletime max: 687.4 ms + hardware dups: 0 segs hardware dups: 9 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 5973 Bps throughput: 0 Bps + + RTT samples: 9 RTT samples: 0 + RTT min: 1.2 ms RTT min: 0.0 ms + RTT max: 2.0 ms RTT max: 0.0 ms + RTT avg: 1.4 ms RTT avg: 0.0 ms + RTT stdev: 0.2 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.6 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 8 RTT full_sz smpls: 0 + RTT full_sz min: 1.2 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 2.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 1.4 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.2 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + 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. + ambiguous acks: 0 ambiguous acks: 1 + RTT min (last): 0.0 ms RTT min (last): 35.4 ms + RTT max (last): 0.0 ms RTT max (last): 35.4 ms + RTT avg (last): 0.0 ms RTT avg (last): 35.4 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 1 segs cum acked: 0 + duplicate acks: 8 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 2.6 ms + max retr time: 0.0 ms max retr time: 2.6 ms + avg retr time: 0.0 ms avg retr time: 2.6 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 128.224.2.23:1037 + host d: 128.224.1.148:19 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Tue Feb 11 19:25:57.831914 1997 + last packet: Tue Feb 11 19:25:57.835566 1997 + elapsed time: 0:00:00.003652 + total packets: 3 + filename: pcap_v2.2.dmp.gz + c->d: d->c: + total packets: 1 total packets: 2 + ack pkts sent: 0 ack pkts sent: 2 + pure acks sent: 0 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 0 + actual data pkts: 0 actual data pkts: 0 + actual data bytes: 0 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 1 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 2/0 + req 1323 ws/ts: Y/N req 1323 ws/ts: N/N + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 536 bytes + max segm size: 0 bytes max segm size: 0 bytes + min segm size: 0 bytes min segm size: 0 bytes + avg segm size: 0 bytes avg segm size: 0 bytes + max win adv: 16384 bytes max win adv: 1 bytes + min win adv: 16384 bytes min win adv: 1 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 16384 bytes avg win adv: 1 bytes + max owin: 0 bytes max owin: 0 bytes + min non-zero owin: 0 bytes min non-zero owin: 0 bytes + avg owin: 0 bytes avg owin: 0 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 1435.1 ms idletime max: 1431.4 ms + hardware dups: 0 segs hardware dups: 1 segs + ** WARNING: presence of hardware duplicates makes these figures suspect! + throughput: 0 Bps throughput: 0 Bps + + RTT samples: 1 RTT samples: 0 + RTT min: 1.1 ms RTT min: 0.0 ms + RTT max: 1.1 ms RTT max: 0.0 ms + RTT avg: 1.1 ms RTT avg: 0.0 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.1 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 0 + RTT full_sz min: 1.1 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 1.1 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 1.1 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 2.6 ms + max retr time: 0.0 ms max retr time: 2.6 ms + avg retr time: 0.0 ms avg retr time: 2.6 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/pcap_v2.2.dmp.gz.packets b/input/OUTPUTbench/pcap_v2.2.dmp.gz.packets new file mode 100644 index 0000000..88bcadc --- /dev/null +++ b/input/OUTPUTbench/pcap_v2.2.dmp.gz.packets @@ -0,0 +1,1056 @@ +1 arg remaining, starting with 'pcap_v2.2.dmp.gz' + +Packet 1 + Packet Length: 82 (saved length 68) + Collected: Tue Feb 11 19:25:57.818762 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 68 + ID: 17307 + CKSUM: 0xf3ad (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: ----S- (0x02) + SEQ: 0x4fa65001 + ACK: 0x00000000 + WIN: 16384 + HLEN: 48 (only 34 bytes in dump file) + CKSUM: 0xc481 (too short to verify) + DLEN: 0 + OPTS: 28 bytes (14 bytes in file) MSS(1460) WS(0) +Packet 2 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.820318 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 6607 + CKSUM: 0x9c91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A--S- (0x12) + SEQ: 0xb5648846 + ACK: 0x4fa65002 + WIN: 16384 + HLEN: 24 + CKSUM: 0x74de (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 3 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.822881 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 44 + ID: 6607 + CKSUM: 0x9d91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A--S- (0x12) + SEQ: 0xb5648846 + ACK: 0x4fa65002 + WIN: 16384 + HLEN: 24 + CKSUM: 0x74de (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 4 + Packet Length: 82 (saved length 68) + Collected: Tue Feb 11 19:25:57.831914 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 68 + ID: 17309 + CKSUM: 0xf3ab (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1037 + DPRT: 19 + FLG: ----S- (0x02) + SEQ: 0x4fa74a01 + ACK: 0x00000000 + WIN: 16384 + HLEN: 48 (only 34 bytes in dump file) + CKSUM: 0xca74 (too short to verify) + DLEN: 0 + OPTS: 28 bytes (14 bytes in file) MSS(1460) WS(0) +Packet 5 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.833011 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 6608 + CKSUM: 0x9c90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 19 + DPRT: 1037 + FLG: -A--S- (0x12) + SEQ: 0xb56493fe + ACK: 0x4fa74a02 + WIN: 1 + HLEN: 24 + CKSUM: 0xaf19 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 6 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.835566 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 44 + ID: 6608 + CKSUM: 0x9d90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 19 + DPRT: 1037 + FLG: -A--S- (0x12) + SEQ: 0xb56493fe + ACK: 0x4fa74a02 + WIN: 1 + HLEN: 24 + CKSUM: 0xaf19 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(536) +Packet 7 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.858270 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 40 + ID: 17310 + CKSUM: 0xf3c6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65002 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x8817 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 128 (saved length 68) + Collected: Tue Feb 11 19:25:57.884522 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 114 + ID: 17312 + CKSUM: 0xf37a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x4fa65002 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xe0fd (too short to verify) + DLEN: 74 (only 14 bytes in dump file) + data: 74 bytes +Packet 9 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:57.971608 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17313 + CKSUM: 0xf1ab (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6504c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x4788 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 10 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.972862 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6609 + CKSUM: 0x9c93 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65264 + WIN: 16384 + HLEN: 20 + CKSUM: 0x869d (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 60 + Collected: Tue Feb 11 19:25:57.975427 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6609 + CKSUM: 0x9d93 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65264 + WIN: 16384 + HLEN: 20 + CKSUM: 0x869d (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.057734 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17314 + CKSUM: 0xf1aa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65264 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x3964 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 13 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.059060 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6610 + CKSUM: 0x9c92 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6547c + WIN: 16384 + HLEN: 20 + CKSUM: 0x8485 (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.061661 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6610 + CKSUM: 0x9d92 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6547c + WIN: 16384 + HLEN: 20 + CKSUM: 0x8485 (CORRECT) + DLEN: 0 +Packet 15 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.143811 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17315 + CKSUM: 0xf1a9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6547c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x2b40 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 16 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.145820 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6611 + CKSUM: 0x9c91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65694 + WIN: 16384 + HLEN: 20 + CKSUM: 0x826d (CORRECT) + DLEN: 0 +Packet 17 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.148399 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6611 + CKSUM: 0x9d91 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65694 + WIN: 16384 + HLEN: 20 + CKSUM: 0x826d (CORRECT) + DLEN: 0 +Packet 18 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.230253 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17316 + CKSUM: 0xf1a8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65694 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x8b00 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 19 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.231697 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6612 + CKSUM: 0x9c90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa658ac + WIN: 16384 + HLEN: 20 + CKSUM: 0x8055 (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.234260 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6612 + CKSUM: 0x9d90 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa658ac + WIN: 16384 + HLEN: 20 + CKSUM: 0x8055 (CORRECT) + DLEN: 0 +Packet 21 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.316637 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17317 + CKSUM: 0xf1a7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa658ac + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x7e84 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 22 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.317993 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6613 + CKSUM: 0x9c8f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ac4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7e3d (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.320594 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6613 + CKSUM: 0x9d8f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ac4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7e3d (CORRECT) + DLEN: 0 +Packet 24 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.402943 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17318 + CKSUM: 0xf1a6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65ac4 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x1963 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 25 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.404383 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6614 + CKSUM: 0x9c8e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65cdc + WIN: 16384 + HLEN: 20 + CKSUM: 0x7c25 (CORRECT) + DLEN: 0 +Packet 26 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.406932 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6614 + CKSUM: 0x9d8e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65cdc + WIN: 16384 + HLEN: 20 + CKSUM: 0x7c25 (CORRECT) + DLEN: 0 +Packet 27 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.489366 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17319 + CKSUM: 0xf1a5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65cdc + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xbbef (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 28 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.490698 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6615 + CKSUM: 0x9c8d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ef4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7a0d (CORRECT) + DLEN: 0 +Packet 29 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.493308 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6615 + CKSUM: 0x9d8d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa65ef4 + WIN: 16384 + HLEN: 20 + CKSUM: 0x7a0d (CORRECT) + DLEN: 0 +Packet 30 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.575800 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17320 + CKSUM: 0xf1a4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa65ef4 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xd797 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 31 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.577042 1997 + ETH Srce: 08:00:20:7a:f7:8d + ETH Dest: 00:00:0c:8d:43:8c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 6616 + CKSUM: 0x9c8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6610c + WIN: 16384 + HLEN: 20 + CKSUM: 0x77f5 (CORRECT) + DLEN: 0 +Packet 32 + Packet Length: 60 + Collected: Tue Feb 11 19:25:58.579624 1997 + ETH Srce: 00:00:0c:8d:43:8c + ETH Dest: 00:00:c0:57:c8:53 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.1.148 + IP Dest: 128.224.2.23 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 254 + LEN: 40 + ID: 6616 + CKSUM: 0x9d8c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 9 + DPRT: 1036 + FLG: -A---- (0x10) + SEQ: 0xb5648847 + ACK: 0x4fa6610c + WIN: 16384 + HLEN: 20 + CKSUM: 0x77f5 (CORRECT) + DLEN: 0 +Packet 33 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.661993 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17344 + CKSUM: 0xf18c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa68f1c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xeab2 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 34 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.748523 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17345 + CKSUM: 0xf18b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69134 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x2f3f (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 35 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.834693 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17347 + CKSUM: 0xf189 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6934c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x6765 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 36 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:58.921277 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17350 + CKSUM: 0xf186 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69564 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0xbd43 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 37 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.007758 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17352 + CKSUM: 0xf184 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa6977c + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x602e (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 38 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.094309 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17359 + CKSUM: 0xf17d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69994 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x1dd6 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 39 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.180587 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17369 + CKSUM: 0xf173 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -AP--- (0x18) + SEQ: 0x4fa69bac + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x94d5 (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +Packet 40 + Packet Length: 590 (saved length 68) + Collected: Tue Feb 11 19:25:59.266986 1997 + ETH Srce: 00:00:c0:57:c8:53 + ETH Dest: 08:00:20:7a:f7:8d + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.224.2.23 + IP Dest: 128.224.1.148 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 576 + ID: 17371 + CKSUM: 0xf171 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1036 + DPRT: 9 + FLG: -A---- (0x10) + SEQ: 0x4fa69dc4 + ACK: 0xb5648847 + WIN: 16616 + HLEN: 20 + CKSUM: 0x911d (too short to verify) + DLEN: 536 (only 14 bytes in dump file) + data: 536 bytes +40 packets seen, 40 TCP packets traced +trace file elapsed time: 0:00:01.448223 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: +*** 4 packets were too short to process at some point + (use -w option to show details) + 1: 128.224.2.23:1036 - 128.224.1.148:9 (a2b) 19> 18< + ** Warning, b2a: detected 9 hardware duplicate(s) (same seq # and IP ID) + 2: 128.224.2.23:1037 - 128.224.1.148:19 (c2d) 1> 2< + ** Warning, d2c: detected 1 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/pcap_v2.2.dmp.gz.short b/input/OUTPUTbench/pcap_v2.2.dmp.gz.short new file mode 100644 index 0000000..36e7b48 --- /dev/null +++ b/input/OUTPUTbench/pcap_v2.2.dmp.gz.short @@ -0,0 +1,11 @@ +1 arg remaining, starting with 'pcap_v2.2.dmp.gz' + +40 packets seen, 40 TCP packets traced +trace file elapsed time: 0:00:01.448223 +TCP connection info: +*** 2 packets were too short to process at some point + (use -w option to show details) + 1: 128.224.2.23:1036 - 128.224.1.148:9 (a2b) 19> 18< + ** Warning, b2a: detected 9 hardware duplicate(s) (same seq # and IP ID) + 2: 128.224.2.23:1037 - 128.224.1.148:19 (c2d) 1> 2< + ** Warning, d2c: detected 1 hardware duplicate(s) (same seq # and IP ID) diff --git a/input/OUTPUTbench/pcap_v2.2.dmp.gz.xplots.cksum b/input/OUTPUTbench/pcap_v2.2.dmp.gz.xplots.cksum new file mode 100644 index 0000000..d10d028 --- /dev/null +++ b/input/OUTPUTbench/pcap_v2.2.dmp.gz.xplots.cksum @@ -0,0 +1,20 @@ +3017168630 5769 a2b_owin.xpl +3919851649 728 a2b_rtt.xpl +1770673556 2709 a2b_ssize.xpl +2037755829 736 a2b_tput.xpl +3830229492 6680 a2b_tsg.xpl +4150372792 6764 a_b_tline.xpl +4003407307 4755 b2a_owin.xpl +1547498569 123 b2a_ssize.xpl +2946010257 114 b2a_tput.xpl +2465268075 5229 b2a_tsg.xpl +387554380 126 c2d_owin.xpl +2322257161 136 c2d_rtt.xpl +3547524405 124 c2d_ssize.xpl +2401853822 115 c2d_tput.xpl +2832848055 506 c2d_tsg.xpl +3211285756 746 c_d_tline.xpl +3292905497 126 d2c_owin.xpl +613628918 124 d2c_ssize.xpl +2317801752 115 d2c_tput.xpl +1285756174 563 d2c_tsg.xpl diff --git a/input/OUTPUTbench/ppp_encap.dmp.gz.long b/input/OUTPUTbench/ppp_encap.dmp.gz.long new file mode 100644 index 0000000..1c27613 --- /dev/null +++ b/input/OUTPUTbench/ppp_encap.dmp.gz.long @@ -0,0 +1,81 @@ +1 arg remaining, starting with 'ppp_encap.dmp.gz' + +27 packets seen, 25 TCP packets traced +trace file elapsed time: 0:00:06.883153 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 198.166.90.39:54942 + host b: 159.18.1.3:22 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Wed Mar 5 11:30:49.403859 2003 + last packet: Wed Mar 5 11:30:55.900490 2003 + elapsed time: 0:00:06.496630 + total packets: 25 + filename: ppp_encap.dmp.gz + a->b: b->a: + total packets: 11 total packets: 14 + ack pkts sent: 10 ack pkts sent: 14 + pure acks sent: 3 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 414 unique bytes sent: 678 + actual data pkts: 7 actual data pkts: 11 + actual data bytes: 414 actual data bytes: 678 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 7 pushed data pkts: 11 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 156 bytes max segm size: 276 bytes + min segm size: 12 bytes min segm size: 12 bytes + avg segm size: 59 bytes avg segm size: 61 bytes + max win adv: 33304 bytes max win adv: 32120 bytes + min win adv: 33304 bytes min win adv: 32120 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 33304 bytes avg win adv: 32120 bytes + max owin: 157 bytes max owin: 321 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 42 bytes avg owin: 91 bytes + wavg owin: 31 bytes wavg owin: 31 bytes + initial window: 22 bytes initial window: 22 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 4.886 secs data xmit time: 5.391 secs + idletime max: 2066.7 ms idletime max: 2550.4 ms + throughput: 64 Bps throughput: 104 Bps + + RTT samples: 8 RTT samples: 9 + RTT min: 327.7 ms RTT min: 0.1 ms + RTT max: 560.8 ms RTT max: 117.2 ms + RTT avg: 435.3 ms RTT avg: 24.9 ms + RTT stdev: 76.9 ms RTT stdev: 47.5 ms + + RTT from 3WHS: 500.9 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 470.1 ms RTT full_sz min: 3.3 ms + RTT full_sz max: 470.1 ms RTT full_sz max: 3.3 ms + RTT full_sz avg: 470.1 ms RTT full_sz avg: 3.3 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 3 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/ppp_encap.dmp.gz.packets b/input/OUTPUTbench/ppp_encap.dmp.gz.packets new file mode 100644 index 0000000..2c98bd9 --- /dev/null +++ b/input/OUTPUTbench/ppp_encap.dmp.gz.packets @@ -0,0 +1,741 @@ +1 arg remaining, starting with 'ppp_encap.dmp.gz' + +Packet 1 + Packet Length: 70 + Collected: Wed Mar 5 11:30:49.017337 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 198.166.84.1 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 64 + LEN: 66 + ID: 1106 + CKSUM: 0x3ae4 (CORRECT) + OFFSET: 0x0000 + UDP SPRT: 64569 + DPRT: 53 + UCKSUM: 0x4e55 (CORRECT) + DLEN: 46 (only 38 bytes in dump file) +Packet 2 + Packet Length: 188 + Collected: Wed Mar 5 11:30:49.402749 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.84.1 + IP Dest: 198.166.90.39 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 126 + LEN: 184 + ID: 6918 + CKSUM: 0xe5b9 (CORRECT) + OFFSET: 0x0000 + UDP SPRT: 53 + DPRT: 64569 + UCKSUM: 0x42ae (CORRECT) + DLEN: 164 (only 156 bytes in dump file) +Packet 3 + Packet Length: 64 + Collected: Wed Mar 5 11:30:49.403859 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 1108 + CKSUM: 0x7585 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: ----S- (0x02) + SEQ: 0x6fab2a54 + ACK: 0x00000000 + WIN: 32768 + HLEN: 40 + CKSUM: 0xe2d0 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(2078336,0) +Packet 4 + Packet Length: 64 + Collected: Wed Mar 5 11:30:49.904731 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 60 + ID: 12766 + CKSUM: 0x58fb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -A--S- (0x12) + SEQ: 0x76a6ba8d + ACK: 0x6fab2a55 + WIN: 32120 + HLEN: 40 + CKSUM: 0x6908 (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1460) WS(0) TS(1021644326,2078336) +Packet 5 + Packet Length: 56 + Collected: Wed Mar 5 11:30:49.904843 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 1109 + CKSUM: 0x758c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -A---- (0x10) + SEQ: 0x6fab2a55 + ACK: 0x76a6ba8e + WIN: 33304 + HLEN: 32 + CKSUM: 0x902b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2078337,1021644326) +Packet 6 + Packet Length: 78 + Collected: Wed Mar 5 11:30:50.409847 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 74 + ID: 12783 + CKSUM: 0x58dc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6ba8e + ACK: 0x6fab2a55 + WIN: 32120 + HLEN: 32 + CKSUM: 0xac65 (CORRECT) + DLEN: 22 + OPTS: 12 bytes TS(1021644376,2078337) + data: 22 bytes +Packet 7 + Packet Length: 78 + Collected: Wed Mar 5 11:30:50.410191 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 74 + ID: 1110 + CKSUM: 0x7575 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2a55 + ACK: 0x76a6baa4 + WIN: 33304 + HLEN: 32 + CKSUM: 0xa4ae (CORRECT) + DLEN: 22 + OPTS: 12 bytes TS(2078338,1021644376) + data: 22 bytes +Packet 8 + Packet Length: 56 + Collected: Wed Mar 5 11:30:50.737922 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 52 + ID: 12794 + CKSUM: 0x58e7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -A---- (0x10) + SEQ: 0x76a6baa4 + ACK: 0x6fab2a6b + WIN: 32120 + HLEN: 32 + CKSUM: 0x9439 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1021644427,2078338) +Packet 9 + Packet Length: 332 + Collected: Wed Mar 5 11:30:50.826621 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 328 + ID: 12795 + CKSUM: 0x57d2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6baa4 + ACK: 0x6fab2a6b + WIN: 32120 + HLEN: 32 + CKSUM: 0x9e82 (CORRECT) + DLEN: 276 + OPTS: 12 bytes TS(1021644427,2078338) + data: 276 bytes +Packet 10 + Packet Length: 212 + Collected: Wed Mar 5 11:30:50.829960 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 208 + ID: 1111 + CKSUM: 0x74ee (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2a6b + ACK: 0x76a6bbb8 + WIN: 33304 + HLEN: 32 + CKSUM: 0x969b (CORRECT) + DLEN: 156 + OPTS: 12 bytes TS(2078339,1021644427) + data: 156 bytes +Packet 11 + Packet Length: 68 + Collected: Wed Mar 5 11:30:51.300060 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 64 + ID: 12806 + CKSUM: 0x58cf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bbb8 + ACK: 0x6fab2b07 + WIN: 32120 + HLEN: 32 + CKSUM: 0xd2b0 (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(1021644477,2078339) + data: 12 bytes +Packet 12 + Packet Length: 76 + Collected: Wed Mar 5 11:30:51.300336 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 72 + ID: 1112 + CKSUM: 0x7575 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2b07 + ACK: 0x76a6bbc4 + WIN: 33304 + HLEN: 32 + CKSUM: 0x0285 (CORRECT) + DLEN: 20 + OPTS: 12 bytes TS(2078340,1021644477) + data: 20 bytes +Packet 13 + Packet Length: 68 + Collected: Wed Mar 5 11:30:51.733042 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 64 + ID: 12811 + CKSUM: 0x58ca (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bbc4 + ACK: 0x6fab2b1b + WIN: 32120 + HLEN: 32 + CKSUM: 0x1d43 (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(1021644518,2078340) + data: 12 bytes +Packet 14 + Packet Length: 68 + Collected: Wed Mar 5 11:30:51.733344 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 1113 + CKSUM: 0x757c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2b1b + ACK: 0x76a6bbd0 + WIN: 33304 + HLEN: 32 + CKSUM: 0x3262 (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(2078341,1021644518) + data: 12 bytes +Packet 15 + Packet Length: 68 + Collected: Wed Mar 5 11:30:52.182240 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 64 + ID: 12826 + CKSUM: 0x58bb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bbd0 + ACK: 0x6fab2b27 + WIN: 32120 + HLEN: 32 + CKSUM: 0x74c5 (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(1021644559,2078341) + data: 12 bytes +Packet 16 + Packet Length: 56 + Collected: Wed Mar 5 11:30:52.299462 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 1114 + CKSUM: 0x7587 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -A---- (0x10) + SEQ: 0x6fab2b27 + ACK: 0x76a6bbdc + WIN: 33304 + HLEN: 32 + CKSUM: 0x8d1d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2078342,1021644559) +Packet 17 + Packet Length: 108 + Collected: Wed Mar 5 11:30:54.366193 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 104 + ID: 1115 + CKSUM: 0x7552 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2b27 + ACK: 0x76a6bbdc + WIN: 33304 + HLEN: 32 + CKSUM: 0x953c (CORRECT) + DLEN: 52 + OPTS: 12 bytes TS(2078346,1021644559) + data: 52 bytes +Packet 18 + Packet Length: 68 + Collected: Wed Mar 5 11:30:54.732663 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 64 + ID: 12927 + CKSUM: 0x5856 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bbdc + ACK: 0x6fab2b5b + WIN: 32120 + HLEN: 32 + CKSUM: 0xb65e (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(1021644825,2078346) + data: 12 bytes +Packet 19 + Packet Length: 196 + Collected: Wed Mar 5 11:30:54.733106 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 192 + ID: 1116 + CKSUM: 0x74f9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2b5b + ACK: 0x76a6bbe8 + WIN: 33304 + HLEN: 32 + CKSUM: 0x7b6e (CORRECT) + DLEN: 140 + OPTS: 12 bytes TS(2078347,1021644825) + data: 140 bytes +Packet 20 + Packet Length: 68 + Collected: Wed Mar 5 11:30:55.293886 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 64 + ID: 12948 + CKSUM: 0x5841 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bbe8 + ACK: 0x6fab2be7 + WIN: 32120 + HLEN: 32 + CKSUM: 0x62a3 (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(1021644864,2078347) + data: 12 bytes +Packet 21 + Packet Length: 68 + Collected: Wed Mar 5 11:30:55.296130 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 1117 + CKSUM: 0x7568 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -AP--- (0x18) + SEQ: 0x6fab2be7 + ACK: 0x76a6bbf4 + WIN: 33304 + HLEN: 32 + CKSUM: 0xcd56 (CORRECT) + DLEN: 12 + OPTS: 12 bytes TS(2078348,1021644864) + data: 12 bytes +Packet 22 + Packet Length: 56 + Collected: Wed Mar 5 11:30:55.670890 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 52 + ID: 12977 + CKSUM: 0x5820 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -A---- (0x10) + SEQ: 0x76a6bbf4 + ACK: 0x6fab2bf3 + WIN: 32120 + HLEN: 32 + CKSUM: 0x8f6a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1021644920,2078348) +Packet 23 + Packet Length: 156 + Collected: Wed Mar 5 11:30:55.724845 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 152 + ID: 12979 + CKSUM: 0x57ba (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bbf4 + ACK: 0x6fab2bf3 + WIN: 32120 + HLEN: 32 + CKSUM: 0xda9b (CORRECT) + DLEN: 100 + OPTS: 12 bytes TS(1021644921,2078348) + data: 100 bytes +Packet 24 + Packet Length: 76 + Collected: Wed Mar 5 11:30:55.724857 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 72 + ID: 12980 + CKSUM: 0x5809 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bc58 + ACK: 0x6fab2bf3 + WIN: 32120 + HLEN: 32 + CKSUM: 0xe826 (CORRECT) + DLEN: 20 + OPTS: 12 bytes TS(1021644923,2078348) + data: 20 bytes +Packet 25 + Packet Length: 212 + Collected: Wed Mar 5 11:30:55.772526 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 208 + ID: 12983 + CKSUM: 0x577e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bc6c + ACK: 0x6fab2bf3 + WIN: 32120 + HLEN: 32 + CKSUM: 0xbaa2 (CORRECT) + DLEN: 156 + OPTS: 12 bytes TS(1021644927,2078348) + data: 156 bytes +Packet 26 + Packet Length: 100 + Collected: Wed Mar 5 11:30:55.801070 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 159.18.1.3 + IP Dest: 198.166.90.39 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 47 + LEN: 96 + ID: 12988 + CKSUM: 0x57e9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 22 + DPRT: 54942 + FLG: -AP--- (0x18) + SEQ: 0x76a6bd08 + ACK: 0x6fab2bf3 + WIN: 32120 + HLEN: 32 + CKSUM: 0xb308 (CORRECT) + DLEN: 44 + OPTS: 12 bytes TS(1021644928,2078348) + data: 44 bytes +Packet 27 + Packet Length: 56 + Collected: Wed Mar 5 11:30:55.900490 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 198.166.90.39 + IP Dest: 159.18.1.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 1118 + CKSUM: 0x7573 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 54942 + DPRT: 22 + FLG: -A---- (0x10) + SEQ: 0x6fab2bf3 + ACK: 0x76a6bd34 + WIN: 33304 + HLEN: 32 + CKSUM: 0x8988 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2078349,1021644921) +27 packets seen, 25 TCP packets traced +trace file elapsed time: 0:00:06.883153 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 198.166.90.39:54942 - 159.18.1.3:22 (a2b) 11> 14< diff --git a/input/OUTPUTbench/ppp_encap.dmp.gz.short b/input/OUTPUTbench/ppp_encap.dmp.gz.short new file mode 100644 index 0000000..79dd164 --- /dev/null +++ b/input/OUTPUTbench/ppp_encap.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'ppp_encap.dmp.gz' + +27 packets seen, 25 TCP packets traced +trace file elapsed time: 0:00:06.883153 +TCP connection info: + 1: 198.166.90.39:54942 - 159.18.1.3:22 (a2b) 11> 14< diff --git a/input/OUTPUTbench/ppp_encap.dmp.gz.xplots.cksum b/input/OUTPUTbench/ppp_encap.dmp.gz.xplots.cksum new file mode 100644 index 0000000..75d1197 --- /dev/null +++ b/input/OUTPUTbench/ppp_encap.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +2188419464 3195 a2b_owin.xpl +2757643508 727 a2b_rtt.xpl +4053400588 1189 a2b_ssize.xpl +305069435 340 a2b_tput.xpl +4196900852 4959 a2b_tsg.xpl +3723074321 4681 a_b_tline.xpl +731391641 4167 b2a_owin.xpl +3979720721 762 b2a_rtt.xpl +3959029436 1811 b2a_ssize.xpl +2325460243 535 b2a_tput.xpl +3008505319 4888 b2a_tsg.xpl diff --git a/input/OUTPUTbench/ppp_over_eth.dmp.gz.long b/input/OUTPUTbench/ppp_over_eth.dmp.gz.long new file mode 100644 index 0000000..2cd70f0 --- /dev/null +++ b/input/OUTPUTbench/ppp_over_eth.dmp.gz.long @@ -0,0 +1,83 @@ +1 arg remaining, starting with 'ppp_over_eth.dmp.gz' + +10 packets seen, 10 TCP packets traced +trace file elapsed time: 0:00:00.508969 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 138.217.69.153:2049 + host b: 65.166.64.143:80 + complete conn: yes + first packet: Mon Jul 14 05:53:06.705270 2003 + last packet: Mon Jul 14 05:53:07.214239 2003 + elapsed time: 0:00:00.508969 + total packets: 10 + filename: ppp_over_eth.dmp.gz + a->b: b->a: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 189 unique bytes sent: 320 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 189 actual data bytes: 320 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 0 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1414 bytes mss requested: 1460 bytes + max segm size: 189 bytes max segm size: 320 bytes + min segm size: 189 bytes min segm size: 320 bytes + avg segm size: 188 bytes avg segm size: 319 bytes + max win adv: 5656 bytes max win adv: 16384 bytes + min win adv: 5656 bytes min win adv: 16195 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 5656 bytes avg win adv: 16336 bytes + max owin: 190 bytes max owin: 321 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 48 bytes avg owin: 161 bytes + wavg owin: 176 bytes wavg owin: 7 bytes + initial window: 189 bytes initial window: 320 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 189 bytes ttl stream length: 320 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 476.9 ms idletime max: 454.1 ms + throughput: 371 Bps throughput: 629 Bps + + RTT samples: 3 RTT samples: 3 + RTT min: 12.1 ms RTT min: 1.0 ms + RTT max: 21.0 ms RTT max: 2.0 ms + RTT avg: 16.7 ms RTT avg: 1.6 ms + RTT stdev: 4.5 ms RTT stdev: 0.5 ms + + RTT from 3WHS: 17.0 ms RTT from 3WHS: 1.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 21.0 ms RTT full_sz min: 1.8 ms + RTT full_sz max: 21.0 ms RTT full_sz max: 1.8 ms + RTT full_sz avg: 21.0 ms RTT full_sz avg: 1.8 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/ppp_over_eth.dmp.gz.packets b/input/OUTPUTbench/ppp_over_eth.dmp.gz.packets new file mode 100644 index 0000000..e4ed208 --- /dev/null +++ b/input/OUTPUTbench/ppp_over_eth.dmp.gz.packets @@ -0,0 +1,276 @@ +1 arg remaining, starting with 'ppp_over_eth.dmp.gz' + +Packet 1 + Packet Length: 74 + Collected: Mon Jul 14 05:53:06.705270 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 138.217.69.153 + IP Dest: 65.166.64.143 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 60 + ID: 62130 + CKSUM: 0xf561 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2049 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0x0185fa88 + ACK: 0x00000000 + WIN: 5656 + HLEN: 40 + CKSUM: 0xd2dc (CORRECT) + DLEN: 0 + OPTS: 20 bytes MSS(1414) WS(0) TS(2106,0) SACKREQ +Packet 2 + Packet Length: 78 + Collected: Mon Jul 14 05:53:06.722244 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 65.166.64.143 + IP Dest: 138.217.69.153 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 64 + ID: 8944 + CKSUM: 0xc920 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 2049 + FLG: -A--S- (0x12) + SEQ: 0x1a06d7d4 + ACK: 0x0185fa89 + WIN: 8484 + HLEN: 44 + CKSUM: 0xea80 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(0) TS(1316588214,2106) SACKREQ +Packet 3 + Packet Length: 66 + Collected: Mon Jul 14 05:53:06.723248 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 138.217.69.153 + IP Dest: 65.166.64.143 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 62131 + CKSUM: 0xf568 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2049 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0185fa89 + ACK: 0x1a06d7d5 + WIN: 5656 + HLEN: 32 + CKSUM: 0x3657 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2107,1316588214) +Packet 4 + Packet Length: 255 + Collected: Mon Jul 14 05:53:06.724269 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 138.217.69.153 + IP Dest: 65.166.64.143 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 241 + ID: 62132 + CKSUM: 0xf4aa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2049 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0x0185fa89 + ACK: 0x1a06d7d5 + WIN: 5656 + HLEN: 32 + CKSUM: 0x3509 (CORRECT) + DLEN: 189 + OPTS: 12 bytes TS(2107,1316588214) + data: 189 bytes +Packet 5 + Packet Length: 66 + Collected: Mon Jul 14 05:53:06.745243 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 65.166.64.143 + IP Dest: 138.217.69.153 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 52 + ID: 9200 + CKSUM: 0x082d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 2049 + FLG: -A---- (0x10) + SEQ: 0x1a06d7d5 + ACK: 0x0185fb46 + WIN: 16195 + HLEN: 32 + CKSUM: 0x0c6c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1316588217,2107) +Packet 6 + Packet Length: 386 + Collected: Mon Jul 14 05:53:07.199341 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 65.166.64.143 + IP Dest: 138.217.69.153 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 372 + ID: 20720 + CKSUM: 0xd9ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 2049 + FLG: -AP--- (0x18) + SEQ: 0x1a06d7d5 + ACK: 0x0185fb46 + WIN: 16384 + HLEN: 32 + CKSUM: 0xb766 (CORRECT) + DLEN: 320 + OPTS: 12 bytes TS(1316588262,2107) + data: 320 bytes +Packet 7 + Packet Length: 66 + Collected: Mon Jul 14 05:53:07.200160 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 65.166.64.143 + IP Dest: 138.217.69.153 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 52 + ID: 20976 + CKSUM: 0xda2c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 2049 + FLG: -A---F (0x11) + SEQ: 0x1a06d915 + ACK: 0x0185fb46 + WIN: 16384 + HLEN: 32 + CKSUM: 0x0a41 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1316588262,2107) +Packet 8 + Packet Length: 66 + Collected: Mon Jul 14 05:53:07.201180 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 138.217.69.153 + IP Dest: 65.166.64.143 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 62133 + CKSUM: 0xf566 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2049 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0x0185fb46 + ACK: 0x1a06d915 + WIN: 5656 + HLEN: 32 + CKSUM: 0x33fa (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2155,1316588262) +Packet 9 + Packet Length: 66 + Collected: Mon Jul 14 05:53:07.202159 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 138.217.69.153 + IP Dest: 65.166.64.143 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 62134 + CKSUM: 0xf565 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 2049 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0x0185fb46 + ACK: 0x1a06d916 + WIN: 5656 + HLEN: 32 + CKSUM: 0x33f8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(2155,1316588262) +Packet 10 + Packet Length: 66 + Collected: Mon Jul 14 05:53:07.214239 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 65.166.64.143 + IP Dest: 138.217.69.153 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 52 + ID: 22512 + CKSUM: 0xd42c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 2049 + FLG: -A---- (0x10) + SEQ: 0x1a06d916 + ACK: 0x0185fb47 + WIN: 16384 + HLEN: 32 + CKSUM: 0x0a0e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1316588264,2155) +10 packets seen, 10 TCP packets traced +trace file elapsed time: 0:00:00.508969 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 138.217.69.153:2049 - 65.166.64.143:80 (a2b) 5> 5< (complete) diff --git a/input/OUTPUTbench/ppp_over_eth.dmp.gz.short b/input/OUTPUTbench/ppp_over_eth.dmp.gz.short new file mode 100644 index 0000000..9dca204 --- /dev/null +++ b/input/OUTPUTbench/ppp_over_eth.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'ppp_over_eth.dmp.gz' + +10 packets seen, 10 TCP packets traced +trace file elapsed time: 0:00:00.508969 +TCP connection info: + 1: 138.217.69.153:2049 - 65.166.64.143:80 (a2b) 5> 5< (complete) diff --git a/input/OUTPUTbench/ppp_over_eth.dmp.gz.xplots.cksum b/input/OUTPUTbench/ppp_over_eth.dmp.gz.xplots.cksum new file mode 100644 index 0000000..b54d71f --- /dev/null +++ b/input/OUTPUTbench/ppp_over_eth.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +314361451 1285 a2b_owin.xpl +2241627915 327 a2b_rtt.xpl +3380004771 187 a2b_ssize.xpl +87829873 151 a2b_tput.xpl +3680224601 1717 a2b_tsg.xpl +2957357899 1984 a_b_tline.xpl +3028774285 1284 b2a_owin.xpl +952939807 319 b2a_rtt.xpl +592198637 187 b2a_ssize.xpl +3936143281 150 b2a_tput.xpl +729246892 1573 b2a_tsg.xpl diff --git a/input/OUTPUTbench/psc.fddi.dmp.gz.long b/input/OUTPUTbench/psc.fddi.dmp.gz.long new file mode 100644 index 0000000..5ca4fb5 --- /dev/null +++ b/input/OUTPUTbench/psc.fddi.dmp.gz.long @@ -0,0 +1,92 @@ +1 arg remaining, starting with 'psc.fddi.dmp.gz' + +529 packets seen, 529 TCP packets traced +trace file elapsed time: 0:00:00.878610 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 128.182.40.126:1034 + host b: 128.182.61.120:1066 + complete conn: yes + first packet: Thu Mar 27 13:38:45.317135 1997 + last packet: Thu Mar 27 13:38:46.195745 1997 + elapsed time: 0:00:00.878610 + total packets: 529 + filename: psc.fddi.dmp.gz + a->b: b->a: + total packets: 240 total packets: 289 + ack pkts sent: 239 ack pkts sent: 289 + pure acks sent: 67 pure acks sent: 150 + sack pkts sent: 0 sack pkts sent: 77 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 4 + unique bytes sent: 200026 unique bytes sent: 200003 + actual data pkts: 171 actual data pkts: 138 + actual data bytes: 246746 actual data bytes: 200003 + rexmt data pkts: 32 rexmt data pkts: 0 + rexmt data bytes: 46720 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 3 pushed data pkts: 2 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/N + adv wind scale: 2 adv wind scale: 2 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 77 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 4312 bytes + max segm size: 1460 bytes max segm size: 1460 bytes + min segm size: 26 bytes min segm size: 3 bytes + avg segm size: 1442 bytes avg segm size: 1449 bytes + max win adv: 200020 bytes max win adv: 200020 bytes + min win adv: 198580 bytes min win adv: 194160 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 200007 bytes avg win adv: 199706 bytes + max owin: 89061 bytes max owin: 64241 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 27038 bytes avg owin: 14778 bytes + wavg owin: 67665 bytes wavg owin: 3305 bytes + initial window: 26 bytes initial window: 3 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 200026 bytes ttl stream length: 200003 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 200310 bytes truncated data: 162599 bytes + truncated packets: 170 pkts truncated packets: 137 pkts + data xmit time: 0.807 secs data xmit time: 0.834 secs + idletime max: 535.0 ms idletime max: 501.9 ms + throughput: 227662 Bps throughput: 227636 Bps + + RTT samples: 71 RTT samples: 67 + RTT min: 0.0 ms RTT min: 1.0 ms + RTT max: 38.0 ms RTT max: 10.7 ms + RTT avg: 17.3 ms RTT avg: 4.7 ms + RTT stdev: 11.1 ms RTT stdev: 3.2 ms + + RTT from 3WHS: 2.9 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 66 RTT full_sz smpls: 64 + RTT full_sz min: 2.9 ms RTT full_sz min: 1.0 ms + RTT full_sz max: 38.0 ms RTT full_sz max: 10.7 ms + RTT full_sz avg: 18.4 ms RTT full_sz avg: 4.8 ms + RTT full_sz stdev: 10.7 ms RTT full_sz stdev: 3.1 ms + + post-loss acks: 20 post-loss acks: 0 + 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. + ambiguous acks: 9 ambiguous acks: 0 + RTT min (last): 2.9 ms RTT min (last): 0.0 ms + RTT max (last): 4.9 ms RTT max (last): 0.0 ms + RTT avg (last): 3.3 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.7 ms RTT sdv (last): 0.0 ms + segs cum acked: 41 segs cum acked: 72 + duplicate acks: 31 duplicate acks: 1 + triple dupacks: 1 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 41.9 ms min retr time: 0.0 ms + max retr time: 625.9 ms max retr time: 0.0 ms + avg retr time: 586.1 ms avg retr time: 0.0 ms + sdv retr time: 100.6 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/psc.fddi.dmp.gz.packets b/input/OUTPUTbench/psc.fddi.dmp.gz.packets new file mode 100644 index 0000000..c9f2699 --- /dev/null +++ b/input/OUTPUTbench/psc.fddi.dmp.gz.packets @@ -0,0 +1,2575 @@ +1 arg remaining, starting with 'psc.fddi.dmp.gz' + +Packet 1 + Packet Length: 78 (saved length 79) + Collected: Thu Mar 27 13:38:45.317135 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 21118 + CKSUM: 0xc0d7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: ----S- (0x02) + SEQ: 0x4e943600 + ACK: 0x00000000 + WIN: 65535 + HLEN: 44 + CKSUM: 0xe51b (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(2) TS(154806,0) SACKREQ +Packet 2 + Packet Length: 66 (saved length 67) + Collected: Thu Mar 27 13:38:45.320060 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 52 + ID: 8859 + CKSUM: 0xf4c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A--S- (0x12) + SEQ: 0x1b7d1c00 + ACK: 0x4e943601 + WIN: 65535 + HLEN: 32 + CKSUM: 0x3839 (CORRECT) + DLEN: 0 + OPTS: 12 bytes MSS(4312) WS(2) SACKREQ +Packet 3 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.320060 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 21119 + CKSUM: 0xc0ee (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e943601 + ACK: 0x1b7d1c01 + WIN: 50005 + HLEN: 20 + CKSUM: 0xc0d4 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.321035 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8860 + CKSUM: 0xf4d1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c01 + ACK: 0x4e943601 + WIN: 50005 + HLEN: 20 + CKSUM: 0xc0d4 (CORRECT) + DLEN: 0 +Packet 5 + Packet Length: 80 (saved length 81) + Collected: Thu Mar 27 13:38:45.322010 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 66 + ID: 21120 + CKSUM: 0xc0d3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -AP--- (0x18) + SEQ: 0x4e943601 + ACK: 0x1b7d1c01 + WIN: 50005 + HLEN: 20 + CKSUM: 0x6bb3 (CORRECT) + DLEN: 26 + data: 26 bytes +Packet 6 + Packet Length: 57 (saved length 58) + Collected: Thu Mar 27 13:38:45.327860 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 43 + ID: 8861 + CKSUM: 0xf4cd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -AP--- (0x18) + SEQ: 0x1b7d1c01 + ACK: 0x4e94361b + WIN: 50000 + HLEN: 20 + CKSUM: 0x8594 (CORRECT) + DLEN: 3 + data: 3 bytes +Packet 7 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.327860 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 21122 + CKSUM: 0xc0eb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94361b + ACK: 0x1b7d1c04 + WIN: 50004 + HLEN: 20 + CKSUM: 0xc0b8 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.400010 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21123 + CKSUM: 0xbb36 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94361b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xbb03 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 9 + Packet Length: 642 (saved length 327) + Collected: Thu Mar 27 13:38:45.400010 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 628 + ID: 21124 + CKSUM: 0xbe9d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -AP--- (0x18) + SEQ: 0x4e943bcf + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xb8af (too short to verify) + DLEN: 588 (only 273 bytes in dump file) + data: 588 bytes +Packet 10 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.400010 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21125 + CKSUM: 0xbb34 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e943e1b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xb303 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 11 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.402935 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8862 + CKSUM: 0xf4cf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e943e1b + WIN: 50000 + HLEN: 20 + CKSUM: 0xb8bc (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.403910 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21126 + CKSUM: 0xbb33 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9443cf + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xad4f (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 13 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.403910 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21127 + CKSUM: 0xbb32 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e944983 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xa79b (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 14 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.403910 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21128 + CKSUM: 0xbb31 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e944f37 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xa1e7 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 15 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.404885 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8863 + CKSUM: 0xf4ce (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e9443cf + WIN: 50000 + HLEN: 20 + CKSUM: 0xb308 (CORRECT) + DLEN: 0 +Packet 16 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.404885 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21129 + CKSUM: 0xbb30 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9454eb + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x9c33 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 17 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.404885 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21130 + CKSUM: 0xbb2f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e945a9f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x967f (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 18 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.406835 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8864 + CKSUM: 0xf4cd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e944983 + WIN: 50000 + HLEN: 20 + CKSUM: 0xad54 (CORRECT) + DLEN: 0 +Packet 19 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.407810 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21131 + CKSUM: 0xbb2e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e946053 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x90cb (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 20 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.407810 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21132 + CKSUM: 0xbb2d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e946607 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x8b17 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 21 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.407810 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8865 + CKSUM: 0xf4cc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e944f37 + WIN: 50000 + HLEN: 20 + CKSUM: 0xa7a0 (CORRECT) + DLEN: 0 +Packet 22 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.408785 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21133 + CKSUM: 0xbb2c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e946bbb + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x8563 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 23 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.408785 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21134 + CKSUM: 0xbb2b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94716f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x7faf (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 24 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.408785 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8866 + CKSUM: 0xf4cb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e9454eb + WIN: 50000 + HLEN: 20 + CKSUM: 0xa1ec (CORRECT) + DLEN: 0 +Packet 25 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.409760 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21135 + CKSUM: 0xbb2a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e947723 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x79fb (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 26 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.409760 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21136 + CKSUM: 0xbb29 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e947cd7 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x7447 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 27 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.410735 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8867 + CKSUM: 0xf4ca (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e945a9f + WIN: 50000 + HLEN: 20 + CKSUM: 0x9c38 (CORRECT) + DLEN: 0 +Packet 28 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.410735 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21137 + CKSUM: 0xbb28 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94828b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x6e93 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 29 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.410735 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21138 + CKSUM: 0xbb27 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94883f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x68df (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 30 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.411710 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8868 + CKSUM: 0xf4c9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e946053 + WIN: 50000 + HLEN: 20 + CKSUM: 0x9684 (CORRECT) + DLEN: 0 +Packet 31 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.411710 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21139 + CKSUM: 0xbb26 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e948df3 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x632b (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 32 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.411710 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21140 + CKSUM: 0xbb25 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9493a7 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x5d77 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 33 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.412685 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8869 + CKSUM: 0xf4c8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e946607 + WIN: 50000 + HLEN: 20 + CKSUM: 0x90d0 (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.413660 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21141 + CKSUM: 0xbb24 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94995b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x57c3 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 35 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.413660 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21142 + CKSUM: 0xbb23 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e949f0f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x520f (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 36 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.414635 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8870 + CKSUM: 0xf4c7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e946bbb + WIN: 50000 + HLEN: 20 + CKSUM: 0x8b1c (CORRECT) + DLEN: 0 +Packet 37 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.414635 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21143 + CKSUM: 0xbb22 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94a4c3 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x4c5b (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 38 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.414635 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21144 + CKSUM: 0xbb21 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94aa77 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x46a7 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 39 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.415610 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8871 + CKSUM: 0xf4c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94716f + WIN: 50000 + HLEN: 20 + CKSUM: 0x8568 (CORRECT) + DLEN: 0 +Packet 40 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.415610 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21145 + CKSUM: 0xbb20 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94b02b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x40f3 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 41 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.415610 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21146 + CKSUM: 0xbb1f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94b5df + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x3b3f (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 42 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.416585 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8872 + CKSUM: 0xf4c5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e947723 + WIN: 50000 + HLEN: 20 + CKSUM: 0x7fb4 (CORRECT) + DLEN: 0 +Packet 43 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.416585 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21147 + CKSUM: 0xbb1e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94bb93 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x358b (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 44 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.417560 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21148 + CKSUM: 0xbb1d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94c147 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x2fd7 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 45 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.417560 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8873 + CKSUM: 0xf4c4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e947cd7 + WIN: 50000 + HLEN: 20 + CKSUM: 0x7a00 (CORRECT) + DLEN: 0 +Packet 46 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.418535 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21149 + CKSUM: 0xbb1c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94c6fb + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x2a23 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 47 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.418535 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21150 + CKSUM: 0xbb1b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94ccaf + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x246f (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 48 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.419510 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8874 + CKSUM: 0xf4c3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94828b + WIN: 50000 + HLEN: 20 + CKSUM: 0x744c (CORRECT) + DLEN: 0 +Packet 49 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.419510 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21151 + CKSUM: 0xbb1a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94d263 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x1ebb (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 50 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.419510 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21152 + CKSUM: 0xbb19 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94d817 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x1907 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 51 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.420485 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8875 + CKSUM: 0xf4c2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94883f + WIN: 50000 + HLEN: 20 + CKSUM: 0x6e98 (CORRECT) + DLEN: 0 +Packet 52 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.421460 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21153 + CKSUM: 0xbb18 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94ddcb + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x1353 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 53 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.421460 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21154 + CKSUM: 0xbb17 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94e37f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x0d9f (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 54 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.421460 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8876 + CKSUM: 0xf4c1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e948df3 + WIN: 50000 + HLEN: 20 + CKSUM: 0x68e4 (CORRECT) + DLEN: 0 +Packet 55 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.422435 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21155 + CKSUM: 0xbb16 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94e933 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x07eb (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 56 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.422435 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21156 + CKSUM: 0xbb15 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94eee7 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x0237 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 57 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.422435 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8877 + CKSUM: 0xf4c0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e9493a7 + WIN: 50000 + HLEN: 20 + CKSUM: 0x6330 (CORRECT) + DLEN: 0 +Packet 58 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.423410 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21157 + CKSUM: 0xbb14 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94f49b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xfc82 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 59 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.423410 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21158 + CKSUM: 0xbb13 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e94fa4f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xf6ce (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 60 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.424385 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8878 + CKSUM: 0xf4bf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94995b + WIN: 50000 + HLEN: 20 + CKSUM: 0x5d7c (CORRECT) + DLEN: 0 +Packet 61 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.424385 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21159 + CKSUM: 0xbb12 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e950003 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xf11a (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 62 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.424385 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21160 + CKSUM: 0xbb11 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9505b7 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xeb66 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 63 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.425360 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8879 + CKSUM: 0xf4be (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e949f0f + WIN: 50000 + HLEN: 20 + CKSUM: 0x57c8 (CORRECT) + DLEN: 0 +Packet 64 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.425360 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21161 + CKSUM: 0xbb10 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e950b6b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xe5b2 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 65 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.426335 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21162 + CKSUM: 0xbb0f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e95111f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xdffe (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 66 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.426335 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8880 + CKSUM: 0xf4bd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94a4c3 + WIN: 50000 + HLEN: 20 + CKSUM: 0x5214 (CORRECT) + DLEN: 0 +Packet 67 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.427310 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21163 + CKSUM: 0xbb0e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9516d3 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xda4a (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 68 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.427310 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21164 + CKSUM: 0xbb0d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e951c87 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xd496 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 69 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.428285 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8881 + CKSUM: 0xf4bc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94aa77 + WIN: 50000 + HLEN: 20 + CKSUM: 0x4c60 (CORRECT) + DLEN: 0 +Packet 70 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.428285 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21165 + CKSUM: 0xbb0c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e95223b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xcee2 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 71 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.428285 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21166 + CKSUM: 0xbb0b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9527ef + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xc92e (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 72 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.429260 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8882 + CKSUM: 0xf4bb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94b02b + WIN: 50000 + HLEN: 20 + CKSUM: 0x46ac (CORRECT) + DLEN: 0 +Packet 73 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.429260 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21167 + CKSUM: 0xbb0a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e952da3 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xc37a (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 74 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.429260 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21168 + CKSUM: 0xbb09 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e953357 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xbdc6 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 75 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.430235 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8883 + CKSUM: 0xf4ba (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94b5df + WIN: 50000 + HLEN: 20 + CKSUM: 0x40f8 (CORRECT) + DLEN: 0 +Packet 76 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.431210 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21169 + CKSUM: 0xbb08 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e95390b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xb812 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 77 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.431210 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21170 + CKSUM: 0xbb07 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e953ebf + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xb25e (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 78 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.431210 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8884 + CKSUM: 0xf4b9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94bb93 + WIN: 50000 + HLEN: 20 + CKSUM: 0x3b44 (CORRECT) + DLEN: 0 +Packet 79 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.432185 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21171 + CKSUM: 0xbb06 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e954473 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xacaa (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 80 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.432185 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21172 + CKSUM: 0xbb05 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e954a27 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xa6f6 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 81 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.433160 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8885 + CKSUM: 0xf4b8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94c147 + WIN: 50000 + HLEN: 20 + CKSUM: 0x3590 (CORRECT) + DLEN: 0 +Packet 82 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.433160 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21173 + CKSUM: 0xbb04 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e954fdb + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0xa142 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 83 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.433160 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21174 + CKSUM: 0xbb03 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e95558f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x9b8e (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 84 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.434135 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8886 + CKSUM: 0xf4b7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94c6fb + WIN: 50000 + HLEN: 20 + CKSUM: 0x2fdc (CORRECT) + DLEN: 0 +Packet 85 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.435110 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21175 + CKSUM: 0xbb02 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e955b43 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x95da (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 86 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.435110 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21176 + CKSUM: 0xbb01 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9560f7 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x9026 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 87 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.435110 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8887 + CKSUM: 0xf4b6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94ccaf + WIN: 50000 + HLEN: 20 + CKSUM: 0x2a28 (CORRECT) + DLEN: 0 +Packet 88 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.436085 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21177 + CKSUM: 0xbb00 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9566ab + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x8a72 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 89 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.436085 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21178 + CKSUM: 0xbaff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e956c5f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x84be (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 90 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.436085 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8888 + CKSUM: 0xf4b5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94d263 + WIN: 50000 + HLEN: 20 + CKSUM: 0x2474 (CORRECT) + DLEN: 0 +Packet 91 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.437060 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21179 + CKSUM: 0xbafe (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e957213 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x7f0a (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 92 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.437060 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21180 + CKSUM: 0xbafd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9577c7 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x7956 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 93 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.438035 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8889 + CKSUM: 0xf4b4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94d817 + WIN: 50000 + HLEN: 20 + CKSUM: 0x1ec0 (CORRECT) + DLEN: 0 +Packet 94 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.438035 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21181 + CKSUM: 0xbafc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e957d7b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x73a2 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 95 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.438035 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21182 + CKSUM: 0xbafb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e95832f + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x6dee (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 96 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.439010 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8890 + CKSUM: 0xf4b3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94ddcb + WIN: 50000 + HLEN: 20 + CKSUM: 0x190c (CORRECT) + DLEN: 0 +Packet 97 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.439985 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21183 + CKSUM: 0xbafa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e9588e3 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x683a (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 98 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.439985 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21184 + CKSUM: 0xbaf9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e958e97 + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x6286 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +Packet 99 + Packet Length: 54 (saved length 55) + Collected: Thu Mar 27 13:38:45.439985 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.61.120 + IP Dest: 128.182.40.126 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 60 + LEN: 40 + ID: 8891 + CKSUM: 0xf4b2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1066 + DPRT: 1034 + FLG: -A---- (0x10) + SEQ: 0x1b7d1c04 + ACK: 0x4e94e37f + WIN: 50000 + HLEN: 20 + CKSUM: 0x1358 (CORRECT) + DLEN: 0 +Packet 100 + Packet Length: 1514 (saved length 327) + Collected: Thu Mar 27 13:38:45.440960 1997 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 128.182.40.126 + IP Dest: 128.182.61.120 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 21185 + CKSUM: 0xbaf8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1034 + DPRT: 1066 + FLG: -A---- (0x10) + SEQ: 0x4e95944b + ACK: 0x1b7d1c04 + WIN: 50005 + HLEN: 20 + CKSUM: 0x5cd2 (too short to verify) + DLEN: 1460 (only 273 bytes in dump file) + data: 1460 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.123825 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 128.182.40.126:1034 - 128.182.61.120:1066 (a2b) 67> 33< diff --git a/input/OUTPUTbench/psc.fddi.dmp.gz.short b/input/OUTPUTbench/psc.fddi.dmp.gz.short new file mode 100644 index 0000000..a09a432 --- /dev/null +++ b/input/OUTPUTbench/psc.fddi.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'psc.fddi.dmp.gz' + +529 packets seen, 529 TCP packets traced +trace file elapsed time: 0:00:00.878610 +TCP connection info: + 1: 128.182.40.126:1034 - 128.182.61.120:1066 (a2b) 240> 289< (complete) diff --git a/input/OUTPUTbench/psc.fddi.dmp.gz.xplots.cksum b/input/OUTPUTbench/psc.fddi.dmp.gz.xplots.cksum new file mode 100644 index 0000000..bc04d19 --- /dev/null +++ b/input/OUTPUTbench/psc.fddi.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +683074261 68449 a2b_owin.xpl +2576431630 5139 a2b_rtt.xpl +1913594900 27278 a2b_ssize.xpl +3919187716 9494 a2b_tput.xpl +3331412924 144083 a2b_tsg.xpl +1166204089 96008 a_b_tline.xpl +3064658290 90275 b2a_owin.xpl +2555893539 4447 b2a_rtt.xpl +2642368857 22038 b2a_ssize.xpl +1437607087 7668 b2a_tput.xpl +1102342114 80282 b2a_tsg.xpl diff --git a/input/OUTPUTbench/rawip.dmp.gz.long b/input/OUTPUTbench/rawip.dmp.gz.long new file mode 100644 index 0000000..a276805 --- /dev/null +++ b/input/OUTPUTbench/rawip.dmp.gz.long @@ -0,0 +1,79 @@ +1 arg remaining, starting with 'rawip.dmp.gz' + +14 packets seen, 14 TCP packets traced +trace file elapsed time: 0:00:16.800000 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 208.200.110.46:1351 + host b: 207.110.0.206:80 + complete conn: no (SYNs: 2) (FINs: 1) + first packet: Sat Apr 11 11:42:32.518726 1998 + last packet: Sat Apr 11 11:42:49.318726 1998 + elapsed time: 0:00:16.800000 + total packets: 14 + filename: rawip.dmp.gz + a->b: b->a: + total packets: 7 total packets: 7 + ack pkts sent: 6 ack pkts sent: 7 + pure acks sent: 5 pure acks sent: 1 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 390 unique bytes sent: 4756 + actual data pkts: 1 actual data pkts: 4 + actual data bytes: 390 actual data bytes: 4756 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 2 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 390 bytes max segm size: 1460 bytes + min segm size: 390 bytes min segm size: 660 bytes + avg segm size: 389 bytes avg segm size: 1188 bytes + max win adv: 32120 bytes max win adv: 32736 bytes + min win adv: 512 bytes min win adv: 32736 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 27396 bytes avg win adv: 32736 bytes + max owin: 391 bytes max owin: 2921 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 66 bytes avg owin: 1037 bytes + wavg owin: 32 bytes wavg owin: 645 bytes + initial window: 390 bytes initial window: 2920 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: NA ttl stream length: 4756 bytes + missed data: NA missed data: 0 bytes + truncated data: 362 bytes truncated data: 4644 bytes + truncated packets: 1 pkts truncated packets: 4 pkts + data xmit time: 0.000 secs data xmit time: 0.860 secs + idletime max: 13440.0 ms idletime max: 13460.0 ms + throughput: 23 Bps throughput: 283 Bps + + RTT samples: 2 RTT samples: 5 + RTT min: 680.0 ms RTT min: 0.0 ms + RTT max: 1380.0 ms RTT max: 20.0 ms + RTT avg: 1029.9 ms RTT avg: 10.0 ms + RTT stdev: 0.0 ms RTT stdev: 10.0 ms + + RTT from 3WHS: 1380.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 680.0 ms RTT full_sz min: 10.0 ms + RTT full_sz max: 680.0 ms RTT full_sz max: 10.0 ms + RTT full_sz avg: 679.9 ms RTT full_sz avg: 10.0 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/rawip.dmp.gz.packets b/input/OUTPUTbench/rawip.dmp.gz.packets new file mode 100644 index 0000000..245d22f --- /dev/null +++ b/input/OUTPUTbench/rawip.dmp.gz.packets @@ -0,0 +1,376 @@ +1 arg remaining, starting with 'rawip.dmp.gz' + +Packet 1 + Packet Length: 44 + Collected: Sat Apr 11 11:42:32.518726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 44 + ID: 1524 + CKSUM: 0x65a5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1351 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xa73351a0 + ACK: 0x00000000 + WIN: 512 + HLEN: 24 + CKSUM: 0x8888 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 44 + Collected: Sat Apr 11 11:42:33.898726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 44 + ID: 47947 + CKSUM: 0xb74d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1351 + FLG: -A--S- (0x12) + SEQ: 0xe46a822b + ACK: 0xa73351a1 + WIN: 32736 + HLEN: 24 + CKSUM: 0xa400 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 40 + Collected: Sat Apr 11 11:42:33.898726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 1530 + CKSUM: 0x25a3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1351 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xa73351a1 + ACK: 0xe46a822c + WIN: 32120 + HLEN: 20 + CKSUM: 0xbe25 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 430 (saved length 68) + Collected: Sat Apr 11 11:42:33.898726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 430 + ID: 1531 + CKSUM: 0x241c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1351 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xa73351a1 + ACK: 0xe46a822c + WIN: 32120 + HLEN: 20 + CKSUM: 0x4177 (too short to verify) + DLEN: 390 (only 28 bytes in dump file) + data: 390 bytes +Packet 5 + Packet Length: 40 + Collected: Sat Apr 11 11:42:34.578726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 40 + ID: 47962 + CKSUM: 0x7742 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 1351 + FLG: -A---- (0x10) + SEQ: 0xe46a822c + ACK: 0xa7335327 + WIN: 32736 + HLEN: 20 + CKSUM: 0xba37 (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 1500 (saved length 68) + Collected: Sat Apr 11 11:42:34.998726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 1500 + ID: 47963 + CKSUM: 0x718d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 1351 + FLG: -A---- (0x10) + SEQ: 0xe46a822c + ACK: 0xa7335327 + WIN: 32736 + HLEN: 20 + CKSUM: 0x83af (too short to verify) + DLEN: 1460 (only 28 bytes in dump file) + data: 1460 bytes +Packet 7 + Packet Length: 1500 (saved length 68) + Collected: Sat Apr 11 11:42:35.258726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 1500 + ID: 47964 + CKSUM: 0x718c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 1351 + FLG: -A---- (0x10) + SEQ: 0xe46a87e0 + ACK: 0xa7335327 + WIN: 32736 + HLEN: 20 + CKSUM: 0xab99 (too short to verify) + DLEN: 1460 (only 28 bytes in dump file) + data: 1460 bytes +Packet 8 + Packet Length: 40 + Collected: Sat Apr 11 11:42:35.268726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 1534 + CKSUM: 0x259f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1351 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xa7335327 + ACK: 0xe46a8d94 + WIN: 30660 + HLEN: 20 + CKSUM: 0xb6eb (CORRECT) + DLEN: 0 +Packet 9 + Packet Length: 1216 (saved length 68) + Collected: Sat Apr 11 11:42:35.748726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 1216 + ID: 47969 + CKSUM: 0x72a3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 1351 + FLG: -AP--- (0x18) + SEQ: 0xe46a8d94 + ACK: 0xa7335327 + WIN: 32736 + HLEN: 20 + CKSUM: 0x755e (too short to verify) + DLEN: 1176 (only 28 bytes in dump file) + data: 1176 bytes +Packet 10 + Packet Length: 40 + Collected: Sat Apr 11 11:42:35.768726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 1535 + CKSUM: 0x259e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1351 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xa7335327 + ACK: 0xe46a922c + WIN: 32120 + HLEN: 20 + CKSUM: 0xac9f (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 700 (saved length 68) + Collected: Sat Apr 11 11:42:35.858726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 700 + ID: 47970 + CKSUM: 0x74a6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 1351 + FLG: -AP--- (0x18) + SEQ: 0xe46a922c + ACK: 0xa7335327 + WIN: 32736 + HLEN: 20 + CKSUM: 0xf0ad (too short to verify) + DLEN: 660 (only 28 bytes in dump file) + data: 660 bytes +Packet 12 + Packet Length: 40 + Collected: Sat Apr 11 11:42:35.878726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 1536 + CKSUM: 0x259d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1351 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xa7335327 + ACK: 0xe46a94c0 + WIN: 32120 + HLEN: 20 + CKSUM: 0xaa0b (CORRECT) + DLEN: 0 +Packet 13 + Packet Length: 40 + Collected: Sat Apr 11 11:42:49.318726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 207.110.0.206 + IP Dest: 208.200.110.46 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 57 + LEN: 40 + ID: 48084 + CKSUM: 0xb6c8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 80 + DPRT: 1351 + FLG: -A---F (0x11) + SEQ: 0xe46a94c0 + ACK: 0xa7335327 + WIN: 32736 + HLEN: 20 + CKSUM: 0xa7a2 (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 40 + Collected: Sat Apr 11 11:42:49.318726 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 208.200.110.46 + IP Dest: 207.110.0.206 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 1539 + CKSUM: 0x259a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1351 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xa7335327 + ACK: 0xe46a94c1 + WIN: 32120 + HLEN: 20 + CKSUM: 0xaa0a (CORRECT) + DLEN: 0 +14 packets seen, 14 TCP packets traced +trace file elapsed time: 0:00:16.800000 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 208.200.110.46:1351 - 207.110.0.206:80 (a2b) 7> 7< diff --git a/input/OUTPUTbench/rawip.dmp.gz.short b/input/OUTPUTbench/rawip.dmp.gz.short new file mode 100644 index 0000000..9b3dc04 --- /dev/null +++ b/input/OUTPUTbench/rawip.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'rawip.dmp.gz' + +14 packets seen, 14 TCP packets traced +trace file elapsed time: 0:00:16.800000 +TCP connection info: + 1: 208.200.110.46:1351 - 207.110.0.206:80 (a2b) 7> 7< diff --git a/input/OUTPUTbench/rawip.dmp.gz.xplots.cksum b/input/OUTPUTbench/rawip.dmp.gz.xplots.cksum new file mode 100644 index 0000000..a46e32a --- /dev/null +++ b/input/OUTPUTbench/rawip.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +1316485705 1869 a2b_owin.xpl +3548232052 254 a2b_rtt.xpl +733697130 185 a2b_ssize.xpl +2642179297 149 a2b_tput.xpl +221655046 2139 a2b_tsg.xpl +962312405 2735 a_b_tline.xpl +2147155211 1918 b2a_owin.xpl +362763071 319 b2a_rtt.xpl +1910646826 747 b2a_ssize.xpl +443584676 249 b2a_tput.xpl +14967951 2467 b2a_tsg.xpl diff --git a/input/OUTPUTbench/rawppp.pcap.gz.long b/input/OUTPUTbench/rawppp.pcap.gz.long new file mode 100644 index 0000000..d005e2c --- /dev/null +++ b/input/OUTPUTbench/rawppp.pcap.gz.long @@ -0,0 +1,155 @@ +1 arg remaining, starting with 'rawppp.pcap.gz' + +25 packets seen, 25 TCP packets traced +trace file elapsed time: 0:00:06.002289 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: 172.50.10.3:1026 + host b: 192.168.10.6:21 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Wed Jun 18 06:52:15.003386 2003 + last packet: Wed Jun 18 06:52:17.006419 2003 + elapsed time: 0:00:02.003032 + total packets: 5 + filename: rawppp.pcap.gz + a->b: b->a: + total packets: 3 total packets: 2 + ack pkts sent: 3 ack pkts sent: 2 + pure acks sent: 1 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 37 unique bytes sent: 100 + actual data pkts: 2 actual data pkts: 2 + actual data bytes: 37 actual data bytes: 100 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 2 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 22 bytes max segm size: 70 bytes + min segm size: 15 bytes min segm size: 30 bytes + avg segm size: 18 bytes avg segm size: 49 bytes + max win adv: 17261 bytes max win adv: 65442 bytes + min win adv: 17161 bytes min win adv: 65427 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 17217 bytes avg win adv: 65434 bytes + max owin: 22 bytes max owin: 71 bytes + min non-zero owin: 1 bytes min non-zero owin: 31 bytes + avg owin: 13 bytes avg owin: 51 bytes + wavg owin: 18 bytes wavg owin: 14 bytes + initial window: 22 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 1.002 secs data xmit time: 1.000 secs + idletime max: 3999.3 ms idletime max: 4000.8 ms + throughput: 18 Bps throughput: 50 Bps + + RTT samples: 2 RTT samples: 2 + RTT min: 999.4 ms RTT min: 0.1 ms + RTT max: 1002.0 ms RTT max: 1.5 ms + RTT avg: 1000.7 ms RTT avg: 0.8 ms + RTT stdev: 0.0 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1002.0 ms RTT full_sz min: 1.5 ms + RTT full_sz max: 1002.0 ms RTT full_sz max: 1.5 ms + RTT full_sz avg: 1001.9 ms RTT full_sz avg: 1.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 192.168.10.6:20 + host d: 172.50.10.3:1029 + complete conn: no (SYNs: 2) (FINs: 0) + first packet: Wed Jun 18 06:52:17.004716 2003 + last packet: Wed Jun 18 06:52:21.005675 2003 + elapsed time: 0:00:04.000958 + total packets: 20 + filename: rawppp.pcap.gz + c->d: d->c: + total packets: 11 total packets: 9 + ack pkts sent: 10 ack pkts sent: 9 + pure acks sent: 1 pure acks sent: 8 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 13140 unique bytes sent: 0 + actual data pkts: 9 actual data pkts: 0 + actual data bytes: 13140 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 3 pushed data pkts: 0 + SYN/FIN pkts sent: 1/0 SYN/FIN pkts sent: 1/0 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1460 bytes max segm size: 0 bytes + min segm size: 1460 bytes min segm size: 0 bytes + avg segm size: 1459 bytes avg segm size: 0 bytes + max win adv: 65535 bytes max win adv: 17520 bytes + min win adv: 65535 bytes min win adv: 17520 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 65535 bytes avg win adv: 17520 bytes + max owin: 1461 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1315 bytes avg owin: 1 bytes + wavg owin: 1094 bytes wavg owin: 0 bytes + initial window: 1460 bytes initial window: 0 bytes + initial window: 1 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 0 bytes + truncated packets: 0 pkts truncated packets: 0 pkts + data xmit time: 3.000 secs data xmit time: 0.000 secs + idletime max: 1001.4 ms idletime max: 1991.0 ms + throughput: 3284 Bps throughput: 0 Bps + + RTT samples: 9 RTT samples: 1 + RTT min: 0.0 ms RTT min: 996.5 ms + RTT max: 991.7 ms RTT max: 996.5 ms + RTT avg: 221.2 ms RTT avg: 996.4 ms + RTT stdev: 436.7 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 996.5 ms + + RTT full_sz smpls: 8 RTT full_sz smpls: 1 + RTT full_sz min: 0.0 ms RTT full_sz min: 996.5 ms + RTT full_sz max: 991.7 ms RTT full_sz max: 996.5 ms + RTT full_sz avg: 248.9 ms RTT full_sz avg: 996.4 ms + RTT full_sz stdev: 458.3 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 0 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/rawppp.pcap.gz.packets b/input/OUTPUTbench/rawppp.pcap.gz.packets new file mode 100644 index 0000000..35c89cd --- /dev/null +++ b/input/OUTPUTbench/rawppp.pcap.gz.packets @@ -0,0 +1,674 @@ +1 arg remaining, starting with 'rawppp.pcap.gz' + +Packet 1 + Packet Length: 76 + Collected: Wed Jun 18 06:52:15.003386 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 62 + ID: 94 + CKSUM: 0x7978 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1026 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0xf0919755 + ACK: 0xafa88d75 + WIN: 17261 + HLEN: 20 + CKSUM: 0x090a (CORRECT) + DLEN: 22 + data: 22 bytes +Packet 2 + Packet Length: 84 + Collected: Wed Jun 18 06:52:16.005403 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 70 + ID: 24506 + CKSUM: 0x1b14 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 21 + DPRT: 1026 + FLG: -AP--- (0x18) + SEQ: 0xafa88d75 + ACK: 0xf091976b + WIN: 65442 + HLEN: 20 + CKSUM: 0xa92d (CORRECT) + DLEN: 30 + data: 30 bytes +Packet 3 + Packet Length: 69 + Collected: Wed Jun 18 06:52:16.005472 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 55 + ID: 95 + CKSUM: 0x797e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1026 + DPRT: 21 + FLG: -AP--- (0x18) + SEQ: 0xf091976b + ACK: 0xafa88d93 + WIN: 17231 + HLEN: 20 + CKSUM: 0xcb9b (CORRECT) + DLEN: 15 + data: 15 bytes +Packet 4 + Packet Length: 62 + Collected: Wed Jun 18 06:52:17.004716 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 48 + ID: 24507 + CKSUM: 0x1b29 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: ----S- (0x02) + SEQ: 0xb273457a + ACK: 0x00000000 + WIN: 65535 + HLEN: 28 + CKSUM: 0x0635 (CORRECT) + DLEN: 0 + OPTS: 8 bytes MSS(1460) SACKREQ +Packet 5 + Packet Length: 62 + Collected: Wed Jun 18 06:52:17.004761 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 48 + ID: 96 + CKSUM: 0x7984 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A--S- (0x12) + SEQ: 0xf361b1ca + ACK: 0xb273457b + WIN: 17520 + HLEN: 28 + CKSUM: 0x1c87 (CORRECT) + DLEN: 0 + OPTS: 8 bytes MSS(1460) SACKREQ +Packet 6 + Packet Length: 124 + Collected: Wed Jun 18 06:52:17.004904 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 110 + ID: 24508 + CKSUM: 0x1aea (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 21 + DPRT: 1026 + FLG: -AP--- (0x18) + SEQ: 0xafa88d93 + ACK: 0xf091977a + WIN: 65427 + HLEN: 20 + CKSUM: 0xd5bc (CORRECT) + DLEN: 70 + data: 70 bytes +Packet 7 + Packet Length: 54 + Collected: Wed Jun 18 06:52:17.006419 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 97 + CKSUM: 0x798b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1026 + DPRT: 21 + FLG: -A---- (0x10) + SEQ: 0xf091977a + ACK: 0xafa88dd9 + WIN: 17161 + HLEN: 20 + CKSUM: 0x2242 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 54 + Collected: Wed Jun 18 06:52:18.001226 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 40 + ID: 24509 + CKSUM: 0x1b2f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb273457b + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0x8dbb (CORRECT) + DLEN: 0 +Packet 9 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:18.005432 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24510 + CKSUM: 0x157a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb273457b + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0x9cfb (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 10 + Packet Length: 54 + Collected: Wed Jun 18 06:52:18.007434 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 98 + CKSUM: 0x798a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb2734b2f + WIN: 17520 + HLEN: 20 + CKSUM: 0x4397 (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:18.007992 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24511 + CKSUM: 0x1579 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb2734b2f + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0x6ac3 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 12 + Packet Length: 54 + Collected: Wed Jun 18 06:52:18.009437 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 99 + CKSUM: 0x7989 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb27350e3 + WIN: 17520 + HLEN: 20 + CKSUM: 0x3de3 (CORRECT) + DLEN: 0 +Packet 13 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:19.009352 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24530 + CKSUM: 0x1566 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -AP--- (0x18) + SEQ: 0xb27350e3 + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0x39dc (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 14 + Packet Length: 54 + Collected: Wed Jun 18 06:52:20.000453 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 100 + CKSUM: 0x7988 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb2735697 + WIN: 17520 + HLEN: 20 + CKSUM: 0x382f (CORRECT) + DLEN: 0 +Packet 15 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:20.002055 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24531 + CKSUM: 0x1565 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb2735697 + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0xdf05 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 16 + Packet Length: 54 + Collected: Wed Jun 18 06:52:20.003457 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 101 + CKSUM: 0x7987 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb2735c4b + WIN: 17520 + HLEN: 20 + CKSUM: 0x327b (CORRECT) + DLEN: 0 +Packet 17 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:20.004559 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24532 + CKSUM: 0x1564 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb2735c4b + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0x2b73 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 18 + Packet Length: 54 + Collected: Wed Jun 18 06:52:20.006462 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 102 + CKSUM: 0x7986 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb27361ff + WIN: 17520 + HLEN: 20 + CKSUM: 0x2cc7 (CORRECT) + DLEN: 0 +Packet 19 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:20.007157 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24533 + CKSUM: 0x1563 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -AP--- (0x18) + SEQ: 0xb27361ff + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0xed60 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 20 + Packet Length: 54 + Collected: Wed Jun 18 06:52:20.007202 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 103 + CKSUM: 0x7985 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb27367b3 + WIN: 17520 + HLEN: 20 + CKSUM: 0x2713 (CORRECT) + DLEN: 0 +Packet 21 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:20.009767 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24534 + CKSUM: 0x1562 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb27367b3 + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0xbbf3 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 22 + Packet Length: 54 + Collected: Wed Jun 18 06:52:21.001469 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 104 + CKSUM: 0x7984 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb2736d67 + WIN: 17520 + HLEN: 20 + CKSUM: 0x215f (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:21.002119 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24535 + CKSUM: 0x1561 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -A---- (0x10) + SEQ: 0xb2736d67 + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0x2f12 (CORRECT) + DLEN: 1460 + data: 1460 bytes +Packet 24 + Packet Length: 54 + Collected: Wed Jun 18 06:52:21.003472 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 172.50.10.3 + IP Dest: 192.168.10.6 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 128 + LEN: 40 + ID: 105 + CKSUM: 0x7983 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 1029 + DPRT: 20 + FLG: -A---- (0x10) + SEQ: 0xf361b1cb + ACK: 0xb273731b + WIN: 17520 + HLEN: 20 + CKSUM: 0x1bab (CORRECT) + DLEN: 0 +Packet 25 + Packet Length: 1514 + Collected: Wed Jun 18 06:52:21.005675 2003 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 192.168.10.6 + IP Dest: 172.50.10.3 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 127 + LEN: 1500 + ID: 24536 + CKSUM: 0x1560 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 20 + DPRT: 1029 + FLG: -AP--- (0x18) + SEQ: 0xb273731b + ACK: 0xf361b1cb + WIN: 65535 + HLEN: 20 + CKSUM: 0xb237 (CORRECT) + DLEN: 1460 + data: 1460 bytes +25 packets seen, 25 TCP packets traced +trace file elapsed time: 0:00:06.002289 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 172.50.10.3:1026 - 192.168.10.6:21 (a2b) 3> 2< + 2: 192.168.10.6:20 - 172.50.10.3:1029 (c2d) 11> 9< diff --git a/input/OUTPUTbench/rawppp.pcap.gz.short b/input/OUTPUTbench/rawppp.pcap.gz.short new file mode 100644 index 0000000..422ceb7 --- /dev/null +++ b/input/OUTPUTbench/rawppp.pcap.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'rawppp.pcap.gz' + +25 packets seen, 25 TCP packets traced +trace file elapsed time: 0:00:06.002289 +TCP connection info: + 1: 172.50.10.3:1026 - 192.168.10.6:21 (a2b) 3> 2< + 2: 192.168.10.6:20 - 172.50.10.3:1029 (c2d) 11> 9< diff --git a/input/OUTPUTbench/rawppp.pcap.gz.xplots.cksum b/input/OUTPUTbench/rawppp.pcap.gz.xplots.cksum new file mode 100644 index 0000000..2c3fb13 --- /dev/null +++ b/input/OUTPUTbench/rawppp.pcap.gz.xplots.cksum @@ -0,0 +1,22 @@ +1062439735 961 a2b_owin.xpl +2047343575 255 a2b_rtt.xpl +2084065711 417 a2b_ssize.xpl +1178724566 145 a2b_tput.xpl +3786379241 807 a2b_tsg.xpl +526684084 1081 a_b_tline.xpl +1520832039 609 b2a_owin.xpl +3622743556 242 b2a_rtt.xpl +1609725916 417 b2a_ssize.xpl +2511940963 145 b2a_tput.xpl +196877863 966 b2a_tsg.xpl +19035627 3319 c2d_owin.xpl +3920172075 765 c2d_rtt.xpl +463885084 1592 c2d_ssize.xpl +2830265597 492 c2d_tput.xpl +3580503663 3911 c2d_tsg.xpl +1326354314 4104 c_d_tline.xpl +1342718508 2458 d2c_owin.xpl +1333894907 137 d2c_rtt.xpl +4065587595 122 d2c_ssize.xpl +12014164 113 d2c_tput.xpl +3586696900 2850 d2c_tsg.xpl diff --git a/input/OUTPUTbench/reno.epeek.gz.long b/input/OUTPUTbench/reno.epeek.gz.long new file mode 100644 index 0000000..9e9ca20 --- /dev/null +++ b/input/OUTPUTbench/reno.epeek.gz.long @@ -0,0 +1,80 @@ +1 arg remaining, starting with 'reno.epeek.gz' + +996 packets seen, 996 TCP packets traced +trace file elapsed time: 0:00:08.000000 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.3.145:3999 + host b: 132.235.3.157:1031 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Wed Jul 16 04:14:44.000000 1997 + last packet: Wed Jul 16 04:14:52.000000 1997 + elapsed time: 0:00:08.000000 + total packets: 996 + filename: reno.epeek.gz + a->b: b->a: + total packets: 261 total packets: 735 + ack pkts sent: 261 ack pkts sent: 735 + pure acks sent: 261 pure acks sent: 0 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 0 unique bytes sent: 338100 + actual data pkts: 0 actual data pkts: 735 + actual data bytes: 0 actual data bytes: 338100 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 0 pushed data pkts: 0 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + req 1323 ws/ts: N/Y req 1323 ws/ts: N/Y + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 0 bytes max segm size: 460 bytes + min segm size: 0 bytes min segm size: 460 bytes + avg segm size: 0 bytes avg segm size: 459 bytes + max win adv: 43188 bytes max win adv: 43188 bytes + min win adv: 42958 bytes min win adv: 43188 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 43177 bytes avg win adv: 43188 bytes + max owin: 1 bytes max owin: 26221 bytes + min non-zero owin: 1 bytes min non-zero owin: 23001 bytes + avg owin: 0 bytes avg owin: 24668 bytes + wavg owin: 0 bytes wavg owin: 25098 bytes + initial window: 0 bytes initial window: 0 bytes + initial window: 0 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 313110 bytes + truncated packets: 0 pkts truncated packets: 735 pkts + data xmit time: 0.000 secs data xmit time: 8.000 secs + idletime max: 500.0 ms idletime max: 500.0 ms + throughput: 0 Bps throughput: 42262 Bps + + RTT samples: 0 RTT samples: 241 + RTT min: 0.0 ms RTT min: 500.0 ms + RTT max: 0.0 ms RTT max: 1000.0 ms + RTT avg: 0.0 ms RTT avg: 597.5 ms + RTT stdev: 0.0 ms RTT stdev: 198.5 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 0 RTT full_sz smpls: 241 + RTT full_sz min: 0.0 ms RTT full_sz min: 500.0 ms + RTT full_sz max: 0.0 ms RTT full_sz max: 1000.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 597.5 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 198.5 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 437 + duplicate acks: 0 duplicate acks: 0 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/reno.epeek.gz.packets b/input/OUTPUTbench/reno.epeek.gz.packets new file mode 100644 index 0000000..fc32232 --- /dev/null +++ b/input/OUTPUTbench/reno.epeek.gz.packets @@ -0,0 +1,2680 @@ +1 arg remaining, starting with 'reno.epeek.gz' + +Packet 1 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9007 + CKSUM: 0x4889 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd1746 + WIN: 43188 + HLEN: 32 + CKSUM: 0x6541 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1404) +Packet 2 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22010 + CKSUM: 0x11f2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd6f52 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x643c (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 3 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22011 + CKSUM: 0x11f1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd711e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0f19 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 4 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22012 + CKSUM: 0x11f0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd72ea + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xeaa4 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 5 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9008 + CKSUM: 0x4888 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd1caa + WIN: 43188 + HLEN: 32 + CKSUM: 0x5fdc (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 6 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22013 + CKSUM: 0x11ef (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd74b6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa46c (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 7 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22014 + CKSUM: 0x11ee (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd7682 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x3a76 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 8 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22015 + CKSUM: 0x11ed (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd784e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xb0f1 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 9 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9009 + CKSUM: 0x4887 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd220e + WIN: 43164 + HLEN: 32 + CKSUM: 0x5a90 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 10 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22016 + CKSUM: 0x11ec (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd7a1a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x08b0 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 11 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22017 + CKSUM: 0x11eb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd7be6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xe248 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 12 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22018 + CKSUM: 0x11ea (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd7db2 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0e26 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 13 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9010 + CKSUM: 0x4886 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd25a6 + WIN: 43188 + HLEN: 32 + CKSUM: 0x56e0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 14 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22019 + CKSUM: 0x11e9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd7f7e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xfc5d (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 15 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22020 + CKSUM: 0x11e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd814a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x782e (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 16 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9011 + CKSUM: 0x4885 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd2772 + WIN: 43188 + HLEN: 32 + CKSUM: 0x5514 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 17 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22021 + CKSUM: 0x11e7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd8316 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xc1e7 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 18 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9012 + CKSUM: 0x4884 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd2cd6 + WIN: 43188 + HLEN: 32 + CKSUM: 0x4fb0 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 19 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22022 + CKSUM: 0x11e6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd84e2 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x23c5 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 20 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22023 + CKSUM: 0x11e5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd86ae + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xbd1e (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 21 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22024 + CKSUM: 0x11e4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd887a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x94d5 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 22 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9014 + CKSUM: 0x4882 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd323a + WIN: 43188 + HLEN: 32 + CKSUM: 0x4a4c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 23 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22025 + CKSUM: 0x11e3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd8a46 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x802e (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 24 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22026 + CKSUM: 0x11e2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd8c12 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x3f0d (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 25 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22027 + CKSUM: 0x11e1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd8dde + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0d5a (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 26 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9015 + CKSUM: 0x4881 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd379e + WIN: 43188 + HLEN: 32 + CKSUM: 0x44e8 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 27 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22028 + CKSUM: 0x11e0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd8faa + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0fb7 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 28 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22029 + CKSUM: 0x11df (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd9176 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x11c2 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 29 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22030 + CKSUM: 0x11de (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd9342 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x652f (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 30 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9016 + CKSUM: 0x4880 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd3d02 + WIN: 43188 + HLEN: 32 + CKSUM: 0x3f84 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 31 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22031 + CKSUM: 0x11dd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd950e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x64b2 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 32 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22032 + CKSUM: 0x11dc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd96da + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xc26e (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 33 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22033 + CKSUM: 0x11db (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd98a6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xdf39 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 34 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9017 + CKSUM: 0x487f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd4266 + WIN: 43122 + HLEN: 32 + CKSUM: 0x3a62 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 35 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22034 + CKSUM: 0x11da (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd9a72 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xb578 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 36 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22035 + CKSUM: 0x11d9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd9c3e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x1c70 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 37 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22036 + CKSUM: 0x11d8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd9e0a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x7f21 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 38 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9018 + CKSUM: 0x487e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd45fe + WIN: 43188 + HLEN: 32 + CKSUM: 0x3688 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 39 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22037 + CKSUM: 0x11d7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cd9fd6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x5b7c (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 40 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22038 + CKSUM: 0x11d6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cda1a2 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa376 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 41 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9019 + CKSUM: 0x487d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd47ca + WIN: 43188 + HLEN: 32 + CKSUM: 0x34bc (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1454,1405) +Packet 42 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22039 + CKSUM: 0x11d5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cda36e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x3125 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 43 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9020 + CKSUM: 0x487c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd4d2e + WIN: 43188 + HLEN: 32 + CKSUM: 0x2f57 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 44 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22040 + CKSUM: 0x11d4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cda53a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xe1d9 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 45 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22041 + CKSUM: 0x11d3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cda706 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa4f9 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 46 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22042 + CKSUM: 0x11d2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cda8d2 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x7051 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 47 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9021 + CKSUM: 0x487b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd5292 + WIN: 43188 + HLEN: 32 + CKSUM: 0x29f3 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 48 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22043 + CKSUM: 0x11d1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdaa9e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xe3a8 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 49 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22044 + CKSUM: 0x11d0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdac6a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x9b2a (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 50 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22045 + CKSUM: 0x11cf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdae36 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xe67e (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 51 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9022 + CKSUM: 0x487a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd57f6 + WIN: 43188 + HLEN: 32 + CKSUM: 0x248f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 52 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22046 + CKSUM: 0x11ce (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdb002 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x8210 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 53 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22047 + CKSUM: 0x11cd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdb1ce + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa166 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 54 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22048 + CKSUM: 0x11cc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdb39a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xef77 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1406,1269) + data: 460 bytes +Packet 55 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9023 + CKSUM: 0x4879 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd5d5a + WIN: 43188 + HLEN: 32 + CKSUM: 0x1f2b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 56 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22049 + CKSUM: 0x11cb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdb566 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x7f5c (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 57 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22050 + CKSUM: 0x11ca (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdb732 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xf422 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 58 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22051 + CKSUM: 0x11c9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdb8fe + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xf327 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 59 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9024 + CKSUM: 0x4878 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd62be + WIN: 43080 + HLEN: 32 + CKSUM: 0x1a33 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 60 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22052 + CKSUM: 0x11c8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdbaca + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xb67b (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 61 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22053 + CKSUM: 0x11c7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdbc96 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xbd5d (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 62 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22054 + CKSUM: 0x11c6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdbe62 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0092 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 63 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9025 + CKSUM: 0x4877 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd6656 + WIN: 43188 + HLEN: 32 + CKSUM: 0x162f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 64 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22055 + CKSUM: 0x11c5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdc02e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa54b (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 65 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22056 + CKSUM: 0x11c4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdc1fa + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xb369 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 66 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22057 + CKSUM: 0x11c3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdc3c6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xf3d0 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 67 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9026 + CKSUM: 0x4876 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd69ee + WIN: 42958 + HLEN: 32 + CKSUM: 0x137d (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 68 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22058 + CKSUM: 0x11c2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdc592 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xefaf (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 69 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.000000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22059 + CKSUM: 0x11c1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdc75e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x8201 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 70 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9027 + CKSUM: 0x4875 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd6d86 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0eff (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 71 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22060 + CKSUM: 0x11c0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdc92a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xd037 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 72 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22061 + CKSUM: 0x11bf (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdcaf6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xc42e (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 73 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9028 + CKSUM: 0x4874 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd72ea + WIN: 43188 + HLEN: 32 + CKSUM: 0x099b (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1405) +Packet 74 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22062 + CKSUM: 0x11be (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdccc2 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x15d3 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 75 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22063 + CKSUM: 0x11bd (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdce8e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0265 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 76 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22064 + CKSUM: 0x11bc (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdd05a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x93fa (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 77 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9029 + CKSUM: 0x4873 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd784e + WIN: 43188 + HLEN: 32 + CKSUM: 0x0436 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1406) +Packet 78 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22065 + CKSUM: 0x11bb (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdd226 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xcc1c (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 79 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22066 + CKSUM: 0x11ba (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdd3f2 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x8a10 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 80 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22067 + CKSUM: 0x11b9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdd5be + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x6255 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 81 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9030 + CKSUM: 0x4872 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd7db2 + WIN: 43188 + HLEN: 32 + CKSUM: 0xfed1 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1406) +Packet 82 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22068 + CKSUM: 0x11b8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdd78a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xd42d (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 83 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22069 + CKSUM: 0x11b7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdd956 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0034 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 84 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22070 + CKSUM: 0x11b6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cddb22 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa5ff (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 85 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9031 + CKSUM: 0x4871 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd8316 + WIN: 43038 + HLEN: 32 + CKSUM: 0xfa03 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1406) +Packet 86 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22071 + CKSUM: 0x11b5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cddcee + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x0179 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 87 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22072 + CKSUM: 0x11b4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cddeba + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x7868 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 88 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22073 + CKSUM: 0x11b3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cde086 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x86da (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 89 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9032 + CKSUM: 0x4870 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd84e2 + WIN: 42958 + HLEN: 32 + CKSUM: 0xf887 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1406) +Packet 90 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22074 + CKSUM: 0x11b2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cde252 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x447c (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 91 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9033 + CKSUM: 0x486f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd887a + WIN: 43188 + HLEN: 32 + CKSUM: 0xf409 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1455,1406) +Packet 92 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22075 + CKSUM: 0x11b1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cde41e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x56de (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 93 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22076 + CKSUM: 0x11b0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cde5ea + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xe0c2 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 94 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9034 + CKSUM: 0x486e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd8dde + WIN: 43188 + HLEN: 32 + CKSUM: 0xeea4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1456,1406) +Packet 95 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22077 + CKSUM: 0x11af (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cde7b6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x5520 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 96 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22078 + CKSUM: 0x11ae (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cde982 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x54f1 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 97 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22079 + CKSUM: 0x11ad (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdeb4e + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x222b (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 98 + Packet Length: 70 + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:00:0c:76:c8:d5 + ETH Dest: 00:40:33:21:68:3c + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 62 + LEN: 52 + ID: 9035 + CKSUM: 0x486d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 3999 + DPRT: 1031 + FLG: -A---- (0x10) + SEQ: 0x04de1802 + ACK: 0x04cd9342 + WIN: 43188 + HLEN: 32 + CKSUM: 0xe940 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(1456,1406) +Packet 99 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22080 + CKSUM: 0x11ac (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cded1a + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0x3330 (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +Packet 100 + Packet Length: 530 (saved length 100) + Collected: Wed Jul 16 04:14:44.500000 1997 + ETH Srce: 00:40:33:21:68:3c + ETH Dest: 00:00:0c:76:c8:d5 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 512 + ID: 22081 + CKSUM: 0x11ab (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1031 + DPRT: 3999 + FLG: -A---- (0x10) + SEQ: 0x04cdeee6 + ACK: 0x04de1802 + WIN: 43188 + HLEN: 32 + CKSUM: 0xa39a (too short to verify) + DLEN: 460 (only 34 bytes in dump file) + OPTS: 12 bytes TS(1407,1269) + data: 460 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.500000 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.145:3999 - 132.235.3.157:1031 (a2b) 28> 72< diff --git a/input/OUTPUTbench/reno.epeek.gz.short b/input/OUTPUTbench/reno.epeek.gz.short new file mode 100644 index 0000000..e8d4a36 --- /dev/null +++ b/input/OUTPUTbench/reno.epeek.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'reno.epeek.gz' + +996 packets seen, 996 TCP packets traced +trace file elapsed time: 0:00:08.000000 +TCP connection info: + 1: 132.235.3.145:3999 - 132.235.3.157:1031 (a2b) 261> 735< diff --git a/input/OUTPUTbench/reno.epeek.gz.xplots.cksum b/input/OUTPUTbench/reno.epeek.gz.xplots.cksum new file mode 100644 index 0000000..1781c72 --- /dev/null +++ b/input/OUTPUTbench/reno.epeek.gz.xplots.cksum @@ -0,0 +1,10 @@ +72560888 77722 a2b_owin.xpl +3542955497 127 a2b_ssize.xpl +1446796894 118 a2b_tput.xpl +2910928813 159109 a2b_tsg.xpl +818307098 177887 a_b_tline.xpl +3626207711 244914 b2a_owin.xpl +489076977 18556 b2a_rtt.xpl +1234412206 112571 b2a_ssize.xpl +1652797682 39493 b2a_tput.xpl +3818155573 157598 b2a_tsg.xpl diff --git a/input/OUTPUTbench/sack_nasa_sim.dump.gz.long b/input/OUTPUTbench/sack_nasa_sim.dump.gz.long new file mode 100644 index 0000000..7ac8dc5 --- /dev/null +++ b/input/OUTPUTbench/sack_nasa_sim.dump.gz.long @@ -0,0 +1,92 @@ +1 arg remaining, starting with 'sack_nasa_sim.dump.gz' + +15710 packets seen, 15710 TCP packets traced +trace file elapsed time: 0:02:31.129120 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.3.145:1024 + host b: 132.235.3.157:5001 + complete conn: yes + first packet: Thu Aug 22 14:09:27.357161 1996 + last packet: Thu Aug 22 14:11:58.486281 1996 + elapsed time: 0:02:31.129120 + total packets: 15710 + filename: sack_nasa_sim.dump.gz + a->b: b->a: + total packets: 11597 total packets: 4113 + ack pkts sent: 11596 ack pkts sent: 4113 + pure acks sent: 2 pure acks sent: 4111 + sack pkts sent: 0 sack pkts sent: 179 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 1 + unique bytes sent: 16777216 unique bytes sent: 0 + actual data pkts: 11594 actual data pkts: 0 + actual data bytes: 16787352 actual data bytes: 0 + rexmt data pkts: 7 rexmt data pkts: 0 + rexmt data bytes: 10136 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 2 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req 1323 ws/ts: Y/Y req 1323 ws/ts: Y/Y + adv wind scale: 0 adv wind scale: 1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 179 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1448 bytes max segm size: 0 bytes + min segm size: 996 bytes min segm size: 0 bytes + avg segm size: 1447 bytes avg segm size: 0 bytes + max win adv: 17520 bytes max win adv: 121180 bytes + min win adv: 17520 bytes min win adv: 3892 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 17520 bytes avg win adv: 120711 bytes + max owin: 120185 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 73984 bytes avg owin: 1 bytes + wavg owin: 67137 bytes wavg owin: 0 bytes + initial window: 2896 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: 16777216 bytes ttl stream length: 0 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 15233756 bytes truncated data: 0 bytes + truncated packets: 11594 pkts truncated packets: 0 pkts + data xmit time: 149.877 secs data xmit time: 0.000 secs + idletime max: 621.4 ms idletime max: 559.9 ms + throughput: 111012 Bps throughput: 0 Bps + + RTT samples: 3900 RTT samples: 2 + RTT min: 559.5 ms RTT min: 0.9 ms + RTT max: 907.2 ms RTT max: 0.9 ms + RTT avg: 585.6 ms RTT avg: 0.9 ms + RTT stdev: 20.9 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 559.5 ms RTT from 3WHS: 0.9 ms + + RTT full_sz smpls: 3897 RTT full_sz smpls: 1 + RTT full_sz min: 560.4 ms RTT full_sz min: 0.9 ms + RTT full_sz max: 907.2 ms RTT full_sz max: 0.9 ms + RTT full_sz avg: 585.6 ms RTT full_sz avg: 0.9 ms + RTT full_sz stdev: 20.9 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 3 post-loss acks: 0 + 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. + ambiguous acks: 4 ambiguous acks: 0 + RTT min (last): 561.3 ms RTT min (last): 0.0 ms + RTT max (last): 616.8 ms RTT max (last): 0.0 ms + RTT avg (last): 588.1 ms RTT avg (last): 0.0 ms + RTT sdv (last): 28.3 ms RTT sdv (last): 0.0 ms + segs cum acked: 7681 segs cum acked: 0 + duplicate acks: 169 duplicate acks: 0 + triple dupacks: 3 triple dupacks: 0 + max # retrans: 1 max # retrans: 0 + min retr time: 652.2 ms min retr time: 0.0 ms + max retr time: 969.7 ms max retr time: 0.0 ms + avg retr time: 745.8 ms avg retr time: 0.0 ms + sdv retr time: 153.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/sack_nasa_sim.dump.gz.packets b/input/OUTPUTbench/sack_nasa_sim.dump.gz.packets new file mode 100644 index 0000000..7f9ce4a --- /dev/null +++ b/input/OUTPUTbench/sack_nasa_sim.dump.gz.packets @@ -0,0 +1,2683 @@ +1 arg remaining, starting with 'sack_nasa_sim.dump.gz' + +Packet 1 + Packet Length: 78 + Collected: Thu Aug 22 14:09:27.357161 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 357 + CKSUM: 0x684f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: ----S- (0x02) + SEQ: 0x023f3201 + ACK: 0x00000000 + WIN: 16384 + HLEN: 44 + CKSUM: 0x96e7 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(0) TS(588,0) SACKREQ +Packet 2 + Packet Length: 78 + Collected: Thu Aug 22 14:09:27.916658 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 18716 + CKSUM: 0x2098 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A--S- (0x12) + SEQ: 0x1ac67e01 + ACK: 0x023f3202 + WIN: 65535 + HLEN: 44 + CKSUM: 0x22a8 (CORRECT) + DLEN: 0 + OPTS: 24 bytes MSS(1460) WS(1) TS(7014,588) SACKREQ +Packet 3 + Packet Length: 66 + Collected: Thu Aug 22 14:09:27.917600 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 358 + CKSUM: 0x685a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f3202 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1f01 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(591,7014) +Packet 4 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.022684 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 361 + CKSUM: 0x62af (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f3202 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5abe (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(591,7014) + data: 1448 bytes +Packet 5 + Packet Length: 66 + Collected: Thu Aug 22 14:09:28.476607 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18717 + CKSUM: 0x20a3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f3202 + WIN: 60590 + HLEN: 32 + CKSUM: 0x76c4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7015,588) +Packet 6 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.479568 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 363 + CKSUM: 0x62ad (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f37aa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x7adc (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(592,7014) + data: 1448 bytes +Packet 7 + Packet Length: 66 + Collected: Thu Aug 22 14:09:28.696566 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18719 + CKSUM: 0x20a1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f37aa + WIN: 60590 + HLEN: 32 + CKSUM: 0x7119 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7015,591) +Packet 8 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.699346 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 364 + CKSUM: 0x62ac (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f3d52 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3c5a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(592,7014) + data: 1448 bytes +Packet 9 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:28.700621 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 365 + CKSUM: 0x62ab (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f42fa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5c79 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(592,7014) + data: 1448 bytes +Packet 10 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.096527 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18720 + CKSUM: 0x20a0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f3d52 + WIN: 60590 + HLEN: 32 + CKSUM: 0x6b6f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7016,592) +Packet 11 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.099373 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 366 + CKSUM: 0x62aa (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f48a2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xd7af (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 12 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.100667 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 367 + CKSUM: 0x62a9 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f4e4a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3f75 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 13 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.296624 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18721 + CKSUM: 0x209f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f48a2 + WIN: 60590 + HLEN: 32 + CKSUM: 0x601f (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7016,592) +Packet 14 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.299464 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 368 + CKSUM: 0x62a8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f53f2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x75aa (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 15 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.300753 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 369 + CKSUM: 0x62a7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f599a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3728 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 16 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.302057 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 370 + CKSUM: 0x62a6 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f5f42 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5747 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(593,7014) + data: 1448 bytes +Packet 17 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.687210 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18722 + CKSUM: 0x209e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f53f2 + WIN: 60590 + HLEN: 32 + CKSUM: 0x54cd (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7017,593) +Packet 18 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.690151 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 371 + CKSUM: 0x62a5 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f64ea + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x731e (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(594,7014) + data: 1448 bytes +Packet 19 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.691450 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 372 + CKSUM: 0x62a4 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f6a92 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x525b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(594,7014) + data: 1448 bytes +Packet 20 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.692764 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 373 + CKSUM: 0x62a3 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f703a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x424a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(594,7014) + data: 1448 bytes +Packet 21 + Packet Length: 66 + Collected: Thu Aug 22 14:09:29.876550 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18723 + CKSUM: 0x209d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f64ea + WIN: 60590 + HLEN: 32 + CKSUM: 0x43d4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7018,593) +Packet 22 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.879603 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 374 + CKSUM: 0x62a2 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f75e2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x31f5 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 23 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.881082 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 375 + CKSUM: 0x62a1 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f7b8a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5214 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 24 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.882242 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 376 + CKSUM: 0x62a0 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f8132 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0e8d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 25 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:29.883752 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 377 + CKSUM: 0x629f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f86da + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x4d29 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 26 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.266549 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18724 + CKSUM: 0x209c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f75e2 + WIN: 60590 + HLEN: 32 + CKSUM: 0x32db (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7018,594) +Packet 27 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.269448 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 378 + CKSUM: 0x629e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f8c82 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2702 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 28 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.270759 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 379 + CKSUM: 0x629d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f922a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2cc4 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 29 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.272041 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 380 + CKSUM: 0x629c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f97d2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x4ce3 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 30 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.273310 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 381 + CKSUM: 0x629b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023f9d7a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa9fc (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(595,7014) + data: 1448 bytes +Packet 31 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.456617 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18725 + CKSUM: 0x209b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f86da + WIN: 60590 + HLEN: 32 + CKSUM: 0x21e1 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7019,595) +Packet 32 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.459535 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 382 + CKSUM: 0x629a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fa322 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x47f7 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 33 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.460829 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 383 + CKSUM: 0x6299 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fa8ca + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6816 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 34 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.462154 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 384 + CKSUM: 0x6298 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fae72 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcb35 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 35 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.463437 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 385 + CKSUM: 0x6297 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fb41a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x47b1 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 36 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.496538 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18726 + CKSUM: 0x209a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f8c82 + WIN: 60590 + HLEN: 32 + CKSUM: 0x1c39 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7019,595) +Packet 37 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.499473 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 386 + CKSUM: 0x6296 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fb9c2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x456b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 38 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.500788 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 387 + CKSUM: 0x6295 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fbf6a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x42c6 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(596,7014) + data: 1448 bytes +Packet 39 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.856561 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18727 + CKSUM: 0x2099 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023f9d7a + WIN: 60590 + HLEN: 32 + CKSUM: 0x0b40 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,595) +Packet 40 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.859439 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 388 + CKSUM: 0x6294 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fc512 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x62e4 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 41 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.860768 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 389 + CKSUM: 0x6293 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fcaba + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2462 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 42 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.862077 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 390 + CKSUM: 0x6292 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fd062 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xce0a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 43 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.863354 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 391 + CKSUM: 0x6291 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fd60a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xe0d9 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 44 + Packet Length: 66 + Collected: Thu Aug 22 14:09:30.896589 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18728 + CKSUM: 0x2098 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fa322 + WIN: 60590 + HLEN: 32 + CKSUM: 0x0598 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,595) +Packet 45 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.899454 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 392 + CKSUM: 0x6290 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fdbb2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3d94 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 46 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:30.900748 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 393 + CKSUM: 0x628f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fe15a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5db3 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 47 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.036567 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18729 + CKSUM: 0x2097 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fb41a + WIN: 60590 + HLEN: 32 + CKSUM: 0xf49e (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,596) +Packet 48 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.039482 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 394 + CKSUM: 0x628e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fe702 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1f31 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 49 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.040779 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 395 + CKSUM: 0x628d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023fecaa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xb2c3 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 50 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.042050 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 396 + CKSUM: 0x628c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023ff252 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x7c49 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 51 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.043387 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 397 + CKSUM: 0x628b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023ff7fa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3863 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 52 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.076598 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18730 + CKSUM: 0x2096 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fc512 + WIN: 60590 + HLEN: 32 + CKSUM: 0xe3a6 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7020,596) +Packet 53 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.079519 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 398 + CKSUM: 0x628a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x023ffda2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5882 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 54 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.080839 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 399 + CKSUM: 0x6289 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240034a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1a00 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 55 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.082125 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 400 + CKSUM: 0x6288 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x024008f2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xf93c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 56 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.083410 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 401 + CKSUM: 0x6287 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02400e9a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xb5f8 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(597,7014) + data: 1448 bytes +Packet 57 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.436563 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18731 + CKSUM: 0x2095 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fd60a + WIN: 60590 + HLEN: 32 + CKSUM: 0xd2ac (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 58 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.439461 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 402 + CKSUM: 0x6286 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02401442 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3331 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 59 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.440760 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 403 + CKSUM: 0x6285 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x024019ea + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5350 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 60 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.442056 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 404 + CKSUM: 0x6284 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02401f92 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x14ce (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 61 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.443390 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 405 + CKSUM: 0x6283 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240253a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x94ab (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 62 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.476525 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18732 + CKSUM: 0x2094 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023fe702 + WIN: 60590 + HLEN: 32 + CKSUM: 0xc1b4 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 63 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.479427 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 406 + CKSUM: 0x6282 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02402ae2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6e84 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 64 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.480742 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 407 + CKSUM: 0x6281 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240308a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x5a2c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 65 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.482068 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 408 + CKSUM: 0x6280 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02403632 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x4e1f (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 66 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.483351 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 409 + CKSUM: 0x627f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02403bda + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0f9d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 67 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.616573 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18733 + CKSUM: 0x2093 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x023ff7fa + WIN: 60590 + HLEN: 32 + CKSUM: 0xb0bc (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 68 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.619507 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 410 + CKSUM: 0x627e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02404182 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x301b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 69 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.620805 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 411 + CKSUM: 0x627d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240472a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x6953 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 70 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.622112 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 412 + CKSUM: 0x627c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02404cd2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3ee5 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 71 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.623383 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 413 + CKSUM: 0x627b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240527a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x48ee (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 72 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.656553 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18734 + CKSUM: 0x2092 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02400e9a + WIN: 60590 + HLEN: 32 + CKSUM: 0x9a1c (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 73 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.659496 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 414 + CKSUM: 0x627a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02405822 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0a6c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 74 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.660802 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 415 + CKSUM: 0x6279 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02405dca + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2a8b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 75 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.662058 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 416 + CKSUM: 0x6278 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02406372 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x0522 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 76 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.663354 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 417 + CKSUM: 0x6277 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240691a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x25a0 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 77 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.664667 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 418 + CKSUM: 0x6276 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02406ec2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x41bb (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 78 + Packet Length: 66 + Collected: Thu Aug 22 14:09:31.696613 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18735 + CKSUM: 0x2091 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02401442 + WIN: 60590 + HLEN: 32 + CKSUM: 0x9474 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7021,597) +Packet 79 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.699529 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 419 + CKSUM: 0x6275 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240746a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x053b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 80 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:31.700805 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 420 + CKSUM: 0x6274 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02407a12 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x255a (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(598,7014) + data: 1448 bytes +Packet 81 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.016547 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18736 + CKSUM: 0x2090 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x0240253a + WIN: 60590 + HLEN: 32 + CKSUM: 0x837a (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 82 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.019473 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 421 + CKSUM: 0x6273 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02407fba + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xa090 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 83 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.020761 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 422 + CKSUM: 0x6272 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02408562 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x206e (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 84 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.022031 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 423 + CKSUM: 0x6271 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02408b0a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x408d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 85 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.023317 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 424 + CKSUM: 0x6270 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x024090b2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xe5ee (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 86 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.056496 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18737 + CKSUM: 0x208f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02403bda + WIN: 60590 + HLEN: 32 + CKSUM: 0x6cda (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 87 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.059462 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 425 + CKSUM: 0x626f (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240965a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x2028 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 88 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.060750 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 426 + CKSUM: 0x626e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x02409c02 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3c00 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 89 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.062234 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 427 + CKSUM: 0x626d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240a1aa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1b3d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 90 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.063407 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 428 + CKSUM: 0x626c (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240a752 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x3b5c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 91 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.064914 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 429 + CKSUM: 0x626b (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240acfa + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcaa7 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 92 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.096525 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18738 + CKSUM: 0x208e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02404182 + WIN: 60590 + HLEN: 32 + CKSUM: 0x6732 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 93 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.099467 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 430 + CKSUM: 0x626a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240b2a2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x1af7 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 94 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.100935 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 431 + CKSUM: 0x6269 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240b84a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xd76f (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 95 + Packet Length: 66 + Collected: Thu Aug 22 14:09:32.216514 1996 + ETH Srce: 02:60:8c:8f:84:12 + ETH Dest: 00:00:e8:a0:06:15 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.157 + IP Dest: 132.235.3.145 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 52 + ID: 18739 + CKSUM: 0x208d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 5001 + DPRT: 1024 + FLG: -A---- (0x10) + SEQ: 0x1ac67e02 + ACK: 0x02405822 + WIN: 60590 + HLEN: 32 + CKSUM: 0x5092 (CORRECT) + DLEN: 0 + OPTS: 12 bytes TS(7022,598) +Packet 96 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.219490 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 432 + CKSUM: 0x6268 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240bdf2 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x160c (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 97 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.220719 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 433 + CKSUM: 0x6267 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240c39a + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x362b (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 98 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.222067 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 434 + CKSUM: 0x6266 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240c942 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xf7a8 (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 99 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.223393 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 435 + CKSUM: 0x6265 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240ceea + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0xcd7d (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +Packet 100 + Packet Length: 1514 (saved length 200) + Collected: Thu Aug 22 14:09:32.224699 1996 + ETH Srce: 00:00:e8:a0:06:15 + ETH Dest: 02:60:8c:8f:84:12 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.145 + IP Dest: 132.235.3.157 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 436 + CKSUM: 0x6264 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 1024 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x0240d492 + ACK: 0x1ac67e02 + WIN: 17520 + HLEN: 32 + CKSUM: 0x72df (too short to verify) + DLEN: 1448 (only 134 bytes in dump file) + OPTS: 12 bytes TS(599,7014) + data: 1448 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:04.867537 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.145:1024 - 132.235.3.157:5001 (a2b) 77> 23< diff --git a/input/OUTPUTbench/sack_nasa_sim.dump.gz.short b/input/OUTPUTbench/sack_nasa_sim.dump.gz.short new file mode 100644 index 0000000..9a61849 --- /dev/null +++ b/input/OUTPUTbench/sack_nasa_sim.dump.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'sack_nasa_sim.dump.gz' + +15710 packets seen, 15710 TCP packets traced +trace file elapsed time: 0:02:31.129120 +TCP connection info: + 1: 132.235.3.145:1024 - 132.235.3.157:5001 (a2b) 11597> 4113< (complete) diff --git a/input/OUTPUTbench/sack_nasa_sim.dump.gz.xplots.cksum b/input/OUTPUTbench/sack_nasa_sim.dump.gz.xplots.cksum new file mode 100644 index 0000000..d16935d --- /dev/null +++ b/input/OUTPUTbench/sack_nasa_sim.dump.gz.xplots.cksum @@ -0,0 +1,11 @@ +4158003597 258578 a2b_owin.xpl +2781120016 17732 a2b_rtt.xpl +2453265213 121431 a2b_ssize.xpl +1552950510 40775 a2b_tput.xpl +3294024462 155089 a2b_tsg.xpl +1789200913 180963 a_b_tline.xpl +545167068 69723 b2a_owin.xpl +803335463 139 b2a_rtt.xpl +2207219268 127 b2a_ssize.xpl +4034901542 118 b2a_tput.xpl +3042990778 167965 b2a_tsg.xpl diff --git a/input/OUTPUTbench/single_byte_rexmit.dmp.gz.long b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.long new file mode 100644 index 0000000..ffa4dfb --- /dev/null +++ b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.long @@ -0,0 +1,89 @@ +1 arg remaining, starting with 'single_byte_rexmit.dmp.gz' + +27 packets seen, 27 TCP packets traced +trace file elapsed time: 0:00:28.928446 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 30.229.118.67:37143 + host b: 67.82.9.253:80 + complete conn: RESET + first packet: Mon Nov 27 10:58:29.650694 2000 + last packet: Mon Nov 27 10:58:58.579141 2000 + elapsed time: 0:00:28.928446 + total packets: 27 + filename: single_byte_rexmit.dmp.gz + a->b: b->a: + total packets: 15 total packets: 12 + resets sent: 1 resets sent: 0 + ack pkts sent: 13 ack pkts sent: 12 + pure acks sent: 7 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 1322 unique bytes sent: 7273 + actual data pkts: 5 actual data pkts: 8 + actual data bytes: 1615 actual data bytes: 8733 + rexmt data pkts: 1 rexmt data pkts: 2 + rexmt data bytes: 293 rexmt data bytes: 1461 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 1 + pushed data pkts: 5 pushed data pkts: 8 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/2 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 344 bytes max segm size: 1460 bytes + min segm size: 293 bytes min segm size: 418 bytes + avg segm size: 322 bytes avg segm size: 1091 bytes + max win adv: 8760 bytes max win adv: 32120 bytes + min win adv: 8760 bytes min win adv: 31827 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 8176 bytes avg win adv: 32095 bytes + max owin: 345 bytes max owin: 2921 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 139 bytes avg owin: 1144 bytes + wavg owin: 105 bytes wavg owin: 1306 bytes + initial window: 293 bytes initial window: 2920 bytes + initial window: 1 pkts initial window: 2 pkts + ttl stream length: 1323 bytes ttl stream length: 7273 bytes + missed data: 1 bytes missed data: 0 bytes + truncated data: 1420 bytes truncated data: 8421 bytes + truncated packets: 5 pkts truncated packets: 8 pkts + data xmit time: 18.748 secs data xmit time: 22.985 secs + idletime max: 7279.5 ms idletime max: 6176.1 ms + throughput: 46 Bps throughput: 251 Bps + + RTT samples: 4 RTT samples: 5 + RTT min: 971.0 ms RTT min: 257.3 ms + RTT max: 1314.9 ms RTT max: 759.7 ms + RTT avg: 1079.4 ms RTT avg: 463.3 ms + RTT stdev: 158.8 ms RTT stdev: 182.9 ms + + RTT from 3WHS: 1001.9 ms RTT from 3WHS: 424.4 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 1314.9 ms RTT full_sz min: 455.4 ms + RTT full_sz max: 1314.9 ms RTT full_sz max: 455.4 ms + RTT full_sz avg: 1314.8 ms RTT full_sz avg: 455.4 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 1 + 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. + ambiguous acks: 1 ambiguous acks: 0 + RTT min (last): 1076.2 ms RTT min (last): 0.0 ms + RTT max (last): 1076.2 ms RTT max (last): 0.0 ms + RTT avg (last): 1076.1 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 1 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 3 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 1 max # retrans: 1 + min retr time: 3284.2 ms min retr time: 6176.1 ms + max retr time: 3284.2 ms max retr time: 6176.1 ms + avg retr time: 3283.8 ms avg retr time: 6175.4 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/single_byte_rexmit.dmp.gz.packets b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.packets new file mode 100644 index 0000000..3c47242 --- /dev/null +++ b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.packets @@ -0,0 +1,724 @@ +1 arg remaining, starting with 'single_byte_rexmit.dmp.gz' + +Packet 1 + Packet Length: 65 + Collected: Mon Nov 27 10:58:29.650694 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 44 + ID: 3365 + CKSUM: 0xa944 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: ----S- (0x02) + SEQ: 0xda56fc08 + ACK: 0x00000000 + WIN: 8760 + HLEN: 24 + CKSUM: 0x44c5 (WRONG) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 2 + Packet Length: 65 + Collected: Mon Nov 27 10:58:30.652604 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 44 + ID: 10282 + CKSUM: 0x5e40 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -A--S- (0x12) + SEQ: 0xddc46a04 + ACK: 0xda56fc09 + WIN: 32120 + HLEN: 24 + CKSUM: 0xa1aa (WRONG) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 61 + Collected: Mon Nov 27 10:58:31.077024 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3368 + CKSUM: 0xa945 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56fc09 + ACK: 0xddc46a05 + WIN: 8760 + HLEN: 20 + CKSUM: 0x14a8 (WRONG) + DLEN: 0 +Packet 4 + Packet Length: 354 (saved length 100) + Collected: Mon Nov 27 10:58:31.120070 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 333 + ID: 3369 + CKSUM: 0xa81f (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xda56fc09 + ACK: 0xddc46a05 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf907 (too short to verify) + DLEN: 293 (only 39 bytes in dump file) + data: 293 bytes +Packet 5 + Packet Length: 354 (saved length 100) + Collected: Mon Nov 27 10:58:34.404240 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 333 + ID: 3381 + CKSUM: 0xa813 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xda56fc09 + ACK: 0xddc46a05 + WIN: 8760 + HLEN: 20 + CKSUM: 0xf907 (too short to verify) + DLEN: 293 (only 39 bytes in dump file) + data: 293 bytes +Packet 6 + Packet Length: 61 + Collected: Mon Nov 27 10:58:35.480460 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 40 + ID: 10356 + CKSUM: 0x5dfa (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -A---- (0x10) + SEQ: 0xddc46a05 + ACK: 0xda56fd2e + WIN: 31827 + HLEN: 20 + CKSUM: 0xb967 (WRONG) + DLEN: 0 +Packet 7 + Packet Length: 1521 (saved length 100) + Collected: Mon Nov 27 10:58:35.520376 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 1500 + ID: 10359 + CKSUM: 0x5843 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc46fb9 + ACK: 0xda56fd2e + WIN: 32120 + HLEN: 20 + CKSUM: 0x31f4 (too short to verify) + DLEN: 1460 (only 39 bytes in dump file) + data: 1460 bytes +Packet 8 + Packet Length: 61 + Collected: Mon Nov 27 10:58:36.310348 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3387 + CKSUM: 0xa932 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56fd2e + ACK: 0xddc46a05 + WIN: 8760 + HLEN: 20 + CKSUM: 0x1383 (WRONG) + DLEN: 0 +Packet 9 + Packet Length: 1521 (saved length 100) + Collected: Mon Nov 27 10:58:38.474288 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 1500 + ID: 10386 + CKSUM: 0x5828 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc46a05 + ACK: 0xda56fd2e + WIN: 32120 + HLEN: 20 + CKSUM: 0x5420 (too short to verify) + DLEN: 1460 (only 39 bytes in dump file) + data: 1460 bytes +Packet 10 + Packet Length: 61 + Collected: Mon Nov 27 10:58:38.680269 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3390 + CKSUM: 0xa92f (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56fd2e + ACK: 0xddc4756d + WIN: 8760 + HLEN: 20 + CKSUM: 0x081b (WRONG) + DLEN: 0 +Packet 11 + Packet Length: 1521 (saved length 100) + Collected: Mon Nov 27 10:58:44.497519 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 1500 + ID: 10442 + CKSUM: 0x57f0 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc46a05 + ACK: 0xda56fd2e + WIN: 32120 + HLEN: 20 + CKSUM: 0x5420 (too short to verify) + DLEN: 1460 (only 39 bytes in dump file) + data: 1460 bytes +Packet 12 + Packet Length: 61 + Collected: Mon Nov 27 10:58:44.945748 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3391 + CKSUM: 0xa92e (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56fd2e + ACK: 0xddc4756d + WIN: 8760 + HLEN: 20 + CKSUM: 0x081b (WRONG) + DLEN: 0 +Packet 13 + Packet Length: 1330 (saved length 100) + Collected: Mon Nov 27 10:58:45.897819 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 1309 + ID: 10449 + CKSUM: 0x58a8 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc4756d + ACK: 0xda56fd2e + WIN: 32120 + HLEN: 20 + CKSUM: 0xb333 (too short to verify) + DLEN: 1269 (only 39 bytes in dump file) + data: 1269 bytes +Packet 14 + Packet Length: 61 + Collected: Mon Nov 27 10:58:46.317567 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3393 + CKSUM: 0xa92c (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56fd2e + ACK: 0xddc47a62 + WIN: 8760 + HLEN: 20 + CKSUM: 0x0326 (WRONG) + DLEN: 0 +Packet 15 + Packet Length: 405 (saved length 100) + Collected: Mon Nov 27 10:58:46.501335 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 384 + ID: 3397 + CKSUM: 0xa7d0 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xda56fd2e + ACK: 0xddc47a62 + WIN: 8760 + HLEN: 20 + CKSUM: 0x5719 (too short to verify) + DLEN: 344 (only 39 bytes in dump file) + data: 344 bytes +Packet 16 + Packet Length: 1521 (saved length 100) + Collected: Mon Nov 27 10:58:47.816276 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 1500 + ID: 10455 + CKSUM: 0x57e3 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc47a62 + ACK: 0xda56fe86 + WIN: 32120 + HLEN: 20 + CKSUM: 0x1e11 (too short to verify) + DLEN: 1460 (only 39 bytes in dump file) + data: 1460 bytes +Packet 17 + Packet Length: 849 (saved length 100) + Collected: Mon Nov 27 10:58:47.820123 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 828 + ID: 10456 + CKSUM: 0x5a82 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc48016 + ACK: 0xda56fe86 + WIN: 32120 + HLEN: 20 + CKSUM: 0x1aa6 (too short to verify) + DLEN: 788 (only 39 bytes in dump file) + data: 788 bytes +Packet 18 + Packet Length: 61 + Collected: Mon Nov 27 10:58:48.271721 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3402 + CKSUM: 0xa923 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56fe86 + ACK: 0xddc48016 + WIN: 8760 + HLEN: 20 + CKSUM: 0xfc19 (WRONG) + DLEN: 0 +Packet 19 + Packet Length: 403 (saved length 100) + Collected: Mon Nov 27 10:58:48.579812 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 382 + ID: 3403 + CKSUM: 0xa7cc (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xda56fe86 + ACK: 0xddc4832a + WIN: 8760 + HLEN: 20 + CKSUM: 0xaf59 (too short to verify) + DLEN: 342 (only 39 bytes in dump file) + data: 342 bytes +Packet 20 + Packet Length: 479 (saved length 100) + Collected: Mon Nov 27 10:58:49.550854 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 458 + ID: 10477 + CKSUM: 0x5bdf (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--- (0x18) + SEQ: 0xddc4832a + ACK: 0xda56ffdc + WIN: 32120 + HLEN: 20 + CKSUM: 0x2ae9 (too short to verify) + DLEN: 418 (only 39 bytes in dump file) + data: 418 bytes +Packet 21 + Packet Length: 61 + Collected: Mon Nov 27 10:58:49.808129 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3406 + CKSUM: 0xa91f (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---- (0x10) + SEQ: 0xda56ffdc + ACK: 0xddc484cc + WIN: 8760 + HLEN: 20 + CKSUM: 0xf60d (WRONG) + DLEN: 0 +Packet 22 + Packet Length: 404 (saved length 100) + Collected: Mon Nov 27 10:58:49.868108 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 383 + ID: 3407 + CKSUM: 0xa7c7 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -AP--- (0x18) + SEQ: 0xda56ffdc + ACK: 0xddc484cc + WIN: 8760 + HLEN: 20 + CKSUM: 0x6039 (too short to verify) + DLEN: 343 (only 39 bytes in dump file) + data: 343 bytes +Packet 23 + Packet Length: 61 + Collected: Mon Nov 27 10:58:51.299616 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3416 + CKSUM: 0xa915 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: -A---F (0x11) + SEQ: 0xda570133 + ACK: 0xddc484cc + WIN: 8760 + HLEN: 20 + CKSUM: 0xf4b5 (WRONG) + DLEN: 0 +Packet 24 + Packet Length: 61 + Collected: Mon Nov 27 10:58:52.329334 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 40 + ID: 10525 + CKSUM: 0x5d51 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -A---- (0x10) + SEQ: 0xddc4866e + ACK: 0xda570134 + WIN: 32120 + HLEN: 20 + CKSUM: 0x97d3 (WRONG) + DLEN: 0 +Packet 25 + Packet Length: 61 + Collected: Mon Nov 27 10:58:52.329341 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 40 + ID: 10526 + CKSUM: 0x5d50 (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -A---F (0x11) + SEQ: 0xddc4866e + ACK: 0xda570134 + WIN: 32120 + HLEN: 20 + CKSUM: 0x97d2 (WRONG) + DLEN: 0 +Packet 26 + Packet Length: 479 (saved length 100) + Collected: Mon Nov 27 10:58:58.505406 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 67.82.9.253 + IP Dest: 30.229.118.67 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 43 + LEN: 458 + ID: 10641 + CKSUM: 0x5b3b (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 80 + DPRT: 37143 + FLG: -AP--F (0x19) + SEQ: 0xddc484cc + ACK: 0xda570134 + WIN: 32120 + HLEN: 20 + CKSUM: 0xe6a2 (too short to verify) + DLEN: 418 (only 39 bytes in dump file) + data: 418 bytes +Packet 27 + Packet Length: 61 + Collected: Mon Nov 27 10:58:58.579141 2000 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 30.229.118.67 + IP Dest: 67.82.9.253 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 251 + LEN: 40 + ID: 3443 + CKSUM: 0xa8fa (WRONG) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 37143 + DPRT: 80 + FLG: ---R-- (0x04) + SEQ: 0xda570134 + ACK: 0x00000000 + WIN: 8760 + HLEN: 20 + CKSUM: 0x5753 (WRONG) + DLEN: 0 +27 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:28.928446 +bad IP checksums: 27 +bad TCP checksums: 0 +no traced TCP packets diff --git a/input/OUTPUTbench/single_byte_rexmit.dmp.gz.short b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.short new file mode 100644 index 0000000..d4874ca --- /dev/null +++ b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'single_byte_rexmit.dmp.gz' + +27 packets seen, 27 TCP packets traced +trace file elapsed time: 0:00:28.928446 +TCP connection info: + 1: 30.229.118.67:37143 - 67.82.9.253:80 (a2b) 15> 12< (complete) (reset) diff --git a/input/OUTPUTbench/single_byte_rexmit.dmp.gz.xplots.cksum b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.xplots.cksum new file mode 100644 index 0000000..1ee0ba4 --- /dev/null +++ b/input/OUTPUTbench/single_byte_rexmit.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +854560622 3733 a2b_owin.xpl +3314766980 409 a2b_rtt.xpl +1423665706 878 a2b_ssize.xpl +3324365542 273 a2b_tput.xpl +619328663 4543 a2b_tsg.xpl +1615509946 5167 a_b_tline.xpl +1363736840 2560 b2a_owin.xpl +2507059993 477 b2a_rtt.xpl +3871186196 1375 b2a_ssize.xpl +3607804632 373 b2a_tput.xpl +2147416066 5025 b2a_tsg.xpl diff --git a/input/OUTPUTbench/tcp.dmp.gz.long b/input/OUTPUTbench/tcp.dmp.gz.long new file mode 100644 index 0000000..0f88ef9 --- /dev/null +++ b/input/OUTPUTbench/tcp.dmp.gz.long @@ -0,0 +1,153 @@ +1 arg remaining, starting with 'tcp.dmp.gz' + +20 packets seen, 20 TCP packets traced +trace file elapsed time: 0:00:01.426237 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: 132.235.3.128:34552 + host b: 132.235.1.2:79 + complete conn: yes + first packet: Fri Aug 14 14:44:41.664066 1998 + last packet: Fri Aug 14 14:44:41.807920 1998 + elapsed time: 0:00:00.143854 + total packets: 10 + filename: tcp.dmp.gz + a->b: b->a: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 24 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 2 actual data bytes: 24 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1326 bytes mss requested: 1460 bytes + max segm size: 2 bytes max segm size: 24 bytes + min segm size: 2 bytes min segm size: 24 bytes + avg segm size: 1 bytes avg segm size: 23 bytes + max win adv: 9282 bytes max win adv: 4096 bytes + min win adv: 9282 bytes min win adv: 4094 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9282 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 25 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 13 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 2 bytes initial window: 24 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 2 bytes ttl stream length: 24 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 10 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 134.7 ms idletime max: 120.1 ms + throughput: 14 Bps throughput: 167 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 118.7 ms RTT max: 0.2 ms + RTT avg: 41.2 ms RTT avg: 0.1 ms + RTT stdev: 67.1 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 118.7 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 118.7 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 118.7 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.3.128:34553 + host d: 132.235.1.2:79 + complete conn: yes + first packet: Fri Aug 14 14:44:42.951344 1998 + last packet: Fri Aug 14 14:44:43.090304 1998 + elapsed time: 0:00:00.138960 + total packets: 10 + filename: tcp.dmp.gz + c->d: d->c: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 24 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 2 actual data bytes: 24 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1326 bytes mss requested: 1460 bytes + max segm size: 2 bytes max segm size: 24 bytes + min segm size: 2 bytes min segm size: 24 bytes + avg segm size: 1 bytes avg segm size: 23 bytes + max win adv: 9282 bytes max win adv: 4096 bytes + min win adv: 9282 bytes min win adv: 4094 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9282 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 25 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 13 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 2 bytes initial window: 24 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 2 bytes ttl stream length: 24 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 10 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 130.0 ms idletime max: 97.5 ms + throughput: 14 Bps throughput: 173 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 1.5 ms RTT min: 0.1 ms + RTT max: 32.0 ms RTT max: 0.1 ms + RTT avg: 11.8 ms RTT avg: 0.1 ms + RTT stdev: 17.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 32.0 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 32.0 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 32.0 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/tcp.dmp.gz.packets b/input/OUTPUTbench/tcp.dmp.gz.packets new file mode 100644 index 0000000..c714d68 --- /dev/null +++ b/input/OUTPUTbench/tcp.dmp.gz.packets @@ -0,0 +1,527 @@ +1 arg remaining, starting with 'tcp.dmp.gz' + +Packet 1 + Packet Length: 58 + Collected: Fri Aug 14 14:44:41.664066 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 52661 + CKSUM: 0x9fbd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: ----S- (0x02) + SEQ: 0x7c8a9ea1 + ACK: 0x00000000 + WIN: 9282 + HLEN: 24 + CKSUM: 0xc39e (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1326) +Packet 2 + Packet Length: 60 + Collected: Fri Aug 14 14:44:41.665896 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 48222 + CKSUM: 0xb515 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A--S- (0x12) + SEQ: 0x76213600 + ACK: 0x7c8a9ea2 + WIN: 4096 + HLEN: 24 + CKSUM: 0x2b28 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 3 + Packet Length: 54 + Collected: Fri Aug 14 14:44:41.665975 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52662 + CKSUM: 0x9fc0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8a9ea2 + ACK: 0x76213601 + WIN: 9282 + HLEN: 20 + CKSUM: 0x2ea3 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 56 + Collected: Fri Aug 14 14:44:41.667295 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 42 + ID: 52663 + CKSUM: 0x9fbd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0x7c8a9ea2 + ACK: 0x76213601 + WIN: 9282 + HLEN: 20 + CKSUM: 0x218f (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 5 + Packet Length: 60 + Collected: Fri Aug 14 14:44:41.785964 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48230 + CKSUM: 0xb511 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A---- (0x10) + SEQ: 0x76213601 + ACK: 0x7c8a9ea4 + WIN: 4094 + HLEN: 20 + CKSUM: 0x42e5 (CORRECT) + DLEN: 0 +Packet 6 + Packet Length: 78 (saved length 68) + Collected: Fri Aug 14 14:44:41.801142 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 64 + ID: 48232 + CKSUM: 0xb4f7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -AP--- (0x18) + SEQ: 0x76213601 + ACK: 0x7c8a9ea4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x1d5d (too short to verify) + DLEN: 24 (only 14 bytes in dump file) + data: 24 bytes +Packet 7 + Packet Length: 60 + Collected: Fri Aug 14 14:44:41.801824 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48233 + CKSUM: 0xb50e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A---F (0x11) + SEQ: 0x76213619 + ACK: 0x7c8a9ea4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x42ca (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 54 + Collected: Fri Aug 14 14:44:41.802015 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52664 + CKSUM: 0x9fbe (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8a9ea4 + ACK: 0x7621361a + WIN: 9282 + HLEN: 20 + CKSUM: 0x2e88 (CORRECT) + DLEN: 0 +Packet 9 + Packet Length: 54 + Collected: Fri Aug 14 14:44:41.804710 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52665 + CKSUM: 0x9fbd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -A---F (0x11) + SEQ: 0x7c8a9ea4 + ACK: 0x7621361a + WIN: 9282 + HLEN: 20 + CKSUM: 0x2e87 (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 60 + Collected: Fri Aug 14 14:44:41.807920 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48234 + CKSUM: 0xb50d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A---- (0x10) + SEQ: 0x7621361a + ACK: 0x7c8a9ea5 + WIN: 4096 + HLEN: 20 + CKSUM: 0x42c9 (CORRECT) + DLEN: 0 +Packet 11 + Packet Length: 58 + Collected: Fri Aug 14 14:44:42.951344 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 52666 + CKSUM: 0x9fb8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: ----S- (0x02) + SEQ: 0x7c8efb54 + ACK: 0x00000000 + WIN: 9282 + HLEN: 24 + CKSUM: 0x66e6 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1326) +Packet 12 + Packet Length: 60 + Collected: Fri Aug 14 14:44:42.953150 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 48236 + CKSUM: 0xb507 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A--S- (0x12) + SEQ: 0x76242400 + ACK: 0x7c8efb55 + WIN: 4096 + HLEN: 24 + CKSUM: 0xe06c (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 13 + Packet Length: 54 + Collected: Fri Aug 14 14:44:42.953213 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52667 + CKSUM: 0x9fbb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8efb55 + ACK: 0x76242401 + WIN: 9282 + HLEN: 20 + CKSUM: 0xe3e7 (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 56 + Collected: Fri Aug 14 14:44:42.954522 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 42 + ID: 52668 + CKSUM: 0x9fb8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0x7c8efb55 + ACK: 0x76242401 + WIN: 9282 + HLEN: 20 + CKSUM: 0xd6d3 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 15 + Packet Length: 60 + Collected: Fri Aug 14 14:44:42.986517 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48237 + CKSUM: 0xb50a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A---- (0x10) + SEQ: 0x76242401 + ACK: 0x7c8efb57 + WIN: 4094 + HLEN: 20 + CKSUM: 0xf829 (CORRECT) + DLEN: 0 +Packet 16 + Packet Length: 78 (saved length 68) + Collected: Fri Aug 14 14:44:43.084037 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 64 + ID: 48247 + CKSUM: 0xb4e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -AP--- (0x18) + SEQ: 0x76242401 + ACK: 0x7c8efb57 + WIN: 4096 + HLEN: 20 + CKSUM: 0xd2a1 (too short to verify) + DLEN: 24 (only 14 bytes in dump file) + data: 24 bytes +Packet 17 + Packet Length: 60 + Collected: Fri Aug 14 14:44:43.084433 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48248 + CKSUM: 0xb4ff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A---F (0x11) + SEQ: 0x76242419 + ACK: 0x7c8efb57 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf80e (CORRECT) + DLEN: 0 +Packet 18 + Packet Length: 54 + Collected: Fri Aug 14 14:44:43.084529 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52669 + CKSUM: 0x9fb9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8efb57 + ACK: 0x7624241a + WIN: 9282 + HLEN: 20 + CKSUM: 0xe3cc (CORRECT) + DLEN: 0 +Packet 19 + Packet Length: 54 + Collected: Fri Aug 14 14:44:43.088845 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 00:00:0c:76:3d:c7 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52670 + CKSUM: 0x9fb8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -A---F (0x11) + SEQ: 0x7c8efb57 + ACK: 0x7624241a + WIN: 9282 + HLEN: 20 + CKSUM: 0xe3cb (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 60 + Collected: Fri Aug 14 14:44:43.090304 1998 + ETH Srce: 00:00:0c:76:3d:c7 + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48249 + CKSUM: 0xb4fe (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A---- (0x10) + SEQ: 0x7624241a + ACK: 0x7c8efb58 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf80d (CORRECT) + DLEN: 0 +20 packets seen, 20 TCP packets traced +trace file elapsed time: 0:00:01.426237 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.128:34552 - 132.235.1.2:79 (a2b) 5> 5< (complete) + 2: 132.235.3.128:34553 - 132.235.1.2:79 (c2d) 5> 5< (complete) diff --git a/input/OUTPUTbench/tcp.dmp.gz.short b/input/OUTPUTbench/tcp.dmp.gz.short new file mode 100644 index 0000000..8bffd29 --- /dev/null +++ b/input/OUTPUTbench/tcp.dmp.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'tcp.dmp.gz' + +20 packets seen, 20 TCP packets traced +trace file elapsed time: 0:00:01.426237 +TCP connection info: + 1: 132.235.3.128:34552 - 132.235.1.2:79 (a2b) 5> 5< (complete) + 2: 132.235.3.128:34553 - 132.235.1.2:79 (c2d) 5> 5< (complete) diff --git a/input/OUTPUTbench/tcp.dmp.gz.xplots.cksum b/input/OUTPUTbench/tcp.dmp.gz.xplots.cksum new file mode 100644 index 0000000..0a07718 --- /dev/null +++ b/input/OUTPUTbench/tcp.dmp.gz.xplots.cksum @@ -0,0 +1,22 @@ +3376782098 1169 a2b_owin.xpl +2303748476 316 a2b_rtt.xpl +3856015275 179 a2b_ssize.xpl +1215768380 147 a2b_tput.xpl +4136036333 1736 a2b_tsg.xpl +2043571071 1966 a_b_tline.xpl +2849157280 1184 b2a_owin.xpl +1211502431 206 b2a_rtt.xpl +224835002 181 b2a_ssize.xpl +1939414404 147 b2a_tput.xpl +1866233460 1517 b2a_tsg.xpl +1162760692 1169 c2d_owin.xpl +2526421976 313 c2d_rtt.xpl +505474007 179 c2d_ssize.xpl +3370185235 147 c2d_tput.xpl +1559502434 1736 c2d_tsg.xpl +937548729 2005 c_d_tline.xpl +706434989 1184 d2c_owin.xpl +1214418724 206 d2c_rtt.xpl +2288690501 181 d2c_ssize.xpl +799021532 147 d2c_tput.xpl +3499975881 1517 d2c_tsg.xpl diff --git a/input/OUTPUTbench/tcpudp.dmp.gz.long b/input/OUTPUTbench/tcpudp.dmp.gz.long new file mode 100644 index 0000000..a241e9c --- /dev/null +++ b/input/OUTPUTbench/tcpudp.dmp.gz.long @@ -0,0 +1,153 @@ +1 arg remaining, starting with 'tcpudp.dmp.gz' + +40 packets seen, 20 TCP packets traced +trace file elapsed time: 1:52:15.386000 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: 132.235.3.128:34552 + host b: 132.235.1.2:79 + complete conn: yes + first packet: Fri Aug 14 14:44:41.664066 1998 + last packet: Fri Aug 14 14:44:41.807920 1998 + elapsed time: 0:00:00.143854 + total packets: 10 + filename: tcpudp.dmp.gz + a->b: b->a: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 24 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 2 actual data bytes: 24 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1326 bytes mss requested: 1460 bytes + max segm size: 2 bytes max segm size: 24 bytes + min segm size: 2 bytes min segm size: 24 bytes + avg segm size: 1 bytes avg segm size: 23 bytes + max win adv: 9282 bytes max win adv: 4096 bytes + min win adv: 9282 bytes min win adv: 4094 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9282 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 25 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 13 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 2 bytes initial window: 24 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 2 bytes ttl stream length: 24 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 10 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 134.7 ms idletime max: 120.1 ms + throughput: 14 Bps throughput: 167 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 1.8 ms RTT min: 0.1 ms + RTT max: 118.7 ms RTT max: 0.2 ms + RTT avg: 41.2 ms RTT avg: 0.1 ms + RTT stdev: 67.1 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 118.7 ms RTT full_sz min: 0.2 ms + RTT full_sz max: 118.7 ms RTT full_sz max: 0.2 ms + RTT full_sz avg: 118.7 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.3.128:34553 + host d: 132.235.1.2:79 + complete conn: yes + first packet: Fri Aug 14 14:44:42.951344 1998 + last packet: Fri Aug 14 14:44:43.090304 1998 + elapsed time: 0:00:00.138960 + total packets: 10 + filename: tcpudp.dmp.gz + c->d: d->c: + total packets: 5 total packets: 5 + ack pkts sent: 4 ack pkts sent: 5 + pure acks sent: 2 pure acks sent: 2 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 2 unique bytes sent: 24 + actual data pkts: 1 actual data pkts: 1 + actual data bytes: 2 actual data bytes: 24 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 1 pushed data pkts: 1 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1326 bytes mss requested: 1460 bytes + max segm size: 2 bytes max segm size: 24 bytes + min segm size: 2 bytes min segm size: 24 bytes + avg segm size: 1 bytes avg segm size: 23 bytes + max win adv: 9282 bytes max win adv: 4096 bytes + min win adv: 9282 bytes min win adv: 4094 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 9282 bytes avg win adv: 4095 bytes + max owin: 3 bytes max owin: 25 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 13 bytes + wavg owin: 0 bytes wavg owin: 0 bytes + initial window: 2 bytes initial window: 24 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 2 bytes ttl stream length: 24 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 0 bytes truncated data: 10 bytes + truncated packets: 0 pkts truncated packets: 1 pkts + data xmit time: 0.000 secs data xmit time: 0.000 secs + idletime max: 130.0 ms idletime max: 97.5 ms + throughput: 14 Bps throughput: 173 Bps + + RTT samples: 3 RTT samples: 2 + RTT min: 1.5 ms RTT min: 0.1 ms + RTT max: 32.0 ms RTT max: 0.1 ms + RTT avg: 11.8 ms RTT avg: 0.1 ms + RTT stdev: 17.5 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 1.8 ms RTT from 3WHS: 0.1 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 32.0 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 32.0 ms RTT full_sz max: 0.1 ms + RTT full_sz avg: 32.0 ms RTT full_sz avg: 0.1 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 1 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/tcpudp.dmp.gz.packets b/input/OUTPUTbench/tcpudp.dmp.gz.packets new file mode 100644 index 0000000..8062abd --- /dev/null +++ b/input/OUTPUTbench/tcpudp.dmp.gz.packets @@ -0,0 +1,947 @@ +1 arg remaining, starting with 'tcpudp.dmp.gz' + +Packet 1 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.704304 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61485 + CKSUM: 0x7a82 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac6 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 2 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.706838 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26265 + CKSUM: 0x0417 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac6 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 3 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.713414 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61486 + CKSUM: 0x7a81 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac5 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 4 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.714916 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26266 + CKSUM: 0x0416 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac5 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 5 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.715121 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61487 + CKSUM: 0x7a80 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac4 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 6 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.716452 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26267 + CKSUM: 0x0415 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac4 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 7 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.716662 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61488 + CKSUM: 0x7a7f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac3 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 8 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.720029 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26268 + CKSUM: 0x0414 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac3 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 9 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.720235 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61489 + CKSUM: 0x7a7e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac2 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 10 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.721586 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26269 + CKSUM: 0x0413 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac2 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 11 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.721795 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61490 + CKSUM: 0x7a7d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac1 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 12 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.724676 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26270 + CKSUM: 0x0412 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac1 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 13 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.724884 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61491 + CKSUM: 0x7a7c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac0 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 14 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.727912 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26271 + CKSUM: 0x0411 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac0 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 15 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.728119 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61492 + CKSUM: 0x7a7b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0abf (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 16 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.729730 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26272 + CKSUM: 0x0410 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0abf (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 17 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.729957 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61493 + CKSUM: 0x7a7a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0abe (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 18 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.732896 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26273 + CKSUM: 0x040f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0abe (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 19 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.733104 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61494 + CKSUM: 0x7a79 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0abd (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 20 + Packet Length: 68 + Collected: Fri Aug 14 12:52:27.734482 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26274 + CKSUM: 0x040e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0abd (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 21 + Packet Length: 58 + Collected: Fri Aug 14 14:44:41.664066 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 52661 + CKSUM: 0x9fbd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: ----S- (0x02) + SEQ: 0x7c8a9ea1 + ACK: 0x00000000 + WIN: 9282 + HLEN: 24 + CKSUM: 0xc39e (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1326) +Packet 22 + Packet Length: 59 + Collected: Fri Aug 14 14:44:41.665896 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 48222 + CKSUM: 0xb515 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A--S- (0x12) + SEQ: 0x76213600 + ACK: 0x7c8a9ea2 + WIN: 4096 + HLEN: 24 + CKSUM: 0x2b28 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 23 + Packet Length: 54 + Collected: Fri Aug 14 14:44:41.665975 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52662 + CKSUM: 0x9fc0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8a9ea2 + ACK: 0x76213601 + WIN: 9282 + HLEN: 20 + CKSUM: 0x2ea3 (CORRECT) + DLEN: 0 +Packet 24 + Packet Length: 56 + Collected: Fri Aug 14 14:44:41.667295 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 42 + ID: 52663 + CKSUM: 0x9fbd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0x7c8a9ea2 + ACK: 0x76213601 + WIN: 9282 + HLEN: 20 + CKSUM: 0x218f (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 25 + Packet Length: 55 + Collected: Fri Aug 14 14:44:41.785964 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48230 + CKSUM: 0xb511 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A---- (0x10) + SEQ: 0x76213601 + ACK: 0x7c8a9ea4 + WIN: 4094 + HLEN: 20 + CKSUM: 0x42e5 (CORRECT) + DLEN: 0 +Packet 26 + Packet Length: 68 + Collected: Fri Aug 14 14:44:41.801142 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 64 + ID: 48232 + CKSUM: 0xb4f7 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -AP--- (0x18) + SEQ: 0x76213601 + ACK: 0x7c8a9ea4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x1d5d (too short to verify) + DLEN: 24 (only 14 bytes in dump file) + data: 24 bytes +Packet 27 + Packet Length: 55 + Collected: Fri Aug 14 14:44:41.801824 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48233 + CKSUM: 0xb50e (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A---F (0x11) + SEQ: 0x76213619 + ACK: 0x7c8a9ea4 + WIN: 4096 + HLEN: 20 + CKSUM: 0x42ca (CORRECT) + DLEN: 0 +Packet 28 + Packet Length: 54 + Collected: Fri Aug 14 14:44:41.802015 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52664 + CKSUM: 0x9fbe (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8a9ea4 + ACK: 0x7621361a + WIN: 9282 + HLEN: 20 + CKSUM: 0x2e88 (CORRECT) + DLEN: 0 +Packet 29 + Packet Length: 54 + Collected: Fri Aug 14 14:44:41.804710 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52665 + CKSUM: 0x9fbd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34552 + DPRT: 79 + FLG: -A---F (0x11) + SEQ: 0x7c8a9ea4 + ACK: 0x7621361a + WIN: 9282 + HLEN: 20 + CKSUM: 0x2e87 (CORRECT) + DLEN: 0 +Packet 30 + Packet Length: 55 + Collected: Fri Aug 14 14:44:41.807920 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48234 + CKSUM: 0xb50d (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34552 + FLG: -A---- (0x10) + SEQ: 0x7621361a + ACK: 0x7c8a9ea5 + WIN: 4096 + HLEN: 20 + CKSUM: 0x42c9 (CORRECT) + DLEN: 0 +Packet 31 + Packet Length: 58 + Collected: Fri Aug 14 14:44:42.951344 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 44 + ID: 52666 + CKSUM: 0x9fb8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: ----S- (0x02) + SEQ: 0x7c8efb54 + ACK: 0x00000000 + WIN: 9282 + HLEN: 24 + CKSUM: 0x66e6 (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1326) +Packet 32 + Packet Length: 59 + Collected: Fri Aug 14 14:44:42.953150 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 44 + ID: 48236 + CKSUM: 0xb507 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A--S- (0x12) + SEQ: 0x76242400 + ACK: 0x7c8efb55 + WIN: 4096 + HLEN: 24 + CKSUM: 0xe06c (CORRECT) + DLEN: 0 + OPTS: 4 bytes MSS(1460) +Packet 33 + Packet Length: 54 + Collected: Fri Aug 14 14:44:42.953213 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52667 + CKSUM: 0x9fbb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8efb55 + ACK: 0x76242401 + WIN: 9282 + HLEN: 20 + CKSUM: 0xe3e7 (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 56 + Collected: Fri Aug 14 14:44:42.954522 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 42 + ID: 52668 + CKSUM: 0x9fb8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -AP--- (0x18) + SEQ: 0x7c8efb55 + ACK: 0x76242401 + WIN: 9282 + HLEN: 20 + CKSUM: 0xd6d3 (CORRECT) + DLEN: 2 + data: 2 bytes +Packet 35 + Packet Length: 55 + Collected: Fri Aug 14 14:44:42.986517 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48237 + CKSUM: 0xb50a (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A---- (0x10) + SEQ: 0x76242401 + ACK: 0x7c8efb57 + WIN: 4094 + HLEN: 20 + CKSUM: 0xf829 (CORRECT) + DLEN: 0 +Packet 36 + Packet Length: 68 + Collected: Fri Aug 14 14:44:43.084037 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 64 + ID: 48247 + CKSUM: 0xb4e8 (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -AP--- (0x18) + SEQ: 0x76242401 + ACK: 0x7c8efb57 + WIN: 4096 + HLEN: 20 + CKSUM: 0xd2a1 (too short to verify) + DLEN: 24 (only 14 bytes in dump file) + data: 24 bytes +Packet 37 + Packet Length: 55 + Collected: Fri Aug 14 14:44:43.084433 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48248 + CKSUM: 0xb4ff (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A---F (0x11) + SEQ: 0x76242419 + ACK: 0x7c8efb57 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf80e (CORRECT) + DLEN: 0 +Packet 38 + Packet Length: 54 + Collected: Fri Aug 14 14:44:43.084529 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52669 + CKSUM: 0x9fb9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -A---- (0x10) + SEQ: 0x7c8efb57 + ACK: 0x7624241a + WIN: 9282 + HLEN: 20 + CKSUM: 0xe3cc (CORRECT) + DLEN: 0 +Packet 39 + Packet Length: 54 + Collected: Fri Aug 14 14:44:43.088845 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.1.2 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 255 + LEN: 40 + ID: 52670 + CKSUM: 0x9fb8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 34553 + DPRT: 79 + FLG: -A---F (0x11) + SEQ: 0x7c8efb57 + ACK: 0x7624241a + WIN: 9282 + HLEN: 20 + CKSUM: 0xe3cb (CORRECT) + DLEN: 0 +Packet 40 + Packet Length: 55 + Collected: Fri Aug 14 14:44:43.090304 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.2 + IP Dest: 132.235.3.128 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 48249 + CKSUM: 0xb4fe (CORRECT) + OFFSET: 0x0000 + TCP SPRT: 79 + DPRT: 34553 + FLG: -A---- (0x10) + SEQ: 0x7624241a + ACK: 0x7c8efb58 + WIN: 4096 + HLEN: 20 + CKSUM: 0xf80d (CORRECT) + DLEN: 0 +40 packets seen, 20 TCP packets traced +trace file elapsed time: 1:52:15.386000 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.128:34552 - 132.235.1.2:79 (a2b) 5> 5< (complete) + 2: 132.235.3.128:34553 - 132.235.1.2:79 (c2d) 5> 5< (complete) diff --git a/input/OUTPUTbench/tcpudp.dmp.gz.short b/input/OUTPUTbench/tcpudp.dmp.gz.short new file mode 100644 index 0000000..5b549cd --- /dev/null +++ b/input/OUTPUTbench/tcpudp.dmp.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'tcpudp.dmp.gz' + +40 packets seen, 20 TCP packets traced +trace file elapsed time: 1:52:15.386000 +TCP connection info: + 1: 132.235.3.128:34552 - 132.235.1.2:79 (a2b) 5> 5< (complete) + 2: 132.235.3.128:34553 - 132.235.1.2:79 (c2d) 5> 5< (complete) diff --git a/input/OUTPUTbench/tcpudp.dmp.gz.xplots.cksum b/input/OUTPUTbench/tcpudp.dmp.gz.xplots.cksum new file mode 100644 index 0000000..0a07718 --- /dev/null +++ b/input/OUTPUTbench/tcpudp.dmp.gz.xplots.cksum @@ -0,0 +1,22 @@ +3376782098 1169 a2b_owin.xpl +2303748476 316 a2b_rtt.xpl +3856015275 179 a2b_ssize.xpl +1215768380 147 a2b_tput.xpl +4136036333 1736 a2b_tsg.xpl +2043571071 1966 a_b_tline.xpl +2849157280 1184 b2a_owin.xpl +1211502431 206 b2a_rtt.xpl +224835002 181 b2a_ssize.xpl +1939414404 147 b2a_tput.xpl +1866233460 1517 b2a_tsg.xpl +1162760692 1169 c2d_owin.xpl +2526421976 313 c2d_rtt.xpl +505474007 179 c2d_ssize.xpl +3370185235 147 c2d_tput.xpl +1559502434 1736 c2d_tsg.xpl +937548729 2005 c_d_tline.xpl +706434989 1184 d2c_owin.xpl +1214418724 206 d2c_rtt.xpl +2288690501 181 d2c_ssize.xpl +799021532 147 d2c_tput.xpl +3499975881 1517 d2c_tsg.xpl diff --git a/input/OUTPUTbench/trunc.dmp.gz.long b/input/OUTPUTbench/trunc.dmp.gz.long new file mode 100644 index 0000000..fa935a9 --- /dev/null +++ b/input/OUTPUTbench/trunc.dmp.gz.long @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'trunc.dmp.gz' + +1 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.000000 +no traced TCP packets diff --git a/input/OUTPUTbench/trunc.dmp.gz.packets b/input/OUTPUTbench/trunc.dmp.gz.packets new file mode 100644 index 0000000..a9173b0 --- /dev/null +++ b/input/OUTPUTbench/trunc.dmp.gz.packets @@ -0,0 +1,24 @@ +1 arg remaining, starting with 'trunc.dmp.gz' + +Packet 1 + Packet Length: 60 + Collected: Tue Feb 3 20:01:55.857081 1998 + ETH Srce: 00:00:00:00:00:00 + ETH Dest: 00:00:00:00:00:00 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 204.123.2.84 + IP Dest: 208.159.216.49 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 56 + LEN: 28 + ID: 47376 + CKSUM: 0xf22a (CORRECT) + OFFSET: 0x6000 (frag: 8 bytes at offset 0 - More Frags) Don't Fragment + +1 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.000000 +bad IP checksums: 0 +bad TCP checksums: 0 +no traced TCP packets diff --git a/input/OUTPUTbench/trunc.dmp.gz.short b/input/OUTPUTbench/trunc.dmp.gz.short new file mode 100644 index 0000000..fa935a9 --- /dev/null +++ b/input/OUTPUTbench/trunc.dmp.gz.short @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'trunc.dmp.gz' + +1 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.000000 +no traced TCP packets diff --git a/input/OUTPUTbench/trunc.dmp.gz.xplots.cksum b/input/OUTPUTbench/trunc.dmp.gz.xplots.cksum new file mode 100644 index 0000000..e69de29 diff --git a/input/OUTPUTbench/udp.dmp.gz.long b/input/OUTPUTbench/udp.dmp.gz.long new file mode 100644 index 0000000..38d8e12 --- /dev/null +++ b/input/OUTPUTbench/udp.dmp.gz.long @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'udp.dmp.gz' + +20 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.030178 +no traced TCP packets diff --git a/input/OUTPUTbench/udp.dmp.gz.packets b/input/OUTPUTbench/udp.dmp.gz.packets new file mode 100644 index 0000000..d90cf43 --- /dev/null +++ b/input/OUTPUTbench/udp.dmp.gz.packets @@ -0,0 +1,427 @@ +1 arg remaining, starting with 'udp.dmp.gz' + +Packet 1 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.704304 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61485 + CKSUM: 0x7a82 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac6 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 2 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.706838 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26265 + CKSUM: 0x0417 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac6 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 3 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.713414 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61486 + CKSUM: 0x7a81 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac5 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 4 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.714916 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26266 + CKSUM: 0x0416 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac5 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 5 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.715121 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61487 + CKSUM: 0x7a80 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac4 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 6 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.716452 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26267 + CKSUM: 0x0415 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac4 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 7 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.716662 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61488 + CKSUM: 0x7a7f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac3 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 8 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.720029 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26268 + CKSUM: 0x0414 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac3 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 9 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.720235 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61489 + CKSUM: 0x7a7e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac2 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 10 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.721586 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26269 + CKSUM: 0x0413 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac2 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 11 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.721795 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61490 + CKSUM: 0x7a7d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac1 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 12 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.724676 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26270 + CKSUM: 0x0412 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac1 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 13 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.724884 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61491 + CKSUM: 0x7a7c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0ac0 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 14 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.727912 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26271 + CKSUM: 0x0411 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0ac0 (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 15 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.728119 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61492 + CKSUM: 0x7a7b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0abf (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 16 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.729730 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26272 + CKSUM: 0x0410 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0abf (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 17 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.729957 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61493 + CKSUM: 0x7a7a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0abe (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 18 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.732896 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26273 + CKSUM: 0x040f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0abe (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 19 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.733104 1998 + ETH Srce: 08:00:20:85:af:9e + ETH Dest: 08:00:20:22:46:6a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.128 + IP Dest: 132.235.3.148 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 61494 + CKSUM: 0x7a79 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 35142 + DPRT: 7 + UCKSUM: 0x0abd (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +Packet 20 + Packet Length: 96 (saved length 68) + Collected: Fri Aug 14 12:52:27.734482 1998 + ETH Srce: 08:00:20:22:46:6a + ETH Dest: 08:00:20:85:af:9e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.148 + IP Dest: 132.235.3.128 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 82 + ID: 26274 + CKSUM: 0x040e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 35142 + UCKSUM: 0x0abd (too short to verify) + DLEN: 62 (only 26 bytes in dump file) +20 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.030178 +bad IP checksums: 0 +bad TCP checksums: 0 +no traced TCP packets diff --git a/input/OUTPUTbench/udp.dmp.gz.short b/input/OUTPUTbench/udp.dmp.gz.short new file mode 100644 index 0000000..38d8e12 --- /dev/null +++ b/input/OUTPUTbench/udp.dmp.gz.short @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'udp.dmp.gz' + +20 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.030178 +no traced TCP packets diff --git a/input/OUTPUTbench/udp.dmp.gz.xplots.cksum b/input/OUTPUTbench/udp.dmp.gz.xplots.cksum new file mode 100644 index 0000000..e69de29 diff --git a/input/OUTPUTbench/udpping.dmp.gz.long b/input/OUTPUTbench/udpping.dmp.gz.long new file mode 100644 index 0000000..290c91e --- /dev/null +++ b/input/OUTPUTbench/udpping.dmp.gz.long @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'udpping.dmp.gz' + +100 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.388384 +no traced TCP packets diff --git a/input/OUTPUTbench/udpping.dmp.gz.packets b/input/OUTPUTbench/udpping.dmp.gz.packets new file mode 100644 index 0000000..71c94de --- /dev/null +++ b/input/OUTPUTbench/udpping.dmp.gz.packets @@ -0,0 +1,2107 @@ +1 arg remaining, starting with 'udpping.dmp.gz' + +Packet 1 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.777978 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47265 + CKSUM: 0xaf43 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0415 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 2 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.785223 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13123 + CKSUM: 0xfa1e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x070d (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 3 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.785365 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47266 + CKSUM: 0xaf42 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0414 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 4 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.791492 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13124 + CKSUM: 0xfa1d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x070c (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 5 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.791599 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47267 + CKSUM: 0xaf41 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0413 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 6 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.797761 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13125 + CKSUM: 0xfa1c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x070b (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 7 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.797864 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47268 + CKSUM: 0xaf40 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0412 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 8 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.803969 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13126 + CKSUM: 0xfa1b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x070a (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 9 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.804090 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47269 + CKSUM: 0xaf3f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0411 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 10 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.811106 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13127 + CKSUM: 0xfa1a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0709 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 11 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.811210 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47270 + CKSUM: 0xaf3e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0410 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 12 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.817381 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13128 + CKSUM: 0xfa19 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0708 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 13 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.817481 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47271 + CKSUM: 0xaf3d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x040f (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 14 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.823698 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13129 + CKSUM: 0xfa18 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0707 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 15 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.823815 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47272 + CKSUM: 0xaf3c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x040e (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 16 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.829987 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13130 + CKSUM: 0xfa17 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0706 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 17 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.830148 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47273 + CKSUM: 0xaf3b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x040d (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 18 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.836325 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13131 + CKSUM: 0xfa16 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0705 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 19 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.836425 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47274 + CKSUM: 0xaf3a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x040c (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 20 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.842565 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13132 + CKSUM: 0xfa15 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0704 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 21 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.842679 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47275 + CKSUM: 0xaf39 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x040b (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 22 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.848812 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13133 + CKSUM: 0xfa14 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0703 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 23 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.848916 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47276 + CKSUM: 0xaf38 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x040a (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 24 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.855082 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13134 + CKSUM: 0xfa13 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0702 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 25 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.855184 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47277 + CKSUM: 0xaf37 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0409 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 26 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.861286 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13135 + CKSUM: 0xfa12 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0701 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 27 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.861395 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47278 + CKSUM: 0xaf36 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0408 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 28 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.867532 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13136 + CKSUM: 0xfa11 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x0700 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 29 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.867634 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47279 + CKSUM: 0xaf35 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0407 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 30 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.873749 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13137 + CKSUM: 0xfa10 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06ff (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 31 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.873851 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47280 + CKSUM: 0xaf34 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0406 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 32 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.880020 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13138 + CKSUM: 0xfa0f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06fe (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 33 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.880166 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47281 + CKSUM: 0xaf33 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0405 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 34 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.886352 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13139 + CKSUM: 0xfa0e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06fd (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 35 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.886453 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47282 + CKSUM: 0xaf32 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0404 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 36 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.892569 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13140 + CKSUM: 0xfa0d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06fc (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 37 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.892670 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47283 + CKSUM: 0xaf31 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0403 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 38 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.898824 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13141 + CKSUM: 0xfa0c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06fb (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 39 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.898934 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47284 + CKSUM: 0xaf30 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0402 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 40 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.905164 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13142 + CKSUM: 0xfa0b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06fa (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 41 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.905268 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47285 + CKSUM: 0xaf2f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0401 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 42 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.911369 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13143 + CKSUM: 0xfa0a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f9 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 43 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.911471 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47286 + CKSUM: 0xaf2e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x0400 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 44 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.917580 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13144 + CKSUM: 0xfa09 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f8 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 45 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.917692 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47287 + CKSUM: 0xaf2d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03ff (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 46 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.923791 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13145 + CKSUM: 0xfa08 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f7 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 47 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.923897 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47288 + CKSUM: 0xaf2c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03fe (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 48 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.929993 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13146 + CKSUM: 0xfa07 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f6 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 49 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.930146 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47289 + CKSUM: 0xaf2b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03fd (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 50 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.936318 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13147 + CKSUM: 0xfa06 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f5 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 51 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.936426 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47290 + CKSUM: 0xaf2a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03fc (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 52 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.942500 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13148 + CKSUM: 0xfa05 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f4 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 53 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.942604 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47291 + CKSUM: 0xaf29 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03fb (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 54 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.948768 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13149 + CKSUM: 0xfa04 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f3 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 55 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.948870 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47292 + CKSUM: 0xaf28 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03fa (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 56 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.955057 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13150 + CKSUM: 0xfa03 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f2 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 57 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.955166 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47293 + CKSUM: 0xaf27 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f9 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 58 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.961305 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13151 + CKSUM: 0xfa02 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f1 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 59 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.961409 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47294 + CKSUM: 0xaf26 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f8 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 60 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.967533 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13152 + CKSUM: 0xfa01 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06f0 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 61 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.967633 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47295 + CKSUM: 0xaf25 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f7 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 62 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.973730 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13153 + CKSUM: 0xfa00 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06ef (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 63 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.973839 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47296 + CKSUM: 0xaf24 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f6 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 64 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.979953 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13154 + CKSUM: 0xf9ff (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06ee (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 65 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.980108 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47297 + CKSUM: 0xaf23 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f5 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 66 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.986290 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13155 + CKSUM: 0xf9fe (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06ed (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 67 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.986390 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47298 + CKSUM: 0xaf22 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f4 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 68 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.992559 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13156 + CKSUM: 0xf9fd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06ec (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 69 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.992671 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47299 + CKSUM: 0xaf21 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f3 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 70 + Packet Length: 1066 + Collected: Wed May 23 09:18:46.998802 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13157 + CKSUM: 0xf9fc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06eb (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 71 + Packet Length: 1446 + Collected: Wed May 23 09:18:46.998904 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47300 + CKSUM: 0xaf20 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f2 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 72 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.005099 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13158 + CKSUM: 0xf9fb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06ea (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 73 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.005203 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47301 + CKSUM: 0xaf1f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f1 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 74 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.011330 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13159 + CKSUM: 0xf9fa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e9 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 75 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.011440 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47302 + CKSUM: 0xaf1e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03f0 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 76 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.017598 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13160 + CKSUM: 0xf9f9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e8 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 77 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.017700 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47303 + CKSUM: 0xaf1d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03ef (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 78 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.023829 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13161 + CKSUM: 0xf9f8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e7 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 79 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.023931 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47304 + CKSUM: 0xaf1c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03ee (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 80 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.030059 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13162 + CKSUM: 0xf9f7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e6 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 81 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.030204 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47305 + CKSUM: 0xaf1b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03ed (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 82 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.036379 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13163 + CKSUM: 0xf9f6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e5 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 83 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.036481 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47306 + CKSUM: 0xaf1a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03ec (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 84 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.044637 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13164 + CKSUM: 0xf9f5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e4 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 85 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.044739 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47307 + CKSUM: 0xaf19 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03eb (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 86 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.057519 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13165 + CKSUM: 0xf9f4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e3 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 87 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.057631 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47308 + CKSUM: 0xaf18 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03ea (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 88 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.072394 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13166 + CKSUM: 0xf9f3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e2 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 89 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.072498 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47309 + CKSUM: 0xaf17 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03e9 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 90 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.086410 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13167 + CKSUM: 0xf9f2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e1 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 91 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.086511 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47310 + CKSUM: 0xaf16 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03e8 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 92 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.115645 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13168 + CKSUM: 0xf9f1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06e0 (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 93 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.115757 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47311 + CKSUM: 0xaf15 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03e7 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 94 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.136825 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13169 + CKSUM: 0xf9f0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06df (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 95 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.136929 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47312 + CKSUM: 0xaf14 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03e6 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 96 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.153779 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13170 + CKSUM: 0xf9ef (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06de (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 97 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.153883 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47313 + CKSUM: 0xaf13 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03e5 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 98 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.160056 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13171 + CKSUM: 0xf9ee (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06dd (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +Packet 99 + Packet Length: 1446 + Collected: Wed May 23 09:18:47.160222 2001 + ETH Srce: 08:00:20:e7:b0:3e + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.141 + IP Dest: 132.235.1.12 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 255 + LEN: 1432 + ID: 47314 + CKSUM: 0xaf12 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 57945 + DPRT: 7 + UCKSUM: 0x03e4 (CORRECT) + DLEN: 1412 (only 1404 bytes in dump file) +Packet 100 + Packet Length: 1066 + Collected: Wed May 23 09:18:47.166362 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:e7:b0:3e + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.141 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 59 + LEN: 1052 + ID: 13172 + CKSUM: 0xf9ed (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 7 + DPRT: 57945 + UCKSUM: 0x06dc (CORRECT) + DLEN: 1032 (only 1024 bytes in dump file) +100 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.388384 +bad IP checksums: 0 +bad TCP checksums: 0 +no traced TCP packets diff --git a/input/OUTPUTbench/udpping.dmp.gz.short b/input/OUTPUTbench/udpping.dmp.gz.short new file mode 100644 index 0000000..290c91e --- /dev/null +++ b/input/OUTPUTbench/udpping.dmp.gz.short @@ -0,0 +1,5 @@ +1 arg remaining, starting with 'udpping.dmp.gz' + +100 packets seen, 0 TCP packets traced +trace file elapsed time: 0:00:00.388384 +no traced TCP packets diff --git a/input/OUTPUTbench/udpping.dmp.gz.xplots.cksum b/input/OUTPUTbench/udpping.dmp.gz.xplots.cksum new file mode 100644 index 0000000..e69de29 diff --git a/input/OUTPUTbench/urgent.dmp.gz.long b/input/OUTPUTbench/urgent.dmp.gz.long new file mode 100644 index 0000000..355daf9 --- /dev/null +++ b/input/OUTPUTbench/urgent.dmp.gz.long @@ -0,0 +1,164 @@ +1 arg remaining, starting with 'urgent.dmp.gz' + +9476 packets seen, 9476 TCP packets traced +trace file elapsed time: 407:46:31.562564 +TCP connection info: +2 TCP connections traced: +TCP connection 1: + host a: 132.235.3.132:57247 + host b: 132.235.1.12:19 + complete conn: no (SYNs: 0) (FINs: 0) + first packet: Tue Jul 24 12:34:10.118897 2001 + last packet: Tue Jul 24 12:35:20.832191 2001 + elapsed time: 0:01:10.713294 + total packets: 8834 + filename: urgent.dmp.gz + a->b: b->a: + total packets: 3041 total packets: 5793 + ack pkts sent: 3041 ack pkts sent: 5793 + pure acks sent: 3008 pure acks sent: 16 + sack pkts sent: 15 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 1 max sack blks/ack: 0 + unique bytes sent: 33 unique bytes sent: 6192690 + actual data pkts: 33 actual data pkts: 5777 + actual data bytes: 33 actual data bytes: 6192738 + rexmt data pkts: 0 rexmt data pkts: 1 + rexmt data bytes: 0 rexmt data bytes: 1 + zwnd probe pkts: 0 zwnd probe pkts: 47 + zwnd probe bytes: 0 zwnd probe bytes: 47 + outoforder pkts: 0 outoforder pkts: 4 + pushed data pkts: 33 pushed data pkts: 1494 + SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0 + urgent data pkts: 16 pkts urgent data pkts: 0 pkts + urgent data bytes: 16 bytes urgent data bytes: 0 bytes + mss requested: 0 bytes mss requested: 0 bytes + max segm size: 1 bytes max segm size: 1460 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 0 bytes avg segm size: 1071 bytes + max win adv: 24820 bytes max win adv: 24820 bytes + min win adv: 30 bytes min win adv: 24820 bytes + zero win adv: 96 times zero win adv: 0 times + avg win adv: 18870 bytes avg win adv: 24820 bytes + max owin: 4 bytes max owin: 24821 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 14250 bytes + wavg owin: 0 bytes wavg owin: 5283 bytes + initial window: 2 bytes initial window: 0 bytes + initial window: 2 pkts initial window: 0 pkts + ttl stream length: NA ttl stream length: NA + missed data: NA missed data: NA + truncated data: 0 bytes truncated data: 6112692 bytes + truncated packets: 0 pkts truncated packets: 5713 pkts + data xmit time: 68.105 secs data xmit time: 70.642 secs + idletime max: 1467920849.3 ms idletime max: 1467920849.3 ms + throughput: 0 Bps throughput: 87575 Bps + + RTT samples: 18 RTT samples: 2898 + RTT min: 0.5 ms RTT min: 0.1 ms + RTT max: 77.8 ms RTT max: 120.0 ms + RTT avg: 11.3 ms RTT avg: 22.2 ms + RTT stdev: 24.1 ms RTT stdev: 17.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 3 + RTT full_sz min: 0.5 ms RTT full_sz min: 0.1 ms + RTT full_sz max: 0.5 ms RTT full_sz max: 0.3 ms + RTT full_sz avg: 0.5 ms RTT full_sz avg: 0.2 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.1 ms + + post-loss acks: 0 post-loss acks: 1 + 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. + ambiguous acks: 0 ambiguous acks: 1 + RTT min (last): 0.0 ms RTT min (last): 0.0 ms + RTT max (last): 0.0 ms RTT max (last): 0.0 ms + RTT avg (last): 0.0 ms RTT avg (last): 0.0 ms + RTT sdv (last): 0.0 ms RTT sdv (last): 0.0 ms + segs cum acked: 15 segs cum acked: 2829 + duplicate acks: 0 duplicate acks: 58 + triple dupacks: 0 triple dupacks: 16 + max # retrans: 0 max # retrans: 1 + min retr time: 0.0 ms min retr time: 39.8 ms + max retr time: 0.0 ms max retr time: 39.8 ms + avg retr time: 0.0 ms avg retr time: 39.8 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms +================================ +TCP connection 2: + host c: 132.235.3.154:982 + host d: 132.235.17.1:513 + complete conn: yes + first packet: Fri Aug 10 12:19:24.775367 2001 + last packet: Fri Aug 10 12:20:41.681461 2001 + elapsed time: 0:01:16.906093 + total packets: 642 + filename: urgent.dmp.gz + c->d: d->c: + total packets: 352 total packets: 290 + ack pkts sent: 351 ack pkts sent: 290 + pure acks sent: 206 pure acks sent: 14 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 183 unique bytes sent: 5300 + actual data pkts: 144 actual data pkts: 274 + actual data bytes: 183 actual data bytes: 5300 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 0 zwnd probe pkts: 0 + zwnd probe bytes: 0 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 144 pushed data pkts: 274 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 44 pkts + urgent data bytes: 0 bytes urgent data bytes: 44 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 29 bytes max segm size: 1101 bytes + min segm size: 1 bytes min segm size: 1 bytes + avg segm size: 1 bytes avg segm size: 19 bytes + max win adv: 24820 bytes max win adv: 8760 bytes + min win adv: 24820 bytes min win adv: 8759 bytes + zero win adv: 0 times zero win adv: 0 times + avg win adv: 24820 bytes avg win adv: 8759 bytes + max owin: 30 bytes max owin: 1102 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 1 bytes avg owin: 19 bytes + wavg owin: 0 bytes wavg owin: 50 bytes + initial window: 1 bytes initial window: 1 bytes + initial window: 1 pkts initial window: 1 pkts + ttl stream length: 183 bytes ttl stream length: 5300 bytes + missed data: 0 bytes missed data: 0 bytes + truncated data: 15 bytes truncated data: 3540 bytes + truncated packets: 1 pkts truncated packets: 104 pkts + data xmit time: 76.877 secs data xmit time: 76.841 secs + idletime max: 3990.0 ms idletime max: 3999.8 ms + throughput: 2 Bps throughput: 69 Bps + + RTT samples: 146 RTT samples: 234 + RTT min: 0.5 ms RTT min: 0.0 ms + RTT max: 100.4 ms RTT max: 100.5 ms + RTT avg: 8.3 ms RTT avg: 75.0 ms + RTT stdev: 25.6 ms RTT stdev: 38.1 ms + + RTT from 3WHS: 0.7 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 1 RTT full_sz smpls: 1 + RTT full_sz min: 0.8 ms RTT full_sz min: 97.8 ms + RTT full_sz max: 0.8 ms RTT full_sz max: 97.8 ms + RTT full_sz avg: 0.8 ms RTT full_sz avg: 97.7 ms + RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 0 segs cum acked: 42 + duplicate acks: 1 duplicate acks: 1 + triple dupacks: 0 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/urgent.dmp.gz.packets b/input/OUTPUTbench/urgent.dmp.gz.packets new file mode 100644 index 0000000..6e9e644 --- /dev/null +++ b/input/OUTPUTbench/urgent.dmp.gz.packets @@ -0,0 +1,2676 @@ +1 arg remaining, starting with 'urgent.dmp.gz' + +Packet 1 + Packet Length: 55 + Collected: Tue Jul 24 12:34:10.118897 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 41 + ID: 38516 + CKSUM: 0x95f4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: UAP--- (0x38) + SEQ: 0x41144581 + ACK: 0x22ac1a5b + WIN: 0 + HLEN: 20 + CKSUM: 0xfef3 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 2 + Packet Length: 55 + Collected: Tue Jul 24 12:34:10.119342 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 41 + ID: 38517 + CKSUM: 0x95f3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -AP--- (0x18) + SEQ: 0x41144582 + ACK: 0x22ac1a5b + WIN: 0 + HLEN: 20 + CKSUM: 0x0c14 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 3 + Packet Length: 60 + Collected: Tue Jul 24 12:34:10.119506 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 40 + ID: 46553 + CKSUM: 0x7b90 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac1a5b + ACK: 0x41144582 + WIN: 24820 + HLEN: 20 + CKSUM: 0x9d29 (CORRECT) + DLEN: 0 +Packet 4 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.189356 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38518 + CKSUM: 0x95f3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac1a5b + WIN: 24820 + HLEN: 20 + CKSUM: 0x9d28 (CORRECT) + DLEN: 0 +Packet 5 + Packet Length: 60 + Collected: Tue Jul 24 12:34:10.189882 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 41 + ID: 46554 + CKSUM: 0x7b8e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac1a5b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x6627 (CORRECT) + DLEN: 1 + data: 1 bytes +Packet 6 + Packet Length: 1503 (saved length 68) + Collected: Tue Jul 24 12:34:10.191049 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1489 + ID: 46555 + CKSUM: 0x75e5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac1a5c + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xc145 (too short to verify) + DLEN: 1449 (only 14 bytes in dump file) + data: 1449 bytes +Packet 7 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.191207 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46556 + CKSUM: 0x760f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac2005 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd44c (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 8 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.191266 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46557 + CKSUM: 0x760e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac2583 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xbbf3 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 9 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.191389 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38519 + CKSUM: 0x95f2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac2005 + WIN: 24820 + HLEN: 20 + CKSUM: 0x977e (CORRECT) + DLEN: 0 +Packet 10 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.193019 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46558 + CKSUM: 0x760d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac2b01 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x2d8e (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 11 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.193128 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46559 + CKSUM: 0x760c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac307f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x4087 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 12 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.193247 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46560 + CKSUM: 0x760b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac35fd + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x467e (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 13 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.193369 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46561 + CKSUM: 0x760a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac3b7b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xb8d6 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 14 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.194369 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38520 + CKSUM: 0x95f1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac2b01 + WIN: 24820 + HLEN: 20 + CKSUM: 0x8c82 (CORRECT) + DLEN: 0 +Packet 15 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.195975 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46562 + CKSUM: 0x7609 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac40f9 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xa07d (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 16 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.196084 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46563 + CKSUM: 0x7608 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac4677 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x1218 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 17 + Packet Length: 1386 (saved length 68) + Collected: Tue Jul 24 12:34:10.196195 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1372 + ID: 46564 + CKSUM: 0x7651 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -AP--- (0x18) + SEQ: 0x22ac4bf5 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x2818 (too short to verify) + DLEN: 1332 (only 14 bytes in dump file) + data: 1332 bytes +Packet 18 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.203902 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38521 + CKSUM: 0x95f0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac35fd + WIN: 24820 + HLEN: 20 + CKSUM: 0x8186 (CORRECT) + DLEN: 0 +Packet 19 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.205500 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46565 + CKSUM: 0x7606 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac5129 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x5ce2 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 20 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.205738 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46566 + CKSUM: 0x7605 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac56a7 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xcedb (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 21 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.205859 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46567 + CKSUM: 0x7604 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac5c25 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd946 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 22 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.209756 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38522 + CKSUM: 0x95ef (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac40f9 + WIN: 24820 + HLEN: 20 + CKSUM: 0x768a (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.210709 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38523 + CKSUM: 0x95ee (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac4bf5 + WIN: 24820 + HLEN: 20 + CKSUM: 0x6b8e (CORRECT) + DLEN: 0 +Packet 24 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.211274 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38524 + CKSUM: 0x95ed (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac56a7 + WIN: 24820 + HLEN: 20 + CKSUM: 0x60dc (CORRECT) + DLEN: 0 +Packet 25 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.211337 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46568 + CKSUM: 0x7603 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac61a3 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xec3f (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 26 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.211450 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46569 + CKSUM: 0x7602 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac6721 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x5dda (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 27 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.212315 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46570 + CKSUM: 0x7601 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac6c9f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x416c (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 28 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.212423 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46571 + CKSUM: 0x7600 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac721d + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xb365 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 29 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.212832 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46572 + CKSUM: 0x75ff (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac779b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xbdd0 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 30 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.212950 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46573 + CKSUM: 0x75fe (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac7d19 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd0c9 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 31 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.225507 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38525 + CKSUM: 0x95ec (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac61a3 + WIN: 24820 + HLEN: 20 + CKSUM: 0x55e0 (CORRECT) + DLEN: 0 +Packet 32 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.225524 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38526 + CKSUM: 0x95eb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac6c9f + WIN: 24820 + HLEN: 20 + CKSUM: 0x4ae4 (CORRECT) + DLEN: 0 +Packet 33 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.225537 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38527 + CKSUM: 0x95ea (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac779b + WIN: 24820 + HLEN: 20 + CKSUM: 0x3fe8 (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.225553 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38528 + CKSUM: 0x95e9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac8297 + WIN: 24820 + HLEN: 20 + CKSUM: 0x34ec (CORRECT) + DLEN: 0 +Packet 35 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227120 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46574 + CKSUM: 0x75fd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac8297 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x4264 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 36 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227203 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46575 + CKSUM: 0x75fc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac8815 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x25f6 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 37 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227331 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46576 + CKSUM: 0x75fb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac8d93 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x97ef (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 38 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227457 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46577 + CKSUM: 0x75fa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac9311 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xa25a (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 39 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227577 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46578 + CKSUM: 0x75f9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac988f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xb553 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 40 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227704 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46579 + CKSUM: 0x75f8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ac9e0d + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x26ee (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 41 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227819 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46580 + CKSUM: 0x75f7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22aca38b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x0a80 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 42 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.227982 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46581 + CKSUM: 0x75f6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22aca909 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x7c79 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 43 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.253371 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38529 + CKSUM: 0x95e8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac8d93 + WIN: 24820 + HLEN: 20 + CKSUM: 0x29f0 (CORRECT) + DLEN: 0 +Packet 44 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.254158 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38530 + CKSUM: 0x95e7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ac988f + WIN: 24820 + HLEN: 20 + CKSUM: 0x1ef4 (CORRECT) + DLEN: 0 +Packet 45 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.254959 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46582 + CKSUM: 0x75f5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acae87 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x86e4 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 46 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.255068 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46583 + CKSUM: 0x75f4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acb405 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x99dd (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 47 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.255761 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46584 + CKSUM: 0x75f3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acb983 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x0b78 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 48 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.255870 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46585 + CKSUM: 0x75f2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acbf01 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xef09 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 49 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.265481 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38531 + CKSUM: 0x95e6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22aca38b + WIN: 24820 + HLEN: 20 + CKSUM: 0x13f8 (CORRECT) + DLEN: 0 +Packet 50 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.265496 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38532 + CKSUM: 0x95e5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22acae87 + WIN: 24820 + HLEN: 20 + CKSUM: 0x08fc (CORRECT) + DLEN: 0 +Packet 51 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.265507 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38533 + CKSUM: 0x95e4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22acb983 + WIN: 24820 + HLEN: 20 + CKSUM: 0xfdff (CORRECT) + DLEN: 0 +Packet 52 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.265520 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38534 + CKSUM: 0x95e3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22acc47f + WIN: 24820 + HLEN: 20 + CKSUM: 0xf303 (CORRECT) + DLEN: 0 +Packet 53 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267092 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46586 + CKSUM: 0x75f1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acc47f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x6103 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 54 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267208 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46587 + CKSUM: 0x75f0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acc9fd + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x6b6e (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 55 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267293 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46588 + CKSUM: 0x75ef (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22accf7b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x7e67 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 56 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267419 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46589 + CKSUM: 0x75ee (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acd4f9 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xf001 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 57 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267534 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46590 + CKSUM: 0x75ed (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acda77 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd393 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 58 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267672 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46591 + CKSUM: 0x75ec (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acdff5 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x458d (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 59 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267788 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46592 + CKSUM: 0x75eb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ace573 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x4ff8 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 60 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.267917 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46593 + CKSUM: 0x75ea (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22aceaf1 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x62f1 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 61 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.268034 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46594 + CKSUM: 0x75e9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acf06f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd48b (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 62 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.284746 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38535 + CKSUM: 0x95e2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22accf7b + WIN: 24820 + HLEN: 20 + CKSUM: 0xe807 (CORRECT) + DLEN: 0 +Packet 63 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.286349 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46595 + CKSUM: 0x75e8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acf5ed + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xb81d (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 64 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.286468 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46596 + CKSUM: 0x75e7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22acfb6b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x2a17 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 65 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.295517 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38536 + CKSUM: 0x95e1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22acda77 + WIN: 24820 + HLEN: 20 + CKSUM: 0xdd0b (CORRECT) + DLEN: 0 +Packet 66 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.295533 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38537 + CKSUM: 0x95e0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ace573 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd20f (CORRECT) + DLEN: 0 +Packet 67 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.295546 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38538 + CKSUM: 0x95df (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22acf06f + WIN: 24820 + HLEN: 20 + CKSUM: 0xc713 (CORRECT) + DLEN: 0 +Packet 68 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.295559 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38539 + CKSUM: 0x95de (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22acfb6b + WIN: 24820 + HLEN: 20 + CKSUM: 0xbc17 (CORRECT) + DLEN: 0 +Packet 69 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297151 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46597 + CKSUM: 0x75e6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad00e9 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x3482 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 70 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297233 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46598 + CKSUM: 0x75e5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad0667 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x477b (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 71 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297357 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46599 + CKSUM: 0x75e4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad0be5 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xb915 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 72 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297481 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46600 + CKSUM: 0x75e3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad1163 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x9ca7 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 73 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297605 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46601 + CKSUM: 0x75e2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad16e1 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x0ea1 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 74 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297724 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46602 + CKSUM: 0x75e1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad1c5f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x190c (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 75 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297838 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46603 + CKSUM: 0x75e0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad21dd + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x2c05 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 76 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.297969 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46604 + CKSUM: 0x75df (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad275b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x9d9f (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 77 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.315508 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38540 + CKSUM: 0x95dd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad0667 + WIN: 24820 + HLEN: 20 + CKSUM: 0xb11b (CORRECT) + DLEN: 0 +Packet 78 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.315524 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38541 + CKSUM: 0x95dc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad1163 + WIN: 24820 + HLEN: 20 + CKSUM: 0xa61f (CORRECT) + DLEN: 0 +Packet 79 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.315536 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38542 + CKSUM: 0x95db (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad1c5f + WIN: 24820 + HLEN: 20 + CKSUM: 0x9b23 (CORRECT) + DLEN: 0 +Packet 80 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.315547 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38543 + CKSUM: 0x95da (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad275b + WIN: 24820 + HLEN: 20 + CKSUM: 0x9027 (CORRECT) + DLEN: 0 +Packet 81 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317159 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46605 + CKSUM: 0x75de (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad2cd9 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x8131 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 82 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317240 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46606 + CKSUM: 0x75dd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad3257 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xf32a (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 83 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317363 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46607 + CKSUM: 0x75dc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad37d5 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xfd95 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 84 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317492 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46608 + CKSUM: 0x75db (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad3d53 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x108f (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 85 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317614 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46609 + CKSUM: 0x75da (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad42d1 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x8229 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 86 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317737 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46610 + CKSUM: 0x75d9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad484f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x65bb (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 87 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317860 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46611 + CKSUM: 0x75d8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad4dcd + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd7b4 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 88 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.317981 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46612 + CKSUM: 0x75d7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad534b + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xe21f (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 89 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.318101 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46613 + CKSUM: 0x75d6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad58c9 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xf518 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 90 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.335552 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38544 + CKSUM: 0x95d9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad3257 + WIN: 24820 + HLEN: 20 + CKSUM: 0x852b (CORRECT) + DLEN: 0 +Packet 91 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.335614 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38545 + CKSUM: 0x95d8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad3d53 + WIN: 24820 + HLEN: 20 + CKSUM: 0x7a2f (CORRECT) + DLEN: 0 +Packet 92 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.335630 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38546 + CKSUM: 0x95d7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad484f + WIN: 24820 + HLEN: 20 + CKSUM: 0x6f33 (CORRECT) + DLEN: 0 +Packet 93 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.335643 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38547 + CKSUM: 0x95d6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad534b + WIN: 24820 + HLEN: 20 + CKSUM: 0x6437 (CORRECT) + DLEN: 0 +Packet 94 + Packet Length: 54 + Collected: Tue Jul 24 12:34:10.335654 2001 + ETH Srce: 08:00:20:b0:ce:33 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.132 + IP Dest: 132.235.1.12 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 38548 + CKSUM: 0x95d5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 57247 + DPRT: 19 + FLG: -A---- (0x10) + SEQ: 0x41144583 + ACK: 0x22ad5e47 + WIN: 24820 + HLEN: 20 + CKSUM: 0x593b (CORRECT) + DLEN: 0 +Packet 95 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.337192 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46614 + CKSUM: 0x75d5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad5e47 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x66b3 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 96 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.337267 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46615 + CKSUM: 0x75d4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad63c5 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0x4a45 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 97 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.337391 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46616 + CKSUM: 0x75d3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad6943 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xbc3e (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 98 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.337516 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46617 + CKSUM: 0x75d2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad6ec1 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xc6a9 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 99 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.337634 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46618 + CKSUM: 0x75d1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad743f + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xd9a2 (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +Packet 100 + Packet Length: 1460 (saved length 68) + Collected: Tue Jul 24 12:34:10.338400 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 08:00:20:b0:ce:33 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.1.12 + IP Dest: 132.235.3.132 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 59 + LEN: 1446 + ID: 46623 + CKSUM: 0x75cc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 19 + DPRT: 57247 + FLG: -A---- (0x10) + SEQ: 0x22ad8fb5 + ACK: 0x41144583 + WIN: 24820 + HLEN: 20 + CKSUM: 0xbe2c (too short to verify) + DLEN: 1406 (only 14 bytes in dump file) + data: 1406 bytes +100 packets seen, 100 TCP packets traced +trace file elapsed time: 0:00:00.219503 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.132:57247 - 132.235.1.12:19 (a2b) 33> 67< diff --git a/input/OUTPUTbench/urgent.dmp.gz.short b/input/OUTPUTbench/urgent.dmp.gz.short new file mode 100644 index 0000000..e5b9632 --- /dev/null +++ b/input/OUTPUTbench/urgent.dmp.gz.short @@ -0,0 +1,7 @@ +1 arg remaining, starting with 'urgent.dmp.gz' + +9476 packets seen, 9476 TCP packets traced +trace file elapsed time: 407:46:31.562564 +TCP connection info: + 1: 132.235.3.132:57247 - 132.235.1.12:19 (a2b) 3041> 5793< + 2: 132.235.3.154:982 - 132.235.17.1:513 (c2d) 352> 290< (complete) diff --git a/input/OUTPUTbench/urgent.dmp.gz.xplots.cksum b/input/OUTPUTbench/urgent.dmp.gz.xplots.cksum new file mode 100644 index 0000000..7feb20f --- /dev/null +++ b/input/OUTPUTbench/urgent.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +1075358142 99203 a2b_owin.xpl +1399657223 243 a2b_rtt.xpl +693226708 400 a2b_ssize.xpl +1665043341 149 a2b_tput.xpl +921358331 160933 a2b_tsg.xpl +952563617 179226 a_b_tline.xpl +1192044790 218075 b2a_owin.xpl +3705878140 23410 b2a_rtt.xpl +3175339646 105199 b2a_ssize.xpl +2047561144 37032 b2a_tput.xpl +1472788008 176293 b2a_tsg.xpl diff --git a/input/OUTPUTbench/zwnd.dmp.gz.long b/input/OUTPUTbench/zwnd.dmp.gz.long new file mode 100644 index 0000000..5d8b0ab --- /dev/null +++ b/input/OUTPUTbench/zwnd.dmp.gz.long @@ -0,0 +1,81 @@ +1 arg remaining, starting with 'zwnd.dmp.gz' + +26690 packets seen, 26686 TCP packets traced +trace file elapsed time: 0:00:32.259999 +TCP connection info: +1 TCP connection traced: +TCP connection 1: + host a: 132.235.3.154:58213 + host b: 132.235.3.151:5001 + complete conn: yes + first packet: Mon Jul 30 16:41:35.774500 2001 + last packet: Mon Jul 30 16:42:00.514500 2001 + elapsed time: 0:00:24.739999 + total packets: 26686 + filename: zwnd.dmp.gz + a->b: b->a: + total packets: 17995 total packets: 8691 + ack pkts sent: 17994 ack pkts sent: 8691 + pure acks sent: 2 pure acks sent: 8689 + sack pkts sent: 0 sack pkts sent: 0 + dsack pkts sent: 0 dsack pkts sent: 0 + max sack blks/ack: 0 max sack blks/ack: 0 + unique bytes sent: 24554344 unique bytes sent: 0 + actual data pkts: 17992 actual data pkts: 0 + actual data bytes: 24554350 actual data bytes: 0 + rexmt data pkts: 0 rexmt data pkts: 0 + rexmt data bytes: 0 rexmt data bytes: 0 + zwnd probe pkts: 6 zwnd probe pkts: 0 + zwnd probe bytes: 6 zwnd probe bytes: 0 + outoforder pkts: 0 outoforder pkts: 0 + pushed data pkts: 340 pushed data pkts: 0 + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1 + req sack: Y req sack: Y + sacks sent: 0 sacks sent: 0 + urgent data pkts: 0 pkts urgent data pkts: 0 pkts + urgent data bytes: 0 bytes urgent data bytes: 0 bytes + mss requested: 1460 bytes mss requested: 1460 bytes + max segm size: 1460 bytes max segm size: 0 bytes + min segm size: 1 bytes min segm size: 0 bytes + avg segm size: 1364 bytes avg segm size: 0 bytes + max win adv: 24820 bytes max win adv: 62780 bytes + min win adv: 24820 bytes min win adv: 568 bytes + zero win adv: 0 times zero win adv: 7 times + avg win adv: 24820 bytes avg win adv: 62580 bytes + max owin: 61725 bytes max owin: 1 bytes + min non-zero owin: 1 bytes min non-zero owin: 1 bytes + avg owin: 2531 bytes avg owin: 1 bytes + wavg owin: 378 bytes wavg owin: 0 bytes + initial window: 4380 bytes initial window: 0 bytes + initial window: 3 pkts initial window: 0 pkts + ttl stream length: 24576000 bytes ttl stream length: 0 bytes + missed data: 21656 bytes missed data: 0 bytes + truncated data: 24302553 bytes truncated data: 0 bytes + truncated packets: 17985 pkts truncated packets: 0 pkts + data xmit time: 24.730 secs data xmit time: 0.000 secs + idletime max: 8580.0 ms idletime max: 8080.0 ms + throughput: 992496 Bps throughput: 0 Bps + + RTT samples: 8679 RTT samples: 2 + RTT min: 10.0 ms RTT min: 0.0 ms + RTT max: 80.0 ms RTT max: 0.0 ms + RTT avg: 0.0 ms RTT avg: 0.0 ms + RTT stdev: 1.1 ms RTT stdev: 0.0 ms + + RTT from 3WHS: 0.0 ms RTT from 3WHS: 0.0 ms + + RTT full_sz smpls: 5826 RTT full_sz smpls: 1 + RTT full_sz min: 10.0 ms RTT full_sz min: 0.0 ms + RTT full_sz max: 30.0 ms RTT full_sz max: 0.0 ms + RTT full_sz avg: 0.0 ms RTT full_sz avg: 0.0 ms + RTT full_sz stdev: 0.7 ms RTT full_sz stdev: 0.0 ms + + post-loss acks: 0 post-loss acks: 0 + segs cum acked: 9308 segs cum acked: 0 + duplicate acks: 6 duplicate acks: 0 + triple dupacks: 1 triple dupacks: 0 + max # retrans: 0 max # retrans: 0 + min retr time: 0.0 ms min retr time: 0.0 ms + max retr time: 0.0 ms max retr time: 0.0 ms + avg retr time: 0.0 ms avg retr time: 0.0 ms + sdv retr time: 0.0 ms sdv retr time: 0.0 ms diff --git a/input/OUTPUTbench/zwnd.dmp.gz.packets b/input/OUTPUTbench/zwnd.dmp.gz.packets new file mode 100644 index 0000000..cdaa75a --- /dev/null +++ b/input/OUTPUTbench/zwnd.dmp.gz.packets @@ -0,0 +1,2643 @@ +1 arg remaining, starting with 'zwnd.dmp.gz' + +Packet 1 + Packet Length: 79 (saved length 68) + Collected: Mon Jul 30 16:41:28.254500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.64.1 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 64 + LEN: 65 + ID: 13482 + CKSUM: 0xb893 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 32806 + DPRT: 53 + UCKSUM: 0x1afa (too short to verify) + DLEN: 45 (only 26 bytes in dump file) +Packet 2 + Packet Length: 337 (saved length 68) + Collected: Mon Jul 30 16:41:28.254500 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.64.1 + IP Dest: 132.235.3.151 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 62 + LEN: 323 + ID: 40033 + CKSUM: 0x91da (CORRECT) + OFFSET: 0x0000 + UDP SPRT: 53 + DPRT: 32806 + UCKSUM: 0x13fd (too short to verify) + DLEN: 303 (only 26 bytes in dump file) +Packet 3 + Packet Length: 78 (saved length 68) + Collected: Mon Jul 30 16:41:28.264500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 00:01:02:97:0c:0a + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.64.1 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 64 + LEN: 64 + ID: 13483 + CKSUM: 0xb893 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + UDP SPRT: 32806 + DPRT: 53 + UCKSUM: 0x7dec (too short to verify) + DLEN: 44 (only 26 bytes in dump file) +Packet 4 + Packet Length: 336 (saved length 68) + Collected: Mon Jul 30 16:41:28.264500 2001 + ETH Srce: 00:01:02:97:0c:0a + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.64.1 + IP Dest: 132.235.3.151 + Type: 0x11 (UDP) + HLEN: 20 + TTL: 62 + LEN: 322 + ID: 40035 + CKSUM: 0x91d9 (CORRECT) + OFFSET: 0x0000 + UDP SPRT: 53 + DPRT: 32806 + UCKSUM: 0x93e6 (too short to verify) + DLEN: 302 (only 26 bytes in dump file) +Packet 5 + Packet Length: 62 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 48 + ID: 33333 + CKSUM: 0xa78b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: ----S- (0x02) + SEQ: 0x476c2685 + ACK: 0x00000000 + WIN: 24820 + HLEN: 28 + CKSUM: 0xac43 (CORRECT) + DLEN: 0 + OPTS: 8 bytes MSS(1460) SACKREQ +Packet 6 + Packet Length: 62 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 48 + ID: 0 + CKSUM: 0x29c1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A--S- (0x12) + SEQ: 0x500a49db + ACK: 0x476c2686 + WIN: 5840 + HLEN: 28 + CKSUM: 0x5c71 (CORRECT) + DLEN: 0 + OPTS: 8 bytes MSS(1460) SACKREQ +Packet 7 + Packet Length: 60 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 33334 + CKSUM: 0xa792 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c2686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x3f11 (CORRECT) + DLEN: 0 +Packet 8 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33336 + CKSUM: 0xa1dc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c2686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x1153 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 9 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33337 + CKSUM: 0xa1db (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476c2c3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xd400 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 10 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33338 + CKSUM: 0xa1da (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476c31ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x14f2 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 11 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32326 + CKSUM: 0xab82 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c2c3a + WIN: 8760 + HLEN: 20 + CKSUM: 0x7819 (CORRECT) + DLEN: 0 +Packet 12 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32327 + CKSUM: 0xab81 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c31ee + WIN: 11680 + HLEN: 20 + CKSUM: 0x66fd (CORRECT) + DLEN: 0 +Packet 13 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32328 + CKSUM: 0xab80 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c37a2 + WIN: 14600 + HLEN: 20 + CKSUM: 0x55e1 (CORRECT) + DLEN: 0 +Packet 14 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33340 + CKSUM: 0xa1d8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c37a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x5087 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 15 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32329 + CKSUM: 0xab7f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c3d56 + WIN: 17520 + HLEN: 20 + CKSUM: 0x44c5 (CORRECT) + DLEN: 0 +Packet 16 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33341 + CKSUM: 0xa1d7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476c3d56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x1335 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 17 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33342 + CKSUM: 0xa40e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c430a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x4a59 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 18 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33343 + CKSUM: 0xa1d5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c4686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xf152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 19 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32330 + CKSUM: 0xab7e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c430a + WIN: 20440 + HLEN: 20 + CKSUM: 0x33a9 (CORRECT) + DLEN: 0 +Packet 20 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32331 + CKSUM: 0xab7d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c4686 + WIN: 23360 + HLEN: 20 + CKSUM: 0x24c5 (CORRECT) + DLEN: 0 +Packet 21 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33344 + CKSUM: 0xa1d4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c4c3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xb408 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 22 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32332 + CKSUM: 0xab7c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c4c3a + WIN: 26280 + HLEN: 20 + CKSUM: 0x13a9 (CORRECT) + DLEN: 0 +Packet 23 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32333 + CKSUM: 0xab7b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c51ee + WIN: 29200 + HLEN: 20 + CKSUM: 0x028d (CORRECT) + DLEN: 0 +Packet 24 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33345 + CKSUM: 0xa1d3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c51ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xf4f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 25 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33346 + CKSUM: 0xa1d2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c57a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x3087 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 26 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33347 + CKSUM: 0xa1d1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c5d56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xf33c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 27 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33348 + CKSUM: 0xa408 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c630a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x2a59 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 28 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32334 + CKSUM: 0xab7a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c57a2 + WIN: 32120 + HLEN: 20 + CKSUM: 0xf170 (CORRECT) + DLEN: 0 +Packet 29 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32335 + CKSUM: 0xab79 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c5d56 + WIN: 35040 + HLEN: 20 + CKSUM: 0xe054 (CORRECT) + DLEN: 0 +Packet 30 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33349 + CKSUM: 0xa1cf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c6686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xd152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 31 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32336 + CKSUM: 0xab78 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c630a + WIN: 37960 + HLEN: 20 + CKSUM: 0xcf38 (CORRECT) + DLEN: 0 +Packet 32 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32337 + CKSUM: 0xab77 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c6686 + WIN: 37960 + HLEN: 20 + CKSUM: 0xcbbc (CORRECT) + DLEN: 0 +Packet 33 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32338 + CKSUM: 0xab76 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c6c3a + WIN: 40880 + HLEN: 20 + CKSUM: 0xbaa0 (CORRECT) + DLEN: 0 +Packet 34 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33350 + CKSUM: 0xa1ce (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c6c3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x9408 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 35 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32339 + CKSUM: 0xab75 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c71ee + WIN: 43800 + HLEN: 20 + CKSUM: 0xa984 (CORRECT) + DLEN: 0 +Packet 36 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33351 + CKSUM: 0xa1cd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c71ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xd4f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 37 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32340 + CKSUM: 0xab74 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c77a2 + WIN: 46720 + HLEN: 20 + CKSUM: 0x9868 (CORRECT) + DLEN: 0 +Packet 38 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33352 + CKSUM: 0xa1cc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476c77a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x107f (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 39 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32341 + CKSUM: 0xab73 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c7d56 + WIN: 49640 + HLEN: 20 + CKSUM: 0x874c (CORRECT) + DLEN: 0 +Packet 40 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33353 + CKSUM: 0xa1cb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c7d56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xd33c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 41 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32342 + CKSUM: 0xab72 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c830a + WIN: 52560 + HLEN: 20 + CKSUM: 0x7630 (CORRECT) + DLEN: 0 +Packet 42 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33354 + CKSUM: 0xa402 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476c830a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x0a51 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 43 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32343 + CKSUM: 0xab71 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c8686 + WIN: 52560 + HLEN: 20 + CKSUM: 0x72b4 (CORRECT) + DLEN: 0 +Packet 44 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33355 + CKSUM: 0xa1c9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c8686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xb152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 45 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32344 + CKSUM: 0xab70 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c8c3a + WIN: 55480 + HLEN: 20 + CKSUM: 0x6198 (CORRECT) + DLEN: 0 +Packet 46 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33356 + CKSUM: 0xa1c8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c8c3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x7408 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 47 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32345 + CKSUM: 0xab6f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c91ee + WIN: 58400 + HLEN: 20 + CKSUM: 0x507c (CORRECT) + DLEN: 0 +Packet 48 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33357 + CKSUM: 0xa1c7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c91ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xb4f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 49 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32346 + CKSUM: 0xab6e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c97a2 + WIN: 61320 + HLEN: 20 + CKSUM: 0x3f60 (CORRECT) + DLEN: 0 +Packet 50 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33358 + CKSUM: 0xa1c6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c97a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xf086 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 51 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32347 + CKSUM: 0xab6d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476c9d56 + WIN: 62780 + HLEN: 20 + CKSUM: 0x33f8 (CORRECT) + DLEN: 0 +Packet 52 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33359 + CKSUM: 0xa1c5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476c9d56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xb33c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 53 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33360 + CKSUM: 0xa3fc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476ca30a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xea58 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 54 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32348 + CKSUM: 0xab6c (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476ca686 + WIN: 62780 + HLEN: 20 + CKSUM: 0x2ac8 (CORRECT) + DLEN: 0 +Packet 55 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33361 + CKSUM: 0xa1c3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476ca686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x9152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 56 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33362 + CKSUM: 0xa1c2 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cac3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x5408 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 57 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32349 + CKSUM: 0xab6b (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476cb1ee + WIN: 62780 + HLEN: 20 + CKSUM: 0x1f60 (CORRECT) + DLEN: 0 +Packet 58 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33363 + CKSUM: 0xa1c1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cb1ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x94f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 59 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33364 + CKSUM: 0xa1c0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cb7a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xd086 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 60 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32350 + CKSUM: 0xab6a (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476cbd56 + WIN: 62780 + HLEN: 20 + CKSUM: 0x13f8 (CORRECT) + DLEN: 0 +Packet 61 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33365 + CKSUM: 0xa1bf (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cbd56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x933c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 62 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33366 + CKSUM: 0xa3f6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cc30a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xca58 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 63 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.774500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32351 + CKSUM: 0xab69 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476cc686 + WIN: 62780 + HLEN: 20 + CKSUM: 0x0ac8 (CORRECT) + DLEN: 0 +Packet 64 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33367 + CKSUM: 0xa1bd (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cc686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x7152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 65 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33368 + CKSUM: 0xa1bc (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476ccc3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x3400 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 66 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33369 + CKSUM: 0xa1bb (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cd1ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x74f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 67 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32352 + CKSUM: 0xab68 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476cd7a2 + WIN: 62780 + HLEN: 20 + CKSUM: 0xf9ab (CORRECT) + DLEN: 0 +Packet 68 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33370 + CKSUM: 0xa1ba (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cd7a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xb086 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 69 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33371 + CKSUM: 0xa1b9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cdd56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x733c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 70 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32353 + CKSUM: 0xab67 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476ce30a + WIN: 62780 + HLEN: 20 + CKSUM: 0xee43 (CORRECT) + DLEN: 0 +Packet 71 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33372 + CKSUM: 0xa3f0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476ce30a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xaa50 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 72 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32354 + CKSUM: 0xab66 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476ce686 + WIN: 62780 + HLEN: 20 + CKSUM: 0xeac7 (CORRECT) + DLEN: 0 +Packet 73 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33373 + CKSUM: 0xa1b7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476ce686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x5152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 74 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33374 + CKSUM: 0xa1b6 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cec3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x1408 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 75 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32355 + CKSUM: 0xab65 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476cf1ee + WIN: 62780 + HLEN: 20 + CKSUM: 0xdf5f (CORRECT) + DLEN: 0 +Packet 76 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33375 + CKSUM: 0xa1b5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cf1ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x54f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 77 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33376 + CKSUM: 0xa1b4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cf7a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x9086 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 78 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32356 + CKSUM: 0xab64 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476cfd56 + WIN: 62780 + HLEN: 20 + CKSUM: 0xd3f7 (CORRECT) + DLEN: 0 +Packet 79 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33377 + CKSUM: 0xa1b3 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476cfd56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x533c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 80 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33378 + CKSUM: 0xa3ea (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476d030a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x8a50 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 81 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32357 + CKSUM: 0xab63 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d0686 + WIN: 62780 + HLEN: 20 + CKSUM: 0xcac7 (CORRECT) + DLEN: 0 +Packet 82 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33379 + CKSUM: 0xa1b1 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d0686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x3152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 83 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33380 + CKSUM: 0xa1b0 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476d0c3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xf3ff (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 84 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32358 + CKSUM: 0xab62 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d11ee + WIN: 62780 + HLEN: 20 + CKSUM: 0xbf5f (CORRECT) + DLEN: 0 +Packet 85 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33381 + CKSUM: 0xa1af (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d11ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x34f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 86 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33382 + CKSUM: 0xa1ae (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476d17a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x707e (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 87 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32359 + CKSUM: 0xab61 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d1d56 + WIN: 62780 + HLEN: 20 + CKSUM: 0xb3f7 (CORRECT) + DLEN: 0 +Packet 88 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33383 + CKSUM: 0xa1ad (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d1d56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x333c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 89 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33384 + CKSUM: 0xa3e4 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -AP--- (0x18) + SEQ: 0x476d230a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x6a50 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 90 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32360 + CKSUM: 0xab60 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d2686 + WIN: 62780 + HLEN: 20 + CKSUM: 0xaac7 (CORRECT) + DLEN: 0 +Packet 91 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33385 + CKSUM: 0xa1ab (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d2686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x1152 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 92 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33386 + CKSUM: 0xa1aa (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d2c3a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xd407 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 93 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32361 + CKSUM: 0xab5f (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d31ee + WIN: 62780 + HLEN: 20 + CKSUM: 0x9f5f (CORRECT) + DLEN: 0 +Packet 94 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33387 + CKSUM: 0xa1a9 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d31ee + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x14f9 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 95 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33388 + CKSUM: 0xa1a8 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d37a2 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x5086 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 96 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32362 + CKSUM: 0xab5e (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d3d56 + WIN: 62780 + HLEN: 20 + CKSUM: 0x93f7 (CORRECT) + DLEN: 0 +Packet 97 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33389 + CKSUM: 0xa1a7 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d3d56 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x133c (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +Packet 98 + Packet Length: 946 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 932 + ID: 33390 + CKSUM: 0xa3de (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d430a + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0x4a58 (too short to verify) + DLEN: 892 (only 14 bytes in dump file) + data: 892 bytes +Packet 99 + Packet Length: 54 + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 00:01:03:23:ae:97 + ETH Dest: 08:00:20:d9:01:87 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.151 + IP Dest: 132.235.3.154 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 40 + ID: 32363 + CKSUM: 0xab5d (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 5001 + DPRT: 58213 + FLG: -A---- (0x10) + SEQ: 0x500a49dc + ACK: 0x476d4686 + WIN: 62780 + HLEN: 20 + CKSUM: 0x8ac7 (CORRECT) + DLEN: 0 +Packet 100 + Packet Length: 1514 (saved length 68) + Collected: Mon Jul 30 16:41:35.784500 2001 + ETH Srce: 08:00:20:d9:01:87 + ETH Dest: 00:01:03:23:ae:97 + Type: 0x800 (IP) + IP VERS: 4 + IP Srce: 132.235.3.154 + IP Dest: 132.235.3.151 + Type: 0x6 (TCP) + HLEN: 20 + TTL: 64 + LEN: 1500 + ID: 33391 + CKSUM: 0xa1a5 (CORRECT) + OFFSET: 0x4000 Don't Fragment + + TCP SPRT: 58213 + DPRT: 5001 + FLG: -A---- (0x10) + SEQ: 0x476d4686 + ACK: 0x500a49dc + WIN: 24820 + HLEN: 20 + CKSUM: 0xf151 (too short to verify) + DLEN: 1460 (only 14 bytes in dump file) + data: 1460 bytes +100 packets seen, 96 TCP packets traced +trace file elapsed time: 0:00:07.530000 +bad IP checksums: 0 +bad TCP checksums: 0 +TCP connection info: + 1: 132.235.3.154:58213 - 132.235.3.151:5001 (a2b) 57> 39< diff --git a/input/OUTPUTbench/zwnd.dmp.gz.short b/input/OUTPUTbench/zwnd.dmp.gz.short new file mode 100644 index 0000000..fd5cf9a --- /dev/null +++ b/input/OUTPUTbench/zwnd.dmp.gz.short @@ -0,0 +1,6 @@ +1 arg remaining, starting with 'zwnd.dmp.gz' + +26690 packets seen, 26686 TCP packets traced +trace file elapsed time: 0:00:32.259999 +TCP connection info: + 1: 132.235.3.154:58213 - 132.235.3.151:5001 (a2b) 17995> 8691< (complete) diff --git a/input/OUTPUTbench/zwnd.dmp.gz.xplots.cksum b/input/OUTPUTbench/zwnd.dmp.gz.xplots.cksum new file mode 100644 index 0000000..f7c5492 --- /dev/null +++ b/input/OUTPUTbench/zwnd.dmp.gz.xplots.cksum @@ -0,0 +1,11 @@ +3362183286 214535 a2b_owin.xpl +1451475280 113 a2b_rtt.xpl +1896664633 104726 a2b_ssize.xpl +1608365994 37043 a2b_tput.xpl +2303776360 177194 a2b_tsg.xpl +2955533251 177936 a_b_tline.xpl +2169788936 99226 b2a_owin.xpl +1914870632 113 b2a_rtt.xpl +947485969 128 b2a_ssize.xpl +1194074221 119 b2a_tput.xpl +2019275001 159633 b2a_tsg.xpl diff --git a/input/README b/input/README new file mode 100644 index 0000000..e95d13a --- /dev/null +++ b/input/README @@ -0,0 +1,3 @@ +The files in this directory are just various interesting +trace files to try. It also serves as a simple regression test for +new versions. diff --git a/input/all.snoop.gz b/input/all.snoop.gz new file mode 100644 index 0000000..8c4a770 Binary files /dev/null and b/input/all.snoop.gz differ diff --git a/input/atm.erf.gz b/input/atm.erf.gz new file mode 100644 index 0000000..55547b8 Binary files /dev/null and b/input/atm.erf.gz differ diff --git a/input/bad_ack_code.dmp.gz b/input/bad_ack_code.dmp.gz new file mode 100644 index 0000000..d8b4a4a Binary files /dev/null and b/input/bad_ack_code.dmp.gz differ diff --git a/input/bad_tcp_checksum.dmp.gz b/input/bad_tcp_checksum.dmp.gz new file mode 100644 index 0000000..a5e564c Binary files /dev/null and b/input/bad_tcp_checksum.dmp.gz differ diff --git a/input/badsyns.dmp.gz b/input/badsyns.dmp.gz new file mode 100644 index 0000000..4eab001 Binary files /dev/null and b/input/badsyns.dmp.gz differ diff --git a/input/bin/GRAB_BINARY b/input/bin/GRAB_BINARY new file mode 100755 index 0000000..c9ebf25 --- /dev/null +++ b/input/bin/GRAB_BINARY @@ -0,0 +1,39 @@ +#!/bin/sh +PLATFORM=`uname -smr | sed 's/[ \.]/_/g'` +VERSION=`../versnum` +OUTDIR=OUTPUT_${VERSION}_${PLATFORM} +BINDIR=BINARY_${VERSION}_${PLATFORM} +# +echo "Saving Binary" +rm -rf ${BINDIR} +mkdir ${BINDIR} +# +# Grab docs... +# +cp ../FAQ ../CHANGES ../COPYRIGHT ../COPYING ../INSTALL ../README* ../WWW ${BINDIR} +# +# Grab binary +# +cp ../tcptrace ${BINDIR} +# +strip ${BINDIR}/tcptrace +# +# Tell how we got it... +# +cat >> ${BINDIR}/README.binary<&1 | bin/cleanup > ${OUTDIR}/$FILE.short + # long output format + echo -n " long" + ../tcptrace +t -lnrW ${FILE} 2>&1 | bin/cleanup > ${OUTDIR}/$FILE.long + # first 100 packets + echo -n " packets" + ../tcptrace +t -pn -E100 --checksum ${FILE} | bin/cleanup > ${OUTDIR}/$FILE.packets + # ALL PLOTS for first 1000 packets + echo -n " plots" + ../tcptrace +t -n -G -E1000 --output_dir=. ${FILE} > /dev/null 2>&1 + cksum *.xpl 2>/dev/null | sed 's/[ ][ ]*/ /g' > ${OUTDIR}/$FILE.xplots.cksum +# tar cf ${OUTDIR}/$FILE.xplots.tar *.xpl 2>/dev/null + # cleanup + rm -f *.xpl + echo "." +done +# +echo "Testing for differences from benchmark output" +diff -r OUTPUTbench ${OUTDIR} | tee ${DIFFS} +# +exit 0 diff --git a/input/bin/cleanup b/input/bin/cleanup new file mode 100755 index 0000000..da3600b --- /dev/null +++ b/input/bin/cleanup @@ -0,0 +1,6 @@ +#!/bin/sh +# +# cleanup tcptrace output for regression +# mostly just remove output that I don't EXPECT to be the same +# +grep -v "elapsed wallclock" | grep -v "Ostermann's tcptrace -- version" diff --git a/input/chdlc.erf.gz b/input/chdlc.erf.gz new file mode 100644 index 0000000..b7d3def Binary files /dev/null and b/input/chdlc.erf.gz differ diff --git a/input/discard.solaris.dmp.gz b/input/discard.solaris.dmp.gz new file mode 100644 index 0000000..66e1b58 Binary files /dev/null and b/input/discard.solaris.dmp.gz differ diff --git a/input/dlt_null.dmp.gz b/input/dlt_null.dmp.gz new file mode 100644 index 0000000..9ba05b7 Binary files /dev/null and b/input/dlt_null.dmp.gz differ diff --git a/input/dsack.dmp.gz b/input/dsack.dmp.gz new file mode 100644 index 0000000..980fc67 Binary files /dev/null and b/input/dsack.dmp.gz differ diff --git a/input/eth.erf.gz b/input/eth.erf.gz new file mode 100644 index 0000000..cb16a5d Binary files /dev/null and b/input/eth.erf.gz differ diff --git a/input/fast_reuse.dmp.gz b/input/fast_reuse.dmp.gz new file mode 100644 index 0000000..c79c742 Binary files /dev/null and b/input/fast_reuse.dmp.gz differ diff --git a/input/finger.netm.gz b/input/finger.netm.gz new file mode 100644 index 0000000..3555023 Binary files /dev/null and b/input/finger.netm.gz differ diff --git a/input/finger.snoop.gz b/input/finger.snoop.gz new file mode 100644 index 0000000..d845b70 Binary files /dev/null and b/input/finger.snoop.gz differ diff --git a/input/first_seg_ooo.dmp.gz b/input/first_seg_ooo.dmp.gz new file mode 100644 index 0000000..5d77d7e Binary files /dev/null and b/input/first_seg_ooo.dmp.gz differ diff --git a/input/hardware_dups.dmp.gz b/input/hardware_dups.dmp.gz new file mode 100644 index 0000000..8e2674a Binary files /dev/null and b/input/hardware_dups.dmp.gz differ diff --git a/input/http.dmp.gz b/input/http.dmp.gz new file mode 100644 index 0000000..e9facf6 Binary files /dev/null and b/input/http.dmp.gz differ diff --git a/input/http.epeek7.gz b/input/http.epeek7.gz new file mode 100644 index 0000000..2c58940 Binary files /dev/null and b/input/http.epeek7.gz differ diff --git a/input/ipfrags.dmp.gz b/input/ipfrags.dmp.gz new file mode 100644 index 0000000..2e317f1 Binary files /dev/null and b/input/ipfrags.dmp.gz differ diff --git a/input/ipopts.dmp.gz b/input/ipopts.dmp.gz new file mode 100644 index 0000000..a2b9809 Binary files /dev/null and b/input/ipopts.dmp.gz differ diff --git a/input/ipv6_ftp_nasa.snp.gz b/input/ipv6_ftp_nasa.snp.gz new file mode 100644 index 0000000..7ae96eb Binary files /dev/null and b/input/ipv6_ftp_nasa.snp.gz differ diff --git a/input/linux_cooked_socket.dmp.gz b/input/linux_cooked_socket.dmp.gz new file mode 100644 index 0000000..5b1b470 Binary files /dev/null and b/input/linux_cooked_socket.dmp.gz differ diff --git a/input/long_rtt.dmp.gz b/input/long_rtt.dmp.gz new file mode 100644 index 0000000..e13e0f3 Binary files /dev/null and b/input/long_rtt.dmp.gz differ diff --git a/input/nlanr.tsh.gz b/input/nlanr.tsh.gz new file mode 100644 index 0000000..81aa8a1 Binary files /dev/null and b/input/nlanr.tsh.gz differ diff --git a/input/pcap_v2.2.dmp.gz b/input/pcap_v2.2.dmp.gz new file mode 100644 index 0000000..2956b7d Binary files /dev/null and b/input/pcap_v2.2.dmp.gz differ diff --git a/input/ppp_encap.dmp.gz b/input/ppp_encap.dmp.gz new file mode 100755 index 0000000..0009f5d Binary files /dev/null and b/input/ppp_encap.dmp.gz differ diff --git a/input/ppp_over_eth.dmp.gz b/input/ppp_over_eth.dmp.gz new file mode 100644 index 0000000..b50a03d Binary files /dev/null and b/input/ppp_over_eth.dmp.gz differ diff --git a/input/psc.fddi.dmp.gz b/input/psc.fddi.dmp.gz new file mode 100644 index 0000000..b4229df Binary files /dev/null and b/input/psc.fddi.dmp.gz differ diff --git a/input/rawip.dmp.gz b/input/rawip.dmp.gz new file mode 100644 index 0000000..3d2ae79 Binary files /dev/null and b/input/rawip.dmp.gz differ diff --git a/input/rawppp.pcap.gz b/input/rawppp.pcap.gz new file mode 100644 index 0000000..dd1b278 Binary files /dev/null and b/input/rawppp.pcap.gz differ diff --git a/input/reno.epeek.gz b/input/reno.epeek.gz new file mode 100644 index 0000000..77a5dbd Binary files /dev/null and b/input/reno.epeek.gz differ diff --git a/input/sack_nasa_sim.dump.gz b/input/sack_nasa_sim.dump.gz new file mode 100644 index 0000000..5c77bd3 Binary files /dev/null and b/input/sack_nasa_sim.dump.gz differ diff --git a/input/single_byte_rexmit.dmp.gz b/input/single_byte_rexmit.dmp.gz new file mode 100644 index 0000000..b5e61dc Binary files /dev/null and b/input/single_byte_rexmit.dmp.gz differ diff --git a/input/tcp.dmp.gz b/input/tcp.dmp.gz new file mode 100644 index 0000000..c8a2779 Binary files /dev/null and b/input/tcp.dmp.gz differ diff --git a/input/tcpudp.dmp.gz b/input/tcpudp.dmp.gz new file mode 100644 index 0000000..fe58aca Binary files /dev/null and b/input/tcpudp.dmp.gz differ diff --git a/input/trunc.dmp.gz b/input/trunc.dmp.gz new file mode 100644 index 0000000..b6fba8b Binary files /dev/null and b/input/trunc.dmp.gz differ diff --git a/input/udp.dmp.gz b/input/udp.dmp.gz new file mode 100644 index 0000000..f573d4c Binary files /dev/null and b/input/udp.dmp.gz differ diff --git a/input/udpping.dmp.gz b/input/udpping.dmp.gz new file mode 100644 index 0000000..acaa0cc Binary files /dev/null and b/input/udpping.dmp.gz differ diff --git a/input/urgent.dmp.gz b/input/urgent.dmp.gz new file mode 100644 index 0000000..c3eef37 Binary files /dev/null and b/input/urgent.dmp.gz differ diff --git a/input/zwnd.dmp.gz b/input/zwnd.dmp.gz new file mode 100644 index 0000000..d2d2166 Binary files /dev/null and b/input/zwnd.dmp.gz differ diff --git a/install-sh b/install-sh new file mode 100755 index 0000000..ebc6691 --- /dev/null +++ b/install-sh @@ -0,0 +1,250 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/ipv6.c b/ipv6.c new file mode 100644 index 0000000..0271de7 --- /dev/null +++ b/ipv6.c @@ -0,0 +1,718 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Nasseef Abukamail + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/ipv6.c,v 5.26 2004/11/04 21:55:37 sdo Exp $"; + + + +/* the names of IPv6 extensions that we understand */ +char * +ipv6_header_name( + u_char nextheader) +{ + switch (nextheader) { + case IPPROTO_DSTOPTS: return("Destinations options"); + case IPPROTO_FRAGMENT: return("Fragment header"); + case IPPROTO_HOPOPTS: return("Hop by hop"); + case IPPROTO_NONE: return("No next header"); + case IPPROTO_ROUTING: return("Routing header"); + case IPPROTO_ICMPV6: return("IPv6 ICMP"); + case IPPROTO_TCP: return("TCP"); + case IPPROTO_UDP: return("UDP"); + default: return(""); + } +} + + +/* given a next header type and a pointer to the header, return a pointer + to the next extension header and type */ +struct ipv6_ext * +ipv6_nextheader( + void *pheader0, + u_char *pnextheader) +{ + struct ipv6_ext *pheader = pheader0; + + switch (*pnextheader) { + /* nothing follows these... */ + case IPPROTO_TCP: + case IPPROTO_NONE: + case IPPROTO_ICMPV6: + case IPPROTO_UDP: + return(NULL); + + /* somebody follows these */ + case IPPROTO_HOPOPTS: + case IPPROTO_ROUTING: + case IPPROTO_DSTOPTS: + *pnextheader = pheader->ip6ext_nheader; + + /* sanity check, if length is 0, terminate */ + /* As per RFC 2460 : ip6ext_len specifies the extended + header length, in units of 8 octets *not including* the + first 8 octets. So ip6ext_len can be 0 and hence, + we cannot perform the sanity check any more. + + Hence commenting out the sanity check - Mani*/ + + /* if (pheader->ip6ext_len == 0) + return(NULL); */ + + return((struct ipv6_ext *) + ((char *)pheader + 8 + (pheader->ip6ext_len)*8)); + + /* I don't understand them. Just save the type and return a NULL */ + default: + *pnextheader = pheader->ip6ext_nheader; + return(NULL); + } +} + + + +/* + * findheader: find and return a pointer to a header. + * Skips either ip or ipv6 headers + * return values: 0 - found header + * 1 - correct protocol, invalid packet, cannot return header + * -1 - different protocol, cannot return header + */ +static int +findheader( + u_int ipproto, + struct ip *pip, + void **pphdr, + void **pplast) +{ + struct ipv6 *pip6 = (struct ipv6 *)pip; + char nextheader; + struct ipv6_ext *pheader; + void *theheader; + + /* IPv4 is easy */ + if (PIP_ISV4(pip)) { + /* make sure it's what we want */ + if (pip->ip_p != ipproto) + return (-1); + + /* check the fragment field, if it's not the first fragment, + it's useless (offset part of field must be 0 */ + if ((ntohs(pip->ip_off)&0x1fff) != 0) { + if (debug>1) { + printf("findheader: Skipping IPv4 non-initial fragment\n"); + if (debug > 2) { + printpacket(100,100,NULL,0,pip,*pplast,NULL); + } + } + return (1); + } + + /* OK, it starts here */ + theheader = ((char *)pip + 4*IP_HL(pip)); + + /* adjust plast in accordance with ip_len (really short packets get garbage) */ + if (((char *)pip + ntohs(pip->ip_len) - 1) < (char *)(*pplast)) { + *pplast = (char *)((char *)pip + ntohs(pip->ip_len)); + } + +#ifdef OLD + /* this is better verified when used, the error message is better */ + + /* make sure the whole header is there */ + if ((char *)ptcp + (sizeof struct tcphdr) - 1 > (char *)*pplast) { + /* part of the header is missing */ + return (1); + } +#endif + + *pphdr = theheader; + return (0); + } + + /* otherwise, we only understand IPv6 */ + if (!PIP_ISV6(pip)) + return (-1); + + /* find the first header */ + nextheader = pip6->ip6_nheader; + pheader = (struct ipv6_ext *)(pip6+1); + + /* loop until we find the header we want or give up */ + while (1) { + /* sanity check, if we're reading bogus header, the length might */ + /* be wonky, so make sure before you dereference anything!! */ + if ((char *)pheader < (char *)pip) { + if (debug>1) + printf("findheader: bad extension header math, skipping packet\n"); + return (1); + } + + /* make sure we're still within the packet */ + /* might be truncated, or might be bad header math */ + if ((char *)pheader > (char *)*pplast) { + if (debug>3) + printf("findheader: packet truncated before finding header\n"); + return (1); + } + + /* this is what we want */ + if (nextheader == ipproto) { + *pphdr = pheader; + return (0); + } + + switch (nextheader) { + case IPPROTO_TCP: + return (-1); /* didn't find it */ + case IPPROTO_UDP: + return (-1); /* didn't find it */ + + /* fragmentation */ + case IPPROTO_FRAGMENT: + { + struct ipv6_ext_frag *pfrag = (struct ipv6_ext_frag *)pheader; + + /* if this isn't the FIRST fragment, there won't be a TCP header + anyway */ + if ((pfrag->ip6ext_fr_offset&0xfc) != 0) { + /* the offset is non-zero */ + if (debug>1) + printf("findheader: Skipping IPv6 non-initial fragment\n"); + return (1); + } + + /* otherwise it's either an entire segment or the first fragment */ + nextheader = pfrag->ip6ext_fr_nheader; + /* Pass to the next octet following the fragmentation + header */ + pheader = (struct ipv6_ext *) + ((char *)pheader + sizeof(struct ipv6_ext_frag)); + break; + } + + /* headers we just skip over */ + case IPPROTO_HOPOPTS: + case IPPROTO_ROUTING: + case IPPROTO_DSTOPTS: + nextheader = pheader->ip6ext_nheader; + + /* As per RFC 2460 : ip6ext_len specifies the extended + header length, in units of 8 octets *not including* the + first 8 octets. */ + + pheader = (struct ipv6_ext *) + ((char *)pheader + 8 + (pheader->ip6ext_len)*8); + break; + /* non-tcp protocols, so we're finished. */ + case IPPROTO_NONE: + case IPPROTO_ICMPV6: + return (-1); /* didn't find it */ + + /* I "think" that we can just skip over it, but better be careful */ + default: + nextheader = pheader->ip6ext_nheader; + + pheader = (struct ipv6_ext *) + ((char *)pheader + 8 + (pheader->ip6ext_len)*8); + break; + + } /* end switch */ + } /* end loop */ + + /* shouldn't get here, but just in case :-) */ + return (-1); +} + +/* Added Aug 31, 2001 -- Avinash. + * getroutingheader: return a pointer to the routing header in an ipv6 packet. + * Looks through all the IPv6 extension headers for the routing header. + * Used while computing the IPv6 checksums. + */ +int +getroutingheader( + struct ip *pip, + struct ipv6_ext **ppipv6_ext, + void **pplast) +{ + int ret_val = findheader(IPPROTO_ROUTING, pip, (void **)ppipv6_ext, pplast); + return (ret_val); +} + + +/* + * gettcp: return a pointer to a tcp header. + * Skips either ip or ipv6 headers + */ +int +gettcp( + struct ip *pip, + struct tcphdr **pptcp, + void **pplast) +{ + int ret_val = findheader(IPPROTO_TCP, pip, (void **)pptcp, pplast); + return (ret_val); +} + + +/* + * getudp: return a pointer to a udp header. + * Skips either ip or ipv6 headers + */ +int +getudp( + struct ip *pip, + struct udphdr **ppudp, + void **pplast) +{ + int ret_val = findheader(IPPROTO_UDP, pip, (void **)ppudp, pplast); + return (ret_val); +} + + + +/* + * gethdrlength: returns the length of the header in the case of ipv4 + * returns the length of all the headers in the case of ipv6 + */ +int gethdrlength (struct ip *pip, void *plast) +{ + int length, nextheader; + char *pheader; + struct ipv6 *pipv6; + + if (PIP_ISV6(pip)) { + length = 40; + + pheader = (char *) pip; + nextheader = *(pheader + 6); + pheader += 40; + + pipv6 = (struct ipv6 *) pip; + while (1) + { + if (nextheader == IPPROTO_NONE) + return length; + if (nextheader == IPPROTO_TCP) + return length; + if (nextheader == IPPROTO_UDP) + return length; + if (nextheader == IPPROTO_FRAGMENT) + { + nextheader = *pheader; + pheader += 8; + length += 8; + } + if ((nextheader == IPPROTO_HOPOPTS) || + (nextheader == IPPROTO_ROUTING) || + (nextheader == IPPROTO_DSTOPTS)) + { + // Thanks to patch sent by Thomas Bohnert + // Header length field in these IPv6 extension headers + // stores the length of the header in units of 8 bytes, + // *without* counting the mandatory 8 bytes + + nextheader = *pheader; + length += (*(pheader+1) + 1) * 8; + pheader += (*(pheader+1) + 1) * 8; + } + // IPv6 encapsulated in IPv6 + if (nextheader == IPPROTO_IPV6) + { + pheader += 40; + nextheader=*(pheader+6); + length += 40; + } + + if (pheader > (char *)plast) + return -1; + } + } + else + { + return IP_HL(pip) * 4; + } +} + +/* + * getpayloadlength: returns the length of the packet without the header. + */ +int getpayloadlength (struct ip *pip, void *plast) +{ + struct ipv6 *pipv6; + + if (PIP_ISV6(pip)) { + pipv6 = (struct ipv6 *) pip; /* how about all headers */ + return ntohs(pipv6->ip6_lngth); + } + return ntohs(pip->ip_len) - (IP_HL(pip) * 4); +} + + + +#ifdef OLD_THESE_MOVED_TO_TRACE_C +/* + * ipcopyaddr: copy an IPv4 or IPv6 address + * (note - this is obsolete in favor of the inline-able + * IP_COPYADDR in tcptrace.h) + */ +void ip_copyaddr (ipaddr *ptoaddr, ipaddr *pfromaddr) +{ + if (ADDR_ISV6(pfromaddr)) { + memcpy(ptoaddr->un.ip6.s6_addr, pfromaddr->un.ip6.s6_addr, 16); + ptoaddr->addr_vers = 6; + } else { + ptoaddr->un.ip4.s_addr = pfromaddr->un.ip4.s_addr; + ptoaddr->addr_vers = 4; + } +} + + + +/* + * ipsameaddr: test for equality of two IPv4 or IPv6 addresses + * (note - this is obsolete in favor of the inline-able + * IP_SAMEADDR in tcptrace.h) + */ +int ip_sameaddr (ipaddr *paddr1, ipaddr *paddr2) +{ + int ret = 0; + if (ADDR_ISV6(paddr1)) { + if (ADDR_ISV6(paddr2)) + ret = (memcmp(paddr1->un.ip6.s6_addr, + paddr2->un.ip6.s6_addr,16) == 0); + } else { + if (ADDR_ISV4(paddr2)) + ret = (paddr1->un.ip4.s_addr == paddr2->un.ip4.s_addr); + } + if (debug > 3) + printf("SameAddr(%s(%d),%s(%d)) returns %d\n", + HostName(*paddr1), ADDR_VERSION(paddr1), + HostName(*paddr2), ADDR_VERSION(paddr2), + ret); + return ret; +} + +/* + * iplowaddr: test if one IPv4 or IPv6 address is lower than the second one + * (note - this is obsolete in favor of the inline-able + * IP_LOWADDR in tcptrace.h) + */ +int ip_lowaddr (ipaddr *paddr1, ipaddr *paddr2) +{ + int ret = 0; + if (ADDR_ISV6(paddr1)) { + if (ADDR_ISV6(paddr2)) + ret = (memcmp(paddr1->un.ip6.s6_addr, + paddr2->un.ip6.s6_addr,16) < 0); + } else { + /* already know ADDR_ISV4(paddr1) */ + if (ADDR_ISV4(paddr2)) + ret = (paddr1->un.ip4.s_addr < paddr2->un.ip4.s_addr); + } + if (debug > 3) + printf("LowAddr(%s(%d),%s(%d)) returns %d\n", + HostName(*paddr1), ADDR_VERSION(paddr1), + HostName(*paddr2), ADDR_VERSION(paddr2), + ret); + return ret; +} +#endif /* OLD_THESE_MOVED_TO_TRACE_C */ + + +#ifndef HAVE_INET_PTON +int +inet_pton(int af, const char *src, void *dst) +{ + if (af == AF_INET) { + /* use standard function */ + long answer = inet_addr(src); + if (answer != -1) { + *((long *)dst) = answer; + return(1); + } + } else if (af == AF_INET6) { + /* YUCC - lazy for now, not fully supported */ + int shorts[8]; + if (sscanf(src,"%x:%x:%x:%x:%x:%x:%x:%x", + &shorts[0], &shorts[1], &shorts[2], &shorts[3], + &shorts[4], &shorts[5], &shorts[6], &shorts[7]) == 8) { + int i; + for (i=0; i < 8; ++i) + ((u_short *)dst)[i] = (u_short)shorts[i]; + return(1); + } + } + + /* else, it failed */ + return(0); +} +#endif /* HAVE_INET_PTON */ + + + +/* + * my_inet_ntop: makes a string address of the 16 byte ipv6 address + * We use our own because various machines print them differently + * and I wanted them to all be the same + */ +char * +my_inet_ntop(int af, const char *src, char *dst, size_t size) +{ + int i; + u_short *src_shorts = (u_short *)src; + char *ret = dst; + Bool did_shorthand = FALSE; + Bool doing_shorthand = FALSE; + + /* sanity check, this isn't general, but doesn't need to be */ + if (size != INET6_ADDRSTRLEN) { + fprintf(stderr,"my_inet_ntop: invalid size argument\n"); + exit(-1); + } + + + /* address is 128 bits == 16 bytes == 8 shorts */ + for (i = 0; i < 8; i++) { + u_short twobytes = ntohs(src_shorts[i]); + + /* handle shorthand notation */ + if (twobytes == 0) { + if (doing_shorthand) { + /* just eat it and continue (except last 2 bytes) */ + if (i != 7) + continue; + } else if (!did_shorthand) { + /* start shorthand */ + doing_shorthand = TRUE; + continue; + } + } + + /* terminate shorthand (on non-zero or last 2 bytes) */ + if (doing_shorthand) { + doing_shorthand = FALSE; + did_shorthand = TRUE; + sprintf(dst, ":"); + dst += 1; + } + + sprintf(dst, "%04x:", twobytes); + dst += 5; + } + + /* nuke the trailing ':' */ + *(dst-1) = '\0'; + + return(ret); +} + + + +/* given an IPv4 IP address, return a pointer to a (static) ipaddr struct */ +struct ipaddr * +IPV4ADDR2ADDR( + struct in_addr *addr4) +{ + static struct ipaddr addr; + + addr.addr_vers = 4; + addr.un.ip4.s_addr = addr4->s_addr; + + return(&addr); +} + + +/* given an IPv6 IP address, return a pointer to a (static) ipaddr struct */ +struct ipaddr * +IPV6ADDR2ADDR( + struct in6_addr *addr6) +{ + static struct ipaddr addr; + + addr.addr_vers = 6; + memcpy(&addr.un.ip6.s6_addr,&addr6->s6_addr, 16); + + return(&addr); +} + + +/* given an internet address (IPv4 dotted decimal or IPv6 hex colon), + return an "ipaddr" (allocated from heap) */ +ipaddr * +str2ipaddr( + char *str) +{ + ipaddr *pipaddr; + + /* allocate space */ + pipaddr = MallocZ(sizeof(ipaddr)); + + /* N.B. - uses standard IPv6 facility inet_pton from RFC draft */ + if (strchr(str,'.') != NULL) { + /* has dots, better be IPv4 */ + pipaddr->addr_vers = 4; + if (inet_pton(AF_INET, str, + &pipaddr->un.ip4.s_addr) != 1) { + if (debug) + fprintf(stderr,"Address string '%s' unparsable as IPv4\n", + str); + return(NULL); + } + } else if (strchr(str,':') != NULL) { + /* has colons, better be IPv6 */ + pipaddr->addr_vers = 6; + if (inet_pton(AF_INET6, str, + &pipaddr->un.ip6.s6_addr) != 1) { + if (debug) + fprintf(stderr,"Address string '%s' unparsable as IPv6\n", + str); + return(NULL); + } + } else { + if (debug) + fprintf(stderr,"Address string '%s' unparsable\n", str); + return(NULL); + } + + return(pipaddr); +} + + +/* compare two IP addresses */ +/* result: */ +/* -2: different address types */ +/* -1: A < B */ +/* 0: A = B */ +/* 1: A > B */ +int IPcmp( + ipaddr *pipA, + ipaddr *pipB) +{ + int i; + int len = (pipA->addr_vers == 4)?4:6; + u_char *left = (u_char *)&pipA->un.ip4; + u_char *right = (u_char *)&pipB->un.ip4; + + /* always returns -2 unless both same type */ + if (pipA->addr_vers != pipB->addr_vers) { + if (debug>1) { + printf("IPcmp %s", HostAddr(*pipA)); + printf("%s fails, different addr types\n", + HostAddr(*pipB)); + } + return(-2); + } + + + for (i=0; i < len; ++i) { + if (left[i] < right[i]) { + return(-1); + } else if (left[i] > right[i]) { + return(1); + } + /* else ==, keep going */ + } + + /* if we got here, they're the same */ + return(0); +} + + +/* Added Aug 31, 2001 -- Avinash + * computes the total length of all the extension headers + */ +int total_length_ext_headers( + struct ipv6 *pip6) +{ + char nextheader; + struct ipv6_ext *pheader; + u_int total_length = 0; + + /* find the first header */ + nextheader = pip6->ip6_nheader; + pheader = (struct ipv6_ext *)(pip6+1); + + + while(1) { + switch(nextheader) { + case IPPROTO_HOPOPTS: + case IPPROTO_ROUTING: + case IPPROTO_DSTOPTS: + total_length = 8 + (pheader->ip6ext_len * 8); + nextheader = pheader->ip6ext_nheader; + pheader = (struct ipv6_ext *) + ((char *)pheader + 8 + (pheader->ip6ext_len)*8); + break; + + case IPPROTO_FRAGMENT: + total_length += 8; + nextheader = pheader->ip6ext_nheader; + pheader = (struct ipv6_ext *)((char *)pheader + 8); + break; + + case IPPROTO_NONE: /* End of extension headers */ + return(total_length); + + case IPPROTO_TCP: /* No extension headers */ + return(0); + + default: /* Unknown type */ + return(-1); + } + } +} + diff --git a/ipv6.h b/ipv6.h new file mode 100644 index 0000000..a49ce36 --- /dev/null +++ b/ipv6.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_ipv6[] = + "@(#)$Header: /usr/local/cvs/tcptrace/ipv6.h,v 5.12 2003/11/19 14:38:07 sdo Exp $"; + + +/* + * ipv6.h: + * + * Structures for IPv6 packets + * + */ +#include + +#ifndef ETHERTYPE_IPV6 +#define ETHERTYPE_IPV6 0x86DD /* Ethernet type for ipv6 */ +#endif + +/* just guessing... */ +#if !defined(IPPROTO_NONE) && !defined(IPPROTO_FRAGMENT) && !defined(IPPROTO_DSTOPTS) && !defined(INET6_ADDRSTRLEN) +/* when IPv6 is more widely/standardly deployed, these constants won't need to be + here. In the mean time, here's the stuff we need... */ +#define IPV6NOTFOUND + +/* header types */ +#define IPPROTO_HOPOPTS 0 /* Hop by hop header for v6 */ +#define IPPROTO_IPV6 41 /* IPv6 encapsulated in IP */ +#define IPPROTO_ROUTING 43 /* Routing header for IPv6 */ +#define IPPROTO_FRAGMENT 44 /* Fragment header for IPv6 */ +#define IPPROTO_ICMPV6 58 /* ICMP for IPv6 */ +#define IPPROTO_NONE 59 /* No next header for IPv6 */ +#define IPPROTO_DSTOPTS 60 /* Destinations options */ + +/* other constants we need */ +#define INET6_ADDRSTRLEN 46 /* IPv6 Address length in a string format*/ + +/* this is SOMETIMES already defined */ +#ifndef AF_INET6 +#define AF_INET6 24 /* Internet Protocol, V6 */ +#endif /* AF_INET6 */ + + + +/* + * IPv6 address data structure. + */ +#ifdef __WIN32 +typedef struct in6_addr { + u_char s6_addr[16]; /* IPv6 address */ +} in6_addr; +#endif /* __WIN32 */ + +#endif /* notdef IPPROTO_NONE */ + + +/* + * IPv6 datagram header + */ +struct ipv6 { + u_int ip6_ver_tc_flabel; /* first 4 bits = version #, + next 8 bits = Trafic class, + next 20 bits = flow label */ + u_short ip6_lngth; /* Payload length */ + u_char ip6_nheader; /* Next Header */ + u_char ip6_hlimit; /* Hop Limit */ + struct in6_addr ip6_saddr; /* Source Address */ + struct in6_addr ip6_daddr; /* Destination Address */ +}; + + +/* IPv6 extension header format */ +struct ipv6_ext { + u_char ip6ext_nheader; /* Next Header */ + u_char ip6ext_len; /* number of bytes in this header */ + u_char ip6ext_data[2]; /* optional data */ +}; + + +/* IPv6 fragmentation header */ +struct ipv6_ext_frag { + u_char ip6ext_fr_nheader; /* Next Header */ + u_char ip6ext_fr_res; /* (reserved) */ + u_short ip6ext_fr_offset; /* fragment offset(13),res(2),M(1) */ + u_long ip6ext_fr_ID; /* ID field */ +}; + + +/* tcptrace's IPv6 access routines */ +int gettcp(struct ip *pip, struct tcphdr **pptcp, void **pplast); +int getudp(struct ip *pip, struct udphdr **ppudp, void **pplast); +int getroutingheader(struct ip *pip, struct ipv6_ext **ppipv6_ext, void **pplast); +int gethdrlength (struct ip *pip, void *plast); +int getpayloadlength (struct ip *pip, void *plast); +struct ipv6_ext *ipv6_nextheader(void *pheader0, u_char *pnextheader); +char *ipv6_header_name(u_char nextheader); +char *my_inet_ntop(int af, const char *src, char *dst, size_t size); +int total_length_ext_headers(struct ipv6 *pip6); + diff --git a/make_vms.com b/make_vms.com new file mode 100755 index 0000000..d4c7533 --- /dev/null +++ b/make_vms.com @@ -0,0 +1,413 @@ +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! Make tcptrace on OpenVMS Operating System. +$! +$! This file was modified from a "Makefile" file which was produced +$! after issuing: "./configure" on a Tru64 UNIX system. +$! +$! Supported Paramters: +$! +$! CLEAN - deletes all output files +$! DEBUG - turn on debug flags in compile and link +$! +$! Logicals: +$! +$! TCPTRACE$VERIFY - if defined, then turn on verify +$! +$! Use default directory if following logicals are not defined: +$! +$! MAP$ - location to write map file +$! LIS$ - location to write lis files +$! OBJ$ - location to write obj files +$! EXE$ - location to write exe file +$! SRC$ - location of source files +$! SHRLIB$ - location of libraries (eg. PCAP.OLB) +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$ on control_y then goto ctrly_handler +$ on error then goto error_handler +$ if (f$trnlnm("tcptrace$verify") .nes. "") then SAVE_VERIFY = f$verify(1) +$! +$! Setup operating environment +$! +$ set := +$ set symbol/scope=(nolocal, noglobal) +$! +$ NETDEF = 0 +$ DEFDIR = f$environment("DEFAULT") +$ PCAPLIB = DEFDIR - "]" + ".-.PCAP.OBJ]" !!!! Directory of PCAP.OLB !!!! +$! +$ call define_concealed base_root 'DEFDIR' +$ call define_concealed tcptrace_root 'DEFDIR' +$! +$ if f$trnlnm("src$") .eqs. "" then define src$ base_root:[000000] +$ if f$trnlnm("lis$") .eqs. "" then define lis$ base_root:[lis] +$ if f$trnlnm("obj$") .eqs. "" then define obj$ base_root:[obj] +$ if f$trnlnm("exe$") .eqs. "" then define exe$ base_root:[exe] +$ if f$trnlnm("map$") .eqs. "" then define map$ exe$ ! map file in exe dir +$! +$! Sanity test - make sure SRC$ points to these sources +$! +$ if f$search("src$:tcptrace.c") .eqs. "" +$ then +$ write sys$output "" +$ write sys$output "Cannot find SRC$:TCPTRACE.C - Verify the logicals are correct" +$ write sys$output "" +$ write sys$output " SRC$ = ''f$trnlnm(""src$"")'" +$ write sys$output " BASE_ROOT = ''f$trnlnm(""base_root"")'" +$ write sys$output "" +$ goto exit +$ endif +$! +$! Create output directories if needed. +$! +$ if f$parse("lis$") .eqs. "" then create/dir/log lis$ +$ if f$parse("obj$") .eqs. "" then create/dir/log obj$ +$ if f$parse("exe$") .eqs. "" then create/dir/log exe$ +$! +$ if f$trnlnm("shrlib$") .eqs. "" then define shrlib$ 'PCAPLIB' +$! +$ P1 = f$edit(P1, "COLLAPSE,UPCASE") +$ if "''P1'" .eqs. "CLEAN +$ then +$ write sys$output "Cleaning all output files..." +$ set noon +$ define/user sys$output nl: +$ define/user sys$error nl: +$ delete/nolog obj$:*.obj.*, lis$:*.lis.*, exe$:*.exe.*, - + map$:*.map.*, exe$:*.dsf.*, obj$:*.opt.* +$ set on +$ goto exit +$ endif +$! +$! Compiler gets confused with device NET0:, a DECnet device. +$! This needs workaround when including files from net, eg. +$! +$ if f$trnlnm("net") .eqs. "" +$ then +$ define net src$ ! could be defined as junk +$ NETDEF = 1 +$ else +$ write sys$output "NET is currently defined and will not be redefined" +$ write sys$output " NET = ''f$trnlnm(""net"")'" +$ endif +$! +$ ARCH = f$getsyi("ARCH_NAME") +$ USER_NAME = f$user() +$ SCSNODE = f$getsyi("NODENAME") +$ TIME = f$time() +$! +$! Use of double-quote gets tricky for subsequent symbol substitution! +$! +$ DEFINES = ",BUILT_USER=""""""''USER_NAME'""""""" + - + ",BUILT_HOST=""""""''SCSNODE'""""""" + - + ",BUILT_DATE=""""""''TIME'""""""" +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! tcptrace supports reading compressed files with a little help... +$! 1) If your system has "gunzip", then uncomment the following line to +$! support on-the-fly decompression of ".gz" and ".Z" files... +$ DEFINES = DEFINES + ",GUNZIP=""""""gunzip""""""" +$! +$! +$! 2) Otherwise, if your system supports standard Unix "uncompress", +$! then uncomment the following line to support on-the-fly +$! decompression of ".Z" files... +$!DEFINES = DEFINES + ",UNCOMPRESS=""""""uncompress""""""" +$! +$! +$! 3) Also, we assume most systems have the "bunzip2" utility installed, +$! if yours doesn't, you'll want to comment out the next line. +$!DEFINES = DEFINES + ",BUNZIP2=""""""bunzip2""""""" +$! +$! +$! - we'll do path search on the string you specify. If the program +$! isn't in your path, you'll need to give the absolute path name. +$! - if you want other formats, see the "compress.h" file. +$! +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! If you want to read tcpdump output (which you probably do), +$! you'll need the LBL PCAP library. If it's somewhere else, +$! just modify the symbol. +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$ PCAP_LDLIBS = "shrlib$:pcap/libr" +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! Plug-in modules. +$! There's no reason that I can think of to remove them, but +$! here they are. Just comment them out to omit them from +$! the binary. +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! Experimental HTTP analysis module +$! +$ DEFINES = DEFINES + ",LOAD_MODULE_HTTP, HTTP_SAFE, HTTP_DUMP_TIMES" +$! +$! Experimental overall traffic by port module +$! +$ DEFINES = DEFINES + ",LOAD_MODULE_TRAFFIC" +$! +$! Experimental traffic data by time slices module +$! +$ DEFINES = DEFINES + ",LOAD_MODULE_SLICE" +$! +$! Experimental round trip time graphs +$! +$ DEFINES = DEFINES + ",LOAD_MODULE_RTTGRAPH" +$! +$! Experimental tcplib-data generating module +$! +$!DEFINES += -DLOAD_MODULE_TCPLIB +$! +$! Experimental module for a friend +$! +$ DEFINES = DEFINES + ",LOAD_MODULE_COLLIE" +$! +$! Example module for real-time mode +$! +$ DEFINES = DEFINES + ",LOAD_MODULE_REALTIME" +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! File formats that we understand. +$! The only reason that I can see to remove one is if you don't +$! have the PCAP library, in which case you can comment out +$! GROK_TCPDUMP and still compile, but then you can't read the +$! output from tcpdump. +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! define GROK_SNOOP if you want tcptrace to understand the output +$! format of Sun's "snoop" packet sniffer. +$ DEFINES = DEFINES + ",GROK_SNOOP" +$! +$! define GROK_TCPDUMP if you want tcptrace to understand the output +$! format format of the LBL tcpdump program (see the file README.tcpdump +$! for other options) +$ DEFINES = DEFINES +",GROK_TCPDUMP" +$! +$! define GROK_NETM if you want tcptrace to understand the output +$! format of HP's "netm" monitoring system's packet sniffer. +$ DEFINES = DEFINES + ",GROK_NETM" +$! +$! define GROK_ETHERPEEK if you want tcptrace to understand the output +$! format of the Macintosh program Etherpeek +$!DEFINES = DEFINES + ",GROK_ETHERPEEK" +$! +$! define GROK_NS if you want tcptrace to understand the output +$! format of the LBL network simulator, ns +$ DEFINES = DEFINES + ",GROK_NS" +$! +$! define GROK_NLANR if you want tcptrace to understand the output +$! format of the various NLANL tools +$! (this doesn't work well yet, not recommended - Sat Dec 19, 1998) +$! DEFINES = DEFINES + ",GROK_NLANR" +$! +$! define GROK_NETSCOUT if you want tcptrace to understand ascii +$! formatted netscout output files +$ DEFINES = DEFINES + ",GROK_NETSCOUT" +$! +$! If you get multiple defines for "inet_pton", then uncomment next define +$! +$! DEFINES = DEFINES + ",HAVE_INET_PTON=1" +$! +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! Name of executable and name of foreign command used to run it. +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! Name of executable +$ EXEFILE = "tcptrace" +$ FOREIGN = "tcpanal" +$! +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$! You shouldn't need to change anything below this point +$! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$! +$ CC = "CC" +$ CCOPT = "" +$ INCLS = "" +$! +$ DEFINES = DEFINES + - + ", SIZEOF_UNSIGNED_LONG_LONG_INT=8" + - + ", SIZEOF_UNSIGNED_LONG_INT=4, SIZEOF_UNSIGNED_INT=4" + - + ", SIZEOF_UNSIGNED_SHORT=2, HAVE_MKSTEMP=1" + - + ", USE_LLU=1" +$ DEFINES = DEFINES - "," ! remove leading , character +$ CFLAGS = CCOPT +$! +$! Standard LIBS +$ LDLIBS = PCAP_LDLIBS +$! +$! Source Files +$! +$ CFILES="compress, etherpeek, gcache, mfiles, names" + - + ", netm, output, plotter, print, rexmit, snoop, nlanr" + - + ", tcpdump, tcptrace, thruput, trace, ipv6" + - + ", filt_scanner, filt_parser, filter, udp" + - + ", ns, netscout, pool, poolaccess" + - + ", dstring" +$ MODULES=", mod_http, mod_traffic, mod_rttgraph, mod_tcplib, mod_collie" + - + ", mod_slice, mod_realtime" +MODSUPPORT=", dyncounter" +VMS_FILES=", snprintf_vms" +$! +$! Retreive filt_parser and filt_scanner from flex_bison subdirectory. +$! +$ if f$search("src$:filt_parser.c") .eqs. "" +$ then +$ FLEX_BISON = DEFDIR - "]" + ".flex_bison]" +$ write sys$output "Retreiving filt_parser and filt_scanner from ''FLEX_BISON'..." +$ backup 'FLEX_BISON'filt_parser.c src$ +$ backup 'FLEX_BISON'filt_parser.h src$ +$ backup 'FLEX_BISON'filt_scanner.c src$ +$ endif +$! +$ OFILES = CFILES + MODULES + MODSUPPORT + VMS_FILES +$ OFILES = f$edit(OFILES,"TRIM,COMPRESS") +$! +$ CC_FILE = "" +$ INDEX = 0 +$ CC_OPTS = "" +$ LINK_OPTS = "" +$ if "''P1'" .eqs. "DEBUG" +$ then +$ write sys$output "Building debug image..." +$ CC_OPTS = "/DEBUG/NOOPTIMIZE/LIS=lis$/SHOW=ALL" +$ LINK_OPTS = "/DEBUG /DSF=exe$:''EXEFILE'/MAP=map$ /FULL /CROSS" +$ endif +$! +$ cc_loop: +$ FILE_NAME = f$edit(f$element(INDEX, ",", OFILES), "COLLAPSE") +$ if FILE_NAME .eqs. "," then goto cc_done +$ INDEX = INDEX + 1 +$ ! +$ ! Is file up to date? Compare revision date and time of +$ ! OBJ file with C file. (Poor man's dependency checking). +$ ! +$ OUT_OF_DATE = "TRUE" +$ OBJFILE = "obj$:" + FILE_NAME + ".obj" +$ if f$search(OBJFILE) .nes. "" +$ then +$ RDT_C = f$cvtime(f$file_attributes("src$:" + FILE_NAME + ".c", "RDT")) +$ RDT_OBJ = f$cvtime(f$file_attributes(OBJFILE, "RDT")) +$ if RDT_C .lts. RDT_OBJ then OUT_OF_DATE = "FALSE" +$ endif +$ if OUT_OF_DATE .eqs. "TRUE" +$ then +$ CC_FILE = FILE_NAME +$ write sys$output "Compiling src$:''CC_FILE'..." +$ CC src$:'CC_FILE'+src$:includes_vms/libr - + 'CC_OPTS' - + /OBJ=obj$ - + /WARN=(NOINFORMATIONALS) - + /NAMES=AS_IS - + /DEFINE=('DEFINES') +$ CC_FILE = "" ! only executed if compile is successful +$ else +$ write sys$output "src$:''FILE_NAME' up to date." +$ endif +$ goto cc_loop +$ cc_done: +$! +$ link_phase: +$! +$! Sanity check for link dependencies +$! +$ if f$search("shrlib$:pcap.olb") .eqs. "" +$ then +$ write sys$output "" +$ write sys$output "Warning - SHRLIB$:PCAP.OLB not found" +$ write sys$output "Verify logical SHRLIB$ is correct. Deassign it if needed." +$ write sys$output "" +$ write sys$output " SHRLIB$ = ''f$trnlnm(""shrlib$"")'" +$ write sys$output "" +$ goto exit +$ endif +$ OPTFILE = "src$:" + EXEFILE + ".opt" +$ INDEX = 0 +$! +$ CC_FILE = "version" ! compile this each build +$ write sys$output "Compiling src$:''CC_FILE'..." +$ CC src$:'CC_FILE' - + 'CC_OPTS' - + /OBJ=obj$ - + /WARN=(NOINFORMATIONALS) - + /NAMES=AS_IS - + /DEFINE=('DEFINES') +$ CC_FILE = "" ! only executed if compile is successful +$ write sys$output "Linking exe$:''EXEFILE'..." +$ link 'LINK_OPTS' 'OPTFILE'/OPT /EXE=exe$:'EXEFILE' +'LDLIBS' +$! +$! All done. Create a foreign command to run this EXEFILE. +$! +$ write sys$output "Success!" +$ write sys$output "Foreign command defined as:" +$ set symbol/scope=(nolocal,global) ! need to define global symbol +$ 'FOREIGN' :== $tcptrace_root:[exe]'EXEFILE'.exe +$ show symbol 'FOREIGN' +$ set symbol/scope=(nolocal,noglobal) +$ write sys$output "Use foreign command ""''FOREIGN'"" to run ""''EXEFILE'""" +$ goto exit +$! +$ file_error: +$ write sys$output "Error writing file ''OPTFILE'" +$ goto error_handler +$! +$ ctrly_handler: +$ write sys$output " pressed. Exiting. +$! +$ error_handler: +$ ! Assume module being compiled did not complete, so cleanup +$ OBJFILE = "obj$:''CC_FILE'.obj" +$ if f$search(OBJFILE) .nes. "" +$ then +$ write sys$output "Cleaning up ''OBJFILE'" +$ delete/nolog 'OBJFILE';* +$ endif +$! +$ exit: +$ set noon +$ if NETDEF .eq. 1 then deassign net +$ if (f$type(SAVE_VERIFY) .eqs. "") then exit 1 +$ exit 1 + (0 * 'f$verify(SAVE_VERIFY)') +$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +$ define_concealed: +$ subroutine +$! +$! P1 - name of concealed logical to be defined +$! P2 - directory specification to become the root +$! P3 - optional switches to the "define" command +$! +$! Contributed by John Gillings, Sydney CSC. +$! +$ CONC = f$trnlnm(f$parse(P2,,,"DEVICE") - ":") +$ if f$locate("<",CONC) .lt. f$length(CONC) +$ then +$ L="<" +$ R=">" +$ else +$ L="[" +$ R="]" +$ endif +$ TRANS = (f$parse(P2,,,"DEVICE","NO_CONCEAL")+- + f$parse(P2,L+"000000"+R,,"DIRECTORY","NO_CONCEAL")) - - + (R+L)-("000000"+R)-("."+R)+"*"-".*"-"*"-R+("."+R)-(L+"."+R) +$ define/translation_attributes=(terminal,concealed)'P3' 'P1' 'TRANS' +$ exit 1 ! success +$ endsubroutine diff --git a/mfiles.c b/mfiles.c new file mode 100644 index 0000000..71524ab --- /dev/null +++ b/mfiles.c @@ -0,0 +1,488 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mfiles.c,v 5.10 2004/09/28 18:59:35 mramadas Exp $"; + + +/* + * tcptrace.c - turn protocol monitor traces into xplot + * + * this set of functions allows a user to open "many files" + * dispite the open file max limit. (Uses LRU) + * + * Author: Shawn Ostermann + * Date: Tue Nov 1, 1994 + */ + +#include + + +struct mfile { + FILE *stream; + char *fname; + MFILE *next; + MFILE *prev; + long fptr; +}; + + +/* local static routines */ +static void Mcheck(MFILE *pmf); +static void Mfopen_internal(MFILE *pmf, char *mode); +static void Mf_totail(MFILE *pmf, MFILE *ptail); +static void Mf_unlink(MFILE *pmf); +static void M_closeold(void); +static void M_mkdirp(char *directory); + + +/* head and tail of LRU open file list */ +MFILE mf_head; /* LEAST recently used */ +MFILE mf_tail; /* MOST recently used */ + +MFILE mfc_head; /* closed files, LEAST recently closed */ +MFILE mfc_tail; /* closed files, MOST recently closed */ + + +void +Minit(void) +{ + mf_head.next = &mf_tail; + mf_tail.prev = &mf_head; + mf_head.fname = "HEAD"; + mf_tail.fname = "TAIL"; + + mfc_head.next = &mfc_tail; + mfc_tail.prev = &mfc_head; + mfc_head.fname = "CLOSED HEAD"; + mfc_tail.fname = "CLOSED TAIL"; +} + + + + +MFILE * +Mfopen( + char *fname, + char *mode) +{ + MFILE *pmf; + char *directory; + char *prefix; + int len; + + if ((strcmp(mode,"w") != 0) && (strcmp(mode,"a") != 0)){ + fprintf(stderr,"Sorry, Mfopen works only for mode \"w\" or \"a\"\n"); + exit(-1); + } + + pmf = (MFILE *) MallocZ(sizeof(MFILE)); + + /* use the directory specified by the user, if requested */ + if (output_file_dir == NULL) + directory = ""; + else { + directory = ExpandFormat(output_file_dir); + M_mkdirp(directory); + } + + /* attach a filename prefix, if the user asked for one */ + if (output_file_prefix == NULL) + prefix = ""; + else + prefix = ExpandFormat(output_file_prefix); + + + len=strlen(fname)+strlen(directory)+strlen(prefix)+2; + /* 2: for the slash and null */ + + pmf->fname = MallocZ(len); + + snprintf(pmf->fname,len,"%s%s%s%s", + directory, + (*directory)?"/":"", + prefix, + fname); + + // The 'b' in the file mode has no meaning in UNIX systems. + // It has meaning in Operating Systems like Windows that + // seem to treat text and binary files differently. + if (strcmp(mode,"w") == 0) + Mfopen_internal(pmf,"wb+"); + else if (strcmp(mode,"a") == 0) + Mfopen_internal(pmf,"ab+"); + else { + fprintf(stderr,"Mfopen: internal file mode inconsistancy\n"); + exit(10); + } + + /* put at the tail of the LRU list */ + Mf_totail(pmf,&mf_tail); + + return(pmf); +} + + +/* not really an mfiles thing, but works even when we're out of fd's */ +int +Mfpipe( + int pipes[2]) +{ + int i; + + for (i=0; i <= 2; ++i) { + if (pipe(pipes) == 0) + return(0); + + if (errno != EMFILE) { + perror("pipe"); + exit(-1); + } + + M_closeold(); + } + + fprintf(stderr,"mfpipe - internal error, couldn't get pipes?\n"); + exit(-1); +} + + +int +Mfileno( + MFILE *pmf) +{ + /* Warning, I'll GIVE you the fd, but I won't guarantee that it'll stay */ + /* where you want it if you call my functions back!!! */ + + Mcheck(pmf); + return(fileno(pmf->stream)); +} + + + + +int +Mvfprintf( + MFILE *pmf, + char *format, + va_list ap) +{ + int ret; + + Mcheck(pmf); + ret = vfprintf(pmf->stream,format,ap); + + return(ret); +} + + + +int +Mfprintf( + MFILE *pmf, + char *format, + ...) +{ + va_list ap; + int ret; + + va_start(ap,format); + + Mcheck(pmf); + ret = vfprintf(pmf->stream,format,ap); + + va_end(ap); + + return(ret); +} + + +long +Mftell( + MFILE *pmf) +{ + Mcheck(pmf); + return(ftell(pmf->stream)); +} + + +int +Mfseek( + MFILE *pmf, + long offset, + int ptrname) +{ + Mcheck(pmf); + return(fseek(pmf->stream, offset, ptrname)); +} + + +int +Mfwrite( + void *buf, + u_long size, + u_long nitems, + MFILE *pmf) +{ + Mcheck(pmf); + return(fwrite(buf,size,nitems,pmf->stream)); +} + + +int +Mfclose( + MFILE *pmf) +{ + int ret; + + if (debug>1) + fprintf(stderr,"Mfclose: called for file '%s'\n", pmf->fname); + + Mcheck(pmf); + ret=fclose(pmf->stream); + pmf->stream = NULL; + return(ret); +} + + +int +Mfflush( + MFILE *pmf) +{ + Mcheck(pmf); + return(fflush(pmf->stream)); +} + + + +static void +Mfopen_internal( + MFILE *pmf, + char *mode) +{ + FILE *stream; + + stream = fopen(pmf->fname,mode); + + if (stream == NULL) { + + if (errno != EMFILE) { + perror(pmf->fname); + exit(-1); + } + + M_closeold(); + + /* now, try again */ + stream = fopen(pmf->fname,mode); + if (stream == NULL) { + perror("fopen (second try)"); + exit(-1); + } + } + + pmf->stream = stream; + + /* seek back to where we were last time, if this was previously opened */ + if (pmf->fptr != 0) { + if (fseek(stream, pmf->fptr, SEEK_SET) != 0) { + perror("fseek"); + exit(-1); + } + } + + return; +} + +static void +M_closeold(void) +{ + MFILE *closehim; + + /* OK, close a file we haven't used for a while */ + closehim = mf_head.next; + closehim->fptr = ftell(closehim->stream); /* remember current position */ + fclose(closehim->stream); + closehim->stream = NULL; + + /* put closed file at the tail of the closed LRU list */ + Mf_unlink(closehim); + Mf_totail(closehim,&mfc_tail); + + if (debug > 1) + fprintf(stderr,"Mfiles: too many files open, closed file '%s'\n", + closehim->fname); +} + + + +static void +Mcheck( + MFILE *pmf) +{ + /* make sure that it's open */ + if (pmf->stream == NULL) { + if (debug > 1) + fprintf(stderr,"Mcheck: re-opening file '%s'\n", pmf->fname); + Mfopen_internal(pmf,"r+"); + } + + /* put at the tail of the LRU list */ + if (mf_tail.prev != pmf) { + Mf_unlink(pmf); + Mf_totail(pmf,&mf_tail); + } + +} + +#ifdef OLD +static void +M_printlru(void) +{ + MFILE *pmf; + + for (pmf = &mf_head; pmf; pmf=pmf->next) + fprintf(stderr,"%s ==> ", pmf->fname); + fprintf(stderr,"NULL \n"); + + for (pmf = &mfc_head; pmf; pmf=pmf->next) + fprintf(stderr,"%s ==> ", pmf->fname); + fprintf(stderr,"NULL \n"); +} +#endif /* OLD */ + + +static void +Mf_unlink( + MFILE *pmf) +{ + pmf->prev->next = pmf->next; + pmf->next->prev = pmf->prev; +} + + +static void +Mf_totail( + MFILE *pmf, + MFILE *ptail) +{ + pmf->next = ptail; + pmf->prev = ptail->prev; + ptail->prev->next = pmf; + ptail->prev = pmf; +} + + +/* try to create all of the directories in the argument */ +/* like mkdirp() under Solaris, but that apparently isn't standard */ +static void +M_mkdirp(char *directory) +{ + static dstring_t *pds = NULL; + char *pch; + char *temp; + + if (access(directory,W_OK) == 0) { + /* it already exists */ + return; + } + + /* make a dynamic string to store the path components */ + if (pds == NULL) + pds = DSNew(); + + if (debug) + fprintf(stderr,"Trying to create directory '%s'\n", directory); + + + /* walk the directory and try to create the components */ + pch = directory; + while (pch) { + pch = strchr(pch,'/'); + /* N.B. pch will be null on the last go around */ + + /* copy that much of the directory */ + DSErase(pds); + if (pch) + DSAppendStringN(pds,directory,(1 + pch - directory)); + else + DSAppendString(pds,directory); /* last loop */ + temp = DSVal(pds); + + /* try to create it */ + if (mkdir(temp,0755) == -1) { + /* this will fail with EEXIST if the directory exists, + which is fine */ + if (errno != EEXIST) { + /* couldn't make the directory */ + perror(temp); + fprintf(stderr, + "Unable to create directory '%s' (as part of '%s')\n", + temp, directory); + exit(-1); + } + } else { + if (debug) + fprintf(stderr,"Created directory '%s'\n", temp); + } + + /* if pch is NULL, then we're done and will fall out, + else we need to increment pch past the current '/' */ + if (pch) + ++pch; + } +} diff --git a/mod_collie.c b/mod_collie.c new file mode 100644 index 0000000..75c808b --- /dev/null +++ b/mod_collie.c @@ -0,0 +1,411 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/mod_collie.c,v 5.7 2003/11/19 14:38:02 sdo Exp $"; + +#ifdef LOAD_MODULE_COLLIE + +#include "mod_collie.h" + +/* this module was written as a favor for a friend, but serves as a */ +/* useful little example of a quick hack... :-) */ + + + +/* additional info kept per connection */ +struct conn_info { + tcp_pair *ptp; + struct conn_info *next; +}; +static struct conn_info *connhead = NULL; + + +/* additional info kept per UDP pair */ +struct uconn_info { + udp_pair *pup; + struct uconn_info *next; +}; +static struct uconn_info *uconnhead = NULL; + + +/* locally-global info */ +static char *collie_filename = NULL; +static Bool print_labels = TRUE; + + +/* local routines */ +static struct conn_info *MakeConnRec(void); +static struct uconn_info *MakeUDPConnRec(void); +static char *collie_name(ipaddr ipaddress); +static char *collie_dots(ipaddr ipaddress); +static char *collie_time(struct timeval *ptime); +static char *collie_date(time_t timestamp); +static void ParseArgs(char *argstring); + + + +/* Set it up */ +int +collie_init( + int argc, + char *argv[]) +{ + int i; + int enable=0; + char *args = NULL; + + for (i=1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + if (strncmp(argv[i],"-x",2) == 0) { + if (strncasecmp(argv[i]+2,"collie",sizeof("collie")-1) == 0) { + /* I want to be called */ + args = argv[i]+(sizeof("-xcollie")-1); + enable = 1; + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + /* parse any arguments for ME */ + ParseArgs(args); + + /* we don't want the normal output */ + printsuppress = TRUE; + + /* please also include UDP packets */ + do_udp = TRUE; + + return(1); /* TRUE means call collie_read and collie_done later */ +} + + + +static struct conn_info * +MakeConnRec(void) +{ + struct conn_info *pci; + + pci = MallocZ(sizeof(struct conn_info)); + + /* chain it in (at head of list) */ + pci->next = connhead; + connhead = pci; + + return(pci); +} + + +static struct uconn_info * +MakeUDPConnRec(void) +{ + struct uconn_info *puci; + + puci = MallocZ(sizeof(struct uconn_info)); + + /* chain it in (at head of list) */ + puci->next = uconnhead; + uconnhead = puci; + + return(puci); +} + + +#define LABEL(str)(print_labels?str:"") + +#define DESCR(ptr)\ + printf("\n"); \ + printf("%s%s \n",\ + LABEL("Session Start: "),\ + collie_time(&(ptr)->first_time));\ + printf("%s%s\n",\ + LABEL("Session End: "),\ + collie_time(&(ptr)->last_time));\ + printf("%s%s\n",\ + LABEL("Source IP address: "),\ + collie_dots((ptr)->addr_pair.a_address));\ + printf("%s%u\n",\ + LABEL("Source Port: "),\ + (unsigned)(ptr)->addr_pair.a_port);\ + printf("%s%s\n",\ + LABEL("Source Fully Qualified domain name: "),\ + collie_name((ptr)->addr_pair.a_address));\ + printf("%s%s\n",\ + LABEL("Destination IP address: "),\ + collie_dots((ptr)->addr_pair.b_address));\ + printf("%s%u\n",\ + LABEL("Destination Port: "),\ + (unsigned)(ptr)->addr_pair.b_port);\ + printf("%s%s\n",\ + LABEL("Destination Fully Qualified domain name: "),\ + collie_name((ptr)->addr_pair.b_address));\ + printf("%s%" FS_ULL "\n",\ + LABEL("Bytes Transferred Source to Destination: "),\ + (ptr)->a2b.data_bytes);\ + printf("%s%" FS_ULL "\n",\ + LABEL("Bytes Transferred Destination to Source: "),\ + (ptr)->b2a.data_bytes);\ + printf("%s%" FS_ULL "\n",\ + LABEL("Packets Transferred Source to Destination: "),\ + (ptr)->a2b.packets);\ + printf("%s%" FS_ULL "\n",\ + LABEL("Packets Transferred Destination to Source: "),\ + (ptr)->b2a.packets); + + +void +collie_done(void) +{ + struct conn_info *pci; + struct uconn_info *upci; + struct stat statbuf; + + /* check the input file timestamp */ + if (stat(collie_filename,&statbuf) != 0) { + perror(collie_filename); + exit(-1); + } + + /* print meta information */ + printf("\n"); + printf("%s%s\n", + LABEL("Source file: "), + collie_filename); + printf("%s%s\n", + LABEL("File modification timestamp: "), + collie_date(statbuf.st_mtime)); + printf("%s%s\n", + LABEL("First packet: "), + collie_time(&first_packet)); + printf("%s%s\n", + LABEL("Last packet: "), + collie_time(&last_packet)); + + /* print out the TCP connections */ + if (print_labels) + printf("\nTCP Connections\n"); + for (pci=connhead; pci; pci=pci->next) { + DESCR(pci->ptp) + } + + /* print out the UDP connections */ + if (print_labels) + printf("\nUDP Connections\n"); + for (upci=uconnhead; upci; upci=upci->next) { + DESCR(upci->pup) + } +} + + +/* called for each new file */ +void +collie_newfile( + char *newfile, + u_long filesize, + Bool fcompressed) +{ + if (collie_filename == NULL) + collie_filename = strdup(newfile); + else { + fprintf(stderr,"\n\n\ +Sorry, as the problem was defined, only a single file can be\n\ +processed at a time\n"); + exit(-1); + } +} + + +void +collie_usage(void) +{ + printf("\t-xcollie\"[-ln]\tprovide connection summary\n"); + printf("\t -l attach labels\n"); + printf("\t -n no labels please\n"); +} + + +void * +collie_newconn( + tcp_pair *ptp) +{ + struct conn_info *pci; + + pci = MakeConnRec(); + + pci->ptp = ptp; + + return(pci); +} + + +void * +collie_newudpconn( + udp_pair *pup) +{ + struct uconn_info *puci; + + puci = MakeUDPConnRec(); + + puci->pup = pup; + + return(puci); +} + + +/* return the IP address in IPv4 or IPv6 dotted representation */ +static char *collie_dots( + ipaddr ipaddress) +{ + char *pch; + int map = resolve_ipaddresses; + + resolve_ipaddresses = 0; + pch = HostName(ipaddress); + resolve_ipaddresses = map; + + return(pch); +} + + +/* convert the IP address to a name */ +static char *collie_name( + ipaddr ipaddress) +{ + char *pch; + int map = resolve_ipaddresses; + + resolve_ipaddresses = 1; + pch = HostName(ipaddress); + resolve_ipaddresses = map; + + return(pch); +} + + + +/* return a date stamp that we like */ +/* Unix format: "Fri Sep 13 00:00:00 1986\n" */ +/* 1 2 */ +/* 012345678901234567890123456 */ +static char * +collie_date( + time_t timestamp) +{ + struct tm *ptm; + char *now; + + ptm = localtime(×tamp); + now = asctime(ptm); + + /* nuke the newline */ + now[24] = '\00'; + + return(now); +} + + +/* return a time stamp that we like */ +/* Unix format: "Fri Sep 13 00:00:00 1986\n" */ +/* 1 2 */ +/* 012345678901234567890123456 */ +static char * +collie_time( + struct timeval *ptime) +{ + char *now; + + now = ts2ascii(ptime); + + return(now); +} + +static void +ParseArgs(char *argstring) +{ + int argc; + char **argv; + int i; + + /* make sure there ARE arguments */ + if (!(argstring && *argstring)) + return; + + /* break the string into normal arguments */ + StringToArgv(argstring,&argc,&argv); + + /* check the module args */ + for (i=1; i < argc; ++i) { + if (debug > 1) + printf("Checking argv[%d]:%s\n", i, argv[i]); + if (strcmp(argv[i],"-d") == 0) { + debug = 1; + } else if (strcmp(argv[i],"-l") == 0) { + print_labels = TRUE; + } else if (strcmp(argv[i],"-n") == 0) { + print_labels = FALSE; + } else { + fprintf(stderr,"Collie module: bad argument '%s'\n", + argv[i]); + exit(-1); + } + } +} + + +#endif /* LOAD_MODULE_COLLIE */ diff --git a/mod_collie.h b/mod_collie.h new file mode 100644 index 0000000..5434397 --- /dev/null +++ b/mod_collie.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_collie[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_collie.h,v 5.4 2003/11/19 14:38:07 sdo Exp $"; + +/* header file for collie.c */ +int collie_init(int argc, char *argv[]); +void collie_done(void); +void collie_usage(void); +void *collie_newconn(tcp_pair *ptp); +void *collie_newudpconn(udp_pair *pup); +void collie_newfile(char *newfile, u_long filesize, Bool fcompressed); diff --git a/mod_http.c b/mod_http.c new file mode 100644 index 0000000..a985833 --- /dev/null +++ b/mod_http.c @@ -0,0 +1,1658 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/mod_http.c,v 5.13 2003/11/19 14:38:02 sdo Exp $"; + + +#ifdef LOAD_MODULE_HTTP + +#include +#include "mod_http.h" + + +#define DEFAULT_SERVER_PORT 80 + + +/* Revised HTTP module with a new HTTP parser provided by Bruce Mah */ + +/* codes for different message types */ +typedef enum { + MethodCodeOptions, + MethodCodeGet, + MethodCodeHead, + MethodCodePost, + MethodCodePut, + MethodCodeDelete, + MethodCodeTrace, + MethodCodeUnknown +} MethodCode; + +char *MethodCodeString[] = { + "OPTIONS", + "GET", + "HEAD", + "POST", + "PUT", + "DELETE", + "TRACE" +}; + +/* info gathered for each GET */ +struct get_info { + timeval get_time; /* when CLIENT sent GET */ + timeval send_time; /* when SERVER sent CONTENT */ + timeval lastbyte_time; /* when SERVER sent last byte of CONTENT */ + timeval ack_time; /* when CLIENT acked CONTENT */ + unsigned request_position; /* byte offset for this request */ + unsigned reply_position; /* byte offset for this reply */ + MethodCode method; /* HTTP method code */ + unsigned response_code; /* HTTP response code */ + unsigned content_length; /* as reported by server */ + char *get_string; /* content of GET string */ + char *content_type; /* MIME type */ + + struct get_info *next; +}; + + + +/* linked list of times */ +struct time_stamp { + timeval thetime; + u_long position; + struct time_stamp *next; + struct time_stamp *prev; +}; + + +/* info kept for each client */ +static struct client_info { + PLOTTER plotter; + char *clientname; + struct client_info *next; +} *client_head = NULL; + + +/* info kept for each connection */ +static struct http_info { + timeval c_syn_time; /* when CLIENT sent SYN */ + timeval s_syn_time; /* when SERVER sent SYN */ + timeval c_fin_time; /* when CLIENT sent FIN */ + timeval s_fin_time; /* when SERVER sent FIN */ + + /* client record */ + struct client_info *pclient; + + /* info about the TCP connection */ + tcp_pair *ptp; + tcb *tcb_client; + tcb *tcb_server; + + /* aggregate statistics for HTTP requests on this connection*/ + /* some of this info is available in *tcb_client and *tcb_server */ + /* but we keep a copy of it here to keep all useful info in one place */ + unsigned total_request_length; + unsigned total_reply_length; + unsigned total_request_count; + unsigned total_reply_count; + + /* when querries (GETs) were sent by client */ + struct time_stamp get_head; + struct time_stamp get_tail; + + /* when answers (CONTENT) were sent by server */ + struct time_stamp data_head; + struct time_stamp data_tail; + + /* when answers (CONTENT) were acked by client */ + struct time_stamp ack_head; + struct time_stamp ack_tail; + + /* linked list of requests */ + struct get_info *gets_head; + struct get_info *gets_tail; + + struct http_info *next; +} *httphead = NULL, *httptail = NULL; + + + +/* which port are we monitoring?? */ +static unsigned httpd_port; + + +/* local routines */ +static timeval WhenSent(struct time_stamp *phead, struct time_stamp *ptail, + u_long position); +static timeval WhenAcked(struct time_stamp *phead, struct time_stamp *ptail, + u_long position); +static void MFUnMap(MFILE *mf, char *firstbyte); +static void MFMap(MFILE *mf, char **firstbyte, char **lastbyte); +static void FindGets(struct http_info *ph); +static void FindContent(struct http_info *ph); +static void HttpGather(struct http_info *ph); +static struct http_info *MakeHttpRec(void); +static struct get_info *MakeGetRec(struct http_info *ph); +static u_long DataOffset(tcb *tcb, seqnum seq); +static void AddGetTS(struct http_info *ph, u_long position); +static void AddDataTS(struct http_info *ph, u_long position); +static void AddAckTS(struct http_info *ph, u_long position); +static void AddTS(struct time_stamp *phead, struct time_stamp *ptail, + u_long position); +static double ts2d(timeval *pt); +static void HttpPrintone(MFILE *pmf, struct http_info *ph); +static void HttpDoPlot(void); +static struct client_info *FindClient(char *clientname); + + +/* useful macros */ +#define IS_CLIENT(ptcp) (ntohs((ptcp)->th_dport) == httpd_port) +#define IS_SERVER(ptcp) (ntohs((ptcp)->th_dport) != httpd_port) + + +/* Mostly as a module example, here's a plug in that records HTTP info */ +int +http_init( + int argc, + char *argv[]) +{ + int i; + int enable=0; + + /* look for "-xhttp[N]" */ + for (i=1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + if (strncmp(argv[i],"-x",2) == 0) { + if (strncasecmp(argv[i]+2,"http",4) == 0) { + /* I want to be called */ + enable = 1; + if (isdigit((int)(argv[i][6]))) { + httpd_port = atoi(argv[i]+6); + } else { + httpd_port = DEFAULT_SERVER_PORT; + } + printf("mod_http: Capturing HTTP traffic (port %d)\n", httpd_port); + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + + /* init stuff */ + + /* We need to save the contents for accurate reconstruction of questions */ + /* and answers */ + save_tcp_data = TRUE; + + + return(1); /* TRUE means call http_read and http_done later */ +} + + +/* N.B. first byte is position _1_ */ +static u_long +DataOffset( + tcb *tcb, + seqnum seq) +{ + u_long off; + + /* we're going to be a little lazy and assume that a http connection */ + /* can't be longer than 2**32 */ + if (seq > tcb->syn) + off = seq-tcb->syn; + else + off = tcb->syn-seq; + + if (debug>1) + fprintf(stderr,"DataOffset: seq is %lu, syn is %lu, offset is %ld\n", + seq, tcb->syn, off); + + return(off); +} + + +static struct get_info * +MakeGetRec( + struct http_info *ph) +{ + struct get_info *pg; + + pg = MallocZ(sizeof(struct get_info)); + + /* initialize some fields */ + pg->get_string = "- -"; + pg->content_type = "-/-"; + + /* put at the end of the chain */ + if (ph->gets_head == NULL) { + ph->gets_head = pg; + ph->gets_tail = pg; + } else { + ph->gets_tail->next = pg; + ph->gets_tail = pg; + } + + return(pg); +} + + +static struct http_info * +MakeHttpRec() +{ + struct http_info *ph; + + ph = MallocZ(sizeof(struct http_info)); + + ph->get_head.next = &ph->get_tail; + ph->get_tail.prev = &ph->get_head; + ph->get_tail.position = 0xffffffff; + + ph->data_head.next = &ph->data_tail; + ph->data_tail.prev = &ph->data_head; + ph->data_tail.position = 0xffffffff; + + ph->ack_head.next = &ph->ack_tail; + ph->ack_tail.prev = &ph->ack_head; + ph->ack_tail.position = 0xffffffff; + + /* chain it in (at the tail of the list) */ + if (httphead == NULL) { + httphead = ph; + httptail = ph; + } else { + httptail->next = ph; + httptail = ph; + } + + return(ph); +} + + +static void +AddGetTS( + struct http_info *ph, + u_long position) +{ + AddTS(&ph->get_head,&ph->get_tail,position); +} + + + +static void +AddDataTS( + struct http_info *ph, + u_long position) +{ + AddTS(&ph->data_head,&ph->data_tail,position); +} + + +static void +AddAckTS( + struct http_info *ph, + u_long position) +{ + AddTS(&ph->ack_head,&ph->ack_tail,position); +} + + +/* add a timestamp to the record */ +/* HEAD points to the smallest position numbers */ +/* TAIL points to the largest position numbers */ +static void +AddTS( + struct time_stamp *phead, + struct time_stamp *ptail, + u_long position) +{ + struct time_stamp *pts; + struct time_stamp *pts_new; + + pts_new = MallocZ(sizeof(struct time_stamp)); + pts_new->thetime = current_time; + pts_new->position = position; + + for (pts = ptail->prev; pts != NULL; pts = pts->prev) { + if (position == pts->position) + return; /* ignore duplicates */ + + if (position > pts->position) { + /* it goes AFTER this one (pts) */ + pts_new->next = pts->next; + pts_new->prev = pts; + pts->next = pts_new; + pts_new->next->prev = pts_new; + return; + } + } + + /* can't fail, the tail has timestamp 0 */ +} + + +static struct client_info * +FindClient( + char *clientname) +{ + struct client_info *p; + + for (p=client_head; p; p = p->next) { + if (strcmp(clientname,p->clientname)==0) { + return(p); + } + } + + /* else, make one up */ + p = MallocZ(sizeof(struct client_info)); + p->next = client_head; + client_head = p; + p->clientname = strdup(clientname); + p->plotter = NO_PLOTTER; + + return(p); +} + + + +void +http_read( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* past byte in the packet */ + void *mod_data) /* module specific info for this connection */ +{ + struct tcphdr *ptcp; + unsigned tcp_length; + unsigned tcp_data_length; + char *pdata; + struct http_info *ph = mod_data; + + /* find the start of the TCP header */ + ptcp = (struct tcphdr *) ((char *)pip + 4*IP_HL(pip)); + tcp_length = ntohs(pip->ip_len) - (4 * IP_HL(pip)); + tcp_data_length = tcp_length - (4 * TH_OFF(ptcp)); + + /* verify port */ + if ((ntohs(ptcp->th_sport) != httpd_port) && (ntohs(ptcp->th_dport) != httpd_port)) + return; + + /* find the data */ + pdata = (char *)ptcp + (unsigned)TH_OFF(ptcp)*4; + + /* for client, record both ACKs and DATA time stamps */ + if (ph && IS_CLIENT(ptcp)) { + if (tcp_data_length > 0) { + AddGetTS(ph,DataOffset(ph->tcb_client,ntohl(ptcp->th_seq))); + } + if (ACK_SET(ptcp)) { + if (debug > 4) + printf("Client acks %ld\n", DataOffset(ph->tcb_server,ntohl(ptcp->th_ack))); + AddAckTS(ph,DataOffset(ph->tcb_server,ntohl(ptcp->th_ack))); + } + } + + /* for server, record DATA time stamps */ + if (ph && IS_SERVER(ptcp)) { + if (tcp_data_length > 0) { + AddDataTS(ph,DataOffset(ph->tcb_server,ntohl(ptcp->th_seq))); + if (debug > 5) { + printf("Server sends %ld thru %ld\n", + DataOffset(ph->tcb_server,ntohl(ptcp->th_seq)), + DataOffset(ph->tcb_server,ntohl(ptcp->th_seq))+tcp_data_length-1); + } + } + } + + + /* we also want the time that the FINs were sent */ + if (ph && FIN_SET(ptcp)) { + if (IS_SERVER(ptcp)) { + /* server */ + if (ZERO_TIME(&(ph->s_fin_time))) + ph->s_fin_time = current_time; + } else { + /* client */ + if (ZERO_TIME(&ph->c_fin_time)) + ph->c_fin_time = current_time; + } + } + + /* we also want the time that the SYNs were sent */ + if (ph && SYN_SET(ptcp)) { + if (IS_SERVER(ptcp)) { + /* server */ + if (ZERO_TIME(&ph->s_syn_time)) + ph->s_syn_time = current_time; + } else { + /* client */ + if (ZERO_TIME(&ph->c_syn_time)) + ph->c_syn_time = current_time; + } + } +} + + +static double +ts2d(timeval *pt) +{ + double d; + d = pt->tv_sec; + d += (double)pt->tv_usec/1000000; + return(d); +} + + +static void +MFMap( + MFILE *mf, + char **firstbyte, + char **lastbyte) +{ + int fd; + char *vaddr; + int len; + + /* find length of file */ + if (Mfseek(mf,0,SEEK_END) != 0) { + perror("fseek"); + exit(-1); + } + len = Mftell(mf); + + if (len == 0) { + *firstbyte = NULL; + *lastbyte = NULL; + return; + } + + /* Memory map the entire file */ + fd = Mfileno(mf); + vaddr = mmap((caddr_t) 0, /* put it anywhere */ + len, /* fixed size */ + PROT_READ, /* read only */ + MAP_PRIVATE, /* won't be sharing... */ + fd, /* attach to 'fd' */ + (off_t) 0); /* ... offset 0 in 'fd' */ + if (vaddr == (char *) -1) { + perror("mmap"); + exit(-1); + } + + *firstbyte = vaddr; + *lastbyte = vaddr+len-1; + + return; +} + + + +static void +MFUnMap( + MFILE *mf, + char *firstbyte) +{ + int fd; + int len; + + /* find length of file */ + if (Mfseek(mf,0,SEEK_END) != 0) { + perror("fseek"); + exit(-1); + } + len = Mftell(mf); + + /* unmap it */ + fd = Mfileno(mf); + if (munmap(firstbyte,len) != 0) { + perror("munmap"); + exit(-1); + } + + return; +} + + +static void +HttpGather( + struct http_info *ph) +{ + while (ph) { + if (ph->tcb_client->extr_contents_file && + ph->tcb_server->extr_contents_file) + { + FindGets(ph); + FindContent(ph); + } + + ph = ph->next; + } +} + + +static void +PrintTSChain( + struct time_stamp *phead, + struct time_stamp *ptail) +{ + struct time_stamp *pts; + + for (pts = phead->next; pts != ptail; pts = pts->next) { + printf("Pos: %ld time: %s\n", + pts->position, ts2ascii(&pts->thetime)); + } +} + + +/* when was the byte at offset "position" acked?? */ +/* return the timeval for the record of the smallest position >= "position" */ +static timeval +WhenAcked( + struct time_stamp *phead, + struct time_stamp *ptail, + u_long position) +{ + struct time_stamp *pts; + timeval epoch = {0,0}; + + if (debug > 10) { + printf("pos:%ld, Chain:\n", position); + PrintTSChain(phead,ptail); + } + + for (pts = phead->next; pts != NULL; pts = pts->next) { +/* fprintf(stderr,"Checking pos %ld against %ld\n", */ +/* position, pts->position); */ + if (pts->position >= position) { + /* sent after this one */ + return(pts->thetime); + } + } + + /* fails if we can't find it */ + return(epoch); +} + + + +/* when was the byte at offset "position" sent?? */ +/* return the timeval for the record of the largest position <= "position" */ +static timeval +WhenSent( + struct time_stamp *phead, + struct time_stamp *ptail, + u_long position) +{ + struct time_stamp *pts; + timeval epoch = {0,0}; + + if (debug > 10) { + printf("pos:%ld, Chain:\n", position); + PrintTSChain(phead,ptail); + } + + for (pts = ptail->prev; pts != phead; pts = pts->prev) { +/* fprintf(stderr,"Checking pos %ld against %ld\n", */ +/* position, pts->position); */ + if (pts->position <= position) { + /* sent after this one */ + return(pts->thetime); + } + } + + /* fails if we can't find it */ + return(epoch); +} + + + + +static void +FindContent( + struct http_info *ph) +{ + tcb *tcb = ph->tcb_server; + MFILE *mf = tcb->extr_contents_file; + char *pdata; + char *plast; + char *pch; + char *pch2; + struct get_info *pget; + char getbuf[1024]; + u_long position = 0; + unsigned last_position = 0; + int done; + int i; + typedef enum { + ContentStateStartHttp, + ContentStateFinishHttp, + ContentStateFindResponse, + ContentStateFindContentLength, + ContentStateFinishHeader} StateType; + StateType state; + + pget = ph->gets_head; + if ((mf) && (pget)) { + + state = ContentStateStartHttp; + done = 0; + + /* Memory map the entire file (I hope it's short!) */ + MFMap(mf,&pdata,&plast); + + if (pdata == NULL) { + return; + } + + pch = pdata; + + ph->total_reply_length = (unsigned) (plast - pdata); + ph->total_reply_count= 0; + + while ((!done) && (pch <= (char *) plast)) { + switch (state) { + + /* Start state: Find "HTTP/" that begins a response */ + case (ContentStateStartHttp): { + if (strncasecmp(pch, "HTTP/", 5) == 0) { + + /* Found start of a response */ + state = ContentStateFinishHttp; + position = pch - pdata + 1; + pget->reply_position = position; + pch += 5; + } + else { + pch++; + } + } + break; + + /* Finish off HTTP string (version number) by looking for whitespace */ + case (ContentStateFinishHttp): { + if (*(pch) == ' ') { + state = ContentStateFindResponse; + } + else { + pch++; + } + } + break; + + /* Look for response code by finding non-whitespace. */ + case (ContentStateFindResponse): { + if (*(pch) != ' ') { + pget->response_code = atoi(pch); + pch += 3; + state = ContentStateFindContentLength; + } + else { + pch++; + } + } + break; + + /* this state is now misnamed since we pull out other */ + /* headers than just content-length now. */ + case (ContentStateFindContentLength): { + if (strncasecmp(pch, "\r\nContent-Length:", 17) == 0) { + /* Got content-length field, ignore rest of header */ + pget->content_length = atoi(&(pch[17])); + pch += 18; + } + else if (strncasecmp(pch, "\r\nContent-Type:", 15) == 0) { + /* Get content-type field, skipping leading spaces */ + pch += 15; + while (*pch == ' ') { + pch++; + } + for (i=0,pch2 = pch; ; ++i, ++pch2) { + if ((*pch2 == '\n') || (*pch2 == '\r') || + (i >= sizeof(getbuf)-1)) { + getbuf[i] = '\00'; + pch = pch2; /* skip forward */ + break; + } + getbuf[i] = *pch2; + } + + /* If there are any spaces in the Content-Type */ + /* field, we need to truncate at that point */ + { + char *sp; + sp = (char *)index(getbuf, ' '); + if (sp) { + *sp = '\00'; + } + } + pget->content_type = strdup(getbuf); + + } + else if (strncmp(pch, "\r\n\r\n", 4) == 0) { + /* No content-length header detected */ + /* No increment for pch here, effectively fall through */ + /* pget->content_length = 0; */ + state = ContentStateFinishHeader; + } + else { + pch++; + } + } + break; + + /* Skip over the rest of the header */ + case (ContentStateFinishHeader): { + if (strncmp(pch, "\r\n\r\n", 4) == 0) { + + /* Found end of header */ + pch += 4; + + /* + * At this point, we need to find the end of the + * response body. There's a variety of ways to + * do this, but in any case, we need to make sure + * that pget->content_length, pch, and last_postiion + * are all set appropriately. + * + * See if we can ignore the body. We can do this + * for the reply to HEAD, for a 204 (no content), + * 205 (reset content), or 304 (not modified). + */ + if ((pget->method == MethodCodeHead) || + (pget->response_code == 204) || + (pget->response_code == 205) || + (pget->response_code == 304)) { + pget->content_length = 0; + } + + /* + * Use content-length header if one was present. + * XXX is content_length > 0 the right test? + */ + else if (pget->content_length > 0) { + pch += pget->content_length; + } + + /* + * No content-length header, so delimit response + * by end of file. + * + * But, make sure we do not have a "\r\n\r\n" string + * in the response, because that might indicate the + * beginning of a following response. + * (Patch from Yufei Wang) + */ + else { + char *start = pch; + while (pch <= (char *)plast) { + if (strncmp(pch, "\r\n\r\n", 4) == 0) { + pch += 4; + state = ContentStateStartHttp; + break; + } else { + pch++; + } + } + + if (state == ContentStateStartHttp) { + pget->content_length = pch - start; + } else { + /* calculate the content length */ + pget->content_length = plast - start + 1; + pch = plast + 1; + } + } + + /* Set next state and do original tcptrace + * processing based on what we learned above. + */ + state = ContentStateStartHttp; + last_position = pch - pdata + 1; + + /* when was the first byte sent? */ + pget->send_time = WhenSent(&ph->data_head,&ph->data_tail,position); + + /* when was the LAST byte sent? */ + pget->lastbyte_time = WhenSent(&ph->data_head,&ph->data_tail,last_position); + + /* when was the last byte ACKed? */ + if (debug > 4) + printf("Content length: %d\n", pget->content_length); + pget->ack_time = WhenAcked(&ph->ack_head,&ph->ack_tail,last_position); + + /* increment our counts */ + ph->total_reply_count++; + + /* skip to the next request */ + pget = pget->next; + + if (!pget) { + /* no more questions, quit */ + done = 1; + break; + } + } + else { + pch++; + } + } + break; + + } + } + + MFUnMap(mf,pdata); + } + else { + if (debug > 4) { + printf("FindContent() with null server contents"); + } + } + +} + +static char * formatGetString(char * s) +{ + int len = strlen(s); + int i = 0; + int j = 0; + char *buf = (char *)malloc(len); + char ascii[2]; + while (i < len) { + if (s[i] == '%') { + ascii[0] = s[i+1]; + ascii[1] = s[i+2]; + buf[j++] = atoi(ascii); + i = i+3; + } else { + buf[j++] = s[i]; + i++; + } + } + buf[j] = 0; + return buf; +} + +static void +FindGets( + struct http_info *ph) +{ + tcb *tcb = ph->tcb_client; + MFILE *mf = tcb->extr_contents_file; + char *pdata; + char *plast; + char *pch; + char *pch2; + struct get_info *pget = NULL; + char getbuf[1024]; + u_long position = 0; + int j; + int methodlen; + unsigned long long contentLength = 0; + + typedef enum { + GetStateStartMethod, + GetStateFinishMethod, + GetStateFindContentLength, + GetStateFinishHeader + } StateType; + StateType state; + + if (mf) { + + /* Memory map the entire file (I hope it's short!) */ + MFMap(mf,&pdata,&plast); + + if (pdata == NULL) { + return; + } + + ph->total_request_length = (unsigned) (plast - pdata); + ph->total_request_count = 0; + + state = GetStateStartMethod; + + /* search for method string*/ + pch = pdata; + while (pch <= (char *)plast) { + switch (state) { + + /* Start state: Find access method keyword */ + case (GetStateStartMethod): { + + /* Try to find a word describing a method. These + * are all the methods defined in + * draft-ietf-http-v11-spec-rev-06 + */ + MethodCode method = MethodCodeUnknown; + methodlen = 0; + if (strncasecmp(pch, "options ", 8) == 0) { + methodlen = 8; + method = MethodCodeOptions; + } + else if (strncasecmp(pch, "get ", 4) == 0) { + methodlen = 4; + method = MethodCodeGet; + } + else if (strncasecmp(pch, "head ", 5) == 0) { + methodlen = 5; + method = MethodCodeHead; + } + else if (strncasecmp(pch, "post ", 5) == 0) { + methodlen = 5; + method = MethodCodePost; + } + else if (strncasecmp(pch, "put ", 4) == 0) { + methodlen = 4; + method = MethodCodePut; + } + else if (strncasecmp(pch, "delete ", 7) == 0) { + methodlen = 7; + method = MethodCodeDelete; + } + else if (strncasecmp(pch, "trace ", 6) == 0) { + methodlen = 6; + method = MethodCodeTrace; + } + + if (methodlen > 0) { + /* make a new record for this entry */ + pget = MakeGetRec(ph); + + /* remember where it started */ + position = pch - pdata + 1; + pget->request_position = position; + pget->reply_position = 0; + pget->method = method; + + contentLength = 0; + pch += methodlen; + state = GetStateFinishMethod; + } + else { + /* Couldn't find a valid method, so increment */ + /* and attempt to resynchronize. This shouldn't */ + /* happen often. */ + pch++; + } + + }; + break; + + case (GetStateFinishMethod): { + /* grab the GET string */ + for (j=0,pch2 = pch; ; ++j,++pch2) { + if ((*pch2 == '\n') || (*pch2 == '\r') || + (j >= sizeof(getbuf)-1)) { + getbuf[j] = '\00'; + pch = pch2; /* skip forward */ + state = GetStateFindContentLength; + break; + } + getbuf[j] = *pch2; + } + pget->get_string = formatGetString(getbuf); + + /* grab the time stamps */ + pget->get_time = + WhenSent(&ph->get_head,&ph->get_tail,position); + ph->total_request_count++; + + } + break; + + /* Locate content-length field, if any */ + case (GetStateFindContentLength): { + + if (strncasecmp(pch, "\r\nContent-Length:", 17) == 0) { + /* Get content-length field */ + contentLength = atoi(&pch[17]); + pch += 17; + } + else if (strncmp(pch, "\r\n\r\n", 4) == 0) { + /* No content-length header detected, assume */ + /* zero. Fall through (effective). */ + /* contentLength = 0; */ + state = GetStateFinishHeader; + } + else { + pch++; + } + } + break; + + case (GetStateFinishHeader): { + if (strncmp(pch, "\r\n\r\n", 4) == 0) { + + /* Found end of header */ + pch += 4; + + /* Find end of response body. */ + if (contentLength > 0) { + pch += contentLength; + } + else { + /* XXX What if a POST with no content-length? */ + } + + state = GetStateStartMethod; + } + else { + pch++; + } + } + break; + } + } + + MFUnMap(mf,pdata); + } + + else { + if (debug > 4) { + printf("FindGets() with null client contents"); + } + } +} + + +static void +HttpDoPlot() +{ + struct http_info *ph; + struct get_info *pget; + int y_axis = 1000; + int ix_color = 0; + char buf[100]; + struct time_stamp *pts; + + /* sort by increasing order of TCP connection startup */ + /* (makes the graphs look better) */ + + for (ph=httphead; ph; ph=ph->next) { + PLOTTER p = ph->pclient->plotter; + tcp_pair *ptp = ph->ptp; + tcb a2b, b2a; + + if (ptp == NULL) + continue; + + a2b = ptp->a2b; + b2a = ptp->b2a; + + ix_color = (ix_color + 1) % NCOLORS; + + /* find the plotter for this client */ + if (p==NO_PLOTTER) { + char title[256]; + snprintf(title, sizeof(title), "Client %s HTTP trace\n", ph->pclient->clientname); + p = ph->pclient->plotter = + new_plotter(&ptp->a2b, + ph->pclient->clientname, /* file name prefix */ + title, /* plot title */ + "time", /* X axis */ + "URL", /* Y axis */ + "_http.xpl"); /* file suffix */ + } + + y_axis += 2; + + /* plot the TCP connection lifetime */ + plotter_perm_color(p,ColorNames[ix_color]); + plotter_larrow(p, ph->ptp->first_time, y_axis); + plotter_rarrow(p, ph->ptp->last_time, y_axis); + plotter_line(p, + ph->ptp->first_time, y_axis, + ph->ptp->last_time, y_axis); + + /* label the connection */ + plotter_text(p,ph->ptp->first_time,y_axis,"b", + (snprintf(buf, sizeof(buf), "%s ==> %s", + ph->ptp->a_endpoint, ph->ptp->b_endpoint), buf)); + + /* mark the data packets */ + for (pts=ph->data_head.next; pts->next; pts=pts->next) { + plotter_tick(p,pts->thetime,y_axis,'d'); + } + + + /* plot the SYN's */ + if (!ZERO_TIME(&ph->c_syn_time)) { + plotter_tick(p,ph->c_syn_time,y_axis,'u'); + plotter_text(p,ph->c_syn_time,y_axis,"a","Clnt SYN"); + } + if (!ZERO_TIME(&ph->s_syn_time)) { + plotter_tick(p,ph->s_syn_time,y_axis,'u'); + plotter_text(p,ph->s_syn_time,y_axis,"a","Serv SYN"); + } + + /* plot the FINs */ + if (!ZERO_TIME(&ph->c_fin_time)) { + plotter_tick(p,ph->c_fin_time,y_axis,'u'); + plotter_text(p,ph->c_fin_time,y_axis,"a","Clnt FIN"); + } + if (!ZERO_TIME(&ph->s_fin_time)) { + plotter_tick(p,ph->s_fin_time,y_axis,'u'); + plotter_text(p,ph->s_fin_time,y_axis,"a","Serv FIN"); + } + + y_axis += 4; + + for (pget = ph->gets_head; pget; pget = pget->next) { + + if (ZERO_TIME(&pget->send_time) || + ZERO_TIME(&pget->get_time) || + ZERO_TIME(&pget->ack_time)) + continue; + + plotter_temp_color(p,"white"); + plotter_text(p, pget->get_time, y_axis, "l", pget->get_string); + + plotter_diamond(p, pget->get_time, y_axis); + plotter_larrow(p, pget->send_time, y_axis); + plotter_rarrow(p, pget->lastbyte_time, y_axis); + plotter_line(p, + pget->send_time, y_axis, + pget->lastbyte_time, y_axis); + plotter_temp_color(p,"white"); + plotter_text(p, pget->lastbyte_time, y_axis, "r", + (snprintf(buf, sizeof(buf), "%d",pget->content_length),buf)); + plotter_diamond(p, pget->ack_time, y_axis); +#ifdef CLUTTERED + plotter_temp_color(p,"white"); + plotter_text(p, pget->ack_time, y_axis, "b", "ACK"); +#endif /* CLUTTERED */ + + y_axis += 2; + + } + + } +} + + +static void +HttpPrintone( + MFILE *pmf, + struct http_info *ph) +{ + tcp_pair *ptp = ph->ptp; + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + struct get_info *pget = NULL; + u_long missing; + double etime; + + if (!ptp) + return; + + printf("%s ==> %s (%s2%s)\n", + ptp->a_endpoint, ptp->b_endpoint, + ptp->a2b.host_letter, ptp->b2a.host_letter); + + printf(" Server Syn Time: %s (%.3f)\n", + ts2ascii(&ph->s_syn_time), + ts2d(&ph->s_syn_time)); + printf(" Client Syn Time: %s (%.3f)\n", + ts2ascii(&ph->c_syn_time), + ts2d(&ph->c_syn_time)); + + /* From the patch by Yufei Wang + * Print "Server Rst Time" if the last segment we saw was a RST + * "Server Fin Time" if we saw a FIN + * "Server Last Time" if neither FIN/RST was received to indicate + * the time the last segment was seen from the + * server. */ + + if ((pba->fin_count == 0) && (pba->reset_count > 0)) { + printf(" Server Rst Time: %s (%.3f)\n", + ts2ascii(&pba->last_time), + ts2d(&pba->last_time)); + } else if (pba->fin_count == 0) { + printf(" Server Last Time: %s (%.3f)\n", + ts2ascii(&pba->last_time), + ts2d(&pba->last_time)); + } else { + printf(" Server Fin Time: %s (%.3f)\n", + ts2ascii(&ph->s_fin_time), + ts2d(&ph->s_fin_time)); + } + /* Similarly information is printed out for the Client end-point.*/ + if ((pab->fin_count == 0) && (pab->reset_count > 0)) { + printf(" Client Rst Time: %s (%.3f)\n", + ts2ascii(&pab->last_time), + ts2d(&pab->last_time)); + } else if (pab->fin_count == 0) { + printf(" Client Last Time: %s (%.3f)\n", + ts2ascii(&pab->last_time), + ts2d(&pab->last_time)); + } else { + printf(" Client Fin Time: %s (%.3f)\n", + ts2ascii(&ph->c_fin_time), + ts2d(&ph->c_fin_time)); + } + +#ifdef HTTP_SAFE + /* check the SYNs */ + if ((pab->syn_count == 0) || (pba->syn_count == 0)) { + printf("\ +No additional information available, beginning of \ +connection (SYNs) were not found in trace file.\n"); + return; + } + + /* check if we had RSTs (Patch from Yufei Wang)*/ + if ((pab->reset_count > 0) || (pba->reset_count > 0)) { + /* Do nothing */ + } + /* check the FINs */ + /* Note from Yufei Wang : If we see a FIN from only one direction, + * we shall not panic, but print out information that we have under the + * assumption that either a RST was sent in the missing direction or the + * FIN segment was lost from packet capture. The information we have + * is still worth printing out. Hence we have a "&&" instead of a "||" + * in the following condition. */ + else if ((pab->fin_count == 0) && (pba->fin_count == 0)) { + printf("\ +No additional information available, end of \ +connection (FINs) were not found in trace file.\n"); + return; + } +#endif /* HTTP_SAFE */ + + /* see if we got all the bytes */ + missing = pab->trunc_bytes + pba->trunc_bytes; + + /* Patch from Yufei Wang : + * Adding in a check to see if the connection were closed with RST/FIN + * and calculating the "missing" field appropriately + */ + + if (pab->fin_count > 0) + missing += ( (pab->fin - pab->syn -1)- pab->unique_bytes); + else if (pab->reset_count > 0) { + /* Check to make sure if no segments were observed between SYN and RST + * The following check does not work if file is huge and seq space rolled + * over - To be fixed - Mani */ + if (pab->latest_seq != pab->syn) + missing += ( (pab->latest_seq - pab->syn -1) - pab->unique_bytes); + } + + if (pba->fin_count > 0) + missing += ( (pba->fin - pba->syn -1)- pba->unique_bytes); + else if (pba->reset_count > 0) { + /* Check to make sure if no segments were observed between SYN and RST + * The following check does not work if file is huge and seq space rolled + * over - To be fixed - Mani */ + if (pba->latest_seq != pba->syn) + missing += ( (pba->latest_seq - pba->syn -1) - pba->unique_bytes); + } + + if (missing != 0) + printf("WARNING!!!! Information may be invalid, %ld bytes were not captured\n", + missing); + +#ifdef HTTP_DUMP_TIMES + + Mfprintf(pmf, "conn %s %s %s2%s %u %u %u %u\n", + ptp->a_endpoint, + ptp->b_endpoint, + ptp->a2b.host_letter, ptp->b2a.host_letter, + ph->total_request_length, + ph->total_request_count, + ph->total_reply_length, + ph->total_reply_count); + +#endif /* HTTP_DUMP_TIMES */ + + for (pget = ph->gets_head; pget; pget = pget->next) { + + unsigned request_length = 0; + unsigned reply_length = 0; + + /* Compute request lengths */ + if (pget->next) { + + /* Retrieval following ours, use its position to compute our length */ + request_length = pget->next->request_position - pget->request_position; + } + else { + + /* Last one in this file, so use the EOF as a delimiter */ + request_length = ph->total_request_length - pget->request_position; + } + + /* Compute reply lengths */ + if (pget->reply_position == 0) { + /* No reply, so length is 0 by definition */ + request_length = 0; + } + else { + if ((pget->next) && (pget->next->reply_position > 0)) { + /* Retrieval following ours with valid position, so use that to compute length */ + reply_length = pget->next->reply_position - pget->reply_position; + } + else { + /* No record following ours, or it didn't have a valid position, so use EOF as delimiter */ + reply_length = ph->total_reply_length - pget->reply_position; + } + } + + printf(" %s %s\n", MethodCodeString[pget->method], + pget->get_string); + + /* Interpretation of response codes as per RFC 2616 - HTTP/1.1 */ + switch (pget->response_code) { + /* Informational 1xx */ + case 100 : + printf("\tResponse Code: %d (Continue)\n", pget->response_code); + break; + case 101 : + printf("\tResponse Code: %d (Switching Protocols)\n", pget->response_code); + break; + + /* Successful 2xx */ + case 200 : + printf("\tResponse Code: %d (OK)\n", pget->response_code); + break; + case 201 : + printf("\tResponse Code: %d (Created)\n", pget->response_code); + break; + case 202 : + printf("\tResponse Code: %d (Accepted)\n", pget->response_code); + break; + case 203 : + printf("\tResponse Code: %d (Non-Authoritative Information)\n", pget->response_code); + break; + case 204 : + printf("\tResponse Code: %d (No Content)\n", pget->response_code); + break; + case 205 : + printf("\tResponse Code: %d (Reset Content)\n", pget->response_code); + break; + case 206 : + printf("\tResponse Code: %d (Partial Content)\n", pget->response_code); + break; + + /* Redirection 3xx */ + case 300 : + printf("\tResponse Code: %d (Multiple Choices)\n", pget->response_code); + break; + case 301 : + printf("\tResponse Code: %d (Moved Permanently)\n", pget->response_code); + break; + case 302 : + printf("\tResponse Code: %d (Found)\n", pget->response_code); + break; + case 303 : + printf("\tResponse Code: %d (See Other)\n", pget->response_code); + break; + case 304 : + printf("\tResponse Code: %d (Not Modified)\n", pget->response_code); + break; + case 305 : + printf("\tResponse Code: %d (Use Proxy)\n", pget->response_code); + break; + case 306 : + printf("\tResponse Code: %d (Unused)\n", pget->response_code); + break; + case 307 : + printf("\tResponse Code: %d (Temporary Redirect)\n", pget->response_code); + break; + + /* Client Error 4xx */ + case 400 : + printf("\tResponse Code: %d (Bad Request)\n", pget->response_code); + break; + case 401 : + printf("\tResponse Code: %d (Unauthorized)\n", pget->response_code); + break; + case 402 : + printf("\tResponse Code: %d (Payment Required)\n", pget->response_code); + break; + case 403 : + printf("\tResponse Code: %d (Forbidden)\n", pget->response_code); + break; + case 404 : + printf("\tResponse Code: %d (Not Found)\n", pget->response_code); + break; + case 405 : + printf("\tResponse Code: %d (Method Not Allowed)\n", pget->response_code); + break; + case 406 : + printf("\tResponse Code: %d (Not Acceptable)\n", pget->response_code); + break; + case 407 : + printf("\tResponse Code: %d (Proxy Authentication Required)\n", pget->response_code); + break; + case 408 : + printf("\tResponse Code: %d (Request Timeout)\n", pget->response_code); + break; + case 409 : + printf("\tResponse Code: %d (Conflict)\n", pget->response_code); + break; + case 410 : + printf("\tResponse Code: %d (Gone)\n", pget->response_code); + break; + case 411 : + printf("\tResponse Code: %d (Length Required)\n", pget->response_code); + break; + case 412 : + printf("\tResponse Code: %d (Precondition Failed)\n", pget->response_code); + break; + case 413 : + printf("\tResponse Code: %d (Request Entity Too Large)\n", pget->response_code); + break; + case 414 : + printf("\tResponse Code: %d (Request-URI Too Long)\n", pget->response_code); + break; + case 415 : + printf("\tResponse Code: %d (Unsupported Media Type)\n", pget->response_code); + break; + case 416 : + printf("\tResponse Code: %d (Requested Range Not Satisfiable)\n", pget->response_code); + break; + case 417: + printf("\tResponse Code: %d (Expectation Failed)\n", pget->response_code); + break; + + /* Server Error 5xx */ + case 500 : + printf("\tResponse Code: %d (Internal Server Error)\n", pget->response_code); + break; + case 501 : + printf("\tResponse Code: %d (Not Implemented)\n", pget->response_code); + break; + case 502 : + printf("\tResponse Code: %d (Bad Gateway)\n", pget->response_code); + break; + case 503 : + printf("\tResponse Code: %d (Service Unavailable)\n", pget->response_code); + break; + case 504 : + printf("\tResponse Code: %d (Gateway Timeout)\n", pget->response_code); + break; + case 505 : + printf("\tResponse Code: %d (HTTP Version Not Supported)\n", pget->response_code); + break; + + default : + printf("\tResponse Code: %d (unknown response code)\n", pget->response_code); + + } + + printf("\tRequest Length: %u\n", request_length); + printf("\tReply Length: %u\n", reply_length); + printf("\tContent Length: %d\n", pget->content_length); + printf("\tContent Type : %s\n", pget->content_type); + printf("\tTime request sent: %s (%.3f)\n", + ts2ascii(&pget->get_time), ts2d(&pget->get_time)); + printf("\tTime reply started: %s (%.3f)\n", + ts2ascii(&pget->send_time), ts2d(&pget->send_time)); + printf("\tTime reply ACKed: %s (%.3f)\n", + ts2ascii(&pget->ack_time), ts2d(&pget->ack_time)); + + /* elapsed time, request started to answer started */ + etime = elapsed(pget->get_time,pget->send_time); + etime /= 1000; /* us to msecs */ + printf("\tElapsed time: %.0f ms (request to first byte sent)\n", etime); + + /* elapsed time, request started to answer ACKed */ + etime = elapsed(pget->get_time,pget->ack_time); + etime /= 1000; /* us to msecs */ + printf("\tElapsed time: %.0f ms (request to content ACKed)\n", etime); + +#ifdef HTTP_DUMP_TIMES + Mfprintf(pmf,"reqrep %s %s %s2%s %.3f %.3f %.3f %u %u %3d %s %s %s\n", + ptp->a_endpoint, + ptp->b_endpoint, + ptp->a2b.host_letter, ptp->b2a.host_letter, + ts2d(&pget->get_time), + ts2d(&pget->send_time), + ts2d(&pget->ack_time), + request_length, + reply_length, + pget->response_code, + MethodCodeString[pget->method], + pget->get_string, + pget->content_type); +#endif /* HTTP_DUMP_TIMES */ + + } + +} + +void +http_done(void) +{ + MFILE *pmf = NULL; + struct http_info *ph; + + /* just return if we didn't grab anything */ + if (!httphead) + return; + + /* gather up the information */ + HttpGather(httphead); + +#ifdef HTTP_DUMP_TIMES + pmf = Mfopen("http.times","w"); +#endif /* HTTP_DUMP_TIMES */ + + printf("Http module output:\n"); + + for (ph=httphead; ph; ph=ph->next) { + HttpPrintone(pmf,ph); + } + + HttpDoPlot(); + +#ifdef HTTP_DUMP_TIMES + Mfclose(pmf); +#endif /* HTTP_DUMP_TIMES */ +} + + +void +http_usage(void) +{ + printf("\t-xHTTP[P]\tprint info about http traffic (on port P, default %d)\n", + DEFAULT_SERVER_PORT); +} + + + +void +http_newfile( + char *newfile, + u_long filesize, + Bool fcompressed) +{ + /* just an example, really */ +} + + + +void * +http_newconn( + tcp_pair *ptp) +{ + struct http_info *ph; + + ph = MakeHttpRec(); + + /* attach tcptrace's info */ + ph->ptp = ptp; + + /* determine the server and client tcb's */ + if (ptp->addr_pair.a_port == httpd_port) { + ph->tcb_client = &ptp->b2a; + ph->tcb_server = &ptp->a2b; + } else { + ph->tcb_client = &ptp->a2b; + ph->tcb_server = &ptp->b2a; + } + + /* attach the client info */ + ph->pclient = FindClient(HostName(ptp->addr_pair.a_address)); + + return(ph); +} +#endif /* LOAD_MODULE_HTTP */ diff --git a/mod_http.h b/mod_http.h new file mode 100644 index 0000000..2aaab01 --- /dev/null +++ b/mod_http.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_http[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_http.h,v 5.4 2003/11/19 14:38:07 sdo Exp $"; + +/* header file for http.c */ +int http_init(int argc, char *argv[]); +void http_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmod_data); +void http_done(void); +void http_usage(void); +void http_newfile(char *newfile, u_long filesize, Bool fcompressed); +void *http_newconn(tcp_pair *ptp); diff --git a/mod_inbounds.c b/mod_inbounds.c new file mode 100644 index 0000000..e1dbba4 --- /dev/null +++ b/mod_inbounds.c @@ -0,0 +1,1597 @@ +/* + * Copyright (c) 1994-2004 + * Ohio University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that: (1) source code + * distributions retain the above copyright notice and this paragraph + * in its entirety, (2) distributions including binary code include + * the above copyright notice and this paragraph in its entirety in + * the documentation or other materials provided with the + * distribution, and (3) all advertising materials mentioning features + * or use of this software display the following acknowledgment: + * ``This product includes software developed by the Ohio University + * Internetworking Research Laboratory.'' Neither the name of the + * University nor the names of its contributors may be used to endorse + * or promote products derived from this software without specific + * prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * + * Manikantan Ramadas + * mramadas@irg.cs.ohiou.edu + */ + + +#ifdef LOAD_MODULE_INBOUNDS + +#include "tcptrace.h" +#include +#include +#include "mod_inbounds.h" + +static int inc_cnt=0; +static int dointer_cnt=0; +static int udp_delconn_cnt=0; + +// info kept for tcp packets: +struct inbounds_tcp_conn_info +{ + timeval first_time; // time of the connection's first packet + timeval first_data_time; // time of the connection's first data packet + timeval last_time; // time of the connection's last packet + timeval last_data_time; // time of the connection's last data packet + + Bool had_data; + Bool closed; // has the connection been closed ? + Bool new; // is the connection new ? + + tcp_pair_addrblock addr_pair; + tcp_pair *ptp; + + u_long a_pkt; /* number of packets from a to b within + the time interval */ + u_long b_pkt; + u_long a_byte; /* number of bytes from a to b within + the time interval */ + u_long b_byte; + + u_int qNum; + u_int aNum; + u_long qSum; + u_long aSum; + timeval q2aIdle; + timeval a2qIdle; + Bool dir; /* 0 - question, 1 - answer */ + u_long burst_bytes; + + /* for determining bursts */ + tcb *tcb_lastdata; + + struct inbounds_tcp_conn_info *prev; /* pointer to the next connection */ + struct inbounds_tcp_conn_info *next; /* pointer to the next connection */ +}; + +typedef struct inbounds_tcp_conn_info itcinfo; + +/* structure for udp connections */ +struct inbounds_udp_conn_info +{ + timeval first_time; // time of the connection's first packet + timeval last_time; // time of the connection's last packet + + Bool closed; // has the connection been closed ? + Bool new; // is the connection new ? + + udp_pair_addrblock addr_pair; + udp_pair *pup; + + u_long a_pkt; /* number of packets from a to b within + the time interval */ + u_long b_pkt; + u_long a_byte; /* number of bytes from a to b within + the time interval */ + u_long b_byte; + + u_int qNum; + u_int aNum; + u_long qSum; + u_long aSum; + timeval q2aIdle; + timeval a2qIdle; + + Bool dir; /* 0 - question, 1 - answer */ + + struct inbounds_udp_conn_info *prev; /* pointer to the next connection */ + struct inbounds_udp_conn_info *next; /* pointer to the next connection */ +}; + +typedef struct inbounds_udp_conn_info iucinfo; + +struct inbounds_info +{ + // times of the last network statistics as it should appear in ideally + // for TCP and UDP: + timeval last_tcp_scheduled_time; + timeval last_udp_scheduled_time; + // times when the last network stats actually happened for TCP and UDP: + timeval last_tcp_actual_time; + timeval last_udp_actual_time; + + itcinfo *tcp_conn_head; /* head of the list of tcp connections */ + itcinfo *tcp_conn_tail; /* tail of the list of tcp connections */ + + u_short tcp_new_conn; /* number of new connections within the + time interval */ + u_short tcp_total_conn; // number of currect active connections + + /* this info is for UDP conn */ + iucinfo *udp_conn_head; /* head of the list of udp connections */ + iucinfo *udp_conn_tail; /* tail of the list of udp connections */ + + u_short udp_new_conn; /* number of new connections within the + time interval */ + u_short udp_total_conn; /* number of currect udp active connections */ + +}; + +typedef struct inbounds_info iinfo; + +struct protocol +{ + u_char ip_p; + u_llong count; + struct protocol *next; +}; + + +#define INBOUNDS_TCP_UPDATE_INTERVAL 60 +#define INBOUNDS_UDP_UPDATE_INTERVAL 60 + +#define INBOUNDS_DEBUG 0 /* debug flag */ + +#define TCB_CACHE_A2B 0 +#define TCB_CACHE_B2A 1 + +#define UDPHDR_LEN 8 +#define UDP_A2B 0 +#define UDP_B2A 1 + +/* global variables */ +static iinfo *mod_info; + +static u_llong tcp_packets = 0; +static u_llong udp_packets = 0; +static u_llong nontcpudp_packets = 0; +static struct protocol *plist = NULL; + +/* local routines */ +static void AllTCPInteractivity(void); +static void TCPInteractivity(itcinfo *conn); + +static void AllUDPInteractivity(void); +static void UDPInteractivity(iucinfo *conn); +static void PrintUDPCMsg(iucinfo *); +static void ClosedUDPConn(); + +static Bool IsNewBurst(itcinfo *conn, tcb *ptcb, struct tcphdr *tcp, Bool dir); + +static void ipCheck(struct ip *pip, void *plast); +static void tcpCheck(struct ip *pip, tcp_pair *ptcp, void *plast); +static void udpCheck(struct ip *pip, udp_pair *pup, void *plast); + +static itcinfo *Makeitcinfo(void); +static iucinfo *Makeiucinfo(void); +static void Freeitcinfo(itcinfo *); +static void Freeiucinfo(iucinfo *); + +/* declarations of memory management functions for the module */ + +static long itcinfo_pool = -1; +static long iucinfo_pool = -1; + +/* tcp packet */ + +static itcinfo * + Makeitcinfo( + void) +{ + itcinfo *ptr = NULL; + + if (itcinfo_pool < 0) { + itcinfo_pool = MakeMemPool(sizeof(itcinfo), 0); + } + + ptr = PoolMalloc(itcinfo_pool, sizeof(itcinfo)); + return ptr; +} + +/* udp packet */ + +static iucinfo * + Makeiucinfo( + void) +{ + iucinfo *ptr = NULL; + + if (iucinfo_pool < 0) { + iucinfo_pool = MakeMemPool(sizeof(iucinfo), 0); + } + + ptr = PoolMalloc(iucinfo_pool, sizeof(iucinfo)); + return ptr; +} + + +static void + Freeitcinfo( + itcinfo *ptr) +{ + PoolFree(itcinfo_pool, ptr); +} + +static void + Freeiucinfo( + iucinfo *ptr) +{ + PoolFree(iucinfo_pool, ptr); +} + +/* Usage message for using the INBOUNDS module */ + +void + inbounds_usage(void) +{ + printf("Use -xinbounds to call INBOUNDS and add -u for UDP conn. analysis\ + \n"); +} + +int + inbounds_init( + int argc, + char *argv[]) +{ + int i, fd; + int enable=0; + + + /* look for "-xinbounds" */ + for (i=1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + + if (strncmp(argv[i],"-x",2) == 0) { + if (strncasecmp(argv[i]+2,"inbounds", 8) == 0) { + /* I want to be called */ + enable = 1; + // We *are* running the program in real-time mode + run_continuously=TRUE; + + if(INBOUNDS_DEBUG) + fprintf(stderr, "mod_inbounds: Capturing traffic\n"); + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + mod_info = (iinfo *)malloc(sizeof(iinfo)); + mod_info->last_tcp_scheduled_time = current_time; + mod_info->last_tcp_actual_time = current_time; + mod_info->last_udp_scheduled_time = current_time; + mod_info->last_udp_actual_time = current_time; + + mod_info->tcp_conn_head = NULL; + mod_info->tcp_conn_tail = NULL; + mod_info->tcp_new_conn = 0; + mod_info->tcp_total_conn = 0; + mod_info->udp_conn_head = NULL; + mod_info->udp_conn_tail = NULL; + mod_info->udp_new_conn = 0; + mod_info->udp_total_conn = 0; + resolve_ipaddresses = FALSE; + resolve_ports = FALSE; + + return(1); /* TRUE means call other inbounds routines later */ +} + + +void + inbounds_done(void) +{ + struct protocol *pp; + + // When we are simulating attack, i.e feed just the attack to this module + // un-domment the following section to wash out the attack at the end + // to produce 'U' and 'C' messages. + if(do_udp) { +// iucinfo *udp_conn; + ClosedUDPConn(); +/* for (udp_conn=mod_info->udp_conn_head; udp_conn!=NULL; + udp_conn=udp_conn->next) { + if(!udp_conn->closed) { + // Assume that its been UDP_REMOVE_LIVE_CONN_INTERVAL + // since we had the last message on this connection + current_time.tv_sec=udp_conn->last_time.tv_sec+ + UDP_REMOVE_LIVE_CONN_INTERVAL; + UDPInteractivity(udp_conn); + udp_conn->closed=TRUE; + PrintUDPCMsg(udp_conn); + } + }*/ + } + +#ifdef HAVE_LONG_LONG + fprintf(stderr, "\nINBOUNDS: TCP packets - %llu\n", tcp_packets); + fprintf(stderr, "INBOUNDS: UDP packets - %llu\n", udp_packets); + fprintf(stderr, "INBOUNDS: other packets - %llu\n", nontcpudp_packets); +#else + fprintf(stderr, "\nINBOUNDS: TCP packets - %lu\n", tcp_packets); + fprintf(stderr, "INBOUNDS: UDP packets - %lu\n", udp_packets); + fprintf(stderr, "INBOUNDS: other packets - %lu\n", nontcpudp_packets); +#endif + + for (pp = plist; pp; pp = pp->next) { +#ifdef HAVE_LONG_LONG + fprintf(stderr, "\tprotocol: %3u, number: %llu\n", pp->ip_p, pp->count); +#else + fprintf(stderr, "\tprotocol: %3u, number: %lu\n", pp->ip_p, pp->count); +#endif + } + fprintf(stderr, "\n"); +} + +/* for a new TCP connection */ + +void * + inbounds_tcp_newconn( + tcp_pair *ptp) +{ + itcinfo *newConn = Makeitcinfo(); + + if (mod_info->last_tcp_scheduled_time.tv_sec == 0) { + mod_info->last_tcp_scheduled_time = current_time; + mod_info->last_tcp_actual_time = current_time; + } + + newConn->first_time = current_time; + newConn->first_data_time.tv_sec = 0; + newConn->first_data_time.tv_usec = 0; + newConn->last_time = current_time; + newConn->last_data_time.tv_sec = 0; + newConn->last_data_time.tv_usec = 0; + newConn->had_data = FALSE; + newConn->new = TRUE; + newConn->closed = FALSE; + newConn->addr_pair = ptp->addr_pair; + newConn->ptp = ptp; + newConn->a_pkt = 0; + newConn->b_pkt = 0; + newConn->a_byte = 0; + newConn->b_byte = 0; + newConn->next = NULL; + newConn->prev = NULL; + newConn->tcb_lastdata = &ptp->a2b; + newConn->qNum = 0; + newConn->aNum = 0; + newConn->qSum = 0; + newConn->aSum = 0; + newConn->q2aIdle.tv_sec = 0; newConn->q2aIdle.tv_usec = 0; + newConn->a2qIdle.tv_sec = 0; newConn->a2qIdle.tv_usec = 0; + newConn->dir = TCB_CACHE_A2B; + + if (mod_info->tcp_conn_head != NULL) { + mod_info->tcp_conn_tail->next = newConn; + newConn->prev = mod_info->tcp_conn_tail; + mod_info->tcp_conn_tail = newConn; + } + else { /* the list is empty */ + mod_info->tcp_conn_head = newConn; + mod_info->tcp_conn_tail = newConn; + } + mod_info->tcp_total_conn++; + + return newConn; +} + +/* delete TCP connection */ + +void + inbounds_tcp_deleteconn( + tcp_pair *ptp, /* info I have about this connection */ + void *mod_data) /* module specific info for this conn*/ +{ + itcinfo *conn = mod_data; + Bool done = FALSE; + + if (conn == mod_info->tcp_conn_head) { + mod_info->tcp_conn_head = mod_info->tcp_conn_head->next; + if (mod_info->tcp_conn_head) { + mod_info->tcp_conn_head->prev = NULL; + } + done = TRUE; + } + if (conn == mod_info->tcp_conn_tail) { + mod_info->tcp_conn_tail = mod_info->tcp_conn_tail->prev; + if (mod_info->tcp_conn_tail) { + mod_info->tcp_conn_tail->next = NULL; + } + done = TRUE; + } + if (!done) { + conn->prev->next = conn->next; + conn->next->prev = conn->prev; + } + Freeitcinfo(conn); + return; +} + +/* For TCP packets + * If this packet opens a new connections then output the 'O' message. + * Grab the information required to generate the update messages. + */ + +void + inbounds_tcp_read( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* past byte in the packet */ + void *mod_data) /* module specific info for this + connection */ +{ + char *tmp; + struct tcphdr *tcp;/* TCP header information */ + int data_len = 0; /* length of the data cargo in the packet */ + itcinfo *conn = mod_data; + timeval delta; + + tcb *ptcb; + int dir; + + int status = 0; + double dtime = 0; + + ++tcp_packets; + +#ifdef _MONITOR + ipCheck(pip, plast); + tcpCheck(pip, ptp, plast); +#endif + + /* first, discard any connections that we aren't interested in. */ + /* That means that pmodstruct is NULL */ + if (conn == NULL) { + return; + } + + if (0) { + printf("hash %i\t\tclosed %i, a2bfin %i, b2afin %i\n", + ptp->addr_pair.hash, conn->closed, + ptp->a2b.fin_count, ptp->b2a.fin_count); + fflush(stdout); + } + + if (conn->new) { + if (ptp->a2b.syn_count > 0) { + status = 0; + } else if (ptp->b2a.syn_count > 0) { + status = 0; + conn->dir = TCB_CACHE_B2A; + } else { + status = 1; + if (conn->addr_pair.a_port < conn->addr_pair.b_port) { + conn->dir = TCB_CACHE_B2A; + } + } + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + if ((tmp=(char*)calloc(MAX_LINE_LEN,sizeof(char)))==NULL) { + fprintf(stderr,"mod_inbounds: calloc() failed\n"); + exit(-1); + } + sprintf(tmp, "O %.6f TCP %s %s %i\n", + dtime, ptp->a_endpoint, ptp->b_endpoint, status); + + if (fwrite(tmp, strlen(tmp), 1, stdout) <= 0) { + fprintf(stderr, "Couldn't write to stdout\n"); + exit(1); + } + + fflush(stdout); + free(tmp); + conn->new = FALSE; + } + + /* Setting a pointer to the beginning of the TCP header */ +#ifdef IP_IPVHL + tcp = (struct tcphdr *) ((char *)pip + (4 * (pip->ip_vhl & 0x0f))); +#else + tcp = (struct tcphdr *) ((char *)pip + (4 * pip->ip_hl)); +#endif + + /* calculate the amount of user data */ + data_len = ntohs(pip->ip_len) - /* size of entire IP packet (and IP header) */ +#ifdef IP_IPVHL + (4 * (pip->ip_vhl & 0x0f)) - /* less the IP header */ +#else + (4 * pip->ip_hl) - /* less the IP header */ +#endif +#ifdef TCP_THXOFF + (4 * (tcp->th_xoff >> 4)); /* less the TCP header */ +#else + (4 * tcp->th_off); /* less the TCP header */ +#endif + + /* see which of the 2 TCB's this goes with */ + if (ptp->addr_pair.a_port == ntohs(tcp->th_sport)) { + ptcb = &ptp->a2b; + dir = TCB_CACHE_A2B; + } else { + ptcb = &ptp->b2a; + dir = TCB_CACHE_B2A; + } + + if (0) + printf("INBOUNDS: %s <-> %s; dir = %i ", + ptp->a_endpoint, ptp->b_endpoint, dir); + + if (debug > 2) { + printf("conn %s<->%s, my dir=%i, packet's dir=%i; IsNewBurst=", + ptp->a_endpoint, ptp->b_endpoint, conn->dir, dir); + } + if (data_len > 0) { + if (tv_lt(conn->first_data_time, conn->first_time)) { + conn->first_data_time = current_time; + conn->had_data = TRUE; + } + } + + /* see if it's a new burst */ + if (!conn->closed) { + if (((data_len > 0) && (IsNewBurst(conn, ptcb, tcp, dir))) || + ((FIN_SET(tcp)) && (FinCount(ptp) == 1)) || + (RESET_SET(tcp))) { + + delta = current_time; + tv_sub(&delta, conn->last_data_time); + + if (FIN_SET(tcp) || RESET_SET(tcp)) { + if (conn->had_data) { + if (conn->dir == 0) { /* we had a question before */ + conn->dir = 1; + conn->qNum++; + conn->qSum += conn->burst_bytes; + tv_add(&conn->q2aIdle, delta); + } + else { /* we had an answer before */ + conn->dir = 0; /* we have question */ + conn->aNum++; /* number of complete answers */ + conn->aSum += conn->burst_bytes; + tv_add(&conn->a2qIdle, delta); + } + } + } + else { + if (dir == TCB_CACHE_A2B) { + conn->dir = 0; /* we have question */ + conn->aNum++; /* number of complete answers */ + conn->aSum += conn->burst_bytes; + tv_add(&conn->a2qIdle, delta); + } + else { + conn->dir = 1; + conn->qNum++; + conn->qSum += conn->burst_bytes; + tv_add(&conn->q2aIdle, delta); + } + } + conn->burst_bytes = 0; + + if (0) { + fprintf(stderr, "%.6f switching direction from %s to %s, idle time is %.6f\n", + current_time.tv_sec + (current_time.tv_usec / 1000000.0), + (conn->dir == 0) ? "answer" : "question", + (conn->dir == 0) ? "question" : "answer", + delta.tv_sec + (delta.tv_usec / 100000.0)); + } + + if (debug > 2) + printf("true "); + } + } + + if (data_len > 0) { + conn->last_data_time = current_time; + conn->burst_bytes += data_len; + } + conn->last_time = current_time; + + status = 0; + if (!conn->closed) { + if ((FinCount(ptp) >= 1) || (ConnReset(ptp))) { + if (0) { + fprintf(stderr, "number of questions: %i, number of answers: %i\n", + conn->qNum, conn->aNum); + } + TCPInteractivity(conn); + if (dtime == 0) { + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + } + + if ((ptp->a2b.reset_count >=1) || (ptp->b2a.reset_count >= 1)) { + status = 1; + } + if ((tmp=(char*)calloc(MAX_LINE_LEN,sizeof(char)))==NULL) { + fprintf(stderr,"mod_inbounds: calloc() failed\n"); + exit(-1); + } + sprintf(tmp, "C %.6f TCP %s %s %i\n", + dtime, ptp->a_endpoint, ptp->b_endpoint, status); + + if (fwrite(tmp, strlen(tmp), 1, stdout) <= 0) { + fprintf(stderr, "mod_inbounds: couldn't write to stdout\n" + ); + exit(1); + } + fflush(stdout); + free(tmp); + conn->closed = TRUE; + } + } + + if ((elapsed(mod_info->last_tcp_scheduled_time, current_time) / 1000000.0) + >= INBOUNDS_TCP_UPDATE_INTERVAL) { + AllTCPInteractivity(); + } +} + +/* for new UDP connections */ +void * + inbounds_udp_newconn( + udp_pair *pup) +{ + iucinfo *newConn = Makeiucinfo(); + + inc_cnt++; + + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_newconn() \n"); + + if (mod_info->last_udp_scheduled_time.tv_sec == 0) { + mod_info->last_udp_scheduled_time = current_time; + mod_info->last_udp_actual_time = current_time; + } + + newConn->first_time = current_time; + newConn->last_time = current_time; + newConn->new = TRUE; + newConn->closed = FALSE; + newConn->addr_pair = pup->addr_pair; + newConn->pup = pup; + newConn->a_pkt = 0; + newConn->b_pkt = 0; + newConn->a_byte = 0; + newConn->b_byte = 0; + newConn->next = NULL; + newConn->prev = NULL; + newConn->qNum = 0; + newConn->aNum = 0; + newConn->qSum = 0; + newConn->aSum = 0; + + // If this field remains -1, it means + // q2aIdle could not be calculated for + // INBOUNDS_UDP_UPDATE_INTERVAL. + // In that case, we shall print out + // q2aIdle as = INBOUNDS_UDP_UPDATE_INTERVAL, i.e. q2a duration is max. + newConn->q2aIdle.tv_sec = -1; + newConn->q2aIdle.tv_usec = 0; + newConn->a2qIdle.tv_sec = -1; + newConn->a2qIdle.tv_usec = 0; + newConn->dir = UDP_A2B; + + if (mod_info->udp_conn_head != NULL) { + mod_info->udp_conn_tail->next = newConn; + newConn->prev = mod_info->udp_conn_tail; + mod_info->udp_conn_tail = newConn; + } + else { + mod_info->udp_conn_head = newConn; + mod_info->udp_conn_tail = newConn; + } + mod_info->udp_total_conn++; + + return newConn; +} + +/* This function is not invoked by tcptrace currently and is here mostly + * for the sake of completeness. You may need to fix the module definition + * in modules.h and fix tcptrace.c/trace.c to make sure this function gets + * invoked (if you need this functionality, of course) - Mani, 4 Mar 2004. + */ + +/* delete timedout UDP connections */ +void + inbounds_udp_deleteconn( + udp_pair *pup, // info I have about this conn. + void *mod_data)// module specific info for this + //conn. +{ + iucinfo *conn = mod_data; + Bool done = FALSE; + + udp_delconn_cnt++; + + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_deleteconn() \n"); + + if (conn == mod_info->udp_conn_head) { + mod_info->udp_conn_head = mod_info->udp_conn_head->next; + if (mod_info->udp_conn_head) { + mod_info->udp_conn_head->prev = NULL; + } + done = TRUE; + } + if (conn == mod_info->udp_conn_tail) { + mod_info->udp_conn_tail = mod_info->udp_conn_tail->prev; + if (mod_info->udp_conn_tail) { + mod_info->udp_conn_tail->next = NULL; + } + done = TRUE; + } + + if (!done) { + conn->prev->next = conn->next; + conn->next->prev = conn->prev; + } + + if(!conn->closed) { + UDPInteractivity(conn); + PrintUDPCMsg(conn); + } + + Freeiucinfo(conn); + return; +} + +/* For UDP packets + * If this packet opens a new connections then output the 'O' message. + * Grab the information required to generate the update messages + */ + +void +inbounds_udp_read( + struct ip *pip, + udp_pair *pup, + void *plast, + void *mod_data) +{ + char *tmp; + struct udphdr *udp; /* UDP header information */ + int data_len = 0; /* length of the data cargo in the packet */ + iucinfo *conn = mod_data; + timeval delta; + + int dir; + + int status = 0; + double dtime = 0; + + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_read() \n"); + + ++udp_packets; + + +#ifdef _MONITOR + ipCheck(pip, plast); + udpCheck(pip, pup, plast); +#endif + + /* first, discard any connections that we aren't interested in. */ + /* That means that pmodstruct is NULL */ + if (conn == NULL || pup == NULL) { + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_read() conn is NULL or pup \n"); + return; + } + + if (conn->new) { + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_read() This is new connection\n"); + + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + if(INBOUNDS_DEBUG) { + printf("dtime: %.6f \n",dtime); + printf("pup->a_endpoint: %s \n",pup->a_endpoint); + printf("pup->b_endpoint: %s \n",pup->b_endpoint); + } + if ((tmp=(char*)calloc(MAX_LINE_LEN,sizeof(char)))==NULL) { + fprintf(stderr,"mod_inbounds: calloc() failed\n"); + exit(-1); + } + + sprintf(tmp, "O %.6f UDP %s %s %i\n", + dtime, pup->a_endpoint, pup->b_endpoint, status); + + if (fwrite(tmp, strlen(tmp), 1, stdout) <= 0) { + fprintf(stderr, "mod_inbounds: couldn't write to stdout\n"); + exit(1); + } + fflush(stdout); + free(tmp); + conn->new = FALSE; + } + + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_read() datalen is being calculated \n"); + + /* Setting a pointer to the beginning of the TCP header */ +#ifdef IP_IPVHL + udp = (struct udphdr *) ((char *)pip + (4 * (pip->ip_vhl & 0x0f))); +#else + udp = (struct udphdr *) ((char *)pip + (4 * pip->ip_hl)); +#endif + + /* calculate the amount of user data */ + data_len = ntohs(pip->ip_len) - + /* size of entire IP packet (and IP header) */ +#ifdef IP_IPVHL + (4 * (pip->ip_vhl & 0x0f)) - /* less the IP header */ +#else + (4 * pip->ip_hl) - /* less the IP header */ +#endif + UDPHDR_LEN; + + if(INBOUNDS_DEBUG) + printf("mod_inbounds: udp_read() datalen:%d \n",data_len); + + /* see in which direction this goes with */ + if (INBOUNDS_DEBUG) { + printf("INBOUNDS: %d \n", + pup->addr_pair.a_port); + printf("INBOUNDS: %d \n", + ntohs(udp->uh_sport)); + } + + // Do anything at all if only we captured the headers fully + if(data_len >= 0) { + + if (pup->addr_pair.a_port == ntohs(udp->uh_sport)) + dir = UDP_A2B; + else + dir = UDP_B2A; + + /* if (data_len > 0) { // this packet has data in it + * + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_read() this packet has data in it\n"); + if (tv_lt(conn->first_data_time, conn->first_time)) { + conn->first_data_time = current_time; + conn->had_data = TRUE; + } + */ + delta=current_time; + tv_sub(&delta,conn->last_time); + conn->last_time = current_time; + if(dir == UDP_A2B) {// this is a question + // If what we had before was an answer, we can calculate AQIT + if(conn->dir==UDP_B2A) { + if(conn->a2qIdle.tv_sec==-1) {// First sample in the last + // INBOUNDS_UPDATE_INTERVAL + conn->a2qIdle.tv_sec=0.0; + conn->a2qIdle.tv_usec=0.0; + tv_add(&conn->a2qIdle,delta); + } + else { + tv_add(&conn->a2qIdle,delta); + } + } + conn->dir = UDP_A2B; + conn->qNum++; + conn->qSum += data_len; + } + else {// this is an answer + // If what we had before was a question, we can calculate QAIT + Bool done = FALSE; + if(conn->dir==UDP_A2B) { + if(conn->q2aIdle.tv_sec==-1) {// First sample in the last + // INBOUNDS_UPDATE_INTERVAL + conn->q2aIdle.tv_sec=0.0; + conn->q2aIdle.tv_usec=0.0; + tv_add(&conn->q2aIdle,delta); + } + else { + tv_add(&conn->q2aIdle,delta); + } + } + conn->dir = UDP_B2A; + conn->aNum++; + conn->aSum += data_len; + } + } // END: if data_len >= 0 + + /* Do the interactivity - it has to be done for both TCP and UDP */ + + if ((elapsed(mod_info->last_udp_scheduled_time, current_time) / 1000000.0) + >= INBOUNDS_UDP_UPDATE_INTERVAL) { + AllUDPInteractivity(); + } + + + if(INBOUNDS_DEBUG) + printf("mod_inbounds:udp_read() exiting udp_read \n"); +} + + +/* call the respective TCP and UDP routines to print the update messages */ + +static void + AllTCPInteractivity(void) +{ + itcinfo *tcp_conn; + + if(INBOUNDS_DEBUG) + printf("mod_inbounds: in AllTCPInteractivity() \n"); + + for (tcp_conn = mod_info->tcp_conn_head; tcp_conn != NULL; + tcp_conn = tcp_conn->next) { + if (!tcp_conn->closed) { + TCPInteractivity(tcp_conn); + } + } + + mod_info->last_tcp_scheduled_time.tv_sec += INBOUNDS_TCP_UPDATE_INTERVAL; + mod_info->last_tcp_actual_time = current_time; + +} + +/* calculate and print out interactivity statistics for TCP connections */ +static void + TCPInteractivity( + itcinfo *conn) +{ + char *tmp; + + double qAvg; + double aAvg; + double q2aIdle; + double a2qIdle; + double dtime; + double update_interval; + timeval first_time; + + if ((tmp=(char*)calloc(MAX_LINE_LEN,sizeof(char)))==NULL) { + fprintf(stderr,"itcptrace : calloc() failed\n"); + exit(-1); + } + + if (conn->had_data) { + first_time = conn->first_data_time; + } + else { + first_time = conn->first_time; + } + + if (tv_lt(mod_info->last_tcp_actual_time, first_time)) { + update_interval = elapsed(conn->first_data_time, current_time) / + 1000000.0; + /* if this is the first packet belonging to the connection, + we don't need to print statistics */ + if (update_interval == 0) + return; + } + else { + update_interval = elapsed(mod_info->last_tcp_actual_time, + current_time) / 1000000.0; + } + if (update_interval < 1.0) { + update_interval = 1.0; + } + + if (conn->qNum != 0) { + qAvg = conn->qSum / (double)conn->qNum; + } + else { + qAvg = 0; + } + if (conn->aNum != 0) { + aAvg = conn->aSum / (double)conn->aNum; + } + else { + aAvg = 0; + } + q2aIdle = (conn->q2aIdle.tv_sec + (conn->q2aIdle.tv_usec / 1000000.0)) / update_interval; + a2qIdle = (conn->a2qIdle.tv_sec + (conn->a2qIdle.tv_usec / 1000000.0)) / update_interval ; + + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + + sprintf(tmp, "U %.6f TCP %s %s %.3f %.3f %.3f %.6f %.6f\n", + dtime, conn->ptp->a_endpoint, conn->ptp->b_endpoint, + (conn->qNum / update_interval), qAvg, aAvg, q2aIdle, a2qIdle); + +// sprintf(tmp, "U TCP %.3f %.3f %.3f %.3f %.3f %.3f\n", +// conn->qSum, conn->qNum, qAvg, +// conn->aSum, conn->aNum, aAvg); + + conn->qNum = 0; + conn->aNum = 0; + conn->qSum = 0; + conn->aSum = 0; + conn->q2aIdle.tv_sec = 0; conn->q2aIdle.tv_usec = 0; + conn->a2qIdle.tv_sec = 0; conn->a2qIdle.tv_usec = 0; + + if (fwrite(tmp, strlen(tmp), 1, stdout) <= 0) { + fprintf(stderr, "mod_inbounds : couldn't write to stdout\n"); + exit(1); + } + fflush(stdout); + free(tmp); + +} + +static void + AllUDPInteractivity(void) +{ + iucinfo *udp_conn; + + if(INBOUNDS_DEBUG) + printf("mod_inbounds: in AllUDPInteractivity() \n"); + + if(do_udp) { + ClosedUDPConn(); + for (udp_conn = mod_info->udp_conn_head; udp_conn != NULL; + udp_conn = udp_conn->next) { + if (!udp_conn->closed) { + UDPInteractivity(udp_conn); + } + } + } + + mod_info->last_udp_scheduled_time.tv_sec += INBOUNDS_UDP_UPDATE_INTERVAL; + mod_info->last_udp_actual_time = current_time; + +} + + +/* calculate and print out UDP interactivity statistics */ + +static void + UDPInteractivity( + iucinfo *conn) +{ + char *tmp; + double qAvg; + double aAvg; + double q2aIdle; + double a2qIdle; + double dtime; + double update_interval; + // timeval first_time; + // + if ((tmp=(char*)calloc(MAX_LINE_LEN,sizeof(char)))==NULL) { + fprintf(stderr,"itcptrace : calloc() failed\n"); + exit(-1); + } + + if(INBOUNDS_DEBUG) + printf("mod_inbounds:UDPDoInteractivity() \n"); + + if (tv_lt(mod_info->last_udp_actual_time, conn->first_time)) { + update_interval = elapsed(conn->first_time, current_time) / + 1000000.0; + /* if this is the first packet belonging to the connection, + * we don't need to print statistics */ + if (update_interval == 0) + return; + } + else { + update_interval = + elapsed(mod_info->last_udp_actual_time, current_time) / 1000000.0; + } + + if (update_interval < 1.0) + update_interval = 1.0; + + if (conn->qNum != 0) + qAvg = conn->qSum / (double)conn->qNum; + else + qAvg = 0; + + if (conn->aNum != 0) + aAvg = conn->aSum / (double)conn->aNum; + else + aAvg = 0; + + if(conn->q2aIdle.tv_sec == -1) { + // We could not calculate q2aIdle + // in the last INBOUNDS_UDP_UPDATE_INTERVAL + // as there were no answers + q2aIdle=1.0; + } + else { + q2aIdle=(conn->q2aIdle.tv_sec + + (conn->q2aIdle.tv_usec / 1000000.0)) /update_interval; + } + + if(conn->a2qIdle.tv_sec == -1) { + // We could not calculate a2qIdle + // in the last INBOUNDS_UDP_UPDATE_INTERVAL + // as there were no questions + a2qIdle=1.0; + } + else { + a2qIdle=(conn->a2qIdle.tv_sec + + (conn->a2qIdle.tv_usec / 1000000.0)) /update_interval; + } + + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + + sprintf(tmp, "U %.6f UDP %s %s %.3f %.3f %.3f %.6f %.6f\n", + dtime, conn->pup->a_endpoint, conn->pup->b_endpoint, + (conn->qNum / update_interval), qAvg, aAvg, q2aIdle, a2qIdle); + conn->qNum = 0; + conn->aNum = 0; + conn->qSum = 0; + conn->aSum = 0; + conn->q2aIdle.tv_sec = -1; conn->q2aIdle.tv_usec = 0; + conn->a2qIdle.tv_sec = -1; conn->a2qIdle.tv_usec = 0; + + + if (fwrite(tmp, strlen(tmp), 1, stdout) <= 0) { + fprintf(stderr, "mod_inbounds : couldn't write to stdout\n"); + exit(1); + } + fflush(stdout); + free(tmp); +} + + +/* look for timed out UDP connections */ + +static void + ClosedUDPConn() +{ + iucinfo *udp_conn; + + for (udp_conn = mod_info->udp_conn_head; udp_conn != NULL; + udp_conn = udp_conn->next) { + if (!udp_conn->closed) { + if((elapsed(udp_conn->last_time,current_time)/1000000.0) >= + UDP_REMOVE_LIVE_CONN_INTERVAL) { + UDPInteractivity(udp_conn); + udp_conn->closed = TRUE; + PrintUDPCMsg(udp_conn); + } + } + } +} + +/* print the C messages for timed out UDP connections */ + +static void + PrintUDPCMsg(iucinfo *udp_conn) +{ + char tmp[256]; + int status = 0; + double dtime = 0; + + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + sprintf(tmp, "C %.6f UDP %s %s %i\n", + dtime, udp_conn->pup->a_endpoint, udp_conn->pup->b_endpoint, status); +#ifdef _DEBUG + printf("%s", tmp); +#endif + + if (fwrite(tmp, strlen(tmp), 1, stdout) <= 0) { + fprintf(stderr, "mod_inbounds : couldn't write to stdout\n"); + exit(1); + } + fflush(stdout); + +} + +void + inbounds_nontcpudp_read( + struct ip *pip, + void *plast) +{ + struct protocol *last = NULL; + struct protocol *current; + + ++nontcpudp_packets; +#ifdef _MONITOR + ipCheck(pip, plast); +#endif /* _MONITOR */ + + if (plist == NULL) { + plist = (struct protocol *)MallocZ(sizeof(struct protocol)); + current = plist; + current->count = 1; + current->next = NULL; + current->ip_p = pip->ip_p; + last = current; + } + else { + for (current = plist; current; current = current->next) { + if (current->ip_p == pip->ip_p) { + current->count++; + break; + } + else { + last = current; + } + } + if (current == NULL) { /* protocol is not on our list yet */ + current = (struct protocol *)MallocZ(sizeof(struct protocol)); + current->ip_p = pip->ip_p; + current->count = 1; + current->next = NULL; + last->next = current; + last = current; + } + } +} + + + +/* Data is considered a NEW burst if: + * 1) All previous data was ACKed + * 2) There was intervening data in the other direction + * 3) idletime > RTT -- ??? + */ +static Bool + IsNewBurst( + itcinfo *conn, + tcb *ptcb, + struct tcphdr *tcp, + Bool dir) +{ + + seqnum seq = ntohl(tcp->th_seq); + tcb *orig_lastdata; + + tcb *ptcb_otherdir = ptcb->ptwin; + + /* remember the last direction the data flowed */ + orig_lastdata = conn->tcb_lastdata; + conn->tcb_lastdata = ptcb; + + /* it's only a NEW burst if there was a PREVIOUS burst */ + if (conn->burst_bytes == 0) { + if (0) + printf("%s <-> %s: same dir (no previous)\n", ptcb->ptp->a_endpoint, ptcb->ptp->b_endpoint); + return(FALSE); + } + + /* check for old data ACKed */ + /* + if (SEQ_LESSTHAN(ptcb_otherdir->ack,seq)) { + if (0) //(debug > 2) + printf("%s <-> %s: same dir (no acks)\n", ptcb->ptp->a_endpoint, ptcb->ptp->b_endpoint); + return(FALSE); + }*/ + + /* check for idletime > RTT */ + /* { + u_long etime_usecs = elapsed(conn->last_data_time, current_time); + u_long last_rtt_usecs = ptcb->rtt_last; + if ((last_rtt_usecs != 0) && (etime_usecs < last_rtt_usecs)) { + if (debug > 2) + printf("(idletime) "); + return(FALSE); + } + } + */ + /* check for intervening data */ + if (ptcb == orig_lastdata) { + /* no intervening data */ + if (0) + printf("%s <-> %s: same dir\n", ptcb->ptp->a_endpoint, + ptcb->ptp->b_endpoint); + return(FALSE); + } + + if (debug) { + if (dir == conn->dir) { + fprintf(stderr, + "WARNING for conn %s<->%s, my dir=%i, packet's dir=%i\n", + ptcb->ptp->a_endpoint, ptcb->ptp->b_endpoint, conn->dir, dir); + } + } + if (0) + printf("%s <-> %s: diff dir\n", ptcb->ptp->a_endpoint, + ptcb->ptp->b_endpoint); + return(TRUE); +} + +static void +ipCheck( + struct ip *pip, + void *plast) +{ + /* make sure we have enough of the packet */ + if ((unsigned)pip+sizeof(struct ip)-1 > (unsigned)plast) { + fprintf(stderr, "INBOUNDS: packet too short for IP details\n"); + return; + } + + if (!ip_cksum_valid(pip,plast)) { + fprintf(stderr, "INBOUNDS: packet %lu: bad IP checksum\n", pnum); + } + + /* check that IP addresses are different */ + if (pip->ip_src.s_addr == pip->ip_dst.s_addr) { + fprintf(stderr, + "INBOUNDS: packet %lu same source and dest IP addresses %s\n", + pnum, inet_ntoa(pip->ip_src)); + } + /* check that the packet doesn't have private addresses */ + /* class A addresses */ + if (((unsigned int)(pip->ip_src.s_addr >> 24) == 10) || + ((unsigned int)(pip->ip_dst.s_addr >> 24) == 10) || + /* class B addresses */ + (((unsigned int)(pip->ip_src.s_addr >> 24) == 172) && + ((((unsigned int)(pip->ip_src.s_addr >> 16) & 0xff) >= 16) && + (((unsigned int)(pip->ip_src.s_addr >> 16) & 0xff) < 32))) || + (((unsigned int)(pip->ip_dst.s_addr >> 24) == 172) && + ((((unsigned int)(pip->ip_dst.s_addr >> 16) & 0xff) >= 16) && + ((((unsigned int)(pip->ip_dst.s_addr >> 16) & 0xff) < 32)))) || + /* class C addresses */ + (((unsigned int)(pip->ip_src.s_addr >> 24) == 192) && + (((unsigned int)(pip->ip_src.s_addr >> 16) & 0xff) == 168)) || + (((unsigned int)(pip->ip_dst.s_addr >> 24) == 192) && + (((unsigned int)(pip->ip_dst.s_addr >> 16) & 0xff) == 168))) { + fprintf(stderr, "INBOUNDS: packet %lu private address %s", + pnum, inet_ntoa(pip->ip_src)); + fprintf(stderr, " -> %s\n", inet_ntoa(pip->ip_dst)); + } + /* check that addresses don't violate standards */ + if (((unsigned int)(pip->ip_dst.s_addr >> 24) == 0) || + ((unsigned int)(pip->ip_src.s_addr >> 24) == 255) || + ((unsigned int)(pip->ip_src.s_addr >> 24) == 127) || + ((unsigned int)(pip->ip_dst.s_addr >> 24) == 127)) { + fprintf(stderr, "INBOUNDS: packet %lu standard violation %s", + pnum, inet_ntoa(pip->ip_src)); + fprintf(stderr, " -> %s\n", inet_ntoa(pip->ip_dst)); + } + + /* check whether TTL is low */ + /* won't do for a while */ + /* + if ((unsigned int)pip->ip_ttl < 10) { + fprintf(stderr, "INBOUNDS: low TTL(%u) for %s -> ", + (unsigned int)pip->ip_ttl, inet_ntoa(pip->ip_src)); + fprintf(stderr, "%s\n", inet_ntoa(pip->ip_dst)); + } + */ + + /* check whether do-not-fragment bit is set */ + /* no, too many packets * + if (pip->ip_off & IP_DF) { + fprintf(stderr, "INBOUNDS: DF bit set for %s", inet_ntoa(pip->ip_src)); + fprintf(stderr, "-> %s, size %i bytes\n", + inet_ntoa(pip->ip_dst), pip->ip_len); + } + */ + /* check options: packet is not strict source routed */ +#ifdef IP_IPVHL + if ((pip->ip_vhl & 0x0f) != 5) { +#else + if (pip->ip_hl != 5) { +#endif + char *popt = (char *)pip + 20; + void *plast_option; + + /* find the last option in the file */ +#ifdef IP_IPVHL + plast_option = (char *)pip+4*(pip->ip_vhl & 0x0f)-1; +#else + plast_option = (char *)pip+4*pip->ip_hl-1; +#endif + if (plast_option > plast) + plast_option = plast; /* truncated shorter than that */ + + while ((void *)popt <= plast_option) { + u_int opt = *popt; + u_int len = *(popt+1); + + /* check for truncated option */ + if ((void *)(popt+len-1) > plast) { + fprintf(stderr, "INBOUNDS: packet %lu IP option (truncated) in %s", + pnum, inet_ntoa(pip->ip_src)); + fprintf(stderr, " -> %s\n", inet_ntoa(pip->ip_dst)); + continue; + } + + if (opt == 9) { + fprintf(stderr, "INBOUNDS: packet %lu strict source route: %s", + pnum, inet_ntoa(pip->ip_src)); + fprintf(stderr, " -> %s\n", inet_ntoa(pip->ip_dst)); + } + if (opt == 3) { + fprintf(stderr, "INBOUNDS: packet %lu loose source route: %s", + pnum, inet_ntoa(pip->ip_src)); + fprintf(stderr, " -> %s\n", inet_ntoa(pip->ip_dst)); + } + if (len <= 0) + break; + popt += len; + } + } + +} + +static void +tcpCheck( + struct ip *pip, + tcp_pair *ptp, + void *plast) +{ + struct tcphdr *ptcp; + int dir; + Bool valid = TRUE; + +#ifdef IP_IPVHL + if (((unsigned int)pip->ip_len - (unsigned int)(pip->ip_vhl & 0x0f)) < +#else + if (((unsigned int)pip->ip_len - (unsigned int)pip->ip_hl) < +#endif + (unsigned int)sizeof(struct tcphdr)) { + fprintf(stderr, "INBOUNDS: packet %lu TCP packet too short for TCP header %s", + pnum, inet_ntoa(pip->ip_src)); + fprintf(stderr, " -> %s\n", inet_ntoa(pip->ip_dst)); + } + + /* check flags */ + /* 1) SYN and FIN set */ + /* 2) SYN and RST set */ + /* 3) SYN and URG set */ + /* 4) none set - deprecated */ + + /* Setting a pointer to the beginning of the TCP header */ +#ifdef IP_IPVHL + ptcp = (struct tcphdr *) ((char *)pip + (4 * (pip->ip_vhl & 0x0f))); +#else + ptcp = (struct tcphdr *) ((char *)pip + (4 * pip->ip_hl)); +#endif + + /* verify checksum */ + if (!tcp_cksum_valid(pip,ptcp,plast)) { + fprintf(stderr, "INBOUNDS: packet %lu invalid TCP checksum\n", pnum); + } + + /* check port numbers */ + /* 1) not the same - now deprecated */ + /* 2) not zero */ + /* + if (ptp->addr_pair.a_port == ptp->addr_pair.b_port) { + fprintf(stderr, "INBOUNDS: same port numbers %s -> %s\n", + ptp->a_endpoint, ptp->b_endpoint); + } + */ + if ((ptp->addr_pair.a_port == 0) || (ptp->addr_pair.b_port == 0)) { + fprintf(stderr, "INBOUNDS: packet %lu zero port number(s) %s -> %s\n", + pnum, ptp->a_endpoint, ptp->b_endpoint); + } + + /* see which of the 2 TCB's this goes with */ + if (ptp->addr_pair.a_port == ntohs(ptcp->th_sport)) { + dir = A2B; + } else { + dir = B2A; + } + + if (SYN_SET(ptcp)) { + if (FIN_SET(ptcp)) { + fprintf(stderr, "INBOUNDS: packet %lu invalid TCP flags: SYN FIN ", pnum); + valid = FALSE; + } + if (RESET_SET(ptcp)) { + if (valid) { + fprintf(stderr, "INBOUNDS: packet %lu invalid TCP flags: SYN RST ", pnum); + valid = FALSE; + } + else { + fprintf(stderr, "RST "); + } + } + if (URGENT_SET(ptcp)) { + if (valid) { + fprintf(stderr, "INBOUNDS: packet %lu invalid TCP flags: SYN URG ", pnum); + valid = FALSE; + } + else { + fprintf(stderr, "URG "); + } + } + if (PUSH_SET(ptcp)) { + if (valid) { + fprintf(stderr, "INBOUNDS: packet %lu invalid TCP flags: SYN PSH ", pnum); + valid = FALSE; + } + else { + fprintf(stderr, "PSH "); + } + } + if (!valid) { + fprintf(stderr, "set in "); + if (dir == A2B) + fprintf(stderr, "%s -> %s\n", ptp->a_endpoint, ptp->b_endpoint); + else + fprintf(stderr, "%s -> %s\n", ptp->b_endpoint, ptp->a_endpoint); + if (ptp->packets <= 1) { + fprintf(stderr, "packet %lu doesn't belong to a conn", pnum); + } + else { + fprintf(stderr, "packet %lu belongs to a conn with %llu packets\n", + pnum, ptp->packets); + } + } + } + else { + if (RESET_SET(ptcp) && FIN_SET(ptcp)) { + fprintf(stderr, + "INBOUNDS: packet %lu invalid TCP flags: RST FIN set in %s -> %s\n", + pnum, (dir == A2B) ? ptp->a_endpoint : ptp->b_endpoint, + (dir == A2B) ? ptp->b_endpoint : ptp->a_endpoint); + if (ptp->packets <= 1) { + fprintf(stderr, "packet %lu doesn't belong to a conn", pnum); + } + else { + fprintf(stderr, "packet belongs to a conn with %llu packets\n", + pnum, ptp->packets); + } + } + } + +#ifdef TCP_THXOFF + if ((ptcp->th_xoff & 0x0f) != 0) { + fprintf(stderr, + "INBOUNDS: packet %lu 4 TCP reserved bits are not zero (0x%01x)\n", + pnum, (ptcp->th_xoff & 0x0f)); + } +#else + if (ptcp->th_x2 != 0) { + fprintf(stderr, + "INBOUNDS: packet %lu 4 TCP reserved bits are not zero (0x%01x)\n", + pnum, ptcp->th_x2); + } +#endif + if ((ptcp->th_flags & 0xc0) != 0) { + fprintf(stderr, + "INBOUNDS: packet %lu upper TCP flag bits are not zero (0x%02x)\n", + pnum, ptcp->th_flags); + } + +} + +static void +udpCheck( + struct ip *pip, + udp_pair *pup, + void *plast) +{ + struct udphdr *pudp; + int ret; + + /* look for a UDP header */ + ret = getudp(pip, &pudp, &plast); + if (ret <= 0) { + if (!udp_cksum_valid(pip,pudp,plast)) { + fprintf(stderr, "INBOUNDS: packet %lu invalid UDP checksum\n", pnum); + } + } +} + +#endif /* LOAD_MODULE_INBOUNDS */ + + diff --git a/mod_inbounds.h b/mod_inbounds.h new file mode 100644 index 0000000..923eb2d --- /dev/null +++ b/mod_inbounds.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 1994-2004 + * Ohio University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that: (1) source code + * distributions retain the above copyright notice and this paragraph + * in its entirety, (2) distributions including binary code include + * the above copyright notice and this paragraph in its entirety in + * the documentation or other materials provided with the + * distribution, and (3) all advertising materials mentioning features + * or use of this software display the following acknowledgment: + * ``This product includes software developed by the Ohio University + * Internetworking Research Laboratory.'' Neither the name of the + * University nor the names of its contributors may be used to endorse + * or promote products derived from this software without specific + * prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + */ + +#define MAX_LINE_LEN 256 +#define UDP_REMOVE_LIVE_CONN_INTERVAL 60 + +/* header file for inbounds.c */ +int inbounds_init(int argc, char *argv[]); +void inbounds_tcp_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmod_data); +void inbounds_done(void); +void inbounds_usage(void); +void inbounds_udp_read(struct ip *pip, udp_pair *pup, void *plast, void *pmodstruct); +void inbounds_nontcpudp_read(struct ip *pip, void *plast); +void *inbounds_tcp_newconn( tcp_pair *ptp); +void inbounds_tcp_deleteconn(tcp_pair *ptp, void *mod_data); +void *inbounds_udp_newconn( udp_pair *pup); +void inbounds_udp_deleteconn(udp_pair *pup, void *mod_data); diff --git a/mod_realtime.c b/mod_realtime.c new file mode 100644 index 0000000..324ba86 --- /dev/null +++ b/mod_realtime.c @@ -0,0 +1,385 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Marina Bykova + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_realtime.c,v 5.7 2003/11/19 14:38:03 sdo Exp $"; + +#ifdef LOAD_MODULE_REALTIME + +#include +#include "mod_realtime.h" + +/* info kept for all traced packets */ +struct realtime_conn_info { + timeval first_time; /* time of the connection's first packet */ + timeval last_time; /* time of the connection's last packet */ + Bool is_closed; /* is the connection has been closed? */ + Bool is_new; /* is the connection new? */ + + tcp_pair_addrblock addr_pair; + tcp_pair *ptp; + + struct realtime_conn_info *prev; /* pointer to the prev connection */ + struct realtime_conn_info *next; /* pointer to the next connection */ +}; + +typedef struct realtime_conn_info rtconn; + +struct realtime_info { + timeval last_scheduled_time; /* time of the last network statistics */ + /* as it would appear in the ideal case */ + timeval last_actual_time; /* time of the last network statistics */ + /* when it actually happened */ + rtconn *conn_head; /* head of the list of tcp connections */ + rtconn *conn_tail; /* tail of the list of tcp connections */ + + u_long open_conns; /* number of new connections within the + time interval */ + u_long total_conns; /* number of currect active connections */ +}; + +typedef struct realtime_info rtinfo; + +struct protocol { + u_char ip_p; + u_llong count; + struct protocol *next; +}; + +const static int realtime_update_interval = 60; + +/* global variables */ +static rtinfo *mod_info; + +static u_llong tcp_packets = 0; +static u_llong udp_packets = 0; +static u_llong nontcpudp_packets = 0; +static struct protocol *plist = NULL; + +/* declarations of memory management functions for the module */ +static long rtconn_pool = -1; + +static rtconn * +MakeRtconn( + void) +{ + rtconn *ptr = NULL; + + if (rtconn_pool < 0) { + rtconn_pool = MakeMemPool(sizeof(rtconn), 0); + } + + ptr = PoolMalloc(rtconn_pool, sizeof(rtconn)); + return ptr; +} + +static void +FreeRtconn( + rtconn *ptr) +{ + PoolFree(rtconn_pool, ptr); +} + + +void +realtime_usage(void) +{ + printf("\t-xrealtime\tan example module showing how to use real-time tcptrace\n"); +} + +int +realtime_init( + int argc, + char *argv[]) +{ + int i; + int enable = 0; + + /* look for "-xrealtime" */ + for (i = 1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + + if (strncmp(argv[i],"-x", 2) == 0) { + if (strncasecmp(argv[i] + 2, "realtime", 8) == 0) { + /* I want to be called */ + enable = 1; + fprintf(stderr, "mod_realtime: Capturing traffic\n"); + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + mod_info = (rtinfo *)malloc(sizeof(rtinfo)); + mod_info->last_scheduled_time = current_time; + mod_info->last_actual_time = current_time; + mod_info->conn_head = NULL; + mod_info->conn_tail = NULL; + mod_info->open_conns = 0; + mod_info->total_conns = 0; + + /* DNS lookups are time expensive, we want to disable them in real-time + module */ + resolve_ipaddresses = FALSE; + resolve_ports = FALSE; + + /* we want to run the program in real-time mode */ + run_continuously = TRUE; + + /* if you want to set a threshold on the number of connections the program + * stores, uncomment this with and modify depending on your needs (must be + * different for different monitoring points) */ + /* conn_num_threshold = TRUE; + update_interval = 60; + max_conn_num = 20000; + */ + + do_udp = TRUE; + + return(1); /* TRUE means call other realtime routines later */ +} + +void +realtime_done(void) +{ + //Srihasha Gangam + /* + struct protocol *pp; + + fprintf(stdout, "\nrealtime: TCP packets - %" FS_ULL "\n", tcp_packets); + fprintf(stdout, "realtime: UDP packets - %" FS_ULL "\n", udp_packets); + fprintf(stdout, "realtime: other packets - %" FS_ULL "\n", nontcpudp_packets); + + for (pp = plist; pp; pp = pp->next) + fprintf(stdout, "\tprotocol: %3u, number: %" FS_ULL "\n", pp->ip_p, pp->count); + + fprintf(stdout, "\n"); + */ +} + +void * +realtime_newconn( + tcp_pair *ptp) +{ + rtconn *new_conn = MakeRtconn(); + + if (mod_info->last_scheduled_time.tv_sec == 0) { + mod_info->last_scheduled_time = current_time; + mod_info->last_actual_time = current_time; + } + + new_conn->first_time = current_time; + new_conn->last_time = current_time; + new_conn->is_new = TRUE; + new_conn->is_closed = FALSE; + new_conn->addr_pair = ptp->addr_pair; + new_conn->ptp = ptp; + new_conn->next = NULL; + new_conn->prev = NULL; + + if (mod_info->conn_head != NULL) { + mod_info->conn_tail->next = new_conn; + new_conn->prev = mod_info->conn_tail; + mod_info->conn_tail = new_conn; + } + else { /* the list is empty */ + mod_info->conn_head = new_conn; + mod_info->conn_tail = new_conn; + } + mod_info->total_conns++; + mod_info->open_conns++; + + return new_conn; +} + +void +realtime_deleteconn( + tcp_pair *ptp, /* info I have about this connection */ + void *mod_data) /* module specific info for this conn*/ +{ + rtconn *conn = mod_data; + Bool done = FALSE; + + if (!conn->is_closed) + mod_info->open_conns--; + + if (conn == mod_info->conn_head) { + mod_info->conn_head = mod_info->conn_head->next; + if (mod_info->conn_head) { + mod_info->conn_head->prev = NULL; + } + done = TRUE; + } + if (conn == mod_info->conn_tail) { + mod_info->conn_tail = mod_info->conn_tail->prev; + if (mod_info->conn_tail) { + mod_info->conn_tail->next = NULL; + } + done = TRUE; + } + if (!done) { + conn->prev->next = conn->next; + conn->next->prev = conn->prev; + } + + FreeRtconn(conn); + return; +} + +void +realtime_read( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* past byte in the packet */ + void *mod_data) /* module specific info for this connection */ +{ + rtconn *conn = mod_data; + double dtime = 0; + + ++tcp_packets; + + /* first, discard any connections that we aren't interested in. */ + /* That means that pmodstruct is NULL */ + if (conn == NULL) { + return; + } + + if (conn->is_new) { + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + //Sriharsha Gangam + //fprintf(stdout, "%.6f %s\t%s new connection\n", dtime, ptp->a_endpoint, ptp->b_endpoint); + conn->is_new = FALSE; + } + + conn->last_time = current_time; + + if (!conn->is_closed) { + if ((FinCount(ptp) >= 1) || (ConnReset(ptp))) { + if (dtime == 0) { + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + } + //Sriharsha Gangam + //fprintf(stdout, "%.6f %s\t%s connection closes (had %" FS_ULL " packets)\n", dtime, ptp->a_endpoint, ptp->b_endpoint, ptp->packets); + conn->is_closed = TRUE; + mod_info->open_conns--; + } + } + + if ((elapsed(mod_info->last_scheduled_time, current_time) / 1000000.0) >= + realtime_update_interval) { + if (dtime == 0) { + dtime = current_time.tv_sec + (current_time.tv_usec / 1000000.0); + } + //Sriharsha Gangam + //fprintf(stdout, "%.6f number of open connections is %lu\n", dtime, mod_info->open_conns); + mod_info->last_scheduled_time.tv_sec += realtime_update_interval; + mod_info->last_actual_time = current_time; + } +} + +void +realtime_udp_read( + struct ip *pip, + udp_pair *pup, + void *plast, + void *pmodstruct) +{ + ++udp_packets; +} + +void +realtime_nontcpudp_read( + struct ip *pip, + void *plast) +{ + struct protocol *last = NULL; + struct protocol *current; + + ++nontcpudp_packets; + + if (plist == NULL) { + plist = (struct protocol *)MallocZ(sizeof(struct protocol)); + current = plist; + current->count = 1; + current->next = NULL; + current->ip_p = pip->ip_p; + last = current; + } + else { + for (current = plist; current; current = current->next) { + if (current->ip_p == pip->ip_p) { + current->count++; + break; + } + else { + last = current; + } + } + if (current == NULL) { /* protocol is not on our list yet */ + current = (struct protocol *)MallocZ(sizeof(struct protocol)); + current->ip_p = pip->ip_p; + current->count = 1; + current->next = NULL; + last->next = current; + last = current; + } + } +} + +#endif /* LOAD_MODULE_REALTIME */ + + diff --git a/mod_realtime.h b/mod_realtime.h new file mode 100644 index 0000000..59a7401 --- /dev/null +++ b/mod_realtime.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Marina Bykova + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_realtime[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_realtime.h,v 5.4 2003/11/19 14:38:07 sdo Exp $"; + +/* header file for mod_realtime.c */ +int realtime_init(int argc, char *argv[]); +void realtime_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmod_data); +void realtime_done(void); +void realtime_usage(void); +void realtime_udp_read(struct ip *pip, udp_pair *pup, void *plast, void *pmodstruct); +void realtime_nontcpudp_read(struct ip *pip, void *plast); +void *realtime_newconn( tcp_pair *ptp); +void realtime_deleteconn(tcp_pair *ptp, void *mod_data); + diff --git a/mod_rttgraph.c b/mod_rttgraph.c new file mode 100644 index 0000000..6e456c0 --- /dev/null +++ b/mod_rttgraph.c @@ -0,0 +1,485 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/mod_rttgraph.c,v 5.8 2003/11/19 14:38:03 sdo Exp $"; + +#ifdef LOAD_MODULE_RTTGRAPH + +#include +#include "mod_rttgraph.h" + + +/* a histogram structure */ +struct hist { + u_long num_buckets; + u_long num_samples; + u_long *buckets; + u_long z; +}; + + +#define NUM_SLICES 10 +struct hist3d { + struct hist rtt; + struct hist rtt_diff_slices[NUM_SLICES+1]; +}; + + +struct samples { + u_long num_samples; + u_long max_samples; + u_short max; + u_short min; + u_short *samples; +}; + +/* what we keep for each tcb */ +struct rtt_tcb { + tcb *ptcb; + struct samples samples; +}; + + +/* info kept for each connection */ +static struct rttgraph_info { + tcp_pair *ptp; + struct rtt_tcb a2b; + struct rtt_tcb b2a; + struct rttgraph_info *next; +} *rttgraphhead = NULL, *rttgraphtail = NULL; + + + + +/* local routines */ +static struct rttgraph_info *MakeRttgraphRec(); +static void MakeBuckets(struct hist *phist, u_int num_buckets); +static void AddSample(struct samples *psamp, u_short sample); +static void PlotHist(MFILE *f,struct hist *phist); +static void PlotOne(struct rttgraph_info *prttg); + + + +/* Mostly as a module example, here's a plug in that records RTTGRAPH info */ +int +rttgraph_init( + int argc, + char *argv[]) +{ + int i; + int enable=0; + + /* look for "-xrttgraph[N]" */ + for (i=1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + if (strncmp(argv[i],"-x",2) == 0) { + if (strncasecmp(argv[i]+2,"rttgraph",4) == 0) { + /* I want to be called */ + enable = 1; + printf("mod_rttgraph: Capturing RTTGRAPH traffic\n"); + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + return(1); /* TRUE means call rttgraph_read and rttgraph_done later */ +} + + +static void +MakeBuckets( + struct hist *phist, + u_int num_buckets) +{ + u_long *new_ptr; + + ++num_buckets; /* 0-based arrays */ + + if (num_buckets <= phist->num_buckets) + return; /* nothing to do */ + + /* round num_buckets up to multiple of 100 */ + if ((num_buckets % 100) != 0) { + num_buckets = 100 * ((num_buckets+99)/100); + } + + /* either create the space or expand it */ + if (phist->buckets) { + new_ptr = ReallocZ(phist->buckets, + phist->num_buckets * sizeof(u_long), + num_buckets * sizeof(u_long)); + } else { + new_ptr = MallocZ(num_buckets * sizeof(u_long)); + } + + /* remember what we did */ + phist->num_buckets = num_buckets; + phist->buckets = new_ptr; +} + + + +static void +AddSample( + struct samples *psamp, + u_short sample) +{ + +/* printf("AddSample(%d) called\n", sample); */ + + /* make sure we have enough space */ + if ((psamp->num_samples+2) > (psamp->max_samples)) { + u_long new_samples = psamp->max_samples + 100; + u_short *new_ptr; + if (psamp->samples) { + new_ptr = ReallocZ(psamp->samples, + psamp->max_samples * sizeof(u_short), + new_samples * sizeof(u_short)); + } else { + new_ptr = MallocZ(new_samples * sizeof(u_short)); + } + psamp->max_samples = new_samples; + psamp->samples = new_ptr; + } + + /* remember what we did */ + psamp->samples[psamp->num_samples++] = sample; + if (sample > psamp->max) + psamp->max = sample; + if (sample < psamp->max) + psamp->min = sample; +} + + +static struct rttgraph_info * +MakeRttgraphRec() +{ + struct rttgraph_info *prttg; + + prttg = MallocZ(sizeof(struct rttgraph_info)); + + /* (...leave the samples pointer NULL until first needed) */ + prttg->a2b.samples.max_samples = 0; + prttg->a2b.samples.max = 0; prttg->a2b.samples.min = USHRT_MAX; + prttg->b2a.samples.max_samples = 0; + prttg->b2a.samples.max = 0; prttg->b2a.samples.min = USHRT_MAX; + + /* chain it in (at the tail of the list) */ + if (rttgraphhead == NULL) { + rttgraphhead = prttg; + rttgraphtail = prttg; + } else { + rttgraphtail->next = prttg; + rttgraphtail = prttg; + } + + return(prttg); +} + + +void +rttgraph_read( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* past byte in the packet */ + void *mod_data) /* module specific info for this connection */ +{ + struct tcphdr *ptcp; + struct rttgraph_info *prttg = mod_data; + struct rtt_tcb *prtcb; + tcb *ptcb; + double rtt_us; + u_long rtt_ms; + + /* find the start of the TCP header */ + ptcp = (struct tcphdr *) ((char *)pip + 4*IP_HL(pip)); + + /* make sure there we could have a RTT sample */ + if (!ACK_SET(ptcp)) + return; /* no RTT info */ + + /* see which direction it is, if we don't know yet */ + ptcb = ptp2ptcb(ptp,pip,ptcp); + if (ptcb == prttg->a2b.ptcb) + prtcb = &prttg->a2b; + else if (ptcb == prttg->b2a.ptcb) + prtcb = &prttg->b2a; + else { + fprintf(stderr, + "rttgraph_read: INTERNAL error (can't kind tcb)!!\n"); + exit(1); + } + + /* grab the RTT */ + rtt_us = prtcb->ptcb->rtt_last; + if (rtt_us == 0.0) + return; /* not a valid sample */ + + /* convert to ms buckets */ + rtt_ms = (u_long) (rtt_us / 1000.0); + + if (debug && (rtt_ms == 0)) + printf("rtt_ms is 0, rtt_us was %f\n", rtt_us); + + /* add in the sample RTT */ + AddSample(&prtcb->samples, rtt_ms); +} + + +static void +DoHist( + struct samples *psamp) +{ + int i; + struct hist3d hist3d; + MFILE *f; + u_long sum; + int slice; + int base_z; + int slice_size; + + if (psamp->num_samples == 0) + return; + + printf("Samples: %lu\n", psamp->num_samples); + printf("Min: %u\n", psamp->min); + printf("Max: %u\n", psamp->max); + + /* init */ + hist3d.rtt.num_buckets = 0; + memset(&hist3d.rtt,'\00',sizeof(struct hist)); + MakeBuckets(&hist3d.rtt, psamp->num_samples); + for (i=0; i < NUM_SLICES; ++i) { + memset(&hist3d.rtt_diff_slices[i],'\00',sizeof(struct hist)); + MakeBuckets(&hist3d.rtt_diff_slices[i], psamp->num_samples); + } + + /* calculate the global histogram */ + for (i=0; i < psamp->num_samples; ++i) { + u_short rtt = psamp->samples[i]; + + ++hist3d.rtt.buckets[rtt]; + ++hist3d.rtt.num_samples; + } + + + /* find the slices, same amount of data in each slice */ + sum = 0; + slice = 0; + base_z = 0; + slice_size = psamp->num_samples / NUM_SLICES; + for (i=0; i < psamp->num_samples; ++i) { + u_short count = hist3d.rtt.buckets[i]; + + sum += count; + + if (sum > slice_size) { + hist3d.rtt_diff_slices[slice].z = base_z; + ++slice; + sum = 0; + base_z = i+1; + } + } + for (; slice < NUM_SLICES; ++slice) + hist3d.rtt_diff_slices[slice].z = ULONG_MAX; + + + /* add the slice data */ + for (i=1; i < psamp->num_samples; ++i) { + u_short rtt = psamp->samples[i]; + u_short prev_rtt = psamp->samples[i-1]; + + /* see which slice holds the prev_rtt */ + for (slice = NUM_SLICES-1; slice >= 0; --slice) { + if (prev_rtt > hist3d.rtt_diff_slices[slice].z) + break; + } + + ++hist3d.rtt_diff_slices[slice].buckets[rtt]; + ++hist3d.rtt_diff_slices[slice].num_samples; + } + + + if ((f = Mfopen("rtt.dat","w")) == NULL) { + perror("rtt.dat"); + exit (1); + } + printf("Total Histogram\n"); + hist3d.rtt.z = -1; + PlotHist(f,&hist3d.rtt); + Mfclose(f); + + if ((f = Mfopen("rtt3d.dat","w")) == NULL) { + perror("rtt.dat"); + exit (1); + } + for (i=0; i < NUM_SLICES; ++i) { + struct hist *phist = &hist3d.rtt_diff_slices[i]; + printf("Slice %d Histogram - base: %lu ms\n", i, phist->z); + + PlotHist(f,phist); + } + + /* plot the "connections" */ +#ifdef BROKEN + for (i=0; i < psamp->max; i+=10) { + for (slice=0; slice < NUM_SLICES; ++slice) { + struct hist *phist = &hist3d.rtt_diff_slices[slice]; + u_long count = phist->buckets[i]; + float percent = (float)count / phist->num_samples; + + if (phist->num_samples == 0) + continue; + + fprintf(f,"%4d %lu %.2f\n", i, phist->z, 100 * percent); + } + fprintf(f,"\n"); + } +#endif /* BROKEN */ + + Mfclose(f); +} + + + +static void +PlotHist( + MFILE *f, + struct hist *phist) +{ + int ms; + int z = phist->z; + + if (phist->buckets == NULL) + return; + + printf(" %lu samples\n", phist->num_samples); + for (ms=0; ms < phist->num_buckets; ++ms) { + u_long count = phist->buckets[ms]; + float percent; + + if (count == 0 || phist->num_samples == 0) + continue; + + percent = (float)count / phist->num_samples; + + printf(" %4d %5lu %5.2f\n", ms, count, 100 * percent); + if (z == -1) + Mfprintf(f,"%4d %.2f\n", ms, 100 * percent); + else + Mfprintf(f,"%4d %d %.2f\n", ms, z, 100 * percent); + } + Mfprintf(f,"\n"); +} + + +static void +PlotOne( + struct rttgraph_info *prttg) +{ + tcp_pair *ptp = prttg->ptp; + + printf("%s ==> %s (%s2%s)\n", + ptp->a_endpoint, ptp->b_endpoint, + ptp->a2b.host_letter, ptp->b2a.host_letter); + DoHist(&prttg->a2b.samples); + + printf("%s ==> %s (%s2%s)\n", + ptp->b_endpoint, ptp->a_endpoint, + ptp->b2a.host_letter, ptp->a2b.host_letter); + DoHist(&prttg->b2a.samples); +} + + + +void +rttgraph_done(void) +{ + struct rttgraph_info *prttg; + + for (prttg=rttgraphhead; prttg; prttg=prttg->next) { + PlotOne(prttg); + } +} + + +void +rttgraph_usage(void) +{ + printf("\t-xrttgraph\tprint info about rttgraph traffic\n"); +} + + +void * +rttgraph_newconn( + tcp_pair *ptp) +{ + struct rttgraph_info *prttg; + + prttg = MakeRttgraphRec(); + + prttg->ptp = ptp; + prttg->a2b.ptcb = &ptp->a2b; + prttg->b2a.ptcb = &ptp->b2a; + + return(prttg); +} + +#endif /* LOAD_MODULE_RTTGRAPH */ diff --git a/mod_rttgraph.h b/mod_rttgraph.h new file mode 100644 index 0000000..d2717d6 --- /dev/null +++ b/mod_rttgraph.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_rttgraph[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_rttgraph.h,v 5.4 2003/11/19 14:38:07 sdo Exp $"; + +/* header file for rttgraph.c */ +int rttgraph_init(int argc, char *argv[]); +void rttgraph_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmod_data); +void rttgraph_done(void); +void rttgraph_usage(void); +void *rttgraph_newconn(tcp_pair *ptp); diff --git a/mod_slice.c b/mod_slice.c new file mode 100644 index 0000000..629dcd9 --- /dev/null +++ b/mod_slice.c @@ -0,0 +1,376 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/mod_slice.c,v 1.5 2003/11/19 14:38:03 sdo Exp $"; + +#ifdef LOAD_MODULE_SLICE + +#include "mod_slice.h" + +/* name of the file that slice data is dumped into */ +#define SLICE_FILENAME "slice.dat" + +/* time and date formats */ +enum t_time_format {tf_long=1, tf_brief=2, tf_unix=3, tf_unix_long=4}; + +/* argument flags */ +static float slice_interval = 15.0; /* 15 seconds by default */ +static timeval tv_slice_interval; +static enum t_time_format time_format = tf_brief; + +/* local debugging flag */ +static int ldebug = 0; + + + + +/* info that I keep about each connection */ +struct conn_info { + u_long last_rexmits; /* for detecting rexmits */ + u_long last_active_slice; /* for checking activity */ +}; + + +/* counters that we keep for each interval */ +static struct slice_counters { + /* active conns */ + u_long n_active; + + /* connection opens/closes */ + u_long n_opens; + + /* bytes/segments (including rexmits) */ + u_long n_bytes; + u_long n_segs; + + /* bytes/segments that are rexmitted */ + u_long n_rexmit_bytes; + u_long n_rexmit_segs; +} info; + + +/* local routines */ +static void AgeSlice(timeval *); +static void ParseArgs(char *argstring); + + +/* globals */ +static u_long slice_number = 1; /* while slice interval are we in? */ + + + + + + +/* Set things up */ +int +slice_init( + int argc, + char *argv[]) +{ + int i; + int enable=0; + char *args = NULL; + + for (i=1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + if (strncmp(argv[i],"-x",2) == 0) { + if (strncasecmp(argv[i]+2,"slice",sizeof("slice")-1) == 0) { + /* I want to be called */ + args = argv[i]+(sizeof("-xslice")-1); + enable = 1; + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + /* parse the encoded args */ + ParseArgs(args); + + /* turn the slice interval into a timeval */ + tv_slice_interval.tv_sec = (int)slice_interval; + tv_slice_interval.tv_usec = + 1000000 * (slice_interval - tv_slice_interval.tv_sec); + + /* tell them what's happening */ + printf("mod_slice: generating data in %.3fsec slices to file %s\n", + slice_interval, SLICE_FILENAME); + if (ldebug) + printf("Slice interval tv: %u.%06u\n", + (unsigned)tv_slice_interval.tv_sec, + (unsigned)tv_slice_interval.tv_usec); + + /* init the graphs and etc... */ + AgeSlice(NULL); + + return(1); /* TRUE means call slice_read and slice_done later */ +} + + + + +void +slice_read( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* past byte in the packet */ + void *mod_data) /* connection info for this one */ +{ + u_long bytes = ntohs(pip->ip_len); + static timeval next_time = {0,0}; + struct conn_info *pci = mod_data; + int was_rexmit = 0; + + /* if this is the first packet, determine the END of the slice */ + if (ZERO_TIME(&next_time)) { + next_time = current_time; + tv_add(&next_time, tv_slice_interval); + } + + /* if we've gone over our interval, print out data so far */ + while (tv_ge(current_time,next_time)) { + /* output a line */ + AgeSlice(&next_time); + + /* when does the next interval start? */ + tv_add(&next_time, tv_slice_interval); + } + + /* see if it was a retransmission */ + if (pci->last_rexmits != ptp->a2b.rexmit_pkts+ptp->b2a.rexmit_pkts) { + pci->last_rexmits = ptp->a2b.rexmit_pkts+ptp->b2a.rexmit_pkts; + was_rexmit = 1; + } + + /* add to total data counters */ + ++info.n_segs; + info.n_bytes += bytes; + if (was_rexmit) { + info.n_rexmit_segs += 1; + info.n_rexmit_bytes += bytes; + } + + /* if it hasn't already been active in this slice interval, count it*/ + /* (avoids having to zero lots of counters!) */ + if (pci->last_active_slice != slice_number) { + pci->last_active_slice = slice_number; + ++info.n_active; + } + + +} + + + +static void +AgeSlice( + timeval *pnow) +{ + char *pch_now; + static MFILE *pmf = NULL; + + + + /* first time doesn't count */ + if (pnow == NULL) { + /* open the output file */ + pmf = Mfopen(SLICE_FILENAME,"w"); + + /* print the headers */ + Mfprintf(pmf,"\ +%s segs bytes rexsegs rexbytes new active\n\ +%s -------- -------- -------- -------- -------- --------\n", + (time_format == tf_long)? "date ": + (time_format == tf_brief)? "date ": + (time_format == tf_unix)? "date ": + (time_format == tf_unix_long)? "date ":"UNKNOWN", + + (time_format == tf_long)? "-------------------------------": + (time_format == tf_brief)? "---------------": + (time_format == tf_unix)? "---------": + (time_format == tf_unix_long)? "----------------":"UNKNOWN" + ); + return; + } + + /* format the current time */ + pch_now = ts2ascii(pnow); + if (time_format == tf_brief) { + /* remove the year */ + pch_now[26] = '\00'; + /* remove the month and stuff */ + pch_now += 11; /* strlen("Fri Jan 12 ") */ + } + + /* print the stats collected */ + switch(time_format) { + case tf_long: + case tf_brief: + Mfprintf(pmf, "%s", pch_now); break; + case tf_unix: + Mfprintf(pmf, "%8lu", pnow->tv_sec); break; + case tf_unix_long: + Mfprintf(pmf, "%8lu.%06u", pnow->tv_sec, pnow->tv_usec); break; + } + Mfprintf(pmf, " %8lu %8lu %8lu %8lu %8lu %8lu\n", + info.n_segs, + info.n_bytes, + info.n_rexmit_segs, + info.n_rexmit_bytes, + info.n_opens, + info.n_active); + + + /* zero out the counters */ + memset(&info, 0, sizeof(info)); + + + /* new slice interval */ + ++slice_number; +} + + +void +slice_done(void) +{ + /* print the last few packets */ + AgeSlice(¤t_time); +} + + + + +void * +slice_newconn( + tcp_pair *ptp) +{ + struct conn_info *pci; + + ++info.n_opens; + + pci = MallocZ(sizeof(struct conn_info)); + + return(pci); +} + + +void +slice_usage(void) +{ + printf("\ +\t-xslice\"[ARGS]\"\tprint data info in slices\n\ +\t module argument format:\n\ +\t -iS set slice interval to S (float) seconds, default 15.0\n\ +\t -d enable local debugging in this module\n\ +\t -tb specify time and date 'briefly'\n\ +\t -tl specify time and date in long, 'Unix Format'\n\ +\t -tu specify time and date as a Unix timestamp (secs)\n\ +\t -tU specify time and date as a Unix timestamp (secs.usecs)\n\ +"); +} + + +static void +ParseArgs(char *argstring) +{ + int argc; + char **argv; + int i; + + /* make sure there ARE arguments */ + if (!(argstring && *argstring)) + return; + + /* break the string into normal arguments */ + StringToArgv(argstring,&argc,&argv); + + /* check the module args */ + for (i=1; i < argc; ++i) { + float interval; + if (ldebug > 1) + printf("Checking argv[%d]: '%s'\n", i, argv[i]); + if (strcmp(argv[i],"-d") == 0) { + ++ldebug; + } else if (strncmp(argv[i],"-t",2) == 0) { + switch (argv[i][2]) { + case 'u': time_format = tf_unix; break; + case 'U': time_format = tf_unix_long; break; + case 'l': time_format = tf_long; break; + case 'b': time_format = tf_brief; break; + default: + fprintf(stderr,"Bad -t option ('%s') for slice module\n", argv[i]); + slice_usage(); + exit(-1); + } + } else if (sscanf(argv[i],"-i%f", &interval) == 1) { + slice_interval = interval; + if (ldebug) + printf("mod_slice: setting slice interval to %.3f seconds\n", + slice_interval); + } else { + fprintf(stderr,"Slice module: bad argument '%s'\n", + argv[i]); + exit(-1); + } + } +} + + +#endif /* LOAD_MODULE_SLICE */ diff --git a/mod_slice.h b/mod_slice.h new file mode 100644 index 0000000..97ded29 --- /dev/null +++ b/mod_slice.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. All rights reserved. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_slice[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_slice.h,v 1.3 2003/11/19 14:38:07 sdo Exp $"; + + +/* header file for slice.c */ +int slice_init(int argc, char *argv[]); +void slice_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmod_data); +void slice_done(void); +void slice_usage(void); +void *slice_newconn(tcp_pair *ptp); diff --git a/mod_tcplib.c b/mod_tcplib.c new file mode 100644 index 0000000..ca483bb --- /dev/null +++ b/mod_tcplib.c @@ -0,0 +1,3905 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Original Author: Eric Helvey + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ehelvey@cs.ohiou.edu + * http://www.tcptrace.org/ + * Extensively Modified: Shawn Ostermann + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/mod_tcplib.c,v 5.32 2003/11/19 14:38:03 sdo Exp $"; + +#ifdef LOAD_MODULE_TCPLIB + +/**************************************************************************** + * + * Module Title: Mod_TCPLib + * + * Author: Eric Helvey + * + * Purpose: To generate data files needed by TCPLib and TrafGen. + * + ****************************************************************************/ +#include "mod_tcplib.h" +#include "dyncounter.h" + + +/* reading old files is problematic and I never use it anyway!!! + it probably doesn't work anymore. + sdo - Thu Aug 5, 1999 */ +#undef READ_OLD_FILES + +/* we're no longer interested in the old phone/conv columns */ +#undef INCLUDE_PHONE_CONV + +/* Local global variables */ + +/* different types of "directions" */ +#define NUM_DIRECTION_TYPES 4 +enum t_dtype {LOCAL = 0, INCOMING = 1, OUTGOING = 2, REMOTE = 3}; +static char *dtype_names[NUM_DIRECTION_TYPES] = {"local","incoming","outgoing", "remote"}; + +/* structure to keep track of "inside" */ +struct insidenode { + ipaddr min; + ipaddr max; + struct insidenode *next; +} *inside_head = NULL; +#define LOCAL_ONLY (inside_head == NULL) + + + +/* for the parallelism hack */ +#define BURST_KEY_MAGIC 0x49524720 /* 'I' 'R' 'G' '' */ +struct burstkey { + unsigned long magic; /* MUST be BURST_KEY_MAGIC */ + unsigned long nbytes; /* bytes in burst (INCLUDING this struct) */ + unsigned char key; /* one character key to return */ + unsigned char unused[3]; /* (explicit padding) */ + unsigned long groupnum; /* for keeping track of parallel HTTP */ +}; + + + +#ifdef BROKEN +char *BREAKDOWN_APPS_NAMES[] = { + "app 1", + "app 2", + "app 3", + "app 4", + "app 5", + "app 6", + "app 7", + "app 8" +}; +#endif /* BROKEN */ + + +/* for VM efficiency, we pull the info that we want out of the tcptrace + structures into THIS structure (or large files thrash) */ +typedef struct module_conninfo_tcb { + /* cached connection type (incoming, remote, etc) */ + enum t_dtype dtype; + + /* cached data bytes */ + u_llong data_bytes; + + /* + * FTP: number of data connections against this control conn + * HTTP: + * NNTP: number of bursts + * HTTP: number of bursts + */ + u_long numitems; + + /* burst info */ + u_long burst_bytes; /* size of the current burst */ + struct burstdata *pburst; + + /* was the last segment PUSHed? */ + Bool last_seg_pushed; /* Thu Aug 26, 1999 - not used */ + + /* last time new data was sent */ + timeval last_data_time; + + /* link back to REAL information */ + tcb *ptcb; + + /* previous connection of same type */ + struct module_conninfo *prev_dtype_all;/* for ALL app types */ + struct module_conninfo *prev_dtype_byapp; /* just for THIS app type */ +} module_conninfo_tcb; + + +/* structure that this module keeps for each connection */ +#define TCB_CACHE_A2B 0 +#define TCB_CACHE_B2A 1 +#define LOOP_OVER_BOTH_TCBS(var) var=TCB_CACHE_A2B; var<=TCB_CACHE_B2A; ++var +typedef struct module_conninfo { + /* cached info */ + struct module_conninfo_tcb tcb_cache[2]; + + /* this connection should be ignored for breakdown/convarrival */ + Bool ignore_conn; + + /* breakdown type */ + short btype; + + /* cached copy of address pair */ + tcp_pair_addrblock addr_pair; + + /* link back to the tcb's */ + tcp_pair *ptp; + + /* time of connection start */ + timeval first_time; + timeval last_time; + + /* previous connection in linked list of all connections */ + struct module_conninfo *prev; + + /* for parallel http sessions */ + struct parallelism *pparallelism; + + /* unidirectional conns ignored totally */ + Bool unidirectional_http; + + /* for determining bursts */ + tcb *tcb_lastdata; + + /* to determine parallelism in conns, trafgen encodes a group + number in the data */ + u_long http_groupnum; + + /* next connection in linked list by endpoint pairs */ + struct module_conninfo *next_pair; +} module_conninfo; +module_conninfo *module_conninfo_tail = NULL; + + +/* data structure to store endpoint pairs */ +typedef struct endpoint_pair { + /* endpoint identification */ + tcp_pair_addrblock addr_pair; + + /* linked list of connections using that pair */ + module_conninfo *pmchead; + + /* next address pair */ + struct endpoint_pair *pepnext; +} endpoint_pair; +#define ENDPOINT_PAIR_HASHSIZE 1023 + + +/* for tracking burst data */ +struct burstdata { + dyn_counter nitems; /* total items (bursts) in connection */ + dyn_counter size; /* size of the items */ + dyn_counter idletime; /* idle time between bursts */ +}; + +/* for tracking number of connections */ +struct parallelism { + Bool counted[NUM_DIRECTION_TYPES]; + /* have we already accumulated this? */ + /* (in each of the 4 directions) */ + Bool persistant[2]; /* is this persistant (for each TCB) */ + u_short maxparallel; /* maximum degree of parallelism */ + u_long ttlitems[2]; /* across entire group (each dir) */ +}; + + + +static struct tcplibstats { + /* telnet packet sizes */ + dyn_counter telnet_pktsize; + + /* telnet interarrival times */ + dyn_counter telnet_interarrival; + + /* conversation interarrival times */ + dyn_counter conv_interarrival_all; + + /* protocol-specific interarrival times */ + dyn_counter conv_interarrival_byapp[NUM_APPS]; + + /* conversation duration */ + dyn_counter conv_duration; + + /* for the interval breakdowns */ + int interval_count; + timeval last_interval; + int tcplib_breakdown_interval[NUM_APPS]; + + /* histogram files */ + MFILE *hist_file; + + /* for NNTP, we track: */ + /* # items per connection */ + /* idletime between items */ + /* burst size */ + struct burstdata nntp_bursts; + + + /* for HTTP1.0, we track: */ + /* # items per connection */ + /* # connections */ + /* idletime between items */ + /* burst size */ + struct burstdata http_P_bursts; + dyn_counter http_P_maxconns; /* max degree of concurrency */ + dyn_counter http_P_ttlitems; /* ttl items across whole parallel group */ + dyn_counter http_P_persistant; /* which parallel groups are persistant */ + + /* for HTTP1.1, we track: */ + /* # items per connection */ + /* idletime between items */ + /* burst size */ + struct burstdata http_S_bursts; + + /* telnet packet sizes */ + dyn_counter throughput; + int throughput_bytes; +} *global_pstats[NUM_DIRECTION_TYPES] = {NULL}; + + +/* local debugging flag */ +static int ldebug = 0; + +/* parallelism for our TRAFGEN files */ +static Bool trafgen_generated = FALSE; + +/* offset for all ports */ +static int ipport_offset = 0; + +/* the name of the directory (prefix) for the output */ +static char *output_dir = DEFAULT_TCPLIB_DATADIR; + +/* the name of the current tcptrace input file */ +static char *current_file = NULL; + +/* characters to print in interval breakdown file */ +static const char breakdown_hash_char[] = { 'S', 'N', 'T', 'F', 'H', 'f'}; + + +/* FTP endpoints hash table */ +endpoint_pair *ftp_endpoints[ENDPOINT_PAIR_HASHSIZE]; + +/* HTTP endpoints hash table */ +endpoint_pair *http_endpoints[ENDPOINT_PAIR_HASHSIZE]; + + +/* internal types */ +typedef Bool (*f_testinside) (module_conninfo *pmc, + module_conninfo_tcb *ptcbc); + +/* various statistics and counters */ +static u_long debug_newconn_counter; /* total conns */ +static u_long debug_newconn_badport; /* a port we don't want */ +static u_long debug_newconn_goodport; /* we want the port */ +static u_long debug_newconn_ftp_data_heuristic; /* merely ASSUMED to be ftp data */ +static u_llong debug_total_bytes; /* total "bytes" accepted */ + +/* parallel http counters */ +static u_long debug_http_total; /* all HTTP conns */ +static u_long debug_http_parallel; /* parallel HTTP, not counted in breakdown/conv */ +static u_long debug_http_single; +static u_long debug_http_groups; +static u_long debug_http_slaves; +static u_long debug_http_uni_conns; /* data in at most one direction, ignored */ +static u_llong debug_http_uni_bytes; /* data in at most one direction, ignored */ +static u_long debug_http_persistant; +static u_long debug_http_nonpersistant; +/* conns by type */ +static u_long conntype_counter[NUM_DIRECTION_TYPES]; +/* both flows have data */ +static u_long conntype_duplex_counter[NUM_DIRECTION_TYPES]; +/* this flow has data, twin is empty */ +static u_long conntype_uni_counter[NUM_DIRECTION_TYPES]; +/* this flow has NO data, twin is NOT empty */ +static u_long conntype_nodata_counter[NUM_DIRECTION_TYPES]; +/* neither this flow OR its twin has data */ +static u_long conntype_noplex_counter[NUM_DIRECTION_TYPES]; + + + +/* Function Prototypes */ +static void ParseArgs(char *argstring); +static int breakdown_type(tcp_pair *ptp); +static void do_final_breakdown(char* filename, f_testinside p_tester, + struct tcplibstats *pstats); +static void do_all_final_breakdowns(void); +static void do_all_conv_arrivals(void); +static void do_tcplib_final_converse(char *filename, + char *protocol, dyn_counter psizes); +static void do_tcplib_next_converse(module_conninfo_tcb *ptcbc, + module_conninfo *pmc); +static void do_tcplib_conv_duration(char *filename, + dyn_counter psizes); +static void do_tcplib_next_duration(module_conninfo_tcb *ptcbc, + module_conninfo *pmc); +static void tcplib_cleanup_bursts(void); +static void tcplib_save_bursts(void); +static Bool is_parallel_http(module_conninfo *pmc_new); +static void tcplib_filter_http_uni(void); + +/* prototypes for connection-type determination */ +static Bool is_ftp_ctrl_port(portnum port); +static Bool is_ftp_data_port(portnum port); +static Bool is_http_port(portnum port); +static Bool is_nntp_port(portnum port); +static Bool is_smtp_port(portnum port); +static Bool is_telnet_port(portnum port); + +/* shorthand */ +#define is_ftp_ctrl_conn(pmc) (pmc->btype == TCPLIBPORT_FTPCTRL) +#define is_ftp_data_conn(pmc) (pmc->btype == TCPLIBPORT_FTPDATA) +#define is_http_conn(pmc) (pmc->btype == TCPLIBPORT_HTTP) +#define is_nntp_conn(pmc) (pmc->btype == TCPLIBPORT_NNTP) +#define is_smtp_conn(pmc) (pmc->btype == TCPLIBPORT_SMTP) +#define is_telnet_conn(pmc) (pmc->btype == TCPLIBPORT_TELNET) + + +static char* namedfile(char *localsuffix, char * file); +static void setup_breakdown(void); +static void tcplib_add_telnet_interarrival(tcp_pair *ptp, + module_conninfo *pmc, + dyn_counter *psizes); +static void tcplib_add_telnet_packetsize(struct tcplibstats *pstats, + int length); +static void tcplib_do_ftp_control_size(char *filename, f_testinside p_tester); +static void tcplib_do_ftp_itemsize(char *filename, f_testinside p_tester); +static void tcplib_do_ftp_numitems(char *filename, f_testinside p_tester); +static void tcplib_do_smtp_itemsize(char *filename, f_testinside p_tester); +static void tcplib_do_telnet_duration(char *filename, f_testinside p_tester); +static void tcplib_do_telnet_interarrival(char *filename, + f_testinside p_tester); +static void tcplib_do_telnet_packetsize(char *filename, + f_testinside p_tester); +static void tcplib_init_setup(void); +static void update_breakdown(tcp_pair *ptp, struct tcplibstats *pstats); +module_conninfo *FindPrevConnection(module_conninfo *pmc, + enum t_dtype dtype, int app_type); +static char *FormatBrief(tcp_pair *ptp,tcb *ptcb); +static char *FormatAddrBrief(tcp_pair_addrblock *addr_pair); +static void ModuleConnFillcache(void); + + +/* prototypes for determining "insideness" */ +static void DefineInside(char *iplist); +static Bool IsInside(ipaddr *pipaddr); + +static Bool TestOutgoing(module_conninfo*, module_conninfo_tcb *ptcbc); +static Bool TestIncoming(module_conninfo*, module_conninfo_tcb *ptcbc); +static Bool TestLocal(module_conninfo*, module_conninfo_tcb *ptcbc); +static Bool TestRemote(module_conninfo*, module_conninfo_tcb *ptcbc); + +static int InsideBytes(module_conninfo*, f_testinside); +static enum t_dtype traffic_type(module_conninfo *pmc, + module_conninfo_tcb *ptcbc); + +/* prototypes for endpoint pairs */ +static void TrackEndpoints(module_conninfo *pmc); +static hash EndpointHash(tcp_pair_addrblock *addr_pair); +static hash IPHash(ipaddr *paddr); +static Bool SameEndpoints(tcp_pair_addrblock *paddr_pair1, + tcp_pair_addrblock *paddr_pair2); +static struct module_conninfo_tcb *MostRecentFtpControl(endpoint_pair *pep); +static Bool CouldBeFtpData(tcp_pair *ptp); +static void AddEndpointPair(endpoint_pair *hashtable[], + module_conninfo *pmc); +static endpoint_pair *FindEndpointPair(endpoint_pair *hashtable[], + tcp_pair_addrblock *paddr_pair); +static Bool IsNewBurst(module_conninfo *pmc, tcb *ptcb, + module_conninfo_tcb *ptcbc, + struct tcphdr *tcp); + + +/* various helper routines used by many others -- sdo */ +static Bool ActiveConn(module_conninfo *pmc); +static Bool RecentlyActiveConn(module_conninfo *pmc); +static void tcplib_do_GENERIC_itemsize( + char *filename, int btype, + f_testinside p_tester, int bucketsize); +static void tcplib_do_GENERIC_burstsize( + char *filename, dyn_counter counter); +static void tcplib_do_GENERIC_P_maxconns( + char *filename, dyn_counter counter); +static void tcplib_do_GENERIC_nitems( + char *filename, dyn_counter counter); +static void tcplib_do_GENERIC_idletime( + char *filename, dyn_counter counter); +static void StoreCounters(char *filename, char *header1, char *header2, + int bucketsize, dyn_counter psizes); +#ifdef READ_OLD_FILES +static dyn_counter ReadOldFile(char *filename, int bucketsize, + int maxlegal, dyn_counter psizes); +#endif /* READ_OLD_FILES */ + + + +/* First section is comprised of functions that TCPTrace will call + * for all modules. + */ + +/*************************************************************************** + * + * Function Name: tcplib_init + * + * Returns: TRUE/FALSE whether or not the tcplib module for tcptrace + * has been requested on the command line. + * + * Purpose: To parse the command line arguments for the tcplib module's + * command line flags, return whether or not to run the module, + * and to set up the local global variables needed to generate + * the tcplib data files. + * + * Called by: LoadModules() in tcptrace.c + * + * + ****************************************************************************/ +int tcplib_init( + int argc, /* Number of command line arguments */ + char *argv[] /* Command line arguments */ + ) +{ + int i; /* Runner for command line arguments */ + int enable = 0; /* Do we turn on this module, or not? */ + char *args = NULL; + + for(i = 0; i < argc; i++) { + if (!argv[i]) + continue; + + /* See if they want to use us */ + if ((argv[i] != NULL) && (strncmp(argv[i], "-xtcplib", 8) == 0)) { + /* Calling the Tcplib part */ + enable = 1; + args = argv[i]+(sizeof("-xtcplib")-1); + + printf("Capturing TCPLib traffic\n"); + + /* We free this argument so that no other modules + * or the main program mis-interprets this flag. + */ + argv[i] = NULL; + + continue; + } + } + + /* If enable is not true, then all tcplib functions will + * be ignored during this run of the program. + */ + if (!enable) + return(0); /* don't call me again */ + + /* parse the encoded args */ + ParseArgs(args); + + /* init internal data */ + tcplib_init_setup(); + + /* don't care for detailed output! */ + printsuppress = TRUE; + + return TRUE; +} + + +/* wants strings of the form IP1-IP2 */ +static struct insidenode * +DefineInsideRange( + char *ip_pair) +{ + char *pdash; + struct insidenode *pnode; + ipaddr *paddr; + char *paddr1; + char *paddr2; + + if (ldebug>2) + printf("DefineInsideRange('%s') called\n", ip_pair); + + pdash = strchr(ip_pair,'-'); + if (pdash == NULL) { + /* just one address, treat it as a range */ + paddr1 = ip_pair; + paddr2 = ip_pair; + } else { + /* a pair */ + *pdash = '\00'; + paddr1 = ip_pair; + paddr2 = pdash+1; + } + + + pnode = MallocZ(sizeof(struct insidenode)); + + paddr = str2ipaddr(paddr1); + if (paddr == NULL) { + fprintf(stderr,"invalid IP address: '%s'\n", paddr1); + exit(-1); + } + pnode->min = *paddr; + + + paddr = str2ipaddr(paddr2); + if (paddr == NULL) { + fprintf(stderr,"invalid IP address: '%s'\n", paddr2); + exit(-1); + } + pnode->max = *paddr; + + return(pnode); +} + + +static struct insidenode * +DefineInsideRecurse( + char *iplist) +{ + char *pcomma; + struct insidenode *left; + + /* find commas and recurse */ + pcomma = strchr(iplist,','); + + if (pcomma) { + *pcomma = '\00'; + left = DefineInsideRecurse(iplist); + left->next = DefineInsideRecurse(pcomma+1); + + return(left); + } else { + /* just one term left */ + return(DefineInsideRange(iplist)); + } +} + + + +static void +DefineInside( + char *iplist) +{ + + if (ldebug>2) + printf("DefineInside(%s) called\n", iplist); + + inside_head = DefineInsideRecurse(iplist); + + if (ldebug) { + struct insidenode *phead; + printf("DefineInside: result:\n "); + for (phead=inside_head; phead; phead=phead->next) { + printf("(%s <= addr", HostAddr(phead->min)); + printf(" <= %s)", HostAddr(phead->max)); + if (phead->next) + printf(" OR "); + } + printf("\n"); + } +} + + +static Bool +IsInside( + ipaddr *paddr) +{ + struct insidenode *phead; + + /* if use didn't specify "inside", then EVERYTHING is "inside" */ + if (LOCAL_ONLY) + return(TRUE); + + for (phead = inside_head; phead; phead=phead->next) { + int cmp1 = IPcmp(&phead->min, paddr); + int cmp2 = IPcmp(&phead->max, paddr); + + if ((cmp1 == -2) || (cmp2 == -2)) { + /* not all the same address type, fail */ + return(FALSE); + } + + if ((cmp1 <= 0) && /* min <= addr */ + (cmp2 >= 0)) /* max >= addr */ + return(TRUE); + } + return(FALSE); +} + +static Bool +TestOutgoing( + module_conninfo *pmc, + module_conninfo_tcb *ptcbc) +{ + if (ptcbc == &pmc->tcb_cache[TCB_CACHE_A2B]) + return( IsInside(&pmc->addr_pair.a_address) && + !IsInside(&pmc->addr_pair.b_address)); + else + return( IsInside(&pmc->addr_pair.b_address) && + !IsInside(&pmc->addr_pair.a_address)); +} + +static Bool +TestIncoming( + module_conninfo *pmc, + module_conninfo_tcb *ptcbc) +{ + if (ptcbc == &pmc->tcb_cache[TCB_CACHE_A2B]) + return(!IsInside(&pmc->addr_pair.a_address) && + IsInside(&pmc->addr_pair.b_address)); + else + return(!IsInside(&pmc->addr_pair.b_address) && + IsInside(&pmc->addr_pair.a_address)); +} + + +static Bool +TestLocal( + module_conninfo *pmc, + module_conninfo_tcb *ptcbc) +{ + return(IsInside(&pmc->addr_pair.a_address) && + IsInside(&pmc->addr_pair.b_address)); +} + + +static Bool +TestRemote( + module_conninfo *pmc, + module_conninfo_tcb *ptcbc) +{ + return(!IsInside(&pmc->addr_pair.a_address) && + !IsInside(&pmc->addr_pair.b_address)); +} + + +static int InsideBytes( + module_conninfo *pmc, + f_testinside p_tester) /* function to test "insideness" */ +{ + int temp = 0; + int dir; + + for (LOOP_OVER_BOTH_TCBS(dir)) { + /* if "p_tester" likes this side of the connection, count the bytes */ + if ((*p_tester)(pmc, &pmc->tcb_cache[dir])) + temp += pmc->tcb_cache[dir].data_bytes; + } + + return(temp); +} + + +static void +ParseArgs(char *argstring) +{ + int argc; + char **argv; + int i; + + /* make sure there ARE arguments */ + if (!(argstring && *argstring)) + return; + + /* break the string into normal arguments */ + StringToArgv(argstring,&argc,&argv); + + /* check the module args */ + for (i=1; i < argc; ++i) { + /* The "-o####" flag sets the offset that we're going + * to consider for tcplib data files. The reason is that + * for verification purposes, when trafgen creates traffic + * it sends it to non-standard ports. So, in order to get + * a data set from generated traffic, we'd have to remove + * the offset. The -o allows us to do that. + */ + if (argv[i] && !strncmp(argv[i], "-o", 2)) { + ipport_offset = atoi(argv[i]+2); + + if (!ipport_offset) { + fprintf(stderr, "\ +Invalid argument to flag \"-o\".\n\ +Must be integer value greater than 0.\n"); + exit(1); + } + + printf("TCPLib port offset - %d\n", ipport_offset); + } + + + /* The "-iIPs" gives the definition of "inside". When it's used, + * we divide the the data into four sets: + * data.incoming: + * for all data flowing from "inside" to "outside" + * data.outgoing: + * for all data flowing from "outside" to "inside" + * data.local: + * for all data flowing from "inside" to "inside" + * data.remote: + * for all data flowing from "outside" to "outside" + * (probably an error) + */ + else + if (argv[i] && !strncmp(argv[i], "-i", 2)) { + if (!isdigit((int)*(argv[i]+2))) { + fprintf(stderr,"-i requires IP address list\n"); + tcplib_usage(); + exit(-1); + } + + DefineInside(argv[i]+2); + } + + + /* parallelism hack */ + else + if (argv[i] && !strncmp(argv[i], "-H", 2)) { + trafgen_generated = TRUE; + } + + /* local debugging flag */ + else + if (argv[i] && !strncmp(argv[i], "-d", 2)) { + ++ldebug; + } + + + + /* We will probably need to add another flag here to + * specify the directory in which to place the data + * files. And here it is. + */ + else if (argv[i] && !strncmp(argv[i], "-D", 2)) { + char *pdir = argv[i]+2; + + if (!pdir) { + fprintf(stderr,"argument -DDIR requires directory name\n"); + exit(-1); + } + + output_dir = strdup(pdir); + + printf("TCPLib output directory - %sdata\n", output_dir); + } + + /* ... else invalid */ + else { + fprintf(stderr,"tcplib module: bad argument '%s'\n", + argv[i]); + exit(-1); + } + } + +} + +static void +tcplib_save_bursts() +{ + int dtype; + module_conninfo *pmc; + int non_parallel = 0; + char *filename; + + tcplib_cleanup_bursts(); + + + /* accumulate parallelism stats */ + for (dtype=0; dtype < NUM_DIRECTION_TYPES; ++dtype) { + non_parallel = 0; + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + struct parallelism *pp = pmc->pparallelism; + int dir; + + /* make sure it's http */ + if (!is_http_conn(pmc)) + continue; + + /* ignore unidirectional */ + if (pmc->unidirectional_http) + continue; + + /* check each TCB */ + for (LOOP_OVER_BOTH_TCBS(dir)) { + module_conninfo_tcb *ptcbc = &pmc->tcb_cache[dir]; + + /* make sure it's + -- the right direction + -- and parallel + -- not already counted */ + if (ptcbc->dtype != dtype) + continue; + + if (pp == NULL) { + ++non_parallel; + continue; + } + + if (pp->counted[dtype]) + continue; + + /* count the max connections */ + AddToCounter(&global_pstats[dtype]->http_P_maxconns, + pp->maxparallel, 1, 1); + + /* count the ttl items in the parallel group */ + AddToCounter(&global_pstats[dtype]->http_P_ttlitems, + pp->ttlitems[dir], + 1, GRAN_NUMITEMS); + + /* binary counter, one sample of either: */ + /* 1: NOT persistant */ + /* 2: persistant */ + AddToCounter(&global_pstats[dtype]->http_P_persistant, + pp->persistant[dir]?2:1, + 1, 1); + + /* debugging */ + if (pp->persistant[dir]) + ++debug_http_persistant; + else + ++debug_http_nonpersistant; + + /* don't count it again! */ + pmc->pparallelism->counted[dtype] = TRUE; + } + } + + /* add the NON-parallel HTTP to the counter */ + AddToCounter(&global_pstats[dtype]->http_P_maxconns, 1, + non_parallel, 1); + } + + + /* write all the counters */ + for (dtype=0; dtype < NUM_DIRECTION_TYPES; ++dtype) { + if (ldebug>1) + printf("tcplib: running burstsizes (%s)\n", dtype_names[dtype]); + + /* ---------------------*/ + /* Burstsize */ + /* ---------------------*/ + /* HTTP 1.0 */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_P_BURSTSIZE_FILE); + tcplib_do_GENERIC_burstsize(filename, + global_pstats[dtype]->http_P_bursts.size); + + /* HTTP 1.1 */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_S_BURSTSIZE_FILE); + tcplib_do_GENERIC_burstsize(filename, + global_pstats[dtype]->http_S_bursts.size); + + /* NNTP */ + filename = namedfile(dtype_names[dtype],TCPLIB_NNTP_BURSTSIZE_FILE); + tcplib_do_GENERIC_burstsize(filename, + global_pstats[dtype]->nntp_bursts.size); + + /* ---------------------*/ + /* Total parallel items */ + /* ---------------------*/ + /* HTTP 1.0 */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_P_TTLITEMS_FILE); + tcplib_do_GENERIC_nitems(filename, + global_pstats[dtype]->http_P_ttlitems); + + /* ---------------------*/ + /* Num Items in Burst */ + /* ---------------------*/ + /* HTTP 1.1 */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_S_NITEMS_FILE); + tcplib_do_GENERIC_nitems(filename, + global_pstats[dtype]->http_S_bursts.nitems); + + /* NNTP */ + filename = namedfile(dtype_names[dtype],TCPLIB_NNTP_NITEMS_FILE); + tcplib_do_GENERIC_nitems(filename, + global_pstats[dtype]->nntp_bursts.nitems); + + /* ---------------------*/ + /* Idletime */ + /* ---------------------*/ + + /* HTTP 1.0 */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_P_IDLETIME_FILE); + tcplib_do_GENERIC_idletime(filename, + global_pstats[dtype]->http_P_bursts.idletime); + + /* HTTP 1.1 */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_S_IDLETIME_FILE); + tcplib_do_GENERIC_idletime(filename, + global_pstats[dtype]->http_S_bursts.idletime); + + /* NNTP */ + filename = namedfile(dtype_names[dtype],TCPLIB_NNTP_IDLETIME_FILE); + tcplib_do_GENERIC_idletime(filename, + global_pstats[dtype]->nntp_bursts.idletime); + + /* store the counters */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_P_MAXCONNS_FILE); + tcplib_do_GENERIC_P_maxconns(filename, + global_pstats[dtype]->http_P_maxconns); + + /* store the persistance */ + filename = namedfile(dtype_names[dtype],TCPLIB_HTTP_P_PERSIST_FILE); + tcplib_do_GENERIC_nitems(filename, + global_pstats[dtype]->http_P_persistant); + + + if (LOCAL_ONLY) + break; + } +} + + + + +/*************************************************************************** + * + * Function Name: tcplib_done + * + * Returns: Nothing + * + * Purpose: This function runs after all the packets have been read in + * and filed. The functions that tcplib_done calls are the ones + * that generate the data files. + * + * Called by: FinishModules() in tcptrace.c + * + * + ****************************************************************************/ +static void +RunAllFour( + void (*f_runme) (char *,f_testinside), + char *thefile) +{ + char *filename; + + filename = namedfile("local",thefile); + (*f_runme)(filename,TestLocal); + + if (LOCAL_ONLY) + return; /* none of the rest will match anyway */ + + filename = namedfile("incoming",thefile); + (*f_runme)(filename,TestIncoming); + + filename = namedfile("outgoing",thefile); + (*f_runme)(filename,TestOutgoing); + + filename = namedfile("remote",thefile); + (*f_runme)(filename,TestRemote); + +} +void tcplib_done() +{ + char *filename; + int i; + + /* fill the info cache */ + if (ldebug) + printf("tcplib: completing data structure\n"); + ModuleConnFillcache(); + + /* do TELNET */ + if (ldebug) + printf("tcplib: running telnet\n"); + RunAllFour(tcplib_do_telnet_packetsize,TCPLIB_TELNET_PACKETSIZE_FILE); + RunAllFour(tcplib_do_telnet_interarrival,TCPLIB_TELNET_INTERARRIVAL_FILE); + RunAllFour(tcplib_do_telnet_duration,TCPLIB_TELNET_DURATION_FILE); + + + + /* do FTP */ + if (ldebug) + printf("tcplib: running ftp\n"); + RunAllFour(tcplib_do_ftp_control_size,TCPLIB_FTP_CTRLSIZE_FILE); + RunAllFour(tcplib_do_ftp_itemsize,TCPLIB_FTP_ITEMSIZE_FILE); + RunAllFour(tcplib_do_ftp_numitems,TCPLIB_FTP_NITEMS_FILE); + + + + /* do SMTP */ + if (ldebug) + printf("tcplib: running smtp\n"); + RunAllFour(tcplib_do_smtp_itemsize,TCPLIB_SMTP_ITEMSIZE_FILE); + + + + /* do NNTP */ + if (ldebug) + printf("tcplib: running nntp\n"); + + + /* do HTTP */ + if (ldebug) + printf("tcplib: running http\n"); + + /* filter out the unidirectional HTTP (server pushes) */ + tcplib_filter_http_uni(); + + + /* for efficiency, do all burst size stuff together */ + if (ldebug) + printf("tcplib: running burstsizes\n"); + tcplib_save_bursts(); + + + /* do the breakdown stuff */ + if (ldebug) + printf("tcplib: running breakdowns\n"); + do_all_final_breakdowns(); + + + /* do the conversation interrival time */ + if (ldebug) + printf("tcplib: running conversation interarrival times\n"); + do_all_conv_arrivals(); + for (i=0; i < NUM_DIRECTION_TYPES; ++i) { + if (ldebug>1) + printf("tcplib: running conversation arrivals (%s)\n", + dtype_names[i]); + filename = namedfile(dtype_names[i],TCPLIB_NEXT_CONVERSE_FILE); + do_tcplib_final_converse(filename, "total", + global_pstats[i]->conv_interarrival_all); + +#ifdef BROKEN + /* do the application-specific tables for Mark */ + for (j=0; j < NUM_APPS; ++j) { + char new_filename[128]; + char *app_name = BREAKDOWN_APPS_NAMES[j]; + snprintf(new_filename,sizeof(new_filename),"%s_%s", filename, app_name); + + do_tcplib_final_converse(new_filename, app_name, + global_pstats[i]->conv_interarrival_byapp[j]); + } +#endif /* BROKEN */ + + /* do conversation durations */ + filename = namedfile(dtype_names[i],TCPLIB_CONV_DURATION_FILE); + do_tcplib_conv_duration(filename, + global_pstats[i]->conv_duration); + + if (LOCAL_ONLY) + break; + } + + /* print stats */ + debug_http_single = debug_http_total - debug_http_parallel; + printf("tcplib: total connections seen: %lu (%lu accepted, %lu bad port)\n", + debug_newconn_counter, debug_newconn_goodport, debug_newconn_badport); + printf("tcplib: total bytes seen: %" FS_ULL "\n", + debug_total_bytes); + printf("tcplib: %lu random connections accepted under FTP data heuristic\n", + debug_newconn_ftp_data_heuristic); + printf("tcplib: %lu HTTP conns (%lu parallel, %lu single)\n", + debug_http_total, + debug_http_parallel, + debug_http_single); + printf("tcplib: %lu HTTP conns (%lu single, %lu leaders, %lu slaves)\n", + debug_http_total, + debug_http_single, + debug_http_groups, + debug_http_slaves); + printf("tcplib: %lu groups (%lu persistant ||, %lu nonpersistant ||)\n", + debug_http_groups, + debug_http_persistant, + debug_http_nonpersistant); + printf("tcplib: %lu (%.2f%%) unidir. HTTP conns (%" FS_ULL " bytes, %.2f%%) ignored\n", + debug_http_uni_conns, + 100.0 * ((float)debug_http_uni_conns / + (float)(debug_newconn_counter + debug_http_uni_conns)), + debug_http_uni_bytes, + 100.0 * ((float)debug_http_uni_bytes / + (float)(debug_total_bytes + debug_http_uni_bytes))); + + for (i=0; i < NUM_DIRECTION_TYPES; ++i) { + printf(" Flows of type %-8s %5lu (%lu duplex, %lu noplex, %lu unidir, %lu nodata)\n", + dtype_names[i], + conntype_counter[i], + conntype_duplex_counter[i], + conntype_noplex_counter[i], + conntype_uni_counter[i], + conntype_nodata_counter[i]); + } + + /* dump HTTP groups for debugging */ + { + module_conninfo *pmc; + printf("Group Numbers for HTTP conns\n"); + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + tcb *ptcb = pmc->tcb_cache[TCB_CACHE_A2B].ptcb; + + if (pmc->btype != TCPLIBPORT_HTTP) + continue; + + if (pmc->unidirectional_http) + continue; + + printf("%s: %30s\tGROUPNUM %5lu\tdata %" FS_ULL ":%" FS_ULL "\n", + ts2ascii(&ptcb->ptp->first_time), + FormatBrief(ptcb->ptp, ptcb), + pmc->http_groupnum, + pmc->tcb_cache[0].data_bytes, + pmc->tcb_cache[1].data_bytes); + } + + printf("Unidirectional HTTP conns (ignored)\n"); + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + tcb *ptcb = pmc->tcb_cache[TCB_CACHE_A2B].ptcb; + + if (pmc->btype != TCPLIBPORT_HTTP) + continue; + + if (!pmc->unidirectional_http) + continue; + + printf("%s: %30s\tGROUPNUM %5lu\tdata %" FS_ULL ":%" FS_ULL "\n", + ts2ascii(&ptcb->ptp->first_time), + FormatBrief(ptcb->ptp, ptcb), + pmc->http_groupnum, + pmc->tcb_cache[0].data_bytes, + pmc->tcb_cache[1].data_bytes); + } + } + + + return; +} + + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_read + * + * Returns: Nothing + * + * Purpose: This function is called each time a packet is read in by + * tcptrace. tcplib_read examines the packet, and keeps track + * of certain information about the packet based on the packet's + * source and/or destination ports. + * + * Called by: ModulesPerPacket() in tcptrace.c + * + * + ****************************************************************************/ +void tcplib_read( + struct ip *pip, /* The packet */ + tcp_pair *ptp, /* The pair of hosts - basically the conversation */ + void *plast, /* Unused here */ + void *pmodstruct /* Nebulous structure used to hold data that the module + * feels is important. */ + ) +{ + struct tcphdr *tcp; /* TCP header information */ + int data_len = 0; /* Length of the data cargo in the packet, and + * the period of time between the last two packets + * in a conversation */ + tcb *ptcb; + module_conninfo_tcb *ptcbc; + struct tcplibstats *pstats; + module_conninfo *pmc = pmodstruct; + enum t_dtype dtype; + int dir; + + /* first, discard any connections that we aren't interested in. */ + /* That means that pmodstruct is NULL */ + if (pmc == NULL) { + return; + } + + + /* Setting a pointer to the beginning of the TCP header */ + tcp = (struct tcphdr *) ((char *)pip + (4 * IP_HL(pip))); + + /* calculate the amount of user data */ + data_len = pip->ip_len - /* size of entire IP packet (and IP header) */ + (4 * IP_HL(pip)) - /* less the IP header */ + (4 * TH_OFF(tcp)); /* less the TCP header */ + + /* stats */ + debug_total_bytes += data_len; + + /* see which of the 2 TCB's this goes with */ + if (ptp->addr_pair.a_port == ntohs(tcp->th_sport)) { + ptcb = &ptp->a2b; + dir = TCB_CACHE_A2B; + } else { + ptcb = &ptp->b2a; + dir = TCB_CACHE_B2A; + } + ptcbc = &pmc->tcb_cache[dir]; + + + /* see where to keep the stats */ + dtype = traffic_type(pmc,ptcbc); + pstats = global_pstats[dtype]; + + /* Let's do the telnet packet sizes. Telnet packets are the only + * ones where we actually care about the sizes of individual packets. + * All the other connection types are a "send as fast as possible" + * kind of setup where the packet sizes are always optimal. Because + * of this, we need the size of each and every telnet packet that + * comes our way. */ + if (is_telnet_conn(pmc)) { + if (data_len > 0) { + if (ldebug>2) + printf("read: adding %d byte telnet packet to %s\n", + data_len, dtype_names[dtype]); + tcplib_add_telnet_packetsize(pstats,data_len); + } + } + + + /* Here's where we'd need to do telnet interarrival times. The + * same basic scenario applies with telnet packet interarrival + * times. Because telnet type traffic is "stop and go", we need + * to be able to model how long the "stops" are. So we measure + * the time in between successive packets in a single telnet + * conversation. */ + if (is_telnet_conn(pmc)) { + tcplib_add_telnet_interarrival( + ptp, pmc, &pstats->telnet_interarrival); + } + + + /* keep track of bytes/second too */ + if (data_len > 0) { + static timeval last_time = {0,0}; + unsigned etime; + + /* accumulate total bytes */ + pstats->throughput_bytes += data_len; + + /* elapsed time in milliseconds */ + etime = (int)(elapsed(last_time, current_time)/1000.0); + + /* every 15 seconds, gather throughput stats */ + if (etime > 15000) { + AddToCounter(&pstats->throughput, + pstats->throughput_bytes, etime, 1024); + pstats->throughput_bytes = 0; + last_time = current_time; + } + + } + + + /* create data for traffic breakdown over time file */ + /* (sdo - only count packets with DATA) */ + if (data_len > 0) { + int a2b_btype = pmc->btype; + + if (a2b_btype != TCPLIBPORT_NONE) { + pstats->tcplib_breakdown_interval[a2b_btype] += + ptp->a2b.data_bytes; + } + } + + /* if it's http and we don't already know that it's + parallel, and this is the first data, and we're + looking at trafgen data, check the group number encoded + in the data stream */ + if (is_http_conn(pmc) && + trafgen_generated && + (ptcb->data_bytes == data_len) && + data_len >= sizeof(struct burstkey)) { + u_char *pdata = (u_char *)tcp + TH_OFF(tcp)*4; + int available = (char *)plast - (char *)pdata + 1; + struct burstkey *pburst; + + if (0) + printf("Looking for burst key (in %d bytes of data, %d bytes available)\n", + data_len, available); + + /* see where the burst key should be */ + pburst = (void *) pdata; + + if (pburst->magic == BURST_KEY_MAGIC) { + pmc->http_groupnum = ntohl(pburst->groupnum); + if (ldebug>1) + printf("FOUND BURST KEY in %s, group num is %lu!\n", + FormatBrief(ptcb->ptp, ptcb), + pmc->http_groupnum); + + /* check for parallelism */ + if (is_parallel_http(pmc)) { + pmc->ignore_conn = TRUE; + } + } + } + + + /* DATA Burst checking (NNTP and HTTP only) */ + if ((data_len > 0) && + (is_nntp_conn(pmc) || is_http_conn(pmc))) { + + + /* see if it's a new burst */ + if (IsNewBurst(pmc, ptcb, ptcbc, tcp)) { + int etime; + + if (ldebug > 1) + printf("New burst starts at time %s for %s\n", + ts2ascii(¤t_time), + FormatBrief(pmc->ptp,ptcb)); + + + /* count the PREVIOUS burst item */ + /* NB: the last is counted in tcplib_cleanup_bursts() */ + ++ptcbc->numitems; + + /* special burst handling for HTTP */ + if (is_http_conn(pmc) && pmc->pparallelism) { + struct parallelism *pp = pmc->pparallelism; + + if (ptcbc->numitems > 1) { + pp->persistant[dir] = TRUE; + } + + /* add to total bursts in parallel group */ + ++pp->ttlitems[dir]; + } + + /* accumulate burst size stats */ + if (ldebug>1) + printf("Adding burst size %ld to %s\n", + ptcbc->burst_bytes, + FormatBrief(pmc->ptp,ptcb)); + AddToCounter(&ptcbc->pburst->size, + ptcbc->burst_bytes, + 1, GRAN_BURSTSIZE); + + /* reset counter for next burst */ + ptcbc->burst_bytes = 0; + + /* determine idle time (elapsed time in milliseconds) */ + etime = (int)(elapsed(ptcbc->last_data_time, + current_time)/1000.0); + + /* accumulate idletime stats */ + + /* version 2.0 - Thu Aug 26, 1999, subtract the RTT */ + /* use rtt_last, RTT of last "good ack" */ + if (ptcb->rtt_last > 0.0) { + int last_good_rtt = ptcb->rtt_last / 1000.0; +#ifdef OLD + printf("last_good: %d (%f), etime_0: %d etime_1: %d\n", + last_good_rtt, ptcb->rtt_last, etime, etime-last_good_rtt); +#endif /* OLD */ + etime -= last_good_rtt; + + if (etime >= 0) + AddToCounter(&ptcbc->pburst->idletime, + etime, 1, GRAN_BURSTIDLETIME); + } + } + + /* accumulate size of current burst */ + ptcbc->burst_bytes += data_len; + + /* remember when the last data was sent (for idletime) */ + ptcbc->last_data_time = current_time; + } + + /* This is just a sanity check to make sure that we've got at least + * one time, and that our breakdown section is working on the same + * file that we are. */ + data_len = (current_time.tv_sec - pstats->last_interval.tv_sec); + + if (data_len >= TIMER_VAL) { + update_breakdown(ptp, pstats); + } + + /* analysis done, remember the last packet and PUSH status */ + pmc->last_time = current_time; + ptcbc->last_seg_pushed = PUSH_SET(tcp); + + return; +} + + + + + +/****************************************************************** + * + * fill the tcb cache, make the 'previous' linked lists + * + ******************************************************************/ +static void +ModuleConnFillcache( + void) +{ + module_conninfo *pmc; + enum t_dtype dtype; + int dir; + + /* fill the cache */ + for (pmc = module_conninfo_tail; pmc ; pmc=pmc->prev) { + tcp_pair *ptp = pmc->ptp; /* shorthand */ + int a2b_bytes = ptp->a2b.data_bytes; + int b2a_bytes = ptp->b2a.data_bytes; + + /* both sides byte counters */ + pmc->tcb_cache[TCB_CACHE_A2B].data_bytes = a2b_bytes; + pmc->tcb_cache[TCB_CACHE_B2A].data_bytes = b2a_bytes; + + /* debugging stats */ + if ((a2b_bytes == 0) && (b2a_bytes == 0)) { + /* no bytes at all */ + ++conntype_noplex_counter[pmc->tcb_cache[TCB_CACHE_A2B].dtype]; + ++conntype_noplex_counter[pmc->tcb_cache[TCB_CACHE_B2A].dtype]; + } else if ((a2b_bytes != 0) && (b2a_bytes == 0)) { + /* only A2B has bytes */ + ++conntype_uni_counter[pmc->tcb_cache[TCB_CACHE_A2B].dtype]; + ++conntype_nodata_counter[pmc->tcb_cache[TCB_CACHE_B2A].dtype]; + } else if ((a2b_bytes == 0) && (b2a_bytes != 0)) { + /* only B2A has bytes */ + ++conntype_nodata_counter[pmc->tcb_cache[TCB_CACHE_A2B].dtype]; + ++conntype_uni_counter[pmc->tcb_cache[TCB_CACHE_B2A].dtype]; + } else { + /* both sides have bytes */ + ++conntype_duplex_counter[pmc->tcb_cache[TCB_CACHE_A2B].dtype]; + ++conntype_duplex_counter[pmc->tcb_cache[TCB_CACHE_B2A].dtype]; + } + + + /* globals */ + pmc->last_time = ptp->last_time; + } + + + for (dtype = LOCAL; dtype <= REMOTE; ++dtype) { + /* do the A sides, then the B sides */ + for (LOOP_OVER_BOTH_TCBS(dir)) { + int app; + if (ldebug>1) + printf(" Making previous for %s, side %s\n", + dtype_names[dir], (dir==TCB_CACHE_A2B)?"A":"B"); + + /* do conversation interravial calculations by app */ + for (app=-1; app <= NUM_APPS; ++app) { + /* note: app==-1 means ALL apps */ + for (pmc = module_conninfo_tail; pmc ; ) { + module_conninfo_tcb *ptcbc = &pmc->tcb_cache[dir]; + + /* if app != -1, we just want SOME of them */ + if ((app != -1) && (pmc->btype != app)) { + /* don't want this one, try the next one */ + pmc = pmc->prev; + continue; + } + + if (ptcbc->dtype == dtype) { + module_conninfo *prev + = FindPrevConnection(pmc,dtype,app); + if (app == -1) + ptcbc->prev_dtype_all = prev; + else + ptcbc->prev_dtype_byapp = prev; + pmc = prev; + } else { + pmc = pmc->prev; + } + } + } + } + } +} + + + +/****************************************************************** + * + * to improve efficiency, we try to keep all of these on the + * same virual pages + * + ******************************************************************/ +static module_conninfo * +NewModuleConn() +{ +#define CACHE_SIZE 128 + static module_conninfo *pcache[CACHE_SIZE]; + static int num_cached = 0; + module_conninfo *p; + + if (num_cached == 0) { + int i; + char *ptmp; + + ptmp = MallocZ(CACHE_SIZE*sizeof(module_conninfo)); + + for (i=0; i < CACHE_SIZE; ++i) { + pcache[i] = (module_conninfo *)ptmp; + ptmp += sizeof(module_conninfo); + } + + num_cached = CACHE_SIZE; + } + + /* grab one from the cache and return it */ + p = pcache[--num_cached]; + return(p); +} + + + +/*************************************************************************** + * + * Function Name: tcplib_newconn + * + * Returns: The time of this connection. This becomes the pmodstruct that + * is returned with each call to tcplib_read. + * + * Purpose: To setup and handle new connections. + * + * Called by: ModulesPerConn() in tcptrace.c + * + * + ****************************************************************************/ +void * +tcplib_newconn( + tcp_pair *ptp) /* This conversation */ +{ + int btype; /* breakdown type */ + module_conninfo *pmc; + /* Pointer to a timeval structure. The + * timeval structure becomes the time of + * the last connection. The pmc + * is tcptrace's way of allowing modules + * to keep track of information about + * connections */ + + /* trafgen only uses a few ports... */ + if (trafgen_generated) { + u_short server_port = ptp->addr_pair.b_port; + + if ((server_port < ipport_offset+IPPORT_FTP_DATA) || + (server_port > ipport_offset+IPPORT_NNTP)) { + ++debug_newconn_badport; + return(NULL); + } + } + + /* verify that it's a connection we're interested in! */ + ++debug_newconn_counter; + btype = breakdown_type(ptp); + if (btype == TCPLIBPORT_NONE) { + ++debug_newconn_badport; + return(NULL); /* so we won't get it back in tcplib_read() */ + } else { + /* else, it's acceptable, count it */ + ++debug_newconn_goodport; + } + + /* create the connection-specific data structure */ + pmc = NewModuleConn(); + pmc->first_time = current_time; + pmc->ptp = ptp; + pmc->tcb_cache[TCB_CACHE_A2B].ptcb = &ptp->a2b; + pmc->tcb_cache[TCB_CACHE_B2A].ptcb = &ptp->b2a; + + /* cache the address info */ + pmc->addr_pair = ptp->addr_pair; + + /* determine its "insideness" */ + pmc->tcb_cache[TCB_CACHE_A2B].dtype = traffic_type(pmc, &pmc->tcb_cache[TCB_CACHE_A2B]); + pmc->tcb_cache[TCB_CACHE_B2A].dtype = traffic_type(pmc, &pmc->tcb_cache[TCB_CACHE_B2A]); + ++conntype_counter[pmc->tcb_cache[TCB_CACHE_A2B].dtype]; + ++conntype_counter[pmc->tcb_cache[TCB_CACHE_B2A].dtype]; + + /* determine the breakdown type */ + pmc->btype = btype; + + /* chain it in */ + pmc->prev = module_conninfo_tail; + module_conninfo_tail = pmc; + + /* setup the burst counter shorthand */ + if ((btype == TCPLIBPORT_NNTP) || + (btype == TCPLIBPORT_HTTP)) { + module_conninfo_tcb *ptcbc; + struct tcplibstats *pstats; + int dir; + +/* printf("NewConn, saw btype %d for %s\n", btype, */ +/* FormatBrief(ptp)); */ + + + for (LOOP_OVER_BOTH_TCBS(dir)) { + ptcbc = &pmc->tcb_cache[dir]; + pstats = global_pstats[ptcbc->dtype]; + + if (btype == TCPLIBPORT_NNTP) { + ptcbc->pburst = &pstats->nntp_bursts; + } else if (btype == TCPLIBPORT_HTTP) { + /* assume 1.1 unless we see parallelism later */ + ptcbc->pburst = &pstats->http_S_bursts; + } + + ptcbc->last_data_time = current_time; + } + } + + + /* debugging counter */ + if (btype == TCPLIBPORT_HTTP) + ++debug_http_total; + + + /* add to list of endpoints we track */ + TrackEndpoints(pmc); + + /* if it's NOT trafgen generated and it's HTTP, check if it's + parallel */ + if (is_http_conn(pmc) && !trafgen_generated) { + if (is_parallel_http(pmc)) { + pmc->ignore_conn = TRUE; + } + } + + + return (pmc); +} + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_newfile + * + * Returns: Nothing + * + * Purpose: This function is called by tcptrace every time that a new + * trace file is opened. tcplib_newfile basically sets up a new + * line in the breakdown file, so that we can get a picture of + * the traffic distribution for a single trace. + * + * Called by: ModulesPerFile() in tcptrace.c + * + * + ****************************************************************************/ +void tcplib_newfile( + char *filename, /* Name of the file just opened. */ + u_long filesize, + Bool fcompressed + ) +{ + static int first_file = TRUE; + + /* If this isn't the first file that we've seen this run, then + * we want to run do_final_breakdown on the file we ran BEFORE + * this one. */ + if (!first_file) { + do_all_final_breakdowns(); + free(current_file); + } else { + /* If this is the first file we've seen, then we just want to + * record the name of this file, and do nothing until the file + * is done. */ + printf("%s", filename); + first_file = FALSE; + } + + /* remember the current file name */ + current_file = (char *) strdup(filename); + + setup_breakdown(); + + return; +} + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_usage + * + * Returns: Nothing + * + * Purpose: To print out usage instructions for this module. + * + * Called by: ListModules() in tcptrace.c + * + * + ****************************************************************************/ +void tcplib_usage() +{ + printf("\ +\t-xtcplib\"[ARGS]\"\tgenerate tcplib-format data files from trace\n"); + printf("\ +\t -oN set port offset to N, default is 0\n\ +\t for example, we normally find telnet at 23, but\n\ +\t if it's at 9023, then use \"-o9000\"\n\ +\t -iIPLIST\n\ +\t define the IP addresses which are \"inside\". Format allows\n\ +\t ranges and commas, as in:\n\ +\t -i128.1.0.0-128.2.255.255\n\ +\t -i128.1.0.0-128.2.255.255,192.10.1.0-192.10.2.240\n\ +\t -H use hacks to find data from trafgen-generated files\n\ +\t -DDIR store the results in directory DIR, default is \"data\"\n\ +"); +} + +/* End of the tcptrace standard function section */ + + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_init_setup + * + * Returns: Nothing + * + * Purpose: To setup and initialize the tcplib module's set of + * global variables. + * + * Called by: tcplib_init() in mod_tcplib.c + * + * + ****************************************************************************/ +static void tcplib_init_setup(void) +{ + int i; /* Loop Counter */ + enum t_dtype ix; + struct tcplibstats *pstats; + + /* We need to save the contents in order to piece together the answers + * later on + * + * sdo - so why does Eric turn it OFF? + */ + save_tcp_data = FALSE; + + + for (ix = LOCAL; ix <= REMOTE; ++ix) { + /* create the big data structure */ + global_pstats[ix] = pstats = MallocZ(sizeof(struct tcplibstats)); + + for(i = 0; i < NUM_APPS; i++) { + pstats->tcplib_breakdown_interval[i] = 0; + } + } + + setup_breakdown(); + + return; +} + + + +/*************************************************************************** + * + * Function Name: setup_breakdown + * + * Returns: Nothing + * + * Purpose: To open the traffic breakdown graph file, and to set the + * interval count. + * + * Called by: tcplib_init_setup() in mod_tcplib.c + * tcplib_newfile() in mod_tcplib.c + * + * + ****************************************************************************/ +static void setup_breakdown(void) +{ + int ix; + + for (ix = LOCAL; ix <= REMOTE; ++ix) { + struct tcplibstats *pstats = global_pstats[ix]; + char *prefix = dtype_names[ix]; + char *filename = namedfile(prefix,TCPLIB_BREAKDOWN_GRAPH_FILE); + + if (!(pstats->hist_file = Mfopen(filename, "w"))) { + perror(filename); + exit(1); + } + + pstats->interval_count = 0; + } +} + + + + +/*************************************************************************** + * + * Function Name: update_breakdown + * + * Returns: Nothing + * + * Purpose: To create a file containing a kind of histogram of traffic + * seen in this file. The histogram would contain one row per + * a set # of seconds, and would display one characteristic + * character per a specified number of bytes. + * + * Called by: tcplib_read() in mod_tcplib.c + * + * + ****************************************************************************/ +static void update_breakdown( + tcp_pair *ptp, /* This conversation */ + struct tcplibstats *pstats) +{ + int i; /* Looping variable */ + int count; + + /* Displays the interval number. A new histogram line is displayed + * at TIMER_VALUE seconds. */ + Mfprintf(pstats->hist_file, "%d\t", pstats->interval_count); + + /* Display some characters for each type of traffic */ + for(i = 0; i < NUM_APPS; i++) { + struct tcplibstats *pstats = global_pstats[LOCAL]; + + /* We'll be displaying one character per BREAKDOWN_HASH number + of bytes */ + count = (pstats->tcplib_breakdown_interval[i] / BREAKDOWN_HASH) + 1; + + /* If there was actually NO traffic of that type, then we don't + * want to display any characters. But if there was a little bit + * of traffic, even much less than BREAKDOWN_HASH, we want to + * acknowledge it. */ + if (!pstats->tcplib_breakdown_interval[i]) + count--; + + /* Print one hash char per count. */ + while(count > 0) { + Mfprintf(pstats->hist_file, "%c", breakdown_hash_char[i]); + count--; + } + } + + /* After we've done all the applications, end the line */ + Mfprintf(pstats->hist_file, "\n"); + + /* Zero out the counters */ + for(i = 0; i < NUM_APPS; i++) { + pstats->tcplib_breakdown_interval[i] = 0; + } + + /* Update the breakdown interval */ + pstats->interval_count++; + + /* Update the time that the last breakdown interval occurred. */ + pstats->last_interval = current_time; +} + + + +/*************************************************************************** + * + * Function Name: namedfile + * + * Returns: Relative path name attached to output file name. + * + * Purpose: The namedfile uses the -D command line argument to take a data + * directory and puts it together with its default file name to + * come up with the file name needed for output. + * + * Called by: do_final_breakdown() in mod_tcplib.c + * do_tcplib_final_converse() in mod_tcplib.c + * tcplib_do_telnet_duration() in mod_tcplib.c + * tcplib_do_telnet_interarrival() in mod_tcplib.c + * tcplib_do_telnet_pktsize() in mod_tcplib.c + * tcplib_do_ftp_itemsize() in mod_tcplib.c + * tcplib_do_ftp_control_size() in mod_tcplib.c + * tcplib_do_smtp_itemsize() in mod_tcplib.c + * tcplib_do_nntp_itemsize() in mod_tcplib.c + * tcplib_do_http_itemsize() in mod_tcplib.c + * + ****************************************************************************/ +static char * +namedfile( + char * localsuffix, + char * real) /* Default file name for the output file */ +{ + char directory[256]; + static char buffer[256]; /* Buffer to store the full file name */ + + if (!LOCAL_ONLY) + snprintf(directory,sizeof(directory),"%s_%s", output_dir, localsuffix); + else + snprintf(directory,sizeof(directory),"%s", output_dir); + + /* try to CREATE the directory if it doesn't exist */ + if (access(directory,F_OK) != 0) { + if (mkdir(directory,0755) != 0) { + perror(directory); + exit(-1); + } + if (ldebug>1) + printf("Created directory '%s'\n", directory); + } + + snprintf(buffer,sizeof(buffer),"%s/%s", directory, real); + + return buffer; +} + + + + +/*************************************************************************** + * + * Function Name: do_final_breakdown + * + * Returns: Nothing + * + * Purpose: To generate the final breakdown file. More specifically, to + * generate the one line in the breakdown file associated with + * the input file that is currently being traced. + * + * Called by: tcplib_done() in mod_tcplib.c + * tcplib_newfile() in mod_tcplib.c + * + * + ****************************************************************************/ +static void do_final_breakdown( + char *filename, + f_testinside p_tester, + struct tcplibstats *pstats) +{ + module_conninfo *pmc; + MFILE* fil; /* File descriptor for the traffic breakdown file */ + long file_pos; /* Offset within the traffic breakdown file */ + u_long num_parallel_http = 0; + + + /* This is the header for the traffic breakdown file. It follows the + * basic format of the original TCPLib breakdown file, but has been + * modified to accomodate the additions that were made to TCPLib */ +#ifdef INCLUDE_PHONE_CONV + char *header = "stub\tsmtp\tnntp\ttelnet\tftp\thttp\tphone\tconv\n"; +#else /* INCLUDE_PHONE_CONV */ + char *header = "stub smtp\tnntp\ttelnet\tftp\thttp\n"; +#endif /* INCLUDE_PHONE_CONV */ + + if (!(fil = Mfopen(filename, "a"))) { + perror("Opening Breakdown File"); + exit(1); + } + + Mfseek(fil, 0, SEEK_END); + file_pos = Mftell(fil); + + /* Basically, we're checking to see if this file has already been + * used. We have the capability to both start a new set of data + * based on a trace file, or we have the ability to incorporate one + * trace file's data into the data from another trace. This would + * have the effect of creating a hybrid traffic pattern, that matches + * neither of the sources, but shares characteristics of both. */ + if (file_pos < strlen(header)) { + Mfprintf(fil, "%s", header); + } + + /* We only do this next part if we actually have a file name. In + * earlier revisions, sending a NULL filename signified the end of + * all trace files. At this point, a NULL file name has no useful + * purpose, so we ignore it completely. */ + if (current_file) { + int bad_port = 0; + int no_data = 0; + int bad_dir = 0; + + /* for protocol breakdowns */ + int breakdown_protocol[NUM_APPS] = {0}; + + /* The breakdown file line associated with each trace file is + * prefaced with the trace file's name. This was part of the + * original TCPLib format. */ + Mfprintf(fil, "%-16s ", current_file); + + /* count the connections of each protocol type */ + for (pmc = module_conninfo_tail; pmc ; pmc = pmc->prev) { + int protocol_type; + module_conninfo_tcb *ptcbc; + + /* check the protocol type */ + protocol_type = pmc->btype; + if (protocol_type == TCPLIBPORT_NONE) { + ++bad_port; + continue; /* not interested, loop to next conn */ + } + + /* count the parallel HTTP separately */ + if (pmc->ignore_conn) { + if (protocol_type == TCPLIBPORT_HTTP) { + ++num_parallel_http; + continue; + } + } + + /* see if we want A->B */ + ptcbc = &pmc->tcb_cache[TCB_CACHE_A2B]; + if ((*p_tester)(pmc, ptcbc)) { + /* count it if there's data */ + if (ptcbc->data_bytes > 0) { + if (pmc->ignore_conn && is_http_conn(pmc)) + ++num_parallel_http; + else + ++breakdown_protocol[protocol_type]; + } else { + ++no_data; + } + } else { + /* see if we want B->A */ + ptcbc = &pmc->tcb_cache[TCB_CACHE_B2A]; + if ((*p_tester)(pmc, ptcbc)) { + /* count it if there's data */ + if (ptcbc->data_bytes > 0) { + if (pmc->ignore_conn && is_http_conn(pmc)) + ++num_parallel_http; + else + ++breakdown_protocol[protocol_type]; + } else { + ++no_data; + } + } else { + ++bad_dir; + } + } + } + + /* Print out each of the columns we like */ + /* SMTP */ + Mfprintf(fil, "%.4f\t", + ((float)breakdown_protocol[TCPLIBPORT_SMTP])/ num_tcp_pairs); + + /* NNTP */ + Mfprintf(fil, "%.4f\t", + ((float)breakdown_protocol[TCPLIBPORT_NNTP])/ num_tcp_pairs); + + /* TELNET */ + Mfprintf(fil, "%.4f\t", + ((float)breakdown_protocol[TCPLIBPORT_TELNET])/ num_tcp_pairs); + + /* FTP */ + Mfprintf(fil, "%.4f\t", + ((float)breakdown_protocol[TCPLIBPORT_FTPCTRL])/ num_tcp_pairs); + + /* HTTP */ + Mfprintf(fil, "%.4f\t", + ((float)breakdown_protocol[TCPLIBPORT_HTTP])/ num_tcp_pairs); + +#ifdef UNDEF + /* FTP Data */ + Mfprintf(fil, "%.4f\t", + ((float)breakdown_protocol[TCPLIBPORT_FTPDATA])/ num_tcp_pairs); + + /* Parallel HTTP */ + Mfprintf(fil, "%.4f\t", + ((float)num_parallel_http)/ num_tcp_pairs); +#endif /* UNDEF */ + +#ifdef INCLUDE_PHONE_CONV + /* Place holders for phone and converstation intervals. The + * phone type was never fully developed in the original TCPLib + * implementation. At the current time, we don't consider + * phone type conversations. The placeholder for conversation + * intervals allows us to use TCPLib's existing setup for + * aquiring statistics. Without a placeholder in the + * breakdown file, TCPLib won't recognize this particular + * item, and in the generation of statistically equivalent + * traffic patterns, the interval between converstaions is of + * utmost importance, especially as far as the scalability of + * traffic is concerned. */ + Mfprintf(fil, "%.4f\t%.4f", (float)0, (float)0); +#endif /* INCLUDE_PHONE_CONV */ + Mfprintf(fil, "\n"); + + } + + Mfclose(fil); + Mfclose(pstats->hist_file); +} + +static void do_all_final_breakdowns(void) +{ + char *filename; + + filename = namedfile("local",TCPLIB_BREAKDOWN_FILE); + do_final_breakdown(filename, TestLocal, + global_pstats[LOCAL]); + + if (LOCAL_ONLY) + return; /* none of the rest will match anyway */ + + filename = namedfile("incoming",TCPLIB_BREAKDOWN_FILE); + do_final_breakdown(filename, TestIncoming, + global_pstats[INCOMING]); + + filename = namedfile("outgoing",TCPLIB_BREAKDOWN_FILE); + do_final_breakdown(filename, TestOutgoing, + global_pstats[OUTGOING]); + + filename = namedfile("remote",TCPLIB_BREAKDOWN_FILE); + do_final_breakdown(filename, TestRemote, + global_pstats[REMOTE]); +} + + + +/*************************************************************************** + * + * Function Name: breakdown_type + * + * Returns: The generic type of connection associated with "port" + * + * Purpose: To convert the port given to the function to the appropriate + * TCPLib type port. As we come across other ports that have the + * same basic characteristics as TCPLib type, we can just add + * them here. + * + * Called by: tcplib_read() in mod_tcplib.c + * do_final_breakdown() in mod_tcplib.c + * + * + ****************************************************************************/ +static int breakdown_type( + tcp_pair *ptp) +{ + /* shorthand */ + portnum porta = ptp->addr_pair.a_port; + portnum portb = ptp->addr_pair.b_port; + + if (is_telnet_port(porta) || + is_telnet_port(portb)) + return(TCPLIBPORT_TELNET); + + if (is_ftp_ctrl_port(porta) || + is_ftp_ctrl_port(portb)) + return(TCPLIBPORT_FTPCTRL); + + if (is_smtp_port(porta) || + is_smtp_port(portb)) + return(TCPLIBPORT_SMTP); + + if (is_nntp_port(porta) || + is_nntp_port(portb)) + return(TCPLIBPORT_NNTP); + + if (is_http_port(porta) || + is_http_port(portb)) + return(TCPLIBPORT_HTTP); + + if (is_ftp_data_port(porta) || + is_ftp_data_port(portb) || + CouldBeFtpData(ptp)) + return(TCPLIBPORT_FTPDATA); + + return TCPLIBPORT_NONE; +} + +/* End Breakdown Stuff */ + + + + + + + +/* Begin Next Conversation Stuff */ + +/*************************************************************************** + * + * Function Name: do_tcplib_next_converse + * + * Returns: Nothing + * + * Purpose: This function takes a new conversation and deals with the time + * between successive conversations. If an entry in the breakdown + * table already exists with that particular time, then the counter + * is simply incremented. If not, then a new table is made with a + * space for the new table item. We're using arrays, but a change + * might be made to use a linked list before too long. + * + * Called by: tcplib_newconn() in mod_tcplib.c + * + * + ****************************************************************************/ +static void do_tcplib_next_converse( + module_conninfo_tcb *ptcbc, + module_conninfo *pmc) +{ + struct tcplibstats *pstats; + module_conninfo *pmc_previous; + enum t_dtype dtype; + int etime; /* Time difference between the first packet in this + * conversation and the first packet in the previous + * conversation. Basically, this is the time between + * new conversations. */ + + /* see where to keep the stats */ + dtype = traffic_type(pmc, ptcbc); + pstats = global_pstats[dtype]; + + if (ldebug>2) { + printf("do_tcplib_next_converse: %s, %s\n", + FormatBrief(pmc->ptp, ptcbc->ptcb), dtype_names[dtype]); + } + + + /* sdo - Wed Jun 16, 1999 */ + /* new method, search backward to find the previous connection that had */ + /* data flowing in the same "direction" and then use the difference */ + /* between the starting times of those two connections as the conn */ + /* interrival time */ + /* sdo - Fri Jul 9, 1999 (information already computed in Fillcache) */ + + /* FIRST, do conversation interarrivals for ALL conns */ + if (ptcbc->prev_dtype_all != NULL) { + pmc_previous = ptcbc->prev_dtype_all; + /* elapsed time since that previous connection started */ + etime = (int)(elapsed(pmc_previous->first_time, + pmc->first_time)/1000.0); /* convert us to ms */ + + /* keep stats */ + AddToCounter(&pstats->conv_interarrival_all, etime, 1, 1); + } + + + /* THEN, do conversation interarrivals by APP type */ + if (ptcbc->prev_dtype_byapp != NULL) { + pmc_previous = ptcbc->prev_dtype_byapp; + /* elapsed time since that previous connection started */ + etime = (int)(elapsed(pmc_previous->first_time, + pmc->first_time)/1000.0); /* convert us to ms */ + + /* keep stats */ + AddToCounter(&pstats->conv_interarrival_byapp[pmc->btype], + etime, 1, 1); + } + + return; +} + +/* End of the breakdown section */ + + +/* return the previous connection that passes data in the direction */ +/* given in "dtype" and has app type apptype (or -1 for any) */ +module_conninfo * +FindPrevConnection( + module_conninfo *pmc, + enum t_dtype dtype, + int app_type) +{ + module_conninfo_tcb *ptcbc; + int count = 0; + + /* loop back further in time */ + for (pmc = pmc->prev; pmc; pmc = pmc->prev) { + int dir; + + /* ignore FTP Data and parallel HTTP */ + if (pmc->ignore_conn) + continue; + + for (LOOP_OVER_BOTH_TCBS(dir)) { + ptcbc = &pmc->tcb_cache[dir]; + if ((app_type != -1) && (app_type != pmc->btype)) { + /* skip it, wrong app */ + } + if (ptcbc->dtype == dtype) { + if (ptcbc->data_bytes != 0) + return(pmc); + } + + if (ldebug) + ++count; + } + } + + if (ldebug > 1) + printf("FindPrevConnection %s returned NULL, took %d searches\n", + dtype_names[dtype], count); + + return(NULL); +} + + + +/*************************************************************************** + * + * Function Name: do_tcplib_final_converse + * + * Returns: Nothing + * + * Purpose: To generate a new line in the breakdown file which shows the + * conversation percentages viewed in the file that is currently + * open, but has just been ended. + * + * Called by: tcplib_done() in mod_tcplib.c + * + * + ****************************************************************************/ +static void +do_tcplib_final_converse( + char *filename, + char *protocol, + dyn_counter psizes) +{ + const int bucketsize = GRAN_CONVARRIVAL; + char title[80]; + + +#ifdef READ_OLD_FILES + /* sdo - OK, pstats->conv_interarrival already has the counts we */ + /* made. First, include anything from an existing file. */ + psizes = ReadOldFile(filename, bucketsize, 0, psizes); +#endif /* READ_OLD_FILES */ + + /* generate the graph title of the table */ + snprintf(title,sizeof(title),"Conversation Interval Time (ms) - %s", protocol); + + /* Now, dump out the combined data */ + StoreCounters(filename,title, "% Interarrivals", bucketsize, psizes); + + return; +} + +static void +do_tcplib_conv_duration( + char *filename, + dyn_counter psizes) +{ + const int bucketsize = GRAN_CONVDURATION; + +#ifdef READ_OLD_FILES + psizes = ReadOldFile(filename, bucketsize, 0, psizes); +#endif /* READ_OLD_FILES */ + + /* Now, dump out the combined data */ + StoreCounters(filename,"Conversation Duration (ms)", + "% Conversations", bucketsize, psizes); + + return; +} + +static void do_tcplib_next_duration( + module_conninfo_tcb *ptcbc, + module_conninfo *pmc) +{ + struct tcplibstats *pstats; + enum t_dtype dtype; + int etime; /* Time difference between the first packet in this + * conversation and the last packet */ + + /* see where to keep the stats */ + dtype = traffic_type(pmc, ptcbc); + pstats = global_pstats[dtype]; + + if (ldebug>2) { + printf("do_tcplib_next_duration: %s, %s\n", + FormatBrief(pmc->ptp, ptcbc->ptcb), dtype_names[dtype]); + } + + + /* elapsed time since that previous connection started */ + etime = (int)(elapsed(pmc->first_time, + pmc->last_time)/1000.0); /* convert us to ms */ + + /* keep stats */ + AddToCounter(&pstats->conv_duration, etime, 1, GRAN_CONVDURATION); + + return; +} + +/* End Next Conversation Stuff */ + + + + + + + + + + +/* Begin Telnet stuff */ + +/*************************************************************************** + * + * Function Name: is_telnet_port + * + * Returns: TRUE/FALSE whether a given port is a telnet/login type port. + * + * Purpose: To accept a port number and determine whenter or not the port + * would exhibit the characteristics of a telnet/login port. + * + * Called by: tcplib_read() in mod_tcplib.c + * tcplib_do_telnet_duration() in mod_tcplib.c + * tcplib_add_telnet_interval() in mod_tcplib.c + * + ****************************************************************************/ +Bool is_telnet_port( + portnum port) /* The port we're looking at */ +{ + port -= ipport_offset; + + switch(port) { + case IPPORT_LOGIN: + case IPPORT_KLOGIN: + case IPPORT_OLDLOGIN: + case IPPORT_FLN_SPX: + case IPPORT_UUCP_LOGIN: + case IPPORT_KLOGIN2: + case IPPORT_NLOGIN: + case IPPORT_TELNET: +/* case IPPORT_SSH: */ /* not considered safe to assume -- sdo */ + return TRUE; + break; + + default: + return FALSE; + } +} + + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_do_telnet_duration + * + * Returns: Nothing + * + * Purpose: To collect information about the duration of a telnet + * conversation, and merge this information with data from + * previous runs of this module, if such data exists. + * + * Called by: tcplib_do_telnet() in mod_tcplib.c + * + * + ****************************************************************************/ +void tcplib_do_telnet_duration( + char *filename, /* where to store the output */ + f_testinside p_tester) /* functions to test "insideness" */ +{ + dyn_counter psizes = NULL; + const int bucketsize = GRAN_TELNET_DURATION; + module_conninfo *pmc; + + +#ifdef READ_OLD_FILES + /* This section reads in the data from the existing telnet duration + * file in preparation for merging with the current data. */ + psizes = ReadOldFile(filename, bucketsize, 0, psizes); +#endif /* READ_OLD_FILES */ + + + /* Fill the array with the current data */ + for (pmc = module_conninfo_tail; pmc; pmc=pmc->prev) { + /* if there wasn't data flowing in this direction, skip it */ + if (InsideBytes(pmc,p_tester) == 0) + continue; + + + /* Only work this for telnet connections */ + if (is_telnet_conn(pmc)) { + /* convert the time difference to ms */ + int temp = (int)( + elapsed(pmc->first_time, + pmc->last_time)/1000.0); /* convert us to ms */ + + /* increment the number of instances at this time. */ + AddToCounter(&psizes, temp, 1, bucketsize); + } + } + + + /* Output data to the file */ + StoreCounters(filename,"Duration (ms)", "% Conversations", + bucketsize,psizes); + + /* free the dynamic memory */ + DestroyCounters(&psizes); +} + + + +/*************************************************************************** + * + * Function Name: do_all_conv_arrivals + * + * Returns: Nothing + * + * Purpose: collect all the conversation interarrival times + * + * Called by: tcplib_done mod_tcplib.c + * + * + ****************************************************************************/ +void do_all_conv_arrivals() +{ + module_conninfo *pmc; + + if (ldebug>1) + printf("do_all_conv_arrivals: there are %d tcp pairs\n", + num_tcp_pairs); + + /* process each connection */ + for (pmc = module_conninfo_tail; pmc; pmc=pmc->prev) { + int dir; + + if (ldebug>2) { + static int count = 0; + printf("do_all_conv_arrivals: processing pmc %d: %p\n", + ++count, pmc); + } + + /* ignore unidirectional HTTP */ + if (is_http_conn(pmc) && pmc->unidirectional_http) + continue; + + + for (LOOP_OVER_BOTH_TCBS(dir)) { + if (pmc->tcb_cache[dir].data_bytes != 0) { + do_tcplib_next_converse(&pmc->tcb_cache[dir], pmc); + do_tcplib_next_duration(&pmc->tcb_cache[dir], pmc); + } + } + } +} + + + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_add_telnet_interarrival + * + * Returns: Nothing + * + * Purpose: This function takes the current packet and computes the time + * between the current packet and the previous packet. This value + * is then added to the list of telnet interarrivals. These values + * will be used at a later time. + * + * Called by: tcplib_read() in mod_tcplib.c + * + * + ****************************************************************************/ +void tcplib_add_telnet_interarrival( + tcp_pair *ptp, /* This conversation */ + module_conninfo *pmc, + dyn_counter *psizes) +{ + int temp = 0; /* time differential between packets */ + + /* Basically, I need the current time AND the time of the previous + * packet BOTH right now. As far as I can see, this function + * won't get called until the previous packet time has already + * been overwritten by the current time. This makes obtaining + * interarrival times more difficult. */ + + /* Answer - changed the original program. We added the pmstruct thing + * to the original TCPTrace which allows a module to store information + * about a connection. Quite handy. Thanks, Dr. Ostermann */ + + /* First packet has no interarrival time */ + if (tv_same(ptp->last_time,ptp->first_time)) { + /* If this is the first packet we've seen, nothing to do. + * We'll be able to get some data the next + * time. */ + return; + } + + /* Determining the time difference in ms */ + temp = (int)(elapsed(pmc->last_time, current_time)/1000.0); /* us to ms */ + + /* We're going to set an artificial maximum for telnet interarrivals + * for the case when someone (like me) would open a telnet session + * and just leave it open and not do anything on it for minutes or + * hours, or in some cases days. Keeping track of the exact time + * for a connection like that is not worth the effort, so we just + * set a ceiling and if it's over the ceiling, we make it the + * ceiling. */ + if (temp > MAX_TEL_INTER_COUNT - 1) + temp = MAX_TEL_INTER_COUNT - 1; + + /* In this case, we know for a fact that we don't have a value of + * temp that larger than the array, so we just increment the count + */ + (void) AddToCounter(psizes, temp, 1, 1); + + return; +} + + + + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_do_telnet_interarrival + * + * Returns: Nothing + * + * Purpose: To model integrate the old data for telnet interarrival times + * with the data gathered during this execution of the program. + * + * Called by: tcplib_do_telnet() in mod_tcplib.c + * + * + ****************************************************************************/ +void tcplib_do_telnet_interarrival( + char *filename, /* where to store the output */ + f_testinside p_tester) /* stuck with the interface :-( */ +{ + const int bucketsize = GRAN_TELNET_ARRIVAL; + dyn_counter psizes = NULL; + + /* ugly interface conversion :-( */ + if (p_tester == TestIncoming) + psizes = global_pstats[INCOMING]->telnet_interarrival; + else if (p_tester == TestOutgoing) + psizes = global_pstats[OUTGOING]->telnet_interarrival; + else if (p_tester == TestLocal) + psizes = global_pstats[LOCAL]->telnet_interarrival; + else if (p_tester == TestRemote) + psizes = global_pstats[REMOTE]->telnet_interarrival; + else { + fprintf(stderr, + "tcplib_do_telnet_interarrival: internal inconsistancy!\n"); + exit(-1); + } + + + +#ifdef READ_OLD_FILES + /* add in the data from the old run (if it exists) */ + psizes = ReadOldFile(filename, bucketsize, MAX_TEL_INTER_COUNT, psizes); +#endif /* READ_OLD_FILES */ + + + /* Dumping the data out to the data file */ + StoreCounters(filename, "Interarrival Time (ms)", "% Interarrivals", + bucketsize,psizes); +} + + + + + +/*************************************************************************** + * + * Function Name: tcplib_do_telnet_packetsize + * + * Returns: Nothing + * + * Purpose: To take the data on telnet packet sizes measured during this + * run of the program, merge them with any existing data, and + * drop a data file. + * + * Called by: tcplib_do_telnet() in mod_tcplib.c + * + * + ****************************************************************************/ +void tcplib_do_telnet_packetsize( + char *filename, /* where to store the output */ + f_testinside p_tester) /* stuck with the interface :-( */ +{ + const int bucketsize = GRAN_TELNET_PACKETSIZE; + dyn_counter psizes = NULL; + + /* ugly interface conversion :-( */ + if (p_tester == TestIncoming) + psizes = global_pstats[INCOMING]->telnet_pktsize; + else if (p_tester == TestOutgoing) + psizes = global_pstats[OUTGOING]->telnet_pktsize; + else if (p_tester == TestLocal) + psizes = global_pstats[LOCAL]->telnet_pktsize; + else if (p_tester == TestRemote) + psizes = global_pstats[REMOTE]->telnet_pktsize; + else { + fprintf(stderr, + "tcplib_do_telnet_packetsize: internal inconsistancy!\n"); + exit(-1); + } + + +#ifdef READ_OLD_FILES + /* In this section, we're reading in from the previous data file, + * applying the data contained there to the data set that we've + * acquired during this run, and then dumping the merged data set + * back out to the data file */ + psizes = ReadOldFile(filename, bucketsize, 0, psizes); +#endif /* READ_OLD_FILES */ + + + /* Dumping the data out to the data file */ + StoreCounters(filename, "Packet Size (bytes)", "% Packets", + bucketsize,psizes); +} + + + + + + + + +/*************************************************************************** + * + * Function Name: tcplib_add_telnet_packetsize + * + * Returns: Nothing + * + * Purpose: Takes a length as acquired from a telnet packet data size and + * increments the count of the telnet packet size table by one for + * entry which corresponds to that length. If the packet size is + * larger than the allocated table allows, we truncate the packet + * size. + * + * Called by: tcplib_read() in mod_tcplib.c + * + * + ****************************************************************************/ +void tcplib_add_telnet_packetsize( + struct tcplibstats *pstats, + int length) /* The length of the packet to be added to the table */ +{ + /* Incrementing the table */ + AddToCounter(&pstats->telnet_pktsize, length, 1, 1); +} + + +/* End Telnet Stuff */ + + + + + + + + +/* Begin FTP Stuff */ + +/*************************************************************************** + * + * Function Name: is_ftp_ctrl_conn + * + * Returns: Boolean value + * + * Purpose: To determine if the connection is an FTP control port. + * + * Called by: tcplib_do_ftp_control_size() in mod_tcplib.c + * + ****************************************************************************/ +Bool is_ftp_ctrl_port( + portnum port) +{ + port -= ipport_offset; + return (port == IPPORT_FTP_CONTROL); +} +Bool is_ftp_data_port( + portnum port) +{ + port -= ipport_offset; + return (port == IPPORT_FTP_DATA); +} + + + + + +/*************************************************************************** + * + * Function Name: tcplib_do_ftp_itemsize + * + * Returns: Nothing + * + * Purpose: To generate the ftp.itemsize data file from the information + * collected on ftp transfer sizes. This function also integrates + * new data with old data, if any old data exists. + * + * Called by: tcplib_do_ftp() in mod_tcplib.c + * + ****************************************************************************/ +void tcplib_do_ftp_itemsize( + char *filename, /* where to store the output */ + f_testinside p_tester) /* functions to test "insideness" */ +{ + const int bucketsize = GRAN_FTP_ITEMSIZE; + + tcplib_do_GENERIC_itemsize(filename, TCPLIBPORT_FTPDATA, + p_tester, bucketsize); +} + + +void tcplib_do_ftp_numitems( + char *filename, /* where to store the output */ + f_testinside p_tester) /* functions to test "insideness" */ +{ + int bucketsize = GRAN_NUMITEMS; + module_conninfo *pmc; + dyn_counter psizes = NULL; + + +#ifdef READ_OLD_FILES + /* If an old data file exists, open it, read in its contents + * and store them until they are integrated with the current + * data */ + psizes = ReadOldFile(filename, bucketsize, 0, psizes); +#endif /* READ_OLD_FILES */ + + + /* fill out the array with data from the current connections */ + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + /* We only need the stats if it's the right port */ + if (is_ftp_ctrl_conn(pmc)) { + if ((*p_tester)(pmc, &pmc->tcb_cache[TCB_CACHE_A2B])) { + if (ldebug && (pmc->tcb_cache[TCB_CACHE_A2B].numitems == 0)) + printf("numitems: control %s has NONE\n", + FormatBrief(pmc->ptp, NULL)); + AddToCounter(&psizes, pmc->tcb_cache[TCB_CACHE_A2B].numitems, + 1, 1); + } + } + } + + + /* store all the data (old and new) into the file */ + StoreCounters(filename,"Total Articles", "% Conversation", + bucketsize,psizes); + + /* free the dynamic memory */ + DestroyCounters(&psizes); +} + + +static void tcplib_do_ftp_control_size( + char *filename, /* where to store the output */ + f_testinside p_tester) /* functions to test "insideness" */ +{ + const int bucketsize = GRAN_FTP_CTRLSIZE; + + tcplib_do_GENERIC_itemsize(filename, TCPLIBPORT_FTPCTRL, + p_tester, bucketsize); +} +/* End of FTP Stuff */ + + + + +/* Begin SMTP Stuff */ +static Bool +is_smtp_port( + portnum port) +{ + port -= ipport_offset; + return (port == IPPORT_SMTP); +} + + +static void tcplib_do_smtp_itemsize( + char *filename, /* where to store the output */ + f_testinside p_tester) /* functions to test "insideness" */ +{ + const int bucketsize = GRAN_SMTP_ITEMSIZE; + + tcplib_do_GENERIC_itemsize(filename, TCPLIBPORT_SMTP, + p_tester, bucketsize); +} +/* Done SMTP Stuff */ + + + + +/* Begin NNTP Stuff */ +static Bool +is_nntp_port( + portnum port) +{ + port -= ipport_offset; + return (port == IPPORT_NNTP); +} + + +/* Done NNTP Stuff */ + + + +/* Begin HTTP Stuff */ +static Bool +is_http_port( + portnum port) +{ + port -= ipport_offset; + return ((port == IPPORT_HTTP) || + (port == IPPORT_HTTPS)); +} + + + +/*************************************************************************** + ** + ** Support Routines + ** + ***************************************************************************/ + + +/*************************************************************************** + * + * StoreCounters -- store a dyncounter structure into a file + * this get's a little interesting because of the way tcplib works + * for example, given the simple table + * 1 0.3333 + * 2 0.6667 + * 3 1.0000 + * tcplib will generate integer samples (from a random test): + * 1 66756 0.6676 0.6676 + * 2 33244 0.3324 1.0000 + * + * as another example, given the simple table (same as before except + * for the first line) + * 0 0.0000 + * 1 0.3333 + * 2 0.6667 + * 3 1.0000 + * tcplib will generate integer samples (from a random test): + * 0 33609 0.3361 0.3361 + * 1 33044 0.3304 0.6665 + * 2 33347 0.3335 1.0000 + * SO... if we really want 1/3 1's, 2's, and 3's, we need the table: + * 1 0.0000 + * 2 0.3333 + * 3 0.6667 + * 4 1.0000 + * and a random test gives us + * 1 33609 0.3361 0.3361 + * 2 33044 0.3304 0.6665 + * 3 33347 0.3335 1.0000 + * which is exactly what we wanted. + * + * ... therefore, for each counter, we store counter+GRANULARITY + * in the table, and also store a 0.0000 value for the FIRST entry + * + **************************************************************************/ +static void +StoreCounters( + char *filename, + char *header1, + char *header2, + int bucketsize, + dyn_counter psizes) +{ + MFILE *fil; + int running_total = 0; + int lines = 0; + + if (ldebug>1) + printf("Saving data for file '%s'\n", filename); + + /* verify bucketsize, but not needed anymore */ + if (bucketsize != GetGran(psizes)) { + /* probably because the counter was never used */ + if (GetTotalCounter(psizes) != 0) { + fprintf(stderr,"StoreCounters: bad bucketsize (%s)\n", + filename); + exit(-1); + } + } + + if (!(fil = Mfopen(filename, "w"))) { + perror(filename); + exit(1); + } + + Mfprintf(fil, "%s\t%s\tRunning Sum\tCounts\n", header1, header2); + + if (psizes == NULL) { + if (ldebug>1) + printf(" (No data for file '%s')\n", filename); + } else { + int cookie = 0; + int first = TRUE; + while (1) { + u_long ix; + int value; + u_long count; + u_long total_counter = GetTotalCounter(psizes); + u_long gran = GetGran(psizes); + + if (NextCounter(&psizes, &cookie, &ix, &count) == 0) + break; + + value = ix; + running_total += count; + + if (count) { + if (first) { + /* see comments above! */ + Mfprintf(fil, "%.3f\t%.4f\t%d\t%d\n", + (float)(value), 0.0, 0, 0); + first = FALSE; + } + Mfprintf(fil, "%.3f\t%.4f\t%d\t%lu\n", + (float)(value+gran), + (float)running_total/(float)total_counter, + running_total, + count); + ++lines; + } + } + } + + Mfclose(fil); + + if (ldebug>1) + printf(" Stored %d values into %d lines of '%s'\n", + running_total, lines, filename); +} + + +#ifdef READ_OLD_FILES +static dyn_counter +ReadOldFile( + char *filename, + int bucketsize, + int maxlegal, /* upper limit on array IX (or 0) */ + dyn_counter psizes) +{ + FILE* old; /* File pointer for old data file */ + float bytes; + int count; + int linesread = 0; + + /* If the an old data file exists, open it, read in its contents + * and store them until they are integrated with the current + * data */ + if ((old = fopen(filename, "r"))) { + char buffer[256]; + + /* read and discard the first line */ + fgets(buffer, sizeof(buffer)-1, old); + + + /* Read in each line in the file and pick out the pieces of */ + /* the file. Store each important piece is psizes */ + /* format is: + Total Bytes % Conversations Running Sum Counts + 5.000 0.0278 1 1 + 170.000 0.1111 4 3 + */ + /* (we only need the 1st and 4th fields) */ + while (fscanf(old, "%f\t%*f\t%*d\t%d\n", &bytes, &count) == 4) { + ++linesread; + if ((maxlegal != 0) && (bytes > maxlegal)) + bytes = maxlegal; + AddToCounter(&psizes, (((int)bytes)/bucketsize), count); + } + + if (ldebug>2) { + if (psizes && (linesread > 0)) + printf("Read data from old file '%s' (%lu values)\n", + filename, TotalCounter(psizes)); + else + printf("Old data file '%s' had no data\n", filename); + } + + fclose(old); + } + + return(psizes); +} +#endif /* READ_OLD_FILES */ + + +/* all of the itemsize routines look like this */ +static void +tcplib_do_GENERIC_itemsize( + char *filename, /* where to store the output */ + int btype, + f_testinside p_tester, /* functions to test "insideness" */ + int bucketsize) /* how much data to group together */ +{ + module_conninfo *pmc; + dyn_counter psizes = NULL; + + +#ifdef READ_OLD_FILES + /* If an old data file exists, open it, read in its contents + * and store them until they are integrated with the current + * data */ + psizes = ReadOldFile(filename, bucketsize, 0, psizes); +#endif /* READ_OLD_FILES */ + + + /* fill out the array with data from the current connections */ + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + /* We only need the stats if it's the right breakdown type */ + if (pmc->btype == btype) { + int nbytes = InsideBytes(pmc,p_tester); + + /* if there's no DATA, don't count it! (sdo change!) */ + if (nbytes != 0) + AddToCounter(&psizes, nbytes, 1, bucketsize); + } + } + + + /* store all the data (old and new) into the file */ + StoreCounters(filename,"Article Size (bytes)", "% Articles", + bucketsize,psizes); + + /* free the dynamic memory */ + DestroyCounters(&psizes); +} + + + +/* cleanup all the burstsize counters */ +/* called for HTTP_P, HTTP_S, and NNTP */ +static void +tcplib_cleanup_bursts() +{ + module_conninfo *pmc; + + /* all but the last burst was ALREADY recorded, so we just clean + up any burst that might be left */ + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + int dir; + + for (LOOP_OVER_BOTH_TCBS(dir)) { + module_conninfo_tcb *ptcbc = &pmc->tcb_cache[dir]; + + /* check for burst data */ + if (ptcbc->pburst == NULL) + continue; + + /* count the LAST burst */ + if (ptcbc->burst_bytes != 0) { + ++ptcbc->numitems; + } + + /* add the last burst into the ttl for the parallel stream */ + if (ptcbc->burst_bytes != 0) { + struct parallelism *pp = pmc->pparallelism; + if (pp) { + ++pp->ttlitems[dir]; + } + } + + + if (ptcbc->burst_bytes != 0) { + AddToCounter(&ptcbc->pburst->size, + ptcbc->burst_bytes, + 1, GRAN_BURSTSIZE); + } + + if (ptcbc->numitems != 0) { + AddToCounter(&ptcbc->pburst->nitems, + ptcbc->numitems, + 1,GRAN_NUMITEMS); + } + } + } +} +/* both ftp and nntp look the same */ +static void +tcplib_do_GENERIC_burstsize( + char *filename, /* where to store the output */ + dyn_counter counter) +{ + int bucketsize = GRAN_BURSTSIZE; + + + /* store all the data (old and new) into the file */ + StoreCounters(filename,"Burst Size", "% Bursts", + bucketsize, counter); +} +static void +tcplib_do_GENERIC_P_maxconns( + char *filename, /* where to store the output */ + dyn_counter counter) +{ + int bucketsize = GRAN_MAXCONNS; + + /* store all the data (old and new) into the file */ + StoreCounters(filename,"Max Conns", "% Streams", + bucketsize, counter); +} +static void +tcplib_do_GENERIC_nitems( + char *filename, /* where to store the output */ + dyn_counter counter) +{ + int bucketsize = GRAN_NUMITEMS; + + /* store all the data (old and new) into the file */ + StoreCounters(filename,"Num Items", "% Conns", + bucketsize, counter); +} +/* both ftp and nntp look the same */ +static void +tcplib_do_GENERIC_idletime( + char *filename, /* where to store the output */ + dyn_counter counter) +{ + int bucketsize = GRAN_BURSTIDLETIME; + + /* store all the data (old and new) into the file */ + StoreCounters(filename,"Idle Time", "% Bursts", + bucketsize, counter); +} + +static enum t_dtype +traffic_type( + module_conninfo *pmc, + module_conninfo_tcb *ptcbc) +{ + if (TestLocal(pmc,ptcbc)) + return(LOCAL); + + if (TestIncoming(pmc,ptcbc)) + return(INCOMING); + + if (TestOutgoing(pmc,ptcbc)) + return(OUTGOING); + + if (TestRemote(pmc,ptcbc)) + return(REMOTE); + + fprintf(stderr,"Internal error in traffic_type\n"); + exit(-1); +} + +static char * +FormatBrief( + tcp_pair *ptp, + tcb *ptcb) +{ + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + static char infobuf[100]; + + if (ptcb == pba) + snprintf(infobuf,sizeof(infobuf),"%s - %s (%s2%s)", + ptp->b_endpoint, ptp->a_endpoint, + pba->host_letter, pab->host_letter); + else + snprintf(infobuf,sizeof(infobuf),"%s - %s (%s2%s)", + ptp->a_endpoint, ptp->b_endpoint, + pab->host_letter, pba->host_letter); + + return(infobuf); +} + +static char * +FormatAddrBrief( + tcp_pair_addrblock *paddr_pair) +{ + static char infobuf[100]; + char infobuf1[100]; + char infobuf2[100]; + + snprintf(infobuf1,sizeof(infobuf1),"%s", HostName(paddr_pair->a_address)); + snprintf(infobuf2,sizeof(infobuf2),"%s", HostName(paddr_pair->b_address)); + snprintf(infobuf,sizeof(infobuf),"%s - %s", infobuf1, infobuf2); + + return(infobuf); +} + + +/* find a connection pair */ +static endpoint_pair * +FindEndpointPair( + endpoint_pair *hashtable[], + tcp_pair_addrblock *paddr_pair) +{ + endpoint_pair **ppep_head; + endpoint_pair *pep_search; + + /* find the correct hash bucket */ + ppep_head = &hashtable[EndpointHash(paddr_pair)]; + + /* search the bucket for the correct pair */ + for (pep_search = *ppep_head; pep_search; + pep_search = pep_search->pepnext) { + + /* see if it's the same connection */ + if (SameEndpoints(&pep_search->addr_pair, + paddr_pair)) + return(pep_search); + } + + /* after loop, pep_search is NON-NULL if we found it */ + + return(NULL); +} + + + + +/* add a connection to the list of all connections on that address pair */ +static void +AddEndpointPair( + endpoint_pair *hashtable[], + module_conninfo *pmc) +{ + endpoint_pair **ppep_head; + endpoint_pair *pep_search; + + /* search the bucket for the correct pair */ + ppep_head = &hashtable[EndpointHash(&pmc->addr_pair)]; + pep_search = FindEndpointPair(hashtable,&pmc->addr_pair); + + if (pep_search == NULL) { + /* not found, create it */ + pep_search = MallocZ(sizeof(endpoint_pair)); + + /* fill in the address info */ + pep_search->addr_pair = pmc->ptp->addr_pair; + + /* put at the front of the bucket */ + pep_search->pepnext = *ppep_head; + *ppep_head = pep_search; + } + + /* put the new connection at the front of the list for this + endpoint pair */ + pmc->next_pair = pep_search->pmchead; + pep_search->pmchead = pmc; + + if (ldebug>1) { + printf("\nEndpoint pair bucket\n"); + + /* for each thing on the bucket list */ + for (pep_search = *ppep_head; pep_search; + pep_search = pep_search->pepnext) { + module_conninfo *pmc; + printf(" %s:\n", FormatAddrBrief(&pep_search->addr_pair)); + /* for each connection on that pair */ + for (pmc = pep_search->pmchead; pmc; pmc = pmc->next_pair) { + printf(" %u <-> %u\n", + pmc->addr_pair.a_port, + pmc->addr_pair.b_port); + } + } + } +} + + + +/* remove unidirectional conns from consideration */ +static void +tcplib_filter_http_uni() +{ + module_conninfo *pmc; + + for (pmc = module_conninfo_tail; pmc; pmc = pmc->prev) { + if ((pmc->tcb_cache[0].data_bytes == 0) || + (pmc->tcb_cache[1].data_bytes == 0)) { + /* unidirectional (or no data at all) */ + pmc->unidirectional_http = TRUE; + + /* update counters */ + ++debug_http_uni_conns; + debug_http_uni_bytes += + pmc->tcb_cache[0].data_bytes + + pmc->tcb_cache[1].data_bytes; + + /* UNDO other counters */ + --debug_http_total; + if (pmc->pparallelism && + (pmc->pparallelism->maxparallel > 1)) { + --pmc->pparallelism->maxparallel; + --debug_http_parallel; + + /* if this is NOT the last one, decrement slave count */ + if (pmc->pparallelism->maxparallel > 0) { + --debug_http_slaves; + } else { + /* nobody left, empty group */ + --debug_http_groups; + } + } + + /* persistance is OK, as those are already ignored + in tcplib_save_bursts */ + + } + } +} + + +static Bool +is_parallel_http( + module_conninfo *pmc_new) +{ + endpoint_pair *pep; + module_conninfo *pmc; + struct parallelism *pp = NULL; + int dir; + int parallel_conns = 0; + u_long parent_groupnum = 0; + + /* see if there are any other connections on these endpoints */ + pep = FindEndpointPair(http_endpoints, &pmc_new->addr_pair); + + /* if none, we're done */ + if (pep == NULL) + return(FALSE); + + /* search that pep chain for PARALLEL conns */ + for (pmc = pep->pmchead; pmc; pmc = pmc->next_pair) { + + /* for efficiency, as we search we remove old, inactive entries */ + /* NOTE that this is the NEXT entry, not current */ + if (pmc->next_pair) { + if (!RecentlyActiveConn(pmc->next_pair)) { + /* remove it (by linking around it) */ + pmc->next_pair = pmc->next_pair->next_pair; + } + } + + /* if it's ME or it's not ACTIVE, skip it */ + if ((pmc_new == pmc) || !RecentlyActiveConn(pmc)) + continue; + + if (trafgen_generated) { + /* burst key group nums must also be the same */ + if (pmc_new->http_groupnum != pmc->http_groupnum) { + continue; /* skip it */ + } + } + + + /* OK, it's ACTIVE */ + + /* mark it as parallel if not already done */ + if (pmc->pparallelism == NULL) { + pmc->pparallelism = MallocZ(sizeof(struct parallelism)); + + /* if HE isn't marked, then he must be the "parent", + and this must be a new group */ + ++debug_http_groups; + ++debug_http_parallel; + + /* if this isn't trafgen-generated, give it a group number */ + /* (mostly for debugging) */ + if (!trafgen_generated) { + static u_long groupnum = 0; + parent_groupnum = ++groupnum; + pmc->http_groupnum = parent_groupnum; + } + + + /* switch its stats to parallel */ + for (LOOP_OVER_BOTH_TCBS(dir)) { + module_conninfo_tcb *ptcbc = &pmc->tcb_cache[dir]; + struct tcplibstats *pstats = global_pstats[ptcbc->dtype]; + ptcbc->pburst = &pstats->http_P_bursts; + } + } else { + /* it's already known to be parallel, so he's my brother */ + if (!trafgen_generated) { + parent_groupnum = pmc->http_groupnum; + } + } + + /* remember the parallel struct for these connections */ + pp = pmc->pparallelism; + + /* sanity check, if we've already found one, it better be */ + /* the same as this one!! */ + if ((pp != NULL) && (pp != pmc->pparallelism)) { + fprintf(stderr,"FindParallelHttp: bad data structure!!\n"); + exit(-1); + } + + /* found one more */ + ++parallel_conns; + } + + /* if we didn't find any, we're done */ + if (parallel_conns == 0) + return(FALSE); + + /* mark ME as parallel too */ + ++debug_http_slaves; + ++debug_http_parallel; + for (LOOP_OVER_BOTH_TCBS(dir)) { + module_conninfo_tcb *ptcbc = &pmc_new->tcb_cache[dir]; + struct tcplibstats *pstats = global_pstats[ptcbc->dtype]; + ptcbc->pburst = &pstats->http_P_bursts; + } + +/* printf("FindParallel, marking as parallel %s\n", */ +/* FormatBrief(pmc_new->ptp)); */ + + /* if this isn't trafgen generated, take the group number */ + pmc_new->http_groupnum = parent_groupnum; + + + /* update stats on this parallel system */ + pmc_new->pparallelism = pp; + ++parallel_conns; /* include ME */ + + /* update maximum parallelism, if required */ + if (parallel_conns > pmc_new->pparallelism->maxparallel) + pmc_new->pparallelism->maxparallel = parallel_conns; + + /* this _IS_ parallel */ + return(TRUE); +} + + +static void +TrackEndpoints( + module_conninfo *pmc) +{ + /* remember the endpoints (ftp and HTTP) */ + if (is_ftp_ctrl_conn(pmc)) { + AddEndpointPair(ftp_endpoints,pmc); + } else if (is_http_conn(pmc)) { + AddEndpointPair(http_endpoints,pmc); + } + + /* if it's an FTP data connection, find the control conn */ + if (is_ftp_data_conn(pmc)) { + endpoint_pair *pep; + + /* for FTP Data, we ignore this one */ + pmc->ignore_conn = TRUE; + + pep = FindEndpointPair(ftp_endpoints, &pmc->addr_pair); + + if (pep) { + /* "charge" this new DATA connection to the most + recently-active ftp control connection */ + struct module_conninfo_tcb *tcbc_control; + tcbc_control = MostRecentFtpControl(pep); + ++tcbc_control->numitems; + if (ldebug>1) { + printf("Charging ftp data to %s, count %lu\n", + FormatBrief(tcbc_control->ptcb->ptp, + tcbc_control->ptcb), + tcbc_control->numitems); + } + } else { + if (ldebug>1) + fprintf(stderr,"WARNING: no FTP control conn for %s???\n", + FormatBrief(pmc->ptp, NULL)); + } + } +} + + + + +/* could this connection be an FTP data connection that's NOT + on port 21? */ +static Bool +CouldBeFtpData( + tcp_pair *ptp) +{ + endpoint_pair *pep; + struct module_conninfo_tcb *ptcbc; + + /* make sure NEITHER port is reserved */ + if (ptp->addr_pair.a_port < 1024 || + ptp->addr_pair.b_port < 1024) + return(FALSE); + + /* see if there's any active FTP control connection on + these endpoints... */ + pep = FindEndpointPair(ftp_endpoints,&ptp->addr_pair); + if (pep == NULL) + return(FALSE); + + /* find the most recent FTP control connection */ + ptcbc = MostRecentFtpControl(pep); + if (pep == NULL) + return(FALSE); + + /* OK, I guess it COULD be... */ + ++debug_newconn_ftp_data_heuristic; + return(TRUE); +} + + +/* find the TCB (client side) for the most recently-active control + connection on this pair of endpoints */ +static module_conninfo_tcb * +MostRecentFtpControl( + endpoint_pair *pep) +{ + struct module_conninfo *pmc; + static module_conninfo_tcb *tcbc_newest = NULL; + tcb *tcb_newest; + timeval time_newest; + + if (pep->pmchead == NULL) { + /* None at all, that's odd... */ + fprintf(stderr,"MostRecentFtpControl: unexpected empty list \n"); + exit(-1); + } + + + /* search the rest looking for something newer */ + for (pmc = pep->pmchead; pmc; pmc = pmc->next_pair) { + tcb *ptcb_client = &pmc->ptp->a2b; + + /* if it's not "active", we're not interested */ + if (!ActiveConn(pmc)) + continue; + + /* have we found anyone yet? */ + if (tcbc_newest == NULL) { + tcb_newest = &pmc->ptp->a2b; + tcbc_newest = &pmc->tcb_cache[TCB_CACHE_A2B]; + time_newest = tcb_newest->last_data_time; + } else if (tv_gt(ptcb_client->last_data_time, time_newest)) { + /* this is "most recent" */ + tcb_newest = ptcb_client; + tcbc_newest = &pmc->tcb_cache[TCB_CACHE_A2B]; + time_newest = ptcb_client->last_data_time; + } + } + + return(tcbc_newest); +} + + +static hash +IPHash( + ipaddr *paddr) +{ + hash hval = 0; + int i; + + if (ADDR_ISV4(paddr)) { /* V4 */ + hval = paddr->un.ip4.s_addr; + } else if (ADDR_ISV6(paddr)) { /* V6 */ + for (i=0; i < 16; ++i) + hval += paddr->un.ip6.s6_addr[i]; + } else { + /* address type unknown */ + fprintf(stderr,"Unknown IP address type %d encountered\n", + ADDR_VERSION(paddr)); + exit(-1); + } + + return(hval); +} + + +static hash +EndpointHash( + tcp_pair_addrblock *addr_pair) +{ + hash hval; + + hval = + IPHash(&addr_pair->a_address) + + IPHash(&addr_pair->b_address); + + return(hval % ENDPOINT_PAIR_HASHSIZE); +} + + + +static Bool +SameEndpoints( + tcp_pair_addrblock *pap1, + tcp_pair_addrblock *pap2) +{ + if (IPcmp(&pap1->a_address,&pap2->a_address) == 0) { + if (IPcmp(&pap1->b_address,&pap2->b_address) == 0) { + return(TRUE); + } + } else if (IPcmp(&pap1->a_address,&pap2->b_address) == 0) { + if (IPcmp(&pap1->b_address,&pap2->a_address) == 0) { + return(TRUE); + } + } + + return(FALSE); +} + + +/* Data is considered a NEW burst if: + * 1) All previous data was ACKed + * 2) There was intervening data in the other direction + * 3) idletime > RTT + */ +static Bool +IsNewBurst( + module_conninfo *pmc, + tcb *ptcb, + module_conninfo_tcb *ptcbc, + struct tcphdr *tcp) +{ + seqnum seq = ntohl(tcp->th_seq); + tcb *orig_lastdata; + + tcb *ptcb_otherdir = ptcb->ptwin; + + + /* remember the last direction the data flowed */ + orig_lastdata = pmc->tcb_lastdata; + pmc->tcb_lastdata = ptcb; + + + if (graph_tsg) { + plotter_perm_color(ptcb->tsg_plotter, "green"); + plotter_text(ptcb->tsg_plotter, current_time, seq, "a", "?"); + } + + /* it's only a NEW burst if there was a PREVIOUS burst */ + if (ptcbc->burst_bytes == 0) { + if (graph_tsg) + plotter_text(ptcb->tsg_plotter, current_time, seq, "b", "==0"); + return(FALSE); + } + + /* check for old data ACKed */ + if (SEQ_LESSTHAN(ptcb_otherdir->ack,seq)) { + /* not ACKed */ + if (graph_tsg) + plotter_text(ptcb->tsg_plotter, current_time, seq, "b", "noack"); + return(FALSE); + } + + /* check for idletime > RTT */ + { + u_long etime_usecs = elapsed(ptcbc->last_data_time, current_time); + u_long last_rtt_usecs = ptcb->rtt_last; + if ((last_rtt_usecs != 0) && (etime_usecs < last_rtt_usecs)) { + if (graph_tsg) { + char buf[100]; + snprintf(buf,sizeof(buf),"short (%ld < %ld)", etime_usecs, last_rtt_usecs); + plotter_text(ptcb->tsg_plotter, current_time, seq, "b", buf); + } + return(FALSE); + } + } + + /* check for intervening data */ + if (ptcb == orig_lastdata) { + /* no intervening data */ + if (graph_tsg) + plotter_text(ptcb->tsg_plotter, current_time, seq, "b", "!data"); + return(FALSE); + } + + /* ... else, it's a new burst */ + + if (graph_tsg) { + plotter_perm_color(ptcb->tsg_plotter, "magenta"); + plotter_text(ptcb->tsg_plotter, current_time, seq, "r", "YES!!"); + } + return(TRUE); +} + +/* is this connection "active" */ +/* 1: not reset */ +/* 2: either 0 or 1 fins */ +static Bool +ActiveConn( + module_conninfo *pmc) +{ + if (FinCount(pmc->ptp) > 1) + return(FALSE); + + if (ConnReset(pmc->ptp)) + return(FALSE); + + return(TRUE); +} + + +/* is this connection "parallel" */ +/* 1: ActiveConn() */ +/* 2: last packets sent "recently" (defined as within 10 seconds) */ +static Bool +RecentlyActiveConn( + module_conninfo *pmc) +{ + int dir; + + if (ActiveConn(pmc)) + return(TRUE); + + for (LOOP_OVER_BOTH_TCBS(dir)) { + timeval last_packet = pmc->tcb_cache[dir].ptcb->last_time; + + /* elapsed time from last packet (in MICROseconds) */ + if (elapsed(last_packet,current_time) < 10*US_PER_SEC) { + /* 10 seconds for now, hope it works! */ + return(TRUE); + } + } + + return(FALSE); +} + + +#endif /* LOAD_MODULE_TCPLIB */ diff --git a/mod_tcplib.h b/mod_tcplib.h new file mode 100644 index 0000000..98046f6 --- /dev/null +++ b/mod_tcplib.h @@ -0,0 +1,152 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Eric Helvey + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ehelvey@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_tcplib[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_tcplib.h,v 5.9 2003/11/19 14:38:07 sdo Exp $"; + + +/* header file for mod_tcplib.c */ +int tcplib_init(int argc, char *argv[]); +void tcplib_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmodstruct); +void tcplib_done(void); +void tcplib_usage(void); +void tcplib_newfile(char *filename, u_long filesize, Bool fcompressed); +void * tcplib_newconn(tcp_pair *ptp); + + +/* various ports that we need to find */ +#define IPPORT_FTP_DATA 20 +#define IPPORT_FTP_CONTROL 21 +#define IPPORT_SSH 22 +#define IPPORT_TELNET 23 +#define IPPORT_SMTP 25 +#define IPPORT_OLDLOGIN 49 +#define IPPORT_HTTP 80 /* normal */ +#define IPPORT_NNTP 119 +#define IPPORT_FLN_SPX 221 +#define IPPORT_HTTPS 443 /* secure */ +#define IPPORT_LOGIN 513 +#define IPPORT_UUCP_LOGIN 541 +#define IPPORT_KLOGIN 542 +#define IPPORT_KLOGIN2 543 +#define IPPORT_NLOGIN 758 +#define IPPORT_NFS 2049 + + +/* internal breakdown types */ +#define NUM_APPS 6 +#define TCPLIBPORT_SMTP 0 +#define TCPLIBPORT_NNTP 1 +#define TCPLIBPORT_TELNET 2 +#define TCPLIBPORT_FTPCTRL 3 +#define TCPLIBPORT_HTTP 4 +#define TCPLIBPORT_FTPDATA 5 +#define TCPLIBPORT_NONE -1 + + +#define MAX_TEL_INTER_COUNT 1500000 +#define TIMER_VAL 60 +#define BREAKDOWN_HASH 1000000 + + +/* data file names */ +#define DEFAULT_TCPLIB_DATADIR "data" +#define TCPLIB_TELNET_DURATION_FILE "telnet.duration" +#define TCPLIB_TELNET_PACKETSIZE_FILE "telnet.pktsize" +#define TCPLIB_TELNET_INTERARRIVAL_FILE "telnet.interarrival" +#define TCPLIB_FTP_ITEMSIZE_FILE "ftp.itemsize" +#define TCPLIB_FTP_NITEMS_FILE "ftp.nitems" +#define TCPLIB_FTP_CTRLSIZE_FILE "ftp.ctlsize" +#define TCPLIB_SMTP_ITEMSIZE_FILE "smtp.itemsize" +#define TCPLIB_NNTP_BURSTSIZE_FILE "nntp.burstsize" +#define TCPLIB_NNTP_NITEMS_FILE "nntp.nitems" +#define TCPLIB_NNTP_IDLETIME_FILE "nntp.idletime" +#define TCPLIB_BREAKDOWN_FILE "breakdown" +#define TCPLIB_BREAKDOWN_GRAPH_FILE "breakdown_hist" +#define TCPLIB_NEXT_CONVERSE_FILE "conv.conv_time" +#define TCPLIB_CONV_DURATION_FILE "conv.duration" + +/* parallel HTTP */ +#define TCPLIB_HTTP_P_IDLETIME_FILE "http_P.idletime" +#define TCPLIB_HTTP_P_BURSTSIZE_FILE "http_P.burstsize" +#define TCPLIB_HTTP_P_MAXCONNS_FILE "http_P.maxconns" +#define TCPLIB_HTTP_P_TTLITEMS_FILE "http_P.ttlitems" +#define TCPLIB_HTTP_P_PERSIST_FILE "http_P.persistant" + +/* single stream HTTP */ +#define TCPLIB_HTTP_S_BURSTSIZE_FILE "http_S.burstsize" +#define TCPLIB_HTTP_S_IDLETIME_FILE "http_S.idletime" +#define TCPLIB_HTTP_S_NITEMS_FILE "http_S.nitems" + + +/* the granulatity that we store counters */ +#define GRAN_BURSTSIZE 256 /* bytes */ +#define GRAN_BURSTIDLETIME 10 /* ms */ +#define GRAN_CONVDURATION 10 /* ms */ +#define GRAN_CONVARRIVAL 1 /* ms */ +#define GRAN_TELNET_DURATION 10 /* ms */ +#define GRAN_TELNET_ARRIVAL 1 /* ms */ +#define GRAN_TELNET_PACKETSIZE 1 /* bytes */ +#define GRAN_FTP_ITEMSIZE 256 /* bytes */ +#define GRAN_FTP_CTRLSIZE 10 /* bytes */ +#define GRAN_SMTP_ITEMSIZE 10 /* bytes */ +#define GRAN_NUMITEMS 1 /* items */ +#define GRAN_NUMCONNS 1 /* items */ +#define GRAN_MAXCONNS 1 /* items */ + + +/* for debugging */ + +/* #undef GRAN_BURSTSIZE */ +/* #define GRAN_BURSTSIZE 1 */ diff --git a/mod_traffic.c b/mod_traffic.c new file mode 100644 index 0000000..1ac0eb2 --- /dev/null +++ b/mod_traffic.c @@ -0,0 +1,1361 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid[] = + "$Header: /usr/local/cvs/tcptrace/mod_traffic.c,v 5.16 2003/11/19 14:38:03 sdo Exp $"; + +#ifdef LOAD_MODULE_TRAFFIC + +#include "mod_traffic.h" + + +/* info kept for each (active) port */ +struct traffic_info { + /* which port */ + u_short port; + + /* interval byte counters */ + PLINE line_nbytes; + u_long nbytes; + u_long ttlbytes; + + /* interval packet counters */ + PLINE line_npackets; + u_long npackets; + u_long ttlpackets; + + /* active connections */ + PLINE line_nactive; + u_long nactive; + u_long ttlactive; + + /* idle connections */ + PLINE line_nidle; + u_long nidle; + u_long ttlidle; + + /* open connections */ + PLINE line_nopen; + u_long nopen; + u_long ttlopen; + + /* instantaneous open connections */ + PLINE line_niopen; + u_long n_i_open; + u_long ttl_i_open; + + /* long-duration connections */ + PLINE line_nlong; + u_long nlong; + u_long ttllong; + + /* pureacks */ + PLINE line_pureacks; + u_long npureacks; + u_long ttlpureacks; + + /* which color is used for plotting */ + char *color; + + /* linked list of the one's we're using */ + struct traffic_info *next; +}; +static struct traffic_info *traffichead = NULL; +#define NUM_PORTS 65536 +static struct traffic_info **ports; /* [NUM_PORTS] */ +#define EXCLUDE_PORT ((void *)(-1)) +#define INCLUDE_PORT (NULL) + +/* name of the file that port data is dumped into */ +#define PORT_FILENAME "traffic_byport.dat" +#define STATS_FILENAME "traffic_stats.dat" + +/* additional info kept per connection */ +struct conn_info { + Bool wasactive; /* was this connection active over the interval? */ + Bool wasopen; /* was this this connection EVER open? */ + Bool isopen; /* is this connection open now? */ + Bool islong; /* is this a long-duration connection? */ + Bool halfopen; /* for half open conns */ + struct traffic_info *pti1; /* pointer to the port info for this one */ + struct traffic_info *pti2; /* pointer to the port info for this one */ + struct conn_info *next; /* next in the chain */ + + u_int last_dupacks; /* last value of dupacks I saw */ + u_int last_rexmits; /* last value of rexmits I saw */ + u_int last_rtts; /* last value of rtt counters I saw */ +}; +static struct conn_info *connhead = NULL; + + + +/* plotter files that we keep open */ +static PLOTTER plotter_bytes; +static PLOTTER plotter_packets; +static PLOTTER plotter_active; +static PLOTTER plotter_idle; +static PLOTTER plotter_open; +static PLOTTER plotter_openclose; +static PLOTTER plotter_i_open; +static PLOTTER plotter_loss; +static PLOTTER plotter_long; +static PLOTTER plotter_rtt; +static PLOTTER plotter_halfopen; +static PLOTTER plotter_pureacks; +static PLOTTER plotter_data; + +#define PLOTTER_BYTES_FILENAME "traffic_bytes.xpl" +#define PLOTTER_PACKETS_FILENAME "traffic_packets.xpl" +#define PLOTTER_ACTIVE_FILENAME "traffic_active.xpl" +#define PLOTTER_OPEN_FILENAME "traffic_open.xpl" +#define PLOTTER_OPENCLOSE_FILENAME "traffic_openclose.xpl" +#define PLOTTER_I_OPEN_FILENAME "traffic_i_open.xpl" +#define PLOTTER_LOSS_FILENAME "traffic_loss.xpl" +#define PLOTTER_LONG_FILENAME "traffic_long.xpl" +#define PLOTTER_RTT_FILENAME "traffic_rtt.xpl" +#define PLOTTER_HALFOPEN_FILENAME "traffic_halfopen.xpl" +#define PLOTTER_PUREACKS_FILENAME "traffic_pureacks.xpl" +#define PLOTTER_IDLE_FILENAME "traffic_idle.xpl" +#define PLOTTER_DATA_FILENAME "traffic_data.xpl" + +/* argument flags */ +static float age_interval = 15.0; /* 15 seconds by default */ +static Bool doplot_bytes = FALSE; +static Bool doplot_packets = FALSE; +static Bool doplot_active = FALSE; +static Bool doplot_open = FALSE; +static Bool doplot_openclose = FALSE; +static Bool doplot_i_open = FALSE; +static Bool doplot_loss = FALSE; +static Bool doplot_long = FALSE; +static Bool doplot_rtt = FALSE; +static Bool doplot_halfopen = FALSE; +static Bool doplot_pureacks = FALSE; +static Bool doplot_idle = FALSE; +static Bool doplot_data = FALSE; +static int longconn_duration = 60; + + +/* local routines */ +static struct traffic_info *MakeTrafficRec(u_short port); +static void MakeTrafficLines(struct traffic_info *pti); +static struct conn_info *MakeConnRec(void); +static void AgeTraffic(void); +static struct traffic_info *FindPort(u_short port); +static void IncludePorts(unsigned firstport, unsigned lastport); +static void ExcludePorts(unsigned firstport, unsigned lastport); +static void CheckPortNum(unsigned portnum); +static char *PortName(int port); +static void ParseArgs(char *argstring); +static void DoplotIOpen(int port, Bool fopen); + + +/* info for opens and closes graphs */ +static PLINE line_num_closes; +static PLINE line_num_opens; +static PLINE line_open_conns; +static PLINE line_num_halfopens; +static int num_closes = 0; +static int num_opens = 0; +static int ttl_num_opens = 0; +static int ttl_num_closes = 0; +static int open_conns = 0; +static int num_halfopens = 0; + +/* info for total byte counters */ +static PLINE line_data_nonrexmit; +static PLINE line_data_all; +static u_llong data_nbytes_nonrexmit; +static u_llong data_nbytes_all; + +/* info for the loss events graph */ +static PLINE line_dupacks; +static PLINE line_rexmits; +static u_long dupacks; +static u_long ttl_dupacks; +static u_long rexmits; +static u_long ttl_rexmits; + +/* info for the RTT graph */ +static PLINE line_rtt_avg; +static PLINE line_rtt_min; +static PLINE line_rtt_max; +static float rtt_ttl; /* in msecs */ +static float ttl_rtt_ttl; /* in msecs */ +static int rtt_min = -1; /* in msecs */ +static int rtt_max = -1; /* in msecs */ +static int rtt_samples; +static int ttl_rtt_samples; +static u_int rtt_minvalid = 0; /* minimum RTT to consider (ms) */ +static u_int rtt_maxvalid = 0xffffffff; /* maximum RTT to consider (ms) */ + + +/* local debugging flag */ +static int ldebug = 0; + + +static void +CheckPortNum( + unsigned portnum) +{ + if (portnum >= NUM_PORTS) { + fprintf(stderr,"mod_traffic: Invalid port number '%d'\n", portnum); + traffic_usage(); + exit(-1); + } +} + + +static void +ExcludePorts( + unsigned firstport, + unsigned lastport) +{ + CheckPortNum(firstport); + CheckPortNum(lastport); + + if (ldebug) + printf("mod_traffic: excluding ports [%d-%d]\n", firstport, lastport); + + while (firstport <= lastport) + ports[firstport++] = EXCLUDE_PORT; +} + + +static void +IncludePorts( + unsigned firstport, + unsigned lastport) +{ + CheckPortNum(firstport); + CheckPortNum(lastport); + + if (ldebug) + printf("mod_traffic: including ports [%d-%d]\n", firstport, lastport); + + while (firstport <= lastport) + ports[firstport++] = INCLUDE_PORT; +} + + + +/* Mostly as a module example, here's a plug in that records TRAFFIC info */ +int +traffic_init( + int argc, + char *argv[]) +{ + int i; + int enable=0; + char *args = NULL; + + for (i=1; i < argc; ++i) { + if (!argv[i]) + continue; /* argument already taken by another module... */ + if (strncmp(argv[i],"-x",2) == 0) { + if (strncasecmp(argv[i]+2,"traffic",sizeof("traffic")-1) == 0) { + /* I want to be called */ + args = argv[i]+(sizeof("-xtraffic")-1); + enable = 1; + printf("mod_traffic: characterizing traffic\n"); + argv[i] = NULL; + } + } + } + + if (!enable) + return(0); /* don't call me again */ + + /* init the data storage structure */ + ports = MallocZ(NUM_PORTS*sizeof(struct traffic_info *)); + + ports[0] = MakeTrafficRec(0); + + /* parse the encoded args */ + ParseArgs(args); + + /* open the output files */ + if (doplot_packets) + plotter_packets = + new_plotter(NULL, + PLOTTER_PACKETS_FILENAME, + "packets per second over time by port", + "time","packets/second", + NULL); + if (doplot_bytes) + plotter_bytes = + new_plotter(NULL, + PLOTTER_BYTES_FILENAME, + "bytes per second over time by port", + "time","bytes/second", + NULL); + if (doplot_active) + plotter_active = + new_plotter(NULL, + PLOTTER_ACTIVE_FILENAME, + "active connections over time by port", + "time","active connections", + NULL); + if (doplot_idle) + plotter_idle = + new_plotter(NULL, + PLOTTER_IDLE_FILENAME, + "idle connections over time by port", + "time","idle connections", + NULL); + if (doplot_open) + plotter_open = + new_plotter(NULL, + PLOTTER_OPEN_FILENAME, + "open connections over time by port", + "time","open connections", + NULL); + if (doplot_i_open) + plotter_i_open = + new_plotter(NULL, + PLOTTER_I_OPEN_FILENAME, + "open connections over time by port - instantaneous", + "time","number of connections", + NULL); + if (doplot_openclose) { + plotter_openclose = + new_plotter(NULL, + PLOTTER_OPENCLOSE_FILENAME, + "connections opened and closed over time", + "time","number of connections", + NULL); + line_num_opens = new_line(plotter_openclose, "Number Opens", "green"); + line_num_closes = new_line(plotter_openclose, "Number Closes", "red"); + line_open_conns = new_line(plotter_openclose, "Total Open", "blue"); + } + if (doplot_halfopen) { + plotter_halfopen = + new_plotter(NULL, + PLOTTER_HALFOPEN_FILENAME, + "half open connections over time", + "time","number of half open connections", + NULL); + line_num_halfopens = new_line(plotter_halfopen, + "Halfopen Conns", "green"); + } + if (doplot_pureacks) { + plotter_pureacks = + new_plotter(NULL, + PLOTTER_PUREACKS_FILENAME, + "pure acks (no data) per second over time", + "time","pureacks/second", + NULL); + } + + if (doplot_loss) { + plotter_loss = + new_plotter(NULL, + PLOTTER_LOSS_FILENAME, + "packet loss per second over time", + "time","events/second", + NULL); + line_dupacks = new_line(plotter_loss, "Triple Dupacks", "yellow"); + line_rexmits = new_line(plotter_loss, "Retransmits", "blue"); + } + + if (doplot_rtt) { + plotter_rtt = + new_plotter(NULL, + PLOTTER_RTT_FILENAME, + "RTT over time", + "time","RTT (msecs)", + NULL); + line_rtt_min = new_line(plotter_rtt, "Min RTT", "green"); + line_rtt_max = new_line(plotter_rtt, "Max RTT", "red"); + line_rtt_avg = new_line(plotter_rtt, "Average RTT", "blue"); + } + + if (doplot_data) { + plotter_data = + new_plotter(NULL, + PLOTTER_DATA_FILENAME, + "Total Data Sent Over Time", + "time","total bytes", + NULL); + line_data_all = new_line(plotter_data, "All Data", "blue"); + line_data_nonrexmit = new_line(plotter_data, "Non-Rexmitted Data", "red"); + } + + if (doplot_long) { + char title[100]; + snprintf(title,sizeof(title),"connections still open after %d seconds\n", + longconn_duration); + plotter_long = + new_plotter(NULL, + PLOTTER_LONG_FILENAME, + title, + "time","number of connections", + NULL); + } + + /* we don't want the normal output */ + printsuppress = TRUE; + + /* create any lines that I want to draw */ + MakeTrafficLines(ports[0]); + + /* init the graphs and etc... */ + AgeTraffic(); + + return(1); /* TRUE means call traffic_read and traffic_done later */ +} + + +/* return the record for traffic on this port */ +static struct traffic_info * +FindPort( + u_short port) +{ + struct traffic_info *pti; + + /* port "0" means "all", but we don't need to treat it as a special case */ + + /* see what's there now */ + pti = ports[port]; + + /* see if it's "excluded" */ + if ((port != 0) && (pti == EXCLUDE_PORT)) + return(NULL); + + /* make a new one if there's a NULL there */ + if (!pti) { + pti = MakeTrafficRec(port); + /* create any lines that I want to draw */ + MakeTrafficLines(pti); + } + + return(pti); +} + + + + + +static struct traffic_info * +MakeTrafficRec( + u_short port) +{ + struct traffic_info *pti; + + pti = MallocZ(sizeof(struct traffic_info)); + + if (ldebug>10) + printf("MakeTrafficRec(%d) called\n", (int)port); + + /* init */ + pti->port = port; + + /* chain it in (at head of list) */ + pti->next = traffichead; + traffichead = pti; + + /* add to lookup array */ + ports[port] = pti; + + return(pti); +} + + +static void +MakeTrafficLines( + struct traffic_info *pti) +{ + char *portname; + static int nextcolor = 0; + + /* map port number to name for printing */ + portname = (pti->port==0)?"total":strdup(PortName(pti->port)); + + /* pick color */ + pti->color = ColorNames[nextcolor % NCOLORS]; + ++nextcolor; + + /* create the lines that we sometimes use */ + if (doplot_bytes) + pti->line_nbytes = new_line(plotter_bytes, portname, pti->color); + if (doplot_packets) + pti->line_npackets = new_line(plotter_packets, portname, pti->color); + if (doplot_active) + pti->line_nactive = new_line(plotter_active, portname, pti->color); + if (doplot_idle) + pti->line_nidle = new_line(plotter_idle, portname, pti->color); + if (doplot_open) + pti->line_nopen = new_line(plotter_open, portname, pti->color); + if (doplot_long) + pti->line_nlong = new_line(plotter_long, portname, pti->color); + if (doplot_i_open) + pti->line_niopen = new_line(plotter_i_open, portname, pti->color); + if (doplot_pureacks) + pti->line_pureacks = new_line(plotter_pureacks, portname, pti->color); +} + + + +static struct conn_info * +MakeConnRec(void) +{ + struct conn_info *pci; + + pci = MallocZ(sizeof(struct conn_info)); + + /* chain it in (at head of list) */ + pci->next = connhead; + connhead = pci; + + return(pci); +} + + +void +traffic_read( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* past byte in the packet */ + void *mod_data) /* connection info for this one */ +{ + struct tcphdr *ptcp = (struct tcphdr *) ((char *)pip + 4*IP_HL(pip)); + struct traffic_info *pti1 = FindPort(ntohs(ptcp->th_sport)); + struct traffic_info *pti2 = FindPort(ntohs(ptcp->th_dport)); + u_long bytes = ntohs(pip->ip_len); + static timeval last_time = {0,0}; + struct conn_info *pci = mod_data; + int was_rexmit = 0; + + /* if neither port is interesting, then ignore this one */ + if (!pti1 && !pti2) { + return; + } + + /* OK, this connection is now active */ + pci->wasactive = 1; + + /* check to see if it's really "open" (traffic in both directions) */ + if (!pci->wasopen) { + if ((ptp->a2b.packets > 0) && (ptp->b2a.packets > 0)) { + /* bidirectional: OK, we'll call it open */ + pci->wasopen = 1; + pci->isopen = 1; + ++num_opens; + ++ttl_num_opens; + ++open_conns; + + /* instantaneous opens and closes */ + if (doplot_i_open) { + DoplotIOpen(ntohs(ptcp->th_dport), TRUE); + DoplotIOpen(ntohs(ptcp->th_sport), TRUE); + DoplotIOpen(0, TRUE); + } + } + } + + /* add to port-specific counters */ + if (pti1) { + pti1->nbytes += bytes; + pti1->npackets += 1; + } + if (pti2) { + pti2->nbytes += bytes; + pti2->npackets += 1; + } + + /* add to GLOBAL counters */ + ports[0]->nbytes += bytes; + ports[0]->npackets += 1; + ports[0]->npureacks += 1; + + /* see if we're closing it */ + if (RESET_SET(ptcp) || + (FIN_SET(ptcp) && /* find in BOTH directions */ + ((ptp->a2b.fin_count>0) && (ptp->b2a.fin_count>0)))) { + if (pci->isopen) { + pci->isopen = 0; + ++num_closes; + --open_conns; + + /* instantaneous opens and closes */ + if (doplot_i_open) { + DoplotIOpen(ntohs(ptcp->th_dport), FALSE); + DoplotIOpen(ntohs(ptcp->th_sport), FALSE); + DoplotIOpen(0, FALSE); + } + } + } + + /* half open conns */ + if (FIN_SET(ptcp)) { + if ((ptp->a2b.fin_count>0) && (ptp->b2a.fin_count>0)) { + if (pci->halfopen) { + /* fully closed now */ + --num_halfopens; + pci->halfopen = 0; + } + } else if (!pci->halfopen) { + /* half open now */ + ++num_halfopens; + pci->halfopen = 1; + } + } + + /* check losses */ + if (pci->last_dupacks != ptp->a2b.rtt_triple_dupack+ + ptp->b2a.rtt_triple_dupack) { + pci->last_dupacks = ptp->a2b.rtt_triple_dupack+ + ptp->b2a.rtt_triple_dupack; + ++dupacks; + ++ttl_dupacks; + } + if (pci->last_rexmits != ptp->a2b.rexmit_pkts+ptp->b2a.rexmit_pkts) { + pci->last_rexmits = ptp->a2b.rexmit_pkts+ptp->b2a.rexmit_pkts; + was_rexmit = 1; + ++rexmits; + ++ttl_rexmits; + } + + + /* add to total data counters */ + data_nbytes_all += bytes; + if (!was_rexmit) + data_nbytes_nonrexmit += bytes; + + + /* RTT stats */ + if (ACK_SET(ptcp)) { + tcb *ptcb; + int rtt; + + /* see which of the 2 TCB's this goes with */ + if (ptp->addr_pair.a_port == ntohs(ptcp->th_dport)) + ptcb = &ptp->a2b; + else + ptcb = &ptp->b2a; + + /* check the rtt counter of the last sample */ + rtt = ptcb->rtt_last / 1000.0; + + if ((pci->last_rtts != ptcb->rtt_count + ptcb->rtt_amback) && + (ptcb->rtt_last != 0.0) && + (rtt > rtt_minvalid) && (rtt <= rtt_maxvalid)) { + + /* sample is only valid when one of these counters is higher */ + pci->last_rtts = ptcb->rtt_count + ptcb->rtt_amback; + + /* keep stats */ + rtt_ttl += rtt; + ttl_rtt_ttl += rtt; + ++rtt_samples; + ++ttl_rtt_samples; + + /* also, remember min and max */ + if ((rtt_max == -1) || (rtt_max < rtt)) + rtt_max = rtt; + if ((rtt_min == -1) || (rtt_min > rtt)) + rtt_min = rtt; + + if (ldebug > 9) + printf("Rtt: %d, min:%d, max:%d\n", + rtt, rtt_min, rtt_max); + } + } + + + /* see if this is now "long duration" */ + if (!pci->islong) { + int etime_msecs = elapsed(ptp->first_time,current_time); + if (etime_msecs/1000000 > longconn_duration) { + pci->islong = 1; + } + } + + /* count "pure acks" (no data) */ + if (ACK_SET(ptcp)) { + int tcp_length, tcp_data_length; + tcp_length = getpayloadlength(pip, plast); + tcp_data_length = tcp_length - (4 * TH_OFF(ptcp)); + if (tcp_data_length == 0) { + if (pti1) { + ++pti1->npureacks; + } + if (pti2) { + ++pti2->npureacks; + } + } + } + + + /* determine elapsed time and age the samples */ + if (elapsed(last_time,current_time)/1000000.0 > age_interval) { + AgeTraffic(); + last_time = current_time; + } +} + + +static char * +PortName( + int port) +{ + static char buf[20]; + + if (port == 0) + return("total"); + + snprintf(buf,sizeof(buf),"%d",port); + return(buf); +} + + +static void +AgeTraffic(void) +{ + struct traffic_info *pti; + struct conn_info *pci; + static timeval last_time = {0,0}; + float etime; + int ups; /* units per second */ + + /* first time doesn't count */ + if (ZERO_TIME(&last_time)) { + last_time = current_time; + return; + } + + /* check elapsed time */ + etime = elapsed(last_time, current_time); + if (ldebug>1) + printf("AgeTraffic called, elapsed time is %.3f seconds\n", etime/1000000); + if (etime == 0.0) + return; + + /* roll the open/active/long connections into the port records */ + for (pci=connhead; pci; pci=pci->next) { + if (pci->wasactive) { + if (pci->pti1) + ++pci->pti1->nactive; + if (pci->pti2) + ++pci->pti2->nactive; + pci->wasactive = 0; + ++ports[0]->nactive; + } + if (pci->isopen) { + if (pci->pti1) + ++pci->pti1->nopen; + if (pci->pti2) + ++pci->pti2->nopen; + ++ports[0]->nopen; + if (pci->islong) { + if (pci->pti1) + ++pci->pti1->nlong; + if (pci->pti2) + ++pci->pti2->nlong; + ++ports[0]->nlong; + } + + if (!pci->wasactive) { + /* open and !active ==> IDLE */ + if (pci->pti1) + ++pci->pti1->nidle; + if (pci->pti2) + ++pci->pti2->nidle; + ++ports[0]->nidle; + } + } + } + + + /* ============================================================ */ + /* plot halfopen conns */ + if (doplot_halfopen) { + /* draw lines */ + extend_line(line_num_halfopens,current_time, num_halfopens); + } + + + /* ============================================================ */ + /* plot connection activity */ + /* opens */ + if (doplot_openclose) { + /* draw lines */ + extend_line(line_num_opens,current_time, num_opens); + extend_line(line_num_closes,current_time, num_closes); + extend_line(line_open_conns,current_time, open_conns); + + /* reset interval counters */ + +// Counting ttl_num_opens instantaneously as and when num_opens is incremented, +// so that ttl_num_opens is printed properly in traffic_stats.dat even +// when the -C(openclose) option is not given. +// Hence commenting off the following line. - Mani, 4 Aug 2003. +// ttl_num_opens += num_opens; + ttl_num_closes += num_closes; + num_opens = 0; + num_closes = 0; + } + + + /* ============================================================ */ + /* report of loss events */ + if (doplot_loss) { + /* convert to events/second */ + /* sdo bugfix - Wed May 12, 1999 - round UP!! */ + dupacks = (dupacks+age_interval-1)/age_interval; + rexmits = (rexmits+age_interval-1)/age_interval; + + /* draw lines */ + extend_line(line_dupacks,current_time, dupacks); + extend_line(line_rexmits,current_time, rexmits); + + /* reset interval counters */ + dupacks = 0; + rexmits = 0; + } + + + /* ============================================================ */ + /* report of RTT */ + if (doplot_rtt && (rtt_samples > 0)) { + int rtt_avg; + + /* convert to average rtt */ + rtt_avg = (int)((rtt_ttl/(float)rtt_samples)); + + /* draw lines */ + extend_line(line_rtt_avg, current_time, rtt_avg); + if (rtt_min != -1) + extend_line(line_rtt_min, current_time, rtt_min); + if (rtt_max != -1) + extend_line(line_rtt_max, current_time, rtt_max); + + /* reset interval counters */ + rtt_ttl = 0; + rtt_samples = 0; + rtt_min = -1; + rtt_max = -1; + } + + + /* ============================================================ */ + /* report of total data */ + if (doplot_data) { + extend_line(line_data_all, current_time, data_nbytes_all); + extend_line(line_data_nonrexmit, current_time, data_nbytes_nonrexmit); + } + + /* ============================================================ */ + /* print them out */ + for (pti=traffichead; pti; pti=pti->next) { + if (ldebug>1) + printf(" Aging Port %u bytes: %lu packets: %lu\n", + pti->port, pti->nbytes, pti->npackets); + + /* plot bytes */ + if (doplot_bytes) { + /* convert to units per second */ + ups = (int)((float)pti->nbytes * 1000000.0 / etime); + + /* plot it */ + extend_line(pti->line_nbytes,current_time, ups); + } + + /* plot packets */ + if (doplot_packets) { + /* convert to units per second */ + ups = (int)((float)pti->npackets * 1000000.0 / etime); + + /* plot it */ + extend_line(pti->line_npackets,current_time, ups); + } + + + + /* plot active connections */ + if (doplot_active) { + /* plot it */ + extend_line(pti->line_nactive,current_time, pti->nactive); + } + + /* plot idle connections */ + if (doplot_idle) { + /* plot it */ + extend_line(pti->line_nidle,current_time, pti->nidle); + } + + + /* plot open connections */ + if (doplot_open) { + /* plot it */ + extend_line(pti->line_nopen,current_time, pti->nopen); + } + + /* plot long-duration */ + if (doplot_long) { + extend_line(pti->line_nlong,current_time, pti->nlong); + } + + /* plot pureacks */ + if (doplot_pureacks) { + /* convert to units per second */ + ups = (int)((float)pti->npureacks * 1000000.0 / etime); + + extend_line(pti->line_pureacks, current_time, ups); + } + } + + /* zero them out */ + for (pti=traffichead; pti; pti=pti->next) { + pti->ttlbytes += pti->nbytes; + pti->ttlpackets += pti->npackets; + pti->ttlpureacks += pti->npureacks; + + pti->nbytes = 0; + pti->nlong = 0; + pti->npackets = 0; + pti->nactive = 0; + pti->nidle = 0; + pti->nopen = 0; + pti->npureacks = 0; + } + + last_time = current_time; +} + + +void +traffic_done(void) +{ + struct traffic_info *pti; + struct conn_info *pci; + double etime = elapsed(first_packet,last_packet); + int etime_secs = etime / 1000000.0; + MFILE *pmf; + int i; + + /* roll the active connections into the port records */ + for (pci=connhead; pci; pci=pci->next) { + if (pci->pti1) + ++pci->pti1->ttlactive; + if (pci->pti2) + ++pci->pti2->ttlactive; + ++ports[0]->ttlactive; + } + + AgeTraffic(); + + pmf = Mfopen(PORT_FILENAME,"w"); + printf("Dumping port statistics into file %s\n", PORT_FILENAME); + + /* dump out the data */ + Mfprintf(pmf,"Overall totals by port\n"); + for (i=0; i < NUM_PORTS; ++i) { + pti = ports[i]; + if ((pti != EXCLUDE_PORT) && (pti != INCLUDE_PORT)) { + if (i == 0) + Mfprintf(pmf,"TOTAL "); + else + Mfprintf(pmf,"Port %5u ", pti->port); + Mfprintf(pmf,"\ +bytes: %12lu pkts: %10lu conns: %8lu tput: %8lu B/s\n", + pti->ttlbytes, + pti->ttlpackets, + pti->ttlactive, + pti->ttlbytes / etime_secs); + } + } + Mfclose(pmf); + + /* dump specific stats */ + pmf = Mfopen(STATS_FILENAME,"w"); + printf("Dumping overall statistics into file %s\n", STATS_FILENAME); + + pti = ports[0]; + + Mfprintf(pmf, "\n\nOverall Statistics over %d seconds (%s):\n", + etime_secs, elapsed2str(etime)); + + /* ttl bytes */ + Mfprintf(pmf, "%" FS_ULL " ttl bytes sent, %.3f bytes/second\n", + data_nbytes_all, + (float)data_nbytes_all / ((float)etime_secs)); + + /* ttl bytes (nonrexmit)*/ + Mfprintf(pmf, "%" FS_ULL " ttl non-rexmit bytes sent, %.3f bytes/second\n", + data_nbytes_nonrexmit, + (float)data_nbytes_nonrexmit / ((float)etime_secs)); + + /* ttl bytes (nonrexmit)*/ + Mfprintf(pmf, "%" FS_ULL " ttl rexmit bytes sent, %.3f bytes/second\n", + data_nbytes_all - data_nbytes_nonrexmit, + (float)(data_nbytes_all - data_nbytes_nonrexmit) / + ((float)etime_secs)); + + /* ttl packets */ + Mfprintf(pmf, "%u packets sent, %.3f packets/second\n", + pti->ttlpackets, + (float)pti->ttlpackets / ((float)etime_secs)); + + /* connections opened */ + Mfprintf(pmf, "%u connections opened, %.3f conns/second\n", + ttl_num_opens, + (float)ttl_num_opens / ((float)etime_secs)); + + /* dupacks */ + Mfprintf(pmf, "%u dupacks sent, %.3f dupacks/second\n", + ttl_dupacks, + (float)ttl_dupacks / ((float)etime_secs)); + + /* rexmits */ + Mfprintf(pmf, "%u rexmits sent, %.3f rexmits/second\n", + ttl_rexmits, + (float)ttl_rexmits / ((float)etime_secs)); + + /* RTT */ + Mfprintf(pmf, "average RTT: %.3f msecs\n", + ttl_rtt_ttl / (float)ttl_rtt_samples); + + + Mfclose(pmf); + + printf("Plotting performed at %.3f second intervals\n", age_interval); + +} + + + + +void * +traffic_newconn( + tcp_pair *ptp) +{ + struct conn_info *pci; + + pci = MakeConnRec(); + pci->pti1 = FindPort(ptp->addr_pair.a_port); + pci->pti2 = FindPort(ptp->addr_pair.b_port); + + return(pci); +} + + +void +traffic_usage(void) +{ + printf("\t-xtraffic\"[ARGS]\"\tprint info about overall traffic\n"); + printf("\ +\t module argument format:\n\ +\t -iS set statistics interval to S (float) seconds, default 15.0\n\ +\t -pP include information on port P\n\ +\t -pP1-P2 include information on ports in the range [P1-P2]\n\ +\t -p-P exclude information on port P\n\ +\t -p-P1-P2 exclude information on ports in the range [P1-P2]\n\ +\t -pSPEC,SPEC commas chain together specs\n\ +\t -G generate all graphs\n\ +\t -A generate the 'active connections' graph\n\ +\t -B generate the 'bytes per second' graph\n\ +\t -C generate the 'opens and closes' graph\n\ +\t -H generate the 'halfopen connections' graph\n\ +\t -K generate the 'pure acKs/second' graph\n\ +\t -L generate the 'losses per second' graph\n\ +\t -O generate the 'open connections' graph\n\ +\t -I generate the 'instantaneous open connections' graph\n\ +\t -P generate the 'packets per second' graph\n\ +\t -Q generate the 'idle (Quiet) connections' graph\n\ +\t -R[MIN[-MAX]]generate the 'round trip time' graph\n\ +\t with args, ignore samples outside MIN to MAX (in ms)\n\ +\t -T generate the 'total data' graph\n\ +\t -D[SECS] generate the 'long duration connection' graph\n\ +\t default definition of 'long' is 60 seconds\n\ +\t -d enable local debugging in this module\n\ +\t Examples\n\ +\t -xtraffic\" -p23\" only port 23\n\ +\t -xtraffic\" -p1-1023\" only ports 1-1023\n\ +\t -xtraffic\"-p1-1023,-10-20 -L -O\" only ports 1-1023, but exclude ports 10-20\n\ +\t With no ports specification, all ports are gathered. With ANY\n\ +\t spec, all ports are initially EXCLUDED\n\ +"); +} + +static void +ParseArgs(char *argstring) +{ + int argc; + char **argv; + static int excluded = 0; + int i; + char *pch; + + /* make sure there ARE arguments */ + if (!(argstring && *argstring)) + return; + + /* break the string into normal arguments */ + StringToArgv(argstring,&argc,&argv); + + /* check the module args */ + for (i=1; i < argc; ++i) { + float interval; + if (ldebug > 1) + printf("Checking argv[%d]: '%s'\n", i, argv[i]); + if (strcmp(argv[i],"-d") == 0) { + ++ldebug; + } else if (sscanf(argv[i],"-i%f", &interval) == 1) { + age_interval = interval; + if (ldebug) + printf("mod_traffic: setting age interval to %.3f seconds\n", + age_interval); + } else if (strcmp(argv[i],"-G") == 0) { + doplot_active = TRUE; + doplot_idle = TRUE; + doplot_data = TRUE; + doplot_bytes = TRUE; + doplot_loss = TRUE; + doplot_long = TRUE; + doplot_open = TRUE; + doplot_halfopen = TRUE; + doplot_openclose = TRUE; + doplot_i_open = TRUE; + doplot_packets = TRUE; + doplot_pureacks = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating all graphs\n"); + } else if (strcmp(argv[i],"-A") == 0) { + doplot_active = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'active' graph into '%s'\n", + PLOTTER_ACTIVE_FILENAME); + } else if (strcmp(argv[i],"-B") == 0) { + doplot_bytes = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'bytes' graph into '%s'\n", + PLOTTER_BYTES_FILENAME); + } else if (strcmp(argv[i],"-H") == 0) { + doplot_halfopen = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'halfopen' graph into '%s'\n", + PLOTTER_HALFOPEN_FILENAME); + } else if (strcmp(argv[i],"-Q") == 0) { + doplot_idle = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'idle' graph into '%s'\n", + PLOTTER_IDLE_FILENAME); + } else if (strcmp(argv[i],"-K") == 0) { + doplot_pureacks = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'pureacks' graph into '%s'\n", + PLOTTER_PUREACKS_FILENAME); + } else if (strcmp(argv[i],"-L") == 0) { + doplot_loss = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'loss' graph into '%s'\n", + PLOTTER_LOSS_FILENAME); + } else if (strcmp(argv[i],"-T") == 0) { + doplot_data = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'total data' graph into '%s'\n", + PLOTTER_DATA_FILENAME); + } else if (strncmp(argv[i],"-D",2) == 0) { + doplot_long = TRUE; + if (strlen(argv[i]) > 2) { + /* grab the number */ + longconn_duration = atoi(argv[i]+2); + if (longconn_duration <= 0) { + fprintf(stderr,"bad time value for -LN '%s'\n", + argv[i]); + exit(-1); + } + + } + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'long duration' graph (%d secs) into '%s'\n", + longconn_duration, + PLOTTER_LONG_FILENAME); + } else if (strcmp(argv[i],"-O") == 0) { + doplot_open = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'open' graph into '%s'\n", + PLOTTER_OPEN_FILENAME); + } else if (strcmp(argv[i],"-C") == 0) { + doplot_openclose = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'openclose' graph into '%s'\n", + PLOTTER_OPENCLOSE_FILENAME); + } else if (strcmp(argv[i],"-I") == 0) { + doplot_i_open = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'instantaneous openclose' graph into '%s'\n", + PLOTTER_I_OPEN_FILENAME); + } else if (strcmp(argv[i],"-P") == 0) { + doplot_packets = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'packets' graph into '%s'\n", + PLOTTER_PACKETS_FILENAME); + } else if (strncmp(argv[i],"-R",2) == 0) { + int nargs; + doplot_rtt = TRUE; + if (ldebug) + fprintf(stderr, + "mod_traffic: generating 'rtt' graph into '%s'\n", + PLOTTER_RTT_FILENAME); + /* check for valid RTT range args */ + nargs = sscanf(argv[i],"-R%d-%d", &rtt_minvalid, + &rtt_maxvalid); + switch (nargs) { + case 2: { /* 2 args is min and max */ + /* sanity check */ + if (rtt_maxvalid <= rtt_minvalid) { + fprintf(stderr, + "mod_traffic: Out of order min-max range for -R '%s'\n", + argv[i]); + traffic_usage(); + exit(-1); + } + break; + } + case 1: { /* 1 args in min rtt */ + /* sanity check */ + if (rtt_maxvalid <= rtt_minvalid) { + fprintf(stderr, + "mod_traffic: Out of order min-max range for -R '%s'\n", + argv[i]); + traffic_usage(); + exit(-1); + } + break; + } + case 0: /* no args, that's OK */ + case -1: /* (means the same as 0) */ + break; + default: /* illegal args */ + fprintf(stderr, + "mod_traffic: Invalid min-max range for -R '%s'\n", + argv[i]); + traffic_usage(); + exit(-1); + break; + } + } else if (strncmp(argv[i],"-p",2) == 0) { + pch = argv[i]+2; + while (pch && *pch) { + char *pch_next; + unsigned port1, port2; + + if ((pch_next = strchr(pch,',')) != NULL) { + *pch_next = '\00'; + ++pch_next; + } + + if (!excluded) { + ExcludePorts(1,NUM_PORTS-1); + excluded = 1; + } + + if (sscanf(pch,"-%u-%u", &port1, &port2) == 2) { + ExcludePorts(port1,port2); + } else if (sscanf(pch,"%u-%u", &port1, &port2) == 2) { + IncludePorts(port1,port2); + } else if (sscanf(pch,"-%u", &port1) == 1) { + ExcludePorts(port1,port1); + } else if (sscanf(pch,"%u", &port1) == 1) { + IncludePorts(port1,port1); + } else { + fprintf(stderr,"mod_traffic: Invalid port specification string '%s'\n", pch); + traffic_usage(); + exit(-1); + } + + pch = pch_next; + } + } else { + fprintf(stderr,"Traffic module: bad argument '%s'\n", + argv[i]); + exit(-1); + } + } +} + +static void +DoplotIOpen(int port, Bool fopen) +{ + struct traffic_info *pti; + + /* just for this port */ + if ((pti = FindPort(port)) == NULL) + return; + + if (fopen) + ++pti->n_i_open; + else + --pti->n_i_open; + + extend_line(pti->line_niopen, current_time, pti->n_i_open); +} + +#endif /* LOAD_MODULE_TRAFFIC */ diff --git a/mod_traffic.h b/mod_traffic.h new file mode 100644 index 0000000..fc3e54f --- /dev/null +++ b/mod_traffic.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_traffic[] = + "@(#)$Header: /usr/local/cvs/tcptrace/mod_traffic.h,v 5.4 2003/11/19 14:38:07 sdo Exp $"; + + +/* header file for traffic.c */ +int traffic_init(int argc, char *argv[]); +void traffic_read(struct ip *pip, tcp_pair *ptp, void *plast, void *pmod_data); +void traffic_done(void); +void traffic_usage(void); +void *traffic_newconn(tcp_pair *ptp); diff --git a/modules.h b/modules.h new file mode 100644 index 0000000..1546f51 --- /dev/null +++ b/modules.h @@ -0,0 +1,283 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_modules[] = + "$Header: /usr/local/cvs/tcptrace/modules.h,v 5.7 2004/03/04 20:33:56 mramadas Exp $"; + + +/* + * modules.h -- Definitions for plug-in modules + */ + + +/* For a registered module, enter its info into the following structures */ + +struct module { + /* is this module being called? */ + Bool module_inuse; + + /* The SHORT name of the module, just for debugging */ + char *module_name; + + /* The LONG description of the module, just for debugging */ + char *module_descr; + + /* Init routine, called immediately at start-up time */ + /* I'll pass you the argc and argv from the program invocation, */ + /* delete any args you want (just make the pointer NULL) */ + /* If you return TRUE, I'll call the other functions later, else */ + /* I won't. */ + int (*module_init) (int argc, char *argv[]); + + /* TCP Reading routine, for each packet grabbed, I'll pass you the */ + /* TCP structure and the IP packet itself (in */ + /* host byte order). */ + void (*module_read) ( + struct ip *pip, /* the packet */ + tcp_pair *ptp, /* info I have about this connection */ + void *plast, /* pointer to last byte */ + void *pmodstruct); /* module-specific structure */ + + /* Finish up routine. Called after tcpdump is finished printing. */ + void (*module_done) (void); + + /* Usage message additions */ + void (*module_usage)(void); + + /* If you want to be called as each file is processed */ + void (*module_newfile)( + char *filename, /* the name of the current file */ + u_long filesize, /* number of bytes in file (might be compressed) */ + Bool fcompressed); /* is the file compressed? */ + + /* If you want to be called for each new connection */ + /* If you want to attach a module-specifi structure to this */ + /* tcp_pair, return its address and I'll hand it back to */ + /* you with each read, otherwise return NULL */ + void *(*module_newconn)( + tcp_pair *ptp); /* info I have about this connection */ + + /* UDP Reading routine, for each packet grabbed, I'll pass you the */ + /* UDP structure and the IP packet itself (in */ + /* host byte order). */ + void (*module_udp_read) ( + struct ip *pip, /* the packet */ + udp_pair *pup, /* info I have about this connection */ + void *plast, /* pointer to last byte */ + void *pmodstruct); /* module-specific structure */ + + /* If you want to be called for each new UDP connection */ + /* If you want to attach a module-specifi structure to this */ + /* udp_pair, return its address and I'll hand it back to */ + /* you with each read, otherwise return NULL */ + void *(*module_udp_newconn)( + udp_pair *ptp); /* info I have about this connection */ + + /* Called for non-tcp packets. Tcptrace ignores them, but you */ + /* might want them */ + void (*module_nontcpudp_read) ( + struct ip *pip, /* the packet */ + void *plast); /* pointer to last byte */ + + /* Called for old TCP connections when they are deleted by */ + /* the real-time version of the program */ + void (*module_deleteconn) ( + tcp_pair *ptp, /* info I have about this connection */ + void *pmodstruct); /* module-specific structure */ +}; + + +/* module-specific header file (needs to give prototypes for the routines below) */ +#ifdef LOAD_MODULE_HTTP +#include "mod_http.h" /* for the HTTP package */ +#endif /* LOAD_MODULE_HTTP */ + + +#ifdef LOAD_MODULE_TCPLIB +#include "mod_tcplib.h" /* for the TCPLIB package */ +#endif /* LOAD_MODULE_TCPLIB */ + + +#ifdef LOAD_MODULE_TRAFFIC +#include "mod_traffic.h" /* for the traffic package */ +#endif /* LOAD_MODULE_TRAFFIC */ + + +#ifdef LOAD_MODULE_RTTGRAPH +#include "mod_rttgraph.h" /* for the rttgraph package */ +#endif /* LOAD_MODULE_RTTGRAPH */ + +#ifdef LOAD_MODULE_COLLIE +#include "mod_collie.h" /* for the collie package */ +#endif /* LOAD_MODULE_COLLIE */ + + +#ifdef LOAD_MODULE_SLICE +#include "mod_slice.h" /* for the slice package */ +#endif /* LOAD_MODULE_SLICE */ + + +#ifdef LOAD_MODULE_REALTIME +#include "mod_realtime.h" /* for the example real-time package */ +#endif /* LOAD_MODULE_REALTIME */ + +#ifdef LOAD_MODULE_INBOUNDS +#include "mod_inbounds.h" /* include the INBOUNDS module */ +#endif /* LOAD_MODULE_INBOUNDS */ + +/* declare (install) the various module routines */ +struct module modules[] = { +#ifdef LOAD_MODULE_HTTP + /* this example is for the HTTP module */ + {TRUE, /* make FALSE if you don't want to call it at all */ + "http", /* name of the module */ + "Http analysis package", /* description of the module */ + http_init, /* routine to call to init the module */ + http_read, /* routine to pass each TCP segment */ + http_done, /* routine to call at program end */ + http_usage, /* routine to call to print module usage */ + http_newfile, /* routine to call on each new file */ + http_newconn, /* routine to call on each new connection */ + NULL, NULL, NULL, NULL}, /* not interested in non-tcp */ +#endif /* LOAD_MODULE_HTTP */ + + /* list other modules here ... */ +#ifdef LOAD_MODULE_TCPLIB + /* this example is for the TCPLIB module */ + {TRUE, /* make FALSE if you don't want to call it at all */ + "tcplib", /* name of the module */ + "TCPLib analysis package", /* description of the module */ + tcplib_init, /* routine to call to init the module */ + tcplib_read, /* routine to pass each TCP segment */ + tcplib_done, /* routine to call at program end */ + tcplib_usage, /* routine to call to print module usage */ + tcplib_newfile, /* routine to call on each new file */ + tcplib_newconn, /* routine to call on each new connection */ + NULL, NULL, NULL, NULL}, /* not interested in non-tcp */ +#endif /* LOAD_MODULE_TCPLIB */ + + +#ifdef LOAD_MODULE_TRAFFIC + /* ttl traffic analysis */ + {TRUE, /* make FALSE if you don't want to call it at all */ + "traffic", "traffic analysis package", + traffic_init, traffic_read, traffic_done, + traffic_usage, NULL, traffic_newconn, NULL, NULL, NULL, NULL}, +#endif /* LOAD_MODULE_TRAFFIC */ + +#ifdef LOAD_MODULE_SLICE + /* ttl slice analysis */ + {TRUE, /* make FALSE if you don't want to call it at all */ + "slice", "traffic efficiency data by time slices", + slice_init, slice_read, slice_done, + slice_usage, NULL, slice_newconn, NULL, NULL, NULL, NULL}, +#endif /* LOAD_MODULE_SLICE */ + +#ifdef LOAD_MODULE_RTTGRAPH + {TRUE, /* make FALSE if you don't want to call it at all */ + "rttgraph", "round trip time analysis graphs", + rttgraph_init, /* routine to call to init the module */ + rttgraph_read, /* routine to pass each TCP segment */ + rttgraph_done, /* routine to call at program end */ + rttgraph_usage, /* routine to call to print module usage */ + NULL, /* routine to call on each new file */ + rttgraph_newconn, /* routine to call on each new connection */ + NULL, NULL, NULL, NULL}, /* not interested in non-tcp */ +#endif /* LOAD_MODULE_TRAFFIC */ + +#ifdef LOAD_MODULE_COLLIE + /* ttl collie analysis */ + {TRUE, /* make FALSE if you don't want to call it at all */ + "collie", "connection summary package", + collie_init, NULL /* read */, collie_done, + collie_usage, collie_newfile, collie_newconn, + NULL, collie_newudpconn, NULL, NULL}, +#endif /* LOAD_MODULE_COLLIE */ + +#ifdef LOAD_MODULE_REALTIME + {TRUE, /* make FALSE if you don't want to call it at all */ + "realtime", /* name of the module */ + "example real-time package",/* description of the module */ + realtime_init, /* routine to call to init the module */ + realtime_read, /* routine to pass each TCP segment */ + realtime_done, /* routine to call at program end */ + realtime_usage, /* routine to call to print module usage */ + NULL, /* routine to call on each new file */ + realtime_newconn, /* routine to call on each new connection */ + realtime_udp_read, /* routine to pass each UDP segment */ + NULL, /* routine to call on each new UDP conn */ + realtime_nontcpudp_read, /* routine to pass each non-tcp and non-udp + packets*/ + realtime_deleteconn}, +#endif /* LOAD_MODULE_REALTIME */ + +#ifdef LOAD_MODULE_INBOUNDS + {TRUE, /* make FALSE if you don't want to call it at all */ + "inbounds", /* name of the module */ + "INBOUNDS analysis package",/* description of the module */ + inbounds_init, /* routine to call to init the module */ + inbounds_tcp_read, /* routine to pass each TCP segment */ + inbounds_done, /* routine to call at program end */ + inbounds_usage, /* routine to call to print module usage */ + NULL, /* routine to call on each new file */ + inbounds_tcp_newconn, /* routine to call on each new connection */ + inbounds_udp_read, /* routine to pass each UDP segment */ + inbounds_udp_newconn, /* routine to call on each new UDP conn */ + inbounds_nontcpudp_read, /* routine to pass each non-tcp and non-udp + packets*/ + inbounds_tcp_deleteconn}, /* routine to remove TCP connections */ +#endif /* LOAD_MODULE_INBOUNDS */ + +}; +#define NUM_MODULES (sizeof(modules) / sizeof(struct module)) diff --git a/names.c b/names.c new file mode 100644 index 0000000..55988e4 --- /dev/null +++ b/names.c @@ -0,0 +1,239 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/names.c,v 5.9 2003/11/19 14:38:03 sdo Exp $"; + + +/* + * name.c -- name binding stuff + * + * Author: Shawn Ostermann + * Date: Tue Nov 1, 1994 + */ + +#include "gcache.h" + + +/* local routines */ + + +char * +ServiceName( + portnum port) +{ + static int cache = -1; + tcelen len; + struct servent *pse; + static char port_buf[20]; + char *sb_port; + + if (!resolve_ports) { + snprintf(port_buf,sizeof(port_buf),"%hu",port); + return(port_buf); + } + + /* only small numbers have names */ + if (port > 1023) { + snprintf(port_buf,sizeof(port_buf),"%hu",port); + return(port_buf); + } + + + /* check the cache */ + if (cache == -1) { + cache = cacreate("service",250,0); + } + len = sizeof(port_buf); + if (debug > 2) + fprintf(stderr,"Searching cache for service %d='%s'\n", + port, port_buf); + if (calookup(cache, + (char *) &port, (tcelen) sizeof(port), + (char *) port_buf, &len) == OK) { + if (debug > 2) + fprintf(stderr,"Found service %d='%s' in cache\n", + port, port_buf); + return(port_buf); + } + + + /* get port name as a string */ + pse = getservbyport(port,"tcp"); + if (pse != NULL) { + sb_port = pse->s_name; + } else { + snprintf(port_buf,sizeof(port_buf),"%d",port); + sb_port = port_buf; + } + if (debug > 2) + fprintf(stderr,"Putting service %d='%s' in cache\n", + port, sb_port); + cainsert(cache, + (char *) &port, (tcelen) sizeof(port), + (char *) sb_port, (tcelen) (strlen(sb_port)+1)); + + return(sb_port); +} + + +/* turn an ipaddr into a printable format */ +/* N.B. - result comes from static memory, save it before calling back! */ +char * +HostAddr( + ipaddr ipaddress) +{ + char *adr; + + if (ADDR_ISV6(&ipaddress)) { + static char adrv6[INET6_ADDRSTRLEN]; + my_inet_ntop(AF_INET6,(char *) ipaddress.un.ip6.s6_addr, + adrv6, INET6_ADDRSTRLEN); + adr = adrv6; + } else { + adr = inet_ntoa(ipaddress.un.ip4); + } + + return(adr); +} + + + +char * +HostName( + ipaddr ipaddress) +{ + tcelen len; + static int cache = -1; + struct hostent *phe; + char *sb_host; + static char name_buf[100]; + char *adr; + + adr = HostAddr(ipaddress); + + if (!resolve_ipaddresses) { + return(adr); + } + + /* check the cache */ + if (cache == -1) { + cache = cacreate("host",250,0); + } + len = sizeof(name_buf); + if (debug > 2) + fprintf(stderr,"Searching cache for host '%s'\n", + adr); + if (calookup(cache, + (char *) &ipaddress, (tcelen) sizeof(ipaddress), + (char *) name_buf, &len) == OK) { + if (debug > 2) + fprintf(stderr,"Found host %s='%s' in cache\n", + adr, name_buf); + return(name_buf); + } + + + if (ADDR_ISV6(&ipaddress)) + phe = gethostbyaddr ((char *)&ipaddress.un.ip6, + sizeof(ipaddress.un.ip6), AF_INET6); + else + phe = gethostbyaddr((char *)&ipaddress.un.ip4, + sizeof(ipaddress.un.ip4), AF_INET); + if (phe != NULL) { + sb_host = phe->h_name; + } else { + sb_host = adr; + } + + if (use_short_names) { + char *pdot; + + if ((pdot = strchr(sb_host,'.')) != NULL) { + *pdot = '\00'; /* chop off the end */ + } + } + + if (debug > 2) + fprintf(stderr,"Putting host %s='%s' in cache\n", + adr, sb_host); + + cainsert(cache, + (char *) &ipaddress, (tcelen)sizeof(ipaddress), + (char *) sb_host, (tcelen)(strlen(sb_host)+1)); + + return(sb_host); +} + + + +char * +EndpointName( + ipaddr ipaddress, + portnum port) +{ + static char name_buf[100]; + char *sb_host; + char *sb_port; + + sb_host = HostName(ipaddress); + sb_port = ServiceName(port); + + snprintf(name_buf,sizeof(name_buf),"%s:%s", sb_host, sb_port); + + return(name_buf); +} diff --git a/netm.c b/netm.c new file mode 100644 index 0000000..cfe0ca4 --- /dev/null +++ b/netm.c @@ -0,0 +1,277 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/netm.c,v 5.6 2003/11/19 14:38:03 sdo Exp $"; + + +/* + * netm.c - NetMetrix specific file reading stuff + */ + + + + +#ifdef GROK_NETM + +#define NETM_DUMP_OFFSET 0x1000 + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* netm file header format */ +struct netm_header { + int netm_key; + int version; +}; +#define NETM_VERSION_OLD 3 +#define NETM_VERSION_NEW 4 +#define NETM_KEY 0x6476 + + +/* netm packet header format */ +struct netm_packet_header_old { + int unused1; + int unused2; + int tstamp_secs; + int tstamp_usecs; + int tlen; + int len; +}; +struct netm_packet_header { + int unused1; + int tstamp_secs; + int tstamp_usecs; + int unused2; + int unused3; + int len; + int tlen; /* truncated length */ + int unused5; +}; + + +/* netm packet header format */ + +int netm_oldversion; + + +/* static buffers for reading */ +static struct ether_header *pep; +static int *pip_buf; + + +/* currently only works for ETHERNET */ +static int +pread_netm( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + int packlen; + int rlen; + struct netm_packet_header hdr; + int len; + int hlen; + + while (1) { + hlen = netm_oldversion? + (sizeof(struct netm_packet_header_old)): + (sizeof(struct netm_packet_header)); + + /* read the netm packet header */ + if ((rlen=fread(&hdr,1,hlen,SYS_STDIN)) != hlen) { + if (rlen != 0) + fprintf(stderr,"Bad netm header\n"); + return(0); + } + + packlen = ntohl(hdr.tlen); + /* round up to multiple of 4 bytes */ + len = (packlen + 3) & ~0x3; + + /* read the ethernet header */ + rlen=fread(pep,1,sizeof(struct ether_header),SYS_STDIN); + if (rlen != sizeof(struct ether_header)) { + fprintf(stderr,"Couldn't read ether header\n"); + return(0); + } + + /* read the rest of the packet */ + len -= sizeof(struct ether_header); + if (len >= IP_MAXPACKET) { + /* sanity check */ + fprintf(stderr, + "pread_netm: invalid next packet, IP len is %d, return EOF\n", len); + return(0); + } + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + if (rlen != 0) + if (debug) + fprintf(stderr, + "Couldn't read %d more bytes, skipping last packet\n", + len); + return(0); + } + + if (netm_oldversion) { + void *ptr; + struct netm_packet_header_old *pho; + + ptr=&hdr; + pho = (struct netm_packet_header_old *) ptr; + + ptime->tv_sec = ntohl(pho->tstamp_secs); + ptime->tv_usec = ntohl(pho->tstamp_usecs); + *plen = ntohl(pho->len); + *ptlen = ntohl(pho->tlen); + } else { + ptime->tv_sec = ntohl(hdr.tstamp_secs); + ptime->tv_usec = ntohl(hdr.tstamp_usecs); + *plen = ntohl(hdr.len); + *ptlen = ntohl(hdr.tlen); + } + + + *ppip = (struct ip *) pip_buf; + *pplast = (char *)pip_buf+packlen-sizeof(struct ether_header)-1; /* last byte in the IP packet */ + *pphys = pep; + *pphystype = PHYS_ETHER; + + + /* if it's not IP, then skip it */ + if ((ntohs(pep->ether_type) != ETHERTYPE_IP) && + (ntohs(pep->ether_type) != ETHERTYPE_IPV6)) { + if (debug > 2) + fprintf(stderr,"pread_netm: not an IP packet\n"); + continue; + } + + return(1); + } +} + + + +/* is the input file a NetMetrix format file?? */ +pread_f *is_netm(char *filename) +{ + struct netm_header nhdr; + int rlen; + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + /* read the netm file header */ + if ((rlen=fread(&nhdr,1,sizeof(nhdr),SYS_STDIN)) != sizeof(nhdr)) { + rewind(SYS_STDIN); + return(NULL); + } + rewind(SYS_STDIN); + + /* convert to local byte order */ + nhdr.netm_key = ntohl(nhdr.netm_key); + nhdr.version = ntohl(nhdr.version); + + /* check for NETM */ + if (nhdr.netm_key != NETM_KEY) { + return(NULL); + } + + + /* check version */ + if (nhdr.version == NETM_VERSION_OLD) + netm_oldversion = 1; + else if (nhdr.version == NETM_VERSION_NEW) + netm_oldversion = 0; + else { + fprintf(stderr,"Bad NETM file header version: %d\n", + nhdr.version); + return(NULL); + } + + if (debug) + printf("NETM file version: %d\n", nhdr.version); + + /* ignore the header at the top */ + if (fseek(SYS_STDIN,NETM_DUMP_OFFSET,SEEK_SET) == -1) { + perror("NETM lseek"); + exit(-1); + } + + /* OK, it's mine. Init some stuff */ + pep = MallocZ(sizeof(struct ether_header)); + pip_buf = MallocZ(IP_MAXPACKET); + + + return(pread_netm); +} + +#endif /* GROK_NETM */ + diff --git a/netscout.c b/netscout.c new file mode 100644 index 0000000..bc33c0a --- /dev/null +++ b/netscout.c @@ -0,0 +1,278 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/netscout.c,v 5.8 2003/11/19 14:38:04 sdo Exp $"; + + +/* + * netscout.c - NetScout 5.5.1 Ascii file decode + * + * This file submitted by Al.Broscius@msdw.com + * + */ + + +#include +#include +#include + +#ifdef GROK_NETSCOUT + +#ifdef linux +#ifdef strncpy + /* problem with macro won't let this file compile */ +#undef strncpy +#endif /* strncpy */ +#endif /* linux */ + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* static buffers for reading */ +static int *pep_buf; +static int *pip_buf; + + + +/* file header format */ +struct netscout_header { + tt_int32 pagenum; + char filename[255]; +}; + + +/* netm packet header format */ +struct netscout_packet_header { + tt_int32 FrameNum; + tt_int32 Size; + tt_int32 tstamp_secs; + tt_int32 tstamp_msecs; + tt_int32 tlen; + tt_int32 len; +}; + + +/* currently only works for ETHERNET */ +static int +pread_netscout( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + char * retval; + char buffer_string[256]; + char month[256]; + int day, hour, minute, sec, msec; + struct tm tmval; + int byte0, byte1, byte2,byte3,byte4,byte5,byte6,byte7, + byte8,byte9,byte10,byte11,byte12,byte13,byte14,byte15; + int index; + + /* Look for Frame line to signal start of packet */ + + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + while(strstr(buffer_string, "Frame") == NULL) { + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + } + + /* recover the size of the captured packet header */ + sscanf(strlen("Size") + strstr(buffer_string, "Size"), "%d", ptlen); + + *plen = 62; + *pplast = (char *) pip_buf+48; + + /* recover the timestamp */ + sscanf(strlen("Time") + strstr(buffer_string, "Time"), "%s %d %d:%d:%d.%d", + month, &day, &hour, &minute, &sec, &msec); + tmval.tm_sec = sec; + tmval.tm_min = minute; + tmval.tm_hour = hour; + tmval.tm_mday = day; + tmval.tm_mon = + (strlen(strstr("DecNovOctSepAugJulJunMayAprMarFebJan", month)) / 3) - 1; + tmval.tm_year = 1999-1900; + tmval.tm_isdst = -1; + ptime->tv_sec = mktime(&tmval); + ptime->tv_usec = msec * 1000; + + /* Claim that the packets came from an Ethernet */ + *pphystype = PHYS_ETHER; + + /* Look for 00000: line to signal first row of packet data */ + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + while(strstr(buffer_string, "00000:") == NULL) { + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + } + + index = 0; + sscanf(strstr(buffer_string,":") + 1, + "%x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x", + &byte0, &byte1, &byte2,&byte3,&byte4,&byte5,&byte6,&byte7, + &byte8,&byte9,&byte10,&byte11,&byte12,&byte13,&byte14,&byte15); + pep_buf[index++] =ntohl(byte0<<24|byte1<<16|byte2<<8|byte3); + pep_buf[index++] =ntohl(byte4<<24|byte5<<16|byte6<<8|byte7); + pep_buf[index++] =ntohl(byte8<<24|byte9<<16|byte10<<8|byte11); + pep_buf[index++] =ntohl(byte12<<24|byte13<<16|byte14<<8|byte15); + + /* Look for 00016: line to signal first row of packet data */ + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + while(strstr(buffer_string, "00016:") == NULL) { + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + } + + sscanf(strstr(buffer_string,":") + 1, + "%x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x", + &byte0, &byte1, &byte2,&byte3,&byte4,&byte5,&byte6,&byte7, + &byte8,&byte9,&byte10,&byte11,&byte12,&byte13,&byte14,&byte15); + pep_buf[index++] =ntohl(byte0<<24|byte1<<16|byte2<<8|byte3); + pep_buf[index++] =ntohl(byte4<<24|byte5<<16|byte6<<8|byte7); + pep_buf[index++] =ntohl(byte8<<24|byte9<<16|byte10<<8|byte11); + pep_buf[index++] =ntohl(byte12<<24|byte13<<16|byte14<<8|byte15); + + /* Look for 00032: line to signal first row of packet data */ + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + while(strstr(buffer_string, "00032:") == NULL) { + if((retval = fgets (buffer_string, 255, SYS_STDIN)) == NULL) { + return 0; + } + + } + + sscanf(strstr(buffer_string,":") + 1, + "%x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x", + &byte0, &byte1, &byte2,&byte3,&byte4,&byte5,&byte6,&byte7, + &byte8,&byte9,&byte10,&byte11,&byte12,&byte13,&byte14,&byte15); + pep_buf[index++] =ntohl(byte0<<24|byte1<<16|byte2<<8|byte3); + pep_buf[index++] =ntohl(byte4<<24|byte5<<16|byte6<<8|byte7); + pep_buf[index++] =ntohl(byte8<<24|byte9<<16|byte10<<8|byte11); + pep_buf[index++] =ntohl(byte12<<24|byte13<<16|byte14<<8|byte15); + + + memcpy((char *) pip_buf, (char *) pep_buf + 14, 48); + + *ppip = (struct ip *) pip_buf; + return 1; +} + + + +/* is the input file a NetScout format file?? */ +pread_f *is_netscout(char *filename) +{ + struct netscout_header nhdr; + char * retval; + char buffer_string[256]; + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + /* read the netscout file header */ + retval = fgets (buffer_string, 255, SYS_STDIN); + if(strstr(buffer_string, "Page" ) != NULL) { + retval = fgets (buffer_string, 255, SYS_STDIN); + if(strstr(buffer_string, "Protocol Decode Output") != NULL) { + fflush(stdout); + retval = fgets (buffer_string, 255, SYS_STDIN); + if(strstr(buffer_string, "Packets from the file:") != NULL) { + strncpy((char *) &(nhdr.filename[0]), buffer_string, + strlen("Packets from the file:")); + } + } + } + else + { + rewind(SYS_STDIN); + return(NULL); + } + + /* OK, it's mine. Init some stuff */ + pep_buf = MallocZ(IP_MAXPACKET); + pip_buf = MallocZ(IP_MAXPACKET); + + return(pread_netscout); + +} + +#endif /* GROK_NETSCOUT */ diff --git a/nlanr.c b/nlanr.c new file mode 100644 index 0000000..70acae5 --- /dev/null +++ b/nlanr.c @@ -0,0 +1,239 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/nlanr.c,v 1.7 2003/11/19 14:38:04 sdo Exp $"; + + +/* + * nlanr - TSH specific file reading stuff + */ + +/* TSH header format: + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0 | timestamp (seconds) | Time + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 1 | interface # | timestamp (microseconds) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 2 |Version| IHL |Type of Service| Total Length | IP + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 3 | Identification |Flags| Fragment Offset | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 4 | Time to Live | Protocol | Header Checksum | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 5 | Source Address | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 6 | Destination Address | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 7 | Source Port | Destination Port | TCP + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 8 | Sequence Number | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 9 | Acknowledgment Number | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Data | |U|A|P|R|S|F| | + * 10 | Offset| Reserved |R|C|S|S|Y|I| Window | + * | | |G|K|H|T|N|N| | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + + + + + +#ifdef GROK_NLANR + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* information necessary to understand NLANL Tsh output */ +#define TSH_DUMP_OFFSET 16 +struct tsh_packet_header { + unsigned int ts_secs; +#ifdef _BIT_FIELDS_LTOH + unsigned int interface_id:8; + unsigned int ts_usecs:24; +#else + unsigned int ts_usecs:24; + unsigned int interface_id:8; +#endif +}; + +struct tsh_frame { + struct tsh_packet_header tph; + struct ip ip_header; + struct tcphdr tcp_header; /* just the first 16 bytes present */ +}; + + +/* static buffers for reading */ +static struct ether_header *pep; + +/* return the next packet header */ +/* currently only works for ETHERNET */ +static int +pread_nlanr( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + int rlen; + static struct tsh_frame hdr; + int packlen = sizeof(struct ip) + sizeof(struct tcphdr); + int hlen = 44; + + /* read the next frames */ + if ((rlen=fread(&hdr,1,hlen,SYS_STDIN)) != hlen) { + if (debug && (rlen != 0)) + fprintf(stderr,"Bad tsh packet header (len:%d)\n", rlen); + return(0); + } + + /* grab the time */ + ptime->tv_sec = hdr.tph.ts_secs; + ptime->tv_usec = hdr.tph.ts_usecs; + + /* truncated length is just an IP header and a TCP header */ + *ptlen = packlen; + + /* original length is from the IP header */ + *plen = hdr.ip_header.ip_len; + + + /* Here's the IP/TCP stuff */ + *ppip = &hdr.ip_header; + + /* Here's the last byte of the packet */ + *pplast = (char *)(*ppip)+packlen-1; + + /* here's the (pseudo) ethernet header */ + *pphys = pep; + *pphystype = PHYS_ETHER; + + return(1); +} + + + +/* + * is_nlanr() is the input file in tsh format?? + */ +pread_f *is_nlanr(char *filename) +{ + struct tsh_frame tf; + int rlen; + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + /* tsh is a little hard because there's no magic number */ + + + /* read the tsh file header */ + if ((rlen=fread(&tf,1,sizeof(tf),SYS_STDIN)) != sizeof(tf)) { + /* not even a full frame */ + rewind(SYS_STDIN); + return(NULL); + } + rewind(SYS_STDIN); + + if (debug) { + printf("nlanr tsh ts_secs: %d\n", tf.tph.ts_secs); + printf("nlanr tsh ts_usecs: %d\n", tf.tph.ts_usecs); + printf("nlanr tsh interface: %d\n", tf.tph.interface_id); + printf("nlanr sizeof(tf): %d\n", sizeof(tf)); + printf("nlanr sizeof(tph): %d\n", sizeof(tf.tph)); + if (debug > 1) + PrintRawDataHex("NLANR TSH header",&tf,(char *)&tf+39); + } + + /* quick heuristics */ + if (((tf.ip_header.ip_v != 4) && (tf.ip_header.ip_v != 6)) + ) { + return(NULL); + } + + + /* OK, let's hope it's a tsh file */ + + + /* there's no physical header present, so make up one */ + pep = MallocZ(sizeof(struct ether_header)); + pep->ether_type = htons(ETHERTYPE_IP); + + if (debug) + fprintf(stderr,"TSH format, interface ID %d\n", tf.tph.interface_id); + + + return(pread_nlanr); +} +#endif /* GROK_NLANR */ diff --git a/ns.c b/ns.c new file mode 100644 index 0000000..7b15385 --- /dev/null +++ b/ns.c @@ -0,0 +1,470 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; + +/* + * Kevin Lahey (kml@patheticgeek.net) + */ + +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/ns.c,v 1.18 2003/11/19 14:38:04 sdo Exp $"; + + +/* + * ns.c - ns specific file reading stuff + */ + + + +#ifdef GROK_NS + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* static buffers for reading */ +static struct ether_header *pep; +static int *pip_buf; +static struct ip *ipb; +static struct tcphdr *tcpb; + +/* for debugging */ +static unsigned linenum; + +/* return the next packet header */ +/* currently only works for ETHERNET */ +static int +pread_ns( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + static int packlen = 0; + double c, d, e; + + while (1) { + /* read the packet info */ + + char tt; + double timestamp; + int junk; + char type[16]; + char flags[16]; + int iteration; + int seq; + int is_ack; + int is_tcp; + int rlen; + char myline[128]; + char *isend; + + ++linenum; + + isend = fgets(myline, 128, SYS_STDIN); + if (isend == NULL) { // end of file + return(0); + } + /* correct NS output line would have 14 fields: */ + rlen = sscanf(myline, "%c %lg %d %d %s %d %s %d %d.%hu %d.%hu %d %hu", + &tt, + ×tamp, + &junk, + &junk, + type, + plen, + flags, + &iteration, + &ipb->ip_src.s_addr, + &tcpb->th_sport, + &ipb->ip_dst.s_addr, + &tcpb->th_dport, + &seq, + &ipb->ip_id); + + /* if we can't match all 14 fields, we give up on the file */ + if (rlen != 14 && rlen != 18) { + fprintf(stderr,"Bad NS packet header in line %u only [%d] arguments can be matched expected 14 or 18 \n", linenum, rlen); + return(0); + } + + // find out who put in this line of code, because I'd love + // to know what their reasoning was + //tcpb->th_sport = tcpb->th_dport = iteration; + + is_tcp = strcmp(type, "tcp") == 0; + is_ack = strcmp(type, "ack") == 0; + + /* if it's not a TCP data segment or ACK, discard and try again */ + if (!is_tcp && !is_ack) + continue; + + if ((!ns_hdrs && is_tcp) || (ns_hdrs && packlen ==0)) + *plen = *plen + sizeof(struct ip) + sizeof(struct tcphdr); + + if (packlen == 0 && is_tcp) + packlen = *plen - sizeof(struct ip) - sizeof(struct tcphdr); + + if (ns_hdrs && is_tcp) + packlen = *plen- sizeof(struct ip) - sizeof(struct tcphdr); + + if (is_ack) /* this is explicitly for SACK that creates packets > 40 Bytes*/ + *plen = 40; + + ipb->ip_len = htons(*plen); + + if (is_tcp) { + tcpb->th_seq = htonl(packlen * seq); + tcpb->th_ack = 0; + } else { + tcpb->th_seq = 0; + tcpb->th_ack = htonl(packlen * (seq + 1)); + } + + /* make up a reasonable IPv4 packet header */ +#ifdef __VMS + ipb->ip_vhl = 0x0405; /* no options, normal length of 20 */ +#else + ipb->ip_hl = 5; /* no options, normal length of 20 */ + ipb->ip_v = 4; /* IPv4 */ +#endif + + ipb->ip_tos = 0; + ipb->ip_off = 0; + ipb->ip_ttl = 64; /* nice round number */ + ipb->ip_p = 6; /* TCP */ + ipb->ip_sum = 0; /* IP checksum, hope it doesn't get checked! */ + ipb->ip_id = htons(ipb->ip_id); + + /* is the transport "ECN-Capable"? */ + if (strchr(flags, 'N') != NULL) + ipb->ip_tos |= IPTOS_ECT; + + /* was the "Experienced Congestion" bit set? */ + if (strchr(flags, 'E') != NULL) + ipb->ip_tos |= IPTOS_CE; + + /* make up a reasonable TCP segment header */ +#ifdef __VMS + tcpb->th_xoff = 0x50; /* no options, normal length of 20 */ +#else + tcpb->th_off = 5; /* no options, normal length of 20 */ + tcpb->th_x2 = 0; +#endif + tcpb->th_flags = TH_ACK; /* sdo: what about first SYN?? */ + tcpb->th_sum = 0; + tcpb->th_urp = 0; + tcpb->th_win = htons(65535); + + /* x2 *was* reserved, now used for ECN bits */ + + if (strchr(flags, 'C') != NULL) +#ifdef __VMS + tcpb->th_xoff |= TH_ECN_ECHO; +#else + tcpb->th_x2 |= TH_ECN_ECHO; +#endif + if (strchr(flags, 'A') != NULL) +#ifdef __VMS + tcpb->th_xoff |= TH_CWR; +#else + tcpb->th_x2 |= TH_CWR; +#endif + + /* convert floating point timestamp to (tv_sec,tv_usec) */ + c = floor(timestamp); + ptime->tv_sec = c; + d = timestamp - (double) ptime->tv_sec; + e = d * 1000000.0; + ptime->tv_usec = e; + + *ptlen = *plen; + + *ppip = (struct ip *) pip_buf; + *pplast = (char *)pip_buf + *plen; + *pphys = pep; + *pphystype = PHYS_ETHER; + +/* + printf("timestamp %g, type %s, plen %d, seq %d, id %d\n", + timestamp, type, *plen, seq, ipb->ip_id); +*/ + return(1); + } +} + +int pread_ns_fulltcp( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + double c, d, e; + while (1) { + /* read the packet info */ + + char tt; + double timestamp; + int junk; + unsigned short junkshort; + char type[16]; + char flags[16]; + int iteration; + int seqno; + int ackno; + int hdrlen; + int is_ack; + int is_tcp; + int pflags; + int rlen; + char myline[128]; + char *isend; + + ++linenum; + + isend = fgets(myline, 128, SYS_STDIN); + if (isend == NULL) { // end of file + return 0; + } + /* correct NS output line would have 14 fields if show_tcphdr_ is 0: */ + /* For Full TCP this changes to 18 fields when show_tcp is 1*/ + rlen = sscanf(myline, "%c %lg %d %d %s %d %s %d %d.%hu %d.%hu %d %hu %d 0x%x %u %hu", + &tt, + ×tamp, + &junk, + &junk, + type, + plen, + flags, + &iteration, + &ipb->ip_src.s_addr, + &tcpb->th_sport, + &ipb->ip_dst.s_addr, + &tcpb->th_dport, + &seqno, + &ipb->ip_id, + &ackno, + &pflags, + &hdrlen, + &junkshort); + + /* if we can't match all 18 fields, we give up on the file */ + if (rlen != 18) { + fprintf(stderr, "\"%s\"\n", myline); + fprintf(stderr,"Bad NS packet header in line %u only [%d] arguments can be matched expected 14 or 18 \n", linenum, rlen); + fprintf(stderr,"Is this a Full Tcp Header?\n"); + return(0); + } + + //tcpb->th_sport = tcpb->th_dport = iteration; + is_tcp = strcmp(type, "tcp") == 0; + is_ack = strcmp(type, "ack") == 0; + + /* if it's not a TCP data segment or ACK, discard and try again */ + if (!is_tcp && !is_ack) + continue; + + /* we have biger header than 40 Bytes (SACK?) */ + if (hdrlen > sizeof(struct ip) + sizeof(struct tcphdr)){ + *plen -= (hdrlen - (sizeof(struct ip) + sizeof(struct tcphdr))); + } + + ipb->ip_len = htons(*plen); + + tcpb->th_seq = htonl(seqno); + tcpb->th_ack = htonl(ackno); + + /* make up a reasonable IPv4 packet header */ + ipb->ip_hl = 5; /* no options, normal length of 20 */ + ipb->ip_v = 4; /* IPv4 */ + ipb->ip_tos = 0; + ipb->ip_off = 0; + ipb->ip_ttl = 64; /* nice round number */ + ipb->ip_p = 6; /* TCP */ + ipb->ip_sum = 0; /* IP checksum, hope it doesn't get checked! */ + ipb->ip_id = ipb->ip_id; + + /* is the transport "ECN-Capable"? */ + if (strchr(flags, 'N') != NULL) + ipb->ip_tos |= IPTOS_ECT; + + /* was the "Experienced Congestion" bit set? */ + if (strchr(flags, 'E') != NULL) + ipb->ip_tos |= IPTOS_CE; + + /* make up a reasonable TCP segment header */ + tcpb->th_off = 5; /* no options, normal length of 20 */ + tcpb->th_flags = pflags; /* sdo: what about first SYN?? */ + tcpb->th_x2 = 0; + tcpb->th_sum = 0; + tcpb->th_urp = 0; + tcpb->th_win = htons(65535); + + /* x2 *was* reserved, now used for ECN bits */ + + if (strchr(flags, 'C') != NULL) + tcpb->th_x2 |= TH_ECN_ECHO; + if (strchr(flags, 'A') != NULL) + tcpb->th_x2 |= TH_CWR; + + /* convert floating point timestamp to (tv_sec,tv_usec) */ + c = floor(timestamp); + ptime->tv_sec = c; + d = timestamp - (double) ptime->tv_sec; + e = d * 1000000.0; + ptime->tv_usec = e; + + *ptlen = *plen; + + *ppip = (struct ip *) pip_buf; + *pplast = (char *)pip_buf + *plen; + *pphys = pep; + *pphystype = PHYS_ETHER; + + + /* printf("timestamp %g, type %s, plen %d, seq %d, id %d, ack %d, 0x%x %d \n", + timestamp, type, *plen, seqno, ipb->ip_id,ackno,pflags,hdrlen); */ + + + return(1); + } + +return(0); +} + + +/* + * is_ns() is the input file in ns format?? + */ +pread_f *is_ns(char *filename) +{ + int rlen; + char tt; + int junk; + double junkd; + char junks[20]; + unsigned short junkshort; + int hdrlen = 0; + int pflags = 0; + char myline[128]; // read into this line and then parse for values + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + fgets(myline, 128, SYS_STDIN); + rlen = sscanf(myline, + "%c %lg %d %d %s %d %s %d %d.%hu %d.%hu %d %hu %d 0x%x %u %hu", + &tt, &junkd, &junk, &junk, (char *)&junks, &junk, + (char *)&junks, &junk, &junk, &junkshort, &junk, + &junkshort, &junk, &junkshort, &junk, &pflags, &hdrlen, + &junkshort); + + if ((rlen = getc(SYS_STDIN)) == EOF) { + return(NULL); + } else { + if (ungetc(rlen, SYS_STDIN) == EOF) + return NULL; + } + + switch (tt) { + case '+': + case '-': + case 'h': + case 'r': + case 'd': + break; + default: + return(NULL); + } + + /* OK, it's mine. Init some stuff */ + pep = MallocZ(sizeof(struct ether_header)); + pip_buf = MallocZ(IP_MAXPACKET); + + ipb = (struct ip *) pip_buf; + tcpb = (struct tcphdr *) (ipb + 1); + + /* Set up the stuff that shouldn't change */ + pep->ether_type = ETHERTYPE_IP; + + /* init line count (we might be called several times, must be done here) */ + linenum = 0; + /* Lets check if it is FullTCP or not*/ + if (hdrlen || pflags){ /*it is FullTCP */ +/* printf("Full TCP \n"); */ + rewind(SYS_STDIN); + return(pread_ns_fulltcp); + } + else{ /*Regular TCP (with or without tcpheaders activated */ + return(pread_ns); + } +} +#endif /* GROK_NS */ diff --git a/output.c b/output.c new file mode 100644 index 0000000..89307a6 --- /dev/null +++ b/output.c @@ -0,0 +1,1152 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/output.c,v 5.25 2003/11/19 14:38:04 sdo Exp $"; + + +#include "gcache.h" + + +/* local routines */ +static double Average(double, int); +static double Stdev(double, double, int); +static void StatLineP(char *, char *, char *, void *, void *); +static void StatLineI_L(char *, char *, u_long, u_long); +#ifdef HAVE_LONG_LONG +static void StatLineI_LL(char *, char *, u_llong, u_llong); +static void StatLineFieldL(char *, char *, char *, u_llong, int); +#endif /* HAVE_LONG_LONG */ +static void StatLineF(char *, char *, char *, double, double); +static void StatLineField(char *, char *, char *, u_long, int); +static void StatLineFieldF(char *, char *, char *, double, int); +static void StatLineOne(char *, char *, char *); +static char *FormatBrief(tcp_pair *ptp); +static char *UDPFormatBrief(udp_pair *pup); + +/* locally global variables*/ +static u_int sv_print_count = 0; +static u_int sv_expected_count = 0; + +/* global variables */ +char *sp; /* Separator used for long output with -separated-values */ + +/* to support some of the counters being long long on some platforms, use this */ +/* macro... */ +#ifdef HAVE_LONG_LONG +#define StatLineI(label,units,ul1,ul2) \ +(sizeof((ul1)) == SIZEOF_UNSIGNED_LONG_LONG_INT)?\ + StatLineI_LL((label),(units),(ul1),(ul2)):\ + StatLineI_L ((label),(units),(ul1),(ul2)) +#else /* HAVE_LONG_LONG */ +#define StatLineI StatLineI_L +#endif /* HAVE_LONG_LONG */ + +u_int +SynCount( + tcp_pair *ptp) +{ + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + + return(((pab->syn_count >= 1)?1:0) + + ((pba->syn_count >= 1)?1:0)); +} + + + +u_int +FinCount( + tcp_pair *ptp) +{ + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + + return(((pab->fin_count >= 1)?1:0) + + ((pba->fin_count >= 1)?1:0)); +} + + + +int +ConnComplete( + tcp_pair *ptp) +{ + return(SynCount(ptp) >= 2 && FinCount(ptp) >= 2); +} + + +int +ConnReset( + tcp_pair *ptp) +{ + return(ptp->a2b.reset_count + ptp->b2a.reset_count != 0); +} + + + +static double +Average( + double sum, + int count) +{ + return((double) sum / ((double)count+.0001)); +} + + + +static double +Stdev( + double sum, + double sum2, + int n) +{ + double term; + double term1; + double term2; + double retval; + + if (n<=2) + return(0.0); + + term1 = sum2; + term2 = (sum * sum) / (double)n; + term = term1-term2; + term /= (double)(n-1); + retval = sqrt(term); + +/* printf("Stdev(%f,%f,%d) is %f\n", sum,sum2,n,retval); */ + + return(retval); +} + + + + + +static char * +FormatBrief( + tcp_pair *ptp) +{ + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + static char infobuf[100]; + + snprintf(infobuf,sizeof(infobuf),"%s - %s (%s2%s)", + ptp->a_endpoint, ptp->b_endpoint, + pab->host_letter, pba->host_letter); + return(infobuf); +} + + + + + +void +PrintTrace( + tcp_pair *ptp) +{ + double etime; + u_long etime_secs; + u_long etime_usecs; + double etime_data1; + double etime_data2; + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + char *host1 = pab->host_letter; + char *host2 = pba->host_letter; + char bufl[40],bufr[40]; + + /* counters to use for seq. space wrap around calculations + */ + u_llong stream_length_pab=0, stream_length_pba=0; + u_long pab_last, pba_last; + + /* Reset the counter for each connection */ + sv_print_count = 1; /* The first field (conn_#) gets printed in trace.c */ + + + /* calculate elapsed time */ + etime = elapsed(ptp->first_time,ptp->last_time); + etime_secs = etime / 1000000.0; + etime_usecs = 1000000 * (etime/1000000.0 - (double)etime_secs); + + /* Check if comma-separated-values or tab-separated-values + * has been requested. + */ + if(csv || tsv || (sv != NULL)) { + fprintf(stdout,"%s%s%s%s%s%s%s%s", + ptp->a_hostname, sp, ptp->b_hostname, sp, + ptp->a_portname, sp, ptp->b_portname, sp); + sv_print_count += 4; + /* Print the start and end times. In other words, + * print the time of the first and the last packet + */ + fprintf(stdout,"%ld.%ld %s %ld.%ld %s", + (long)ptp->first_time.tv_sec, (long)ptp->first_time.tv_usec, sp, + (long)ptp->last_time.tv_sec, (long)ptp->last_time.tv_usec, sp); + sv_print_count += 2; + } + else { + fprintf(stdout,"\thost %-4s %s\n", + (snprintf(bufl,sizeof(bufl),"%s:", host1),bufl), ptp->a_endpoint); + fprintf(stdout,"\thost %-4s %s\n", + (snprintf(bufl,sizeof(bufl),"%s:", host2),bufl), ptp->b_endpoint); + fprintf(stdout,"\tcomplete conn: %s", + ConnReset(ptp)?"RESET":( + ConnComplete(ptp)?"yes":"no")); + if (ConnComplete(ptp)) + fprintf(stdout,"\n"); + else + fprintf(stdout,"\t(SYNs: %u) (FINs: %u)\n", + SynCount(ptp), FinCount(ptp)); + + fprintf(stdout,"\tfirst packet: %s\n", ts2ascii(&ptp->first_time)); + fprintf(stdout,"\tlast packet: %s\n", ts2ascii(&ptp->last_time)); + + fprintf(stdout,"\telapsed time: %s\n", elapsed2str(etime)); + + fprintf(stdout,"\ttotal packets: %" FS_ULL "\n", ptp->packets); + + fprintf(stdout,"\tfilename: %s\n", ptp->filename); + + fprintf(stdout," %s->%s: %s->%s:\n", + host1,host2,host2,host1); + } + + StatLineI("total packets","", pab->packets, pba->packets); + if (pab->reset_count || pba->reset_count || csv || tsv || (sv != NULL)) + StatLineI("resets sent","", pab->reset_count, pba->reset_count); + StatLineI("ack pkts sent","", pab->ack_pkts, pba->ack_pkts); + StatLineI("pure acks sent","", pab->pureack_pkts, pba->pureack_pkts); + StatLineI("sack pkts sent","", pab->num_sacks, pba->num_sacks); + StatLineI("dsack pkts sent","", pab->num_dsacks, pba->num_dsacks); + StatLineI("max sack blks/ack","", pab->max_sack_blocks, pba->max_sack_blocks); + StatLineI("unique bytes sent","", + pab->unique_bytes, pba->unique_bytes); + StatLineI("actual data pkts","", pab->data_pkts, pba->data_pkts); + StatLineI("actual data bytes","", pab->data_bytes, pba->data_bytes); + StatLineI("rexmt data pkts","", pab->rexmit_pkts, pba->rexmit_pkts); + StatLineI("rexmt data bytes","", + pab->rexmit_bytes, pba->rexmit_bytes); + StatLineI("zwnd probe pkts","", + pab->num_zwnd_probes, pba->num_zwnd_probes); + StatLineI("zwnd probe bytes","", + pab->zwnd_probe_bytes, pba->zwnd_probe_bytes); + StatLineI("outoforder pkts","", + pab->out_order_pkts, pba->out_order_pkts); + StatLineI("pushed data pkts","", pab->data_pkts_push, pba->data_pkts_push); + StatLineP("SYN/FIN pkts sent","","%s", + (snprintf(bufl,sizeof(bufl),"%d/%d", + pab->syn_count, pab->fin_count),bufl), + (snprintf(bufr,sizeof(bufr),"%d/%d", + pba->syn_count, pba->fin_count),bufr)); + if (pab->f1323_ws || pba->f1323_ws || pab->f1323_ts || pba->f1323_ts || csv || tsv || (sv != NULL)) { + StatLineP("req 1323 ws/ts","","%s", + (snprintf(bufl,sizeof(bufl),"%c/%c", + pab->f1323_ws?'Y':'N',pab->f1323_ts?'Y':'N'),bufl), + (snprintf(bufr,sizeof(bufr),"%c/%c", + pba->f1323_ws?'Y':'N',pba->f1323_ts?'Y':'N'),bufr)); + } + if (pab->f1323_ws || pba->f1323_ws || csv || tsv || (sv != NULL)) { + StatLineI("adv wind scale","", + (u_long)pab->window_scale, (u_long)pba->window_scale); + } + if (pab->fsack_req || pba->fsack_req || csv || tsv || (sv != NULL)) { + StatLineP("req sack","","%s", + pab->fsack_req?"Y":"N", + pba->fsack_req?"Y":"N"); + StatLineI("sacks sent","", + pab->sacks_sent, + pba->sacks_sent); + } + StatLineI("urgent data pkts", "pkts", + pab->urg_data_pkts, + pba->urg_data_pkts); + StatLineI("urgent data bytes", "bytes", + pab->urg_data_bytes, + pba->urg_data_bytes); + StatLineI("mss requested","bytes", pab->mss, pba->mss); + StatLineI("max segm size","bytes", + pab->max_seg_size, + pba->max_seg_size); + StatLineI("min segm size","bytes", + pab->min_seg_size, + pba->min_seg_size); + StatLineI("avg segm size","bytes", + (int)((double)pab->data_bytes / ((double)pab->data_pkts+.001)), + (int)((double)pba->data_bytes / ((double)pba->data_pkts+.001))); + StatLineI("max win adv","bytes", pab->win_max, pba->win_max); + StatLineI("min win adv","bytes", pab->win_min, pba->win_min); + StatLineI("zero win adv","times", + pab->win_zero_ct, pba->win_zero_ct); + // Average window advertisement is calculated only for window scaled pkts + // if we have seen this connection using window scaling. + // Otherwise, it is just the regular way of dividing the sum of + // all window advertisements by the total number of packets. + + if (pab->window_stats_updated_for_scaling && + pba->window_stats_updated_for_scaling) + StatLineI("avg win adv","bytes", + pab->win_scaled_pkts==0?0: + (pab->win_tot/pab->win_scaled_pkts), + pba->win_scaled_pkts==0?0: + (pba->win_tot/pba->win_scaled_pkts)); + else + StatLineI("avg win adv","bytes", + pab->packets==0?0:pab->win_tot/pab->packets, + pba->packets==0?0:pba->win_tot/pba->packets); + if (print_owin) { + StatLineI("max owin","bytes", pab->owin_max, pba->owin_max); + StatLineI("min non-zero owin","bytes", pab->owin_min, pba->owin_min); + StatLineI("avg owin","bytes", + pab->owin_count==0?0:pab->owin_tot/pab->owin_count, + pba->owin_count==0?0:pba->owin_tot/pba->owin_count); + if (etime == 0.0) { + StatLineP("wavg owin", "", "%s", "NA", "NA"); + } + else { + StatLineI("wavg owin","bytes", + (u_llong)(pab->owin_wavg/((double)etime/1000000)), + (u_llong)(pba->owin_wavg/((double)etime/1000000))); + } + } + StatLineI("initial window","bytes", + pab->initialwin_bytes, pba->initialwin_bytes); + StatLineI("initial window","pkts", + pab->initialwin_segs, pba->initialwin_segs); + + /* compare to theoretical length of the stream (not just what + we saw) using the SYN and FIN + * Seq. Space wrap around calculations: + * Calculate stream length using last_seq_num seen, first_seq_num + * seen and wrap_count. + * first_seq_num = syn + * If reset_set, last_seq_num = latest_seq + * else last_seq_num = fin + */ + + pab_last = (pab->reset_count>0)?pab->latest_seq:pab->fin; + + pba_last = (pba->reset_count>0)?pba->latest_seq:pba->fin; + + /* calculating stream length for direction pab */ + if ((pab->syn_count > 0) && (pab->fin_count > 0)) { + if (pab->seq_wrap_count > 0) { + if (pab_last > pab->syn) { + stream_length_pab = pab_last + (MAX_32 * pab->seq_wrap_count) - pab->syn - 1; + } + else { + stream_length_pab = pab_last + (MAX_32 * (pab->seq_wrap_count+1)) - pab->syn - 1; + } + } + else { + if (pab_last > pab->syn) { + stream_length_pab = pab_last - pab->syn - 1; + } + else { + stream_length_pab = MAX_32 + pab_last - pab->syn - 1; + } + } + } + + /* calculating stream length for direction pba */ + if ((pba->syn_count > 0) && (pba->fin_count > 0)) { + if (pba->seq_wrap_count > 0) { + if (pba_last > pba->syn) { + stream_length_pba = pba_last + (MAX_32 * pba->seq_wrap_count) - pba->syn - 1; + } + else { + stream_length_pba = pba_last + (MAX_32 * (pba->seq_wrap_count+1)) - pba->syn - 1; + } + } + else { + if (pba_last > pba->syn) { + stream_length_pba = pba_last - pba->syn - 1; + } + else { + stream_length_pba = MAX_32 + pba_last - pba->syn - 1; + } + } + } + + /* print out values */ + if ((pab->fin_count > 0) && (pab->syn_count > 0)) { + char *format = "%8" FS_ULL; + StatLineFieldL("ttl stream length", "bytes", format, stream_length_pab, 0); + } + else { + StatLineField("ttl stream length", "", "%s", (u_long)"NA", 0); + } + if ((pba->fin_count > 0) && (pba->syn_count > 0)) { + char *format = "%8" FS_ULL; + StatLineFieldL("ttl stream length", "bytes", format, stream_length_pba, 1); + } + else { + StatLineField("ttl stream length", "", "%s", (u_long)"NA", 1); + } + + if ((pab->fin_count > 0) && (pab->syn_count > 0)) { + char *format = "%8" FS_ULL; + StatLineFieldL("missed data", "bytes", format, (stream_length_pab - pab->unique_bytes), 0); + } + else { + StatLineField("missed data", "", "%s", (u_long)"NA", 0); + } + if ((pba->fin_count > 0) && (pba->syn_count > 0)) { + char *format = "%8" FS_ULL; + StatLineFieldL("missed data", "bytes", format, (stream_length_pba - pba->unique_bytes), 1); + } + else { + StatLineField("missed data", "", "%s", (u_long)"NA", 1); + } + + /* tell how much data was NOT captured in the files */ + StatLineI("truncated data","bytes", + pab->trunc_bytes, pba->trunc_bytes); + StatLineI("truncated packets","pkts", + pab->trunc_segs, pba->trunc_segs); + + /* stats on just the data */ + etime_data1 = elapsed(pab->first_data_time, + pab->last_data_time); /* in usecs */ + etime_data2 = elapsed(pba->first_data_time, + pba->last_data_time); /* in usecs */ + /* fix from Rob Austein */ + StatLineF("data xmit time","secs","%7.3f", + etime_data1 / 1000000.0, + etime_data2 / 1000000.0); + StatLineP("idletime max","ms","%s", + ZERO_TIME(&pab->last_time)?"NA": + (snprintf(bufl,sizeof(bufl),"%8.1f",(double)pab->idle_max/1000.0),bufl), + ZERO_TIME(&pba->last_time)?"NA": + (snprintf(bufr,sizeof(bufr),"%8.1f",(double)pba->idle_max/1000.0),bufr)); + + if ((pab->num_hardware_dups != 0) || (pba->num_hardware_dups != 0) || csv || tsv || (sv != NULL)) { + StatLineI("hardware dups","segs", + pab->num_hardware_dups, pba->num_hardware_dups); + + if(!(csv || tsv || (sv != NULL))) + fprintf(stdout, + " ** WARNING: presence of hardware duplicates makes these figures suspect!\n"); + } + + /* do the throughput calcs */ + etime /= 1000000.0; /* convert to seconds */ + if (etime == 0.0) + StatLineP("throughput","","%s","NA","NA"); + else + StatLineF("throughput","Bps","%8.0f", + (double) (pab->unique_bytes) / etime, + (double) (pba->unique_bytes) / etime); + + if (print_rtt) { + if(!(csv || tsv || (sv != NULL))) + fprintf(stdout,"\n"); + StatLineI("RTT samples","", pab->rtt_count, pba->rtt_count); + StatLineF("RTT min","ms","%8.1f", + (double)pab->rtt_min/1000.0, + (double)pba->rtt_min/1000.0); + StatLineF("RTT max","ms","%8.1f", + (double)pab->rtt_max/1000.0, + (double)pba->rtt_max/1000.0); + StatLineF("RTT avg","ms","%8.1f", + Average(pab->rtt_sum, pab->rtt_count) / 1000.0, + Average(pba->rtt_sum, pba->rtt_count) / 1000.0); + StatLineF("RTT stdev","ms","%8.1f", + Stdev(pab->rtt_sum, pab->rtt_sum2, pab->rtt_count) / 1000.0, + Stdev(pba->rtt_sum, pba->rtt_sum2, pba->rtt_count) / 1000.0); + if(!(csv || tsv || (sv != NULL))) + fprintf(stdout,"\n"); + StatLineF("RTT from 3WHS","ms","%8.1f", + (double)pab->rtt_3WHS/1000.0, + (double)pba->rtt_3WHS/1000.0); + if(!(csv || tsv || (sv != NULL))) + fprintf(stdout,"\n"); + StatLineI("RTT full_sz smpls","", + pab->rtt_full_count, pba->rtt_full_count); + StatLineF("RTT full_sz min","ms","%8.1f", + (double)pab->rtt_full_min/1000.0, + (double)pba->rtt_full_min/1000.0); + StatLineF("RTT full_sz max","ms","%8.1f", + (double)pab->rtt_full_max/1000.0, + (double)pba->rtt_full_max/1000.0); + StatLineF("RTT full_sz avg","ms","%8.1f", + Average(pab->rtt_full_sum, pab->rtt_full_count) / 1000.0, + Average(pba->rtt_full_sum, pba->rtt_full_count) / 1000.0); + StatLineF("RTT full_sz stdev","ms","%8.1f", + Stdev(pab->rtt_full_sum, pab->rtt_full_sum2, pab->rtt_full_count) / 1000.0, + Stdev(pba->rtt_full_sum, pba->rtt_full_sum2, pba->rtt_full_count) / 1000.0); + if(!(csv || tsv || (sv != NULL))) + fprintf(stdout,"\n"); + StatLineI("post-loss acks","", + pab->rtt_nosample, pba->rtt_nosample); + if (pab->rtt_amback || pba->rtt_amback || csv || tsv || (sv != NULL)) { + if(!(csv || tsv || (sv != NULL))) + fprintf(stdout, "\ +\t For the following 5 RTT statistics, only ACKs for\n\ +\t multiply-transmitted segments (ambiguous ACKs) were\n\ +\t considered. Times are taken from the last instance\n\ +\t of a segment.\n\ +"); + StatLineI("ambiguous acks","", + pab->rtt_amback, pba->rtt_amback); + StatLineF("RTT min (last)","ms","%8.1f", + (double)pab->rtt_min_last/1000.0, + (double)pba->rtt_min_last/1000.0); + StatLineF("RTT max (last)","ms","%8.1f", + (double)pab->rtt_max_last/1000.0, + (double)pba->rtt_max_last/1000.0); + StatLineF("RTT avg (last)","ms","%8.1f", + Average(pab->rtt_sum_last, pab->rtt_count_last) / 1000.0, + Average(pba->rtt_sum_last, pba->rtt_count_last) / 1000.0); + StatLineF("RTT sdv (last)","ms","%8.1f", + Stdev(pab->rtt_sum_last, pab->rtt_sum2_last, pab->rtt_count_last) / 1000.0, + Stdev(pba->rtt_sum_last, pba->rtt_sum2_last, pba->rtt_count_last) / 1000.0); + + } + StatLineI("segs cum acked","", + pab->rtt_cumack, pba->rtt_cumack); + StatLineI("duplicate acks","", + pab->rtt_dupack, pba->rtt_dupack); + StatLineI("triple dupacks","", + pab->rtt_triple_dupack, pba->rtt_triple_dupack); + if (debug) + StatLineI("unknown acks:","", + pab->rtt_unkack, pba->rtt_unkack); + StatLineI("max # retrans","", + pab->retr_max, pba->retr_max); + StatLineF("min retr time","ms","%8.1f", + (double)((double)pab->retr_min_tm/1000.0), + (double)((double)pba->retr_min_tm/1000.0)); + StatLineF("max retr time","ms","%8.1f", + (double)((double)pab->retr_max_tm/1000.0), + (double)((double)pba->retr_max_tm/1000.0)); + StatLineF("avg retr time","ms","%8.1f", + Average(pab->retr_tm_sum, pab->retr_tm_count) / 1000.0, + Average(pba->retr_tm_sum, pba->retr_tm_count) / 1000.0); + StatLineF("sdv retr time","ms","%8.1f", + Stdev(pab->retr_tm_sum, pab->retr_tm_sum2, + pab->retr_tm_count) / 1000.0, + Stdev(pba->retr_tm_sum, pba->retr_tm_sum2, + pba->retr_tm_count) / 1000.0); + } + + if(csv || tsv || (sv != NULL)) { + printf("\n"); + /* Error checking: print an error message if the count of printed fields + * doesn't correspond to the actual fields expected. + */ + if(sv_print_count != sv_expected_count) { + fprintf(stderr, "output.c: Count of printed fields does not correspond to count of header fields for long output with comma/tab/-separated values.\n"); + fprintf(stderr,"sv_print_count=%u, sv_expected_count=%u\n", + sv_print_count, sv_expected_count); + exit(-1); + } + } +} + +void +PrintBrief( + tcp_pair *ptp) +{ + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + static int max_width = -1; + + /* determine the maximum connection name width to make it nice */ + if (max_width == -1) { + int ix; + int len; + tcp_pair *tmp_ptp; + + for (ix = 0; ix <= num_tcp_pairs; ++ix) { + tmp_ptp = ttp[ix]; + if (tmp_ptp->ignore_pair) + continue; + + len = strlen(FormatBrief(tmp_ptp)); + if (len > max_width) + max_width = len; + } + if (debug > 2) + fprintf(stderr,"Max name width: %d\n", max_width); + } + + + if (TRUE) { + /* new version */ + fprintf(stdout,"%*s", -max_width, FormatBrief(ptp)); + + fprintf(stdout," %4" FS_ULL ">", pab->packets); + fprintf(stdout," %4" FS_ULL "<", pba->packets); + + } else { + /* old version */ + fprintf(stdout,"%s <==> %s", + ptp->a_endpoint, + ptp->b_endpoint); + + fprintf(stdout," %s2%s:%"FS_ULL, + pab->host_letter, + pba->host_letter, + pab->packets); + + fprintf(stdout," %s2%s:%"FS_ULL, + pba->host_letter, + pab->host_letter, + pba->packets); + } + if (ConnComplete(ptp)) + fprintf(stdout," (complete)"); + if (ConnReset(ptp)) + fprintf(stdout," (reset)"); + if ((ptp->a2b.packets == 0) || (ptp->b2a.packets == 0)) + fprintf(stdout," (unidirectional)"); + + fprintf(stdout,"\n"); + + /* warning for hardware duplicates */ + if (pab->num_hardware_dups != 0) { + fprintf(stdout, + " ** Warning, %s2%s: detected %lu hardware duplicate(s) (same seq # and IP ID)\n", + pab->host_letter, pba->host_letter, + pab->num_hardware_dups); + } + if (pba->num_hardware_dups != 0) { + fprintf(stdout, + " ** Warning, %s2%s: detected %lu hardware duplicate(s) (same seq # and IP ID)\n", + pba->host_letter, pab->host_letter, + pba->num_hardware_dups); + } +} + + + + +void +UDPPrintTrace( + udp_pair *pup) +{ + double etime; + u_long etime_secs; + u_long etime_usecs; + ucb *pab = &pup->a2b; + ucb *pba = &pup->b2a; + char *host1 = pab->host_letter; + char *host2 = pba->host_letter; + char bufl[40]; + + fprintf(stdout,"\thost %-4s %s\n", + (snprintf(bufl,sizeof(bufl),"%s:", host1),bufl), pup->a_endpoint); + fprintf(stdout,"\thost %-4s %s\n", + (snprintf(bufl,sizeof(bufl),"%s:", host2),bufl), pup->b_endpoint); + fprintf(stdout,"\n"); + + fprintf(stdout,"\tfirst packet: %s\n", ts2ascii(&pup->first_time)); + fprintf(stdout,"\tlast packet: %s\n", ts2ascii(&pup->last_time)); + + etime = elapsed(pup->first_time,pup->last_time); + etime_secs = etime / 1000000.0; + etime_usecs = 1000000 * (etime/1000000.0 - (double)etime_secs); + fprintf(stdout,"\telapsed time: %s\n", elapsed2str(etime)); + + fprintf(stdout,"\ttotal packets: %" FS_ULL "\n", pup->packets); + + fprintf(stdout,"\tfilename: %s\n", pup->filename); + + fprintf(stdout," %s->%s: %s->%s:\n", + host1,host2,host2,host1); + + StatLineI("total packets","", pab->packets, pba->packets); + StatLineI("data bytes sent","", + pab->data_bytes, pba->data_bytes); + + /* do the throughput calcs */ + etime /= 1000000.0; /* convert to seconds */ + if (etime == 0.0) + StatLineP("throughput","","%s","NA","NA"); + else + StatLineF("throughput","Bps","%8.0f", + (double) (pab->data_bytes) / etime, + (double) (pba->data_bytes) / etime); +} + + +/* with pointer args */ +static void +StatLineP( + char *label, + char *units, + char *format, + void *argleft, + void *argright) +{ + StatLineField(label,units,format,(u_long)argleft,0); + StatLineField(label,units,format,(u_long)argright,1); +} + + +/* with u_long args */ +static void +StatLineI_L( + char *label, + char *units, + u_long argleft, + u_long argright) +{ + char *format = "%8lu"; + StatLineField(label,units,format,argleft,0); + StatLineField(label,units,format,argright,1); +} + + +#ifdef HAVE_LONG_LONG +/* with u_llong (long long) args, if supported */ +static void +StatLineI_LL( + char *label, + char *units, + u_llong argleft, + u_llong argright) +{ + char *format = "%8" FS_ULL; + StatLineFieldL(label,units,format,argleft,0); + StatLineFieldL(label,units,format,argright,1); +} + +static void +StatLineFieldL( + char *label, + char *units, + char *format, + u_llong arg, + int f_rightside) +{ + /* bug fix: Theo Snelleman */ + /* "The biggest number possible is 18446744073709551615 (20 digits) and + is too big for valbuf[20] ('\0' is the 21th character)." */ + /* it was originally an array of [20] */ + char valbuf[21]; + + /* determine the value to print */ + snprintf(valbuf,sizeof(valbuf),format,arg); + + /* print the field */ + if(!(csv || tsv || (sv != NULL))) + printf(" "); + StatLineOne(label, units, valbuf); + if (f_rightside && !(csv || tsv || (sv != NULL))) + printf("\n"); +} +#endif /* HAVE_LONG_LONG */ + + +static void +StatLineF( + char *label, + char *units, + char *format, + double argleft, + double argright) +{ + StatLineFieldF(label,units,format,argleft,0); + StatLineFieldF(label,units,format,argright,1); +} + + + + +static void +StatLineField( + char *label, + char *units, + char *format, + u_long arg, + int f_rightside) +{ + char valbuf[20]; + + /* determine the value to print */ + snprintf(valbuf,sizeof(valbuf),format,arg); + + /* print the field */ + if(!(csv || tsv || (sv != NULL))) + printf(" "); + StatLineOne(label, units, valbuf); + if (f_rightside && !(csv || tsv || (sv != NULL))) + printf("\n"); +} + + + +static void +StatLineFieldF( + char *label, + char *units, + char *format, + double arg, + int f_rightside) +{ + int printable; + char valbuf[20]; + + /* see if the float argument is printable */ + printable = finite(arg); + + /* determine the value to print */ + if (printable) + snprintf(valbuf,sizeof(valbuf),format,arg); + + /* print the field */ + if(!(csv || tsv || (sv != NULL))) + printf(" "); + if (printable) + StatLineOne(label, units, valbuf); + else + StatLineOne(label, "", "NA"); + if (f_rightside && !(csv || tsv || (sv != NULL))) + printf("\n"); +} + + +static void +StatLineOne( + char *label, + char *units, + char *value) +{ + char labbuf[20]; + + /* format the label */ + snprintf(labbuf,sizeof(labbuf), "%s:", label); + + /* print the field */ + if(csv || tsv || (sv != NULL)) { + printf("%15s%s", value, sp); + /* Count the fields printed until this point. Used as a guard with the + * -separated-values option to ensure correct alignment of headers + * and field values. + */ + sv_print_count++; + } + else + printf("%-18s %9s %-5s", labbuf, value, units); +} + + +char * +elapsed2str( + double etime) +{ + static char buf[80]; + u_long etime_secs; + u_long etime_usecs; + + etime_secs = etime / 1000000.0; + etime_usecs = 1000000 * (etime/1000000.0 - (double)etime_secs); + snprintf(buf,sizeof(buf),"%lu:%02lu:%02lu.%06lu", + etime_secs / (60 * 60), + etime_secs % (60 * 60) / 60, + (etime_secs % (60 * 60)) % 60, + etime_usecs); + return(buf); +} + + +void +UDPPrintBrief( + udp_pair *pup) +{ + ucb *pab = &pup->a2b; + ucb *pba = &pup->b2a; + static int max_width = -1; + + /* determine the maximum connection name width to make it nice */ + if (max_width == -1) { + int ix; + int len; + udp_pair *tmp_pup; + + for (ix = 0; ix <= num_udp_pairs; ++ix) { + tmp_pup = utp[ix]; + + len = strlen(UDPFormatBrief(tmp_pup)); + if (len > max_width) + max_width = len; + } + if (debug > 2) + fprintf(stderr,"Max name width: %d\n", max_width); + } + + + /* new version */ + fprintf(stdout,"%*s", -max_width, UDPFormatBrief(pup)); + + fprintf(stdout," %4" FS_ULL ">", pab->packets); + fprintf(stdout," %4" FS_ULL "<", pba->packets); + + fprintf(stdout,"\n"); +} + + +static char * +UDPFormatBrief( + udp_pair *pup) +{ + ucb *pab = &pup->a2b; + ucb *pba = &pup->b2a; + static char infobuf[100]; + + snprintf(infobuf,sizeof(infobuf),"%s - %s (%s2%s)", + pup->a_endpoint, pup->b_endpoint, + pab->host_letter, pba->host_letter); + return(infobuf); +} + + +/* Print the header if comma-separated-values or tab-separated-values + * has been requested. + */ +void +PrintSVHeader( + void) +{ + /* NOTE: If you have added new fields of output to be printed in + * PrintTrace(), make sure you update the header-list here too, so that the + * new field you have added also has a header in the --csv/--tsv/--sv + * output. + */ + + /* Headers for long output requested with comma/tab/-separated- values + * Split up into two headers, since the OWIN stats printed when the + * -lW option is given, generates fields of output that get printed in the + * middle of the output generated with just the -l option. + */ + + char *svHeader1[] = { + "conn_#" , + "host_a" , "host_b", + "port_a" , "port_b", + "first_packet" , "last_packet", + "total_packets_a2b" , "total_packets_b2a", + "resets_sent_a2b" , "resets_sent_b2a", + "ack_pkts_sent_a2b" , "ack_pkts_sent_b2a", + "pure_acks_sent_a2b" , "pure_acks_sent_b2a", + "sack_pkts_sent_a2b" , "sack_pkts_sent_b2a", + "dsack_pkts_sent_a2b" , "dsack_pkts_sent_b2a", + "max_sack_blks/ack_a2b" , "max_sack_blks/ack_b2a", + "unique_bytes_sent_a2b" , "unique_bytes_sent_b2a", + "actual_data_pkts_a2b" , "actual_data_pkts_b2a", + "actual_data_bytes_a2b" , "actual_data_bytes_b2a", + "rexmt_data_pkts_a2b" , "rexmt_data_pkts_b2a", + "rexmt_data_bytes_a2b" , "rexmt_data_bytes_b2a", + "zwnd_probe_pkts_a2b" , "zwnd_probe_pkts_b2a", + "zwnd_probe_bytes_a2b" , "zwnd_probe_bytes_b2a", + "outoforder_pkts_a2b" , "outoforder_pkts_b2a", + "pushed_data_pkts_a2b" , "pushed_data_pkts_b2a", + "SYN/FIN_pkts_sent_a2b" , "SYN/FIN_pkts_sent_b2a", + "req_1323_ws/ts_a2b" , "req_1323_ws/ts_b2a", + "adv_wind_scale_a2b" , "adv_wind_scale_b2a", + "req_sack_a2b" , "req_sack_b2a", + "sacks_sent_a2b" , "sacks_sent_b2a", + "urgent_data_pkts_a2b" , "urgent_data_pkts_b2a", + "urgent_data_bytes_a2b" , "urgent_data_bytes_b2a", + "mss_requested_a2b" , "mss_requested_b2a", + "max_segm_size_a2b" , "max_segm_size_b2a", + "min_segm_size_a2b" , "min_segm_size_b2a", + "avg_segm_size_a2b" , "avg_segm_size_b2a", + "max_win_adv_a2b" , "max_win_adv_b2a", + "min_win_adv_a2b" , "min_win_adv_b2a", + "zero_win_adv_a2b" , "zero_win_adv_b2a", + "avg_win_adv_a2b" , "avg_win_adv_b2a" + }; + #define SV_HEADER1_COLUMN_COUNT (sizeof(svHeader1)/sizeof(char*)) + + char *svHeader2[] = { + "initial_window_bytes_a2b" , "initial_window_bytes_b2a", + "initial_window_pkts_a2b" , "initial_window_pkts_b2a", + "ttl_stream_length_a2b" , "ttl_stream_length_b2a", + "missed_data_a2b" , "missed_data_b2a", + "truncated_data_a2b" , "truncated_data_b2a", + "truncated_packets_a2b" , "truncated_packets_b2a", + "data_xmit_time_a2b" , "data_xmit_time_b2a", + "idletime_max_a2b" , "idletime_max_b2a", + "hardware_dups_a2b" , "hardware_dups_b2a", + "throughput_a2b" , "throughput_b2a" + }; + + #define SV_HEADER2_COLUMN_COUNT (sizeof(svHeader2)/sizeof(char*)) + + /* Headers to be printed if the OWIN stats are requested. + */ + + char *svOWINHeader[] = { + "max_owin_a2b" , "max_owin_b2a", + "min_non-zero_owin_a2b" , "min_non-zero_owin_b2a", + "avg_owin_a2b" , "avg_owin_b2a", + "wavg_owin_a2b" , "wavg_owin_b2a" + }; + + #define SV_OWIN_HEADER_COLUMN_COUNT (sizeof(svOWINHeader)/sizeof(char*)) + + + /* Headers for RTT, to be printed for long output requested with + * comma/tab/-separated- values. + */ + char *svRTTHeader[] = { + "RTT_samples_a2b" , "RTT_samples_b2a", + "RTT_min_a2b" , "RTT_min_b2a", + "RTT_max_a2b" , "RTT_max_b2a", + "RTT_avg_a2b" , "RTT_avg_b2a", + "RTT_stdev_a2b" , "RTT_stdev_b2a", + "RTT_from_3WHS_a2b" , "RTT_from_3WHS_b2a", + "RTT_full_sz_smpls_a2b" , "RTT_full_sz_smpls_b2a", + "RTT_full_sz_min_a2b" , "RTT_full_sz_min_b2a", + "RTT_full_sz_max_a2b" , "RTT_full_sz_max_b2a", + "RTT_full_sz_avg_a2b" , "RTT_full_sz_avg_b2a", + "RTT full_sz_stdev_a2b" , "RTT_full_sz_stdev_b2a", + "post-loss_acks_a2b" , "post-loss_acks_b2a", + "ambiguous_acks_a2b" , "ambiguous_acks_b2a", + "RTT_min_(last)_a2b" , "RTT_min_(last)_b2a", + "RTT_max_(last)_a2b" , "RTT_max_(last)_b2a", + "RTT_avg_(last)_a2b" , "RTT_avg_(last)_b2a", + "RTT_sdv_(last)_a2b" , "RTT_sdv_(last)_b2a", + "segs_cum_acked_a2b" , "segs_cum_acked_b2a", + "duplicate_acks_a2b" , "duplicate_acks_b2a", + "triple_dupacks_a2b" , "triple_dupacks_b2a", + "max_#_retrans_a2b" , "max_#_retrans_b2a", + "min_retr_time_a2b" , "min_retr_time_b2a", + "max_retr_time_a2b" , "max_retr_time_b2a", + "avg_retr_time_a2b" , "avg_retr_time_b2a", + "sdv_retr_time_a2b" , "sdv_retr_time_b2a" + }; + #define SV_RTT_HEADER_COLUMN_COUNT (sizeof(svRTTHeader)/sizeof(char*)) + + /* Local Variables */ + u_int i = 0; /* Counter */ + + /* Set the separator */ + if(csv || tsv) { + /* Initialize the separator buffer */ + sp = (char *)malloc(sizeof(char *) * 2); + memset(sp, 0, sizeof(sp)); + /* Set it */ + if(csv) + snprintf(sp, sizeof(sp), ","); + else if(tsv) + snprintf(sp, sizeof(sp), "\t"); + } + else if (sv != NULL) + { + /* Look for escape sequence and remove the extra '\', + * the shell puts it in there. + * We will do this only for the escape sequence '\t' since that is + * the only useful one, else the user probably meant something + * else and things get messy. + */ + if(strncmp(sv, "\\t", 2) == 0) { + /* Initialize the separator buffer and set it */ + sp = (char *)malloc(sizeof(char *) * 2); + memset(sp, 0, sizeof(sp)); + snprintf(sp, sizeof(sp), "\t"); + } + else /* Just use the string the user has provided */ + sp = strdup(sv); + } + + /* Print the column headings (the field names) */ + for (i=0; i3) { + fprintf(stderr,"SV_HEADER_COUNT : -l alone = %d\n", \ + (int)(SV_HEADER1_COLUMN_COUNT + SV_HEADER2_COLUMN_COUNT)); + fprintf(stderr," : -W alone = %d\n", \ + (int)SV_OWIN_HEADER_COLUMN_COUNT); + fprintf(stderr," : -r alone = %d\n", \ + (int)SV_RTT_HEADER_COLUMN_COUNT); + + fprintf(stderr,"sv_expected_count=%u\n",sv_expected_count); + } +} diff --git a/plotter.c b/plotter.c new file mode 100644 index 0000000..9d9442e --- /dev/null +++ b/plotter.c @@ -0,0 +1,922 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/plotter.c,v 5.18 2003/11/19 14:38:04 sdo Exp $"; + + + +/* info that I keep about each plotter */ +struct plotter_info { + MFILE *fplot; /* the file that hold the plot */ + tcb *p2plast; /* the TCB that this goes with (if any) */ + timeval zerotime; /* first time stamp in this plot (see -z) */ + char *filename; /* redundant copy of name for debugging */ + Bool header_done; /* Flag indicating plotter header written to file */ + Bool axis_switched; /* Switch x & y axis types. + * (Needed for Time Line Charts, + * Default = FALSE) + */ + char *title; /* Plotter title */ + char *xlabel; /* Plotter x-axis label */ + char *ylabel; /* Plotter y-axis label */ +}; + + + +/* locally global parameters */ +static int max_plotters; +static PLOTTER plotter_ix = NO_PLOTTER; +static char *temp_color = NULL; +static struct plotter_info *pplotters; + + +/* local routine declarations */ +static char *xp_timestamp(PLOTTER pl, struct timeval time); +static char *TSGPlotName(tcb *plast, PLOTTER, char *suffix); +static void DoPlot(PLOTTER pl, char *fmt, ...); +static void WritePlotHeader(PLOTTER pl); +static void CallDoPlot(PLOTTER pl, char *plot_cmd, int plot_argc, ...); + + +/* + * Return a string suitable for use as a timestamp in the xplot output. + * sdo fix: originally, we were just plotting to the accuracy of 1/10 ms + * this was mostly to help keep the .xpl files from being too large. However, + * on faster networks this just isn't enough, so we'll now use all 6 digits + * of the microsecond counter. Note that there's no guarantee that the + * timestamps are really all that accurate! + */ +static char * +xp_timestamp( + PLOTTER pl, + struct timeval time) +{ + static char bufs[4][20]; /* several of them for multiple calls in one printf */ + static int bufix = 0; + unsigned secs; + unsigned usecs; + unsigned decimal; + char *pbuf; + struct plotter_info *ppi; + + ppi = &pplotters[pl]; + + /* see if we're graphing from "0" OR if the axis type is switched */ + if (graph_time_zero || ppi->axis_switched) { + + + if (ZERO_TIME(&ppi->zerotime)) { + /* set "zero point" */ + ppi->zerotime = time; + } + + /* (in)sanity check */ + if (tv_lt(time,ppi->zerotime)) { + fprintf(stderr,"Internal error in plotting (plot file '%s')...\n\ +ZERO-based X-axis plotting requested and elements are not plotted in\n\ +increasing time order. Try without the '-z' flag\n", + ppi->filename); +/* exit(-5); */ + time.tv_sec = time.tv_usec = 0; + } else { + /* computer offset from first plotter point */ + tv_sub(&time, ppi->zerotime); + } + } + + /* calculate time components */ + secs = time.tv_sec; + usecs = time.tv_usec; + decimal = usecs; + + /* use one of 4 rotating static buffers (for multiple calls per printf) */ + bufix = (bufix+1)%4; + pbuf = bufs[bufix]; + + snprintf(pbuf,sizeof(bufs[bufix]),"%u.%06u",secs,decimal); + + return(pbuf); +} + + + +void +plot_init(void) +{ + max_plotters = 256; /* just a default, make more on the fly */ + + pplotters = MallocZ(max_plotters * sizeof(struct plotter_info)); +} + + +static void +plotter_makemore(void) +{ + int new_max_plotters = max_plotters * 4; + + if (debug) + fprintf(stderr,"plotter: making more space for %d total plotters\n", + new_max_plotters); + + /* reallocate the memory to make more space */ + pplotters = ReallocZ(pplotters, + max_plotters * sizeof(struct plotter_info), + new_max_plotters * sizeof(struct plotter_info)); + + max_plotters = new_max_plotters; +} + + + + +/* max number of letters in endpoint name */ +/* (8 allows 26**8 different endpoints (209,000,000,000) + probably plenty for now!!!!!) */ + +/* #define MAX_HOSTLETTER_LEN 8 + Moving this definition to tcptrace.h so other modules can use it. */ + +char * +HostLetter( + llong ix) +{ + static char name[MAX_HOSTLETTER_LEN+1]; + static char *pname; + + /* basically, just convert to base 26 */ + pname = &name[sizeof(name)-1]; + *pname-- = '\00'; + while (pname >= name) { + unsigned digit = ix % 26; + *pname-- = 'a'+digit; + ix = (ix / 26) - 1; + if (ix == -1) + return(pname+1); + } + fprintf(stderr,"Fatal, too many hosts to name (max length %d)\n\nNOTE:\nIf you are using gcc version 2.95.3, then this may be a compiler bug. This particular version\nis known to generate incorrect assembly code when used with CCOPT=-O2.\nSuggested fixes are:\n 1. Update gcc to the latest version and recompile tcptrace.\n 2. Use the same version of gcc, but edit the tcptrace Makefile, setting CCOPT=-O instead of\n CCOPT=-O2, and then recompile tcptrace.\nEither of these steps should hopefully fix the problem.\n\n", MAX_HOSTLETTER_LEN); + exit(-1); + return(NULL); /* NOTREACHED */ +} + + +char * +NextHostLetter(void) +{ + static llong count = 0; + return(HostLetter(count++)); +} + + + +static char * +TSGPlotName( + tcb *plast, + PLOTTER pl, + char *suffix) +{ + static char filename[25]; + + + snprintf(filename,sizeof(filename),"%s2%s%s", + plast->host_letter, plast->ptwin->host_letter, suffix); + + return(filename); +} + + + +static void +DoPlot( + PLOTTER pl, + char *fmt, + ...) +{ + va_list ap; + MFILE *f = NULL; + struct plotter_info *ppi; + + va_start(ap,fmt); + +/* if (!graph_tsg) */ +/* return; */ + + if (pl == NO_PLOTTER) { + va_end(ap); + return; + } + + if (pl > plotter_ix) { + fprintf(stderr,"Illegal plotter: %d\n", pl); + exit(-1); + } + + ppi = &pplotters[pl]; + + if ((f = ppi->fplot) == NULL) { + va_end(ap); + return; + } + + /* Write the plotter header if not already written */ + if(!ppi->header_done) + WritePlotHeader(pl); + + Mvfprintf(f,fmt,ap); + if (temp_color) { + Mfprintf(f," %s",temp_color); + temp_color = NULL; + } + Mfprintf (f,"\n"); + + va_end(ap); + + return; +} + + +PLOTTER +new_plotter( + tcb *plast, + char *filename, /* if NULL, use default name from plast */ + char *title, + char *xlabel, + char *ylabel, + char *suffix) +{ + PLOTTER pl; + MFILE *f; + struct plotter_info *ppi; + + ++plotter_ix; + if (plotter_ix >= max_plotters) { + plotter_makemore(); + } + + pl = plotter_ix; + ppi = &pplotters[pl]; + + if (filename == NULL) + filename = TSGPlotName(plast,pl,suffix); + else if (suffix != NULL) { + char buf[100]; + snprintf(buf,sizeof(buf),"%s%s", filename, suffix); + filename = buf; + } + + if (debug) + fprintf(stderr,"Plotter %d file is '%s'\n", pl, filename); + + if ((f = Mfopen(filename,"w")) == NULL) { + perror(filename); + return(NO_PLOTTER); + } + + ppi->fplot = f; + ppi->p2plast = plast; + ppi->filename = strdup(filename); + ppi->axis_switched = FALSE; + ppi->header_done = FALSE; + + /* Save these fields to be writtn to the plotter header later in DoPlot() */ + ppi->title = strdup(title); + ppi->xlabel = strdup(xlabel); + ppi->ylabel = strdup(ylabel); + + return(pl); +} + + +void +plotter_done(void) +{ + PLOTTER pl; + MFILE *f; + char *fname; + static struct dstring *xplot_cmd_buff=NULL; + + if(plotter_ix>0) { + if(xplot_all_files) { + xplot_cmd_buff=DSNew(); + DSAppendString(xplot_cmd_buff,"xplot"); + DSAppendString(xplot_cmd_buff," "); + if(xplot_args!=NULL) { + DSAppendString(xplot_cmd_buff,xplot_args); + DSAppendString(xplot_cmd_buff," "); + } + } + } + + for (pl = 0; pl <= plotter_ix; ++pl) { + struct plotter_info *ppi = &pplotters[pl]; + + + if ((f = ppi->fplot) == NULL) + continue; + + /* Write the plotter header if not already written */ + if(!ppi->header_done) + WritePlotHeader(pl); + + if (!ignore_non_comp || + ((ppi->p2plast != NULL) && (ConnComplete(ppi->p2plast->ptp)))) { + Mfprintf(f,"go\n"); + Mfclose(f); + } else { + fname = ppi->p2plast->tsg_plotfile; + if (debug) + fprintf(stderr,"Removing incomplete plot file '%s'\n", + fname); + Mfclose(f); + if (unlink(fname) != 0) + perror(fname); + } + + if(xplot_all_files){ + if(output_file_dir!=NULL) { + DSAppendString(xplot_cmd_buff,output_file_dir); + DSAppendString(xplot_cmd_buff,"/"); + } + DSAppendString(xplot_cmd_buff,ppi->filename); + DSAppendString(xplot_cmd_buff," "); + } + } + + if(plotter_ix>0) { + if(xplot_all_files) { + fprintf(stdout,"%s\n",DSVal(xplot_cmd_buff)); + system(DSVal(xplot_cmd_buff)); + DSDestroy(&xplot_cmd_buff); + } + } +} + + + +void +plotter_temp_color( + PLOTTER pl, + char *color) +{ + if (colorplot) + temp_color = color; +} + + +void +plotter_perm_color( + PLOTTER pl, + char *color) +{ + if (colorplot) + CallDoPlot(pl, color, 0); +} + + +void +plotter_line( + PLOTTER pl, + struct timeval t1, + u_long x1, + struct timeval t2, + u_long x2) +{ + CallDoPlot(pl,"line", 4, t1, x1, t2, x2); +} + + +void +plotter_dline( + PLOTTER pl, + struct timeval t1, + u_long x1, + struct timeval t2, + u_long x2) +{ + CallDoPlot(pl,"dline", 4, t1, x1, t2, x2); +} + + +void +plotter_diamond( + PLOTTER pl, + struct timeval t, + u_long x) +{ + CallDoPlot(pl,"diamond", 2, t, x); +} + + +void +plotter_dot( + PLOTTER pl, + struct timeval t, + u_long x) +{ + CallDoPlot(pl,"dot", 2, t, x); +} + + +void +plotter_plus( + PLOTTER pl, + struct timeval t, + u_long x) +{ + CallDoPlot(pl,"plus", 2, t, x); +} + + +void +plotter_box( + PLOTTER pl, + struct timeval t, + u_long x) +{ + CallDoPlot(pl,"box", 2, t, x); +} + + + +void +plotter_arrow( + PLOTTER pl, + struct timeval t, + u_long x, + char dir) +{ + char arrow_type[7]; + snprintf(arrow_type, sizeof(arrow_type), "%carrow", dir); + CallDoPlot(pl, arrow_type, 2, t, x); +} + + +void +plotter_uarrow( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_arrow(pl,t,x,'u'); +} + + +void +plotter_darrow( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_arrow(pl,t,x,'d'); +} + + +void +plotter_rarrow( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_arrow(pl,t,x,'r'); +} + + +void +plotter_larrow( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_arrow(pl,t,x,'l'); +} + + +void +plotter_tick( + PLOTTER pl, + struct timeval t, + u_long x, + char dir) +{ + char tick_type[6]; + snprintf(tick_type, sizeof(tick_type), "%ctick", dir); + CallDoPlot(pl, tick_type, 2, t, x); +} + + +void +plotter_dtick( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_tick(pl,t,x,'d'); +} + + +void +plotter_utick( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_tick(pl,t,x,'u'); +} + + +void +plotter_ltick( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_tick(pl,t,x,'l'); +} + + +void +plotter_rtick( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_tick(pl,t,x,'r'); +} + + +void +plotter_htick( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_tick(pl,t,x,'h'); +} + + +void +plotter_vtick( + PLOTTER pl, + struct timeval t, + u_long x) +{ + plotter_tick(pl,t,x,'v'); +} + + + +/* don't plot ANYTHING, just make sure ZERO point is set! */ +void +plotter_nothing( + PLOTTER pl, + struct timeval t) +{ + char *ret; + ret = xp_timestamp(pl,t); + if (debug > 10) + printf("plotter_nothing(%s) gets '%s'\n", ts2ascii(&t), ret); +} + + + +void +plotter_text( + PLOTTER pl, + struct timeval t, + u_long x, + char *where, + char *str) +{ + char text_type[6]; + snprintf(text_type, sizeof(text_type), "%stext", where); + + CallDoPlot(pl, text_type, 2, t, x); + /* fix by Bill Fenner - Wed Feb 5, 1997, thanks */ + /* This is a little ugly. Text commands take 2 lines. */ + /* A temporary color could have been */ + /* inserted after that line, but would NOT be inserted after */ + /* the next line, so we'll be OK. I can't think of a better */ + /* way right now, and this works fine (famous last words) */ + CallDoPlot(pl, str, 0); +} + +void +plotter_invisible( + PLOTTER pl, + struct timeval t, + u_long x) +{ + CallDoPlot(pl,"invisible", 2, t, x); +} + + +/* high-level line-drawing package */ +struct pl_line { + char *color; + char *label; + int last_y; + timeval last_time; + PLOTTER plotter; + Bool labelled; +}; + + +PLINE +new_line( + PLOTTER plotter, + char *label, + char *color) +{ + struct pl_line *pl; + + pl = MallocZ(sizeof(struct pl_line)); + pl->plotter = plotter; + pl->label = label; + pl->color = color; + + return(pl); +} + + +void +extend_line( + PLINE pline, + timeval xval, + int yval) +{ + PLOTTER p; + + if (!pline) + return; + + p = pline->plotter; + +#ifdef OLD + /* attach a label to the first non-zero point */ + if (!pline->labelled) { + if (yval != 0) { + plotter_temp_color(p, pline->color); + plotter_text(p, xval, yval, "l", pline->label); + pline->labelled = 1; + } + } +#endif + + /* attach a label midway on the first line segment above 0 */ + /* for whom the second point is NOT 0 */ + if (!pline->labelled) { + if ((yval != 0) && (!ZERO_TIME(&pline->last_time))) { + timeval tv_elapsed; + timeval tv_avg; + int avg_yval; + + /* computer elapsed time for these 2 points */ + tv_elapsed = xval; + tv_sub(&tv_elapsed,pline->last_time); + + /* divide elapsed time by 2 */ + tv_elapsed.tv_sec /= 2; + tv_elapsed.tv_usec /= 2; + + /* add 1/2 of the elapsed time to the oldest point */ + /* (giving us the average time) */ + tv_avg = pline->last_time; + tv_add(&tv_avg, tv_elapsed); + + /* average the Y values */ + avg_yval = (1 + pline->last_y+yval)/2; + /* (rounding UP, please) */ + + /* draw the label */ + plotter_temp_color(p, pline->color); + plotter_text(p, tv_avg, avg_yval, "l", pline->label); + + /* remember that it's been done */ + pline->labelled = 1; + } + } + + /* draw a dot at the current point */ + plotter_perm_color(p, pline->color); + plotter_dot(p, xval, yval); + + /* if this isn't the FIRST point, connect with a line */ + if (!ZERO_TIME(&pline->last_time)) { + plotter_line(p, + xval, yval, + pline->last_time, pline->last_y); + } + + /* remember this point for the next line segment */ + pline->last_time = xval; + pline->last_y = yval; +} + +/* This function may be called with 0, 2 or 4 arguments depending on plot command. */ +static void +CallDoPlot( + PLOTTER pl, + char *plot_cmd, + int plot_argc, + ...) +{ + struct timeval t1; + u_long x1 = 0; + struct timeval t2; + u_long x2 = 0; + va_list ap; + struct plotter_info *ppi; + char fmt[200]; + + if (pl == NO_PLOTTER) + return; + + if (pl > plotter_ix) { + fprintf(stderr,"Illegal plotter: %d\n", pl); + exit(-1); + } + + ppi = &pplotters[pl]; + + /* Get the arguments from the variable list */ + va_start(ap, plot_argc); + if(plot_argc > 0) + { + t1 = va_arg(ap, struct timeval); + x1 = va_arg(ap, u_long); + } + if(plot_argc > 2) + { + t2 = va_arg(ap, struct timeval); + x2 = va_arg(ap, u_long); + } + va_end(ap); + + memset(fmt, 0, sizeof(fmt)); + + if(ppi->axis_switched) { + switch(plot_argc) { + case 0: + snprintf(fmt, sizeof(fmt), "%s", plot_cmd); + DoPlot(pl, fmt); + break; + case 2: + snprintf(fmt, sizeof(fmt), "%s %%u -%%s", plot_cmd); + DoPlot(pl, fmt, + x1, xp_timestamp(pl,t1)); + break; + case 4: + snprintf(fmt, sizeof(fmt), "%s %%u -%%s %%u -%%s", plot_cmd); + DoPlot(pl, fmt, + x1, xp_timestamp(pl,t1), + x2, xp_timestamp(pl,t2)); + break; + default: + fprintf(stderr, "CallDoPlot: Illegal number of arguments (%d)\n", plot_argc); + } + } + else { + switch(plot_argc) { + case 0: + snprintf(fmt, sizeof(fmt), "%s", plot_cmd); + DoPlot(pl, fmt); + break; + case 2: + snprintf(fmt, sizeof(fmt), "%s %%s %%u", plot_cmd); + DoPlot(pl, fmt, + xp_timestamp(pl,t1), x1); + break; + case 4: + snprintf(fmt, sizeof(fmt), "%s %%s %%u %%s %%u", plot_cmd); + DoPlot(pl, fmt, + xp_timestamp(pl,t1), x1, + xp_timestamp(pl,t2), x2); + break; + default: + fprintf(stderr, "CallDoPlot: Illegal number of arguments (%d)\n", plot_argc); + } + } + + return; +} + +static void +WritePlotHeader( + PLOTTER pl) +{ + MFILE *f = NULL; + struct plotter_info *ppi; + + if (pl == NO_PLOTTER) + return; + + if (pl > plotter_ix) { + fprintf(stderr,"Illegal plotter: %d\n", pl); + exit(-1); + } + + ppi = &pplotters[pl]; + + if ((f = ppi->fplot) == NULL) + return; + + if(ppi->axis_switched) { + /* Header for the Time Line Charts */ + Mfprintf(f,"%s %s\n", "unsigned", "dtime"); + } + else { + /* Header for all other plots */ + /* graph coordinates... */ + /* X coord is timeval unless graph_time_zero is true */ + /* Y is signed except when it's a sequence number */ + /* ugly hack -- unsigned makes the graphs hard to work with and is + only needed for the time sequence graphs */ + /* suggestion by Michele Clark at UNC - make them double instead */ + Mfprintf(f,"%s %s\n", + graph_time_zero?"dtime":"timeval", + ((strcmp(ppi->ylabel,"sequence number") == 0)&&(!graph_seq_zero))? + "double":"signed"); + } + + if (show_title) { + if (xplot_title_prefix) + Mfprintf(f,"title\n%s %s\n", + ExpandFormat(xplot_title_prefix), + ppi->title); + else + Mfprintf(f,"title\n%s\n", ppi->title); + } + + Mfprintf(f,"xlabel\n%s\n", ppi->xlabel); + Mfprintf(f,"ylabel\n%s\n", ppi->ylabel); + + /* Indicate that the header has now been written to the plotter file */ + ppi->header_done = TRUE; + + return; +} + +/* Switch the x and y axis type (Needed for Time Line Charts. Default = FLASE) */ +void plotter_switch_axis( + PLOTTER pl, + Bool flag) +{ + struct plotter_info *ppi = &pplotters[pl]; + + ppi->axis_switched = flag; +} + diff --git a/pool.c b/pool.c new file mode 100644 index 0000000..89feb15 --- /dev/null +++ b/pool.c @@ -0,0 +1,533 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Marina Bykova + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/pool.c,v 5.6 2003/11/19 14:38:04 sdo Exp $"; + + +/*#include */ +#include +#include +#include +#include +#include + +#include "pool.h" + +#ifndef _BASIC_POOL_H +#define _BASIC_POOL_H + +struct Block { + struct Block *next; +}; + +struct Pool { + unsigned int block_size; /* size of a memory block */ + unsigned int block_no; /* number of block in the pool */ + struct Block *list; /* pointer to a list of free blocks */ + short sorted; /* whether list of blocks should be sorted */ +}; + +#define DFLT_POOLS_NUM 10 /* default number of pools */ +#define DFLT_BLOCKS_NUM 16 /* default number of blocks + in free list */ +#define RESIZE_TIMES 2 /* by how many times we need to increase table + * size for each memory pool */ + +/* global variables */ +static struct Pool *pools = NULL; /* table of memory pools */ +static unsigned table_size = 0; /* size of the pool table */ +static int pool_num = 0; /* number of existing memory pools */ + +/* local routines */ +static void *PoolValloc(const int, const unsigned, unsigned *); +static struct Block *MakeList(const int, void *, const unsigned); +static int PoolRealloc(const int, const unsigned); +static void PoolInsertList(const int, struct Block *); + + +/* + * MakeMemPool - given a block size, create a new memory pool for + * such blocks of memory. Returns pool number or -1 + * in case an error occures. + * NOTE: pool numbers start with 0, so that zero pool number + * is valid. + */ +int +MakeMemPool( + const unsigned bsize, /* block size for a pool */ + const int sorted)/* if non-zero, tells to sort linked list of + free blocks */ +{ + void *buffer = NULL; + unsigned buffer_size = 0; + unsigned old_table_size = 0; + struct Pool *tmp_pools = NULL; /* a pointer to memory pools */ + + if (0) { + printf("MakeMemPool(%0x) called\n", bsize); + } + + /* if pool table doesn't exist yet, create it */ + if (pools == NULL) { + table_size = DFLT_POOLS_NUM; + pools = (struct Pool *)malloc(sizeof(struct Pool)*table_size); + if (pools == NULL) { + fprintf(stderr, "MakeMemPool: cannot allocate memory for pool table: "); + fprintf(stderr, "malloc failed\n"); + exit(1); + } + memset((void *)pools, '\00', sizeof(struct Pool)*table_size); + } + /* if the table exists but we are out of free space in it + * make it bigger + */ + else if (table_size == pool_num) { + old_table_size = table_size; + table_size = old_table_size * RESIZE_TIMES; + if ((tmp_pools = (struct Pool *)realloc((void *)pools, + table_size*sizeof(struct Pool))) + == NULL) { + fprintf(stderr, "MakeMemPool: Cannot allocate memory: realloc failed\n"); + exit(1); + } + else { + pools = tmp_pools; + } + memset(pools+(old_table_size*sizeof(struct Pool)), '\00', + (table_size-old_table_size)*sizeof(struct Pool)); + } + pools[pool_num].block_size = bsize; + + buffer = PoolValloc(pool_num, DFLT_BLOCKS_NUM, &buffer_size); + if (buffer == NULL) { + fprintf(stderr, "MakeMemPool: Cannot allocate memory: PoolValloc failed\n"); + exit(1); + } + pools[pool_num].list = MakeList(pool_num, buffer, buffer_size); + + if (sorted) { + pools[pool_num].sorted = 1; + } + pool_num++; + return (pool_num - 1); +} + +/* + * PoolMalloc - given by pool id and number of blocks, give a block + * of memory for that number of units. + * If successful, returns a pointer, or NULL otherwise + */ +void * +PoolMalloc( + const int poolid, /* pool id */ + const unsigned bytes)/* size of the block (in bytes) */ +{ + unsigned counter = 0; + struct Block *block = NULL; + struct Block *next = NULL; + struct Block *prev = NULL; + struct Block *tmp_prev = NULL; + void *buffer = NULL; + unsigned buffer_size = 0; + struct Block *new_list = NULL; + unsigned bnumber; + + if (0) { + printf("PoolMalloc(%0x, %0x) called.. ", poolid, bytes); + } + + if ((poolid >= pool_num) || (poolid < 0)) { + fprintf(stderr, "PoolMalloc: wrong poolid\n"); + exit(1); + } + if (bytes == 0) { + exit(1); + } + + if ((bytes % pools[poolid].block_size) != 0) { + /* not a whole number of structures */ + fprintf(stderr, "PoolMalloc: cannot allocate '%i' bytes ", bytes); + fprintf(stderr, "for this memory pool\n"); + exit(1); + } + bnumber = bytes / pools[poolid].block_size; + + if (pools[poolid].block_no < bnumber) { + if (PoolRealloc(poolid, bnumber) < 0) { + fprintf(stderr, + "PoolMalloc: cannot allocate enough memory, PoolRealloc failed\n"); + } + } + + if (bnumber > 1) { + /* search for right place and give that number of blocks */ + block = pools[poolid].list; + /* go through the linked list of block searching for bnumber of + *contigious blocks */ + while ((block != NULL) && (counter != bnumber)) { + next = block->next; + /* count number of contigious blocks */ + for (counter = 1; counter < bnumber; counter++) { + if ((block + pools[poolid].block_size*counter) == next) { + tmp_prev = next; + next = next->next; + } + else {/* the block is not contigious, start over */ + block = next; + prev = tmp_prev; + break; + } + } + } + if (block == NULL) {/* continious bytes not found */ + /* call valloc for the block */ + buffer = PoolValloc(poolid, bnumber, &buffer_size); + if (buffer == NULL) { + fprintf(stderr, "PoolMalloc: Cannot allocate memory: PoolValloc failed\n"); + exit(1); + } + new_list = MakeList(poolid, buffer, buffer_size); + block = new_list; + /* save needed number of blocks and add the rest to the linked-list + * of free blocks */ + for (counter = 0; counter < bnumber; counter++) { + new_list = new_list->next; + } + PoolInsertList(poolid, new_list); + } + else {/* block of continious memory is found */ + if (block == pools[poolid].list) { + pools[poolid].list = next; + } + else { + prev->next = next; + } + } + /* reset memory and return the block */ + memset(block, '\00', pools[poolid].block_size*bnumber); + pools[poolid].block_no -= bnumber; + + return block; + } + else {/* only memory for 1 structure is requested */ + /* no need of searching, give the first block in the list */ + block = pools[poolid].list; + pools[poolid].list = block->next; + memset(block, '\00', pools[poolid].block_size); + pools[poolid].block_no--; + + return block; + } +} + + +/* + * PoolValloc - given a pool number and number of blocks we want to use, + * allocate memory at the pagesize boundary for at least that + * number of blocks. Returns a buffer of bsize (contents of + * bsize will be rewritten + */ +static void * +PoolValloc( + const int poolid, /* pool id */ + const unsigned bnumber, /* we will get at least bnumber + of blocks */ + unsigned *bsize) /* size of the returned buffer */ +{ + unsigned pagesize; + void *buffer = NULL; + unsigned buffer_size = 0; + + if (0) { + printf("PoolValloc(%0x, %0x) called\n", poolid, bnumber); + } + + /* find out how many memory pages we need and allocate such amount + * of memory + */ +#if defined(PAGESIZE) + /* there's "supposed" to be a constant... */ + pagesize = PAGESIZE; +#elif defined(_SC_PAGESIZE) + /* but maybe we can get it from the system... */ + pagesize = sysconf(_SC_PAGESIZE); +#else + /* if all else fails, just guess 8k, close enough */ + pagesize = 8*1024; +#endif + buffer_size = (ceil(pools[poolid].block_size * bnumber / + (float)pagesize)) * pagesize; + +#ifdef HAVE_VALLOC + buffer = (void *)valloc(buffer_size); +#else /* HAVE_VALLOC */ +#ifdef HAVE_MEMALIGN + buffer = (void *)memalign(buffer_size, pagesize); +#else /* HAVE_MEMALIGN */ + buffer = (void *)malloc(buffer_size); +#endif /* HAVE_MEMALOGN */ +#endif /* HAVE_VALLOC */ + if (buffer == NULL) { + fprintf(stderr, "PoolValloc: cannot allocate memory: valloc "); + fprintf(stderr, "(or equivalent function) failed\n"); + exit(1); + } + memset(buffer, '\00', buffer_size); + + /* increase number of available blocks for the pool */ + pools[poolid].block_no += floor(buffer_size/(float)pools[poolid].block_size); + (*bsize) = buffer_size; + + return buffer; +} + +/* + * MakeList - given by a pool id, buffer, and buffer's size, make a linked + * list of free memory blocks for that pool. + * Breaks the buffer into peaces, makes a linked list, and return + * pointer to the list. + */ +static struct Block * +MakeList( + const int poolid, /* pool id */ + void *buffer, /* a buffer to be restructured */ + const unsigned buffer_size) /* the buffer's size */ +{ + struct Block *block = NULL; + struct Block *next = NULL; + + if (0) { + printf("MakeList(%0x, %p, %0x) called\n", poolid, buffer, buffer_size); + } + + block = (struct Block *)buffer; + + /* make a linked list of free memory blocks */ + do { + next = (struct Block *)((char *)block + pools[poolid].block_size); + block->next = next; + block = next; + } while ((char *)next <= + ((char *)buffer + buffer_size - (pools[poolid].block_size*2))); + block->next = NULL; + + return (struct Block *)buffer; +} + +/* + * PoolRealloc - given by a poolid and number of blocks, allocate memory + * on pagesize boundary for at least that number of blocks, + * insert new blocks into the pool's linked list of free blocks. + * If successful, returns 0, or -1 otherwise. + */ +static int +PoolRealloc( + const int poolid, + const unsigned bnumber) +{ + void *buffer = NULL; + unsigned buffer_size; + struct Block *new_list = NULL; + + if (0) { + printf("PoolRealloc(%0x, %0x) called\n", poolid, bnumber); + } + + /* allocate space first */ + buffer = PoolValloc(poolid, bnumber, &buffer_size); + if (buffer == NULL) { + fprintf(stderr, "PoolRealloc: Cannot allocate memory: PoolValloc failed\n"); + exit(1); + } + /* build a linked list from the buffer */ + new_list = MakeList(poolid, buffer, buffer_size); + + /* insert the list */ + if (pools[poolid].list == NULL) { + pools[poolid].list = new_list; + } + else { + PoolInsertList(poolid, new_list); + } + return 0; +} + +/* + * PoolInsertList - given by a pool id and a linked list, insert the list + * into the pool's linked list of free blocks. + */ +static void +PoolInsertList( + const int poolid, + struct Block *new_list) +{ + struct Block *block = NULL; + struct Block *next = NULL; + + if (0) { + printf("PoolInsertList(%0x, %p) called\n", poolid, new_list); + } + if (new_list == NULL) { + return; + } + block = pools[poolid].list; + + if (pools[poolid].sorted) { + /* search for a place to insert new linked list into + * the pool's linked list and insert it */ + if (block > new_list) {/* new list is to inserted at the head */ + next = block; + pools[poolid].list = new_list; + block = new_list; + } + else {/* search for right place for insertion */ + while ((block->next < new_list) && + (block->next != NULL)) { + block = block->next; + } + next = block->next; + block->next = new_list; + } + /* go til the end of the linked-list being inseted and add the rest + * of the old linked-list to the end of it */ + for (; block->next != NULL; block = block->next) + ; + block->next = next; + } + else {/* not sorted */ + /* prepend new linked list to the previous list */ + block = new_list; + while (block->next) + block = block->next; + block->next = pools[poolid].list; + pools[poolid].list = new_list; + } +} + +/* + * PoolFree - given by a pool id and a pointer, free that block of memory + * from the pool. + */ +void +PoolFree( + const int poolid, + void *ptr) +{ + struct Block *block; + struct Block *b, *n; + + if (0) { + printf("PoolFree(%0x, %p) called\n", poolid, ptr); + fflush(stdout); + } + + /* check poolid first */ + if ((poolid >= pool_num) || (poolid < 0)) { + return; + } + if (!ptr) + return; + + memset(ptr, '\00', pools[poolid].block_size); + block = (struct Block *)ptr; + + if (0) { /* this part was used for debugging. slows down dramatically */ + for (b = pools[poolid].list; b; b = b->next) { + if (b == block) { + fprintf(stderr, + "WARNING! PoolFree(%0x, %p) is called for already freed block of memory\n", + poolid, ptr); + return; + } + } + } + + /* linked list for that pool id is empty */ + if (pools[poolid].list == NULL) { + block->next = NULL; + pools[poolid].list = block; + return; + } + + /* insert block into correct locatioin */ + if (pools[poolid].sorted) {/* sorted linked list */ + if (block < pools[poolid].list) { + block->next = pools[poolid].list; + pools[poolid].list = block; + } + else { + b = pools[poolid].list; + while ((b->next < block) && + (b->next != NULL)) { + b = b->next; + } + /* insert after b */ + n = b->next; + b->next = block; + block->next = n; + } + } + else {/* not sorted */ + /* insert into begining of the linked list */ + block->next = pools[poolid].list; + pools[poolid].list = block; + } + + pools[poolid].block_no++; +} + +#endif diff --git a/pool.h b/pool.h new file mode 100644 index 0000000..2e1203c --- /dev/null +++ b/pool.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Marina Bykova + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ +#ifndef _POOL_H +#define _POOL_H +static char const GCC_UNUSED rcsid_pool[] = + "@(#)$Header: /usr/local/cvs/tcptrace/pool.h,v 5.4 2003/11/19 14:38:08 sdo Exp $"; + +extern int debug; + +int MakeMemPool(const unsigned bsize, const int sorted); + +void *PoolMalloc(const int poolid, const unsigned bytes); + +void PoolFree(const int poolid, void *prt); + +#endif + diff --git a/poolaccess.c b/poolaccess.c new file mode 100644 index 0000000..3ce3e56 --- /dev/null +++ b/poolaccess.c @@ -0,0 +1,214 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Marina Bykova + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/poolaccess.c,v 5.5 2003/11/19 14:38:04 sdo Exp $"; + + +static long tcp_pair_pool = -1; +static long udp_pair_pool = -1; +static long seqspace_pool = -1; +static long ptp_snap_pool = -1; +static long ptp_ptr_pool = -1; +static long segment_pool = -1; +static long quadrant_pool = -1; + +tcp_pair * +MakeTcpPair( + void) +{ + tcp_pair *ptr = NULL; + + if (tcp_pair_pool < 0) { + tcp_pair_pool = MakeMemPool(sizeof(tcp_pair), 0); + } + + ptr = PoolMalloc(tcp_pair_pool, sizeof(tcp_pair)); + return ptr; +} + +void +FreeTcpPair( + tcp_pair *ptr) +{ + PoolFree(tcp_pair_pool, ptr); +} + +udp_pair * +MakeUdpPair( + void) +{ + udp_pair *ptr = NULL; + + if (udp_pair_pool < 0) { + udp_pair_pool = MakeMemPool(sizeof(udp_pair), 0); + } + + ptr = PoolMalloc(udp_pair_pool, sizeof(udp_pair)); + return ptr; +} + +void +FreeUdpPair( + udp_pair *ptr) +{ + PoolFree(udp_pair_pool, ptr); +} + +seqspace * +MakeSeqspace( + void) +{ + seqspace *ptr = NULL; + + if (seqspace_pool < 0) { + seqspace_pool = MakeMemPool(sizeof(seqspace), 0); + } + + ptr = PoolMalloc(seqspace_pool, sizeof(seqspace)); + return ptr; +} + +void +FreeSeqspace( + seqspace *ptr) +{ + PoolFree(seqspace_pool, ptr); +} + +ptp_snap * +MakePtpSnap( + void) +{ + ptp_snap *ptr = NULL; + + if (ptp_snap_pool < 0) { + ptp_snap_pool = MakeMemPool(sizeof(ptp_snap), 0); + } + + ptr = PoolMalloc(ptp_snap_pool, sizeof(ptp_snap)); + return ptr; +} + +void +FreePtpSnap( + ptp_snap *ptr) +{ + PoolFree(ptp_snap_pool, ptr); +} + +ptp_ptr * +MakePtpPtr( + void) +{ + ptp_ptr *ptr = NULL; + + if (ptp_ptr_pool < 0) { + ptp_ptr_pool = MakeMemPool(sizeof(ptp_ptr), 0); + } + + ptr = PoolMalloc(ptp_ptr_pool, sizeof(ptp_ptr)); + return ptr; +} + +void +FreePtpPtr( + ptp_ptr *ptr) +{ + PoolFree(ptp_ptr_pool, ptr); +} + +segment * +MakeSegment( + void) +{ + segment *ptr = NULL; + + if (segment_pool < 0) { + segment_pool = MakeMemPool(sizeof(segment), 0); + } + + ptr = PoolMalloc(segment_pool, sizeof(segment)); + return ptr; +} + +void +FreeSegment( + segment *ptr) +{ + PoolFree(segment_pool, ptr); +} + +quadrant * +MakeQuadrant( + void) +{ + quadrant *ptr = NULL; + + if (quadrant_pool < 0) { + quadrant_pool = MakeMemPool(sizeof(quadrant), 0); + } + + ptr = PoolMalloc(quadrant_pool, sizeof(quadrant)); + return ptr; +} + +void +FreeQuadrant( + quadrant *ptr) +{ + PoolFree(quadrant_pool, ptr); +} diff --git a/print.c b/print.c new file mode 100644 index 0000000..b5df552 --- /dev/null +++ b/print.c @@ -0,0 +1,786 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/print.c,v 5.27 2003/11/19 14:38:05 sdo Exp $"; + + +/* + * print.c -- packet printing routines + */ + + + +/* local routines */ +static void printeth_packet(struct ether_header *); +static void printip_packet(struct ip *, void *plast); +static void printtcp_packet(struct ip *, void *plast, tcb *tcb); +static void printudp_packet(struct ip *, void *plast); +static char *ParenServiceName(portnum); +static char *ParenHostName(struct ipaddr addr); +static void printipv4(struct ip *pip, void *plast); +static void printipv6(struct ipv6 *pipv6, void *plast); +static char *ipv6addr2str(struct in6_addr addr); +static void printipv4_opt_addrs(char *popt, int ptr, int len); +static char *PrintSeqRep(tcb *ptcb, u_long seq); + + + +/* Resulting string format: "Fri Sep 13 00:00:00.123456 1986" */ +/* 1 2 3 */ +/* 0123456789012345678901234567890 */ +char * +ts2ascii( + struct timeval *ptime) +{ + static char buf[32]; + struct tm *ptm; + char *now; + int decimal; + + if (ZERO_TIME(ptime)) + return(" "); + + ptm = localtime((time_t *)&ptime->tv_sec); + now = asctime(ptm); + + /* splice in the microseconds */ + now[19] = '\00'; +/* decimal = (ptime->tv_usec + 50) / 100;*/ /* for 4 digits */ + decimal = ptime->tv_usec; /* for 6 digits */ + + now[24] = '\00'; /* nuke the newline */ + snprintf(buf,sizeof(buf), "%s.%06d %s", now, decimal, &now[20]); + + return(buf); +} + +/* same as ts2ascii, but no year */ +char * +ts2ascii_date( + struct timeval *ptime) +{ + static char buf[30]; + struct tm *ptm; + char *now; + int decimal; + + if (ZERO_TIME(ptime)) + return(" "); + + ptm = localtime((time_t *)&ptime->tv_sec); + now = asctime(ptm); + now[24] = '\00'; + +/* decimal = (ptime->tv_usec + 50) / 100;*/ /* for 4 digits */ + decimal = ptime->tv_usec; /* for 6 digits */ + snprintf(buf,sizeof(buf), "%s.%06d", now, decimal); + + return(buf); +} + + +static void +printeth_packet( + struct ether_header *pep) +{ + printf("\tETH Srce: %s\n", Ether_Ntoa((struct ether_addr *)&pep->ether_shost)); + printf("\tETH Dest: %s\n", Ether_Ntoa((struct ether_addr *)&pep->ether_dhost)); + + printf( + hex?"\t Type: 0x%x %s\n":"\t Type: %d %s\n", + ntohs(pep->ether_type), + (ntohs(pep->ether_type) == ETHERTYPE_IP)?"(IP)": + (ntohs(pep->ether_type) == ETHERTYPE_IPV6)?"(IPv6)": + (ntohs(pep->ether_type) == ETHERTYPE_ARP)?"(ARP)": + (ntohs(pep->ether_type) == ETHERTYPE_REVARP)?"(RARP)": + ""); +} + + +static void +printip_packet( + struct ip *pip, + void *plast) +{ + /* print an ipv6 header */ + if (PIP_ISV6(pip)) { + if ((char *)pip+sizeof(struct ipv6)-1 > (char *)plast) { + if (warn_printtrunc) + printf("\t[packet truncated too short for IP details]\n"); + ++ctrunc; + return; + } + printipv6((struct ipv6 *)pip, plast); + return; + } + + if (PIP_ISV4(pip)) { + /* make sure we have enough of the packet */ + if ((char *)pip+sizeof(struct ip)-1 > (char *)plast) { + if (warn_printtrunc) + printf("\t[packet truncated too short for IP details]\n"); + ++ctrunc; + return; + } + printipv4(pip, plast); + return; + } + + /* unknown type */ + printf("Unknown IP version %d\n", PIP_VERS(pip)); +} + + + +static void +printipv4( + struct ip *pip, + void *plast) +{ + u_short offset; + Bool mf; + + /* make sure we have enough of the packet */ + if ((char *)pip+sizeof(struct ip)-1 > (char *)plast) { + if (warn_printtrunc) + printf("\t[packet truncated too short for IP details]\n"); + ++ctrunc; + return; + } + + printf("\tIP VERS: %d\n", IP_V(pip)); + printf("\tIP Srce: %s %s\n", + inet_ntoa(pip->ip_src), + ParenHostName(*IPV4ADDR2ADDR(&pip->ip_src))); + printf("\tIP Dest: %s %s\n", + inet_ntoa(pip->ip_dst), + ParenHostName(*IPV4ADDR2ADDR(&pip->ip_dst))); + + printf( + hex?"\t Type: 0x%x %s\n":"\t Type: %d %s\n", + pip->ip_p, + (pip->ip_p == IPPROTO_UDP)?"(UDP)": + (pip->ip_p == IPPROTO_TCP)?"(TCP)": + (pip->ip_p == IPPROTO_ICMP)?"(ICMP)": + (pip->ip_p == IPPROTO_IGMP)?"(IGMP)": + (pip->ip_p == IPPROTO_EGP)?"(EGP)": + ""); + + printf("\t HLEN: %d\n", IP_HL(pip)*4); + printf("\t TTL: %d\n", pip->ip_ttl); + printf("\t LEN: %d\n", ntohs(pip->ip_len)); + printf("\t ID: %d\n", ntohs(pip->ip_id)); + printf("\t CKSUM: 0x%04x", ntohs(pip->ip_sum)); + if (verify_checksums) + printf(" (%s)", ip_cksum_valid(pip,plast)?"CORRECT":"WRONG"); + printf("\n"); + + /* fragmentation stuff */ + offset = ntohs(pip->ip_off) << 3; + mf = (ntohs(pip->ip_off) & IP_MF) != 0; + if ((offset == 0) && (!mf)) { + printf("\t OFFSET: 0x%04x", ntohs(pip->ip_off)); + } else { + printf("\t OFFSET: 0x%04x (frag: %d bytes at offset %u - %s)", + ntohs(pip->ip_off), + ntohs(pip->ip_len)-IP_HL(pip)*4, + offset, + mf?"More Frags":"Last Frag"); + } + if ((ntohs(pip->ip_off) & IP_DF) != 0) + printf(" Don't Fragment\n"); /* don't fragment */ + + /* print IP options if there are any */ + if (IP_HL(pip) != 5) { + char *popt = (char *)pip + 20; + void *plast_option; + + /* find the last option in the file */ + plast_option = (char *)pip+4*IP_HL(pip)-1; + if (plast_option > plast) + plast_option = plast; /* truncated shorter than that */ + + printf("\t Options: %d bytes\n", 4*IP_HL(pip)-20); + while ((char *)popt <= (char *)plast_option) { + u_int opt = *popt; + u_int len = *(popt+1); + u_int ptr = *(popt+2); + int optcopy = (opt&0x80); + int optclass = (opt&0x60)>>5; + int optnum = (opt&0x1f); + + /* check for truncated option */ + if ((void *)(popt+len-1) > plast) { + printf("\t IP option (truncated)\n"); + break; + } + + printf("\t IP option %d (copy:%c class:%s number:%d)\n", + opt, + optcopy==0?'N':'Y', + optclass==0?"ctrl": + optclass==1?"reserved1": + optclass==2?"debug": + optclass==3?"reserved3":"unknown", + optnum); + + + switch(opt) { + case 3: + printf("\t Loose source route: len: %d ptr:%d\n", + len, ptr); + printipv4_opt_addrs(popt, ptr, len); + break; + case 7: + printf("\t Record Route: len: %d ptr:%d\n", + len, ptr); + printipv4_opt_addrs(popt, ptr, len); + break; + case 9: + printf("\t Strict source route: len: %d ptr:%d\n", + len, ptr); + printipv4_opt_addrs(popt, ptr, len); + break; + case 4: + printf("\t Timestamps: len: %d ptr:%d\n", + len, ptr); + break; + case 0: + printf("\t EOL\n"); + len = 1; + break; + case 1: + printf("\t PADDING\n"); + len = 1; + break; + default: + printf("\t Unknown Option %d, len: %d\n", opt, len); + break; + } + if (len <= 0) + break; + popt += len; + } + } + + printf("\n"); +} + + +/* print out the little table in the source route and record route options */ +static void +printipv4_opt_addrs( + char *popt, + int ptr, + int len) +{ + struct in_addr ina; + int nptr; + int i; + + for (nptr=4,i=1;nptr < len; nptr += 4,++i) { + memcpy(&ina.s_addr,popt+nptr-1,4); + if (nptr < ptr) + printf("\t %d: %-15s %s\n", + i, inet_ntoa(ina), + HostName(*IPV4ADDR2ADDR(&ina))); + else + printf("\t %d: xxxxxxxxxxx\n", i); + } +} + + +static void +printtcp_packet( + struct ip *pip, + void *plast, + tcb *thisdir) +{ + unsigned tcp_length; + unsigned tcp_data_length; + struct tcphdr *ptcp; + int i; + u_char *pdata; + struct ipv6 *pipv6; + tcb *otherdir = NULL; + + /* find the tcp header */ + if (gettcp(pip, &ptcp, &plast)) + return; /* not TCP or bad TCP packet */ + + /* make sure we have enough of the packet */ + if ((char *)ptcp+sizeof(struct tcphdr)-1 > (char *)plast) { + if (warn_printtrunc) + printf("\t[packet truncated too short for TCP details]\n"); + ++ctrunc; + return; + } + + /* calculate data length */ + if (PIP_ISV6(pip)) { + pipv6 = (struct ipv6 *) pip; + tcp_length = ntohs(pipv6->ip6_lngth); + } else { + tcp_length = ntohs(pip->ip_len) - (4 * IP_HL(pip)); + } + tcp_data_length = tcp_length - (4 * TH_OFF(ptcp)); + + /* find the tcb's (if available) */ + if (thisdir) + otherdir = thisdir->ptwin; + + printf("\tTCP SPRT: %u %s\n", + ntohs(ptcp->th_sport), + ParenServiceName(ntohs(ptcp->th_sport))); + printf("\t DPRT: %u %s\n", + ntohs(ptcp->th_dport), + ParenServiceName(ntohs(ptcp->th_dport))); + printf("\t FLG: %c%c%c%c%c%c%c%c (0x%02x)\n", + FLAG6_SET(ptcp)? '?':' ', + FLAG7_SET(ptcp)? '?':' ', + URGENT_SET(ptcp)?'U':'-', + ACK_SET(ptcp)? 'A':'-', + PUSH_SET(ptcp)? 'P':'-', + RESET_SET(ptcp)? 'R':'-', + SYN_SET(ptcp)? 'S':'-', + FIN_SET(ptcp)? 'F':'-', + ptcp->th_flags); + printf("\t SEQ: %s\n", PrintSeqRep(thisdir, ntohl(ptcp->th_seq))); + printf("\t ACK: %s\n", PrintSeqRep(otherdir, ntohl(ptcp->th_ack))); + printf("\t WIN: %u\n", ntohs(ptcp->th_win)); + printf("\t HLEN: %u", TH_OFF(ptcp)*4); + if ((char *)ptcp + TH_OFF(ptcp)*4 - 1 > (char *)plast) { + /* not all there */ + printf(" (only %lu bytes in dump file)", + (u_long)((char *)plast - (char *)ptcp + 1)); + } + printf("\n"); + + if (TH_X2(ptcp) != 0) { + printf("\t MBZ: 0x%01x (these are supposed to be zero!)\n", + TH_X2(ptcp)); + } + printf("\t CKSUM: 0x%04x", ntohs(ptcp->th_sum)); + pdata = (u_char *)ptcp + TH_OFF(ptcp)*4; + if (verify_checksums) { + if ((char *)pdata + tcp_data_length > ((char *)plast+1)) + printf(" (too short to verify)"); + else + printf(" (%s)", tcp_cksum_valid(pip,ptcp,plast)?"CORRECT":"WRONG"); + } + printf("\n"); + + + printf("\t DLEN: %u", tcp_data_length); + if ((tcp_data_length != 0) && + ((char *)pdata + tcp_data_length > ((char *)plast+1))) { + int available = (char *)plast - (char *)pdata + 1; + if (available > 1) + printf(" (only %lu bytes in dump file)", + (u_long)((char *)plast - (char *)pdata + 1)); + else + printf(" (none of it in dump file)"); + } + printf("\n"); + if (TH_OFF(ptcp) != 5) { + struct tcp_options *ptcpo; + + printf("\t OPTS: %lu bytes", + (unsigned long)(TH_OFF(ptcp)*4) - sizeof(struct tcphdr)); + if ((char *)ptcp + TH_OFF(ptcp)*4 - 1 > (char *)plast) { + /* not all opts were stored */ + u_long available = 1 + (char *)plast - + ((char *)ptcp + sizeof(struct tcphdr)); + if (available > 1) + printf(" (%lu bytes in file)", available); + else + printf(" (none of it in dump file)"); + } + + printf("\t"); + + ptcpo = ParseOptions(ptcp,plast); + + if (ptcpo->mss != -1) + printf(" MSS(%d)", ptcpo->mss); + if (ptcpo->ws != -1) + printf(" WS(%d)", ptcpo->ws); + if (ptcpo->tsval != -1) { + printf(" TS(%ld,%ld)", ptcpo->tsval, ptcpo->tsecr); + } + if (ptcpo->sack_req) { + printf(" SACKREQ"); + } + if (ptcpo->sack_count >= 0) { + printf(" SACKS(%d)", ptcpo->sack_count); + for (i=0; i < ptcpo->sack_count; ++i) { + printf("[%s-", + PrintSeqRep(otherdir, + (u_long)ptcpo->sacks[i].sack_left)); + printf("%s]", + PrintSeqRep(otherdir, + (u_long)ptcpo->sacks[i].sack_right)); + } + } + if (ptcpo->echo_req != -1) + printf(" ECHO(%lu)", ptcpo->echo_req); + if (ptcpo->echo_repl != -1) + printf(" ECHOREPL(%lu)", ptcpo->echo_repl); + if (ptcpo->cc != -1) + printf(" CC(%lu)", ptcpo->cc); + if (ptcpo->ccnew != -1) + printf(" CCNEW(%lu)", ptcpo->ccnew); + if (ptcpo->ccecho != -1) + printf(" CCECHO(%lu)", ptcpo->ccecho); + for (i=0; i < ptcpo->unknown_count; ++i) { + if (i < MAX_UNKNOWN) { + printf(" UNKN(op:%d,len:%d)", + ptcpo->unknowns[i].unkn_opt, + ptcpo->unknowns[i].unkn_len); + } else { + printf("... more unsaved unknowns\n"); + break; + } + } + printf("\n"); + } + if (tcp_data_length > 0) { + if (dump_packet_data) { + char *ptcp_data = (char *)ptcp + (4 * TH_OFF(ptcp)); + PrintRawData(" data", ptcp_data, plast, TRUE); + } else { + printf("\t data: %u bytes\n", tcp_data_length); + } + } +} + + +static void +printudp_packet( + struct ip *pip, + void *plast) +{ + struct udphdr *pudp; + unsigned udp_length; + unsigned udp_data_length; + u_char *pdata; + + /* find the udp header */ + if (getudp(pip, &pudp, &plast)) + return; /* not UDP or bad UDP packet */ + + /* make sure we have enough of the packet */ + if ((char *)pudp+sizeof(struct udphdr)-1 > (char *)plast) { + if (warn_printtrunc) + printf("\t[packet truncated too short for UDP details]\n"); + ++ctrunc; + return; + } + + printf("\tUDP SPRT: %u %s\n", + ntohs(pudp->uh_sport), + ParenServiceName(ntohs(pudp->uh_sport))); + printf("\t DPRT: %u %s\n", + ntohs(pudp->uh_dport), + ParenServiceName(ntohs(pudp->uh_dport))); + pdata = (u_char *)pudp + sizeof(struct udphdr); + udp_length = ntohs(pudp->uh_ulen); + udp_data_length = udp_length - sizeof(struct udphdr); + printf("\t UCKSUM: 0x%04x", ntohs(pudp->uh_sum)); + pdata = (u_char *)pudp + sizeof(struct udphdr); + if (verify_checksums) { + if ((char *)pdata + udp_data_length > ((char *)plast+1)) + printf(" (too short to verify)"); + else + printf(" (%s)", udp_cksum_valid(pip,pudp,plast)?"CORRECT":"WRONG"); + } + printf("\n"); + printf("\t DLEN: %u", ntohs(pudp->uh_ulen)); + if ((char *)pdata + ntohs(pudp->uh_ulen) > ((char *)plast+1)) + printf(" (only %lu bytes in dump file)\n", + (u_long)((char *)plast - (char *)pdata + 1)); + if (ntohs(pudp->uh_ulen) > 0) { + if (dump_packet_data) + PrintRawData(" data", pdata, plast, TRUE); + } +} + + + +void +printpacket( + int len, + int tlen, + void *phys, + int phystype, + struct ip *pip, + void *plast, + tcb *tcb) +{ + if (len == 0) + /* original length unknown */ + printf("\tSaved Length: %d\n", tlen); + else if (len == tlen) + printf("\tPacket Length: %d\n", len); + else + printf("\tPacket Length: %d (saved length %d)\n", len,tlen); + + printf("\tCollected: %s\n", ts2ascii(¤t_time)); + + if (phys) { + switch(phystype) { + case PHYS_ETHER: + printeth_packet(phys); + break; + default: + printf("\tPhysical layer: %d (not understood)\n", phystype); + break; + } + } + + /* it's always supposed to be an IP packet */ + printip_packet(pip,plast); + + + /* this will fail if it's not TCP */ + printtcp_packet(pip,plast,tcb); + + /* this will fail if it's not UDP */ + printudp_packet(pip,plast); +} + + +static char * +ParenServiceName( + portnum port) +{ + char *pname; + static char buf[80]; + + pname = ServiceName(port); + if (!pname || isdigit((int)(*pname))) + return(""); + + snprintf(buf,sizeof(buf),"(%s)",pname); + return(buf); +} + + +static char * +ParenHostName( + struct ipaddr addr) +{ + char *pname; + static char buf[80]; + + pname = HostName(addr); + if (!pname || isdigit((int)(*pname))) + return(""); + + snprintf(buf,sizeof(buf),"(%s)",pname); + return(buf); +} + + +void +PrintRawData( + char *label, + void *pfirst, + void *plast, + Bool octal) /* hex or octal? */ +{ + int lcount = 0; + int count = (char *)plast - (char *)pfirst + 1; + u_char *pch = pfirst; + + if (count <= 0) + return; + + printf("========================================\n"); + printf("%s (%d bytes):\n", label, count); + + while (pch <= (u_char *) plast) { + if ((*pch == '\r') && (*(pch+1) == '\n')) { + printf("\n"); + ++pch; + lcount = 0; + } else if (isprint(*pch)) { + putchar(*pch); + lcount+=1; + } else { + if (octal) { + printf("\\%03o", *pch); + lcount+=4; + } else { + printf("0x%02x", *pch); + lcount+=4; + } + } + if (lcount > 70) { + printf("\\\n"); + lcount = 0; + } + ++pch; + } + if (lcount != 0) + printf("\\\n"); + printf("========================================\n"); +} + + +void +PrintRawDataHex( + char *label, + void *pfirst, + void *plast) +{ + PrintRawData(label,pfirst,plast,FALSE); +} + + +static void +printipv6( + struct ipv6 *pipv6, + void *plast) +{ + int ver = (ntohl(pipv6->ip6_ver_tc_flabel) & 0xF0000000) >> 28; + int tc = (ntohl(pipv6->ip6_ver_tc_flabel) & 0x0F000000) >> 24; + struct ipv6_ext *pheader; + u_char nextheader; + + printf("\tIP Vers: %d\n", ver); + printf("\tIP Srce: %s\n", ipv6addr2str(pipv6->ip6_saddr)); + printf("\tIP Dest: %s\n", ipv6addr2str(pipv6->ip6_daddr)); + printf("\t Class: %d\n", tc); + printf("\t Flow: %d\n", (ntohl(pipv6->ip6_ver_tc_flabel) & 0x00FFFFFF)); + printf("\t PLEN: %d\n", ntohs(pipv6->ip6_lngth)); + printf("\t NXTH: %u (%s)\n", + pipv6->ip6_nheader, + ipv6_header_name(pipv6->ip6_nheader)); + printf("\t HLIM: %u\n", pipv6->ip6_hlimit); + + /* walk the extension headers */ + nextheader = pipv6->ip6_nheader; + pheader = (struct ipv6_ext *)(pipv6+1); + + while (pheader) { + u_char old_nextheader = nextheader; + + pheader = ipv6_nextheader(pheader,&nextheader); + + /* if there isn't a "next", then this isn't an extension header */ + if (pheader) { + printf("\tIPv6 Extension Header Type %d (%s)\n", + old_nextheader, + ipv6_header_name(old_nextheader)); + /* FIXME - want to give details, but I need some examples first! */ + /* (hint to users!!!...) */ + } + } +} + + +/* + * ipv6addr2str: return the string rep. of an ipv6 address + */ +static char * +ipv6addr2str( + struct in6_addr addr) +{ + static char adr[INET6_ADDRSTRLEN]; + my_inet_ntop(AF_INET6, (char *)&addr, (char *)adr, INET6_ADDRSTRLEN); + return(adr); +} + + +/* Shawn's version... */ +/* Lots of machines HAVE this, but they give slightly different formats */ +/* and it messes up my cross-platform testing. I'll just do it the */ +/* "one true" way! :-) */ +char * +Ether_Ntoa (struct ether_addr *e) +{ + unsigned char *pe; + static char buf[30]; + + pe = (unsigned char *) e; + snprintf(buf,sizeof(buf),"%02x:%02x:%02x:%02x:%02x:%02x", + pe[0], pe[1], pe[2], pe[3], pe[4], pe[5]); + return(buf); +} + + + +/* represent the sequence numbers absolute or relative to 0 */ +/* N.B.: will fail will sequence space wraps around more than once */ +static char * +PrintSeqRep( + tcb *ptcb, + u_long seq) +{ + static char buf[20]; + + if (ptcb && print_seq_zero && (ptcb->syn_count>0)) { + /* Relative form */ + sprintf(buf,hex?"0x%08lx(R)":"%lu(R)", + seq - ptcb->syn); + } else { + /* Absolute form */ + sprintf(buf,hex?"0x%08lx":"%lu",seq); + } + return(buf); +} diff --git a/rexmit.c b/rexmit.c new file mode 100644 index 0000000..a010862 --- /dev/null +++ b/rexmit.c @@ -0,0 +1,827 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/rexmit.c,v 5.14 2003/11/19 14:38:05 sdo Exp $"; + + +/* + * rexmit.c -- Determine if a segment is a retransmit and perform RTT stats + * + * Author: Sita Menon + * Computer Science Department + * Ohio University + * Date: Tue Nov 1, 1994 + */ + + + + +/* +This function rexmit() checks to see if a particular packet +is a retransmit. It returns 0 if it isn't a retransmit and +returns the number of bytes retransmitted if it is a retransmit - +considering the fact that it might be a partial retransmit. +It can also keep track of packets that come out of order. +*/ + + + + +/* locally global variables*/ + + +/* local routine definitions*/ +static void insert_seg_between (quadrant *, + segment *, + segment *, + segment *); +static void collapse_quad (quadrant *); +static segment *create_seg (seqnum, + seglen); +static quadrant *whichquad (seqspace *, + seqnum); +static quadrant *create_quadrant (void); +static int addseg (tcb *, + quadrant *, + seqnum, + seglen, + Bool *); +static void rtt_retrans (tcb *, + segment *); +static enum t_ack rtt_ackin (tcb *, + segment *, + Bool rexmit); +static void dump_rtt_sample (tcb *, + segment *, + double); +static void graph_rtt_sample (tcb *, + segment *, + unsigned long); + + + +/* + * rexmit: is the specified segment a retransmit? + * returns: number of retransmitted bytes in segment, 0 if not a rexmit + * *pout_order to to TRUE if segment is out of order + */ +int +rexmit (tcb * ptcb, + seqnum seq, + seglen len, + Bool * pout_order) +{ + + seqspace *sspace = ptcb->ss; + seqnum seq_last = seq + len - 1; + quadrant *pquad; + int rexlen = 0; + + /* unless told otherwise, it's IN order */ + *pout_order = FALSE; + + /* see which quadrant it starts in */ + pquad = whichquad (sspace, seq); + + /* add the new segment into the segment database */ + if (BOUNDARY (seq, seq_last)) { + /* lives in two different quadrants (can't be > 2) */ + seqnum seq1, seq2; + u_long len1, len2; + + /* in first quadrant */ + seq1 = seq; + len1 = LAST_SEQ (QUADNUM (seq1)) - seq1 + 1; + rexlen = addseg (ptcb, pquad, seq1, len1, pout_order); + + /* in second quadrant */ + seq2 = FIRST_SEQ (QUADNUM (seq_last)); + len2 = len - len1; + rexlen += addseg (ptcb, pquad->next, seq2, len2, pout_order); + } else { + rexlen = addseg (ptcb, pquad, seq, len, pout_order); + } + + return (rexlen); +} + + +/********************************************************************/ +static int +addseg (tcb * ptcb, + quadrant * pquad, + seqnum thisseg_firstbyte, + seglen len, + Bool * pout_order) +{ + seqnum thisseg_lastbyte = thisseg_firstbyte + len - 1; + segment *pseg; + segment *pseg_new; + int rexlen = 0; + Bool split = FALSE; + + /* check each segment in the segment list */ + pseg = pquad->seglist_head; + + if (thisseg_firstbyte >= 3329165351 && thisseg_firstbyte <= 3329317335) + {} + /* (optimize expected case, it just goes at the end) */ + if (pquad->seglist_tail && + (thisseg_firstbyte > pquad->seglist_tail->seq_lastbyte)) + pseg = NULL; + for (; pseg != NULL; pseg = pseg->next) { + if (thisseg_firstbyte > pseg->seq_lastbyte) { + /* goes beyond this one */ + continue; + } + + if (thisseg_firstbyte < pseg->seq_firstbyte) { + /* starts BEFORE this recorded segment */ + + /* if it also FINISHES before this segment, then it's */ + /* out of order (otherwise it's a resend the collapsed */ + /* multiple segments into one */ + if (thisseg_lastbyte < pseg->seq_lastbyte) + *pout_order = TRUE; + + /* make a new segment record for it */ + pseg_new = create_seg (thisseg_firstbyte, len); + insert_seg_between (pquad, pseg_new, pseg->prev, pseg); + + /* see if we overlap the next segment in the list */ + if (thisseg_lastbyte < pseg->seq_firstbyte) { + /* we don't overlap, so we're done */ + return (rexlen); + } else { + /* overlap him, split myself in 2 */ + + /* adjust new piece to mate with old piece */ + pseg_new->seq_lastbyte = pseg->seq_firstbyte - 1; + + /* pretend to be just the second half of this segment */ + pseg_new->seq_lastbyte = pseg->seq_firstbyte - 1; + thisseg_firstbyte = pseg->seq_firstbyte; + len = thisseg_lastbyte - thisseg_firstbyte + 1; + + /* fall through */ + } + } + + /* no ELSE, we might have fallen through */ + if (thisseg_firstbyte >= pseg->seq_firstbyte) { + /* starts within this recorded sequence */ + ++pseg->retrans; + if (!split) + rtt_retrans (ptcb, pseg); /* must be a retransmission */ + + + if (thisseg_lastbyte <= pseg->seq_lastbyte) { + /* entirely contained within this sequence */ + rexlen += len; + return (rexlen); + } + /* else */ + /* we extend beyond this sequence, split ourself in 2 */ + /* (pretend to be just the second half of this segment) */ + split = TRUE; + rexlen += pseg->seq_lastbyte - thisseg_firstbyte + 1; + thisseg_firstbyte = pseg->seq_lastbyte + 1; + len = thisseg_lastbyte - thisseg_firstbyte + 1; + } + } + + + /* if we got to the end, then it doesn't go BEFORE anybody, */ + /* tack it onto the end */ + pseg_new = create_seg (thisseg_firstbyte, len); + insert_seg_between (pquad, pseg_new, pquad->seglist_tail, NULL); + + return (rexlen); +} + + + +/**********************************************************************/ +static segment * +create_seg (seqnum seq, + seglen len) +{ + segment *pseg; + + pseg = (segment *) MallocZ (sizeof (segment)); + + pseg->time = current_time; + pseg->seq_firstbyte = seq; + pseg->seq_lastbyte = seq + len - 1; + + return (pseg); +} + +/**********************************************************************/ +static quadrant * +create_quadrant (void) +{ + quadrant *pquad; + + pquad = (quadrant *) MallocZ (sizeof (quadrant)); + + return (pquad); +} + +/********************************************************************/ + +static quadrant * +whichquad (seqspace * sspace, + seqnum seq) +{ + quadnum qid = QUADNUM (seq); + quadrant *pquad; + int qix; + int qix_next; + int qix_opposite; + int qix_prev; + + /* optimize expected case, it's all set up correctly already */ + qix = qid - 1; + if ((pquad = sspace->pquad[qix]) && pquad->next && pquad->prev) + return (pquad); + + /* determine indices of "neighbor" quadrants */ + qix_next = (qix + 1) % 4; + qix_opposite = (qix + 2) % 4; + qix_prev = (qix + 3) % 4; + + /* make sure that THIS quadrant exists */ + if (sspace->pquad[qix] == NULL) { + sspace->pquad[qix] = create_quadrant (); + } + + /* make sure that the quadrant AFTER this one exists */ + if (sspace->pquad[qix_next] == NULL) { + sspace->pquad[qix_next] = create_quadrant (); + } + + /* make sure that the quadrant BEFORE this one exists */ + if (sspace->pquad[qix_prev] == NULL) { + sspace->pquad[qix_prev] = create_quadrant (); + } + + /* clear out the opposite side, we don't need it anymore */ + if (sspace->pquad[qix_opposite] != NULL) { + freequad (&sspace->pquad[qix_opposite]); + + sspace->pquad[qix_opposite] = NULL; + } + + /* set all the pointers */ + sspace->pquad[qix]->prev = sspace->pquad[qix_prev]; + sspace->pquad[qix]->next = sspace->pquad[qix_next]; + sspace->pquad[qix_next]->prev = sspace->pquad[qix]; + sspace->pquad[qix_prev]->next = sspace->pquad[qix]; + sspace->pquad[qix_next]->next = NULL; + sspace->pquad[qix_prev]->prev = NULL; + + return (sspace->pquad[qix]); +} + + + +/*********************************************************************/ +static void +collapse_quad (quadrant * pquad) +{ + Bool freed; + segment *pseg; + segment *tmpseg; + + if ((pquad == NULL) || (pquad->seglist_head == NULL)) + return; + + pseg = pquad->seglist_head; + while (pseg != NULL) { + freed = FALSE; + if (pseg->next == NULL) + break; + + /* if this segment has not been ACKed, then neither have the */ + /* ones that follow, so no need to continue */ + if (!pseg->acked) + break; + + /* if this segment and the next one have both been ACKed and they */ + /* "fit together", then collapse them into one (larger) segment */ + if (pseg->acked && pseg->next->acked && + (pseg->seq_lastbyte + 1 == pseg->next->seq_firstbyte)) { + pseg->seq_lastbyte = pseg->next->seq_lastbyte; + + + /* the new ACK count is the ACK count of the later segment */ + pseg->acked = pseg->next->acked; + + /* the new "transmit time" is the greater of the two */ + if (tv_gt (pseg->next->time, pseg->time)) + pseg->time = pseg->next->time; + + tmpseg = pseg->next; + pseg->next = pseg->next->next; + if (pseg->next != NULL) + pseg->next->prev = pseg; + if (tmpseg == pquad->seglist_tail) + pquad->seglist_tail = pseg; + free (tmpseg); + freed = TRUE; + } + + if (!freed) + pseg = pseg->next; + /* else, see if the next one also can be collapsed into me */ + } + + /* see if the quadrant is now "full" */ + if ((pquad->seglist_head->seq_lastbyte - + pquad->seglist_head->seq_firstbyte + 1) == QUADSIZE) { + pquad->full = TRUE; + } +} + + +static void +insert_seg_between (quadrant * pquad, + segment * pseg_new, + segment * pseg_before, + segment * pseg_after) +{ + /* fix forward pointers */ + pseg_new->next = pseg_after; + if (pseg_after != NULL) { + pseg_after->prev = pseg_new; + } else { + /* I'm the tail of the list */ + pquad->seglist_tail = pseg_new; + } + + /* fix backward pointers */ + pseg_new->prev = pseg_before; + if (pseg_before != NULL) { + pseg_before->next = pseg_new; + } else { + /* I'm the head of the list */ + pquad->seglist_head = pseg_new; + } +} + + +static enum t_ack +rtt_ackin (tcb * ptcb, + segment * pseg, + Bool rexmit_prev) +{ + double etime_rtt; + enum t_ack ret; + + u_long current_size = 0; + + /* how long did it take */ + etime_rtt = elapsed (pseg->time, current_time); + + if (rexmit_prev) { + /* first, check for the situation in which the segment being ACKed */ + /* was sent a while ago, and we've been piddling around */ + /* retransmitting lost segments that came before it */ + ptcb->rtt_last = 0.0; /* don't use this sample, it's very long */ + etime_rtt = 0.0; + + ++ptcb->rtt_nosample; /* no sample, even though not ambig */ + ret = NOSAMP; + } else if (pseg->retrans == 0) { + ptcb->rtt_last = etime_rtt; + + if ((ptcb->rtt_min == 0) || (ptcb->rtt_min > etime_rtt)) + ptcb->rtt_min = etime_rtt; + + if (ptcb->rtt_max < etime_rtt) + ptcb->rtt_max = etime_rtt; + + ptcb->rtt_sum += etime_rtt; + ptcb->rtt_sum2 += etime_rtt * etime_rtt; + ++ptcb->rtt_count; + + /* Collecting stats for full size segments */ + /* Calculate the current_size of the segment, + taking care of possible sequence space wrap around */ + + if (pseg->seq_lastbyte > pseg->seq_firstbyte) + current_size = pseg->seq_lastbyte - pseg->seq_firstbyte + 1; + else + /* MAX_32 is 0x1,0000,0000 + So we don't need the "+ 1" while calculating the size here */ + current_size = + (MAX_32 - pseg->seq_firstbyte) + pseg->seq_lastbyte; + + if (!ptcb->rtt_full_size || (ptcb->rtt_full_size < current_size)) { + /* Found a bigger segment.. Reset all stats. */ + ptcb->rtt_full_size = current_size; + + ptcb->rtt_full_min = etime_rtt; + ptcb->rtt_full_max = etime_rtt; + ptcb->rtt_full_sum = etime_rtt; + ptcb->rtt_full_sum2 = (etime_rtt * etime_rtt); + ptcb->rtt_full_count = 1; + } else if (ptcb->rtt_full_size == current_size) { + ++ptcb->rtt_full_count; + + if ((ptcb->rtt_full_min == 0) + || (ptcb->rtt_full_min > etime_rtt)) + ptcb->rtt_full_min = etime_rtt; + + if (ptcb->rtt_full_max < etime_rtt) + ptcb->rtt_full_max = etime_rtt; + + ptcb->rtt_full_sum += etime_rtt; + ptcb->rtt_full_sum2 += (etime_rtt * etime_rtt); + } + ret = NORMAL; + } else { + /* retrans, can't use it */ + if ((ptcb->rtt_min_last == 0) || (ptcb->rtt_min_last > etime_rtt)) + ptcb->rtt_min_last = etime_rtt; + + if (ptcb->rtt_max_last < etime_rtt) + ptcb->rtt_max_last = etime_rtt; + + ptcb->rtt_sum_last += etime_rtt; + ptcb->rtt_sum2_last += etime_rtt * etime_rtt; + ++ptcb->rtt_count_last; + + ++ptcb->rtt_amback; /* ambiguous ACK */ + + /* numbers not useful for plotting/dumping */ + ptcb->rtt_last = 0.0; + etime_rtt = 0.0; + + ret = AMBIG; + } + + /* dump RTT samples, if asked */ + if (dump_rtt && (etime_rtt != 0.0)) { + //Commented by Sriharsha Gangam + dump_rtt_sample (ptcb, pseg, etime_rtt); + } + + /* plot RTT samples, if asked */ + if (graph_rtt && (pseg->retrans == 0)) { + graph_rtt_sample (ptcb, pseg, etime_rtt); + } + + return (ret); +} + + + +static void +rtt_retrans (tcb * ptcb, + segment * pseg) +{ + double etime; + + if (!pseg->acked) { + /* if it was acked, then it's been collapsed and these */ + /* are no longer meaningful */ + etime = elapsed (pseg->time, current_time); + if (pseg->retrans > ptcb->retr_max) + ptcb->retr_max = pseg->retrans; + + if (etime > ptcb->retr_max_tm) + ptcb->retr_max_tm = etime; + if ((ptcb->retr_min_tm == 0) || (etime < ptcb->retr_min_tm)) + ptcb->retr_min_tm = etime; + + ptcb->retr_tm_sum += etime; + ptcb->retr_tm_sum2 += etime * etime; + ++ptcb->retr_tm_count; + } + + pseg->time = current_time; +} + + +enum t_ack +ack_in (tcb * ptcb, + seqnum ack, + unsigned tcp_data_length, + u_long eff_win) +{ + + quadrant *pquad; + quadrant *pquad_prev; + segment *pseg; + Bool changed_one = FALSE; + Bool intervening_xmits = FALSE; + timeval last_xmit = { 0, 0 }; + enum t_ack ret = 0; + + enum dup_ack_handling { BSD_VERSION = 1, /* Handling of duplicate ack's + based on the specifications of + BSD code */ + LEGACY_VERSION = 2 /* Handling of duplicate ack's according to the + old versions of "tcptrace" */ + }; + enum dup_ack_handling dup_ack_type; /* default type is the code based on + BSD specifications */ + + + /* check each segment in the segment list for the PREVIOUS quadrant */ + pquad = whichquad (ptcb->ss, ack); + pquad_prev = pquad->prev; + for (pseg = pquad_prev->seglist_head; pseg != NULL; pseg = pseg->next) { + if (!pseg->acked) { + ++pseg->acked; + changed_one = TRUE; + ++ptcb->rtt_cumack; + + /* keep track of the newest transmission */ + if (tv_gt (pseg->time, last_xmit)) + last_xmit = pseg->time; + } + } + if (changed_one) + collapse_quad (pquad_prev); + + /* check each segment in the segment list for the CURRENT quadrant */ + changed_one = FALSE; + for (pseg = pquad->seglist_head; pseg != NULL; pseg = pseg->next) { + + + + if (ack <= pseg->seq_firstbyte) { + /* doesn't cover anything else on the list */ + break; + } + + /* keep track of the newest transmission */ + if (tv_gt (pseg->time, last_xmit)) + last_xmit = pseg->time; + + /* (ELSE) ACK covers this sequence */ + if (pseg->acked) { + /* default will be the BSD version, it can be changed by giving + '--turn_off_BSD_dupack' switch */ + dup_ack_type = (dup_ack_handling) ? BSD_VERSION : LEGACY_VERSION; + + /* default type is the specifications based on BSD code */ + switch (dup_ack_type) { + case LEGACY_VERSION: + if (ack == (pseg->seq_lastbyte + 1)) { + ++pseg->acked; /* already acked this one */ + ++ptcb->rtt_dupack; /* one more duplicate ack */ + ret = CUMUL; + if (pseg->acked == 4) { + /* some people say these CAN'T have data */ + if ((tcp_data_length == 0) + || triple_dupack_allows_data) { + ++ptcb->rtt_triple_dupack; + ret = TRIPLE; + } + } + } + break; + case BSD_VERSION: + /* For an acknowledgement to be considered as duplicate ACK in + BSD version, following rules must be followed: + 1) the received segment should contain the biggest ACK TCP + has seen, + 2) the length of the segment containing dup ack should be 0, + 3) advertised window in this segment should not change, + 4) and there must be some outstanding data */ + + if ((ack == (pseg->seq_lastbyte + 1)) && + (ack == ptcb->ptwin->ack) && + (tcp_data_length == 0) && + (eff_win == ptcb->ptwin->win_last) && + (ptcb->owin_tot > 0)) { + ++ptcb->rtt_dupack; + ret = CUMUL; + + /* already acked this one */ + ++pseg->acked; + if (pseg->acked == 4) { + ++ptcb->rtt_triple_dupack; + ret = TRIPLE; + } + } else + pseg->acked = 1; /* received segment is not pure + duplicate acknowledgement */ + } + continue; + } + /* ELSE !acked */ + + ++pseg->acked; + changed_one = TRUE; + + if (ack == (pseg->seq_lastbyte + 1)) { + /* if ANY preceding segment was xmitted after this one, + the the RTT sample is invalid */ + intervening_xmits = (tv_gt (last_xmit, pseg->time)); + + ret = rtt_ackin (ptcb, pseg, intervening_xmits); + } else { + /* cumulatively ACKed */ + ++ptcb->rtt_cumack; + ret = CUMUL; + } + } + if (changed_one) + collapse_quad (pquad); + return (ret); +} + + +void +freequad (quadrant ** ppquad) +{ + segment *pseg; + segment *pseg_next; + + pseg = (*ppquad)->seglist_head; + while (pseg && pseg->next) { + pseg_next = pseg->next; + free (pseg); + pseg = pseg_next; + } + if (pseg) + free (pseg); + free (*ppquad); + *ppquad = NULL; +} + + +/* dump RTT samples in milliseconds */ +static void +dump_rtt_sample (tcb * ptcb, + segment * pseg, + double etime_rtt) +{ + /* + // if the FILE is "-1", couldn't open file + if (ptcb->rtt_dump_file == (MFILE *) - 1) { + return; + } + + + // if the FILE is NULL, open file + if (ptcb->rtt_dump_file == (MFILE *) NULL) { + MFILE *f; + static char filename[15]; + + snprintf (filename, sizeof (filename), "%s2%s%s", + ptcb->host_letter, ptcb->ptwin->host_letter, + RTT_DUMP_FILE_EXTENSION); + + if ((f = Mfopen (filename, "w")) == NULL) { + perror (filename); + ptcb->rtt_dump_file = (MFILE *) - 1; + } + + if (debug) + fprintf (stderr, "RTT Sample file is '%s'\n", filename); + + ptcb->rtt_dump_file = f; + } + */ + + ipaddr sIp ; + ipaddr dIp ; + portnum sPort ; + portnum dPort ; + if (&(ptcb->ptp->a2b) == ptcb) { + sIp = ptcb->ptp->addr_pair.a_address ; + dIp = ptcb->ptp->addr_pair.b_address ; + sPort = ptcb->ptp->addr_pair.a_port ; + dPort = ptcb->ptp->addr_pair.b_port ; + } + else { + sIp = ptcb->ptp->addr_pair.b_address ; + dIp = ptcb->ptp->addr_pair.a_address ; + sPort = ptcb->ptp->addr_pair.b_port ; + dPort = ptcb->ptp->addr_pair.a_port ; + } + char sIpStr[INET_ADDRSTRLEN] ; + char dIpStr[INET_ADDRSTRLEN] ; + inet_ntop(AF_INET,& (sIp.un.ip4), sIpStr, INET_ADDRSTRLEN) ; + inet_ntop(AF_INET,& (dIp.un.ip4), dIpStr, INET_ADDRSTRLEN) ; + + //Mfprintf (ptcb->rtt_dump_file, "%f %s %s %d %d %lu %f\n", + fprintf (stdout, "%f %s %s %d %d %lu %f\n", + current_time.tv_sec + (current_time.tv_usec/1000000.0), sIpStr, dIpStr, sPort, dPort, pseg->seq_lastbyte + 1, + (float)(etime_rtt / 1000.0) /* convert from us to ms */ ); +} + + + +/* graph RTT samples in milliseconds */ +static void +graph_rtt_sample (tcb * ptcb, + segment * pseg, + unsigned long etime_rtt) +{ + char title[210]; + + /* if the FILE is NULL, open file */ + if (ptcb->rtt_plotter == NO_PLOTTER) { + char *name_from, *name_to; + if (ptcb == &ptcb->ptp->a2b) { + name_from = ptcb->ptp->a_endpoint; + name_to = ptcb->ptp->b_endpoint; + } else { + name_from = ptcb->ptp->b_endpoint; + name_to = ptcb->ptp->a_endpoint; + } + snprintf (title, sizeof (title), "%s_==>_%s (rtt samples)", + name_from, name_to); + ptcb->rtt_plotter = + new_plotter (ptcb, NULL, title, "time", "rtt (ms)", + RTT_GRAPH_FILE_EXTENSION); + plotter_perm_color (ptcb->rtt_plotter, "red"); + + if (graph_time_zero) { + /* set graph zero points */ + plotter_nothing (ptcb->rtt_plotter, current_time); + } + ptcb->rtt_line = new_line (ptcb->rtt_plotter, "rtt", "red"); + } + + if (etime_rtt <= 1) + return; + + extend_line (ptcb->rtt_line, current_time, (int) (etime_rtt / 1000)); +} + +Bool IsRTO(tcb *ptcb, seqnum s) { + quadrant *pquad = whichquad(ptcb->ss,s); + segment *pseg; + + for (pseg = pquad->seglist_head; pseg != NULL; pseg = pseg->next) { + if (s == (pseg->seq_lastbyte+1)) { + if (pseg->acked < 4) return TRUE; + else return FALSE; + } + } + + return TRUE; +} diff --git a/snoop.c b/snoop.c new file mode 100644 index 0000000..fb2728c --- /dev/null +++ b/snoop.c @@ -0,0 +1,445 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/snoop.c,v 5.15 2003/11/19 14:38:05 sdo Exp $"; + + +/* + * snoop.c - SNOOP specific file reading stuff + * ipv6 addition by Nasseef Abukamail + */ + + + + +#ifdef GROK_SNOOP + +/* Defining SYS_STDIN which is fp for Windows and stdin for all other systems */ +#ifdef __WIN32 +static FILE *fp; +#define SYS_STDIN fp +#else +#define SYS_STDIN stdin +#endif /* __WIN32 */ + +/* information necessary to understand Solaris Snoop output */ +struct snoop_file_header { + char format_name[8]; /* should be "snoop\0\0\0" */ + tt_uint32 snoop_version; /* current version is "2" */ + tt_uint32 mac_type; /* hardware type */ +}; +/* snoop hardware types that we understand */ +/* from sys/dlpi.h */ +/* -- added prefix SNOOP_ to avoid name clash */ +#define SNOOP_DL_ETHER 0x4 /* Ethernet Bus */ +#define SNOOP_DL_FDDI 0x08 /* Fiber Distributed data interface */ +#define SNOOP_DL_ATM 0x12 /* from Sun's "atmsnoop" */ + +struct snoop_packet_header { + tt_uint32 len; + tt_uint32 tlen; + tt_uint32 blen; + tt_uint32 unused3; + tt_uint32 secs; + tt_uint32 usecs; +}; + + + +/* static buffers for reading */ +static struct ether_header *pep; +static int *pip_buf; +static int snoop_mac_type; + +/* (Courtesy Jeffrey Semke, Pittsburgh Supercomputing Center) */ +/* locate ip within FDDI according to RFC 1188 */ +static int find_ip_fddi(char* buf, int iplen) { + char* ptr, *ptr2; + int i; + u_char pattern[] = {0xAA, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00}; +#define FDDIPATTERNLEN 7 + + ptr = ptr2 = buf; + + for (i=0; i < FDDIPATTERNLEN; i++) { + ptr2 = memchr(ptr,pattern[i],(iplen - (int)(ptr - buf))); + if (!ptr2) + return (-1); + if (i && (ptr2 != ptr)) { + ptr2 = ptr2 - i - 1; + i = -1; + } + ptr = ptr2 + 1; + } + return (ptr2 - buf + 1); + +} + + +/* return the next packet header */ +/* currently only works for ETHERNET and FDDI */ +static int +pread_snoop( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + int packlen; + int rlen; + int len; + struct snoop_packet_header hdr; + int hlen; + + while (1) { + hlen = sizeof(struct snoop_packet_header); + + /* read the packet header */ + if ((rlen=fread(&hdr,1,hlen,SYS_STDIN)) != hlen) { + if (rlen != 0) + fprintf(stderr,"Bad snoop packet header\n"); + return(0); + } + + /* convert some stuff to host byte order */ + hdr.tlen = ntohl(hdr.tlen); + hdr.len = ntohl(hdr.len); + hdr.blen = ntohl(hdr.blen); + hdr.secs = ntohl(hdr.secs); + hdr.usecs = ntohl(hdr.usecs); + + /* truncated packet length */ + packlen = hdr.tlen; + + /* bug fix from Brian Utterback */ + /* "blen" is the "total length of the packet", header+data+padding */ + len = hdr.blen - hlen; + + if (snoop_mac_type == SNOOP_DL_ETHER) { + /* read the ethernet header */ + rlen=fread(pep,1,sizeof(struct ether_header),SYS_STDIN); + if (rlen != sizeof(struct ether_header)) { + fprintf(stderr,"Couldn't read ether header\n"); + return(0); + } + + /* read the rest of the packet */ + len -= sizeof(struct ether_header); + if (len >= IP_MAXPACKET) { + /* sanity check */ + fprintf(stderr, + "pread_snoop: invalid next packet, IP len is %d, return EOF\n", len); + + return(0); + } + + /* add VLAN support for John Tysko */ + if ((ntohs(pep->ether_type) == ETHERTYPE_VLAN) && (len >= 4)){ + struct { + tt_uint16 vlan_num; + tt_uint16 vlan_proto; + } vlanh; + + /* adjust packet length */ + len -= 4; + + /* read the vlan header */ + if ((rlen=fread(&vlanh,1,sizeof(vlanh),SYS_STDIN)) != sizeof(vlanh)) { + perror("pread_snoop: seek past vlan header"); + } + + if ((ntohs(vlanh.vlan_proto) == ETHERTYPE_IP) || + (ntohs(vlanh.vlan_proto) == ETHERTYPE_IPV6)) { + /* make it appear to have been IP all along */ + /* (note that both fields are still in N.B.O. */ + pep->ether_type = vlanh.vlan_proto; + if (debug > 2) + printf("Removing VLAN header (vlan:%x)\n", + vlanh.vlan_num); + } else { + if (debug > 2) + printf("Skipping a VLAN packet (num:%x proto:%x)\n", + vlanh.vlan_num, vlanh.vlan_proto); + } + + } + + + /* if it's not IP, then skip it */ + if ((ntohs(pep->ether_type) != ETHERTYPE_IP) && + (ntohs(pep->ether_type) != ETHERTYPE_IPV6)) { + + + if (debug > 2) + fprintf(stderr, + "pread_snoop: not an IP packet (ethertype 0x%x)\n", + ntohs(pep->ether_type)); + /* discard the remainder */ + /* N.B. fseek won't work - it could be a pipe! */ + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + perror("pread_snoop: seek past non-IP"); + } + + continue; + } + + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + if (rlen != 0 && debug) + fprintf(stderr, + "Couldn't read %d more bytes, skipping last packet\n", + len); + return(0); + } + + *ppip = (struct ip *) pip_buf; + /* last byte in the IP packet */ + *pplast = (char *)pip_buf+packlen-sizeof(struct ether_header)-1; + + } else if (snoop_mac_type == SNOOP_DL_FDDI) { + /* FDDI is different */ + int offset; + + /* read in the whole frame and search for IP header */ + /* (assumes sizeof(fddi frame) < IP_MAXPACKET, should be true) */ + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + if (debug && rlen != 0) + fprintf(stderr, + "Couldn't read %d more bytes, skipping last packet\n", + len); + return(0); + } + + /* find the offset of the IP header inside the FDDI frame */ + if ((offset = find_ip_fddi((void *)pip_buf,len)) == -1) { + /* not found */ + if (debug) + printf("snoop.c: couldn't find next IP within FDDI\n"); + return(-1); + } + + /* copy to avoid alignment problems later (yucc) */ + /* (we use memmove to make overlaps work) */ + memmove(pip_buf,(char *)pip_buf+offset,len-offset); + + /* point to first and last char in IP packet */ + *ppip = (struct ip *) ((void *)pip_buf); + *pplast = (char *)pip_buf+len-offset-1; + + /* assume it's IP (else find_ip_fddi would have failed) */ + pep->ether_type = htons(ETHERTYPE_IP); + } else if (snoop_mac_type == SNOOP_DL_ATM) { + /* there's a 12 byte header that we don't care about */ + /* the last 2 of those 12 bytes are the packet type */ + /* we don't care about hardware header, so we just discard */ + struct atm_header { + u_char junk[10]; + u_short type; + } atm_header; + + /* grab the 12-byte header */ + rlen=fread(&atm_header,1,sizeof(struct atm_header),SYS_STDIN); + if (rlen != sizeof(struct atm_header)) { + fprintf(stderr,"Couldn't read ATM header\n"); + return(0); + } + + /* fill in the ethernet type */ + /* we'll just assume that they're both in the same network + byte order */ + pep->ether_type = atm_header.type; + + /* read the rest of the packet */ + len -= sizeof(struct atm_header); + if (len >= IP_MAXPACKET) { + /* sanity check */ + fprintf(stderr, + "pread_snoop: invalid next packet, IP len is %d, return EOF\n", len); + + return(0); + } + + /* if it's not IP, then skip it */ + if ((ntohs(pep->ether_type) != ETHERTYPE_IP) && + (ntohs(pep->ether_type) != ETHERTYPE_IPV6)) { + if (debug > 2) + fprintf(stderr, + "pread_snoop: not an IP packet (ethertype 0x%x)\n", + ntohs(pep->ether_type)); + /* discard the remainder */ + /* N.B. fseek won't work - it could be a pipe! */ + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + perror("pread_snoop: seek past non-IP"); + } + + continue; + } + + if ((rlen=fread(pip_buf,1,len,SYS_STDIN)) != len) { + if (rlen != 0 && debug) + fprintf(stderr, + "Couldn't read %d more bytes, skipping last packet\n", + len); + return(0); + } + + *ppip = (struct ip *) pip_buf; + /* last byte in the IP packet */ + *pplast = (char *)pip_buf+packlen-sizeof(struct ether_header)-1; + } else { + printf("snoop hardware type %d not understood\n", + snoop_mac_type); + + exit(-1); + } + + + /* save pointer to physical header (always ethernet) */ + *pphys = pep; + *pphystype = PHYS_ETHER; + + + ptime->tv_sec = hdr.secs; + ptime->tv_usec = hdr.usecs; + *plen = hdr.len; + *ptlen = hdr.tlen; + + + return(1); + } +} + + + +/* + * is_snoop() is the input file in snoop format?? + */ +pread_f *is_snoop(char *filename) +{ + struct snoop_file_header buf; + int rlen; + +#ifdef __WIN32 + if((fp = fopen(filename, "r")) == NULL) { + perror(filename); + exit(-1); + } +#endif /* __WIN32 */ + + /* read the snoop file header */ + if ((rlen=fread(&buf,1,sizeof(buf),SYS_STDIN)) != sizeof(buf)) { + rewind(SYS_STDIN); + return(NULL); + } + + /* first 8 characters should be "snoop\0\0\0" */ + if (strcmp(buf.format_name,"snoop") != 0) + return(NULL); + + /* OK, it's a snoop file */ + + + /* convert some stuff to host byte order */ + buf.snoop_version = ntohl(buf.snoop_version); + buf.mac_type = ntohl(buf.mac_type); + + /* sanity check on snoop version */ + if (debug) { + printf("Snoop version: %ld\n", buf.snoop_version); + } + if (buf.snoop_version != 2) { + printf("\ +Warning! snoop file is version %ld.\n\ +Tcptrace is only known to work with version 2\n", + buf.snoop_version); + } + + /* sanity check on hardware type */ + snoop_mac_type = buf.mac_type; + switch (buf.mac_type) { + case SNOOP_DL_ETHER: + if (debug) + printf("Snoop hw type: %ld (Ethernet)\n", buf.mac_type); + break; + case SNOOP_DL_FDDI: + if (debug) + printf("Snoop hw type: %ld (FDDI)\n", buf.mac_type); + break; + case SNOOP_DL_ATM: + if (debug) + printf("Snoop hw type: %ld (ATM)\n", buf.mac_type); + break; + default: + if (debug) + printf("Snoop hw type: %ld (unknown)\n", buf.mac_type); + printf("snoop hardware type %ld not understood\n", buf.mac_type); + + exit(-1); + } + + + /* OK, it's mine. Init some stuff */ + pep = MallocZ(sizeof(struct ether_header)); + pip_buf = MallocZ(IP_MAXPACKET); + + + return(pread_snoop); +} +#endif /* GROK_SNOOP */ diff --git a/snprintf_vms.c b/snprintf_vms.c new file mode 100644 index 0000000..db256fc --- /dev/null +++ b/snprintf_vms.c @@ -0,0 +1,13 @@ +#include +#include + +int snprintf_vms(char *str, size_t len, const char *fmt, ...) +{ + va_list ap; + int n; + + va_start(ap, fmt); + n = vsprintf(str, fmt, ap); + va_end(ap); + return n; +} diff --git a/tags b/tags new file mode 100644 index 0000000..e195d28 --- /dev/null +++ b/tags @@ -0,0 +1,1883 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.7 // +AND filt_parser.c 24;" d file: +ATM_SLEN erf.c 126;" d file: +ATM_SNAPLEN erf.c 121;" d file: +ATM_WLEN erf.c 127;" d file: +AVL_WhichDir trace.c /^AVL_WhichDir($/;" f +ActiveConn mod_tcplib.c /^ActiveConn($/;" f file: +AddAckTS mod_http.c /^AddAckTS($/;" f file: +AddDataTS mod_http.c /^AddDataTS($/;" f file: +AddEndpointPair mod_tcplib.c /^AddEndpointPair($/;" f file: +AddGetTS mod_http.c /^AddGetTS($/;" f file: +AddSample mod_rttgraph.c /^AddSample($/;" f file: +AddTS mod_http.c /^AddTS($/;" f file: +AddToCounter dyncounter.c /^AddToCounter($/;" f +AgeSlice mod_slice.c /^AgeSlice($/;" f file: +AgeTraffic mod_traffic.c /^AgeTraffic(void)$/;" f file: +AllTCPInteractivity mod_inbounds.c /^ AllTCPInteractivity(void)$/;" f file: +AllUDPInteractivity mod_inbounds.c /^ AllUDPInteractivity(void)$/;" f file: +Args tcptrace.c /^Args(void)$/;" f file: +Average output.c /^Average($/;" f file: +BAND filt_parser.c 26;" d file: +BEGIN filt_scanner.c 97;" d file: +BOOL filt_parser.c 37;" d file: +BOR filt_parser.c 27;" d file: +BREAKDOWN_APPS_NAMES mod_tcplib.c /^char *BREAKDOWN_APPS_NAMES[] = {$/;" v +BURST_KEY_MAGIC mod_tcplib.c 101;" d file: +BadArg tcptrace.c /^BadArg($/;" f file: +Block pool.c /^struct Block {$/;" s file: +CACHE_SIZE mod_tcplib.c 1557;" d file: +CADEBUG gcache.c 144;" d file: +CAERROR gcache.c 145;" d file: +CAMEMSIZE gcache.c 590;" d file: +CARDINALITY dyncounter.c 74;" d file: +CB_FREE gcache.c /^enum cb_status { CB_INUSE=1, CB_FREE=2};$/;" e enum:cb_status file: +CB_INUSE gcache.c /^enum cb_status { CB_INUSE=1, CB_FREE=2};$/;" e enum:cb_status file: +CE_FREE gcache.c /^enum ce_status {CE_INUSE=11, CE_FREE=12};$/;" e enum:ce_status file: +CE_INUSE gcache.c /^enum ce_status {CE_INUSE=11, CE_FREE=12};$/;" e enum:ce_status file: +CHECK_O_LEN trace.c 2879;" d file: +CallDoPlot plotter.c /^CallDoPlot($/;" f file: +CheckArguments tcptrace.c /^CheckArguments($/;" f file: +CheckPortNum mod_traffic.c /^CheckPortNum($/;" f file: +ClosedUDPConn mod_inbounds.c /^ ClosedUDPConn()$/;" f file: +ColorNames tcptrace.c /^char *ColorNames[NCOLORS] =$/;" v +CompCloseFile compress.c /^CompCloseFile($/;" f +CompFormats compress.c /^CompFormats(void)$/;" f +CompIsCompressed compress.c /^CompIsCompressed(void)$/;" f +CompOpenFile compress.c /^CompOpenFile($/;" f +CompOpenHeader compress.c /^CompOpenHeader($/;" f +CompOpenPipe compress.c /^CompOpenPipe($/;" f file: +CompReopenFile compress.c /^CompReopenFile($/;" f file: +CompSaveHeader compress.c /^CompSaveHeader($/;" f file: +ConnComplete output.c /^ConnComplete($/;" f +ConnReset output.c /^ConnReset($/;" f +Const2Ipaddr filter.c /^Const2Ipaddr($/;" f file: +Const2Signed filter.c /^Const2Signed($/;" f file: +Const2Unsigned filter.c /^Const2Unsigned($/;" f file: +CopyAddr trace.c /^CopyAddr($/;" f +CouldBeFtpData mod_tcplib.c /^CouldBeFtpData($/;" f file: +DEFAULT_SERVER_PORT mod_http.c 66;" d file: +DESCR mod_collie.c 172;" d file: +DFLT_BLOCKS_NUM pool.c 85;" d file: +DFLT_POOLS_NUM pool.c 84;" d file: +DIVIDE filt_parser.c 31;" d file: +DSAppendChar dstring.c /^DSAppendChar($/;" f +DSAppendString dstring.c /^DSAppendString($/;" f +DSAppendStringN dstring.c /^DSAppendStringN($/;" f +DSDestroy dstring.c /^DSDestroy(struct dstring **ppds)$/;" f +DSErase dstring.c /^DSErase($/;" f +DSExpand dstring.c /^DSExpand(struct dstring *pds)$/;" f file: +DSNew dstring.c /^DSNew(void)$/;" f +DSVal dstring.c /^DSVal($/;" f +DataOffset mod_http.c /^DataOffset($/;" f file: +DefineInside mod_tcplib.c /^DefineInside($/;" f file: +DefineInsideRange mod_tcplib.c /^DefineInsideRange($/;" f file: +DefineInsideRecurse mod_tcplib.c /^DefineInsideRecurse($/;" f file: +DestroyCounters dyncounter.c /^DestroyCounters($/;" f +DestroyTree dyncounter.c /^DestroyTree($/;" f file: +DoHist mod_rttgraph.c /^DoHist($/;" f file: +DoPlot plotter.c /^DoPlot($/;" f file: +DoThru thruput.c /^DoThru($/;" f +DoplotIOpen mod_traffic.c /^DoplotIOpen(int port, Bool fopen)$/;" f file: +DumpFlags tcptrace.c /^DumpFlags(void)$/;" f file: +ECHO filt_scanner.c 587;" d file: +EH_SIZE tcpdump.c 80;" d file: +ENDPOINT_PAIR_HASHSIZE mod_tcplib.c 219;" d file: +EOB_ACT_CONTINUE_SCAN filt_scanner.c 122;" d file: +EOB_ACT_END_OF_FILE filt_scanner.c 123;" d file: +EOB_ACT_LAST_MATCH filt_scanner.c 124;" d file: +EOS filt_parser.c 14;" d file: +EPFileHeader etherpeek.c /^static struct EPFileHeader {$/;" s file: +EPFileHeader2 etherpeek.c /^static struct EPFileHeader2 {$/;" s file: +EPFilePacket2_v5_6 etherpeek.c /^struct EPFilePacket2_v5_6 {$/;" s file: +EPFilePacket3_v5_6 etherpeek.c /^struct EPFilePacket3_v5_6 { $/;" s file: +EPFilePacket_v5_6 etherpeek.c /^struct EPFilePacket_v5_6 {$/;" s file: +EP_V5 etherpeek.c 152;" d file: +EP_V6 etherpeek.c 153;" d file: +EP_V7 etherpeek.c 154;" d file: +EQUAL filt_parser.c 21;" d file: +ERF_HEADER_LEN erf.c 109;" d file: +ETHERNET_SLEN erf.c 133;" d file: +ETHERNET_WLEN erf.c 132;" d file: +EXCLUDE_PORT mod_traffic.c 118;" d file: +EndpointHash mod_tcplib.c /^EndpointHash($/;" f file: +EndpointName names.c /^EndpointName($/;" f +Ether_Ntoa print.c /^Ether_Ntoa (struct ether_addr *e)$/;" f +EvalConstant filter.c /^EvalConstant($/;" f file: +EvalFilter filter.c /^EvalFilter($/;" f file: +EvalMathopSigned filter.c /^EvalMathopSigned($/;" f file: +EvalMathopUnsigned filter.c /^EvalMathopUnsigned($/;" f file: +EvalRelopIpaddr filter.c /^EvalRelopIpaddr($/;" f file: +EvalRelopSigned filter.c /^EvalRelopSigned($/;" f file: +EvalRelopString filter.c /^EvalRelopString($/;" f file: +EvalRelopUnsigned filter.c /^EvalRelopUnsigned($/;" f file: +EvalVariable filter.c /^EvalVariable($/;" f file: +ExcludePorts mod_traffic.c /^ExcludePorts($/;" f file: +ExpandFormat tcptrace.c /^ExpandFormat(const char *format)$/;" f +ExplainOutput tcptrace.c /^ExplainOutput(void)$/;" f file: +ExtractContents trace.c /^ExtractContents($/;" f file: +FCS_BITS erf.c 112;" d file: +FDDIPATTERNLEN snoop.c 115;" d file: +FLEX_SCANNER filt_scanner.c 25;" d file: +FileIsStdin compress.c /^FileIsStdin($/;" f +FileToBuf tcptrace.c /^FileToBuf($/;" f file: +Filter2Str filter.c /^Filter2Str($/;" f +FinCount output.c /^FinCount($/;" f +FindBinary compress.c /^static char *FindBinary($/;" f file: +FindClient mod_http.c /^FindClient($/;" f file: +FindContent mod_http.c /^FindContent($/;" f file: +FindCounter dyncounter.c /^FindCounter($/;" f file: +FindEndpointPair mod_tcplib.c /^FindEndpointPair($/;" f file: +FindGets mod_http.c /^FindGets($/;" f file: +FindLeaf dyncounter.c /^FindLeaf($/;" f file: +FindPort mod_traffic.c /^FindPort($/;" f file: +FindPrevConnection mod_tcplib.c /^FindPrevConnection($/;" f +FindTTP trace.c /^FindTTP($/;" f file: +FindTwig dyncounter.c /^FindTwig($/;" f file: +FindUTP udp.c /^FindUTP($/;" f file: +FinishModules tcptrace.c /^FinishModules(void)$/;" f file: +FinishTree dyncounter.c /^FinishTree($/;" f file: +FinishTreeRecurse dyncounter.c /^FinishTreeRecurse($/;" f file: +FormatAddrBrief mod_tcplib.c /^FormatAddrBrief($/;" f file: +FormatBrief mod_tcplib.c /^FormatBrief($/;" f file: +FormatBrief output.c /^FormatBrief($/;" f file: +Formats tcptrace.c /^Formats(void)$/;" f file: +FrameNum netscout.c /^ tt_int32 FrameNum;$/;" m struct:netscout_packet_header file: +FreePtpPtr poolaccess.c /^FreePtpPtr($/;" f +FreePtpSnap poolaccess.c /^FreePtpSnap($/;" f +FreeQuadrant poolaccess.c /^FreeQuadrant($/;" f +FreeRtconn mod_realtime.c /^FreeRtconn($/;" f file: +FreeSegment poolaccess.c /^FreeSegment($/;" f +FreeSeqspace poolaccess.c /^FreeSeqspace($/;" f +FreeTcpPair poolaccess.c /^FreeTcpPair($/;" f +FreeUdpPair poolaccess.c /^FreeUdpPair($/;" f +Freeitcinfo mod_inbounds.c /^ Freeitcinfo($/;" f file: +Freeiucinfo mod_inbounds.c /^ Freeiucinfo($/;" f file: +GREATER filt_parser.c 17;" d file: +GREATER_EQ filt_parser.c 18;" d file: +GetGran dyncounter.c /^GetGran($/;" f +GetMaxCount dyncounter.c /^GetMaxCount($/;" f +GetMaxIx dyncounter.c /^GetMaxIx($/;" f +GetMinIx dyncounter.c /^GetMinIx($/;" f +GetTotalCounter dyncounter.c /^GetTotalCounter($/;" f +GrabOnly tcptrace.c /^GrabOnly($/;" f file: +GrabOnlyUDP tcptrace.c /^ GrabOnlyUDP($/;" f file: +HASHTOIX gcache.c 139;" d file: +HASH_TABLE_SIZE trace.c 731;" d file: +HASH_TABLE_SIZE trace.c 733;" d file: +HASH_TABLE_SIZE udp.c 141;" d file: +HDLC_SLEN erf.c 139;" d file: +HDLC_WLEN erf.c 138;" d file: +Help tcptrace.c /^Help($/;" f file: +HelpFilter filter.c /^HelpFilter(void)$/;" f +HelpFilterVariables filter.c /^HelpFilterVariables(void)$/;" f file: +Hints tcptrace.c /^Hints(void)$/;" f file: +HostAddr names.c /^HostAddr($/;" f +HostLetter plotter.c /^HostLetter($/;" f +HostName names.c /^HostName($/;" f +HttpDoPlot mod_http.c /^HttpDoPlot()$/;" f file: +HttpGather mod_http.c /^HttpGather($/;" f file: +HttpPrintone mod_http.c /^HttpPrintone($/;" f file: +INBOUNDS_DEBUG mod_inbounds.c 158;" d file: +INBOUNDS_TCP_UPDATE_INTERVAL mod_inbounds.c 155;" d file: +INBOUNDS_UDP_UPDATE_INTERVAL mod_inbounds.c 156;" d file: +INCLUDE_PHONE_CONV mod_tcplib.c 81;" d file: +INCLUDE_PORT mod_traffic.c 119;" d file: +INCOMING mod_tcplib.c /^enum t_dtype {LOCAL = 0, INCOMING = 1, OUTGOING = 2, REMOTE = 3};$/;" e enum:t_dtype file: +INITIAL filt_scanner.c 436;" d file: +IPADDR filt_parser.c 38;" d file: +IPHash mod_tcplib.c /^IPHash($/;" f file: +IPV4ADDR2ADDR ipv6.c /^IPV4ADDR2ADDR($/;" f +IPV6ADDR2ADDR ipv6.c /^IPV6ADDR2ADDR($/;" f +IP_COPYADDR trace.c /^static inline void IP_COPYADDR (ipaddr *ptoaddr, ipaddr *pfromaddr)$/;" f file: +IP_LOWADDR trace.c /^static inline int IP_LOWADDR (ipaddr *paddr1, ipaddr *paddr2)$/;" f file: +IP_SAMEADDR trace.c /^static inline int IP_SAMEADDR (ipaddr *paddr1, ipaddr *paddr2)$/;" f file: +IPcmp ipv6.c /^int IPcmp($/;" f +ISBADCID gcache.c 137;" d file: +IS_CLIENT mod_http.c 202;" d file: +IS_SERVER mod_http.c 203;" d file: +Ignore tcptrace.c /^Ignore($/;" f file: +IgnoreConn trace.c /^IgnoreConn($/;" f +IgnoreUDP tcptrace.c /^ IgnoreUDP($/;" f file: +IgnoreUDPConn udp.c /^void IgnoreUDPConn($/;" f +IncludePorts mod_traffic.c /^IncludePorts($/;" f file: +Indent dyncounter.c /^static void Indent(int depth)$/;" f file: +InsideBytes mod_tcplib.c /^static int InsideBytes($/;" f file: +InstallFilter filter.c /^InstallFilter($/;" f +IsInside mod_tcplib.c /^IsInside($/;" f file: +IsNewBurst mod_inbounds.c /^ IsNewBurst($/;" f file: +IsNewBurst mod_tcplib.c /^IsNewBurst($/;" f file: +IsRTO rexmit.c /^Bool IsRTO(tcb *ptcb, seqnum s) {$/;" f +LABEL mod_collie.c 170;" d file: +LESS filt_parser.c 19;" d file: +LESS_EQ filt_parser.c 20;" d file: +LOCAL mod_tcplib.c /^enum t_dtype {LOCAL = 0, INCOMING = 1, OUTGOING = 2, REMOTE = 3};$/;" e enum:t_dtype file: +LOCAL_ONLY mod_tcplib.c 96;" d file: +LOOP_OVER_BOTH_TCBS mod_tcplib.c 165;" d file: +LPAREN filt_parser.c 15;" d file: +ListModules tcptrace.c /^ListModules(void)$/;" f file: +LoadModules tcptrace.c /^LoadModules($/;" f file: +LookupCounter dyncounter.c /^LookupCounter($/;" f +LookupVar filter.c /^LookupVar($/;" f file: +MAX_RECORD_LEN erf.c 110;" d file: +MFMap mod_http.c /^MFMap($/;" f file: +MFUnMap mod_http.c /^MFUnMap($/;" f file: +MINUS filt_parser.c 29;" d file: +MOD filt_parser.c 32;" d file: +M_closeold mfiles.c /^M_closeold(void)$/;" f file: +M_mkdirp mfiles.c /^M_mkdirp(char *directory)$/;" f file: +M_printlru mfiles.c /^M_printlru(void)$/;" f file: +Mac2unix etherpeek.c 146;" d file: +MakeBinaryNode filter.c /^MakeBinaryNode($/;" f +MakeBoolConstNode filter.c /^MakeBoolConstNode($/;" f +MakeBuckets mod_rttgraph.c /^MakeBuckets($/;" f file: +MakeConjunction filter.c /^MakeConjunction($/;" f file: +MakeConnRec mod_collie.c /^MakeConnRec(void)$/;" f file: +MakeConnRec mod_traffic.c /^MakeConnRec(void)$/;" f file: +MakeCounter dyncounter.c /^MakeCounter($/;" f file: +MakeCounterStruct dyncounter.c /^MakeCounterStruct()$/;" f file: +MakeDepth dyncounter.c /^MakeDepth($/;" f file: +MakeDisjunction filter.c /^MakeDisjunction($/;" f file: +MakeGetRec mod_http.c /^MakeGetRec($/;" f file: +MakeHttpRec mod_http.c /^MakeHttpRec()$/;" f file: +MakeIPaddrConstNode filter.c /^MakeIPaddrConstNode($/;" f +MakeList pool.c /^MakeList($/;" f file: +MakeMemPool pool.c /^MakeMemPool($/;" f +MakeOneBinaryNode filter.c /^MakeOneBinaryNode($/;" f file: +MakePtpPtr poolaccess.c /^MakePtpPtr($/;" f +MakePtpSnap poolaccess.c /^MakePtpSnap($/;" f +MakeQuadrant poolaccess.c /^MakeQuadrant($/;" f +MakeRtconn mod_realtime.c /^MakeRtconn($/;" f file: +MakeRttgraphRec mod_rttgraph.c /^MakeRttgraphRec()$/;" f file: +MakeSegment poolaccess.c /^MakeSegment($/;" f +MakeSeqspace poolaccess.c /^MakeSeqspace($/;" f +MakeSignedConstNode filter.c /^MakeSignedConstNode($/;" f +MakeStringConstNode filter.c /^MakeStringConstNode($/;" f +MakeTcpPair poolaccess.c /^MakeTcpPair($/;" f +MakeTrafficLines mod_traffic.c /^MakeTrafficLines($/;" f file: +MakeTrafficRec mod_traffic.c /^MakeTrafficRec($/;" f file: +MakeUDPConnRec mod_collie.c /^MakeUDPConnRec(void)$/;" f file: +MakeUdpPair poolaccess.c /^MakeUdpPair($/;" f +MakeUnaryNode filter.c /^MakeUnaryNode($/;" f +MakeUnsignedConstNode filter.c /^MakeUnsignedConstNode($/;" f +MakeVarNode filter.c /^MakeVarNode($/;" f +Makeitcinfo mod_inbounds.c /^ Makeitcinfo($/;" f file: +Makeiucinfo mod_inbounds.c /^ Makeiucinfo($/;" f file: +MallocZ tcptrace.c /^MallocZ($/;" f +Mcheck mfiles.c /^Mcheck($/;" f file: +MemCpy tcptrace.c /^MemCpy(void *vp1, void *vp2, size_t n)$/;" f +MethodCode mod_http.c /^} MethodCode;$/;" t typeref:enum:__anon4 file: +MethodCodeDelete mod_http.c /^ MethodCodeDelete,$/;" e enum:__anon4 file: +MethodCodeGet mod_http.c /^ MethodCodeGet,$/;" e enum:__anon4 file: +MethodCodeHead mod_http.c /^ MethodCodeHead,$/;" e enum:__anon4 file: +MethodCodeOptions mod_http.c /^ MethodCodeOptions,$/;" e enum:__anon4 file: +MethodCodePost mod_http.c /^ MethodCodePost,$/;" e enum:__anon4 file: +MethodCodePut mod_http.c /^ MethodCodePut,$/;" e enum:__anon4 file: +MethodCodeString mod_http.c /^char *MethodCodeString[] = {$/;" v +MethodCodeTrace mod_http.c /^ MethodCodeTrace,$/;" e enum:__anon4 file: +MethodCodeUnknown mod_http.c /^ MethodCodeUnknown$/;" e enum:__anon4 file: +Mf_totail mfiles.c /^Mf_totail($/;" f file: +Mf_unlink mfiles.c /^Mf_unlink($/;" f file: +Mfclose mfiles.c /^Mfclose($/;" f +Mfflush mfiles.c /^Mfflush($/;" f +Mfileno mfiles.c /^Mfileno($/;" f +Mfopen mfiles.c /^Mfopen($/;" f +Mfopen_internal mfiles.c /^Mfopen_internal($/;" f file: +Mfpipe mfiles.c /^Mfpipe($/;" f +Mfprintf mfiles.c /^Mfprintf($/;" f +Mfseek mfiles.c /^Mfseek($/;" f +Mftell mfiles.c /^Mftell($/;" f +Mfwrite mfiles.c /^Mfwrite($/;" f +Minit mfiles.c /^Minit(void)$/;" f +MissingData trace.c /^MissingData(tcp_pair *ptp)$/;" f file: +ModuleConnFillcache mod_tcplib.c /^ModuleConnFillcache($/;" f file: +ModulesPerConn tcptrace.c /^ModulesPerConn($/;" f file: +ModulesPerFile tcptrace.c /^ModulesPerFile($/;" f file: +ModulesPerNonTCPUDP tcptrace.c /^ModulesPerNonTCPUDP($/;" f file: +ModulesPerOldConn tcptrace.c /^ModulesPerOldConn($/;" f +ModulesPerPacket tcptrace.c /^ModulesPerPacket($/;" f file: +ModulesPerUDPConn tcptrace.c /^ModulesPerUDPConn($/;" f file: +ModulesPerUDPPacket tcptrace.c /^ModulesPerUDPPacket($/;" f file: +MoreTcpPairs trace.c /^MoreTcpPairs($/;" f file: +MoreUdpPairs udp.c /^MoreUdpPairs($/;" f file: +MostRecentFtpControl mod_tcplib.c /^MostRecentFtpControl($/;" f file: +MustBeType filter.c /^MustBeType($/;" f file: +Mvfprintf mfiles.c /^Mvfprintf($/;" f +NEQUAL filt_parser.c 22;" d file: +NETM_DUMP_OFFSET netm.c 71;" d file: +NETM_KEY netm.c 88;" d file: +NETM_VERSION_NEW netm.c 87;" d file: +NETM_VERSION_OLD netm.c 86;" d file: +NOT filt_parser.c 23;" d file: +NULL_IX gcache.c 111;" d file: +NULL_PCE gcache.c 129;" d file: +NULL_PHE gcache.c 110;" d file: +NUM_DIRECTION_TYPES mod_tcplib.c 86;" d file: +NUM_EXTENDED_BOOLS tcptrace.c 269;" d file: +NUM_EXTENDED_OPTIONS tcptrace.c 336;" d file: +NUM_EXTENDED_VARS tcptrace.c 313;" d file: +NUM_PORTS mod_traffic.c 116;" d file: +NUM_SLICES mod_rttgraph.c 74;" d file: +NewModuleConn mod_tcplib.c /^NewModuleConn()$/;" f file: +NewNode dyncounter.c /^NewNode($/;" f file: +NewTTP trace.c /^NewTTP($/;" f file: +NewUTP udp.c /^NewUTP($/;" f file: +NextCounter dyncounter.c /^NextCounter($/;" f +NextCounterRecurse dyncounter.c /^NextCounterRecurse($/;" f file: +NextHostLetter plotter.c /^NextHostLetter(void)$/;" f +OR filt_parser.c 25;" d file: +OUTGOING mod_tcplib.c /^enum t_dtype {LOCAL = 0, INCOMING = 1, OUTGOING = 2, REMOTE = 3};$/;" e enum:t_dtype file: +OnlyConn trace.c /^OnlyConn($/;" f +OnlyUDPConn udp.c /^OnlyUDPConn($/;" f +Op2Str filter.c /^Op2Str($/;" f +PLOTTER_ACTIVE_FILENAME mod_traffic.c 161;" d file: +PLOTTER_BYTES_FILENAME mod_traffic.c 159;" d file: +PLOTTER_DATA_FILENAME mod_traffic.c 171;" d file: +PLOTTER_HALFOPEN_FILENAME mod_traffic.c 168;" d file: +PLOTTER_IDLE_FILENAME mod_traffic.c 170;" d file: +PLOTTER_I_OPEN_FILENAME mod_traffic.c 164;" d file: +PLOTTER_LONG_FILENAME mod_traffic.c 166;" d file: +PLOTTER_LOSS_FILENAME mod_traffic.c 165;" d file: +PLOTTER_OPENCLOSE_FILENAME mod_traffic.c 163;" d file: +PLOTTER_OPEN_FILENAME mod_traffic.c 162;" d file: +PLOTTER_PACKETS_FILENAME mod_traffic.c 160;" d file: +PLOTTER_PUREACKS_FILENAME mod_traffic.c 169;" d file: +PLOTTER_RTT_FILENAME mod_traffic.c 167;" d file: +PLUS filt_parser.c 28;" d file: +PORT_FILENAME mod_traffic.c 122;" d file: +ParenHostName print.c /^ParenHostName($/;" f file: +ParenServiceName print.c /^ParenServiceName($/;" f file: +ParseArgs mod_collie.c /^ParseArgs(char *argstring)$/;" f file: +ParseArgs mod_slice.c /^ParseArgs(char *argstring)$/;" f file: +ParseArgs mod_tcplib.c /^ParseArgs(char *argstring)$/;" f file: +ParseArgs mod_traffic.c /^ParseArgs(char *argstring)$/;" f file: +ParseArgs tcptrace.c /^ParseArgs($/;" f file: +ParseExtendedBool tcptrace.c /^ParseExtendedBool($/;" f file: +ParseExtendedOpt tcptrace.c /^ParseExtendedOpt($/;" f file: +ParseExtendedVar tcptrace.c /^ParseExtendedVar($/;" f file: +ParseFilter filter.c /^ParseFilter($/;" f +ParseOptions trace.c /^ParseOptions($/;" f +PassesFilter filter.c /^PassesFilter($/;" f +PcapSavePacket tcpdump.c /^PcapSavePacket($/;" f +PeekPacket_v7 etherpeek.c /^typedef struct PeekPacket_v7 {$/;" s file: +PeekPacket_v7 etherpeek.c /^} PeekPacket_v7;$/;" t typeref:struct:PeekPacket_v7 file: +PipeFitting compress.c /^PipeFitting($/;" f file: +PipeHelper compress.c /^PipeHelper(void)$/;" f +PlotHist mod_rttgraph.c /^PlotHist($/;" f file: +PlotOne mod_rttgraph.c /^PlotOne($/;" f file: +Pool pool.c /^struct Pool {$/;" s file: +PoolFree pool.c /^PoolFree($/;" f +PoolInsertList pool.c /^PoolInsertList($/;" f file: +PoolMalloc pool.c /^PoolMalloc($/;" f +PoolRealloc pool.c /^PoolRealloc($/;" f file: +PoolValloc pool.c /^PoolValloc($/;" f file: +PortName mod_traffic.c /^PortName($/;" f file: +PrintBrief output.c /^PrintBrief($/;" f +PrintConst filter.c /^PrintConst($/;" f file: +PrintFilter filter.c /^PrintFilter($/;" f +PrintFilterInternal filter.c /^PrintFilterInternal($/;" f file: +PrintLeafList dyncounter.c /^PrintLeafList($/;" f file: +PrintRawData print.c /^PrintRawData($/;" f +PrintRawDataHex print.c /^PrintRawDataHex($/;" f +PrintSVHeader output.c /^PrintSVHeader($/;" f +PrintSeqRep print.c /^PrintSeqRep($/;" f file: +PrintTSChain mod_http.c /^PrintTSChain($/;" f file: +PrintTrace output.c /^PrintTrace($/;" f +PrintTree dyncounter.c /^static void PrintTree($/;" f file: +PrintTreeRecurse dyncounter.c /^PrintTreeRecurse($/;" f file: +PrintUDPCMsg mod_inbounds.c /^ PrintUDPCMsg(iucinfo *udp_conn)$/;" f file: +PrintVar filter.c /^PrintVar($/;" f file: +ProcessFile tcptrace.c /^ProcessFile($/;" f file: +Ptr2Signed filter.c /^Ptr2Signed($/;" f file: +Ptr2Unsigned filter.c /^Ptr2Unsigned($/;" f file: +QuitSig tcptrace.c /^QuitSig($/;" f file: +READ_OLD_FILES mod_tcplib.c 78;" d file: +RECORDS_FOR_ERF_CHECK erf.c 111;" d file: +REJECT filt_scanner.c 430;" d file: +REMOTE mod_tcplib.c /^enum t_dtype {LOCAL = 0, INCOMING = 1, OUTGOING = 2, REMOTE = 3};$/;" e enum:t_dtype file: +RESIZE_TIMES pool.c 87;" d file: +RPAREN filt_parser.c 16;" d file: +ReadOldFile mod_tcplib.c /^ReadOldFile($/;" f file: +Real_Size_FH etherpeek.c 140;" d file: +Real_Size_FH2 etherpeek.c 141;" d file: +Real_Size_FP etherpeek.c 142;" d file: +Real_Size_FP2 etherpeek.c 143;" d file: +Real_Size_FP3 etherpeek.c 144;" d file: +ReallocZ tcptrace.c /^ReallocZ($/;" f +RecentlyActiveConn mod_tcplib.c /^RecentlyActiveConn($/;" f file: +RemoveConn trace.c /^RemoveConn($/;" f file: +RemoveOldConns trace.c /^RemoveOldConns($/;" f file: +RemoveTcpPair trace.c /^RemoveTcpPair($/;" f file: +Res2Str filter.c /^Res2Str($/;" f file: +RunAllFour mod_tcplib.c /^RunAllFour($/;" f file: +SIGNED filt_parser.c 35;" d file: +SLICE_FILENAME mod_slice.c 64;" d file: +SNOOP_DL_ATM snoop.c 91;" d file: +SNOOP_DL_ETHER snoop.c 89;" d file: +SNOOP_DL_FDDI snoop.c 90;" d file: +STATS_FILENAME mod_traffic.c 123;" d file: +STRING filt_parser.c 34;" d file: +SV_HEADER1_COLUMN_COUNT output.c 1018;" d file: +SV_HEADER2_COLUMN_COUNT output.c 1033;" d file: +SV_OWIN_HEADER_COLUMN_COUNT output.c 1045;" d file: +SV_RTT_HEADER_COLUMN_COUNT output.c 1078;" d file: +SYS_STDIN erf.c 58;" d file: +SYS_STDIN erf.c 60;" d file: +SYS_STDIN etherpeek.c 78;" d file: +SYS_STDIN etherpeek.c 80;" d file: +SYS_STDIN netm.c 76;" d file: +SYS_STDIN netm.c 78;" d file: +SYS_STDIN netscout.c 86;" d file: +SYS_STDIN netscout.c 88;" d file: +SYS_STDIN nlanr.c 105;" d file: +SYS_STDIN nlanr.c 107;" d file: +SYS_STDIN ns.c 78;" d file: +SYS_STDIN ns.c 80;" d file: +SYS_STDIN snoop.c 75;" d file: +SYS_STDIN snoop.c 77;" d file: +SameConn trace.c /^SameConn($/;" f +SameEndpoints mod_tcplib.c /^SameEndpoints($/;" f file: +SeqRep trace.c /^SeqRep($/;" f file: +ServiceName names.c /^ServiceName($/;" f +SetCounter dyncounter.c /^SetCounter($/;" f +Size netscout.c /^ tt_int32 Size;$/;" m struct:netscout_packet_header file: +SnapFindHighest avl.c /^SnapFindHighest($/;" f file: +SnapFindLowest avl.c /^ SnapFindLowest($/;" f file: +SnapInsert avl.c /^SnapInsert($/;" f +SnapLeftGrown avl.c /^SnapLeftGrown($/;" f file: +SnapLeftShrunk avl.c /^SnapLeftShrunk($/;" f file: +SnapRemove avl.c /^SnapRemove($/;" f +SnapRightGrown avl.c /^SnapRightGrown($/;" f file: +SnapRightShrunk avl.c /^SnapRightShrunk($/;" f file: +SnapRotLeft avl.c /^SnapRotLeft($/;" f file: +SnapRotRight avl.c /^SnapRotRight($/;" f file: +StatLineF output.c /^StatLineF($/;" f file: +StatLineField output.c /^StatLineField($/;" f file: +StatLineFieldF output.c /^StatLineFieldF($/;" f file: +StatLineFieldL output.c /^StatLineFieldL($/;" f file: +StatLineI output.c 91;" d file: +StatLineI output.c 96;" d file: +StatLineI_L output.c /^StatLineI_L($/;" f file: +StatLineI_LL output.c /^StatLineI_LL($/;" f file: +StatLineOne output.c /^StatLineOne($/;" f file: +StatLineP output.c /^StatLineP($/;" f file: +Stdev output.c /^Stdev($/;" f file: +StoreCounters mod_tcplib.c /^StoreCounters($/;" f file: +StringToArgv tcptrace.c /^StringToArgv($/;" f +SynCount output.c /^SynCount($/;" f +TCB_CACHE_A2B mod_inbounds.c 160;" d file: +TCB_CACHE_A2B mod_tcplib.c 163;" d file: +TCB_CACHE_B2A mod_inbounds.c 161;" d file: +TCB_CACHE_B2A mod_tcplib.c 164;" d file: +TCPInteractivity mod_inbounds.c /^ TCPInteractivity($/;" f file: +TIMES filt_parser.c 30;" d file: +TSGPlotName plotter.c /^TSGPlotName($/;" f file: +TSH_DUMP_OFFSET nlanr.c 111;" d file: +TYPE_AAL5 erf.c 68;" d file: +TYPE_ATM erf.c 67;" d file: +TYPE_ETH erf.c 66;" d file: +TYPE_HDLC_POS erf.c 65;" d file: +TYPE_LEGACY erf.c 64;" d file: +TestIncoming mod_tcplib.c /^TestIncoming($/;" f file: +TestLocal mod_tcplib.c /^TestLocal($/;" f file: +TestOutgoing mod_tcplib.c /^TestOutgoing($/;" f file: +TestRemote mod_tcplib.c /^TestRemote($/;" f file: +TrackEndpoints mod_tcplib.c /^TrackEndpoints($/;" f file: +UDPFormatBrief output.c /^UDPFormatBrief($/;" f file: +UDPHDR_LEN mod_inbounds.c 163;" d file: +UDPInteractivity mod_inbounds.c /^ UDPInteractivity($/;" f file: +UDPPrintBrief output.c /^UDPPrintBrief($/;" f +UDPPrintTrace output.c /^UDPPrintTrace($/;" f +UDP_A2B mod_inbounds.c 164;" d file: +UDP_B2A mod_inbounds.c 165;" d file: +UNSIGNED filt_parser.c 36;" d file: +UpdateConnList trace.c /^UpdateConnList($/;" f file: +UpdateConnLists trace.c /^UpdateConnLists($/;" f file: +Usage tcptrace.c /^Usage(void)$/;" f file: +UsageModules tcptrace.c /^UsageModules(void)$/;" f file: +VARIABLE filt_parser.c 33;" d file: +VERSION_5 etherpeek.c 150;" d file: +VERSION_6 etherpeek.c 149;" d file: +VERSION_7 etherpeek.c 148;" d file: +VFuncClntTput filter.c /^VFuncClntTput($/;" f +VFuncServTput filter.c /^VFuncServTput($/;" f +VFuncTput filter.c /^VFuncTput($/;" f file: +Var2Ipaddr filter.c /^Var2Ipaddr($/;" f file: +Var2Signed filter.c /^Var2Signed($/;" f file: +Var2String filter.c /^Var2String($/;" f file: +Var2Unsigned filter.c /^Var2Unsigned($/;" f file: +Vartype2BStr filter.c /^Vartype2BStr($/;" f +Vartype2Str filter.c /^Vartype2Str($/;" f +VerifyClosedConnInt tcptrace.c /^VerifyClosedConnInt($/;" f file: +VerifyLiveConnInt tcptrace.c /^VerifyLiveConnInt($/;" f file: +VerifyMaxConnNum tcptrace.c /^VerifyMaxConnNum($/;" f file: +VerifyNonrealLiveConnInt tcptrace.c /^ VerifyNonrealLiveConnInt($/;" f file: +VerifyPositive tcptrace.c /^VerifyPositive($/;" f file: +VerifyUpdateInt tcptrace.c /^VerifyUpdateInt($/;" f file: +Version tcptrace.c /^Version(void)$/;" f file: +WhenAcked mod_http.c /^WhenAcked($/;" f file: +WhenSent mod_http.c /^WhenSent($/;" f file: +WhichDir trace.c /^ WhichDir($/;" f +WhichFormat compress.c /^WhichFormat($/;" f file: +WritePlotHeader plotter.c /^WritePlotHeader($/;" f file: +YYABORT filt_parser.c 351;" d file: +YYACCEPT filt_parser.c 350;" d file: +YYBACKUP filt_parser.c 359;" d file: +YYBISON filt_parser.c 5;" d file: +YYDEBUG filt_parser.c 103;" d file: +YYEMPTY filt_parser.c 348;" d file: +YYEOF filt_parser.c 349;" d file: +YYERRCODE filt_parser.c 372;" d file: +YYERROR filt_parser.c 352;" d file: +YYFAIL filt_parser.c 357;" d file: +YYFINAL filt_parser.c 127;" d file: +YYFLAG filt_parser.c 128;" d file: +YYINITDEPTH filt_parser.c 419;" d file: +YYLAST filt_parser.c 240;" d file: +YYLEX filt_parser.c 375;" d file: +YYLEX filt_parser.c 381;" d file: +YYLEX filt_parser.c 383;" d file: +YYLEX filt_parser.c 387;" d file: +YYLEX filt_parser.c 389;" d file: +YYMAXDEPTH filt_parser.c 426;" d file: +YYMAXDEPTH filt_parser.c 430;" d file: +YYNTBASE filt_parser.c 129;" d file: +YYPARSE_PARAM_ARG filt_parser.c 487;" d file: +YYPARSE_PARAM_ARG filt_parser.c 490;" d file: +YYPARSE_PARAM_ARG filt_parser.c 494;" d file: +YYPARSE_PARAM_DECL filt_parser.c 488;" d file: +YYPARSE_PARAM_DECL filt_parser.c 491;" d file: +YYPARSE_PARAM_DECL filt_parser.c 495;" d file: +YYPOPSTACK filt_parser.c 529;" d file: +YYRECOVERING filt_parser.c 358;" d file: +YYSTACK_ALLOC filt_parser.c 337;" d file: +YYSTACK_ALLOC filt_parser.c 339;" d file: +YYSTACK_USE_ALLOCA filt_parser.c 296;" d file: +YYSTACK_USE_ALLOCA filt_parser.c 299;" d file: +YYSTACK_USE_ALLOCA filt_parser.c 303;" d file: +YYSTACK_USE_ALLOCA filt_parser.c 320;" d file: +YYSTATE filt_scanner.c 104;" d file: +YYSTYPE filt_parser.c /^} YYSTYPE;$/;" t typeref:union:__anon3 file: +YYTERROR filt_parser.c 371;" d file: +YYTRANSLATE filt_parser.c 131;" d file: +YY_AT_BOL filt_scanner.c 280;" d file: +YY_BREAK filt_scanner.c 646;" d file: +YY_BUFFER_EOF_PENDING filt_scanner.c 216;" d file: +YY_BUFFER_NEW filt_scanner.c 204;" d file: +YY_BUFFER_NORMAL filt_scanner.c 205;" d file: +YY_BUFFER_STATE filt_scanner.c /^typedef struct yy_buffer_state *YY_BUFFER_STATE;$/;" t typeref:struct:yy_buffer_state file: +YY_BUF_SIZE filt_scanner.c 115;" d file: +YY_CHAR filt_scanner.c /^typedef unsigned char YY_CHAR;$/;" t file: +YY_CURRENT_BUFFER filt_scanner.c 225;" d file: +YY_DECL filt_scanner.c 634;" d file: +YY_DO_BEFORE_ACTION filt_scanner.c 296;" d file: +YY_END_OF_BUFFER filt_scanner.c 304;" d file: +YY_END_OF_BUFFER_CHAR filt_scanner.c 112;" d file: +YY_EXIT_FAILURE filt_scanner.c 1726;" d file: +YY_FATAL_ERROR filt_scanner.c 627;" d file: +YY_FLEX_MAJOR_VERSION filt_scanner.c 26;" d file: +YY_FLEX_MINOR_VERSION filt_scanner.c 27;" d file: +YY_FLUSH_BUFFER filt_scanner.c 254;" d file: +YY_INPUT filt_scanner.c 502;" d file: +YY_INPUT filt_scanner.c 594;" d file: +YY_MORE_ADJ filt_scanner.c 432;" d file: +YY_NEW_FILE filt_scanner.c 110;" d file: +YY_NO_POP_STATE filt_scanner.c 557;" d file: +YY_NO_PUSH_STATE filt_scanner.c 556;" d file: +YY_NO_TOP_STATE filt_scanner.c 558;" d file: +YY_NULL filt_scanner.c 84;" d file: +YY_NUM_RULES filt_scanner.c 303;" d file: +YY_PROTO filt_scanner.c 78;" d file: +YY_PROTO filt_scanner.c 80;" d file: +YY_READ_BUF_SIZE filt_scanner.c 578;" d file: +YY_RESTORE_YY_MORE_OFFSET filt_scanner.c 433;" d file: +YY_RULE_SETUP filt_scanner.c 649;" d file: +YY_SC_TO_UI filt_scanner.c 91;" d file: +YY_START filt_scanner.c 103;" d file: +YY_START_STACK_INCR filt_scanner.c 622;" d file: +YY_STATE_EOF filt_scanner.c 107;" d file: +YY_USER_ACTION filt_scanner.c 641;" d file: +YY_USE_CONST filt_scanner.c 49;" d file: +YY_USE_CONST filt_scanner.c 56;" d file: +YY_USE_CONST filt_scanner.c 66;" d file: +YY_USE_PROTOS filt_scanner.c 46;" d file: +YY_USE_PROTOS filt_scanner.c 55;" d file: +YY_USE_PROTOS filt_scanner.c 67;" d file: +_BASIC_POOL_H pool.c 71;" d file: +__cplusplus filt_scanner.c 35;" d file: +__yy_memcpy filt_parser.c /^__yy_memcpy (char *to, char *from, unsigned int count)$/;" f file: +__yy_memcpy filt_parser.c /^__yy_memcpy (to, from, count)$/;" f file: +__yy_memcpy filt_parser.c 439;" d file: +a2b mod_rttgraph.c /^ struct rtt_tcb a2b;$/;" m struct:rttgraph_info typeref:struct:rttgraph_info::rtt_tcb file: +a2b_seg_color trace.c /^char *a2b_seg_color = "green"; \/* colors for segments on the time line chart *\/$/;" v +a2qIdle mod_inbounds.c /^ timeval a2qIdle;$/;" m struct:inbounds_tcp_conn_info file: +a2qIdle mod_inbounds.c /^ timeval a2qIdle;$/;" m struct:inbounds_udp_conn_info file: +aNum mod_inbounds.c /^ u_int aNum;$/;" m struct:inbounds_tcp_conn_info file: +aNum mod_inbounds.c /^ u_int aNum;$/;" m struct:inbounds_udp_conn_info file: +aSum mod_inbounds.c /^ u_long aSum;$/;" m struct:inbounds_tcp_conn_info file: +aSum mod_inbounds.c /^ u_long aSum;$/;" m struct:inbounds_udp_conn_info file: +a_byte mod_inbounds.c /^ u_long a_byte; \/* number of bytes from a to b within $/;" m struct:inbounds_tcp_conn_info file: +a_byte mod_inbounds.c /^ u_long a_byte; \/* number of bytes from a to b within$/;" m struct:inbounds_udp_conn_info file: +a_pkt mod_inbounds.c /^ u_long a_pkt; \/* number of packets from a to b within$/;" m struct:inbounds_tcp_conn_info file: +a_pkt mod_inbounds.c /^ u_long a_pkt; \/* number of packets from a to b within$/;" m struct:inbounds_udp_conn_info file: +ack_color trace.c /^char *ack_color = "green";$/;" v +ack_head mod_http.c /^ struct time_stamp ack_head;$/;" m struct:http_info typeref:struct:http_info::time_stamp file: +ack_in rexmit.c /^ack_in (tcb * ptcb,$/;" f +ack_tail mod_http.c /^ struct time_stamp ack_tail;$/;" m struct:http_info typeref:struct:http_info::time_stamp file: +ack_time mod_http.c /^ timeval ack_time; \/* when CLIENT acked CONTENT *\/$/;" m struct:get_info file: +ackdongle_ambig_color trace.c /^char *ackdongle_ambig_color = "red";$/;" v +ackdongle_nosample_color trace.c /^char *ackdongle_nosample_color = "blue";$/;" v +active_conn_count trace.c /^static int active_conn_count = 0;$/;" v file: +addr_pair mod_inbounds.c /^ tcp_pair_addrblock addr_pair;$/;" m struct:inbounds_tcp_conn_info file: +addr_pair mod_inbounds.c /^ udp_pair_addrblock addr_pair;$/;" m struct:inbounds_udp_conn_info file: +addr_pair mod_realtime.c /^ tcp_pair_addrblock addr_pair;$/;" m struct:realtime_conn_info file: +addr_pair mod_tcplib.c /^ tcp_pair_addrblock addr_pair;$/;" m struct:endpoint_pair file: +addr_pair mod_tcplib.c /^ tcp_pair_addrblock addr_pair;$/;" m struct:module_conninfo file: +addseg rexmit.c /^addseg (tcb * ptcb,$/;" f file: +age_interval mod_traffic.c /^static float age_interval = 15.0; \/* 15 seconds by default *\/$/;" v file: +alloca filt_parser.c 300;" d file: +atm erf.c /^ atm_rec_t atm;$/;" m union:erf_record::__anon2 file: +atm_rec erf.c /^typedef struct atm_rec {$/;" s file: +atm_rec_t erf.c /^} atm_rec_t;$/;" t typeref:struct:atm_rec file: +axis_switched plotter.c /^ Bool axis_switched; \/* Switch x & y axis types.$/;" m struct:plotter_info file: +b2a mod_rttgraph.c /^ struct rtt_tcb b2a;$/;" m struct:rttgraph_info typeref:struct:rttgraph_info::rtt_tcb file: +b2a_seg_color trace.c /^char *b2a_seg_color = "yellow"; $/;" v +b_byte mod_inbounds.c /^ u_long b_byte;$/;" m struct:inbounds_tcp_conn_info file: +b_byte mod_inbounds.c /^ u_long b_byte;$/;" m struct:inbounds_udp_conn_info file: +b_pkt mod_inbounds.c /^ u_long b_pkt; $/;" m struct:inbounds_tcp_conn_info file: +b_pkt mod_inbounds.c /^ u_long b_pkt;$/;" m struct:inbounds_udp_conn_info file: +bad_ip_checksums tcptrace.c /^u_long bad_ip_checksums = 0;$/;" v +bad_tcp_checksums tcptrace.c /^u_long bad_tcp_checksums = 0;$/;" v +bad_udp_checksums tcptrace.c /^u_long bad_udp_checksums = 0;$/;" v +bcopy gcache.c 76;" d file: +beginpnum tcptrace.c /^u_long beginpnum = 0;$/;" v +blen snoop.c /^ tt_uint32 blen;$/;" m struct:snoop_packet_header file: +block_no pool.c /^ unsigned int block_no; \/* number of block in the pool *\/$/;" m struct:Pool file: +block_size pool.c /^ unsigned int block_size; \/* size of a memory block *\/$/;" m struct:Pool file: +bool filt_parser.c /^ Bool bool;$/;" m union:__anon3 file: +bool_default tcptrace.c /^ Bool bool_default;$/;" m struct:ext_bool_op file: +bool_descr tcptrace.c /^ char *bool_descr;$/;" m struct:ext_bool_op file: +bool_optname tcptrace.c /^ char *bool_optname;$/;" m struct:ext_bool_op file: +bool_popt tcptrace.c /^ Bool *bool_popt;$/;" m struct:ext_bool_op file: +bottom_letters trace.c /^static Bool bottom_letters = 0; \/* I don't use this anymore *\/$/;" v file: +breakdown_hash_char mod_tcplib.c /^static const char breakdown_hash_char[] = { 'S', 'N', 'T', 'F', 'H', 'f'};$/;" v file: +breakdown_type mod_tcplib.c /^static int breakdown_type($/;" f file: +btype mod_tcplib.c /^ short btype;$/;" m struct:module_conninfo file: +buckets mod_rttgraph.c /^ u_long *buckets;$/;" m struct:hist file: +buf dstring.c /^ char *buf;$/;" m struct:dstring file: +buflen dstring.c /^ int buflen;$/;" m struct:dstring file: +built_bywhom version.c /^char *built_bywhom = BUILT_USER;$/;" v +built_when version.c /^char *built_when = BUILT_DATE;$/;" v +built_where version.c /^char *built_where = BUILT_HOST;$/;" v +burst_bytes mod_inbounds.c /^ u_long burst_bytes;$/;" m struct:inbounds_tcp_conn_info file: +burst_bytes mod_tcplib.c /^ u_long burst_bytes; \/* size of the current burst *\/$/;" m struct:module_conninfo_tcb file: +burstdata mod_tcplib.c /^struct burstdata {$/;" s file: +burstkey mod_tcplib.c /^struct burstkey {$/;" s file: +bzero gcache.c 73;" d file: +c_fin_time mod_http.c /^ timeval c_fin_time; \/* when CLIENT sent FIN *\/$/;" m struct:http_info file: +c_syn_time mod_http.c /^ timeval c_syn_time; \/* when CLIENT sent SYN *\/$/;" m struct:http_info file: +ca_enabled gcache.c /^static int ca_enabled;$/;" v file: +cacheblk gcache.c /^struct cacheblk {$/;" s file: +cacheentry gcache.c /^struct cacheentry {$/;" s file: +caclear gcache.c /^caclear($/;" f file: +cacreate gcache.c /^cacreate($/;" f +cadeleteold gcache.c /^cadeleteold($/;" f file: +cadestroy gcache.c /^cadestroy($/;" f +cadump gcache.c /^cadump(void)$/;" f +cafreemem gcache.c /^cafreemem($/;" f file: +cagetfree gcache.c /^cagetfree($/;" f file: +cagetindex gcache.c /^cagetindex($/;" f file: +cagetmem gcache.c /^cagetmem($/;" f file: +cahash gcache.c /^cahash($/;" f file: +cainit gcache.c /^cainit(void)$/;" f +cainsert gcache.c /^cainsert($/;" f +caisold gcache.c /^caisold($/;" f file: +callback tcpdump.c /^static int callback($/;" f file: +callback_phdr tcpdump.c /^static struct pcap_pkthdr *callback_phdr;$/;" v typeref:struct:pcap_pkthdr file: +callback_plast tcpdump.c /^static void *callback_plast;$/;" v file: +calookup gcache.c /^calookup($/;" f +capurge gcache.c /^capurge($/;" f +caremove gcache.c /^caremove($/;" f +casetsize gcache.c /^casetsize($/;" f file: +catab gcache.c /^static struct cacheblk catab[CA_NUMCACHES];$/;" v typeref:struct:cacheblk file: +caunlink gcache.c /^caunlink($/;" f file: +cb_cache gcache.c /^ struct cacheentry *cb_cache; \/* free nodes for the cache *\/$/;" m struct:cacheblk typeref:struct:cacheblk::cacheentry file: +cb_freelist gcache.c /^ tceix cb_freelist; \/* list of free cacheentries *\/$/;" m struct:cacheblk file: +cb_fulls gcache.c /^ u_int cb_fulls; \/* # removed, full table *\/$/;" m struct:cacheblk file: +cb_hash gcache.c /^ struct hashentry *cb_hash; \/* the hash table *\/$/;" m struct:cacheblk typeref:struct:cacheblk::hashentry file: +cb_hashsize gcache.c /^ u_short cb_hashsize; \/* size of hash table *\/$/;" m struct:cacheblk file: +cb_hits gcache.c /^ u_int cb_hits; \/* # hits *\/$/;" m struct:cacheblk file: +cb_lookups gcache.c /^ u_int cb_lookups; \/* # lookups *\/$/;" m struct:cacheblk file: +cb_maxent gcache.c /^ u_short cb_maxent; \/* maximum entries *\/$/;" m struct:cacheblk file: +cb_maxlife gcache.c /^ u_int cb_maxlife; \/* max life of an entry (secs) *\/$/;" m struct:cacheblk file: +cb_name gcache.c /^ char cb_name[CA_NAMELEN]; \/* name of the cache *\/$/;" m struct:cacheblk file: +cb_nument gcache.c /^ u_short cb_nument; \/* number of entries *\/$/;" m struct:cacheblk file: +cb_status gcache.c /^ cb_status cb_status; \/* INUSE or FREE *\/$/;" m struct:cacheblk file: +cb_status gcache.c /^enum cb_status { CB_INUSE=1, CB_FREE=2};$/;" g file: +cb_status gcache.c /^typedef enum cb_status cb_status;$/;" t typeref:enum:cb_status file: +cb_tos gcache.c /^ u_int cb_tos; \/* # timed out entries *\/$/;" m struct:cacheblk file: +ce_hash gcache.c /^ thval ce_hash; \/* value that was hashed in *\/$/;" m struct:cacheentry file: +ce_keylen gcache.c /^ tcelen ce_keylen; \/* length of the key *\/$/;" m struct:cacheentry file: +ce_keyptr gcache.c /^ char *ce_keyptr; \/* pointer to the key *\/$/;" m struct:cacheentry file: +ce_next gcache.c /^ tceix ce_next; \/* prev entry on list *\/$/;" m struct:cacheentry file: +ce_prev gcache.c /^ tceix ce_prev; \/* next entry on list *\/$/;" m struct:cacheentry file: +ce_reslen gcache.c /^ tcelen ce_reslen; \/* length of the result *\/$/;" m struct:cacheentry file: +ce_resptr gcache.c /^ char *ce_resptr; \/* pointer to the result *\/$/;" m struct:cacheentry file: +ce_status gcache.c /^ ce_status ce_status; \/* INUSE or FREE *\/$/;" m struct:cacheentry file: +ce_status gcache.c /^enum ce_status {CE_INUSE=11, CE_FREE=12};$/;" g file: +ce_status gcache.c /^typedef enum ce_status ce_status;$/;" t typeref:enum:ce_status file: +ce_tsaccess gcache.c /^ ttstamp ce_tsaccess; \/* timestamp - last access *\/$/;" m struct:cacheentry file: +ce_tsinsert gcache.c /^ ttstamp ce_tsinsert; \/* timestamp - time inserted *\/$/;" m struct:cacheentry file: +check_hw_dups trace.c /^check_hw_dups($/;" f file: +child_pid compress.c /^static int child_pid = -1;$/;" v file: +cksum trace.c /^cksum($/;" f file: +client_head mod_http.c /^} *client_head = NULL;$/;" v typeref:struct:client_info file: +client_info mod_http.c /^static struct client_info {$/;" s file: +clientname mod_http.c /^ char *clientname;$/;" m struct:client_info file: +closed mod_inbounds.c /^ Bool closed; \/\/ has the connection been closed ?$/;" m struct:inbounds_tcp_conn_info file: +closed mod_inbounds.c /^ Bool closed; \/\/ has the connection been closed ?$/;" m struct:inbounds_udp_conn_info file: +closed_conn_count trace.c /^static int closed_conn_count = 0;$/;" v file: +closed_conn_interval_st tcptrace.c /^static char *closed_conn_interval_st = NULL;$/;" v file: +closed_conn_list_head trace.c /^static ptp_ptr *closed_conn_list_head = NULL;$/;" v file: +closed_conn_list_tail trace.c /^static ptp_ptr *closed_conn_list_tail = NULL;$/;" v file: +collapse_quad rexmit.c /^collapse_quad (quadrant * pquad)$/;" f file: +collie_date mod_collie.c /^collie_date($/;" f file: +collie_done mod_collie.c /^collie_done(void)$/;" f +collie_dots mod_collie.c /^static char *collie_dots($/;" f file: +collie_filename mod_collie.c /^static char *collie_filename = NULL;$/;" v file: +collie_init mod_collie.c /^collie_init($/;" f +collie_name mod_collie.c /^static char *collie_name($/;" f file: +collie_newconn mod_collie.c /^collie_newconn($/;" f +collie_newfile mod_collie.c /^collie_newfile($/;" f +collie_newudpconn mod_collie.c /^collie_newudpconn($/;" f +collie_time mod_collie.c /^collie_time($/;" f file: +collie_usage mod_collie.c /^collie_usage(void)$/;" f +color mod_traffic.c /^ char *color;$/;" m struct:traffic_info file: +color plotter.c /^ char *color;$/;" m struct:pl_line file: +colorplot tcptrace.c /^Bool colorplot = TRUE;$/;" v +comment tcptrace.c /^char *comment;$/;" v +conn_head mod_realtime.c /^ rtconn *conn_head; \/* head of the list of tcp connections *\/$/;" m struct:realtime_info file: +conn_info mod_collie.c /^struct conn_info {$/;" s file: +conn_info mod_slice.c /^struct conn_info {$/;" s file: +conn_info mod_traffic.c /^struct conn_info {$/;" s file: +conn_num_threshold tcptrace.c /^Bool conn_num_threshold = FALSE;$/;" v +conn_tail mod_realtime.c /^ rtconn *conn_tail; \/* tail of the list of tcp connections *\/$/;" m struct:realtime_info file: +connhead mod_collie.c /^static struct conn_info *connhead = NULL;$/;" v typeref:struct:conn_info file: +connhead mod_traffic.c /^static struct conn_info *connhead = NULL;$/;" v typeref:struct:conn_info file: +conntype_counter mod_tcplib.c /^static u_long conntype_counter[NUM_DIRECTION_TYPES];$/;" v file: +conntype_duplex_counter mod_tcplib.c /^static u_long conntype_duplex_counter[NUM_DIRECTION_TYPES];$/;" v file: +conntype_nodata_counter mod_tcplib.c /^static u_long conntype_nodata_counter[NUM_DIRECTION_TYPES];$/;" v file: +conntype_noplex_counter mod_tcplib.c /^static u_long conntype_noplex_counter[NUM_DIRECTION_TYPES];$/;" v file: +conntype_uni_counter mod_tcplib.c /^static u_long conntype_uni_counter[NUM_DIRECTION_TYPES];$/;" v file: +const filt_parser.c 121;" d file: +content_length mod_http.c /^ unsigned content_length; \/* as reported by server *\/$/;" m struct:get_info file: +content_type mod_http.c /^ char *content_type; \/* MIME type *\/ $/;" m struct:get_info file: +conv_duration mod_tcplib.c /^ dyn_counter conv_duration;$/;" m struct:tcplibstats file: +conv_interarrival_all mod_tcplib.c /^ dyn_counter conv_interarrival_all;$/;" m struct:tcplibstats file: +conv_interarrival_byapp mod_tcplib.c /^ dyn_counter conv_interarrival_byapp[NUM_APPS];$/;" m struct:tcplibstats file: +copyright avl.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright compress.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright dyncounter.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright erf.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright etherpeek.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright filter.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright gcache.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright ipv6.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright mfiles.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright names.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright netm.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright netscout.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright nlanr.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright ns.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright output.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright plotter.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright pool.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright poolaccess.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright print.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright rexmit.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright snoop.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright tcpdump.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright tcptrace.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright thruput.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright trace.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +copyright udp.c /^static char const GCC_UNUSED copyright[] =$/;" v file: +count mod_inbounds.c /^ u_llong count;$/;" m struct:protocol file: +count mod_realtime.c /^ u_llong count;$/;" m struct:protocol file: +counted mod_tcplib.c /^ Bool counted[NUM_DIRECTION_TYPES];$/;" m struct:parallelism file: +create_quadrant rexmit.c /^create_quadrant (void)$/;" f file: +create_seg rexmit.c /^create_seg (seqnum seq,$/;" f file: +csv tcptrace.c /^Bool csv = FALSE;$/;" v +ctrunc tcptrace.c /^u_long ctrunc = 0;$/;" v +cur_filename tcptrace.c /^char *cur_filename;$/;" v +current_file mod_tcplib.c /^static char *current_file = NULL;$/;" v file: +current_time tcptrace.c /^struct timeval current_time;$/;" v typeref:struct:timeval +data_bytes mod_tcplib.c /^ u_llong data_bytes;$/;" m struct:module_conninfo_tcb file: +data_color trace.c /^char *data_color = "white";$/;" v +data_head mod_http.c /^ struct time_stamp data_head;$/;" m struct:http_info typeref:struct:http_info::time_stamp file: +data_nbytes_all mod_traffic.c /^static u_llong data_nbytes_all;$/;" v file: +data_nbytes_nonrexmit mod_traffic.c /^static u_llong data_nbytes_nonrexmit;$/;" v file: +data_tail mod_http.c /^ struct time_stamp data_tail;$/;" m struct:http_info typeref:struct:http_info::time_stamp file: +debug tcptrace.c /^int debug = 0;$/;" v +debug_http_groups mod_tcplib.c /^static u_long debug_http_groups;$/;" v file: +debug_http_nonpersistant mod_tcplib.c /^static u_long debug_http_nonpersistant;$/;" v file: +debug_http_parallel mod_tcplib.c /^static u_long debug_http_parallel; \/* parallel HTTP, not counted in breakdown\/conv *\/$/;" v file: +debug_http_persistant mod_tcplib.c /^static u_long debug_http_persistant;$/;" v file: +debug_http_single mod_tcplib.c /^static u_long debug_http_single;$/;" v file: +debug_http_slaves mod_tcplib.c /^static u_long debug_http_slaves;$/;" v file: +debug_http_total mod_tcplib.c /^static u_long debug_http_total; \/* all HTTP conns *\/$/;" v file: +debug_http_uni_bytes mod_tcplib.c /^static u_llong debug_http_uni_bytes; \/* data in at most one direction, ignored *\/$/;" v file: +debug_http_uni_conns mod_tcplib.c /^static u_long debug_http_uni_conns; \/* data in at most one direction, ignored *\/$/;" v file: +debug_newconn_badport mod_tcplib.c /^static u_long debug_newconn_badport; \/* a port we don't want *\/$/;" v file: +debug_newconn_counter mod_tcplib.c /^static u_long debug_newconn_counter; \/* total conns *\/$/;" v file: +debug_newconn_ftp_data_heuristic mod_tcplib.c /^static u_long debug_newconn_ftp_data_heuristic; \/* merely ASSUMED to be ftp data *\/$/;" v file: +debug_newconn_goodport mod_tcplib.c /^static u_long debug_newconn_goodport; \/* we want the port *\/$/;" v file: +debug_total_bytes mod_tcplib.c /^static u_llong debug_total_bytes; \/* total "bytes" accepted *\/$/;" v file: +default_color trace.c /^char *default_color = "white";$/;" v +depth dyncounter.c /^ u_long depth; \/* 1, 10, 100, 1000 ... 10,000,000 *\/$/;" m struct:node file: +destNum etherpeek.c /^ tt_uint16 destNum; \/* str corresponding to ether address*\/$/;" m struct:EPFilePacket3_v5_6 file: +dir mod_inbounds.c /^ Bool dir; \/* 0 - question, 1 - answer *\/$/;" m struct:inbounds_tcp_conn_info file: +dir mod_inbounds.c /^ Bool dir; \/* 0 - question, 1 - answer *\/$/;" m struct:inbounds_udp_conn_info file: +do_all_conv_arrivals mod_tcplib.c /^void do_all_conv_arrivals()$/;" f +do_all_final_breakdowns mod_tcplib.c /^static void do_all_final_breakdowns(void)$/;" f file: +do_final_breakdown mod_tcplib.c /^static void do_final_breakdown($/;" f file: +do_tcplib_conv_duration mod_tcplib.c /^do_tcplib_conv_duration($/;" f file: +do_tcplib_final_converse mod_tcplib.c /^do_tcplib_final_converse($/;" f file: +do_tcplib_next_converse mod_tcplib.c /^static void do_tcplib_next_converse($/;" f file: +do_tcplib_next_duration mod_tcplib.c /^static void do_tcplib_next_duration($/;" f file: +do_udp tcptrace.c /^Bool do_udp = FALSE;$/;" v +docadebug gcache.c /^static int docadebug = 0;$/;" v file: +docaerror gcache.c /^static int docaerror = 1;$/;" v file: +docheck_hw_dups tcptrace.c /^Bool docheck_hw_dups = TRUE;$/;" v +dointer_cnt mod_inbounds.c /^static int dointer_cnt=0;$/;" v file: +doplot_active mod_traffic.c /^static Bool doplot_active = FALSE;$/;" v file: +doplot_bytes mod_traffic.c /^static Bool doplot_bytes = FALSE;$/;" v file: +doplot_data mod_traffic.c /^static Bool doplot_data = FALSE;$/;" v file: +doplot_halfopen mod_traffic.c /^static Bool doplot_halfopen = FALSE;$/;" v file: +doplot_i_open mod_traffic.c /^static Bool doplot_i_open = FALSE;$/;" v file: +doplot_idle mod_traffic.c /^static Bool doplot_idle = FALSE;$/;" v file: +doplot_long mod_traffic.c /^static Bool doplot_long = FALSE;$/;" v file: +doplot_loss mod_traffic.c /^static Bool doplot_loss = FALSE;$/;" v file: +doplot_open mod_traffic.c /^static Bool doplot_open = FALSE;$/;" v file: +doplot_openclose mod_traffic.c /^static Bool doplot_openclose = FALSE;$/;" v file: +doplot_packets mod_traffic.c /^static Bool doplot_packets = FALSE;$/;" v file: +doplot_pureacks mod_traffic.c /^static Bool doplot_pureacks = FALSE;$/;" v file: +doplot_rtt mod_traffic.c /^static Bool doplot_rtt = FALSE;$/;" v file: +dotrace trace.c /^dotrace($/;" f +down dyncounter.c /^ struct node *down[CARDINALITY]; \/* if depth != 1 *\/$/;" m union:node::__anon1 typeref:struct:node::__anon1::node file: +dst erf.c /^ unsigned char dst[6];$/;" m struct:eth_rec file: +dstring dstring.c /^struct dstring {$/;" s file: +dtype mod_tcplib.c /^ enum t_dtype dtype;$/;" m struct:module_conninfo_tcb typeref:enum:module_conninfo_tcb::t_dtype file: +dtype_names mod_tcplib.c /^static char *dtype_names[NUM_DIRECTION_TYPES] = {"local","incoming","outgoing", "remote"};$/;" v file: +dump_packet_data tcptrace.c /^Bool dump_packet_data = FALSE;$/;" v +dump_rtt tcptrace.c /^Bool dump_rtt = FALSE;$/;" v +dump_rtt_sample rexmit.c /^dump_rtt_sample (tcb * ptcb,$/;" f file: +dup_ack_handling tcptrace.c /^Bool dup_ack_handling = TRUE;$/;" v +dupacks mod_traffic.c /^static u_long dupacks;$/;" v file: +dyn_counter dyncounter.c /^struct dyn_counter {$/;" s file: +ecn_color trace.c /^char *ecn_color = "yellow";$/;" v +elapsed trace.c /^elapsed($/;" f +elapsed2str output.c /^elapsed2str($/;" f +endpnum tcptrace.c /^u_long endpnum = 0;$/;" v +endpoint_pair mod_tcplib.c /^typedef struct endpoint_pair {$/;" s file: +endpoint_pair mod_tcplib.c /^} endpoint_pair;$/;" t typeref:struct:endpoint_pair file: +erf_record erf.c /^typedef struct erf_record {$/;" s file: +erf_record_t erf.c /^} erf_record_t;$/;" t typeref:struct:erf_record file: +erf_timestamp_t erf.c /^typedef unsigned long erf_timestamp_t[2];$/;" t file: +erf_timestamp_t erf.c /^typedef unsigned long long erf_timestamp_t;$/;" t file: +eth erf.c /^ eth_rec_t eth;$/;" m union:erf_record::__anon2 file: +eth_header erf.c /^static struct ether_header eth_header;$/;" v typeref:struct:ether_header file: +eth_header tcpdump.c /^static struct ether_header eth_header;$/;" v typeref:struct:ether_header file: +eth_rec erf.c /^typedef struct eth_rec {$/;" s file: +eth_rec_t erf.c /^} eth_rec_t;$/;" t typeref:struct:eth_rec file: +etype erf.c /^ unsigned short etype;$/;" m struct:eth_rec file: +exprstr filter.c /^static char *exprstr = NULL;$/;" v file: +ext_bool_op tcptrace.c /^static struct ext_bool_op {$/;" s file: +ext_opt tcptrace.c /^static struct ext_opt {$/;" s file: +ext_var_op tcptrace.c /^static struct ext_var_op {$/;" s file: +extend_line plotter.c /^extend_line($/;" f +extended_bools tcptrace.c /^} extended_bools[] = {$/;" v typeref:struct:ext_bool_op file: +extended_options tcptrace.c /^} extended_options[] = {$/;" v typeref:struct:ext_opt file: +extended_vars tcptrace.c /^} extended_vars[] = {$/;" v typeref:struct:ext_var_op file: +f_orig_stdin compress.c /^static FILE * f_orig_stdin = NULL;$/;" v file: +f_testinside mod_tcplib.c /^typedef Bool (*f_testinside) (module_conninfo *pmc,$/;" t file: +fcs_bits erf.c /^static int fcs_bits = FCS_BITS;$/;" v file: +file_header etherpeek.c /^} file_header;$/;" v typeref:struct:EPFileHeader file: +file_header2 etherpeek.c /^} file_header2;$/;" v typeref:struct:EPFileHeader2 file: +filename netscout.c /^ char filename[255];$/;" m struct:netscout_header file: +filename plotter.c /^ char *filename; \/* redundant copy of name for debugging *\/$/;" m struct:plotter_info file: +filenames tcptrace.c /^char **filenames = NULL;$/;" v +filesize tcptrace.c /^static u_long filesize = 0;$/;" v file: +filterNum etherpeek.c /^ tt_uint16 filterNum; \/* index to filter table*\/$/;" m struct:EPFilePacket3_v5_6 file: +filter_getc filter.c /^filter_getc()$/;" f +filter_output tcptrace.c /^Bool filter_output = FALSE;$/;" v +filter_root filter.c /^static struct filter_node *filter_root = NULL;$/;" v typeref:struct:filter_node file: +filtyyerror filt_parser.c /^filtyyerror(char *error_string, ...)$/;" f +find_ip_fddi snoop.c /^static int find_ip_fddi(char* buf, int iplen) {$/;" f file: +findheader ipv6.c /^findheader($/;" f file: +first_data_time mod_inbounds.c /^ timeval first_data_time; \/\/ time of the connection's first data packet$/;" m struct:inbounds_tcp_conn_info file: +first_packet tcptrace.c /^timeval first_packet = {0,0};$/;" v +first_time mod_inbounds.c /^ timeval first_time; \/\/ time of the connection's first packet $/;" m struct:inbounds_tcp_conn_info file: +first_time mod_inbounds.c /^ timeval first_time; \/\/ time of the connection's first packet $/;" m struct:inbounds_udp_conn_info file: +first_time mod_realtime.c /^ timeval first_time; \/* time of the connection's first packet *\/$/;" m struct:realtime_conn_info file: +first_time mod_tcplib.c /^ timeval first_time;$/;" m struct:module_conninfo file: +firstleaf dyncounter.c /^ struct node *firstleaf;$/;" m struct:dyn_counter typeref:struct:dyn_counter::node file: +flags erf.c /^ unsigned char flags;$/;" m struct:erf_record file: +flags etherpeek.c /^ u_char flags; \/* CRC, frame, runt, ... *\/$/;" m struct:PeekPacket_v7 file: +flags etherpeek.c /^ u_char flags; \/* crc, frame, runt, ...*\/$/;" m struct:EPFilePacket2_v5_6 file: +fname mfiles.c /^ char *fname;$/;" m struct:mfile file: +formatGetString mod_http.c /^static char * formatGetString(char * s) $/;" f file: +format_name snoop.c /^ char format_name[8]; \/* should be "snoop\\0\\0\\0" *\/$/;" m struct:snoop_file_header file: +fp erf.c /^static FILE *fp;$/;" v file: +fp etherpeek.c /^static FILE *fp;$/;" v file: +fp netm.c /^static FILE *fp;$/;" v file: +fp netscout.c /^static FILE *fp;$/;" v file: +fp nlanr.c /^static FILE *fp;$/;" v file: +fp ns.c /^static FILE *fp;$/;" v file: +fp snoop.c /^static FILE *fp;$/;" v file: +fplot plotter.c /^ MFILE *fplot; \/* the file that hold the plot *\/$/;" m struct:plotter_info file: +fptr mfiles.c /^ long fptr;$/;" m struct:mfile file: +freequad rexmit.c /^freequad (quadrant ** ppquad)$/;" f +ftp_endpoints mod_tcplib.c /^endpoint_pair *ftp_endpoints[ENDPOINT_PAIR_HASHSIZE];$/;" v +futureUse etherpeek.c /^ tt_uint32 futureUse[7]; \/*reserved for future use and irrelevent to us!*\/$/;" m struct:EPFileHeader2 file: +get_head mod_http.c /^ struct time_stamp get_head;$/;" m struct:http_info typeref:struct:http_info::time_stamp file: +get_info mod_http.c /^struct get_info {$/;" s file: +get_long_opt trace.c /^get_long_opt($/;" f file: +get_short_opt trace.c /^get_short_opt($/;" f file: +get_string mod_http.c /^ char *get_string; \/* content of GET string *\/$/;" m struct:get_info file: +get_tail mod_http.c /^ struct time_stamp get_tail;$/;" m struct:http_info typeref:struct:http_info::time_stamp file: +get_time mod_http.c /^ timeval get_time; \/* when CLIENT sent GET *\/$/;" m struct:get_info file: +gethdrlength ipv6.c /^int gethdrlength (struct ip *pip, void *plast)$/;" f +getpayloadlength ipv6.c /^int getpayloadlength (struct ip *pip, void *plast)$/;" f +getroutingheader ipv6.c /^getroutingheader($/;" f +gets_head mod_http.c /^ struct get_info *gets_head;$/;" m struct:http_info typeref:struct:http_info::get_info file: +gets_tail mod_http.c /^ struct get_info *gets_tail;$/;" m struct:http_info typeref:struct:http_info::get_info file: +gettcp ipv6.c /^gettcp($/;" f +getudp ipv6.c /^getudp($/;" f +global_pstats mod_tcplib.c /^} *global_pstats[NUM_DIRECTION_TYPES] = {NULL};$/;" v typeref:struct:tcplibstats file: +gran dyncounter.c /^ u_long gran; \/* granularity of the IX *\/$/;" m struct:dyn_counter file: +graph_owin tcptrace.c /^Bool graph_owin = FALSE;$/;" v +graph_rtt tcptrace.c /^Bool graph_rtt = FALSE;$/;" v +graph_rtt_sample rexmit.c /^graph_rtt_sample (tcb * ptcb,$/;" f file: +graph_segsize tcptrace.c /^Bool graph_segsize = FALSE;$/;" v +graph_seq_zero tcptrace.c /^Bool graph_seq_zero = FALSE;$/;" v +graph_time_zero tcptrace.c /^Bool graph_time_zero = FALSE;$/;" v +graph_tline tcptrace.c /^Bool graph_tline = FALSE;$/;" v +graph_tput tcptrace.c /^Bool graph_tput = FALSE;$/;" v +graph_tsg tcptrace.c /^Bool graph_tsg = FALSE;$/;" v +graph_zero_len_pkts tcptrace.c /^Bool graph_zero_len_pkts = TRUE;$/;" v +groupnum mod_tcplib.c /^ unsigned long groupnum; \/* for keeping track of parallel HTTP *\/$/;" m struct:burstkey file: +had_data mod_inbounds.c /^ Bool had_data; $/;" m struct:inbounds_tcp_conn_info file: +halfopen mod_traffic.c /^ Bool halfopen; \/* for half open conns *\/$/;" m struct:conn_info file: +hashentry gcache.c /^struct hashentry {$/;" s file: +hashtable_efficiency trace.c /^static struct search_efficiency hashtable_efficiency[HASH_TABLE_SIZE];$/;" v typeref:struct:search_efficiency file: +hdlc erf.c /^ unsigned int hdlc;$/;" m struct:pos_rec file: +he_ix gcache.c /^ tceix he_ix;$/;" m struct:hashentry file: +header erf.c /^ unsigned int header; $/;" m struct:atm_rec file: +header_done plotter.c /^ Bool header_done; \/* Flag indicating plotter header written to file *\/$/;" m struct:plotter_info file: +header_length compress.c /^static int header_length = -1;$/;" v file: +hex tcptrace.c /^Bool hex = TRUE;$/;" v +hist mod_rttgraph.c /^struct hist {$/;" s file: +hist3d mod_rttgraph.c /^struct hist3d {$/;" s file: +hist_file mod_tcplib.c /^ MFILE *hist_file;$/;" m struct:tcplibstats file: +http_P_bursts mod_tcplib.c /^ struct burstdata http_P_bursts;$/;" m struct:tcplibstats typeref:struct:tcplibstats::burstdata file: +http_P_maxconns mod_tcplib.c /^ dyn_counter http_P_maxconns; \/* max degree of concurrency *\/$/;" m struct:tcplibstats file: +http_P_persistant mod_tcplib.c /^ dyn_counter http_P_persistant; \/* which parallel groups are persistant *\/$/;" m struct:tcplibstats file: +http_P_ttlitems mod_tcplib.c /^ dyn_counter http_P_ttlitems; \/* ttl items across whole parallel group *\/$/;" m struct:tcplibstats file: +http_S_bursts mod_tcplib.c /^ struct burstdata http_S_bursts;$/;" m struct:tcplibstats typeref:struct:tcplibstats::burstdata file: +http_done mod_http.c /^http_done(void)$/;" f +http_endpoints mod_tcplib.c /^endpoint_pair *http_endpoints[ENDPOINT_PAIR_HASHSIZE];$/;" v +http_groupnum mod_tcplib.c /^ u_long http_groupnum;$/;" m struct:module_conninfo file: +http_info mod_http.c /^static struct http_info {$/;" s file: +http_init mod_http.c /^http_init($/;" f +http_newconn mod_http.c /^http_newconn($/;" f +http_newfile mod_http.c /^http_newfile($/;" f +http_read mod_http.c /^http_read($/;" f +http_usage mod_http.c /^http_usage(void)$/;" f +httpd_port mod_http.c /^static unsigned httpd_port;$/;" v file: +httphead mod_http.c /^} *httphead = NULL, *httptail = NULL;$/;" v typeref:struct:http_info file: +httptail mod_http.c /^} *httphead = NULL, *httptail = NULL;$/;" v typeref:struct:http_info file: +hw_dup_color trace.c /^char *hw_dup_color = "blue";$/;" v +idletime mod_tcplib.c /^ dyn_counter idletime; \/* idle time between bursts *\/$/;" m struct:burstdata file: +ignore_conn mod_tcplib.c /^ Bool ignore_conn;$/;" m struct:module_conninfo file: +ignore_non_comp tcptrace.c /^Bool ignore_non_comp = FALSE;$/;" v +ignore_pairs trace.c /^static Bool *ignore_pairs = NULL;\/* which ones will we ignore *\/$/;" v file: +ignore_pairs udp.c /^static Bool *ignore_pairs = NULL;\/* which ones will we ignore *\/$/;" v file: +iinfo mod_inbounds.c /^typedef struct inbounds_info iinfo;$/;" t typeref:struct:inbounds_info file: +inbounds_done mod_inbounds.c /^ inbounds_done(void)$/;" f +inbounds_info mod_inbounds.c /^struct inbounds_info $/;" s file: +inbounds_init mod_inbounds.c /^ inbounds_init($/;" f +inbounds_nontcpudp_read mod_inbounds.c /^ inbounds_nontcpudp_read($/;" f +inbounds_tcp_conn_info mod_inbounds.c /^struct inbounds_tcp_conn_info $/;" s file: +inbounds_tcp_deleteconn mod_inbounds.c /^ inbounds_tcp_deleteconn($/;" f +inbounds_tcp_newconn mod_inbounds.c /^ inbounds_tcp_newconn( $/;" f +inbounds_tcp_read mod_inbounds.c /^ inbounds_tcp_read($/;" f +inbounds_udp_conn_info mod_inbounds.c /^struct inbounds_udp_conn_info $/;" s file: +inbounds_udp_deleteconn mod_inbounds.c /^ inbounds_udp_deleteconn($/;" f +inbounds_udp_newconn mod_inbounds.c /^ inbounds_udp_newconn($/;" f +inbounds_udp_read mod_inbounds.c /^inbounds_udp_read($/;" f +inbounds_usage mod_inbounds.c /^ inbounds_usage(void)$/;" f +inc_cnt mod_inbounds.c /^static int inc_cnt=0;$/;" v file: +inet_pton ipv6.c /^inet_pton(int af, const char *src, void *dst)$/;" f +info mod_slice.c /^} info;$/;" v typeref:struct:slice_counters file: +insert_seg_between rexmit.c /^insert_seg_between (quadrant * pquad,$/;" f file: +inside_head mod_tcplib.c /^} *inside_head = NULL;$/;" v typeref:struct:insidenode +insidenode mod_tcplib.c /^struct insidenode {$/;" s file: +interface_id nlanr.c /^ unsigned int interface_id:8;$/;" m struct:tsh_packet_header file: +interval_count mod_tcplib.c /^ int interval_count;$/;" m struct:tcplibstats file: +ipCheck mod_inbounds.c /^ipCheck($/;" f file: +ip_buf tcpdump.c /^static char *ip_buf; \/* [IP_MAXPACKET] *\/$/;" v file: +ip_cksum trace.c /^ip_cksum($/;" f file: +ip_cksum_valid trace.c /^ip_cksum_valid($/;" f +ip_copyaddr ipv6.c /^void ip_copyaddr (ipaddr *ptoaddr, ipaddr *pfromaddr)$/;" f +ip_header nlanr.c /^ struct ip ip_header;$/;" m struct:tsh_frame typeref:struct:tsh_frame::ip file: +ip_lowaddr ipv6.c /^int ip_lowaddr (ipaddr *paddr1, ipaddr *paddr2)$/;" f +ip_p mod_inbounds.c /^ u_char ip_p;$/;" m struct:protocol file: +ip_p mod_realtime.c /^ u_char ip_p;$/;" m struct:protocol file: +ip_sameaddr ipv6.c /^int ip_sameaddr (ipaddr *paddr1, ipaddr *paddr2)$/;" f +ipb ns.c /^static struct ip *ipb;$/;" v typeref:struct:ip file: +ipport_offset mod_tcplib.c /^static int ipport_offset = 0;$/;" v file: +ipv6_header_name ipv6.c /^ipv6_header_name($/;" f +ipv6_nextheader ipv6.c /^ipv6_nextheader($/;" f +ipv6addr2str print.c /^ipv6addr2str($/;" f file: +is_EP etherpeek.c /^pread_f *is_EP(char *filename)$/;" f +is_closed mod_realtime.c /^ Bool is_closed; \/* is the connection has been closed? *\/$/;" m struct:realtime_conn_info file: +is_compressed compress.c /^static Bool is_compressed = FALSE;$/;" v file: +is_erf erf.c /^is_erf($/;" f +is_ftp_ctrl_conn mod_tcplib.c 383;" d file: +is_ftp_ctrl_port mod_tcplib.c /^Bool is_ftp_ctrl_port($/;" f +is_ftp_data_conn mod_tcplib.c 384;" d file: +is_ftp_data_port mod_tcplib.c /^Bool is_ftp_data_port($/;" f +is_http_conn mod_tcplib.c 385;" d file: +is_http_port mod_tcplib.c /^is_http_port($/;" f file: +is_netm netm.c /^pread_f *is_netm(char *filename)$/;" f +is_netscout netscout.c /^pread_f *is_netscout(char *filename)$/;" f +is_new mod_realtime.c /^ Bool is_new; \/* is the connection new? *\/$/;" m struct:realtime_conn_info file: +is_nlanr nlanr.c /^pread_f *is_nlanr(char *filename)$/;" f +is_nntp_conn mod_tcplib.c 386;" d file: +is_nntp_port mod_tcplib.c /^is_nntp_port($/;" f file: +is_ns ns.c /^pread_f *is_ns(char *filename)$/;" f +is_parallel_http mod_tcplib.c /^is_parallel_http($/;" f file: +is_smtp_conn mod_tcplib.c 387;" d file: +is_smtp_port mod_tcplib.c /^is_smtp_port($/;" f file: +is_snoop snoop.c /^pread_f *is_snoop(char *filename)$/;" f +is_tcpdump tcpdump.c /^pread_f *is_tcpdump(char *filename)$/;" f +is_telnet_conn mod_tcplib.c 388;" d file: +is_telnet_port mod_tcplib.c /^Bool is_telnet_port($/;" f +islong mod_traffic.c /^ Bool islong; \/* is this a long-duration connection? *\/$/;" m struct:conn_info file: +isopen mod_traffic.c /^ Bool isopen; \/* is this connection open now? *\/$/;" m struct:conn_info file: +itcinfo mod_inbounds.c /^typedef struct inbounds_tcp_conn_info itcinfo;$/;" t typeref:struct:inbounds_tcp_conn_info file: +itcinfo_pool mod_inbounds.c /^static long itcinfo_pool = -1;$/;" v file: +iucinfo mod_inbounds.c /^typedef struct inbounds_udp_conn_info iucinfo;$/;" t typeref:struct:inbounds_udp_conn_info file: +iucinfo_pool mod_inbounds.c /^static long iucinfo_pool = -1;$/;" v file: +ix_nextch dstring.c /^ int ix_nextch;$/;" m struct:dstring file: +key mod_tcplib.c /^ unsigned char key; \/* one character key to return *\/$/;" m struct:burstkey file: +label plotter.c /^ char *label;$/;" m struct:pl_line file: +labelled plotter.c /^ Bool labelled;$/;" m struct:pl_line file: +last_active_slice mod_slice.c /^ u_long last_active_slice; \/* for checking activity *\/$/;" m struct:conn_info file: +last_actual_time mod_realtime.c /^ timeval last_actual_time; \/* time of the last network statistics *\/$/;" m struct:realtime_info file: +last_data_time mod_inbounds.c /^ timeval last_data_time; \/\/ time of the connection's last data packet$/;" m struct:inbounds_tcp_conn_info file: +last_data_time mod_tcplib.c /^ timeval last_data_time;$/;" m struct:module_conninfo_tcb file: +last_dupacks mod_traffic.c /^ u_int last_dupacks; \/* last value of dupacks I saw *\/$/;" m struct:conn_info file: +last_interval mod_tcplib.c /^ timeval last_interval;$/;" m struct:tcplibstats file: +last_packet tcptrace.c /^timeval last_packet = {0,0};$/;" v +last_rexmits mod_slice.c /^ u_long last_rexmits; \/* for detecting rexmits *\/$/;" m struct:conn_info file: +last_rexmits mod_traffic.c /^ u_int last_rexmits; \/* last value of rexmits I saw *\/$/;" m struct:conn_info file: +last_rtts mod_traffic.c /^ u_int last_rtts; \/* last value of rtt counters I saw *\/$/;" m struct:conn_info file: +last_scheduled_time mod_realtime.c /^ timeval last_scheduled_time; \/* time of the last network statistics *\/$/;" m struct:realtime_info file: +last_seg_pushed mod_tcplib.c /^ Bool last_seg_pushed; \/* Thu Aug 26, 1999 - not used *\/$/;" m struct:module_conninfo_tcb file: +last_tcp_actual_time mod_inbounds.c /^ timeval last_tcp_actual_time;$/;" m struct:inbounds_info file: +last_tcp_scheduled_time mod_inbounds.c /^ timeval last_tcp_scheduled_time;$/;" m struct:inbounds_info file: +last_time mod_inbounds.c /^ timeval last_time; \/\/ time of the connection's last packet$/;" m struct:inbounds_tcp_conn_info file: +last_time mod_inbounds.c /^ timeval last_time; \/\/ time of the connection's last packet$/;" m struct:inbounds_udp_conn_info file: +last_time mod_realtime.c /^ timeval last_time; \/* time of the connection's last packet *\/$/;" m struct:realtime_conn_info file: +last_time mod_tcplib.c /^ timeval last_time;$/;" m struct:module_conninfo file: +last_time plotter.c /^ timeval last_time;$/;" m struct:pl_line file: +last_udp_actual_time mod_inbounds.c /^ timeval last_udp_actual_time; $/;" m struct:inbounds_info file: +last_udp_scheduled_time mod_inbounds.c /^ timeval last_udp_scheduled_time;$/;" m struct:inbounds_info file: +last_update_time trace.c /^static timeval last_update_time = {0, 0};$/;" v file: +last_y plotter.c /^ int last_y;$/;" m struct:pl_line file: +lastbyte_time mod_http.c /^ timeval lastbyte_time; \/* when SERVER sent last byte of CONTENT *\/$/;" m struct:get_info file: +lastleaf dyncounter.c /^ struct node *lastleaf;$/;" m struct:dyn_counter typeref:struct:dyn_counter::node file: +lctr erf.c /^ unsigned short lctr;$/;" m struct:erf_record file: +ldebug dyncounter.c /^static int ldebug = 0;$/;" v file: +ldebug mod_slice.c /^static int ldebug = 0;$/;" v file: +ldebug mod_tcplib.c /^static int ldebug = 0;$/;" v file: +ldebug mod_traffic.c /^static int ldebug = 0;$/;" v file: +len netm.c /^ int len;$/;" m struct:netm_packet_header file: +len netm.c /^ int len;$/;" m struct:netm_packet_header_old file: +len netscout.c /^ tt_int32 len;$/;" m struct:netscout_packet_header file: +len snoop.c /^ tt_uint32 len;$/;" m struct:snoop_packet_header file: +length etherpeek.c /^ tt_uint32 length; \/* length of file*\/$/;" m struct:EPFileHeader2 file: +line_data_all mod_traffic.c /^static PLINE line_data_all;$/;" v file: +line_data_nonrexmit mod_traffic.c /^static PLINE line_data_nonrexmit;$/;" v file: +line_dupacks mod_traffic.c /^static PLINE line_dupacks;$/;" v file: +line_nactive mod_traffic.c /^ PLINE line_nactive;$/;" m struct:traffic_info file: +line_nbytes mod_traffic.c /^ PLINE line_nbytes;$/;" m struct:traffic_info file: +line_nidle mod_traffic.c /^ PLINE line_nidle;$/;" m struct:traffic_info file: +line_niopen mod_traffic.c /^ PLINE line_niopen;$/;" m struct:traffic_info file: +line_nlong mod_traffic.c /^ PLINE line_nlong;$/;" m struct:traffic_info file: +line_nopen mod_traffic.c /^ PLINE line_nopen;$/;" m struct:traffic_info file: +line_npackets mod_traffic.c /^ PLINE line_npackets;$/;" m struct:traffic_info file: +line_num_closes mod_traffic.c /^static PLINE line_num_closes;$/;" v file: +line_num_halfopens mod_traffic.c /^static PLINE line_num_halfopens;$/;" v file: +line_num_opens mod_traffic.c /^static PLINE line_num_opens;$/;" v file: +line_open_conns mod_traffic.c /^static PLINE line_open_conns;$/;" v file: +line_pureacks mod_traffic.c /^ PLINE line_pureacks;$/;" m struct:traffic_info file: +line_rexmits mod_traffic.c /^static PLINE line_rexmits;$/;" v file: +line_rtt_avg mod_traffic.c /^static PLINE line_rtt_avg;$/;" v file: +line_rtt_max mod_traffic.c /^static PLINE line_rtt_max;$/;" v file: +line_rtt_min mod_traffic.c /^static PLINE line_rtt_min;$/;" v file: +linenum ns.c /^static unsigned linenum;$/;" v file: +list pool.c /^ struct Block *list; \/* pointer to a list of free blocks *\/$/;" m struct:Pool typeref:struct:Pool::Block file: +live_conn_interval_st tcptrace.c /^static char *live_conn_interval_st = NULL;$/;" v file: +live_conn_list_head trace.c /^static ptp_ptr *live_conn_list_head = NULL;$/;" v file: +live_conn_list_tail trace.c /^static ptp_ptr *live_conn_list_tail = NULL;$/;" v file: +longconn_duration mod_traffic.c /^static int longconn_duration = 60;$/;" v file: +mac_type snoop.c /^ tt_uint32 mac_type; \/* hardware type *\/$/;" m struct:snoop_file_header file: +mactime etherpeek.c /^static u_long mactime;$/;" v file: +magic mod_tcplib.c /^ unsigned long magic; \/* MUST be BURST_KEY_MAGIC *\/$/;" m struct:burstkey file: +main filt_scanner.c /^int main()$/;" f +main tcptrace.c /^main($/;" f +main versnum.c /^main()$/;" f +max mod_rttgraph.c /^ u_short max;$/;" m struct:samples file: +max mod_tcplib.c /^ ipaddr max;$/;" m struct:insidenode file: +max_conn_num tcptrace.c /^u_long max_conn_num = MAX_CONN_NUM;$/;" v +max_conn_num_st tcptrace.c /^static char *max_conn_num_st = NULL;$/;" v file: +max_connections trace.c /^ unsigned max_connections;$/;" m struct:search_efficiency file: +max_depth trace.c /^ unsigned max_depth;$/;" m struct:search_efficiency file: +max_plotters plotter.c /^static int max_plotters;$/;" v file: +max_samples mod_rttgraph.c /^ u_long max_samples;$/;" m struct:samples file: +max_tcp_pairs trace.c /^int max_tcp_pairs = 64; \/* initial value, automatically increases *\/$/;" v +max_udp_pairs udp.c /^int max_udp_pairs = 64; \/* initial value, automatically increases *\/$/;" v +maxcount dyncounter.c /^ u_long maxcount;$/;" m struct:dyn_counter file: +maxix dyncounter.c /^ u_long maxix; \/* NOT scaled *\/$/;" m struct:dyn_counter file: +maxparallel mod_tcplib.c /^ u_short maxparallel; \/* maximum degree of parallelism *\/$/;" m struct:parallelism file: +method mod_http.c /^ MethodCode method; \/* HTTP method code *\/$/;" m struct:get_info file: +mf_head mfiles.c /^MFILE mf_head; \/* LEAST recently used *\/$/;" v +mf_tail mfiles.c /^MFILE mf_tail; \/* MOST recently used *\/$/;" v +mfc_head mfiles.c /^MFILE mfc_head; \/* closed files, LEAST recently closed *\/$/;" v +mfc_tail mfiles.c /^MFILE mfc_tail; \/* closed files, MOST recently closed *\/$/;" v +mfile mfiles.c /^struct mfile {$/;" s file: +min erf.c 115;" d file: +min mod_rttgraph.c /^ u_short min;$/;" m struct:samples file: +min mod_tcplib.c /^ ipaddr min;$/;" m struct:insidenode file: +minix dyncounter.c /^ u_long minix; \/* NOT scaled *\/$/;" m struct:dyn_counter file: +mod_info mod_inbounds.c /^static iinfo *mod_info;$/;" v file: +mod_info mod_realtime.c /^static rtinfo *mod_info;$/;" v file: +module_conninfo mod_tcplib.c /^typedef struct module_conninfo {$/;" s file: +module_conninfo mod_tcplib.c /^} module_conninfo;$/;" t typeref:struct:module_conninfo file: +module_conninfo_tail mod_tcplib.c /^module_conninfo *module_conninfo_tail = NULL;$/;" v +module_conninfo_tcb mod_tcplib.c /^typedef struct module_conninfo_tcb {$/;" s file: +module_conninfo_tcb mod_tcplib.c /^} module_conninfo_tcb;$/;" t typeref:struct:module_conninfo_tcb file: +more_conns_ignored trace.c /^static Bool more_conns_ignored = FALSE;$/;" v file: +more_conns_ignored udp.c /^static Bool more_conns_ignored = FALSE;$/;" v file: +my_inet_ntop ipv6.c /^my_inet_ntop(int af, const char *src, char *dst, size_t size)$/;" f +n_active mod_slice.c /^ u_long n_active;$/;" m struct:slice_counters file: +n_bytes mod_slice.c /^ u_long n_bytes;$/;" m struct:slice_counters file: +n_i_open mod_traffic.c /^ u_long n_i_open;$/;" m struct:traffic_info file: +n_opens mod_slice.c /^ u_long n_opens;$/;" m struct:slice_counters file: +n_rexmit_bytes mod_slice.c /^ u_long n_rexmit_bytes;$/;" m struct:slice_counters file: +n_rexmit_segs mod_slice.c /^ u_long n_rexmit_segs;$/;" m struct:slice_counters file: +n_segs mod_slice.c /^ u_long n_segs;$/;" m struct:slice_counters file: +nactive mod_traffic.c /^ u_long nactive;$/;" m struct:traffic_info file: +namedfile mod_tcplib.c /^namedfile($/;" f file: +nbytes mod_tcplib.c /^ unsigned long nbytes; \/* bytes in burst (INCLUDING this struct) *\/$/;" m struct:burstkey file: +nbytes mod_traffic.c /^ u_long nbytes;$/;" m struct:traffic_info file: +netm_header netm.c /^struct netm_header {$/;" s file: +netm_key netm.c /^ int netm_key;$/;" m struct:netm_header file: +netm_oldversion netm.c /^int netm_oldversion;$/;" v +netm_packet_header netm.c /^struct netm_packet_header {$/;" s file: +netm_packet_header_old netm.c /^struct netm_packet_header_old {$/;" s file: +netscout_header netscout.c /^struct netscout_header {$/;" s file: +netscout_packet_header netscout.c /^struct netscout_packet_header {$/;" s file: +new mod_inbounds.c /^ Bool new; \/\/ is the connection new ?$/;" m struct:inbounds_tcp_conn_info file: +new mod_inbounds.c /^ Bool new; \/\/ is the connection new ?$/;" m struct:inbounds_udp_conn_info file: +new_line plotter.c /^new_line($/;" f +new_plotter plotter.c /^new_plotter($/;" f +next mfiles.c /^ MFILE *next;$/;" m struct:mfile file: +next mod_collie.c /^ struct conn_info *next;$/;" m struct:conn_info typeref:struct:conn_info::conn_info file: +next mod_collie.c /^ struct uconn_info *next;$/;" m struct:uconn_info typeref:struct:uconn_info::uconn_info file: +next mod_http.c /^ struct client_info *next;$/;" m struct:client_info typeref:struct:client_info::client_info file: +next mod_http.c /^ struct get_info *next;$/;" m struct:get_info typeref:struct:get_info::get_info file: +next mod_http.c /^ struct http_info *next;$/;" m struct:http_info typeref:struct:http_info::http_info file: +next mod_http.c /^ struct time_stamp *next;$/;" m struct:time_stamp typeref:struct:time_stamp::time_stamp file: +next mod_inbounds.c /^ struct inbounds_tcp_conn_info *next; \/* pointer to the next connection *\/$/;" m struct:inbounds_tcp_conn_info typeref:struct:inbounds_tcp_conn_info::inbounds_tcp_conn_info file: +next mod_inbounds.c /^ struct inbounds_udp_conn_info *next; \/* pointer to the next connection *\/$/;" m struct:inbounds_udp_conn_info typeref:struct:inbounds_udp_conn_info::inbounds_udp_conn_info file: +next mod_inbounds.c /^ struct protocol *next;$/;" m struct:protocol typeref:struct:protocol::protocol file: +next mod_realtime.c /^ struct protocol *next;$/;" m struct:protocol typeref:struct:protocol::protocol file: +next mod_realtime.c /^ struct realtime_conn_info *next; \/* pointer to the next connection *\/$/;" m struct:realtime_conn_info typeref:struct:realtime_conn_info::realtime_conn_info file: +next mod_rttgraph.c /^ struct rttgraph_info *next;$/;" m struct:rttgraph_info typeref:struct:rttgraph_info::rttgraph_info file: +next mod_tcplib.c /^ struct insidenode *next;$/;" m struct:insidenode typeref:struct:insidenode::insidenode file: +next mod_traffic.c /^ struct conn_info *next; \/* next in the chain *\/$/;" m struct:conn_info typeref:struct:conn_info::conn_info file: +next mod_traffic.c /^ struct traffic_info *next;$/;" m struct:traffic_info typeref:struct:traffic_info::traffic_info file: +next pool.c /^ struct Block *next;$/;" m struct:Block typeref:struct:Block::Block file: +next_pair mod_tcplib.c /^ struct module_conninfo *next_pair;$/;" m struct:module_conninfo typeref:struct:module_conninfo::module_conninfo file: +nextleaf dyncounter.c /^ struct node *nextleaf; \/* linked list of leaves, for NextCounter() *\/$/;" m struct:node typeref:struct:node::node file: +nidle mod_traffic.c /^ u_long nidle;$/;" m struct:traffic_info file: +nitems mod_tcplib.c /^ dyn_counter nitems; \/* total items (bursts) in connection *\/$/;" m struct:burstdata file: +nlong mod_traffic.c /^ u_long nlong;$/;" m struct:traffic_info file: +nntp_bursts mod_tcplib.c /^ struct burstdata nntp_bursts;$/;" m struct:tcplibstats typeref:struct:tcplibstats::burstdata file: +node dyncounter.c /^struct node {$/;" s file: +nonames trace.c /^Bool nonames = FALSE;$/;" v +nonreal_conn_interval_st tcptrace.c /^static char *nonreal_conn_interval_st = NULL;$/;" v file: +nonreal_live_conn_interval tcptrace.c /^u_long nonreal_live_conn_interval = NONREAL_LIVE_CONN_INTERVAL;$/;" v +nontcpudp_packets mod_inbounds.c /^static u_llong nontcpudp_packets = 0;$/;" v file: +nontcpudp_packets mod_realtime.c /^static u_llong nontcpudp_packets = 0;$/;" v file: +nopen mod_traffic.c /^ u_long nopen;$/;" m struct:traffic_info file: +npackets mod_traffic.c /^ u_long npackets;$/;" m struct:traffic_info file: +npureacks mod_traffic.c /^ u_long npureacks;$/;" m struct:traffic_info file: +ns_hdrs tcptrace.c /^Bool ns_hdrs = TRUE;$/;" v +numPackets etherpeek.c /^ tt_uint32 numPackets; \/* number of packets contained in the file*\/$/;" m struct:EPFileHeader2 file: +num_buckets mod_rttgraph.c /^ u_long num_buckets;$/;" m struct:hist file: +num_closes mod_traffic.c /^static int num_closes = 0;$/;" v file: +num_comparisons trace.c /^ unsigned num_comparisons;$/;" m struct:search_efficiency file: +num_connections trace.c /^ unsigned num_connections;$/;" m struct:search_efficiency file: +num_files tcptrace.c /^int num_files = 0;$/;" v +num_halfopens mod_traffic.c /^static int num_halfopens = 0;$/;" v file: +num_modules tcptrace.c /^int num_modules = 0;$/;" v +num_opens mod_traffic.c /^static int num_opens = 0;$/;" v file: +num_removed_tcp_pairs trace.c /^static int num_removed_tcp_pairs = 0;$/;" v file: +num_samples mod_rttgraph.c /^ u_long num_samples;$/;" m struct:hist file: +num_samples mod_rttgraph.c /^ u_long num_samples;$/;" m struct:samples file: +num_searches trace.c /^ unsigned num_searches;$/;" m struct:search_efficiency file: +num_tcp_pairs trace.c /^int num_tcp_pairs = -1; \/* how many pairs we've allocated *\/$/;" v +num_udp_pairs udp.c /^int num_udp_pairs = -1; \/* how many pairs we've allocated *\/$/;" v +numfiles tcptrace.c /^u_int numfiles;$/;" v +numitems mod_tcplib.c /^ u_long numitems;$/;" m struct:module_conninfo_tcb file: +offset erf.c /^ unsigned char offset;$/;" m struct:eth_rec file: +op filt_parser.c /^ enum optype op;$/;" m union:__anon3 typeref:enum:__anon3::optype file: +open_conns mod_realtime.c /^ u_long open_conns; \/* number of new connections within the $/;" m struct:realtime_info file: +open_conns mod_traffic.c /^static int open_conns = 0;$/;" v file: +opt_descr tcptrace.c /^ char *opt_descr;$/;" m struct:ext_opt file: +opt_func tcptrace.c /^ void (*opt_func) (char *argsource, char *opt);$/;" m struct:ext_opt file: +opt_name tcptrace.c /^ char *opt_name; \/\/ what it is called$/;" m struct:ext_opt file: +out_order_color trace.c /^char *out_order_color = "pink";$/;" v +output_dir mod_tcplib.c /^static char *output_dir = DEFAULT_TCPLIB_DATADIR;$/;" v file: +output_file_dir tcptrace.c /^char *output_file_dir = NULL;$/;" v +output_file_prefix tcptrace.c /^char *output_file_prefix = NULL;$/;" v +output_filename tcptrace.c /^char *output_filename = NULL;$/;" v +p2plast plotter.c /^ tcb *p2plast; \/* the TCB that this goes with (if any) *\/$/;" m struct:plotter_info file: +packet_count udp.c /^static int packet_count = 0;$/;" v file: +packetlength etherpeek.c /^ tt_uint16 packetlength; \/* Total length of packet. *\/$/;" m struct:PeekPacket_v7 file: +packetlength etherpeek.c /^ tt_uint16 packetlength; \/* total packet length *\/$/;" m struct:EPFilePacket_v5_6 file: +pad erf.c /^ unsigned char pad;$/;" m struct:eth_rec file: +pagenum netscout.c /^ tt_int32 pagenum;$/;" m struct:netscout_header file: +parallelism mod_tcplib.c /^struct parallelism {$/;" s file: +pburst mod_tcplib.c /^ struct burstdata *pburst;$/;" m struct:module_conninfo_tcb typeref:struct:module_conninfo_tcb::burstdata file: +pcap tcpdump.c /^static pcap_t *pcap;$/;" v file: +pclient mod_http.c /^ struct client_info *pclient;$/;" m struct:http_info typeref:struct:http_info::client_info file: +pep etherpeek.c /^static struct ether_header *pep;$/;" v typeref:struct:ether_header file: +pep netm.c /^static struct ether_header *pep;$/;" v typeref:struct:ether_header file: +pep nlanr.c /^static struct ether_header *pep;$/;" v typeref:struct:ether_header file: +pep ns.c /^static struct ether_header *pep;$/;" v typeref:struct:ether_header file: +pep snoop.c /^static struct ether_header *pep;$/;" v typeref:struct:ether_header file: +pep_buf netscout.c /^static int *pep_buf;$/;" v file: +pepnext mod_tcplib.c /^ struct endpoint_pair *pepnext;$/;" m struct:endpoint_pair typeref:struct:endpoint_pair::endpoint_pair file: +persistant mod_tcplib.c /^ Bool persistant[2]; \/* is this persistant (for each TCB) *\/$/;" m struct:parallelism file: +pf filt_parser.c /^ struct filter_node *pf;$/;" m union:__anon3 typeref:struct:__anon3::filter_node file: +pip_buf etherpeek.c /^static int *pip_buf;$/;" v file: +pip_buf netm.c /^static int *pip_buf;$/;" v file: +pip_buf netscout.c /^static int *pip_buf;$/;" v file: +pip_buf ns.c /^static int *pip_buf;$/;" v file: +pip_buf snoop.c /^static int *pip_buf;$/;" v file: +pipaddr filt_parser.c /^ ipaddr *pipaddr;$/;" m union:__anon3 file: +pl_line plotter.c /^struct pl_line {$/;" s file: +pletohl erf.c 159;" d file: +pletohll erf.c 150;" d file: +plist mod_inbounds.c /^static struct protocol *plist = NULL;$/;" v typeref:struct:protocol file: +plist mod_realtime.c /^static struct protocol *plist = NULL;$/;" v typeref:struct:protocol file: +pload erf.c /^ unsigned char pload[1];$/;" m struct:atm_rec file: +pload erf.c /^ unsigned char pload[1];$/;" m struct:eth_rec file: +pload erf.c /^ unsigned char pload[1];$/;" m struct:pos_rec file: +plot_init plotter.c /^plot_init(void)$/;" f +plot_tput_instant tcptrace.c /^Bool plot_tput_instant = TRUE;$/;" v +plotter mod_http.c /^ PLOTTER plotter;$/;" m struct:client_info file: +plotter plotter.c /^ PLOTTER plotter;$/;" m struct:pl_line file: +plotter_active mod_traffic.c /^static PLOTTER plotter_active;$/;" v file: +plotter_arrow plotter.c /^plotter_arrow($/;" f +plotter_box plotter.c /^plotter_box($/;" f +plotter_bytes mod_traffic.c /^static PLOTTER plotter_bytes;$/;" v file: +plotter_darrow plotter.c /^plotter_darrow($/;" f +plotter_data mod_traffic.c /^static PLOTTER plotter_data;$/;" v file: +plotter_diamond plotter.c /^plotter_diamond($/;" f +plotter_dline plotter.c /^plotter_dline($/;" f +plotter_done plotter.c /^plotter_done(void)$/;" f +plotter_dot plotter.c /^plotter_dot($/;" f +plotter_dtick plotter.c /^plotter_dtick($/;" f +plotter_halfopen mod_traffic.c /^static PLOTTER plotter_halfopen;$/;" v file: +plotter_htick plotter.c /^plotter_htick($/;" f +plotter_i_open mod_traffic.c /^static PLOTTER plotter_i_open;$/;" v file: +plotter_idle mod_traffic.c /^static PLOTTER plotter_idle;$/;" v file: +plotter_info plotter.c /^struct plotter_info {$/;" s file: +plotter_invisible plotter.c /^plotter_invisible($/;" f +plotter_ix plotter.c /^static PLOTTER plotter_ix = NO_PLOTTER;$/;" v file: +plotter_larrow plotter.c /^plotter_larrow($/;" f +plotter_line plotter.c /^plotter_line($/;" f +plotter_long mod_traffic.c /^static PLOTTER plotter_long;$/;" v file: +plotter_loss mod_traffic.c /^static PLOTTER plotter_loss;$/;" v file: +plotter_ltick plotter.c /^plotter_ltick($/;" f +plotter_makemore plotter.c /^plotter_makemore(void)$/;" f file: +plotter_nothing plotter.c /^plotter_nothing($/;" f +plotter_open mod_traffic.c /^static PLOTTER plotter_open;$/;" v file: +plotter_openclose mod_traffic.c /^static PLOTTER plotter_openclose;$/;" v file: +plotter_packets mod_traffic.c /^static PLOTTER plotter_packets;$/;" v file: +plotter_perm_color plotter.c /^plotter_perm_color($/;" f +plotter_plus plotter.c /^plotter_plus($/;" f +plotter_pureacks mod_traffic.c /^static PLOTTER plotter_pureacks;$/;" v file: +plotter_rarrow plotter.c /^plotter_rarrow($/;" f +plotter_rtick plotter.c /^plotter_rtick($/;" f +plotter_rtt mod_traffic.c /^static PLOTTER plotter_rtt;$/;" v file: +plotter_switch_axis plotter.c /^void plotter_switch_axis($/;" f +plotter_temp_color plotter.c /^plotter_temp_color($/;" f +plotter_text plotter.c /^plotter_text($/;" f +plotter_tick plotter.c /^plotter_tick($/;" f +plotter_uarrow plotter.c /^plotter_uarrow($/;" f +plotter_utick plotter.c /^plotter_utick($/;" f +plotter_vtick plotter.c /^plotter_vtick($/;" f +pmchead mod_tcplib.c /^ module_conninfo *pmchead;$/;" m struct:endpoint_pair file: +pnum tcptrace.c /^u_long pnum = 0;$/;" v +pool_num pool.c /^static int pool_num = 0; \/* number of existing memory pools *\/$/;" v file: +pools pool.c /^static struct Pool *pools = NULL; \/* table of memory pools *\/$/;" v typeref:struct:Pool file: +port mod_traffic.c /^ u_short port;$/;" m struct:traffic_info file: +ports mod_traffic.c /^static struct traffic_info **ports; \/* [NUM_PORTS] *\/$/;" v typeref:struct:traffic_info file: +pos erf.c /^ pos_rec_t pos;$/;" m union:erf_record::__anon2 file: +pos_rec erf.c /^typedef struct pos_rec {$/;" s file: +pos_rec_t erf.c /^} pos_rec_t;$/;" t typeref:struct:pos_rec file: +position mod_http.c /^ u_long position;$/;" m struct:time_stamp file: +posn compress.c /^int posn;$/;" v +pparallelism mod_tcplib.c /^ struct parallelism *pparallelism;$/;" m struct:module_conninfo typeref:struct:module_conninfo::parallelism file: +pplotters plotter.c /^static struct plotter_info *pplotters;$/;" v typeref:struct:plotter_info file: +pread_EP etherpeek.c /^pread_EP($/;" f file: +pread_erf erf.c /^pread_erf($/;" f file: +pread_netm netm.c /^pread_netm($/;" f file: +pread_netscout netscout.c /^pread_netscout($/;" f file: +pread_nlanr nlanr.c /^pread_nlanr($/;" f file: +pread_ns ns.c /^pread_ns($/;" f file: +pread_ns_fulltcp ns.c /^int pread_ns_fulltcp($/;" f +pread_snoop snoop.c /^pread_snoop($/;" f file: +pread_tcpdump tcpdump.c /^pread_tcpdump($/;" f file: +prefix dyncounter.c /^ u_long prefix; \/* from trees above *\/$/;" m struct:node file: +prev mfiles.c /^ MFILE *prev;$/;" m struct:mfile file: +prev mod_http.c /^ struct time_stamp *prev;$/;" m struct:time_stamp typeref:struct:time_stamp::time_stamp file: +prev mod_inbounds.c /^ struct inbounds_tcp_conn_info *prev; \/* pointer to the next connection *\/$/;" m struct:inbounds_tcp_conn_info typeref:struct:inbounds_tcp_conn_info::inbounds_tcp_conn_info file: +prev mod_inbounds.c /^ struct inbounds_udp_conn_info *prev; \/* pointer to the next connection *\/$/;" m struct:inbounds_udp_conn_info typeref:struct:inbounds_udp_conn_info::inbounds_udp_conn_info file: +prev mod_realtime.c /^ struct realtime_conn_info *prev; \/* pointer to the prev connection *\/$/;" m struct:realtime_conn_info typeref:struct:realtime_conn_info::realtime_conn_info file: +prev mod_tcplib.c /^ struct module_conninfo *prev;$/;" m struct:module_conninfo typeref:struct:module_conninfo::module_conninfo file: +prev_dtype_all mod_tcplib.c /^ struct module_conninfo *prev_dtype_all;\/* for ALL app types *\/$/;" m struct:module_conninfo_tcb typeref:struct:module_conninfo_tcb::module_conninfo file: +prev_dtype_byapp mod_tcplib.c /^ struct module_conninfo *prev_dtype_byapp; \/* just for THIS app type *\/$/;" m struct:module_conninfo_tcb typeref:struct:module_conninfo_tcb::module_conninfo file: +print_labels mod_collie.c /^static Bool print_labels = TRUE;$/;" v file: +print_owin tcptrace.c /^Bool print_owin = FALSE;$/;" v +print_rtt tcptrace.c /^Bool print_rtt = FALSE;$/;" v +print_seq_zero tcptrace.c /^Bool print_seq_zero = FALSE;$/;" v +printallofem tcptrace.c /^Bool printallofem = FALSE;$/;" v +printbrief tcptrace.c /^Bool printbrief = TRUE;$/;" v +printem tcptrace.c /^Bool printem = FALSE;$/;" v +printeth_packet print.c /^printeth_packet($/;" f file: +printip_packet print.c /^printip_packet($/;" f file: +printipv4 print.c /^printipv4($/;" f file: +printipv4_opt_addrs print.c /^printipv4_opt_addrs($/;" f file: +printipv6 print.c /^printipv6($/;" f file: +printpacket print.c /^printpacket($/;" f +printsuppress tcptrace.c /^Bool printsuppress = FALSE;$/;" v +printtcp_packet print.c /^printtcp_packet($/;" f file: +printticks tcptrace.c /^Bool printticks = FALSE;$/;" v +printudp_packet print.c /^printudp_packet($/;" f file: +probe_color trace.c /^char *probe_color = "orange";$/;" v +progname tcptrace.c /^static char *progname;$/;" v file: +protoNum etherpeek.c /^ tt_uint16 protoNum; \/* table number for the protocol*\/$/;" m struct:EPFilePacket3_v5_6 file: +protoStr etherpeek.c /^ char protoStr[8]; \/* protocol identity string (NOT null terminated!)*\/$/;" m struct:EPFilePacket3_v5_6 file: +protocol mod_inbounds.c /^struct protocol $/;" s file: +protocol mod_realtime.c /^struct protocol {$/;" s file: +protospec etherpeek.c /^ tt_uint16 protospec; \/* ProtoSpec ID. *\/$/;" m struct:PeekPacket_v7 file: +ptcb mod_rttgraph.c /^ tcb *ptcb;$/;" m struct:rtt_tcb file: +ptcb mod_tcplib.c /^ tcb *ptcb;$/;" m struct:module_conninfo_tcb file: +pti1 mod_traffic.c /^ struct traffic_info *pti1; \/* pointer to the port info for this one *\/$/;" m struct:conn_info typeref:struct:conn_info::traffic_info file: +pti2 mod_traffic.c /^ struct traffic_info *pti2; \/* pointer to the port info for this one *\/$/;" m struct:conn_info typeref:struct:conn_info::traffic_info file: +ptp mod_collie.c /^ tcp_pair *ptp;$/;" m struct:conn_info file: +ptp mod_http.c /^ tcp_pair *ptp;$/;" m struct:http_info file: +ptp mod_inbounds.c /^ tcp_pair *ptp;$/;" m struct:inbounds_tcp_conn_info file: +ptp mod_realtime.c /^ tcp_pair *ptp;$/;" m struct:realtime_conn_info file: +ptp mod_rttgraph.c /^ tcp_pair *ptp;$/;" m struct:rttgraph_info file: +ptp mod_tcplib.c /^ tcp_pair *ptp;$/;" m struct:module_conninfo file: +ptp2ptcb trace.c /^ptp2ptcb($/;" f +ptp_hashtable trace.c /^static ptp_snap *ptp_hashtable[HASH_TABLE_SIZE] = {NULL};$/;" v file: +ptp_ptr_pool poolaccess.c /^static long ptp_ptr_pool = -1;$/;" v file: +ptp_snap_pool poolaccess.c /^static long ptp_snap_pool = -1;$/;" v file: +pup mod_collie.c /^ udp_pair *pup;$/;" m struct:uconn_info file: +pup mod_inbounds.c /^ udp_pair *pup;$/;" m struct:inbounds_udp_conn_info file: +push_color trace.c /^char *push_color = "white"; \/* top arrow for PUSHed segments *\/$/;" v +q2aIdle mod_inbounds.c /^ timeval q2aIdle;$/;" m struct:inbounds_tcp_conn_info file: +q2aIdle mod_inbounds.c /^ timeval q2aIdle;$/;" m struct:inbounds_udp_conn_info file: +qNum mod_inbounds.c /^ u_int qNum;$/;" m struct:inbounds_tcp_conn_info file: +qNum mod_inbounds.c /^ u_int qNum;$/;" m struct:inbounds_udp_conn_info file: +qSum mod_inbounds.c /^ u_long qSum;$/;" m struct:inbounds_tcp_conn_info file: +qSum mod_inbounds.c /^ u_long qSum;$/;" m struct:inbounds_udp_conn_info file: +quadrant_pool poolaccess.c /^static long quadrant_pool = -1;$/;" v file: +rcsid avl.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid compress.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid dyncounter.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid erf.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid etherpeek.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid filter.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid gcache.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid ipv6.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mfiles.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_collie.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_http.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_realtime.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_rttgraph.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_slice.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_tcplib.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid mod_traffic.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid names.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid netm.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid netscout.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid nlanr.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid ns.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid output.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid plotter.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid pool.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid poolaccess.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid print.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid rexmit.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid snoop.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid tcpdump.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid tcptrace.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid thruput.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid trace.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid udp.c /^static char const GCC_UNUSED rcsid[] =$/;" v file: +rcsid_dstring dstring.c /^static char const GCC_UNUSED rcsid_dstring[] =$/;" v file: +rcsid_version version.c /^static char const GCC_UNUSED rcsid_version[] =$/;" v file: +rcsid_versnum versnum.c /^static char const GCC_UNUSED rcsid_versnum[] =$/;" v file: +realtime_conn_info mod_realtime.c /^struct realtime_conn_info {$/;" s file: +realtime_deleteconn mod_realtime.c /^realtime_deleteconn($/;" f +realtime_done mod_realtime.c /^realtime_done(void)$/;" f +realtime_info mod_realtime.c /^struct realtime_info {$/;" s file: +realtime_init mod_realtime.c /^realtime_init($/;" f +realtime_newconn mod_realtime.c /^realtime_newconn( $/;" f +realtime_nontcpudp_read mod_realtime.c /^realtime_nontcpudp_read($/;" f +realtime_read mod_realtime.c /^realtime_read($/;" f +realtime_udp_read mod_realtime.c /^realtime_udp_read($/;" f +realtime_update_interval mod_realtime.c /^const static int realtime_update_interval = 60;$/;" v file: +realtime_usage mod_realtime.c /^realtime_usage(void)$/;" f +rec erf.c /^ } rec;$/;" m struct:erf_record typeref:union:erf_record::__anon2 file: +record erf.c /^static erf_record_t *record;$/;" v file: +records_for_erf_check erf.c /^static int records_for_erf_check = RECORDS_FOR_ERF_CHECK;$/;" v file: +remove_closed_conn_interval tcptrace.c /^u_long remove_closed_conn_interval = REMOVE_CLOSED_CONN_INTERVAL;$/;" v +remove_live_conn_interval tcptrace.c /^u_long remove_live_conn_interval = REMOVE_LIVE_CONN_INTERVAL;$/;" v +reply_position mod_http.c /^ unsigned reply_position; \/* byte offset for this reply *\/$/;" m struct:get_info file: +request_position mod_http.c /^ unsigned request_position; \/* byte offset for this request *\/$/;" m struct:get_info file: +resolve_ipaddresses tcptrace.c /^Bool resolve_ipaddresses = TRUE;$/;" v +resolve_ports tcptrace.c /^Bool resolve_ports = TRUE;$/;" v +response_code mod_http.c /^ unsigned response_code; \/* HTTP response code *\/$/;" m struct:get_info file: +retrans_color trace.c /^char *retrans_color = "red";$/;" v +rexmit rexmit.c /^rexmit (tcb * ptcb,$/;" f +rexmits mod_traffic.c /^static u_long rexmits;$/;" v file: +rlen erf.c /^ unsigned short rlen;$/;" m struct:erf_record file: +rtconn mod_realtime.c /^typedef struct realtime_conn_info rtconn;$/;" t typeref:struct:realtime_conn_info file: +rtconn_pool mod_realtime.c /^static long rtconn_pool = -1;$/;" v file: +rtinfo mod_realtime.c /^typedef struct realtime_info rtinfo;$/;" t typeref:struct:realtime_info file: +rtt mod_rttgraph.c /^ struct hist rtt;$/;" m struct:hist3d typeref:struct:hist3d::hist file: +rtt_ackin rexmit.c /^rtt_ackin (tcb * ptcb,$/;" f file: +rtt_diff_slices mod_rttgraph.c /^ struct hist rtt_diff_slices[NUM_SLICES+1];$/;" m struct:hist3d typeref:struct:hist3d::hist file: +rtt_max mod_traffic.c /^static int rtt_max = -1; \/* in msecs *\/$/;" v file: +rtt_maxvalid mod_traffic.c /^static u_int rtt_maxvalid = 0xffffffff; \/* maximum RTT to consider (ms) *\/$/;" v file: +rtt_min mod_traffic.c /^static int rtt_min = -1; \/* in msecs *\/$/;" v file: +rtt_minvalid mod_traffic.c /^static u_int rtt_minvalid = 0; \/* minimum RTT to consider (ms) *\/$/;" v file: +rtt_retrans rexmit.c /^rtt_retrans (tcb * ptcb,$/;" f file: +rtt_samples mod_traffic.c /^static int rtt_samples;$/;" v file: +rtt_tcb mod_rttgraph.c /^struct rtt_tcb {$/;" s file: +rtt_ttl mod_traffic.c /^static float rtt_ttl; \/* in msecs *\/$/;" v file: +rttgraph_done mod_rttgraph.c /^rttgraph_done(void)$/;" f +rttgraph_info mod_rttgraph.c /^static struct rttgraph_info {$/;" s file: +rttgraph_init mod_rttgraph.c /^rttgraph_init($/;" f +rttgraph_newconn mod_rttgraph.c /^rttgraph_newconn($/;" f +rttgraph_read mod_rttgraph.c /^rttgraph_read($/;" f +rttgraph_usage mod_rttgraph.c /^rttgraph_usage(void)$/;" f +rttgraphhead mod_rttgraph.c /^} *rttgraphhead = NULL, *rttgraphtail = NULL;$/;" v typeref:struct:rttgraph_info file: +rttgraphtail mod_rttgraph.c /^} *rttgraphhead = NULL, *rttgraphtail = NULL;$/;" v typeref:struct:rttgraph_info file: +run_continuously tcptrace.c /^Bool run_continuously = FALSE;$/;" v +s_fin_time mod_http.c /^ timeval s_fin_time; \/* when SERVER sent FIN *\/$/;" m struct:http_info file: +s_syn_time mod_http.c /^ timeval s_syn_time; \/* when SERVER sent SYN *\/$/;" m struct:http_info file: +sack_color trace.c /^char *sack_color = "purple";$/;" v +sample_elapsed_time trace.c /^static double sample_elapsed_time=0; \/* to keep track of owin samples *\/$/;" v file: +samples mod_rttgraph.c /^ struct samples samples;$/;" m struct:rtt_tcb typeref:struct:rtt_tcb::samples file: +samples mod_rttgraph.c /^ u_short *samples;$/;" m struct:samples file: +samples mod_rttgraph.c /^struct samples {$/;" s file: +save_tcp_data tcptrace.c /^Bool save_tcp_data = FALSE;$/;" v +search_count trace.c /^static int search_count = 0;$/;" v file: +search_count udp.c /^static int search_count = 0;$/;" v file: +search_efficiency trace.c /^struct search_efficiency {$/;" s file: +secs snoop.c /^ tt_uint32 secs;$/;" m struct:snoop_packet_header file: +segment_pool poolaccess.c /^static long segment_pool = -1;$/;" v file: +send_time mod_http.c /^ timeval send_time; \/* when SERVER sent CONTENT *\/$/;" m struct:get_info file: +seqspace_pool poolaccess.c /^static long seqspace_pool = -1;$/;" v file: +setup_breakdown mod_tcplib.c /^static void setup_breakdown(void)$/;" f file: +show_out_order trace.c /^Bool show_out_order = TRUE;$/;" v +show_rexmit trace.c /^Bool show_rexmit = TRUE;$/;" v +show_rtt_dongles trace.c /^Bool show_rtt_dongles = FALSE;$/;" v +show_rwinline tcptrace.c /^Bool show_rwinline = TRUE;$/;" v +show_sacks trace.c /^Bool show_sacks = TRUE;$/;" v +show_title tcptrace.c /^Bool show_title = TRUE;$/;" v +show_triple_dupack trace.c /^Bool show_triple_dupack = TRUE;$/;" v +show_urg trace.c /^Bool show_urg = TRUE;$/;" v +show_zero_window trace.c /^Bool show_zero_window = TRUE;$/;" v +show_zwnd_probes trace.c /^Bool show_zwnd_probes = TRUE;$/;" v +signed_long filt_parser.c /^ long signed_long;$/;" m union:__anon3 file: +size mod_tcplib.c /^ dyn_counter size; \/* size of the items *\/$/;" m struct:burstdata file: +slice_counters mod_slice.c /^static struct slice_counters {$/;" s file: +slice_done mod_slice.c /^slice_done(void)$/;" f +slice_init mod_slice.c /^slice_init($/;" f +slice_interval mod_slice.c /^static float slice_interval = 15.0; \/* 15 seconds by default *\/$/;" v file: +slice_newconn mod_slice.c /^slice_newconn($/;" f +slice_number mod_slice.c /^static u_long slice_number = 1; \/* while slice interval are we in? *\/$/;" v file: +slice_read mod_slice.c /^slice_read($/;" f +slice_usage mod_slice.c /^slice_usage(void)$/;" f +slicelength etherpeek.c /^ tt_uint16 slicelength; \/* Sliced length of packet. *\/$/;" m struct:PeekPacket_v7 file: +slicelength etherpeek.c /^ tt_uint16 slicelength; \/* sliced length of packet*\/$/;" m struct:EPFilePacket_v5_6 file: +snoop_file_header snoop.c /^struct snoop_file_header {$/;" s file: +snoop_mac_type snoop.c /^static int snoop_mac_type;$/;" v file: +snoop_packet_header snoop.c /^struct snoop_packet_header {$/;" s file: +snoop_version snoop.c /^ tt_uint32 snoop_version; \/* current version is "2" *\/$/;" m struct:snoop_file_header file: +snprintf_vms snprintf_vms.c /^int snprintf_vms(char *str, size_t len, const char *fmt, ...)$/;" f +sorted pool.c /^ short sorted; \/* whether list of blocks should be sorted *\/$/;" m struct:Pool file: +sp output.c /^char *sp; \/* Separator used for long output with -separated-values *\/$/;" v +src erf.c /^ unsigned char src[6];$/;" m struct:eth_rec file: +srcNum etherpeek.c /^ tt_uint16 srcNum; \/* dnum is entry in table*\/$/;" m struct:EPFilePacket3_v5_6 file: +status etherpeek.c /^ char status; \/* filler to fill to even boundary*\/$/;" m struct:EPFileHeader file: +status etherpeek.c /^ u_char status; \/* Slicing, ... *\/$/;" m struct:PeekPacket_v7 file: +status etherpeek.c /^ u_char status; \/* slice, trunc, ...*\/$/;" m struct:EPFilePacket2_v5_6 file: +str2ipaddr ipv6.c /^str2ipaddr($/;" f +stream mfiles.c /^ FILE *stream;$/;" m struct:mfile file: +string filt_parser.c /^ char *string;$/;" m union:__anon3 file: +strncpy gcache.c 230;" d file: +strncpy netscout.c 79;" d file: +sv tcptrace.c /^char *sv = NULL;$/;" v +sv_expected_count output.c /^static u_int sv_expected_count = 0;$/;" v file: +sv_print_count output.c /^static u_int sv_print_count = 0;$/;" v file: +synfin_color trace.c /^char *synfin_color = "orange";$/;" v +t_dtype mod_tcplib.c /^enum t_dtype {LOCAL = 0, INCOMING = 1, OUTGOING = 2, REMOTE = 3};$/;" g file: +t_time_format mod_slice.c /^enum t_time_format {tf_long=1, tf_brief=2, tf_unix=3, tf_unix_long=4};$/;" g file: +table_size pool.c /^static unsigned table_size = 0; \/* size of the pool table *\/$/;" v file: +tcb_cache mod_tcplib.c /^ struct module_conninfo_tcb tcb_cache[2];$/;" m struct:module_conninfo typeref:struct:module_conninfo::module_conninfo_tcb file: +tcb_client mod_http.c /^ tcb *tcb_client;$/;" m struct:http_info file: +tcb_lastdata mod_inbounds.c /^ tcb *tcb_lastdata;$/;" m struct:inbounds_tcp_conn_info file: +tcb_lastdata mod_tcplib.c /^ tcb *tcb_lastdata;$/;" m struct:module_conninfo file: +tcb_server mod_http.c /^ tcb *tcb_server;$/;" m struct:http_info file: +tcpCheck mod_inbounds.c /^tcpCheck($/;" f file: +tcp_cksum trace.c /^tcp_cksum($/;" f file: +tcp_cksum_valid trace.c /^tcp_cksum_valid($/;" f +tcp_conn_head mod_inbounds.c /^ itcinfo *tcp_conn_head; \/* head of the list of tcp connections *\/$/;" m struct:inbounds_info file: +tcp_conn_tail mod_inbounds.c /^ itcinfo *tcp_conn_tail; \/* tail of the list of tcp connections *\/$/;" m struct:inbounds_info file: +tcp_header nlanr.c /^ struct tcphdr tcp_header; \/* just the first 16 bytes present *\/$/;" m struct:tsh_frame typeref:struct:tsh_frame::tcphdr file: +tcp_new_conn mod_inbounds.c /^ u_short tcp_new_conn; \/* number of new connections within the $/;" m struct:inbounds_info file: +tcp_packet_count trace.c /^static int tcp_packet_count = 0;$/;" v file: +tcp_packets mod_inbounds.c /^static u_llong tcp_packets = 0;$/;" v file: +tcp_packets mod_realtime.c /^static u_llong tcp_packets = 0;$/;" v file: +tcp_pair_pool poolaccess.c /^static long tcp_pair_pool = -1;$/;" v file: +tcp_total_conn mod_inbounds.c /^ u_short tcp_total_conn; \/\/ number of currect active connections$/;" m struct:inbounds_info file: +tcp_trace_count trace.c /^u_long tcp_trace_count = 0;$/;" v +tcpb ns.c /^static struct tcphdr *tcpb;$/;" v typeref:struct:tcphdr file: +tcplib_add_telnet_interarrival mod_tcplib.c /^void tcplib_add_telnet_interarrival($/;" f +tcplib_add_telnet_packetsize mod_tcplib.c /^void tcplib_add_telnet_packetsize($/;" f +tcplib_breakdown_interval mod_tcplib.c /^ int tcplib_breakdown_interval[NUM_APPS];$/;" m struct:tcplibstats file: +tcplib_cleanup_bursts mod_tcplib.c /^tcplib_cleanup_bursts()$/;" f file: +tcplib_do_GENERIC_P_maxconns mod_tcplib.c /^tcplib_do_GENERIC_P_maxconns($/;" f file: +tcplib_do_GENERIC_burstsize mod_tcplib.c /^tcplib_do_GENERIC_burstsize($/;" f file: +tcplib_do_GENERIC_idletime mod_tcplib.c /^tcplib_do_GENERIC_idletime($/;" f file: +tcplib_do_GENERIC_itemsize mod_tcplib.c /^tcplib_do_GENERIC_itemsize($/;" f file: +tcplib_do_GENERIC_nitems mod_tcplib.c /^tcplib_do_GENERIC_nitems($/;" f file: +tcplib_do_ftp_control_size mod_tcplib.c /^static void tcplib_do_ftp_control_size($/;" f file: +tcplib_do_ftp_itemsize mod_tcplib.c /^void tcplib_do_ftp_itemsize($/;" f +tcplib_do_ftp_numitems mod_tcplib.c /^void tcplib_do_ftp_numitems($/;" f +tcplib_do_smtp_itemsize mod_tcplib.c /^static void tcplib_do_smtp_itemsize($/;" f file: +tcplib_do_telnet_duration mod_tcplib.c /^void tcplib_do_telnet_duration($/;" f +tcplib_do_telnet_interarrival mod_tcplib.c /^void tcplib_do_telnet_interarrival($/;" f +tcplib_do_telnet_packetsize mod_tcplib.c /^void tcplib_do_telnet_packetsize($/;" f +tcplib_done mod_tcplib.c /^void tcplib_done()$/;" f +tcplib_filter_http_uni mod_tcplib.c /^tcplib_filter_http_uni()$/;" f file: +tcplib_init mod_tcplib.c /^int tcplib_init($/;" f +tcplib_init_setup mod_tcplib.c /^static void tcplib_init_setup(void)$/;" f file: +tcplib_newconn mod_tcplib.c /^tcplib_newconn($/;" f +tcplib_newfile mod_tcplib.c /^void tcplib_newfile($/;" f +tcplib_read mod_tcplib.c /^void tcplib_read($/;" f +tcplib_save_bursts mod_tcplib.c /^tcplib_save_bursts()$/;" f file: +tcplib_usage mod_tcplib.c /^void tcplib_usage()$/;" f +tcplibstats mod_tcplib.c /^static struct tcplibstats {$/;" s file: +tcptrace_version tcptrace.c /^char *tcptrace_version = VERSION;$/;" v +telnet_interarrival mod_tcplib.c /^ dyn_counter telnet_interarrival;$/;" m struct:tcplibstats file: +telnet_pktsize mod_tcplib.c /^ dyn_counter telnet_pktsize;$/;" m struct:tcplibstats file: +temp_color plotter.c /^static char *temp_color = NULL;$/;" v file: +tempfile compress.c /^static char *tempfile;$/;" v file: +text_color trace.c /^char *text_color = "magenta";$/;" v +tf_brief mod_slice.c /^enum t_time_format {tf_long=1, tf_brief=2, tf_unix=3, tf_unix_long=4};$/;" e enum:t_time_format file: +tf_long mod_slice.c /^enum t_time_format {tf_long=1, tf_brief=2, tf_unix=3, tf_unix_long=4};$/;" e enum:t_time_format file: +tf_unix mod_slice.c /^enum t_time_format {tf_long=1, tf_brief=2, tf_unix=3, tf_unix_long=4};$/;" e enum:t_time_format file: +tf_unix_long mod_slice.c /^enum t_time_format {tf_long=1, tf_brief=2, tf_unix=3, tf_unix_long=4};$/;" e enum:t_time_format file: +thetime mod_http.c /^ timeval thetime;$/;" m struct:time_stamp file: +thisfile_ep_version etherpeek.c /^static char thisfile_ep_version;$/;" v file: +throughput mod_tcplib.c /^ dyn_counter throughput;$/;" m struct:tcplibstats file: +throughput_bytes mod_tcplib.c /^ int throughput_bytes;$/;" m struct:tcplibstats file: +thru_interval trace.c /^int thru_interval = 10; \/* in segments *\/$/;" v +timeDate etherpeek.c /^ tt_uint32 timeDate; \/* time and date stamp of the file (MAC format)*\/$/;" m struct:EPFileHeader2 file: +timeStart etherpeek.c /^ tt_uint32 timeStart; \/* time of the first packet in the file*\/$/;" m struct:EPFileHeader2 file: +timeStop etherpeek.c /^ tt_uint32 timeStop; \/* time of the last packet in the file*\/$/;" m struct:EPFileHeader2 file: +time_format mod_slice.c /^static enum t_time_format time_format = tf_brief;$/;" v typeref:enum:t_time_format file: +time_stamp mod_http.c /^struct time_stamp {$/;" s file: +timestamp etherpeek.c /^ tt_uint32 timestamp; \/* timestamp in milliseconds*\/$/;" m struct:EPFilePacket3_v5_6 file: +timestamphi etherpeek.c /^ tt_uint32 timestamphi; \/* 64-bit timestamp in microseconds. *\/$/;" m struct:PeekPacket_v7 file: +timestamplo etherpeek.c /^ tt_uint32 timestamplo;$/;" m struct:PeekPacket_v7 file: +title plotter.c /^ char *title; \/* Plotter title *\/$/;" m struct:plotter_info file: +tlen netm.c /^ int tlen; \/* truncated length *\/$/;" m struct:netm_packet_header file: +tlen netm.c /^ int tlen;$/;" m struct:netm_packet_header_old file: +tlen netscout.c /^ tt_int32 tlen;$/;" m struct:netscout_packet_header file: +tlen snoop.c /^ tt_uint32 tlen;$/;" m struct:snoop_packet_header file: +tline_left trace.c /^static int tline_left = 0; \/* left and right time lines for the time line charts *\/$/;" v file: +tline_right trace.c /^static int tline_right = 0;$/;" v file: +total_conns mod_realtime.c /^ u_long total_conns; \/* number of currect active connections *\/$/;" m struct:realtime_info file: +total_count dyncounter.c /^ u_long total_count; \/* sum of the "AddToCounters" call values *\/$/;" m struct:dyn_counter file: +total_elapsed_time trace.c /^static double total_elapsed_time=0; \/* to keep track of owin samples *\/ $/;" v file: +total_length_ext_headers ipv6.c /^int total_length_ext_headers($/;" f +total_reply_count mod_http.c /^ unsigned total_reply_count;$/;" m struct:http_info file: +total_reply_length mod_http.c /^ unsigned total_reply_length;$/;" m struct:http_info file: +total_request_count mod_http.c /^ unsigned total_request_count;$/;" m struct:http_info file: +total_request_length mod_http.c /^ unsigned total_request_length;$/;" m struct:http_info file: +tph nlanr.c /^ struct tsh_packet_header tph;$/;" m struct:tsh_frame typeref:struct:tsh_frame::tsh_packet_header file: +trace_done trace.c /^trace_done(void)$/;" f +trace_init trace.c /^trace_init(void)$/;" f +traffic_done mod_traffic.c /^traffic_done(void)$/;" f +traffic_info mod_traffic.c /^struct traffic_info {$/;" s file: +traffic_init mod_traffic.c /^traffic_init($/;" f +traffic_newconn mod_traffic.c /^traffic_newconn($/;" f +traffic_read mod_traffic.c /^traffic_read($/;" f +traffic_type mod_tcplib.c /^traffic_type($/;" f file: +traffic_usage mod_traffic.c /^traffic_usage(void)$/;" f +traffichead mod_traffic.c /^static struct traffic_info *traffichead = NULL;$/;" v typeref:struct:traffic_info file: +trafgen_generated mod_tcplib.c /^static Bool trafgen_generated = FALSE;$/;" v file: +tree dyncounter.c /^ struct node *tree;$/;" m struct:dyn_counter typeref:struct:dyn_counter::node file: +triple_dupack_allows_data tcptrace.c /^Bool triple_dupack_allows_data = FALSE;$/;" v +ts erf.c /^ erf_timestamp_t ts;$/;" m struct:erf_record file: +ts2ascii print.c /^ts2ascii($/;" f +ts2ascii_date print.c /^ts2ascii_date($/;" f +ts2d mod_http.c /^ts2d(timeval *pt)$/;" f file: +ts_secs nlanr.c /^ unsigned int ts_secs;$/;" m struct:tsh_packet_header file: +ts_usecs nlanr.c /^ unsigned int ts_usecs:24;$/;" m struct:tsh_packet_header file: +tsh_frame nlanr.c /^struct tsh_frame {$/;" s file: +tsh_packet_header nlanr.c /^struct tsh_packet_header {$/;" s file: +tstamp_msecs netscout.c /^ tt_int32 tstamp_msecs;$/;" m struct:netscout_packet_header file: +tstamp_secs netm.c /^ int tstamp_secs;$/;" m struct:netm_packet_header file: +tstamp_secs netm.c /^ int tstamp_secs;$/;" m struct:netm_packet_header_old file: +tstamp_secs netscout.c /^ tt_int32 tstamp_secs;$/;" m struct:netscout_packet_header file: +tstamp_usecs netm.c /^ int tstamp_usecs;$/;" m struct:netm_packet_header file: +tstamp_usecs netm.c /^ int tstamp_usecs;$/;" m struct:netm_packet_header_old file: +tsv tcptrace.c /^Bool tsv = FALSE;$/;" v +ttl_dupacks mod_traffic.c /^static u_long ttl_dupacks;$/;" v file: +ttl_i_open mod_traffic.c /^ u_long ttl_i_open;$/;" m struct:traffic_info file: +ttl_num_closes mod_traffic.c /^static int ttl_num_closes = 0;$/;" v file: +ttl_num_opens mod_traffic.c /^static int ttl_num_opens = 0;$/;" v file: +ttl_rexmits mod_traffic.c /^static u_long ttl_rexmits;$/;" v file: +ttl_rtt_samples mod_traffic.c /^static int ttl_rtt_samples;$/;" v file: +ttl_rtt_ttl mod_traffic.c /^static float ttl_rtt_ttl; \/* in msecs *\/$/;" v file: +ttlactive mod_traffic.c /^ u_long ttlactive;$/;" m struct:traffic_info file: +ttlbytes mod_traffic.c /^ u_long ttlbytes;$/;" m struct:traffic_info file: +ttlidle mod_traffic.c /^ u_long ttlidle;$/;" m struct:traffic_info file: +ttlitems mod_tcplib.c /^ u_long ttlitems[2]; \/* across entire group (each dir) *\/$/;" m struct:parallelism file: +ttllong mod_traffic.c /^ u_long ttllong;$/;" m struct:traffic_info file: +ttlopen mod_traffic.c /^ u_long ttlopen;$/;" m struct:traffic_info file: +ttlpackets mod_traffic.c /^ u_long ttlpackets;$/;" m struct:traffic_info file: +ttlpureacks mod_traffic.c /^ u_long ttlpureacks;$/;" m struct:traffic_info file: +ttp trace.c /^tcp_pair **ttp = NULL; \/* array of pointers to allocated pairs *\/$/;" v +tv_add trace.c /^tv_add(struct timeval *plhs, struct timeval rhs)$/;" f +tv_cmp trace.c /^tv_cmp(struct timeval lhs, struct timeval rhs)$/;" f +tv_same trace.c /^tv_same(struct timeval lhs, struct timeval rhs)$/;" f +tv_slice_interval mod_slice.c /^static timeval tv_slice_interval;$/;" v file: +tv_sub trace.c /^tv_sub(struct timeval *plhs, struct timeval rhs)$/;" f +type erf.c /^ unsigned char type;$/;" m struct:erf_record file: +uconn_info mod_collie.c /^struct uconn_info {$/;" s file: +uconnhead mod_collie.c /^static struct uconn_info *uconnhead = NULL;$/;" v typeref:struct:uconn_info file: +udpCheck mod_inbounds.c /^udpCheck($/;" f file: +udp_cksum trace.c /^udp_cksum($/;" f file: +udp_cksum_valid trace.c /^udp_cksum_valid($/;" f +udp_conn_head mod_inbounds.c /^ iucinfo *udp_conn_head; \/* head of the list of udp connections *\/$/;" m struct:inbounds_info file: +udp_conn_tail mod_inbounds.c /^ iucinfo *udp_conn_tail; \/* tail of the list of udp connections *\/$/;" m struct:inbounds_info file: +udp_delconn_cnt mod_inbounds.c /^static int udp_delconn_cnt=0;$/;" v file: +udp_new_conn mod_inbounds.c /^ u_short udp_new_conn; \/* number of new connections within the$/;" m struct:inbounds_info file: +udp_packets mod_inbounds.c /^static u_llong udp_packets = 0;$/;" v file: +udp_packets mod_realtime.c /^static u_llong udp_packets = 0;$/;" v file: +udp_pair_pool poolaccess.c /^static long udp_pair_pool = -1;$/;" v file: +udp_total_conn mod_inbounds.c /^ u_short udp_total_conn; \/* number of currect udp active connections *\/$/;" m struct:inbounds_info file: +udp_trace_count udp.c /^u_long udp_trace_count = 0;$/;" v +udpdotrace udp.c /^udpdotrace($/;" f +udptrace_done udp.c /^udptrace_done(void)$/;" f +udptrace_init udp.c /^udptrace_init(void)$/;" f +un dyncounter.c /^ } un;$/;" m struct:node typeref:union:node::__anon1 file: +unidirectional_http mod_tcplib.c /^ Bool unidirectional_http;$/;" m struct:module_conninfo file: +unput filt_scanner.c 153;" d file: +unsigned_long filt_parser.c /^ u_long unsigned_long;$/;" m union:__anon3 file: +unused mod_tcplib.c /^ unsigned char unused[3]; \/* (explicit padding) *\/$/;" m struct:burstkey file: +unused1 netm.c /^ int unused1;$/;" m struct:netm_packet_header file: +unused1 netm.c /^ int unused1;$/;" m struct:netm_packet_header_old file: +unused2 netm.c /^ int unused2;$/;" m struct:netm_packet_header file: +unused2 netm.c /^ int unused2;$/;" m struct:netm_packet_header_old file: +unused3 netm.c /^ int unused3;$/;" m struct:netm_packet_header file: +unused3 snoop.c /^ tt_uint32 unused3;$/;" m struct:snoop_packet_header file: +unused5 netm.c /^ int unused5;$/;" m struct:netm_packet_header file: +update_breakdown mod_tcplib.c /^static void update_breakdown($/;" f file: +update_interval tcptrace.c /^u_long update_interval = UPDATE_INTERVAL;$/;" v +update_interval_st tcptrace.c /^static char *update_interval_st = NULL;$/;" v file: +urg_color trace.c /^char *urg_color = "red";$/;" v +use_short_names trace.c /^Bool use_short_names = FALSE;$/;" v +usecs snoop.c /^ tt_uint32 usecs;$/;" m struct:snoop_packet_header file: +utp udp.c /^udp_pair **utp = NULL; \/* array of pointers to allocated pairs *\/$/;" v +value dyncounter.c /^ u_long value[CARDINALITY]; \/* if depth == 1 *\/$/;" m union:node::__anon1 file: +var_descr tcptrace.c /^ char *var_descr; \/* variable description *\/$/;" m struct:ext_var_op file: +var_optname tcptrace.c /^ char *var_optname; \/* what it's called when you set it *\/$/;" m struct:ext_var_op file: +var_popt tcptrace.c /^ char **var_popt; \/* the variable itself *\/$/;" m struct:ext_var_op file: +var_verify tcptrace.c /^ void (*var_verify)(char *varname,$/;" m struct:ext_var_op file: +verify_checksums tcptrace.c /^Bool verify_checksums = FALSE;$/;" v +version etherpeek.c /^ char version; \/* file version (must be 5, 6, or 7)*\/$/;" m struct:EPFileHeader file: +version netm.c /^ int version;$/;" m struct:netm_header file: +wallclock_finished tcptrace.c /^struct timeval wallclock_finished;$/;" v typeref:struct:timeval +wallclock_start tcptrace.c /^struct timeval wallclock_start;$/;" v typeref:struct:timeval +warn_ooo tcptrace.c /^Bool warn_ooo = FALSE;$/;" v +warn_printbad_syn_fin_seq tcptrace.c /^Bool warn_printbad_syn_fin_seq = FALSE;$/;" v +warn_printbadcsum tcptrace.c /^Bool warn_printbadcsum = FALSE;$/;" v +warn_printbadmbz tcptrace.c /^Bool warn_printbadmbz = FALSE;$/;" v +warn_printhwdups tcptrace.c /^Bool warn_printhwdups = FALSE;$/;" v +warn_printtrunc tcptrace.c /^Bool warn_printtrunc = FALSE;$/;" v +wasactive mod_traffic.c /^ Bool wasactive; \/* was this connection active over the interval? *\/$/;" m struct:conn_info file: +wasopen mod_traffic.c /^ Bool wasopen; \/* was this this connection EVER open? *\/$/;" m struct:conn_info file: +whichquad rexmit.c /^whichquad (seqspace * sspace,$/;" f file: +window_color trace.c /^char *window_color = "yellow";$/;" v +wlen erf.c /^ unsigned short wlen;$/;" m struct:erf_record file: +xlabel plotter.c /^ char *xlabel; \/* Plotter x-axis label *\/$/;" m struct:plotter_info file: +xp_timestamp plotter.c /^xp_timestamp($/;" f file: +xplot_all_files tcptrace.c /^Bool xplot_all_files = FALSE;$/;" v +xplot_args tcptrace.c /^char *xplot_args = NULL;$/;" v +xplot_title_prefix tcptrace.c /^char *xplot_title_prefix = NULL;$/;" v +ylabel plotter.c /^ char *ylabel; \/* Plotter y-axis label *\/$/;" m struct:plotter_info file: +yy_accept filt_scanner.c /^static yyconst short int yy_accept[68] =$/;" v file: +yy_at_bol filt_scanner.c /^ int yy_at_bol;$/;" m struct:yy_buffer_state file: +yy_base filt_scanner.c /^static yyconst short int yy_base[72] =$/;" v file: +yy_buf_pos filt_scanner.c /^ char *yy_buf_pos; \/* current position in input buffer *\/$/;" m struct:yy_buffer_state file: +yy_buf_size filt_scanner.c /^ yy_size_t yy_buf_size;$/;" m struct:yy_buffer_state file: +yy_buffer_state filt_scanner.c /^struct yy_buffer_state$/;" s file: +yy_buffer_status filt_scanner.c /^ int yy_buffer_status;$/;" m struct:yy_buffer_state file: +yy_c_buf_p filt_scanner.c /^static char *yy_c_buf_p = (char *) 0;$/;" v file: +yy_ch_buf filt_scanner.c /^ char *yy_ch_buf; \/* input buffer *\/$/;" m struct:yy_buffer_state file: +yy_chk filt_scanner.c /^static yyconst short int yy_chk[162] =$/;" v file: +yy_create_buffer filt_scanner.c /^YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )$/;" f +yy_create_buffer filt_scanner.c 1;" d file: +yy_current_buffer filt_scanner.c /^static YY_BUFFER_STATE yy_current_buffer = 0;$/;" v file: +yy_def filt_scanner.c /^static yyconst short int yy_def[72] =$/;" v file: +yy_delete_buffer filt_scanner.c /^void yy_delete_buffer( YY_BUFFER_STATE b )$/;" f +yy_delete_buffer filt_scanner.c 2;" d file: +yy_did_buffer_switch_on_eof filt_scanner.c /^static int yy_did_buffer_switch_on_eof;$/;" v file: +yy_ec filt_scanner.c /^static yyconst int yy_ec[256] =$/;" v file: +yy_fatal_error filt_scanner.c /^static void yy_fatal_error( yyconst char msg[] )$/;" f file: +yy_fill_buffer filt_scanner.c /^ int yy_fill_buffer;$/;" m struct:yy_buffer_state file: +yy_flex_alloc filt_scanner.c /^static void *yy_flex_alloc( yy_size_t size )$/;" f file: +yy_flex_debug filt_scanner.c 6;" d file: +yy_flex_free filt_scanner.c /^static void yy_flex_free( void *ptr )$/;" f file: +yy_flex_realloc filt_scanner.c /^static void *yy_flex_realloc( void *ptr, yy_size_t size )$/;" f file: +yy_flex_strlen filt_scanner.c /^static int yy_flex_strlen( yyconst char *s )$/;" f file: +yy_flex_strncpy filt_scanner.c /^static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )$/;" f file: +yy_flush_buffer filt_scanner.c /^void yy_flush_buffer( YY_BUFFER_STATE b )$/;" f +yy_flush_buffer filt_scanner.c 8;" d file: +yy_get_next_buffer filt_scanner.c /^static int yy_get_next_buffer()$/;" f file: +yy_get_previous_state filt_scanner.c /^static yy_state_type yy_get_previous_state()$/;" f file: +yy_hold_char filt_scanner.c /^static char yy_hold_char;$/;" v file: +yy_init filt_scanner.c /^static int yy_init = 1; \/* whether we need to initialize *\/$/;" v file: +yy_init_buffer filt_scanner.c /^void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )$/;" f +yy_init_buffer filt_scanner.c 7;" d file: +yy_input_file filt_scanner.c /^ FILE *yy_input_file;$/;" m struct:yy_buffer_state file: +yy_is_interactive filt_scanner.c /^ int yy_is_interactive;$/;" m struct:yy_buffer_state file: +yy_is_our_buffer filt_scanner.c /^ int yy_is_our_buffer;$/;" m struct:yy_buffer_state file: +yy_last_accepting_cpos filt_scanner.c /^static char *yy_last_accepting_cpos;$/;" v file: +yy_last_accepting_state filt_scanner.c /^static yy_state_type yy_last_accepting_state;$/;" v file: +yy_load_buffer_state filt_scanner.c /^void yy_load_buffer_state( void )$/;" f +yy_load_buffer_state filt_scanner.c 9;" d file: +yy_meta filt_scanner.c /^static yyconst int yy_meta[37] =$/;" v file: +yy_n_chars filt_scanner.c /^ int yy_n_chars;$/;" m struct:yy_buffer_state file: +yy_n_chars filt_scanner.c /^static int yy_n_chars; \/* number of characters read into yy_ch_buf *\/$/;" v file: +yy_new_buffer filt_scanner.c 264;" d file: +yy_nxt filt_scanner.c /^static yyconst short int yy_nxt[162] =$/;" v file: +yy_pop_state filt_scanner.c /^static void yy_pop_state()$/;" f file: +yy_push_state filt_scanner.c /^static void yy_push_state( int new_state )$/;" f file: +yy_scan_buffer filt_scanner.c /^YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )$/;" f +yy_scan_buffer filt_scanner.c 3;" d file: +yy_scan_bytes filt_scanner.c /^YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )$/;" f +yy_scan_bytes filt_scanner.c 5;" d file: +yy_scan_string filt_scanner.c /^YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )$/;" f +yy_scan_string filt_scanner.c 4;" d file: +yy_set_bol filt_scanner.c 273;" d file: +yy_set_interactive filt_scanner.c 266;" d file: +yy_size_t filt_scanner.c /^typedef unsigned int yy_size_t;$/;" t file: +yy_start filt_scanner.c /^static int yy_start = 0; \/* start state number *\/$/;" v file: +yy_start_stack filt_scanner.c /^static int *yy_start_stack = 0;$/;" v file: +yy_start_stack_depth filt_scanner.c /^static int yy_start_stack_depth = 0;$/;" v file: +yy_start_stack_ptr filt_scanner.c /^static int yy_start_stack_ptr = 0;$/;" v file: +yy_state_type filt_scanner.c /^typedef int yy_state_type;$/;" t file: +yy_switch_to_buffer filt_scanner.c /^void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )$/;" f +yy_switch_to_buffer filt_scanner.c 10;" d file: +yy_top_state filt_scanner.c /^static int yy_top_state()$/;" f file: +yy_try_NUL_trans filt_scanner.c /^static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )$/;" f file: +yychar filt_parser.c /^int yychar; \/* the lookahead symbol *\/$/;" v +yychar filt_parser.c 11;" d file: +yycheck filt_parser.c /^static const short yycheck[] = { 4,$/;" v file: +yyclearin filt_parser.c 347;" d file: +yyconst filt_scanner.c 71;" d file: +yyconst filt_scanner.c 73;" d file: +yydebug filt_parser.c /^int yydebug; \/* nonzero means print parse trace *\/$/;" v +yydebug filt_parser.c 12;" d file: +yydefact filt_parser.c /^static const short yydefact[] = { 0,$/;" v file: +yydefgoto filt_parser.c /^static const short yydefgoto[] = { 42,$/;" v file: +yyerrok filt_parser.c 346;" d file: +yyerror filt_parser.c 9;" d file: +yyin filt_scanner.c /^FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;$/;" v +yyin filt_scanner.c 11;" d file: +yyinput filt_scanner.c /^static int yyinput()$/;" f file: +yyleng filt_scanner.c /^int yyleng;$/;" v +yyleng filt_scanner.c 12;" d file: +yyless filt_scanner.c 142;" d file: +yyless filt_scanner.c 1744;" d file: +yyless filt_scanner.c 1745;" d file: +yylex filt_parser.c 8;" d file: +yylex filt_scanner.c 13;" d file: +yylloc filt_parser.c /^YYLTYPE yylloc; \/* location data for the lookahead *\/$/;" v +yylval filt_parser.c /^YYSTYPE yylval; \/* the semantic value of the *\/$/;" v +yylval filt_parser.c 10;" d file: +yylval filt_scanner.c 497;" d file: +yymore filt_scanner.c 431;" d file: +yynerrs filt_parser.c /^int yynerrs; \/* number of parse errors so far *\/$/;" v +yynerrs filt_parser.c 13;" d file: +yyout filt_scanner.c /^FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;$/;" v +yyout filt_scanner.c 14;" d file: +yypact filt_parser.c /^static const short yypact[] = { -4,$/;" v file: +yyparse filt_parser.c /^yyparse(YYPARSE_PARAM_ARG)$/;" f +yyparse filt_parser.c 7;" d file: +yypgoto filt_parser.c /^static const short yypgoto[] = {-32768,$/;" v file: +yyprhs filt_parser.c /^static const short yyprhs[] = { 0,$/;" v file: +yyr1 filt_parser.c /^static const short yyr1[] = { 0,$/;" v file: +yyr2 filt_parser.c /^static const short yyr2[] = { 0,$/;" v file: +yyrestart filt_scanner.c /^void yyrestart( FILE *input_file )$/;" f +yyrestart filt_scanner.c 15;" d file: +yyrhs filt_parser.c /^static const short yyrhs[] = { 29,$/;" v file: +yyrline filt_parser.c /^static const short yyrline[] = { 0,$/;" v file: +yytable filt_parser.c /^static const short yytable[] = { 1,$/;" v file: +yyterminate filt_scanner.c 617;" d file: +yytext filt_scanner.c /^char *yytext;$/;" v +yytext filt_scanner.c 16;" d file: +yytext_ptr filt_scanner.c 286;" d file: +yytname filt_parser.c /^static const char * const yytname[] = { "$","error","$undefined.","EOS","LPAREN",$/;" v file: +yytranslate filt_parser.c /^static const char yytranslate[] = { 0,$/;" v file: +yyunput filt_scanner.c /^static void yyunput( int c, register char *yy_bp )$/;" f file: +yywrap filt_scanner.c /^int yywrap(void)$/;" f +yywrap filt_scanner.c 17;" d file: +z mod_rttgraph.c /^ u_long z;$/;" m struct:hist file: +zerotime plotter.c /^ timeval zerotime; \/* first time stamp in this plot (see -z) *\/$/;" m struct:plotter_info file: diff --git a/tcpdump.c b/tcpdump.c new file mode 100644 index 0000000..7087067 --- /dev/null +++ b/tcpdump.c @@ -0,0 +1,492 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/tcpdump.c,v 5.24 2004/10/07 20:07:30 mramadas Exp $"; + +#include + +#ifdef GROK_TCPDUMP + +#include "tcpdump.h" +#include + + + + +/* external ref, in case missing in older version */ +extern int pcap_offline_read(void *, int, pcap_handler, u_char *); + +/* global pointer, the pcap info header */ +static pcap_t *pcap; + + +/* Interaction with pcap */ +static struct ether_header eth_header; +#define EH_SIZE sizeof(struct ether_header) +static char *ip_buf; /* [IP_MAXPACKET] */ +static struct pcap_pkthdr *callback_phdr; +static void *callback_plast; + + +static int callback( + char *user, + struct pcap_pkthdr *phdr, + char *buf) +{ + int type; + int iplen; + static int offset = -1; + + struct vlanh{ + tt_uint16 vlan_num; + tt_uint16 vlan_proto; + } *vlanhptr; + + iplen = phdr->caplen; + if (iplen > IP_MAXPACKET) + iplen = IP_MAXPACKET; + + type = pcap_datalink(pcap); + + /* remember the stuff we always save */ + callback_phdr = phdr; + + /* kindof ugly, but about the only way to make them fit together :-( */ + switch (type) { + case 100: + /* for some reason, the windows version of tcpdump is using */ + /* this. It looks just like ethernet to me */ + case PCAP_DLT_EN10MB: + offset = find_ip_eth(buf); /* Here we check if we are dealing with Straight Ethernet encapsulation or PPPoE */ + memcpy(ð_header, buf, EH_SIZE); /* save ether header */ + switch (offset) + { + case EH_SIZE: /* straight Ethernet encapsulation */ + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PPPOE_SIZE: /* PPPoE encapsulation */ + /* we use a fake ether type here */ + eth_header.ether_type = htons(ETHERTYPE_IP); + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case -1: /* Not an IP packet */ + /* Let's check if it is a VLAN header that + * caused us to receive -1, and if we had an IP + * packet buried inside */ + if (eth_header.ether_type == htons(ETHERTYPE_VLAN)) { + vlanhptr=(struct vlanh*) (buf+EH_SIZE); + if ( (ntohs(vlanhptr->vlan_proto) == ETHERTYPE_IP) || + (ntohs(vlanhptr->vlan_proto) == ETHERTYPE_IPV6) + ) { + offset=EH_SIZE+sizeof(struct vlanh); + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + /* Set ethernet type as whatever followed the dumb + * VLAN header to prevent the rest of the code + * from ignoring us. + */ + eth_header.ether_type=vlanhptr->vlan_proto; + break; + } + } + return (-1); + default: /* should not be used, but we never know ... */ + return (-1); + } + break; + case PCAP_DLT_IEEE802: + /* just pretend it's "normal" ethernet */ + offset = 14; /* 22 bytes of IEEE cruft */ + memcpy(ð_header,buf,EH_SIZE); /* save ether header */ + memcpy(ip_buf,buf+offset,iplen-offset); + callback_plast = (char *)ip_buf+iplen-offset-1; + break; + case PCAP_DLT_SLIP: + memcpy(ip_buf,buf+16,iplen-16); + callback_plast = (char *)ip_buf+iplen-16-1; + break; + case PCAP_DLT_PPP: + /* deals with raw PPP and also with HDLC PPP frames */ + offset = find_ip_ppp(buf); + if (offset < 0) /* Not an IP packet */ + return (-1); + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_FDDI: + if (offset < 0) + offset = find_ip_fddi(buf,iplen); + if (offset < 0) + return(-1); + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_NULL: + /* no phys header attached */ + offset = 4; + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_ATM_RFC1483: + /* ATM RFC1483 - LLC/SNAP ecapsulated atm */ + memcpy((char*)ip_buf,buf+8,iplen-8); + callback_plast = ip_buf+iplen-8-1; + break; + case PCAP_DLT_RAW: + /* raw IP */ + offset = 0; + memcpy((char *)ip_buf,buf+offset,iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_LINUX_SLL: + /* linux cooked socket */ + offset = 16; + memcpy((char *)ip_buf, buf+offset, iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + // Patch sent by Brandon Eisenamann to passby 802.11, LLC/SNAP + // and Prism2 headers to get to the IP packet. + case PCAP_DLT_IEEE802_11: + offset=24+8;// 802.11 header + LLC/SNAP header + memcpy((char *)ip_buf, buf+offset, iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_IEEE802_11_RADIO: + offset=64+24;//WLAN header + 802.11 header + memcpy(ð_header,buf,EH_SIZE); // save ethernet header + memcpy((char *)ip_buf, buf+offset, iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_PRISM2: + offset=144+24+8; // PRISM2+IEEE 802.11+ LLC/SNAP headers + memcpy((char *)ip_buf, buf+offset, iplen-offset); + callback_plast = ip_buf+iplen-offset-1; + break; + case PCAP_DLT_C_HDLC: + offset=4; + memcpy((char *)ip_buf, buf+offset, iplen-offset); + callback_plast = (char *)ip_buf+iplen-offset-1; + break; + default: + fprintf(stderr,"Don't understand link-level format (%d)\n", type); + + exit(1); + } + + return(0); +} + + +/* currently only works for ETHERNET and FDDI */ +static int +pread_tcpdump( + struct timeval *ptime, + int *plen, + int *ptlen, + void **pphys, + int *pphystype, + struct ip **ppip, + void **pplast) +{ + int ret; + + while (1) { + if ((ret = pcap_dispatch(pcap,1,(pcap_handler)callback,0)) != 1) { //Sriharsha Gangam + //if ((ret = pcap_offline_read(pcap,1,(pcap_handler)callback,0)) != 1) { + /* prob EOF */ + + if (ret == -1) { + char *error; + error = pcap_geterr(pcap); + + if (error && *error) + fprintf(stderr,"PCAP error: '%s'\n",pcap_geterr(pcap)); + /* else, it's just EOF */ + } + + return(0); + } + + /* at least one tcpdump implementation (AIX) seems to be */ + /* storing NANOseconds in the usecs field of the timestamp. */ + /* This confuses EVERYTHING. Try to compensate. */ + { + static Bool bogus_nanoseconds = FALSE; + if ((callback_phdr->ts.tv_usec >= US_PER_SEC) || + (bogus_nanoseconds)) { + if (!bogus_nanoseconds) { + fprintf(stderr, + "tcpdump: attempting to adapt to bogus nanosecond timestamps\n"); + bogus_nanoseconds = TRUE; + } + callback_phdr->ts.tv_usec /= 1000; + } + } + + /* fill in all of the return values */ + *pphys = ð_header;/* everything assumed to be ethernet */ + *pphystype = PHYS_ETHER; /* everything assumed to be ethernet */ + *ppip = (struct ip *) ip_buf; + *pplast = callback_plast; /* last byte in IP packet */ + /* (copying time structure in 2 steps to avoid RedHat brain damage) */ + ptime->tv_usec = callback_phdr->ts.tv_usec; + ptime->tv_sec = callback_phdr->ts.tv_sec; + *plen = callback_phdr->len; + *ptlen = callback_phdr->caplen; + + /* if it's not IP, then skip it */ + if ((ntohs(eth_header.ether_type) != ETHERTYPE_IP) && + (ntohs(eth_header.ether_type) != ETHERTYPE_IPV6)) { + if (debug > 2) + fprintf(stderr,"pread_tcpdump: not an IP packet\n"); + continue; + } + + return(1); + } +} + + +pread_f *is_tcpdump(char *filename) +{ + char errbuf[100]; + char *physname = ""; + int type; + +#ifdef __WIN32 + if ((pcap = pcap_open_offline(filename, errbuf)) == NULL) { +#else + if ((pcap = pcap_open_offline("-", errbuf)) == NULL) { +#endif /* __WIN32 */ + if (debug > 2) + fprintf(stderr,"PCAP said: '%s'\n", errbuf); + rewind(stdin); + return(NULL); + } + + + if (debug) { + printf("Using 'pcap' version of tcpdump\n"); + if (debug > 1) { + printf("\tversion_major: %d\n", pcap_major_version(pcap)); + printf("\tversion_minor: %d\n", pcap_minor_version(pcap)); + printf("\tsnaplen: %d\n", pcap_snapshot(pcap)); + printf("\tlinktype: %d\n", pcap_datalink(pcap)); + printf("\tswapped: %d\n", pcap_is_swapped(pcap)); + } + } + + /* check the phys type (pretend everything is ethernet) */ + memset(ð_header,0,EH_SIZE); + switch (type = pcap_datalink(pcap)) { + case 100: + case PCAP_DLT_EN10MB: + /* OK, we understand this one */ + physname = "Ethernet"; + break; + case PCAP_DLT_IEEE802: + /* just pretend it's normal ethernet */ + physname = "Ethernet"; + break; + case PCAP_DLT_SLIP: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "Slip"; + break; + case PCAP_DLT_PPP: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "PPP or HDLC PPP"; + break; + case PCAP_DLT_FDDI: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "FDDI"; + break; + case PCAP_DLT_NULL: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "NULL"; + break; + case PCAP_DLT_ATM_RFC1483: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "ATM, LLC/SNAP encapsulated"; + break; + case PCAP_DLT_RAW: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "RAW_IP"; + break; + case PCAP_DLT_LINUX_SLL: + /* linux cooked socket type */ + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "Linux Cooked Socket"; + break; + case PCAP_DLT_IEEE802_11: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "IEEE802_11"; + break; + case PCAP_DLT_IEEE802_11_RADIO: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "IEEE802_11_RADIO"; + break; + case PCAP_DLT_PRISM2: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "PRISM2"; + break; + case PCAP_DLT_C_HDLC: + eth_header.ether_type = htons(ETHERTYPE_IP); + physname = "Cisco HDLC"; + break; + default: + fprintf(stderr,"tcptrace did not understand link format (%d)!\n",type); + fprintf(stderr, + "\t If you can give us a capture file with this link format\n\ +\t or even better, a patch to decipher this format, we shall add it in, \n\ +\t in a future release.\n"); + rewind(stdin); + return(NULL); + } + + if (debug) + fprintf(stderr,"Tcpdump format, physical type is %d (%s)\n", + type, physname); + + /* set up some stuff */ + ip_buf = MallocZ(IP_MAXPACKET); + + + return(pread_tcpdump); +} + + +/* support for writing a new pcap file */ + +void +PcapSavePacket( + char *filename, + struct ip *pip, + void *plast) +{ + static MFILE *f_savefile = NULL; + struct pcap_pkthdr phdr; + int wlen; + + if (f_savefile == NULL) { + struct pcap_file_header fhdr; + + /* try to open the file */ + if ((f_savefile = Mfopen(filename, "w")) == NULL) { + perror(filename); + exit(-1); + } + + /* make up the header info it wants */ + /* this comes from version 2.4, no pcap routine handy :-( */ + fhdr.magic = TCPDUMP_MAGIC; + fhdr.version_major = PCAP_VERSION_MAJOR; + fhdr.version_minor = PCAP_VERSION_MINOR; + + fhdr.thiszone = 0; /* don't have this info, just make it up */ + fhdr.snaplen = 1000000; /* don't have this info, just make it up */ + fhdr.linktype = PCAP_DLT_EN10MB; /* always Ethernet (10Mb) */ + fhdr.sigfigs = 0; + + /* write the header */ + Mfwrite((char *)&fhdr, sizeof(fhdr), 1, f_savefile); + + if (debug) + fprintf(stderr,"Created pcap save file '%s'\n", filename); + } + + /* create the packet header */ + /* (copying time structure in 2 steps to avoid RedHat brain damage) */ + phdr.ts.tv_sec = current_time.tv_sec; + phdr.ts.tv_usec = current_time.tv_usec; + phdr.caplen = (char *)plast - (char *)pip + 1; + phdr.caplen += EH_SIZE; /* add in the ether header */ + phdr.len = EH_SIZE + ntohs(PIP_LEN(pip)); /* probably this */ + + /* write the packet header */ + Mfwrite(&phdr, sizeof(phdr), 1, f_savefile); + + /* write a (bogus) ethernet header */ + memset(ð_header,0,EH_SIZE); + eth_header.ether_type = htons(ETHERTYPE_IP); + Mfwrite(ð_header, sizeof(eth_header), 1, f_savefile); + + /* write the IP/TCP parts */ + wlen = phdr.caplen - EH_SIZE; /* remove the ether header */ + Mfwrite(pip, wlen, 1, f_savefile); +} + + + +#else /* GROK_TCPDUMP */ + +void +PcapSavePacket( + char *filename, + struct ip *pip, + void *plast) +{ + fprintf(stderr,"\ +Sorry, packet writing only supported with the pcap library\n\ +compiled into the program (See GROK_TCPDUMP)\n"); + exit(-2); +} + + +#endif /* GROK_TCPDUMP */ diff --git a/tcpdump.h b/tcpdump.h new file mode 100644 index 0000000..534d330 --- /dev/null +++ b/tcpdump.h @@ -0,0 +1,253 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +/* Added FDDI support 9/96 Jeffrey Semke, Pittsburgh Supercomputing Center */ +static char const GCC_UNUSED rcsid_tcpdump[] = + "@(#)$Header: /usr/local/cvs/tcptrace/tcpdump.h,v 5.11 2003/11/19 14:38:08 sdo Exp $"; + + +#define SWAPLONG(y) \ +((((y)&0xff)<<24) | (((y)&0xff00)<<8) | (((y)&0xff0000)>>8) | (((y)>>24)&0xff)) +#define SWAPSHORT(y) \ + ( (((y)&0xff)<<8) | (((y)&0xff00)>>8) ) + + + +/* (from bpf.h) + * Data-link level type codes. + */ + +/* Note - Tue Feb 13, 2001 + We're having trouble with the standard DLT_type because some OS versions, + insist on renumbering these to different values. To avoid the problem, + we're hijacking the types a little and adding the PCAP_ prefix. The + constants all correspond to the "true" pcap numbers, so this should + fix the problem */ + +/* currently supported */ +#define PCAP_DLT_NULL 0 /* no link-layer encapsulation */ +#define PCAP_DLT_EN10MB 1 /* Ethernet (10Mb) */ +#define PCAP_DLT_IEEE802 6 /* IEEE 802 Networks */ +#define PCAP_DLT_SLIP 8 /* Serial Line IP */ +#define PCAP_DLT_PPP 9 /* Point-to-Point Protocol */ +#define PCAP_DLT_FDDI 10 /* FDDI */ +#define PCAP_DLT_ATM_RFC1483 11 /* LLC/SNAP encapsulated atm */ +#define PCAP_DLT_RAW 12 /* raw IP */ +#define PCAP_DLT_C_HDLC 104 /* Cisco HDLC */ +#define PCAP_DLT_IEEE802_11 105 /* IEEE 802.11 wireless */ +#define PCAP_DLT_LINUX_SLL 113 /* Linux cooked socket */ +#define PCAP_DLT_PRISM2 119 /* Prism2 raw capture header */ +#define PCAP_DLT_IEEE802_11_RADIO 127 /* 802.11 plus WLAN header */ + +/* NOT currently supported */ +/* (mostly because I don't have an example file, send me one...) */ +#define PCAP_DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */ +#define PCAP_DLT_AX25 3 /* Amateur Radio AX.25 */ +#define PCAP_DLT_PRONET 4 /* Proteon ProNET Token Ring */ +#define PCAP_DLT_CHAOS 5 /* Chaos */ +#define PCAP_DLT_ARCNET 7 /* ARCNET */ +#define PCAP_DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */ +#define PCAP_DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */ + + + +/* tcpdump file header */ +#define TCPDUMP_MAGIC 0xa1b2c3d4 + +struct dump_file_header { + u_int magic; + u_short version_major; + u_short version_minor; + int thiszone; /* gmt to local correction */ + u_int sigfigs; /* accuracy of timestamps */ + u_int snaplen; /* max length saved portion of each pkt */ + u_int linktype; /* data link type (PCAP_DLT_*) */ +}; + + +/* + * Each packet in the dump file is prepended with this generic header. + * This gets around the problem of different headers for different + * packet interfaces. + */ +struct packet_header { + u_int ts_secs; /* time stamp -- seconds */ + u_int ts_usecs; /* time stamp -- useconds */ + u_int caplen; /* length of portion present */ + u_int len; /* length of this packet (off wire) */ +}; + + +#ifdef BY_HAND +static void +swap_hdr(struct dump_file_header *pdfh) +{ + pdfh->version_major = SWAPSHORT(pdfh->version_major); + pdfh->version_minor = SWAPSHORT(pdfh->version_minor); + pdfh->thiszone = SWAPLONG(pdfh->thiszone); + pdfh->sigfigs = SWAPLONG(pdfh->sigfigs); + pdfh->snaplen = SWAPLONG(pdfh->snaplen); + pdfh->linktype = SWAPLONG(pdfh->linktype); +} + +static void +swap_phdr(struct packet_header *pph) +{ + pph->caplen = SWAPLONG(pph->caplen); + pph->len = SWAPLONG(pph->len); + pph->ts_secs = SWAPLONG(pph->ts_secs); + pph->ts_usecs = SWAPLONG(pph->ts_usecs); +} +#endif /* BY_HAND */ + + + + +/* (Courtesy Jeffrey Semke, Pittsburgh Supercomputing Center) */ +/* locate ip within FDDI according to RFC 1188 */ +static int find_ip_fddi(char* buf, int iplen) { + char* ptr, *ptr2; + int i; + u_char pattern[] = {0xAA, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00}; +#define FDDIPATTERNLEN 7 + + ptr = ptr2 = buf; + + for (i=0; i < FDDIPATTERNLEN; i++) { + ptr2 = memchr(ptr,pattern[i],(iplen - (int)(ptr - buf))); + if (!ptr2) + return (-1); + if (i && (ptr2 != ptr)) { + ptr2 = ptr2 - i - 1; + i = -1; + } + ptr = ptr2 + 1; + } + return (ptr2 - buf + 1); + +} + +/* This function determine the offset for the IP packet in an Ethernet frame */ +/* We handle two cases : straight Ethernet encapsulation or PPPoE encapsulation */ +/* Written by Yann Samama (ysamama@nortelnetworks.com) on july 18th, 2003 */ +static int find_ip_eth(char* buf) +{ + unsigned short ppp_proto_type; /* the protocol type field of the PPP header */ + unsigned short eth_proto_type; /* the protocol type field of the Ethernet header */ + int offset = -1; /* the calculated offset that this function will return */ + + memcpy(ð_proto_type, buf+12, 2); + eth_proto_type = ntohs(eth_proto_type); + switch (eth_proto_type) + { + case ETHERTYPE_IPV6: /* it's pure IPv6 over ethernet */ + offset = 14; + break; + case ETHERTYPE_IP: /* it's pure IPv4 over ethernet */ + offset = 14; + break; + case ETHERTYPE_PPPOE_SESSION: /* it's a PPPoE session */ + memcpy(&ppp_proto_type, buf+20, 2); + ppp_proto_type = ntohs(ppp_proto_type); + if (ppp_proto_type == 0x0021) /* it's IP over PPPoE */ + offset = PPPOE_SIZE; + break; + default: /* well, this is not an IP packet */ + offset = -1; + break; + } + return offset; +} + + + +/* This function determine the offset for the IP packet in a PPP or HDLC PPP frame */ +/* Written by Yann Samama (ysamama@nortelnetworks.com) on june 19th, 2003 */ +static int find_ip_ppp(char* buf) +{ + unsigned char ppp_byte0; /* the first byte of the PPP frame */ + unsigned short ppp_proto_type; /* the protocol type field of the PPP header */ + int offset = -1; /* the calculated offset that this function will return */ + + memcpy(&ppp_byte0, buf, 1); + switch (ppp_byte0) + { + case 0xff: /* It is HDLC PPP encapsulation (2 bytes for HDLC and 2 bytes for PPP) */ + memcpy(&ppp_proto_type, buf+2, 2); + ppp_proto_type = ntohs(ppp_proto_type); + if (ppp_proto_type == 0x21) /* That means HDLC PPP is encapsulating IP */ + offset = 4; + else /* That means PPP is *NOT* encapsulating IP */ + offset = -1; + break; + + case 0x21: /* It is raw PPP encapsulation of IP with compressed (1 byte) protocol field */ + offset = 1; + break; + + case 0x00: /* It is raw PPP encapsulation */ + memcpy(&ppp_proto_type, buf, 2); + ppp_proto_type = ntohs(ppp_proto_type); + if (ppp_proto_type == 0x21) /* It is raw PPP encapsulation of IP with uncompressed (2 bytes) protocol field */ + offset = 2; + else /* That means PPP is *NOT* encapsulating IP */ + offset = -1; + break; + + default: /* There is certainly not an IP packet there ...*/ + offset = -1; + break; + } + return offset; +} diff --git a/tcptrace.c b/tcptrace.c new file mode 100644 index 0000000..e84b637 --- /dev/null +++ b/tcptrace.c @@ -0,0 +1,2799 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/tcptrace.c,v 5.59 2004/10/01 21:42:34 mramadas Exp $"; + +#include "file_formats.h" +#include "modules.h" +#include "version.h" + + +/* version information */ +char *tcptrace_version = VERSION; + + +/* local routines */ +static void Args(void); +static void ModulesPerNonTCPUDP(struct ip *pip, void *plast); +static void ModulesPerPacket(struct ip *pip, tcp_pair *ptp, void *plast); +static void ModulesPerUDPPacket(struct ip *pip, udp_pair *pup, void *plast); +static void ModulesPerConn(tcp_pair *ptp); +static void ModulesPerUDPConn(udp_pair *pup); +static void ModulesPerFile(char *filename); +static void DumpFlags(void); +static void ExplainOutput(void); +static void FinishModules(void); +static void Formats(void); +static void Help(char *harg); +static void Hints(void); +static void ListModules(void); +static void UsageModules(void); +static void LoadModules(int argc, char *argv[]); +static void CheckArguments(int *pargc, char *argv[]); +static void ParseArgs(char *argsource, int *pargc, char *argv[]); +static int ParseExtendedOpt(char *argsource, char *arg); +static void ParseExtendedBool(char *argsource, char *arg); +static void ParseExtendedVar(char *argsource, char *arg); +static void ProcessFile(char *filename); +static void QuitSig(int signum); +static void Usage(void); +static void BadArg(char *argsource, char *format, ...); +static void Version(void); +static char *FileToBuf(char *filename); + + +/* option flags and default values */ +Bool colorplot = TRUE; +Bool dump_rtt = FALSE; +Bool graph_rtt = FALSE; +Bool graph_tput = FALSE; +Bool graph_tsg = FALSE; +Bool graph_segsize = FALSE; +Bool graph_owin = FALSE; +Bool graph_tline = FALSE; +Bool hex = TRUE; +Bool ignore_non_comp = FALSE; +Bool dump_packet_data = FALSE; +Bool print_rtt = FALSE; +Bool print_owin = FALSE; +Bool printbrief = TRUE; +Bool printsuppress = FALSE; +Bool printem = FALSE; +Bool printallofem = FALSE; +Bool printticks = FALSE; +Bool warn_ooo = FALSE; +Bool warn_printtrunc = FALSE; +Bool warn_printbadmbz = FALSE; +Bool warn_printhwdups = FALSE; +Bool warn_printbadcsum = FALSE; +Bool warn_printbad_syn_fin_seq = FALSE; +Bool docheck_hw_dups = TRUE; +Bool save_tcp_data = FALSE; +Bool graph_time_zero = FALSE; +Bool graph_seq_zero = FALSE; +Bool print_seq_zero = FALSE; +Bool graph_zero_len_pkts = TRUE; +Bool plot_tput_instant = TRUE; +Bool filter_output = FALSE; +Bool show_title = TRUE; +Bool show_rwinline = TRUE; +Bool do_udp = FALSE; +Bool resolve_ipaddresses = TRUE; +Bool resolve_ports = TRUE; +Bool verify_checksums = FALSE; +Bool triple_dupack_allows_data = FALSE; +Bool run_continuously = FALSE; +Bool xplot_all_files = FALSE; +Bool conn_num_threshold = FALSE; +Bool ns_hdrs = TRUE; +Bool dup_ack_handling = TRUE; +Bool csv = FALSE; +Bool tsv = FALSE; +u_long remove_live_conn_interval = REMOVE_LIVE_CONN_INTERVAL; +u_long nonreal_live_conn_interval = NONREAL_LIVE_CONN_INTERVAL; +u_long remove_closed_conn_interval = REMOVE_CLOSED_CONN_INTERVAL; +u_long update_interval = UPDATE_INTERVAL; +u_long max_conn_num = MAX_CONN_NUM; +int debug = 0; +u_long beginpnum = 0; +u_long endpnum = 0; +u_long pnum = 0; +u_long ctrunc = 0; +u_long bad_ip_checksums = 0; +u_long bad_tcp_checksums = 0; +u_long bad_udp_checksums = 0; + +/* extended variables with values */ +char *output_file_dir = NULL; +char *output_file_prefix = NULL; +char *xplot_title_prefix = NULL; +char *xplot_args = NULL; +char *sv = NULL; +/* globals */ +struct timeval current_time; +int num_modules = 0; +char *ColorNames[NCOLORS] = +{"green", "red", "blue", "yellow", "purple", "orange", "magenta", "pink"}; +char *comment; + +/* locally global variables */ +static u_long filesize = 0; +char **filenames = NULL; +int num_files = 0; +u_int numfiles; +char *cur_filename; +static char *progname; +char *output_filename = NULL; +static char *update_interval_st = NULL; +static char *max_conn_num_st = NULL; +static char *live_conn_interval_st = NULL; +static char *nonreal_conn_interval_st = NULL; +static char *closed_conn_interval_st = NULL; + +/* for elapsed processing time */ +struct timeval wallclock_start; +struct timeval wallclock_finished; + + +/* first and last packet timestamp */ +timeval first_packet = {0,0}; +timeval last_packet = {0,0}; + + +/* extended boolean options */ +static struct ext_bool_op { + char *bool_optname; + Bool *bool_popt; + Bool bool_default; + char *bool_descr; +} extended_bools[] = { + {"showsacks", &show_sacks, TRUE, + "show SACK blocks on time sequence graphs"}, + {"showrexmit", &show_rexmit, TRUE, + "mark retransmits on time sequence graphs"}, + {"showoutorder", &show_out_order, TRUE, + "mark out-of-order on time sequence graphs"}, + {"showzerowindow", &show_zero_window, TRUE, + "mark zero windows on time sequence graphs"}, + {"showurg", &show_urg, TRUE, + "mark packets with URGENT bit set on the time sequence graphs"}, + {"showrttdongles", &show_rtt_dongles, TRUE, + "mark non-RTT-generating ACKs with special symbols"}, + {"showdupack3", &show_triple_dupack, TRUE, + "mark triple dupacks on time sequence graphs"}, + {"showzerolensegs", &graph_zero_len_pkts, TRUE, + "show zero length packets on time sequence graphs"}, + {"showzwndprobes", &show_zwnd_probes, TRUE, + "show zero window probe packets on time sequence graphs"}, + {"showtitle", &show_title, TRUE, + "show title on the graphs"}, + {"showrwinline", &show_rwinline, TRUE, + "show yellow receive-window line in owin graphs"}, + {"res_addr", &resolve_ipaddresses, TRUE, + "resolve IP addresses into names (may be slow)"}, + {"res_port", &resolve_ports, TRUE, + "resolve port numbers into names"}, + {"checksum", &verify_checksums, TRUE, + "verify IP and TCP checksums"}, + {"dupack3_data", &triple_dupack_allows_data, TRUE, + "count a duplicate ACK carrying data as a triple dupack"}, + {"check_hwdups", &docheck_hw_dups, TRUE, + "check for 'hardware' dups"}, + {"warn_ooo", &warn_ooo, TRUE, + "print warnings when packets timestamps are out of order"}, + {"warn_printtrunc", &warn_printtrunc, TRUE, + "print warnings when packets are too short to analyze"}, + {"warn_printbadmbz", &warn_printbadmbz, TRUE, + "print warnings when MustBeZero TCP fields are NOT 0"}, + {"warn_printhwdups", &warn_printhwdups, TRUE, + "print warnings for hardware duplicates"}, + {"warn_printbadcsum", &warn_printbadcsum, TRUE, + "print warnings when packets with bad checksums"}, + {"warn_printbad_syn_fin_seq", &warn_printbad_syn_fin_seq, TRUE, + "print warnings when SYNs or FINs rexmitted with different sequence numbers"}, + {"dump_packet_data", &dump_packet_data, TRUE, + "print all packets AND dump the TCP/UDP data"}, + {"continuous", &run_continuously, TRUE, + "run continuously and don't provide a summary"}, + {"print_seq_zero", &print_seq_zero, TRUE, + "print sequence numbers as offset from initial sequence number"}, + {"limit_conn_num", &conn_num_threshold, TRUE, + "limit the maximum number of connections kept at a time in real-time mode"}, + {"xplot_all_files", &xplot_all_files, TRUE, + "display all generated xplot files at the end"}, + {"ns_hdrs", &ns_hdrs, TRUE, + "assume that ns has the useHeaders_flag true (uses IP+TCP headers)"}, + {"csv", &csv, TRUE, + "display the long output as comma separated values"}, + {"tsv", &tsv, TRUE, + "display the long output as tab separated values"}, + {"turn_off_BSD_dupack", &dup_ack_handling, FALSE, + "turn of the BSD version of the duplicate ack handling"}, + +}; +#define NUM_EXTENDED_BOOLS (sizeof(extended_bools) / sizeof(struct ext_bool_op)) + + +/* extended variable verification routines */ +static u_long VerifyPositive(char *varname, char *value); +static void VerifyUpdateInt(char *varname, char *value); +static void VerifyMaxConnNum(char *varname, char *value); +static void VerifyLiveConnInt(char *varname, char *value); +static void VerifyNonrealLiveConnInt(char *varname, char*value); +static void VerifyClosedConnInt(char *varname, char *value); + +/* extended variable options */ +/* they must all be strings */ +static struct ext_var_op { + char *var_optname; /* what it's called when you set it */ + char **var_popt; /* the variable itself */ + void (*var_verify)(char *varname, + char *value); + /* function to call to verify that the + value is OK (if non-null) */ + char *var_descr; /* variable description */ +} extended_vars[] = { + {"output_dir", &output_file_dir, NULL, + "directory where all output files are placed"}, + {"output_prefix", &output_file_prefix, NULL, + "prefix all output files with this string"}, + {"xplot_title_prefix", &xplot_title_prefix, NULL, + "prefix to place in the titles of all xplot files"}, + {"update_interval", &update_interval_st, VerifyUpdateInt, + "time interval for updates in real-time mode"}, + {"max_conn_num", &max_conn_num_st, VerifyMaxConnNum, + "maximum number of connections to keep at a time in real-time mode"}, + {"remove_live_conn_interval", &live_conn_interval_st, VerifyLiveConnInt, + "idle time after which an open connection is removed in real-time mode"}, + {"endpoint_reuse_interval", &nonreal_conn_interval_st, VerifyNonrealLiveConnInt, + "time interval of inactivity after which an open connection is considered closed"}, + {"remove_closed_conn_interval", &closed_conn_interval_st, VerifyClosedConnInt, + "time interval after which a closed connection is removed in real-time mode"}, + {"xplot_args", &xplot_args, NULL, + "arguments to pass to xplot, if we are calling xplot from here"}, + {"sv", &sv, NULL, + "separator to use for long output with -separated-values"}, + +}; +#define NUM_EXTENDED_VARS (sizeof(extended_vars) / sizeof(struct ext_var_op)) + +// Extended option verification routines +static void Ignore(char *argsource, char *opt); +static void GrabOnly(char *argsource, char *opt); +static void IgnoreUDP(char *argsource, char *opt); +static void GrabOnlyUDP(char *argsource, char *opt); + +// Extended options to allow --iudp and --oudp to be able to +// specifically ignore or output UDP connections. +// For sake of clarity, options --itcp and --otcp shall also be added +// to do the same job done by -i and -o options currently. +static struct ext_opt { + char *opt_name; // what it is called + void (*opt_func) (char *argsource, char *opt); + char *opt_descr; +} extended_options[] = { + {"iTCP",Ignore,"ignore specific TCP connections, same as -i"}, + {"oTCP",GrabOnly,"only specific TCP connections, same as -o"}, + {"iUDP",IgnoreUDP,"ignore specific UDP connections"}, + {"oUDP",GrabOnlyUDP,"only specific UDP connections"} + +}; +#define NUM_EXTENDED_OPTIONS (sizeof(extended_options)/sizeof(struct ext_opt)) + +static void +Help( + char *harg) +{ + if (harg && *harg && strncmp(harg,"arg",3) == 0) { + Args(); + } else if (harg && *harg && strncmp(harg,"xarg",3) == 0) { + UsageModules(); + } else if (harg && *harg && strncmp(harg,"filt",4) == 0) { + HelpFilter(); + } else if (harg && *harg && strncmp(harg,"conf",4) == 0) { + Formats(); + CompFormats(); + ListModules(); + } else if (harg && *harg && strncmp(harg,"out",3) == 0) { + ExplainOutput(); + } else if (harg && *harg && + ((strncmp(harg,"hint",4) == 0) || (strncmp(harg,"int",3) == 0))) { + Hints(); + } else { + fprintf(stderr,"\ +For help on specific topics, try: \n\ + -hargs tell me about the program's arguments \n\ + -hxargs tell me about the module arguments \n\ + -hconfig tell me about the configuration of this binary \n\ + -houtput explain what the output means \n\ + -hfilter output filtering help \n\ + -hhints usage hints \n"); + } + + fprintf(stderr,"\n"); + Version(); + exit(0); +} + + + +static void +BadArg( + char *argsource, + char *format, + ...) +{ + va_list ap; + + fprintf(stderr,"Argument error"); + if (argsource) + fprintf(stderr," (from %s)", argsource); + fprintf(stderr,": "); + + va_start(ap,format); + vfprintf(stderr,format,ap); + va_end(ap); + + Usage(); +} + + + +static void +Usage(void) +{ + fprintf(stderr,"usage: %s [args...]* dumpfile [more files]*\n", + progname); + + Help(NULL); + + exit(-2); +} + + +static void +ExplainOutput(void) +{ + fprintf(stderr,"\n\ +OK, here's a sample output (using -l) and what each line means:\n\ +\n\ +1 connection traced:\n\ + #### how many distinct TCP connections did I see pieces of\n\ +13 packets seen, 13 TCP packets traced\n\ + #### how many packets did I see, how many did I trace\n\ +connection 1:\n\ + #### I'll give you a separate block for each connection,\n\ + #### here's the first one\n\ + host a: 132.235.3.133:1084\n\ + host b: 132.235.1.2:79 \n\ + #### Each connection has two hosts. To shorten output\n\ + #### and file names, I just give them letters.\n\ + #### Connection 1 has hosts 'a' and 'b', connection 2\n\ + #### has hosts 'c' and 'd', etc.\n\ + complete conn: yes\n\ + #### Did I see the starting FINs and closing SYNs? Was it reset?\n\ + first packet: Wed Jul 20 16:40:30.688114\n\ + #### At what time did I see the first packet from this connection?\n\ + last packet: Wed Jul 20 16:40:41.126372\n\ + #### At what time did I see the last packet from this connection?\n\ + elapsed time: 0:00:10.438257\n\ + #### Elapsed time, first packet to last packet\n\ + total packets: 13\n\ + #### total packets this connection\n\ +\n\ + #### ... Now, there's two columns of output (TCP is\n\ + #### duplex) one for each direction of packets.\n\ + #### I'll just explain one column...\n\ + a->b: b->a:\n\ + total packets: 7 total packets: 6\n\ + #### packets sent in each direction\n\ + ack pkts sent: 6 ack pkts sent: 6\n\ + #### how many of the packets contained a valid ACK\n\ + unique bytes sent: 11 unique bytes sent: 1152\n\ + #### how many data bytes were sent (not counting retransmissions)\n\ + actual data pkts: 2 actual data pkts: 1\n\ + #### how many packets did I see that contained any amount of data\n\ + actual data bytes: 11 actual data bytes: 1152\n\ + #### how many data bytes did I see (including retransmissions)\n\ + rexmt data pkts: 0 rexmt data pkts: 0\n\ + #### how many data packets were retransmissions\n\ + rexmt data bytes: 0 rexmt data bytes: 0\n\ + #### how many bytes were retransmissions\n\ + outoforder pkts: 0 outoforder pkts: 0\n\ + #### how many packets were out of order (or I didn't see the first transmit!)\n\ + SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1\n\ + #### how many SYNs and FINs were sent in each direction\n\ + mss requested: 1460 bytes mss requested: 1460 bytes\n\ + #### What what the requested Maximum Segment Size\n\ + max segm size: 9 bytes max segm size: 1152 bytes\n\ + #### What was the largest segment that I saw\n\ + min segm size: 2 bytes min segm size: 1152 bytes\n\ + #### What was the smallest segment that I saw\n\ + avg segm size: 5 bytes avg segm size: 1150 bytes\n\ + #### What was the average segment that I saw\n\ + max win adv: 4096 bytes max win adv: 4096 bytes\n\ + #### What was the largest window advertisement that I sent\n\ + min win adv: 4096 bytes min win adv: 4085 bytes\n\ + #### What was the smallest window advertisement that I sent\n\ + zero win adv: 0 times zero win adv: 0 times\n\ + #### How many times did I sent a zero-sized window advertisement\n\ + avg win adv: 4096 bytes avg win adv: 4092 bytes\n\ + #### What was the average window advertisement that I sent\n\ + initial window: 9 bytes initial window: 1152 bytes\n\ + #### How many bytes in the first window (before the first ACK)\n\ + initial window: 1 pkts initial window: 1 pkts\n\ + #### How many packets in the first window (before the first ACK)\n\ + throughput: 1 Bps throughput: 110 Bps\n\ + #### What was the data throughput (Bytes/second)\n\ + ttl stream length: 11 bytes ttl stream length: 1152 bytes\n\ + #### What was the total length of the stream (from FIN to SYN)\n\ + #### Note that this might be larger than unique data bytes because\n\ + #### I might not have captured every segment!!!\n\ + missed data: 0 bytes missed data: 0 bytes\n\ + #### How many bytes of data were in the stream that I didn't see?\n\ + RTT samples: 2 RTT samples: 1\n\ + #### How many ACK's could I use to get an RTT sample\n\ + RTT min: 45.9 ms RTT min: 19.4 ms\n\ + #### What was the smallest RTT that I saw\n\ + RTT max: 199.0 ms RTT max: 19.4 ms\n\ + #### What was the largest RTT that I saw\n\ + RTT avg: 122.5 ms RTT avg: 19.4 ms\n\ + #### What was the average RTT that I saw\n\ + RTT stdev: 0.0 ms RTT stdev: 0.0 ms\n\ + #### What was the standard deviation of the RTT that I saw\n\ + segs cum acked: 0 segs cum acked: 0\n\ + #### How many segments were cumulatively ACKed (the ACK that I saw\n\ + #### was for a later segment. Might be a lost ACK or a delayed ACK\n\ + duplicate acks: 2 duplicate acks: 0\n\ + #### How many duplicate ACKs did I see\n\ + max # retrans: 0 max # retrans: 0\n\ + #### What was the most number of times that a single segment\n\ + #### was retransmitted\n\ + min retr time: 0.0 ms min retr time: 0.0 ms\n\ + #### What was the minimum time between retransmissions of a\n\ + #### single segment\n\ + max retr time: 0.0 ms max retr time: 0.0 ms\n\ + #### What was the maximum time between retransmissions of a\n\ + #### single segment\n\ + avg retr time: 0.0 ms avg retr time: 0.0 ms\n\ + #### What was the average time between retransmissions of a\n\ + #### single segment\n\ + sdv retr time: 0.0 ms sdv retr time: 0.0 ms\n\ + #### What was the stdev between retransmissions of a\n\ + #### single segment\n\ +"); +} + + + +static void +Hints(void) +{ + fprintf(stderr,"\n\ +Hints (in no particular order):\n\ +For the first run through a file, just use \"tcptrace file\" to see\n\ + what's there\n\ +For large files, use \"-t\" and I'll give you progress feedback as I go\n\ +If there's a lot of hosts, particularly if they're non-local, use \"-n\"\n\ + to disable address to name mapping which can be very slow\n\ +If you're graphing results and only want the information for a few conns,\n\ + from a large file, use the -o flag, as in \"tcptrace -o3,4,5 -o8-11\" to\n\ + only process connections 3,4,5, and 8 through 11.\n\ + Alternately, the '-oFILE' option allows you to write the connection\n\ + list into a file using some other program (or the file PF from -f)\n\ +Make sure the snap length in the packet grabber is big enough.\n\ + Ethernet headers are 14 bytes, as are several others\n\ + IPv4 headers are at least 20 bytes, but can be as large as 64 bytes\n\ + TCP headers are at least 20 bytes, but can be as large as 64 bytes\n\ + Therefore, if you want to be SURE that you see all of the options,\n\ + make sure that you set the snap length to 14+64+64=142 bytes. If\n\ + I'm not sure, I usually use 128 bytes. If you're SURE that there are no\n\ + options (TCP usually has some), you still need at least 54 bytes.\n\ +Compress trace files using gzip, I can uncompress them on the fly\n\ +Stuff arguments that you always use into either the tcptrace resource file\n\ + ($HOME/%s) or the envariable %s. If you need to turn\n\ + them off again from the command line, you can use\n\ + the \"+\" option flag.\n\ +", TCPTRACE_RC_FILE, TCPTRACE_ENVARIABLE); +} + + +static void +Args(void) +{ + int i; + + fprintf(stderr,"\n\ +Note: these options are first read from the file $HOME/%s\n\ + (if it exists), and then from the environment variable %s\n\ + (if it exists), and finally from the command line\n\ +", TCPTRACE_RC_FILE, TCPTRACE_ENVARIABLE); + fprintf(stderr,"\n\ +Output format options\n\ + -b brief output format\n\ + -l long output format\n\ + -r print rtt statistics (slower for large files)\n\ + -W report on estimated congestion window (not generally useful)\n\ + -q no output (if you just want modules output)\n\ +Graphing options\n\ + -T create throughput graph[s], (average over 10 segments, see -A)\n\ + -R create rtt sample graph[s]\n\ + -S create time sequence graph[s]\n\ + -N create owin graph[s] (_o_utstanding data on _N_etwork)\n\ + -F create segsize graph[s]\n\ + -L create time line graph[s]\n\ + -G create ALL graphs\n\ +Output format detail options\n\ + -D print in decimal\n\ + -X print in hexadecimal\n\ + -n don't resolve host or service names (much faster)\n\ + -s use short names (list \"picard.cs.ohiou.edu\" as just \"picard\")\n\ +Connection filtering options\n\ + -iN ignore connection N (can use multiple times)\n\ + -oN[-M] only connection N (or N through M). Arg can be used many times.\n\ + If N is a file rather than a number, read list from file instead.\n\ + -c ignore non-complete connections (didn't see syn's and fin's)\n\ + -BN first segment number to analyze (default 1)\n\ + -EN last segment number to analyze (default last in file)\n\ +Graphing detail options\n\ + -C produce color plot[s]\n\ + -M produce monochrome (b/w) plot[s]\n\ + -AN Average N segments for throughput graphs, default is 10\n\ + -z zero axis options\n\ + -z plot time axis from 0 rather than wall clock time (backward compat)\n\ + -zx plot time axis from 0 rather than wall clock time\n\ + -zy plot sequence numbers from 0 (time sequence graphs only)\n\ + -zxy plot both axes from 0\n\ + -y omit the (yellow) instantaneous throughput points in tput graph\n\ +Misc options\n\ + -Z dump raw rtt sample times to file[s]\n\ + -p print all packet contents (can be very long)\n\ + -P print packet contents for selected connections\n\ + -t 'tick' off the packet numbers as a progress indication\n\ + -fEXPR output filtering (see -hfilter)\n\ + -v print version information and exit\n\ + -w print various warning messages\n\ + -d whistle while you work (enable debug, use -d -d for more output)\n\ + -e extract contents of each TCP stream into file\n\ + -h print help messages\n\ + -u perform (minimal) UDP analysis too\n\ + -Ofile dump matched packets to tcpdump file 'file'\n\ + +[v] reverse the setting of the -[v] flag (for booleans)\n\ +Dump File Names\n\ + Anything else in the arguments is taken to be one or more filenames.\n\ + The files can be compressed, see compress.h for configuration.\n\ + If the dump file name is 'stdin', then we read from standard input\n\ + rather than from a file\n\ +"); + + fprintf(stderr,"\nExtended boolean options\n"); + fprintf(stderr," (unambiguous prefixes also work)\n"); + for (i=0; i < NUM_EXTENDED_BOOLS; ++i) { + struct ext_bool_op *pbop = &extended_bools[i]; + fprintf(stderr," --%-20s %s %s\n", + pbop->bool_optname, pbop->bool_descr, + (*pbop->bool_popt == pbop->bool_default)?"(default)":""); + fprintf(stderr," --no%-18s DON'T %s %s\n", + pbop->bool_optname, pbop->bool_descr, + (*pbop->bool_popt != pbop->bool_default)?"(default)":""); + } + + fprintf(stderr,"\nExtended variable options\n"); + fprintf(stderr," (unambiguous prefixes also work)\n"); + for (i=0; i < NUM_EXTENDED_VARS; ++i) { + char buf[256]; /* plenty large, but checked below with strncpy */ + struct ext_var_op *pvop = &extended_vars[i]; + strncpy(buf,pvop->var_optname,sizeof(buf)-10); + strcat(buf,"=\"STR\""); + fprintf(stderr," --%-20s %s (default: '%s')\n", + buf, + pvop->var_descr, + (*pvop->var_popt)?*pvop->var_popt:""); + } + + fprintf(stderr,"\n\ +Module options\n\ + -xMODULE_SPECIFIC (see -hxargs for details)\n\ +"); +} + + + +static void +Version(void) +{ + fprintf(stderr,"Version: %s\n", tcptrace_version); + fprintf(stderr," Compiled by '%s' at '%s' on machine '%s'\n", + built_bywhom, built_when, built_where); +} + + +static void +Formats(void) +{ + int i; + + fprintf(stderr,"Supported Input File Formats:\n"); + for (i=0; i < NUM_FILE_FORMATS; ++i) + fprintf(stderr,"\t%-15s %s\n", + file_formats[i].format_name, + file_formats[i].format_descr); + fprintf(stderr, + "Try the tethereal program from the ethereal project to see if\n" + "it can understand this capture format. If so, you may use \n" + "tethereal to convert it to a tcpdump format file as in :\n" + "\t tethereal -r inputfile -w outputfile\n" + "and feed the outputfile to tcptrace\n"); +} + + +static void +ListModules(void) +{ + int i; + + fprintf(stderr,"Included Modules:\n"); + for (i=0; i < NUM_MODULES; ++i) { + fprintf(stderr," %-15s %s\n", + modules[i].module_name, modules[i].module_descr); +/* if (modules[i].module_usage) { */ +/* fprintf(stderr," usage:\n"); */ +/* (*modules[i].module_usage)(); */ +/* } */ + } +} + + +static void +UsageModules(void) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + fprintf(stderr," Module %s:\n", modules[i].module_name); + if (modules[i].module_usage) { + fprintf(stderr," usage:\n"); + (*modules[i].module_usage)(); + } + } +} + + + +int +main( + int argc, + char *argv[]) +{ + int i; + double etime; + + if (argc == 1) + Help(NULL); + + /* initialize internals */ + trace_init(); + udptrace_init(); + plot_init(); + + /* let modules start first */ + LoadModules(argc,argv); + + /* parse the flags */ + CheckArguments(&argc,argv); + + /* Used with -separated-values, + * prints a '#' before each header line if --csv/--tsv is requested. + */ + comment = (char *)malloc(sizeof(char *) * 2); + memset(comment, 0, sizeof(comment)); + if(csv || tsv || (sv != NULL)) + snprintf(comment, sizeof(comment), "#"); + + /* optional UDP */ +// if (do_udp) +// udptrace_init(); + + // if (run_continuously) { + // trace_init(); + //} + + /* get starting wallclock time */ + gettimeofday(&wallclock_start, NULL); + + num_files = argc; + + //Sriharsha Gangam + /* + printf("%s%d arg%s remaining, starting with '%s'\n", + comment, + num_files, + num_files>1?"s":"", + filenames[0]); + */ + + + + if (debug>1) + DumpFlags(); + + /* knock, knock... */ + //Sriharsha Gangam + //printf("%s%s\n\n", comment, VERSION); + + /* read each file in turn */ + numfiles = argc; + for (i=0; i < argc; ++i) { + if (debug || (numfiles > 1)) { + if (argc > 1) + printf("%sRunning file '%s' (%d of %d)\n", comment, filenames[i], i+1, numfiles); + else + printf("%sRunning file '%s'\n", comment, filenames[i]); + } + + /* do the real work */ + ProcessFile(filenames[i]); + } + + /* clean up output */ + if (printticks) + printf("\n"); + + /* get ending wallclock time */ + gettimeofday(&wallclock_finished, NULL); + + /* general output */ + //Sriharsha Gangam + /* + fprintf(stdout, "%s%lu packets seen, %lu TCP packets traced", comment, pnum, tcp_trace_count); + if (do_udp) + fprintf(stdout,", %lu UDP packets traced", udp_trace_count); + fprintf(stdout,"\n"); + */ + + /* processing time */ + etime = elapsed(wallclock_start,wallclock_finished); + //Sriharsha Gangam + /* + fprintf(stdout, "%selapsed wallclock time: %s, %d pkts/sec analyzed\n", + comment, + elapsed2str(etime), + (int)((double)pnum/(etime/1000000))); + + */ + /* actual tracefile times */ + etime = elapsed(first_packet,last_packet); + //Sriharsha Gangam + /* + fprintf(stdout,"%strace %s elapsed time: %s\n", + comment, + (num_files==1)?"file":"files", + elapsed2str(etime)); + */ + if (debug) { + fprintf(stdout,"%s\tfirst packet: %s\n", comment, ts2ascii(&first_packet)); + fprintf(stdout,"%s\tlast packet: %s\n", comment, ts2ascii(&last_packet)); + } + if (verify_checksums) { + fprintf(stdout,"%sbad IP checksums: %ld\n", comment, bad_ip_checksums); + fprintf(stdout,"%sbad TCP checksums: %ld\n", comment, bad_tcp_checksums); + if (do_udp) + fprintf(stdout,"%sbad UDP checksums: %ld\n", comment, bad_udp_checksums); + } + + /* close files, cleanup, and etc... */ + trace_done(); + udptrace_done(); + + FinishModules(); + plotter_done(); + + exit(0); +} + + +static void +ProcessFile( + char *filename) +{ + pread_f *ppread; + int ret; + struct ip *pip; + struct tcphdr *ptcp; + int phystype; + void *phys; /* physical transport header */ + tcp_pair *ptp; + int fix; + int len; + int tlen; + void *plast; + struct stat str_stat; + long int location = 0; + u_long fpnum = 0; + Bool is_stdin = 0; + static int file_count = 0; + + /* share the current file name */ + cur_filename = filename; + +#ifdef __WIN32 + /* If the file is compressed, exit (Windows version does not support compressed dump files) */ + if (CompOpenHeader(filename) == (FILE *)-1) { + exit(-1); + } +#else + /* open the file header */ + if (CompOpenHeader(filename) == NULL) { + exit(-1); + } +#endif /* __WIN32 */ + + /* see how big the file is */ + if (FileIsStdin(filename)) { + filesize = 1; + is_stdin = 1; + } else { + if (stat(filename,&str_stat) != 0) { + perror("stat"); + exit(1); + } + filesize = str_stat.st_size; + } + + /* determine which input file format it is... */ + ppread = NULL; + if (debug>1) + printf("NUM_FILE_FORMATS: %u\n", (unsigned)NUM_FILE_FORMATS); + for (fix=0; fix < NUM_FILE_FORMATS; ++fix) { + if (debug) + fprintf(stderr,"Checking for file format '%s' (%s)\n", + file_formats[fix].format_name, + file_formats[fix].format_descr); + rewind(stdin); + ppread = (*file_formats[fix].test_func)(filename); + if (ppread) { + if (debug) + fprintf(stderr,"File format is '%s' (%s)\n", + file_formats[fix].format_name, + file_formats[fix].format_descr); + break; + } else if (debug) { + fprintf(stderr,"File format is NOT '%s'\n", + file_formats[fix].format_name); + } + } + + /* if we haven't found a reader, then we can't continue */ + if (ppread == NULL) { + int count = 0; + + fprintf(stderr,"Unknown input file format\n"); + Formats(); + + /* check for ASCII, a common problem */ + rewind(stdin); + while (1) { + int ch; + if ((ch = getchar()) == EOF) + break; + if (!isprint(ch)) + break; + if (++count >= 20) { + /* first 20 are all ASCII */ + fprintf(stderr,"\ +\n\nHmmmm.... this sure looks like an ASCII input file to me.\n\ +The first %d characters are all printable ASCII characters. All of the\n\ +packet grabbing formats that I understand output BINARY files that I\n\ +like to read. Could it be that you've tried to give me the readable \n\ +output instead? For example, with tcpdump, you need to use:\n\ +\t tcpdump -w outfile.dmp ; tcptrace outfile.dmp\n\ +rather than:\n\ +\t tcpdump > outfile ; tcptrace outfile\n\n\ +", count); + exit(1); + } + } + + exit(1); + } + +#ifndef __WIN32 + /* open the file for processing */ + if (CompOpenFile(filename) == NULL) { + exit(-1); + } +#endif /* __WIN32 */ + + /* how big is it.... (possibly compressed) */ + if (debug) { + /* print file size */ + printf("Trace file size: %lu bytes\n", filesize); + } + location = 0; + + /* inform the modules, if they care... */ + ModulesPerFile(filename); + + /* count the files */ + ++file_count; + + + /* read each packet */ + while (1) { + /* read the next packet */ + ret = (*ppread)(¤t_time,&len,&tlen,&phys,&phystype,&pip,&plast); + if (ret == 0) /* EOF */ + break; + + /* update global and per-file packet counters */ + ++pnum; /* global */ + ++fpnum; /* local to this file */ + + + /* in case only a subset analysis was requested */ + if (pnum < beginpnum) continue; + if ((endpnum != 0) && (pnum > endpnum)) { + --pnum; + --fpnum; + break; + } + + + /* check for re-ordered packets */ + if (!ZERO_TIME(&last_packet)) { + if (elapsed(last_packet , current_time) < 0) { + /* out of order */ + if ((file_count > 1) && (fpnum == 1)) { + fprintf(stderr, "\ +Warning, first packet in file %s comes BEFORE the last packet\n\ +in the previous file. That will likely confuse the program, please\n\ +order the files in time if you have trouble\n", filename); + } else { + static int warned = 0; + + if (warn_ooo) { + fprintf(stderr, "\ +Warning, packet %ld in file %s comes BEFORE the previous packet\n\ +That will likely confuse the program, so be careful!\n", + fpnum, filename); + } else if (!warned) { + fprintf(stderr, "\ +Packets in file %s are out of order.\n\ +That will likely confuse the program, so be careful!\n", filename); + } + warned = 1; + } + + } + } + + + /* install signal handler */ + if (fpnum == 1) { + signal(SIGINT,QuitSig); + } + + + /* progress counters */ + if (!printem && !printallofem && printticks) { + if (CompIsCompressed()) + location += tlen; /* just guess... */ + if (((fpnum < 100) && (fpnum % 10 == 0)) || + ((fpnum < 1000) && (fpnum % 100 == 0)) || + ((fpnum < 10000) && (fpnum % 1000 == 0)) || + ((fpnum >= 10000) && (fpnum % 10000 == 0))) { + + unsigned frac; + + if (debug) + fprintf(stderr, "%s: ", cur_filename); + if (is_stdin) { + fprintf(stderr ,"%lu", fpnum); + } else if (CompIsCompressed()) { + frac = location/(filesize/100); + if (frac <= 100) + fprintf(stderr ,"%lu ~%u%% (compressed)", fpnum, frac); + else + fprintf(stderr ,"%lu ~100%% + %u%% (compressed)", fpnum, frac-100); + } else { + location = ftell(stdin); + frac = location/(filesize/100); + + fprintf(stderr ,"%lu %u%%", fpnum, frac); + } + /* print elapsed time */ + { + double etime = elapsed(first_packet,last_packet); + fprintf(stderr," (%s)", elapsed2str(etime)); + } + + /* carriage return (but not newline) */ + fprintf(stderr ,"\r"); + } + fflush(stderr); + } + + + /* quick sanity check, better be an IPv4/v6 packet */ + if (!PIP_ISV4(pip) && !PIP_ISV6(pip)) { + static Bool warned = FALSE; + + if (!warned) { + fprintf(stderr, + "Warning: saw at least one non-ip packet\n"); + warned = TRUE; + } + + if (debug) + fprintf(stderr, + "Skipping packet %lu, not an IPv4/v6 packet (version:%d)\n", + pnum,IP_V(pip)); + continue; + } + + /* another sanity check, only understand ETHERNET right now */ + if (phystype != PHYS_ETHER) { + static int not_ether = 0; + + ++not_ether; + if (not_ether == 5) { + fprintf(stderr, + "More non-ethernet packets skipped (last warning)\n"); + fprintf(stderr, "\n\ +If you'll send me a trace and offer to help, I can add support\n\ +for other packet types, I just don't have a place to test them\n\n"); + } else if (not_ether < 5) { + fprintf(stderr, + "Skipping packet %lu, not an ethernet packet\n", + pnum); + } /* else, just shut up */ + continue; + } + + /* print the packet, if requested */ + if (printallofem || dump_packet_data) { + printf("Packet %lu\n", pnum); + printpacket(len,tlen,phys,phystype,pip,plast,NULL); + } + + /* keep track of global times */ + if (ZERO_TIME(&first_packet)) + first_packet = current_time; + last_packet = current_time; + + /* verify IP checksums, if requested */ + if (verify_checksums) { + if (!ip_cksum_valid(pip,plast)) { + ++bad_ip_checksums; + if (warn_printbadcsum) + fprintf(stderr, "packet %lu: bad IP checksum\n", pnum); + continue; + } + } + + /* find the start of the TCP header */ + ret = gettcp (pip, &ptcp, &plast); + + /* if that failed, it's not TCP */ + if (ret < 0) { + udp_pair *pup; + struct udphdr *pudp; + + /* look for a UDP header */ + ret = getudp(pip, &pudp, &plast); + + if (do_udp && (ret == 0)) { + pup = udpdotrace(pip,pudp,plast); + + /* verify UDP checksums, if requested */ + if (verify_checksums) { + if (!udp_cksum_valid(pip,pudp,plast)) { + ++bad_udp_checksums; + if (warn_printbadcsum) + fprintf(stderr, "packet %lu: bad UDP checksum\n", + pnum); + continue; + } + } + + /* if it's a new connection, tell the modules */ + if (pup && pup->packets == 1) + ModulesPerUDPConn(pup); + /* also, pass the packet to any modules defined */ + ModulesPerUDPPacket(pip,pup,plast); + } else if (ret < 0) { + /* neither UDP not TCP */ + ModulesPerNonTCPUDP(pip,plast); + } + continue; + } + else if (ret > 0) { /* not a valid TCP packet */ + continue; + } + + /* verify TCP checksums, if requested */ + if (verify_checksums) { + if (!tcp_cksum_valid(pip,ptcp,plast)) { + ++bad_tcp_checksums; + if (warn_printbadcsum) + fprintf(stderr, "packet %lu: bad TCP checksum\n", pnum); + continue; + } + } + + /* perform TCP packet analysis */ + ptp = dotrace(pip,ptcp,plast); + + /* if it wasn't "interesting", we return NULL here */ + if (ptp == NULL) + continue; + + /* unless this connection is being ignored, tell the modules */ + /* about it */ + if (!ptp->ignore_pair) { + /* if it's a new connection, tell the modules */ + if (ptp->packets == 1) + ModulesPerConn(ptp); + + /* also, pass the packet to any modules defined */ + ModulesPerPacket(pip,ptp,plast); + } + + /* for efficiency, only allow a signal every 1000 packets */ + /* (otherwise the system call overhead will kill us) */ + if (pnum % 1000 == 0) { + sigset_t mask; + + sigemptyset(&mask); + sigaddset(&mask,SIGINT); + + sigprocmask(SIG_UNBLOCK, &mask, NULL); + /* signal can happen EXACTLY HERE, when data structures are consistant */ + sigprocmask(SIG_BLOCK, &mask, NULL); + } + } + + /* set ^C back to the default */ + /* (so we can kill the output if needed) */ + { + sigset_t mask; + + sigemptyset(&mask); + sigaddset(&mask,SIGINT); + + sigprocmask(SIG_UNBLOCK, &mask, NULL); + signal(SIGINT,SIG_DFL); + } + + /* close the input file */ + CompCloseFile(filename); +} + + +static void +QuitSig( + int signum) +{ + printf("%c\n\n", 7); /* BELL */ + printf("Terminating processing early on signal %d\n", signum); + printf("Partial result after processing %lu packets:\n\n\n", pnum); + FinishModules(); + plotter_done(); + trace_done(); + udptrace_done(); + exit(1); +} + + +void * +MallocZ( + int nbytes) +{ + char *ptr; + + ptr = malloc(nbytes); + if (ptr == NULL) { + perror("Malloc failed, fatal\n"); + fprintf(stderr,"\ +when memory allocation fails, it's either because:\n\ +1) You're out of swap space, talk to your local sysadmin about making more\n\ + (look for system commands 'swap' or 'swapon' for quick fixes)\n\ +2) The amount of memory that your OS gives each process is too little\n\ + That's a system configuration issue that you'll need to discuss\n\ + with the system administrator\n\ +"); + exit(2); + } + + memset(ptr,'\00',nbytes); /* BZERO */ + + return(ptr); +} + +void * +ReallocZ( + void *oldptr, + int obytes, + int nbytes) +{ + char *ptr; + + ptr = realloc(oldptr,nbytes); + if (ptr == NULL) { + fprintf(stderr, + "Realloc failed (%d bytes --> %d bytes), fatal\n", + obytes, nbytes); + perror("realloc"); + exit(2); + } + if (obytes < nbytes) { + memset((char *)ptr+obytes,'\00',nbytes-obytes); /* BZERO */ + } + + return(ptr); +} + +static void +Ignore( + char *argsource, + char *opt) +{ + char *o_arg; + + /* next part of arg is a filename or number list */ + if (*opt == '\00') { + BadArg(argsource, + "Expected filename or number list *immediately* after -i / --iTCP\n"); + } + + if (run_continuously) { + fprintf(stderr, + "Warning: cannot ignore connections in continuous mode\n"); + } + + /* option is a list of connection numbers separated by commas */ + /* option can be immediately "here" or given as a file name */ + if (isdigit((int)(*opt))) // --iTCP1 case + o_arg=opt; + else { + /* it's in a file */ + /* open the file */ + o_arg = FileToBuf(opt); + /* if that fails, it's a command line error */ + if (o_arg == NULL) + BadArg(argsource, + "Expected filename or number list *immediately* after -i/--iTCP\n"); + } + /* wherever we got it, o_arg is a connection list */ + while (o_arg && *o_arg) { + int num1,num2; + + if (sscanf(o_arg,"%d-%d",&num1,&num2) == 2) { + /* process range */ + if (num2 <= num1) { + BadArg(argsource, + "-iX-Y / --iTCPX-Y, must have X 1) + printf("setting IgnoreConn(%d)\n", num1); + IgnoreConn(num1++); + + } + } else if (sscanf(o_arg,"%d",&num1) == 1) { + /* single argument */ + if (debug) + printf("setting IgnoreConn(%d)\n", num1); + IgnoreConn(num1); + } else { + /* error */ + BadArg(argsource, + "Don't understand conn number starting at '%s'\n", o_arg); + } + + /* look for the next comma */ + o_arg = strchr(o_arg,','); + if (o_arg) + ++o_arg; + } +} + +static void +GrabOnly( + char *argsource, + char *opt) +{ + char *o_arg; + + /* next part of arg is a filename or number list */ + if (*opt == '\00') { + BadArg(argsource, + "Expected filename or number list *immediately* after -o / --oTCP\n"); + } + + if (run_continuously) { + fprintf(stderr, + "Warning: cannot 'grab-only' connections in continuous mode\n"); + } + + /* option is a list of connection numbers separated by commas */ + /* option can be immediately "here" or given as a file name */ + if (isdigit((int)(*opt))) { + /* list is on the command line */ + o_arg = opt; + } else { + /* it's in a file */ + /* open the file */ + o_arg = FileToBuf(opt); + + /* if that fails, it's a command line error */ + if (o_arg == NULL) { + BadArg(argsource,"Expected filename or number list *immediately* after -o / --oTCP\n"); + } + } + + /* wherever we got it, o_arg is a connection list */ + while (o_arg && *o_arg) { + int num1,num2; + + if (sscanf(o_arg,"%d-%d",&num1,&num2) == 2) { + /* process range */ + if (num2 <= num1) { + BadArg(argsource, + "-oX-Y / --oTCPX-Y, must have X 1) + printf("setting OnlyConn(%d)\n", num1); + OnlyConn(num1++); + } + } else if (sscanf(o_arg,"%d",&num1) == 1) { + /* single argument */ + if (debug) + printf("setting OnlyConn(%d)\n", num1); + OnlyConn(num1); + } else { + /* error */ + BadArg(argsource, + "Don't understand conn number starting at '%s'\n", o_arg); + } + + /* look for the next comma */ + o_arg = strchr(o_arg,','); + if (o_arg) + ++o_arg; + } +} + +static void + IgnoreUDP( + char *argsource, + char *opt) +{ + char *o_arg; + + /* next part of arg is a filename or number list */ + if (*opt == '\00') { + BadArg(argsource, + "Expected filename or number list *immediately* after --iUDP\n"); + } + + if (run_continuously) { + fprintf(stderr, + "Warning: cannot ignore UDP connections in continuous mode\n"); + } + + /* option is a list of connection numbers separated by commas */ + /* option can be immediately "here" or given as a file name */ + if (isdigit((int)(*opt))) // --iUDP1 case + o_arg=opt; + else { + /* it's in a file */ + /* open the file */ + o_arg = FileToBuf(opt); + /* if that fails, it's a command line error */ + if (o_arg == NULL) + BadArg(argsource, + "Expected filename or number list *immediately* after --iUDP\n"); + + } + /* wherever we got it, o_arg is a connection list */ + while (o_arg && *o_arg) { + int num1,num2; + + if (sscanf(o_arg,"%d-%d",&num1,&num2) == 2) { + /* process range */ + if (num2 <= num1) { + BadArg(argsource, + "--iUDPX-Y, must have X 1) + printf("setting IgnoreUDPConn(%d)\n", num1); + IgnoreUDPConn(num1++); + + } + } else if (sscanf(o_arg,"%d",&num1) == 1) { + /* single argument */ + if (debug) + printf("setting IgnoreUDPConn(%d)\n", num1); + IgnoreUDPConn(num1); + } else { + /* error */ + BadArg(argsource, + "Don't understand conn number starting at '%s'\n", o_arg); + } + + /* look for the next comma */ + o_arg = strchr(o_arg,','); + if (o_arg) + ++o_arg; + } +} + +static void + GrabOnlyUDP( + char *argsource, + char *opt) +{ + char *o_arg; + + /* next part of arg is a filename or number list */ + if (*opt == '\00') { + BadArg(argsource,"Expected filename or number list *immediately* after --oUDP\n"); + } + + if (run_continuously) { + fprintf(stderr, + "Warning: cannot 'grab-only' UDP connections in continuous mode\n"); + } + + /* option is a list of connection numbers separated by commas */ + /* option can be immediately "here" or given as a file name */ + if (isdigit((int)(*opt))) { + /* list is on the command line */ + o_arg = opt; + } else { + /* it's in a file */ + + /* open the file */ + o_arg = FileToBuf(opt); + + /* if that fails, it's a command line error */ + if (o_arg == NULL) { + BadArg(argsource,"Expected filename or number list *immediately* after --oUDP\n"); + } + } + + /* wherever we got it, o_arg is a connection list */ + while (o_arg && *o_arg) { + int num1,num2; + + if (sscanf(o_arg,"%d-%d",&num1,&num2) == 2) { + /* process range */ + if (num2 <= num1) { + BadArg(argsource, + "--oUDPX-Y, must have X 1) + printf("setting OnlyUDPConn(%d)\n", num1); + OnlyUDPConn(num1++); + } + } else if (sscanf(o_arg,"%d",&num1) == 1) { + /* single argument */ + if (debug) + printf("setting OnlyUDPConn(%d)\n", num1); + OnlyUDPConn(num1); + } else { + /* error */ + BadArg(argsource, + "Don't understand conn number starting at '%s'\n", + o_arg); + } + + /* look for the next comma */ + o_arg = strchr(o_arg,','); + if (o_arg) + ++o_arg; + } +} + +/* convert a buffer to an argc,argv[] pair */ +void +StringToArgv( + char *buf, + int *pargc, + char ***pargv) +{ + char **argv; + int nargs = 0; + + /* discard the original string, use a copy */ + buf = strdup(buf); + + /* (very pessimistically) make the argv array */ + argv = malloc(sizeof(char *) * ((strlen(buf)/2)+1)); + + /* skip leading blanks */ + while ((*buf != '\00') && (isspace((int)*buf))) { + if (debug > 10) + printf("skipping isspace('%c')\n", *buf); + ++buf; + } + + /* break into args */ + for (nargs = 1; *buf != '\00'; ++nargs) { + char *stringend; + argv[nargs] = buf; + + /* search for separator */ + while ((*buf != '\00') && (!isspace((int)*buf))) { + if (debug > 10) + printf("'%c' (%d) is NOT a space\n", *buf, (int)*buf); + ++buf; + } + stringend = buf; + + /* skip spaces */ + while ((*buf != '\00') && (isspace((int)*buf))) { + if (debug > 10) + printf("'%c' (%d) IS a space\n", *buf, (int)*buf); + ++buf; + } + + *stringend = '\00'; /* terminate the previous string */ + + if (debug) + printf(" argv[%d] = '%s'\n", nargs, argv[nargs]); + } + + *pargc = nargs; + *pargv = argv; +} + + +static void +CheckArguments( + int *pargc, + char *argv[]) +{ + char *home; + char *envariable; + char *rc_path = NULL; + char *rc_buf = NULL; + + /* remember the name of the program for errors... */ + progname = argv[0]; + + /* first, we read from the config file, "~/.tcptracerc" */ + if ((home = getenv("HOME")) != NULL) { + struct stat statbuf; + + int rc_len=strlen(home)+strlen(TCPTRACE_RC_FILE)+2; + + rc_path = malloc(rc_len); + + snprintf(rc_path,rc_len, "%s/%s", home, TCPTRACE_RC_FILE); + if (debug>1) + printf("Looking for resource file '%s'\n", rc_path); + + if (stat(rc_path,&statbuf) != 0) { + rc_path = NULL; + } else { + int argc; + char **argv; + char *pch_file; + char *pch_new; + char *file_buf; + + if (debug>1) + printf("resource file %s exists\n", rc_path); + + /* read the file into a buffer */ + rc_buf = file_buf = FileToBuf(rc_path); + + /* if it exists but can't be read, that's a fatal error */ + if (rc_buf == NULL) { + fprintf(stderr, + "Couldn't read resource file '%s'\n", rc_path); + fprintf(stderr, + "(either make the file readable or change its name)\n"); + exit(-1); + } + + + /* make a new buffer to hold the converted string */ + pch_file = rc_buf; + rc_buf = pch_new = MallocZ(strlen(file_buf)+3); + + /* loop until end of string */ + while (*pch_file) { + if (*pch_file == '\n') { + /* turn newlines into spaces */ + *pch_new++ = ' '; + ++pch_file; + } else if (*pch_file == '#') { + /* skip over the '#' */ + ++pch_file; + + /* remove comments (until NULL or newline) */ + while ((*pch_file != '\00') && + (*pch_file != '\n')) { + ++pch_file; + } + /* insert a space */ + *pch_new++ = ' '; + } else { + /* just copy the characters */ + *pch_new++ = *pch_file++; + } + } + + /* append a NULL to pch_new */ + *pch_new = '\00'; + + if (debug>2) + printf("Resource file string: '%s'\n", rc_buf); + + /* we're finished with the original buffer, but need to keep pch_new */ + free(file_buf); + + /* parse those args */ + StringToArgv(rc_buf,&argc,&argv); + ParseArgs(TCPTRACE_RC_FILE, &argc, argv); + } + } + + /* next, we read from the environment variable "TCPTRACEOPTS" */ + if ((envariable = getenv(TCPTRACE_ENVARIABLE)) != NULL) { + int argc; + char **argv; + + if (debug) + printf("envariable %s contains:\n\t'%s'\n", + TCPTRACE_ENVARIABLE, envariable); + + StringToArgv(envariable,&argc,&argv); + ParseArgs(TCPTRACE_ENVARIABLE, &argc, argv); + } + + /* lastly, we read the command line arguments */ + ParseArgs("command line",pargc,argv); + + /* make sure we found the files */ + if (filenames == NULL) { + BadArg(NULL,"must specify at least one file name\n"); + } + + /* if debugging is on, tell what was in the ENV and rc file */ + if (debug) { + if (rc_path) + printf("Flags from %s: '%s'\n", rc_path, rc_buf); + if (envariable) + printf("envariable %s contains: '%s'\n", + TCPTRACE_ENVARIABLE, envariable); + } + + if (rc_buf) + free(rc_buf); + + /* heuristic, I set "-t" in my config file, but they don't work inside */ + /* emacs shell windows, which is a pain. If the terminal looks like EMACS, */ + /* then turn OFF ticks! */ + if (printticks) { + char *TERM = getenv("TERM"); + /* allow emacs and Emacs */ + if ((TERM != NULL) && + ((strstr(TERM,"emacs") != NULL) || + (strstr(TERM,"Emacs") != NULL))) { + printf("Disabling ticks for EMACS shell window\n"); + printticks = 0; + } + } +} + +// these extended options are table driven, to make it easier to +// add more later without messing them up. +// Initially they include --iTCP, --iUDP to ignore TCP, UDP connections +// and --oTCP, --oUDP to output only TCP, UDP connections. +static int +ParseExtendedOpt( + char *argsource, + char *arg) +{ + int i; + struct ext_opt *popt_found = NULL; + char *argtext,*opt=NULL; + int arglen; + + /* there must be at least SOME text there */ + if (strcmp(arg,"--") == 0) + BadArg(argsource, "Void extended filter argument\n"); + + /* find just the arg text */ + argtext = arg+2; + arglen = strlen(argtext); + + + /* search for a match on each extended boolean opt */ + for (i=0; i < NUM_EXTENDED_OPTIONS; ++i) { + struct ext_opt *popt = &extended_options[i]; + + if (strncasecmp(argtext,popt->opt_name, + strlen(popt->opt_name)) == 0 ) { + popt_found = popt; + opt=argtext+strlen(popt->opt_name); + break; + } + } + + /* if we never found a match, it's an error */ + if (popt_found == NULL) + return 0; + + (*popt_found->opt_func)(argsource,opt); + return 1; +} + + +/* these extended boolean options are table driven, to make it easier to + add more later without messing them up */ +static void +ParseExtendedBool( + char *argsource, + char *arg) +{ + int i; + struct ext_bool_op *pbop_found = NULL; + struct ext_bool_op *pbop_prefix = NULL; + Bool prefix_ambig = FALSE; + Bool negative_arg_prefix; + char *argtext; + int arglen; + + /* there must be at least SOME text there */ + if ((strcmp(arg,"--") == 0) || (strcmp(arg,"--no") == 0)) + BadArg(argsource, "Void extended boolean argument\n"); + + /* find just the arg text */ + if (strncmp(arg,"--no",4) == 0) { + argtext = arg+4; + negative_arg_prefix = TRUE; + } else { + argtext = arg+2; + negative_arg_prefix = FALSE; + } + arglen = strlen(argtext); + + + /* search for a match on each extended boolean arg */ + for (i=0; i < NUM_EXTENDED_BOOLS; ++i) { + struct ext_bool_op *pbop = &extended_bools[i]; + + /* check for the default value flag */ + if (strcmp(argtext,pbop->bool_optname) == 0) { + pbop_found = pbop; + break; + } + + /* check for a prefix match */ + if (strncmp(argtext,pbop->bool_optname,arglen) == 0) { + if (pbop_prefix == NULL) + pbop_prefix = pbop; + else + prefix_ambig = TRUE; + } + } + + + /* if we never found a match, it's an error */ + if ((pbop_found == NULL) && (pbop_prefix == NULL)) + BadArg(argsource, "Unknown extended boolean argument '%s' (see -hargs)\n", arg); + + + /* if the prefix is UNambiguous, that's good enough */ + if ((pbop_prefix != NULL) && (!prefix_ambig)) + pbop_found = pbop_prefix; + + /* either exact match or good prefix, do it */ + if (pbop_found != NULL) { + if (negative_arg_prefix) + *pbop_found->bool_popt = !pbop_found->bool_default; + else + *pbop_found->bool_popt = pbop_found->bool_default; + if (debug>2) + fprintf(stderr,"Set boolean variable '%s' to '%s'\n", + argtext, BOOL2STR(*pbop_found->bool_popt)); + return; + } + + /* ... else ambiguous prefix */ + fprintf(stderr,"Extended boolean arg '%s' is ambiguous, it matches:\n", arg); + for (i=0; i < NUM_EXTENDED_BOOLS; ++i) { + struct ext_bool_op *pbop = &extended_bools[i]; + if (strncmp(argtext,pbop->bool_optname,arglen) == 0) + fprintf(stderr," %s%s - %s%s\n", + negative_arg_prefix?"no":"", + pbop->bool_optname, + negative_arg_prefix?"DON'T ":"", + pbop->bool_descr); + } + BadArg(argsource, "Ambiguous extended argument '%s'\n", arg); + + return; +} + + + +/* these extended variable options are table driven, to make it easier to add more + later without messing them up */ +/* note: the format is of the form --output_dir=string */ +/* note2: if the string was quoted as --output_dir="this directory" + then those quotes were removed by the shell */ +static void +ParseExtendedVar( + char *argsource, + char *arg_in) +{ + int i; + struct ext_var_op *pvop_found = NULL; + struct ext_var_op *pvop_prefix = NULL; + Bool prefix_ambig = FALSE; + char *pequals; + char *argname; /* the variable name itself */ + char *argval; /* the part just beyond the equal sign */ + int arglen; + char *arg; + + /* we're going to modify the argument to split it in half, we we'd + better make a copy first */ + /* note that the only way out of this routine is through BadArg(), + which just exits, or the single return() below, so this isn't + a memory leak*/ + arg = strdup(arg_in); + + /* there must be at least SOME text there */ + if ((strcmp(arg,"--") == 0)) + BadArg(argsource, "Void extended variable argument\n"); + + /* find the '=' sign, it MUST be there */ + /* (can't really happen, because the '=' forced us to this routine */ + pequals=strchr(arg,'='); + if (!pequals) + BadArg(argsource, "Extended variable argument with no assignment \n"); + + + /* break the arg in half at the '=' sign (located above) */ + argname = arg+2; + argval = pequals+1; + *pequals = '\00'; /* split the string here */ + /* --output_dir=test */ + /* ^ argname = 1002 */ + /* ^ argval = 1013 */ + /* therefore length = argval(1013)-argname(1002)-1 (10) */ + arglen = argval - argname - 1; + + /* search for a match in the extended variable table */ + for (i=0; i < NUM_EXTENDED_VARS; ++i) { + struct ext_var_op *pvop = &extended_vars[i]; + + /* check for an exact match */ + if (strcmp(argname,pvop->var_optname) == 0) { + pvop_found = pvop; + break; + } + + /* check for a prefix match */ + if (strncmp(argname,pvop->var_optname,arglen) == 0) { + if (pvop_prefix == NULL) + pvop_prefix = pvop; + else + prefix_ambig = TRUE; /* already found one */ + } + } + + + /* if we never found a match, it's an error */ + if ((pvop_found == NULL) && (pvop_prefix == NULL)) + BadArg(argsource, "Unknown extended variable argument '%s' (see -hargs)\n", arg); + + + /* if the prefix is UNambiguous, that's good enough */ + if ((pvop_prefix != NULL) && (!prefix_ambig)) + pvop_found = pvop_prefix; + + /* either exact match or good prefix, do it */ + if (pvop_found != NULL) { + *pvop_found->var_popt = strdup(argval); + if (debug>2) + fprintf(stderr,"Set extended variable '%s' to '%s'\n", + argname, *pvop_found->var_popt); + if (pvop_found->var_verify) { + /* call the verification routine */ + if (debug>2) + fprintf(stderr,"verifying extended variable '%s'\n", argname); + (*pvop_found->var_verify)(argname,*pvop_found->var_popt); + } + free(arg); + return; + } + + /* ... else ambiguous prefix */ + fprintf(stderr,"Extended variable arg '%s' is ambiguous, it matches:\n", arg); + for (i=0; i < NUM_EXTENDED_VARS; ++i) { + struct ext_var_op *pvop = &extended_vars[i]; + if (strncmp(argname,pvop->var_optname,arglen) == 0) + fprintf(stderr," %s - %s\n", + pvop->var_optname, pvop->var_descr); + } + BadArg(argsource, "Ambiguous extended variable argument '%s'\n", arg); + /* never returns */ +} + + + +static u_long +VerifyPositive( + char *varname, + char *value) +{ + int i, ivalue = 0; + + for (i = 0; i < strlen(value); i++) { + if (!isdigit((int)value[i])) { + fprintf(stderr, + "Value '%s' is not valid for variable '%s'\n", + value, varname); + exit(1); + } + } + ivalue = atoi(value); + if (ivalue <= 0) { + fprintf(stderr, + "Value '%s' is not valid for variable '%s'\n", + value, varname); + exit(1); + } + + return (u_long)ivalue; +} + + +static void +VerifyUpdateInt( + char *varname, + char *value) +{ + update_interval = VerifyPositive(varname, value); +} + + +static void +VerifyMaxConnNum( + char *varname, + char *value) +{ + max_conn_num = VerifyPositive(varname, value); + conn_num_threshold = TRUE; +} + + +static void +VerifyLiveConnInt( + char *varname, + char *value) +{ + remove_live_conn_interval = VerifyPositive(varname, value); +} + +static void + VerifyNonrealLiveConnInt( + char *varname, + char *value) +{ + nonreal_live_conn_interval = VerifyPositive(varname, value); +} + + +static void +VerifyClosedConnInt( + char *varname, + char *value) +{ + remove_closed_conn_interval = VerifyPositive(varname, value); +} + + + +static void +ParseArgs( + char *argsource, + int *pargc, + char *argv[]) +{ + int i; + int saw_i_or_o = 0; + + /* parse the args */ + for (i=1; i < *pargc; ++i) { + /* modules might have stolen args... */ + if (argv[i] == NULL) + continue; + + // Arguments beginning with "--" could be an extended option + // as in --iUDP2 , --iTCP3-5, --oUDP5-9,19 etc + // or they could be the regular extended variables or booleans. + if (strncmp(argv[i],"--",2) == 0) { + if (ParseExtendedOpt(argsource,argv[i])) + continue; + else { + if (strchr(argv[i],'=') != NULL) + ParseExtendedVar(argsource, argv[i]); + else + ParseExtendedBool(argsource, argv[i]); + continue; + } + } + + if (*argv[i] == '-') { + if (argv[i][1] == '\00') /* just a '-' */ + Usage(); + + while (*(++argv[i])) + switch (*argv[i]) { + case 'A': + if (isdigit((int)(*(argv[i]+1)))) + thru_interval = atoi(argv[i]+1); + else + BadArg(argsource, "-A number missing\n"); + if (thru_interval <= 0) + BadArg(argsource, "-A must be > 1\n"); + *(argv[i]+1) = '\00'; break; + case 'B': + if (isdigit((int)(*(argv[i]+1)))) + beginpnum = atoi(argv[i]+1); + else + BadArg(argsource, "-B number missing\n"); + if (beginpnum < 0) + BadArg(argsource, "-B must be >= 0\n"); + *(argv[i]+1) = '\00'; break; + case 'C': colorplot = TRUE; break; + case 'D': hex = FALSE; break; + case 'E': + if (isdigit((int)(*(argv[i]+1)))) + endpnum = atoi(argv[i]+1); + else + BadArg(argsource, "-E number missing\n"); + if (beginpnum < 0) + BadArg(argsource, "-E must be >= 0\n"); + *(argv[i]+1) = '\00'; break; + case 'F': graph_segsize = TRUE; break; + case 'G': + graph_tput = TRUE; + graph_tsg = TRUE; + graph_rtt = TRUE; + graph_owin = TRUE; + graph_segsize = TRUE; + graph_tline = TRUE; + break; + case 'L': graph_tline = TRUE; + fprintf(stderr, "\nWarning: You have chosen the option '-L' to plot Time Line Graphs.\n This option is yet under development and may not reflect accurate results.\n Please take a look at the file README.tline_graphs for more details.\n\n"); + break; + case 'M': colorplot = FALSE; break; + case 'N': graph_owin = TRUE; break; + case 'O': + if (*(argv[i]+1)) { + /* -Ofile */ + output_filename = strdup(argv[i]+1); + *(argv[i]+1) = '\00'; + } else { + /* maybe -O file */ + BadArg(argsource, "-Ofile requires a file name\n"); + } + break; + case 'P': printem = TRUE; break; + case 'R': graph_rtt = TRUE; break; + case 'S': graph_tsg = TRUE; break; + case 'T': graph_tput = TRUE; break; + case 'W': print_owin = TRUE; break; + case 'X': hex = TRUE; break; + case 'Z': dump_rtt = TRUE; break; + case 'b': printbrief = TRUE; break; + case 'c': ignore_non_comp = TRUE; break; + case 'd': ++debug; break; + case 'e': save_tcp_data = TRUE; break; + case 'f': + filter_output = TRUE; + if (*(argv[i]+1)) { + /* -fEXPR */ + ParseFilter(argv[i]+1); + *(argv[i]+1) = '\00'; + } else { + /* -f EXPR */ + BadArg(argsource, "-f requires a filter\n"); + } + break; + case 'h': Help(argv[i]+1); *(argv[i]+1) = '\00'; break; + case 'i': Ignore(argsource,argv[i]+1); +/* { + int conn = -1; + if (run_continuously) { + fprintf(stderr, "Warning: cannot ignore connections in continuous mode\n"); + } + else + + else { + if (isdigit((int)(*(argv[i]+1)))) + conn = atoi(argv[i]+1); + else + BadArg(argsource, "-i number missing\n"); + if (conn < 0) + BadArg(argsource, "-i must be >= 0\n"); + ++saw_i_or_o; + gIgnoreConn(conn); + } + }*/ *(argv[i]+1) = '\00'; + break; + case 'l': printbrief = FALSE; break; + case 'm': + BadArg(argsource, + "-m option is obsolete (no longer necessary)\n"); + *(argv[i]+1) = '\00'; break; + case 'n': + resolve_ipaddresses = FALSE; + resolve_ports = FALSE; + break; + case 'o': + if (run_continuously) { + fprintf(stderr, "Warning: cannot use 'grab only' flag in continuous mode\n"); + } + else { + ++saw_i_or_o; + GrabOnly(argsource,argv[i]+1); + } + *(argv[i]+1) = '\00'; break; + case 'p': printallofem = TRUE; break; + case 'q': printsuppress = TRUE; break; + case 'r': print_rtt = TRUE; break; + case 's': use_short_names = TRUE; break; + case 't': printticks = TRUE; break; + case 'u': do_udp = TRUE; break; + case 'v': Version(); exit(0); break; + case 'w': + warn_printtrunc = TRUE; + warn_printbadmbz = TRUE; + warn_printhwdups = TRUE; + warn_printbadcsum = TRUE; + warn_printbad_syn_fin_seq = TRUE; + warn_ooo = TRUE; + break; + case 'x': + BadArg(argsource, + "unknown module option (-x...)\n"); + break; + case 'y': plot_tput_instant = FALSE; break; + case 'z': + if (strcmp(argv[i],"z") == 0) { + /* backward compat, just zero the time */ + graph_time_zero = TRUE; + } else if (strcasecmp(argv[i],"zx") == 0) { + graph_time_zero = TRUE; + } else if (strcasecmp(argv[i],"zy") == 0) { + graph_seq_zero = TRUE; + } else if ((strcasecmp(argv[i],"zxy") == 0) || + (strcasecmp(argv[i],"zyx") == 0)) { + /* set BOTH to zero */ + graph_time_zero = TRUE; + graph_seq_zero = TRUE; + } else { + BadArg(argsource, "only -z -zx -zy and -zxy are legal\n"); + } + *(argv[i]+1) = '\00'; + break; + default: + BadArg(argsource, + "option '%c' not understood\n", *argv[i]); + } + } else if (*argv[i] == '+') { + /* a few of them have a REVERSE flag too */ + if (argv[i][1] == '\00') /* just a '+' */ + Usage(); + + while (*(++argv[i])) + switch (*argv[i]) { + case 'C': colorplot = !TRUE; break; + case 'D': hex = !FALSE; break; + case 'F': graph_segsize = !TRUE; break; + case 'L': graph_tline = !TRUE; break; + case 'M': colorplot = !FALSE; break; + case 'N': graph_owin = !TRUE; break; + case 'P': printem = !TRUE; break; + case 'R': graph_rtt = !TRUE; break; + case 'S': graph_tsg = !TRUE; break; + case 'T': graph_tput = !TRUE; break; + case 'W': print_owin = !TRUE; break; + case 'X': hex = !TRUE; break; + case 'Z': dump_rtt = !TRUE; break; + case 'b': printbrief = !TRUE; break; + case 'c': ignore_non_comp = !TRUE; break; + case 'e': save_tcp_data = FALSE; break; + case 'l': printbrief = !FALSE; break; + case 'n': + resolve_ipaddresses = !FALSE; + resolve_ports = !FALSE; + break; + case 'p': printallofem = !TRUE; break; + case 'q': printsuppress = !TRUE; break; + case 'r': print_rtt = !TRUE; break; + case 's': use_short_names = !TRUE; break; + case 't': printticks = !TRUE; break; + case 'u': do_udp = !TRUE; break; + case 'w': + warn_printtrunc = !TRUE; + warn_printbadmbz = !TRUE; + warn_printhwdups = !TRUE; + warn_printbadcsum = !TRUE; + warn_ooo = !TRUE; + break; + case 'y': plot_tput_instant = !plot_tput_instant; break; + case 'z': + if (strcmp(argv[i],"z") == 0) { + /* backward compat, just zero the time */ + graph_time_zero = !TRUE; + } else if (strcasecmp(argv[i],"zx") == 0) { + graph_time_zero = !TRUE; + } else if (strcasecmp(argv[i],"zy") == 0) { + graph_seq_zero = !TRUE; + } else if ((strcasecmp(argv[i],"zxy") == 0) || + (strcasecmp(argv[i],"zyx") == 0)) { + /* set BOTH to zero */ + graph_time_zero = !TRUE; + graph_seq_zero = !TRUE; + } else { + BadArg(argsource, "only +z +zx +zy and +zxy are legal\n"); + } + *(argv[i]+1) = '\00'; + break; + default: + Usage(); + } + } else { + filenames = &argv[i]; + *pargc -= i; + return; + } + } + + return; +} + + +static void +DumpFlags(void) +{ + int i; + + fprintf(stderr,"printbrief: %s\n", BOOL2STR(printbrief)); + fprintf(stderr,"printsuppress: %s\n", BOOL2STR(printsuppress)); + fprintf(stderr,"print_rtt: %s\n", BOOL2STR(print_rtt)); + fprintf(stderr,"graph rtt: %s\n", BOOL2STR(graph_rtt)); + fprintf(stderr,"graph tput: %s\n", BOOL2STR(graph_tput)); + fprintf(stderr,"graph tsg: %s\n", BOOL2STR(graph_tsg)); + fprintf(stderr,"graph segsize: %s\n", BOOL2STR(graph_segsize)); + fprintf(stderr,"graph owin: %s\n", BOOL2STR(graph_owin)); + fprintf(stderr,"graph tline: %s\n", BOOL2STR(graph_tline)); + fprintf(stderr,"plotem: %s\n", + colorplot?"(color)":"(b/w)"); + fprintf(stderr,"hex printing: %s\n", BOOL2STR(hex)); + fprintf(stderr,"ignore_non_comp: %s\n", BOOL2STR(ignore_non_comp)); + fprintf(stderr,"printem: %s\n", BOOL2STR(printem)); + fprintf(stderr,"printallofem: %s\n", BOOL2STR(printallofem)); + fprintf(stderr,"printticks: %s\n", BOOL2STR(printticks)); + fprintf(stderr,"use_short_names: %s\n", BOOL2STR(use_short_names)); + fprintf(stderr,"save_tcp_data: %s\n", BOOL2STR(save_tcp_data)); + fprintf(stderr,"graph_time_zero: %s\n", BOOL2STR(graph_time_zero)); + fprintf(stderr,"graph_seq_zero: %s\n", BOOL2STR(graph_seq_zero)); + fprintf(stderr,"beginning pnum: %lu\n", beginpnum); + fprintf(stderr,"ending pnum: %lu\n", endpnum); + fprintf(stderr,"throughput intvl: %d\n", thru_interval); + fprintf(stderr,"NS simulator hdrs:%s\n", BOOL2STR(ns_hdrs)); + fprintf(stderr,"number modules: %u\n", (unsigned)NUM_MODULES); + fprintf(stderr,"debug: %s\n", BOOL2STR(debug)); + + /* print out the stuff controlled by the extended boolean args */ + for (i=0; i < NUM_EXTENDED_BOOLS; ++i) { + struct ext_bool_op *pbop = &extended_bools[i]; + char buf[100]; + snprintf(buf,sizeof(buf),"%s:", pbop->bool_optname); + fprintf(stderr,"%-18s%s\n", buf, BOOL2STR(*pbop->bool_popt)); + } + + /* print out the stuff controlled by the extended variable args */ + for (i=0; i < NUM_EXTENDED_VARS; ++i) { + struct ext_var_op *bvop = &extended_vars[i]; + char buf[100]; + snprintf(buf,sizeof(buf),"%s:", bvop->var_optname); + fprintf(stderr,"%-18s%s\n", buf, + (*bvop->var_popt)?*bvop->var_popt:""); + } +} + + +static void +LoadModules( + int argc, + char *argv[]) +{ + int i; + int enable; + + for (i=0; i < NUM_MODULES; ++i) { + ++num_modules; + if (debug) + fprintf(stderr,"Initializing module \"%s\"\n", + modules[i].module_name); + enable = (*modules[i].module_init)(argc,argv); + if (enable) { + if (debug) + fprintf(stderr,"Module \"%s\" enabled\n", + modules[i].module_name); + modules[i].module_inuse = TRUE; + } else { + if (debug) + fprintf(stderr,"Module \"%s\" not active\n", + modules[i].module_name); + modules[i].module_inuse = FALSE; + } + } + +} + + + +static void +FinishModules(void) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_done == NULL) + continue; /* might not have a cleanup */ + + if (debug) + fprintf(stderr,"Calling cleanup for module \"%s\"\n", + modules[i].module_name); + + (*modules[i].module_done)(); + } +} + + +static void +ModulesPerConn( + tcp_pair *ptp) +{ + int i; + void *pmodstruct; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_newconn == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling newconn routine for module \"%s\"\n", + modules[i].module_name); + + pmodstruct = (*modules[i].module_newconn)(ptp); + if (pmodstruct) { + /* make sure the array is there */ + if (!ptp->pmod_info) { + ptp->pmod_info = MallocZ(num_modules * sizeof(void *)); + } + + /* remember this structure */ + ptp->pmod_info[i] = pmodstruct; + } + } +} + + +void +ModulesPerOldConn( + tcp_pair *ptp) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_deleteconn == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling delete conn routine for module \"%s\"\n", + modules[i].module_name); + + (*modules[i].module_deleteconn)(ptp, + ptp->pmod_info?ptp->pmod_info[i]:NULL); + } +} + + +static void +ModulesPerUDPConn( + udp_pair *pup) +{ + int i; + void *pmodstruct; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_udp_newconn == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling UDP newconn routine for module \"%s\"\n", + modules[i].module_name); + + pmodstruct = (*modules[i].module_udp_newconn)(pup); + if (pmodstruct) { + /* make sure the array is there */ + if (!pup->pmod_info) { + pup->pmod_info = MallocZ(num_modules * sizeof(void *)); + } + + /* remember this structure */ + pup->pmod_info[i] = pmodstruct; + } + } +} + +static void +ModulesPerNonTCPUDP( + struct ip *pip, + void *plast) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_nontcpudp_read == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling nontcp routine for module \"%s\"\n", + modules[i].module_name); + + (*modules[i].module_nontcpudp_read)(pip,plast); + } +} + + +static void +ModulesPerPacket( + struct ip *pip, + tcp_pair *ptp, + void *plast) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_read == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling read routine for module \"%s\"\n", + modules[i].module_name); + + (*modules[i].module_read)(pip,ptp,plast, + ptp->pmod_info?ptp->pmod_info[i]:NULL); + } +} + + +static void +ModulesPerUDPPacket( + struct ip *pip, + udp_pair *pup, + void *plast) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_udp_read == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling read routine for module \"%s\"\n", + modules[i].module_name); + + (*modules[i].module_udp_read)(pip,pup,plast, + pup->pmod_info?pup->pmod_info[i]:NULL); + } +} + + +static void +ModulesPerFile( + char *filename) +{ + int i; + + for (i=0; i < NUM_MODULES; ++i) { + if (!modules[i].module_inuse) + continue; /* might be disabled */ + + if (modules[i].module_newfile == NULL) + continue; /* they might not care */ + + if (debug>3) + fprintf(stderr,"Calling newfile routine for module \"%s\"\n", + modules[i].module_name); + + (*modules[i].module_newfile)(filename,filesize,CompIsCompressed()); + } +} + +/* the memcpy() function that gcc likes to stuff into the program has alignment + problems, so here's MY version. It's only used for small stuff, so the + copy should be "cheap", but we can't be too fancy due to alignment boo boos */ +void * +MemCpy(void *vp1, void *vp2, size_t n) +{ + char *p1 = vp1; + char *p2 = vp2; + + while (n-->0) + *p1++=*p2++; + + return(vp1); +} + + +/* read from a file, store contents into NULL-terminated string */ +/* memory returned must be "free"ed to be reclaimed */ +static char * +FileToBuf( + char *filename) +{ + FILE *f; + struct stat str_stat; + int filesize; + char *buffer; + + /* open the file */ + if ((f = fopen(filename,"r")) == NULL) { + fprintf(stderr,"Open of '%s' failed\n", filename); + perror(filename); + return(NULL); + } + + + /* determine the file length */ + if (fstat(fileno(f),&str_stat) != 0) { + perror("fstat"); + exit(1); + } + filesize = str_stat.st_size; + + /* make a big-enough buffer */ + buffer = MallocZ(filesize+2); /* with room to NULL terminate */ + + + /* read the file into the buffer */ + if (fread(buffer,1,filesize,f) != filesize) { + perror("fread"); + exit(1); + } + + fclose(f); + + /* put a NULL at the end */ + buffer[filesize] = '\00'; + + if (debug > 1) + printf("Read %d characters from resource '%s': '%s'\n", + filesize, filename, buffer); + + /* somebody else will "free" it */ + return(buffer); +} + + +/* ExpandFormat: + Expand the string in "format" and return the result string + + The return value rotates between one of two static strings + (to avoid malloc overhead), but if you need more than two at + a time, you'll need to make a copy. + + Expansions are performed as follows: + + %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" +*/ + +char * +ExpandFormat(const char *format) +{ + static struct dstring *pds1 = NULL; + static struct dstring *pds2 = NULL; + static struct dstring *pds = NULL; + + /* init the strings */ + if (pds1 == NULL) { + pds1 = DSNew(); + pds2 = DSNew(); + } + + /* alternate between them */ + pds = (pds == pds1)?pds2:pds1; + + /* erase the previous contents */ + DSErase(pds); + + if (debug>2) + fprintf(stderr,"Trying to expand string '%s'\n", format); + + while (*format) { + if (strncmp(format,"%f",2) == 0) { + /* basename of current file (after the last slash) */ + char *filename = cur_filename; + char *ptr; + + /* find the last '/' in the file */ + ptr = strrchr(filename,'/'); + + if (ptr) + ++ptr; /* the base of the filename is one past the slash */ + else + ptr = filename; /* no directory, just use the file */ + + DSAppendString(pds,ptr); + format += 2; + } else if (strncmp(format,"%D",2) == 0) { + /* current wallclock date (1-14-1963) */ + time_t now; + struct tm *ptm; + char buf[32]; + + /* get the current time, broken apart */ + time(&now); + ptm = localtime((time_t *)&wallclock_start.tv_sec); + + snprintf(buf,sizeof(buf),"%d-%d-%d", + ptm->tm_mon+1, + ptm->tm_mday, + 1900 + ptm->tm_year); + DSAppendString(pds,buf); + format += 2; + } else if ((strncmp(format,"%d",2) == 0) || + (strncmp(format,"%t",2) == 0)) { + /* current wallclock date, unix format */ + time_t now; + char *pbuf; + char *pch; + + /* get the current time in unix format */ + /* Fri Sep 13 00:00:00 1986\n\0 */ + /* 1 2 */ + /* 0123456789012345678901234 5 */ + time(&now); + pbuf = ctime(&now); + pbuf[24] = '\00'; /* nuke the newline */ + + /* spaces to underscores */ + for (pch = pbuf; *pch; ++pch) + if (*pch == ' ') + *pch = '_'; + + + if (strncmp(format,"%d",2) == 0) + /* the whole thing */ + DSAppendString(pds,pbuf); + else { + /* just the date */ + pbuf[11] = '\00'; + DSAppendString(pds,pbuf); + DSAppendString(pds,pbuf+20); + } + + format += 2; + } else { + /* no formatting, just copy one character */ + DSAppendChar(pds,*format); + ++format; + } + } + + return(DSVal(pds)); +} + diff --git a/tcptrace.h b/tcptrace.h new file mode 100644 index 0000000..40588e8 --- /dev/null +++ b/tcptrace.h @@ -0,0 +1,1192 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ + + +/* + * + * The newest gcc (3.3) is much pickier about the unused variables that + * we define for Copyright and RCSid, so this will shut it up. + * + */ +#ifdef __GNUC__ +#define GCC_UNUSED __attribute__((unused)) +#else +#define GCC_UNUSED +#endif + +static char const GCC_UNUSED rcsid_tcptrace[] = + "@(#)$Header: /usr/local/cvs/tcptrace/tcptrace.h,v 5.78 2004/11/04 21:55:38 sdo Exp $"; + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if __FreeBSD__ >= 2 +#include +#if __FreeBSD_version >= 300000 +#include +#endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* IPv6 support */ +#include "ipv6.h" + +/* dynamic string support */ +#include "dstring.h" + +/* memory allocation routines */ +#include "pool.h" + +/* we want LONG LONG in some places */ +#if SIZEOF_UNSIGNED_LONG_LONG_INT >= 8 +#define HAVE_LONG_LONG +typedef unsigned long long int u_llong; +typedef long long int llong; +/* Thanks to MacOSX, they use %qu to print unsigned long long ints */ +/* There is a test to see if we need to use %qu or %llu to print these variables */ +/* The test is located in configure.in */ +#ifdef USE_LLU +#define FS_ULL "llu" /* For most systems use llu */ +#define FS_LL "lld" /* For most systems use ll */ +#else /* USE_LLU */ +#define FS_ULL "qu" /* MacOSX use qu */ +#define FS_LL "qd" /* MacOSX use qd */ +#endif /* USE_LLU */ + +#else /* LONG LONG */ +typedef unsigned long int u_llong; +typedef long int llong; +#define FS_ULL "lu" /* No long long unsigned, so use lu */ +#define FS_LL "ld" /* No long long ints, so use ld */ +#endif /* LONG LONG */ + +/* plotter information */ +typedef int PLOTTER; +#define NO_PLOTTER -1 +#define NCOLORS 8 +extern char *ColorNames[NCOLORS]; +/* {"green", "red", "blue", "yellow", "purple", "orange", "magenta", "pink"}; */ +typedef struct pl_line *PLINE; + +/* max number of letters in endpoint name */ +/* (8 allows 26**8 different endpoints (209,000,000,000) + probably plenty for now!!!!!) */ +#define MAX_HOSTLETTER_LEN 8 + + +/* several places in the code NEED numbers of a specific size. */ +/* since the definitions aren't standard across everything we're */ +/* trying to support, the types are gathered up here */ +/* specifically, we need: + tt_uint32 unsigned 32 bit + tt_uint16 unsigned 16 bit + tt_int32 signed 32 bit + tt_int16 signed 16 bit +*/ +/* first, do the 32 bit ones */ +#if SIZEOF_UNSIGNED_LONG_INT == 4 +typedef unsigned long tt_uint32; +typedef long tt_int32; +#else +#if SIZEOF_UNSIGNED_INT == 4 +typedef unsigned int tt_uint32; +typedef int tt_int32; +#else +OOPS: Please insert an appropriate 32-bit unsigned type here! +OOPS: Please insert an appropriate 32-bit signed type here! +#endif /* SIZEOF_UNSIGNED_INT == 4 */ +#endif /* SIZEOF_UNSIGNED_LONG_INT == 4 */ +/* first, do the 16 bit ones */ +#if SIZEOF_UNSIGNED_INT == 2 +typedef unsigned int tt_uint16; +typedef int tt_int16; +#else +#if SIZEOF_UNSIGNED_SHORT == 2 +typedef unsigned short tt_uint16; +typedef short tt_int16; +#else +OOPS: Please insert an appropriate 16-bit unsigned type here! +OOPS: Please insert an appropriate 16-bit signed type here! +#endif /* SIZEOF_UNSIGNED_INT == 4 */ +#endif /* SIZEOF_UNSIGNED_LONG_INT == 4 */ + + + +/* type for a TCP sequence number, ACK, FIN, or SYN */ +/* This type MUST be a 32-bit unsigned number */ +typedef tt_uint32 seqnum; + +/* length of a segment */ +typedef u_long seglen; + +/* type for a quadrant number */ +typedef u_char quadnum; /* 1,2,3,4 */ + +/* type for a TCP port number */ +typedef u_short portnum; + +/* type for an IP address */ +/* IP address can be either IPv4 or IPv6 */ +typedef struct ipaddr { + u_char addr_vers; /* 4 or 6 */ + union { + struct in_addr ip4; + struct in6_addr ip6; + } un; +} ipaddr; + +#ifndef __VMS + +/* some machines (TRUE64 for one) handle the 4-bit TCP/IP fields + differently, so this macro simplifies life */ +#define IP_HL(pip) ((pip)->ip_hl) +#define IP_V(pip) ((pip)->ip_v) +#define TH_X2(ptcp) ((ptcp)->th_x2) +#define TH_OFF(ptcp) ((ptcp)->th_off) +/* some systems (darwin at least) use this for something else */ + +#else + +/* One alternative looks like this: */ +#define IP_HL(pip) ((pip)->ip_vhl&0xf) +#define IP_V(pip) ((pip)->ip_vhl>>4) +#define TH_X2(ptcp) ((ptcp)->th_xoff&0xf) +#define TH_OFF(ptcp) ((ptcp)->th_xoff>>4) + +#endif + +#undef TH_FLAGS +#define TH_FLAGS(ptcp) ((ptcp)->th_flags) + +/* type for a timestamp */ +typedef struct timeval timeval; +#define ZERO_TIME(ptv)(((ptv)->tv_sec == 0) && ((ptv)->tv_usec == 0)) + + +/* type for a Boolean */ +typedef u_char Bool; +#define TRUE 1 +#define FALSE 0 +#define BOOL2STR(b) (b)?"TRUE":"FALSE" + +/* ACK types */ +enum t_ack {NORMAL = 1, /* no retransmits, just advance */ + AMBIG = 2, /* segment ACKed was rexmitted */ + CUMUL = 3, /* doesn't advance */ + TRIPLE = 4, /* triple dupack */ + NOSAMP = 5}; /* covers retransmitted segs, no rtt sample */ + +/* type for an internal file pointer */ +typedef struct mfile MFILE; + +/* file name information */ +extern char **filenames; /* all the files on the cmd line */ +extern char *cur_filename; /* the current file */ + +/* first and last packet timestamp */ +extern timeval first_packet; +extern timeval last_packet; + +/* counters */ +extern u_long tcp_trace_count; +extern u_long udp_trace_count; + +typedef struct segment { + seqnum seq_firstbyte; /* seqnumber of first byte */ + seqnum seq_lastbyte; /* seqnumber of last byte */ + u_char retrans; /* retransmit count */ + u_int acked; /* how MANY times has has it been acked? */ + timeval time; /* time the segment was sent */ + struct segment *next; + struct segment *prev; +} segment; + +typedef struct quadrant { + segment *seglist_head; + segment *seglist_tail; + Bool full; + struct quadrant *prev; + struct quadrant *next; +} quadrant; + +typedef struct seqspace { + quadrant *pquad[4]; +} seqspace; + +typedef struct tcb { + /* parent pointer */ + struct stcp_pair *ptp; + struct tcb *ptwin; + + /* TCP information */ + seqnum ack; + seqnum seq; + seqnum syn; + seqnum fin; + seqnum windowend; + timeval time; + + /* TCP options */ + u_int mss; + Bool f1323_ws; /* did he request 1323 window scaling? */ + Bool f1323_ts; /* did he request 1323 timestamps? */ + Bool fsack_req; /* did he request SACKs? */ + u_char window_scale; + + /* If we are using window scaling, have we adjusted the + win_min field from the non-scaled window size + that appeared in the SYN packet?? */ + Bool window_stats_updated_for_scaling; + u_llong win_scaled_pkts; /* Used to calculate avg win adv */ + + /* statistics added */ + u_llong data_bytes; + u_llong data_pkts; + u_llong data_pkts_push; + u_llong unique_bytes; /* bytes sent (-FIN/SYN), excluding rexmits */ + u_llong rexmit_bytes; + u_llong rexmit_pkts; + u_llong ack_pkts; + u_llong pureack_pkts; /* mallman - pure acks, no data */ + u_long win_max; + u_long win_min; + u_llong win_tot; + u_long win_last; /* last advertised window size*/ + u_long win_zero_ct; + u_llong packets; + u_char syn_count; + u_char fin_count; + u_char reset_count; /* resets SENT */ + u_long min_seg_size; + u_long max_seg_size; + u_llong out_order_pkts; /* out of order packets */ + u_llong sacks_sent; /* sacks returned */ + u_long ipv6_segments; /* how many segments were ipv6? */ + + + /* stats on urgent data */ + u_long urg_data_bytes; + u_long urg_data_pkts; + + /* Statistics to store the number of Zero window probes + seen and the total number of bytes spent for it. */ + u_long num_zwnd_probes; + u_long zwnd_probe_bytes; + + /* stats on sequence numbers */ + + seqnum min_seq; /* smallest seq number seen */ + seqnum max_seq; /* largest seq number seen */ + seqnum latest_seq; /* most recent seq number seen */ + + /* stats on sequence space wrap arounds */ + u_int quad1, quad2, quad3, quad4; /* was every quadrant visited */ + u_int seq_wrap_count; /* wrap count */ + + /* hardware duplicate detection */ +#define SEGS_TO_REMEMBER 8 + struct str_hardware_dups { + seqnum hwdup_seq; /* sequence number */ + u_short hwdup_id; /* IP ID */ + u_long hwdup_packnum; /* packet number */ + } hardware_dups[SEGS_TO_REMEMBER]; + u_long num_hardware_dups; + u_char hardware_dups_ix; + + /* did I detect any "bad" tcp behavior? */ + /* at present, this means: */ + /* - SYNs retransmitted with different sequence numbers */ + /* - FINs retransmitted with different sequence numbers */ + Bool bad_behavior; + + /* added for initial window stats (for Mallman) */ + u_long initialwin_bytes; /* initial window (in bytes) */ + u_long initialwin_segs; /* initial window (in segments) */ + Bool data_acked; /* has any non-SYN data been acked? */ + + /* added for (estimated) congestions window stats (for Mallman) */ + u_long owin_max; + u_long owin_min; + u_llong owin_tot; + u_llong owin_wavg; /* weighted owin */ + u_llong owin_count; + u_long previous_owin_sample; + timeval previous_owin_sample_time; + + /* RTT stats for singly-transmitted segments */ + double rtt_last; /* RTT as of last good ACK (microseconds) */ + u_long rtt_min; + u_long rtt_max; + double rtt_sum; /* for averages */ + double rtt_sum2; /* sum of squares, for stdev */ + u_long rtt_count; /* for averages */ + /* RTT stats for multiply-transmitted segments */ + u_long rtt_min_last; + u_long rtt_max_last; + double rtt_sum_last; /* from last transmission, for averages */ + double rtt_sum2_last; /* sum of squares, for stdev */ + u_long rtt_count_last; /* from last transmission, for averages */ + + /* To keep track of stats for FULL SIZE segments + Simple heuristic : + We shall treat the largest packet, so far seen as the + "full size" packet and collect stats. accordingly. + Upon seeing a bigger packet, we flush all stats. collected + incorrectly and begin all over again */ + u_long rtt_full_size; + + u_long rtt_full_min; + u_long rtt_full_max; + double rtt_full_sum; /* for averages */ + double rtt_full_sum2; /* sum of squares for stdev */ + u_long rtt_full_count; /* for averages */ + + u_long rtt_3WHS; /* rtt value used to seed RTO timers */ + + /* ACK Counters */ + u_llong rtt_amback; /* ambiguous ACK */ + u_llong rtt_cumack; /* segments only cumulativly ACKed */ + u_llong rtt_nosample; /* segments ACKED, but after retransmission */ + /* of earlier segments, so sample isn't */ + /* valid */ + u_llong rtt_unkack; /* unknown ACKs ??? */ + u_llong rtt_dupack; /* duplicate ACKs */ + u_llong rtt_triple_dupack; /* triple duplicate ACKs */ + /* retransmission information */ + seqspace *ss; /* the sequence space*/ + u_long retr_max; /* maximum retransmissions ct */ + u_long retr_min_tm; /* minimum retransmissions time */ + u_long retr_max_tm; /* maximum retransmissions time */ + double retr_tm_sum; /* for averages */ + double retr_tm_sum2; /* sum of squares, for stdev */ + u_long retr_tm_count; /* for averages */ + + /* Instantaneous throughput info */ + timeval thru_firsttime; /* time of first packet this interval */ + u_long thru_bytes; /* number of bytes this interval */ + u_long thru_pkts; /* number of packets this interval */ + PLOTTER thru_plotter; /* throughput data dump file */ + timeval thru_lasttime; /* time of previous segment */ + PLINE thru_avg_line; /* average throughput line */ + PLINE thru_inst_line; /* instantaneous throughput line */ + + /* data transfer time stamps - mallman */ + timeval first_data_time; + timeval last_data_time; + + /* Time Sequence Graph info for this one */ + PLOTTER tsg_plotter; + char *tsg_plotfile; + + /* Time Line Graph */ + PLOTTER tline_plotter; + + /* Dumped RTT samples */ + MFILE *rtt_dump_file; + + /* Extracted stream contents */ + MFILE *extr_contents_file; + u_llong trunc_bytes; /* data bytes not see due to trace file truncation */ + u_llong trunc_segs; /* segments with trunc'd bytes */ + seqnum extr_lastseq; /* last sequence number we stored */ + seqnum extr_initseq; /* initial sequence number (same as SYN unless we missed it) */ + + /* RTT Graph info for this one */ + PLOTTER rtt_plotter; + PLINE rtt_line; + + /* Segment size graph */ + PLOTTER segsize_plotter; + PLINE segsize_line; + PLINE segsize_avg_line; + + /* Congestion window graph */ + PLOTTER owin_plotter; + PLINE owin_line; + PLINE rwin_line; + PLINE owin_avg_line; + PLINE owin_wavg_line; + + /* for tracking unidirectional idle time */ + timeval last_time; /* last packet SENT from this side */ + u_llong idle_max; /* maximum idle time observed (usecs) */ + + /* for looking for interesting SACK blocks */ + u_long num_sacks; + u_long max_sack_blocks; + u_long num_dsacks; + + /* for computing LEAST (see FAQ) */ + enum tcp_strains { TCP_RENO, TCP_SACK, TCP_DSACK } tcp_strain; + u_long LEAST; + char in_rto; + u_long recovered, recovered_orig, rto_segment, lastackno; + u_long event_retrans, event_dupacks; + + /* host name letter(s) */ + char *host_letter; +} tcb; + + +typedef u_short hash; + +typedef struct { + ipaddr a_address; + ipaddr b_address; + portnum a_port; + portnum b_port; + hash hash; +} tcp_pair_addrblock; + + +struct stcp_pair { + /* are we ignoring this one?? */ + Bool ignore_pair; + + /* inactive (previous instance of current connection */ + Bool inactive; + + /* endpoint identification */ + tcp_pair_addrblock addr_pair; + + /* connection naming information */ + char *a_hostname; + char *b_hostname; + char *a_portname; + char *b_portname; + char *a_endpoint; + char *b_endpoint; + + /* connection information */ + timeval first_time; + timeval last_time; + u_llong packets; + tcb a2b; + tcb b2a; + + + /* module-specific structures, if requested */ + void **pmod_info; + + /* which file this connection is from */ + char *filename; +}; +typedef struct stcp_pair tcp_pair; + +typedef struct tcphdr tcphdr; + + +extern int num_tcp_pairs; /* how many pairs are in use */ +extern tcp_pair **ttp; /* array of pointers to allocated pairs */ + +/* Wed Aug 20, 2003 - Ramani*/ +/* Prior to version 6.4.11, the data structure for storing the snapshots of + connections was a hashtable with linked lists. But this might lead to a + worst case scenario when many connections hash to the same hash table entry. + In such a case, searching for the connections degrades to searching a linked + list with a worst case complexity of O(number of connections in list). Hence + the new version implements an AVL tree in place of linked list leading to a + worst case complexity of O(ln(number of connections in tree)). + The modified data structure was tested with dumpfiles containing lots of + connections. A comparison of the profiles suggests an improvement in the time + spent in the dotrace function. Even though the AVL tree implementation + involves balancing the tree, since most of the accesses involve searching the + data structure, AVL tree performs MUCH better than linked list. + The algorithms for AVL tree implementation are based on those explained in + "Data Structures and Program Design in C by Robert L.Kruse, Bruce P.Leung, + Clovis L.Tondo". The source code for AVL tree implementation is from the + Institute of Applied Iconoclasm who put up the source code at + . We thank Georg for the source code whose mail + address has been mentioned as */ + +/* Data structures for AVL tree */ + +/* Which of a given node's subtrees is higher in the AVL tree */ +enum AVLSKEW { + EQUAL1, LEFT, RIGHT +}; + +/* Did an insertion/deletion succeed and if we need to balance the AVL tree */ +enum AVLRES { + OK, BALANCE +}; + +/* Tue Nov 17, 1998 */ +/* prior to version 5.13, we kept a hash table of all of the connections. */ +/* The most recently-accessed connections move to the front of the bucket */ +/* linked list. Unfortunately, when reading thousands of connections on */ +/* a machine with limited physical memory, this worked poorly. Every time */ +/* a new connection opened, we had to search the entire bucket, which */ +/* pulled all of the paged-out connections back into memory. The new */ +/* system keeps a quick snapshot of the connection (ptp_snap) in the */ +/* hash table. We only retrieve the connection record if the snapshot */ +/* matches. The result is that it works MUCH better when memory is low. */ +typedef struct ptp_snap { + enum AVLSKEW skew; /* Skew of the AVL tree node */ + tcp_pair_addrblock addr_pair; /* just a copy */ + struct ptp_snap *left, *right; /* Left and right trees of the AVL node */ + void *ptp; +} ptp_snap; + + +typedef struct ptp_ptr { + struct ptp_ptr *next; + struct ptp_ptr *prev; + struct ptp_snap *from; + tcp_pair *ptp; +} ptp_ptr; + +#define NONREAL_LIVE_CONN_INTERVAL 4*60 /* 4 minutes */ +#define REMOVE_LIVE_CONN_INTERVAL 8*3600 /* 8 hours */ +#define REMOVE_CLOSED_CONN_INTERVAL 8*60 /* 8 minutes */ +#define UPDATE_INTERVAL 30 /* 30 seconds */ +#define MAX_CONN_NUM 50000 /* max number of connections */ + /* for continuous mode */ + +/* minimal support for UDP "connections" */ +typedef struct ucb { + /* parent pointer */ + struct sudp_pair *pup; + struct ucb *ptwin; + + /* statistics added */ + u_llong data_bytes; + u_llong packets; + u_long min_dg_size; + u_long max_dg_size; + + /* host name letter(s) */ + char *host_letter; +} ucb; + + + +typedef tcp_pair_addrblock udp_pair_addrblock; +struct sudp_pair { + /* Are we ignoring this 'connection' ? */ + Bool ignore_pair; + + /* endpoint identification */ + udp_pair_addrblock addr_pair; + + /* connection naming information */ + char *a_hostname; + char *b_hostname; + char *a_portname; + char *b_portname; + char *a_endpoint; + char *b_endpoint; + + /* connection information */ + timeval first_time; + timeval last_time; + u_llong packets; + ucb a2b; + ucb b2a; + + /* module-specific structures, if requested */ + void **pmod_info; + + /* which file this connection is from */ + char *filename; + + /* linked list of usage */ + struct sudp_pair *next; +}; +typedef struct sudp_pair udp_pair; +typedef struct udphdr udphdr; + + +extern int num_udp_pairs; /* how many pairs are in use */ +extern udp_pair **utp; /* array of pointers to allocated pairs */ + + +/* option flags */ +extern Bool colorplot; +extern Bool dump_rtt; +extern Bool graph_rtt; +extern Bool graph_tput; +extern Bool graph_tsg; +extern Bool graph_segsize; +extern Bool graph_owin; +extern Bool graph_tline; +extern Bool hex; +extern Bool ignore_non_comp; +extern Bool resolve_ipaddresses; +extern Bool resolve_ports; +extern Bool triple_dupack_allows_data; +extern Bool verify_checksums; +extern Bool print_rtt; +extern Bool print_owin; +extern Bool printbrief; +extern Bool printsuppress; +extern Bool printem; +extern Bool printallofem; +extern Bool printticks; +extern Bool dump_packet_data; +extern Bool warn_ooo; +extern Bool warn_printtrunc; +extern Bool warn_printbadmbz; +extern Bool warn_printhwdups; +extern Bool warn_printbad_syn_fin_seq; +extern Bool show_out_order; +extern Bool show_rexmit; +extern Bool show_zero_window; +extern Bool show_urg; +extern Bool show_sacks; +extern Bool show_rtt_dongles; +extern Bool show_triple_dupack; +extern Bool show_zwnd_probes; +extern Bool use_short_names; +extern Bool save_tcp_data; +extern Bool graph_time_zero; +extern Bool graph_seq_zero; +extern Bool print_seq_zero; +extern Bool graph_zero_len_pkts; +extern Bool plot_tput_instant; +extern Bool filter_output; +extern Bool do_udp; +extern Bool show_title; +extern Bool show_rwinline; +extern Bool docheck_hw_dups; +/* constants for real-time (continuous) mode */ +extern Bool run_continuously; +extern Bool conn_num_threshold; +extern Bool xplot_all_files; +extern Bool ns_hdrs; +extern Bool dup_ack_handling; +extern Bool csv; +extern Bool tsv; +extern u_long remove_live_conn_interval; +extern u_long nonreal_live_conn_interval; +extern u_long remove_closed_conn_interval; +extern u_long update_interval; +extern u_long max_conn_num; + +extern int debug; +extern int thru_interval; +extern u_long pnum; + +/* extended variables with values */ +extern char *output_file_dir; +extern char *output_file_prefix; +extern char *xplot_title_prefix; +extern char *xplot_args; +extern char *sv; +extern char *sp; /* Separator used for long output with -separated-values */ + +/* Used to comment out header lines of the long output + * when -separated-values is requested + */ +extern char *comment; + +extern u_long ctrunc; +extern timeval current_time; +extern char *output_filename; + +/* first and last packet timestamp */ +extern timeval first_packet; +extern timeval last_packet; + + +#define MAX_NAME 20 + + + +/* external routine decls */ +double sqrt(double x); +void free(void *); +int finite(double); + +/* note that many machines have an ether_ntoa, but the output differs, as does + the prototype, so we'll include our own and change the name to avoid conflicts + with local prototypes if they exist and differ */ +char *Ether_Ntoa(struct ether_addr *e); + +/* global routine decls */ +void *MallocZ(int); +void *ReallocZ(void *oldptr, int obytes, int nbytes); +void trace_init(void); +void trace_done(void); +void seglist_init(tcb *); +void printpacket(int, int, void *, int, struct ip *, void *plast, tcb *tcb); +void plotter_vtick(PLOTTER, timeval, u_long); +void plotter_utick(PLOTTER, timeval, u_long); +void plotter_uarrow(PLOTTER, timeval, u_long); +void plotter_tick(PLOTTER, timeval, u_long, char); +void plotter_text(PLOTTER, timeval, u_long, char *, char *); +void plotter_temp_color(PLOTTER, char *color); +void plotter_ltick(PLOTTER, timeval, u_long); +void plotter_rtick(PLOTTER, timeval, u_long); +void plotter_rarrow(PLOTTER, timeval, u_long); +void plotter_plus(PLOTTER, timeval, u_long); +void plotter_perm_color(PLOTTER, char *color); +void plotter_line(PLOTTER, timeval, u_long, timeval, u_long); +void plotter_larrow(PLOTTER, timeval, u_long); +void plotter_htick(PLOTTER, timeval, u_long); +void plotter_dtick(PLOTTER, timeval, u_long); +void plotter_dot(PLOTTER, timeval, u_long); +void plotter_done(void); +void plotter_dline(PLOTTER, timeval, u_long, timeval, u_long); +void plotter_diamond(PLOTTER, timeval, u_long); +void plotter_darrow(PLOTTER, timeval, u_long); +void plotter_box(PLOTTER, timeval, u_long); +void plotter_arrow(PLOTTER, timeval, u_long, char); +void plotter_nothing(PLOTTER, timeval); +void plotter_invisible(PLOTTER, timeval, u_long); +void plotter_switch_axis(PLOTTER, Bool); +void plot_init(void); +tcp_pair *dotrace(struct ip *, struct tcphdr *ptcp, void *plast); +void PrintRawData(char *label, void *pfirst, void *plast, Bool octal); +void PrintRawDataHex(char *label, void *pfirst, void *plast); +void PrintTrace(tcp_pair *); +void UDPPrintTrace(udp_pair *); +void PrintSVHeader(void); +void PrintBrief(tcp_pair *); +void UDPPrintBrief(udp_pair *); +void OnlyConn(int); +void IgnoreConn(int); +void OnlyUDPConn(int); +void IgnoreUDPConn(int); +double elapsed(timeval, timeval); +void tv_sub(struct timeval *plhs, struct timeval rhs); +void tv_add(struct timeval *plhs, struct timeval rhs); +int tv_cmp(struct timeval lhs, struct timeval rhs); +Bool tv_same(struct timeval lhs, struct timeval rhs); +char *elapsed2str(double etime); +int ConnReset(tcp_pair *); +int ConnComplete(tcp_pair *); +u_int SynCount(tcp_pair *ptp); +u_int FinCount(tcp_pair *ptp); +char *ts2ascii(timeval *); +char *ts2ascii_date(timeval *); +char *ServiceName(portnum); +char *HostName(ipaddr); +char *HostAddr(ipaddr); +char *HostLetter(llong); +char *NextHostLetter(void); +char *EndpointName(ipaddr,portnum); +PLOTTER new_plotter(tcb *plast, char *filename, char *title, + char *xlabel, char *ylabel, char *suffix); +int rexmit(tcb *, seqnum, seglen, Bool *); +enum t_ack ack_in(tcb *, seqnum, unsigned tcp_data_length, u_long eff_win); +Bool IsRTO(tcb *ptcb, seqnum s); +void DoThru(tcb *ptcb, int nbytes); +struct mfile *Mfopen(char *fname, char *mode); +void Minit(void); +int Mfileno(MFILE *pmf); +int Mvfprintf(MFILE *pmf, char *format, va_list ap); +int Mfwrite(void *buf, u_long size, u_long nitems, MFILE *pmf); +long Mftell(MFILE *pmf); +int Mfseek(MFILE *pmf, long offset, int ptrname); +int Mfprintf(MFILE *pmf, char *format, ...); +int Mfflush(MFILE *pmf); +int Mfclose(MFILE *pmf); +int Mfpipe(int pipes[2]); +struct tcp_options *ParseOptions(struct tcphdr *ptcp, void *plast); +FILE *CompOpenHeader(char *filename); +FILE *CompOpenFile(char *filename); +void CompCloseFile(char *filename); +void CompFormats(void); +int CompIsCompressed(void); +Bool FileIsStdin(char *filename); +struct tcb *ptp2ptcb(tcp_pair *ptp, struct ip *pip, struct tcphdr *ptcp); +void PcapSavePacket(char *filename, struct ip *pip, void *plast); +void StringToArgv(char *buf, int *pargc, char ***pargv); +void CopyAddr(tcp_pair_addrblock *, struct ip *pip,portnum,portnum); +int WhichDir(tcp_pair_addrblock *, tcp_pair_addrblock *); +int SameConn(tcp_pair_addrblock *, tcp_pair_addrblock *, int *); +Bool ip_cksum_valid(struct ip *pip, void *plast); +Bool tcp_cksum_valid(struct ip *pip, struct tcphdr *ptcp, void *plast); +Bool udp_cksum_valid(struct ip *pip, struct udphdr *pudp, void *plast); +ipaddr *str2ipaddr(char *str); +int IPcmp(ipaddr *pipA, ipaddr *pipB); +void ModulesPerOldConn(tcp_pair *ptp); + +/* Memory allocation routines with page boundaries */ +tcp_pair *MakeTcpPair(void); +void FreeTcpPair(tcp_pair *ptr); +udp_pair *MakeUdpPair(void); +void FreeUdpPair(udp_pair *ptr); +seqspace *MakeSeqspace(void); +void FreeSeqspace(seqspace *ptr); +ptp_snap *MakePtpSnap(void); +void FreePtpSnap(ptp_snap *ptr); +segment *MakeSegment(void); +void FreeSegment(segment *ptr); +quadrant *MakeQuadrant(void); +void FreeQuadrant(quadrant *ptr); +ptp_ptr *MakePtpPtr(void); +void FreePtpPtr(ptp_ptr *ptr); +void freequad(quadrant **); + +/* AVL tree support routines */ +enum AVLRES SnapInsert(ptp_snap **n, ptp_snap *new_node); +enum AVLRES SnapRemove(ptp_snap **n, tcp_pair_addrblock address); +int AVL_WhichDir(tcp_pair_addrblock *ptpa1, tcp_pair_addrblock *ptpa2); + +/* high-level line drawing */ +PLINE new_line(PLOTTER pl, char *label, char *color); +void extend_line(PLINE pline, timeval xval, int yval); + +/* UDP support routines */ +void udptrace_init(void); +void udptrace_done(void); +udp_pair *udpdotrace(struct ip *pip, struct udphdr *pudp, void *plast); + +/* filter routines */ +void HelpFilter(void); +void ParseFilter(char *expr); +Bool PassesFilter(tcp_pair *ptp); + +/* simple string expansion for file names, directories, etc */ +char *ExpandFormat(const char *format); + + +/* TCP flags macros */ +#define SYN_SET(ptcp)((ptcp)->th_flags & TH_SYN) +#define FIN_SET(ptcp)((ptcp)->th_flags & TH_FIN) +#define ACK_SET(ptcp)((ptcp)->th_flags & TH_ACK) +#define RESET_SET(ptcp)((ptcp)->th_flags & TH_RST) +#define PUSH_SET(ptcp)((ptcp)->th_flags & TH_PUSH) +#define URGENT_SET(ptcp)((ptcp)->th_flags & TH_URG) +#define FLAG6_SET(ptcp)((ptcp)->th_flags & 0x40) +#define FLAG7_SET(ptcp)((ptcp)->th_flags & 0x80) + +/* Changed the following macros to reflect the correct position +of bits as specified in RFC 2481 and draft-ietf-tsvwg-ecn-04.txt */ +/* + #define CWR_SET(ptcp) (TH_X2((ptcp)) & TH_CWR) + #define ECN_ECHO_SET(ptcp)(TH_X2((ptcp)) & TH_ECN_ECHO) +*/ + +#define CWR_SET(ptcp) (TH_FLAGS((ptcp)) & TH_CWR) +#define ECN_ECHO_SET(ptcp) (TH_FLAGS((ptcp)) & TH_ECN_ECHO) + +/* connection directions */ +#define A2B 1 +#define B2A -1 + +/* If the AVL node is to left or right in the AVL tree */ +/* Words "LEFT" and "RIGHT" have already been taken in an enum + * above. Let us call them LT, RT just not to make it ambiguous for ourselves + * or the compiler or both :-) + */ +#define LT -2 +#define RT 2 + +/*macros for maintaining the seqspace used for rexmit*/ +#define QUADSIZE (0x40000000) +#define QUADNUM(seq) ((seq>>30)+1) +#define IN_Q1(seq) (QUADNUM(seq)==1) +#define IN_Q2(seq) (QUADNUM(seq)==2) +#define IN_Q3(seq) (QUADNUM(seq)==3) +#define IN_Q4(seq) (QUADNUM(seq)==4) +#define FIRST_SEQ(quadnum) (QUADSIZE*(quadnum-1)) +#define LAST_SEQ(quadnum) ((QUADSIZE*quadnum)-1) /* bug fix by Priya */ +#define BOUNDARY(beg,fin) (QUADNUM((beg)) != QUADNUM((fin))) + + +/* physical layers currently understood */ +#define PHYS_ETHER 1 +#define PHYS_FDDI 2 + +/* + * SEQCMP - sequence space comparator + * This handles sequence space wrap-around. Overlow/Underflow makes + * the result below correct ( -, 0, + ) for any a, b in the sequence + * space. Results: result implies + * - a < b + * 0 a = b + * + a > b + */ +#define SEQCMP(a, b) ((long)(a) - (long)(b)) +#define SEQ_LESSTHAN(a, b) (SEQCMP(a,b) < 0) +#define SEQ_GREATERTHAN(a, b) (SEQCMP(a,b) > 0) + + +/* SACK TCP options (not an RFC yet, mostly from draft and RFC 1072) */ +/* I'm assuming, for now, that the draft version is correct */ +/* sdo -- Tue Aug 20, 1996 */ +#define TCPOPT_SACK_PERM 4 /* sack-permitted option */ +#define TCPOPT_SACK 5 /* sack attached option */ +#define MAX_SACKS 10 /* max number of sacks per segment (rfc1072) */ +typedef struct sack_block { + seqnum sack_left; /* left edge */ + seqnum sack_right; /* right edge */ +} sack_block; + +#define MAX_UNKNOWN 16 +typedef struct opt_unknown { + u_char unkn_opt; + u_char unkn_len; +} opt_unknown; + +/* RFC 1323 TCP options (not usually in tcp.h yet) */ +#define TCPOPT_WS 3 /* window scaling */ +#define TCPOPT_TS 8 /* timestamp */ + +/* other options... */ +#define TCPOPT_ECHO 6 /* echo (rfc1072) */ +#define TCPOPT_ECHOREPLY 7 /* echo (rfc1072) */ +#define TCPOPT_TIMESTAMP 8 /* timestamps (rfc1323) */ +#define TCPOPT_CC 11 /* T/TCP CC options (rfc1644) */ +#define TCPOPT_CCNEW 12 /* T/TCP CC options (rfc1644) */ +#define TCPOPT_CCECHO 13 /* T/TCP CC options (rfc1644) */ + +/* RFC 2481 (ECN) IP and TCP flags (not usually defined yet) */ +#define IPTOS_ECT 0x02 /* ECN-Capable Transport */ +#define IPTOS_CE 0x01 /* Experienced Congestion */ + +// Modified the following macros to reflect the +// correct bit positions for CWR and ECE as specified in +// RFC 2481 and the latest draft: draft-ietf-tsvwg-ecn-04.txt. +// The bits CWR and ECE are actually the most significant +// bits in the TCP flags octet respectively. + +/*#define TH_ECN_ECHO 0x02 */ /* Used by receiver to echo CE bit */ +/*#define TH_CWR 0x01 */ /* Congestion Window Reduced */ + +#define TH_CWR 0x80 /* Used by sender to indicate congestion + window size reduction. */ +#define TH_ECN_ECHO 0x40 /* Used by receiver to echo CE bit. */ + + +/* some compilers seem to want to make "char" unsigned by default, */ +/* which is breaking stuff. Rather than introduce (more) ugly */ +/* machine dependencies, I'm going to FORCE some chars to be */ +/* signed... */ +typedef signed char s_char; + +struct tcp_options { + short mss; /* maximum segment size */ + s_char ws; /* window scale (1323) */ + long tsval; /* Time Stamp Val (1323) */ + long tsecr; /* Time Stamp Echo Reply (1323) */ + + Bool sack_req; /* sacks requested */ + s_char sack_count; /* sack count in this packet */ + sack_block sacks[MAX_SACKS]; /* sack blocks */ + + /* echo request and reply */ + /* assume that value of -1 means unused (?) */ + u_long echo_req; + u_long echo_repl; + + /* T/TCP stuff */ + /* assume that value of -1 means unused (?) */ + u_long cc; + u_long ccnew; + u_long ccecho; + + /* record the stuff we don't understand, too */ + char unknown_count; /* number of unknown options */ + opt_unknown unknowns[MAX_UNKNOWN]; /* unknown options */ +}; + + + +/* + * File extensions to use + * + */ +#define RTT_DUMP_FILE_EXTENSION "_rttraw.dat" +#define RTT_GRAPH_FILE_EXTENSION "_rtt.xpl" +#define PLOT_FILE_EXTENSION "_tsg.xpl" +#define SEGSIZE_FILE_EXTENSION "_ssize.xpl" +#define OWIN_FILE_EXTENSION "_owin.xpl" +#define TLINE_FILE_EXTENSION "_tline.xpl" +#define THROUGHPUT_FILE_EXTENSION "_tput.xpl" +#define CONTENTS_FILE_EXTENSION "_contents.dat" + +/* name of file to store filtered output into */ +#define PASS_FILTER_FILENAME "PF" + +/* name of the resource file */ +#define TCPTRACE_RC_FILE ".tcptracerc" + +/* name of the argument envariable */ +#define TCPTRACE_ENVARIABLE "TCPTRACEOPTS" + +/* packet-reading options... */ +/* the type for a packet reading routine */ +typedef int pread_f(struct timeval *, int *, int *, void **, + int *, struct ip **, void **); + +/* give the prototypes for the is_GLORP() routines supported */ +#ifdef GROK_SNOOP + pread_f *is_snoop(char *); +#endif /* GROK_SNOOP */ +#ifdef GROK_NETM + pread_f *is_netm(char *); +#endif /* GROK_NETM */ +#ifdef GROK_TCPDUMP + pread_f *is_tcpdump(char *); +#endif /* GROK_TCPDUMP */ +#ifdef GROK_ETHERPEEK + pread_f *is_EP(char *); +#endif /* GROK_ETHERPEEK */ +#ifdef GROK_NS + pread_f *is_ns(char *); +#endif /* GROK_NS */ +#ifdef GROK_NLANR + pread_f *is_nlanr(char *); +#endif /* GROK_NLANR */ +#ifdef GROK_NETSCOUT + pread_f *is_netscout(char *); +#endif /* GROK_NETSCOUT */ +#ifdef GROK_ERF + pread_f *is_erf(char *); +#endif /* GROK_ERF */ + +#ifndef __VMS +/* I've had problems with the memcpy function that gcc stuffs into the program + and alignment problems. This should fix it! */ +void *MemCpy(void *p1, void *p2, size_t n); /* in tcptrace.c */ +#define memcpy(p1,p2,n) MemCpy(p1,p2,n) +#endif /* __VMS */ + +#ifdef __VMS +#define snprintf snprintf_vms +int snprintf_vms(char *str, size_t len, const char *fmt, ...); +#endif + +/* + * timeval compare macros + */ +#define tv_ge(lhs,rhs) (tv_cmp((lhs),(rhs)) >= 0) +#define tv_gt(lhs,rhs) (tv_cmp((lhs),(rhs)) > 0) +#define tv_le(lhs,rhs) (tv_cmp((lhs),(rhs)) <= 0) +#define tv_lt(lhs,rhs) (tv_cmp((lhs),(rhs)) < 0) +#define tv_eq(lhs,rhs) (tv_cmp((lhs),(rhs)) == 0) + +/* handy constants */ +#define US_PER_SEC 1000000 /* microseconds per second */ +#define MS_PER_SEC 1000 /* milliseconds per second */ + + +/* + * Macros to simplify access to IPv4/IPv6 header fields + */ +#define PIP_VERS(pip) (IP_V((struct ip *)(pip))) +#define PIP_ISV6(pip) (PIP_VERS(pip) == 6) +#define PIP_ISV4(pip) (PIP_VERS(pip) == 4) +#define PIP_V6(pip) ((struct ipv6 *)(pip)) +#define PIP_V4(pip) ((struct ip *)(pip)) +#define PIP_EITHERFIELD(pip,fld4,fld6) \ + (PIP_ISV4(pip)?(PIP_V4(pip)->fld4):(PIP_V6(pip)->fld6)) +#define PIP_LEN(pip) (PIP_EITHERFIELD(pip,ip_len,ip6_lngth)) + +/* + * Macros to simplify access to IPv4/IPv6 addresses + */ +#define ADDR_VERSION(paddr) ((paddr)->addr_vers) +#define ADDR_ISV4(paddr) (ADDR_VERSION((paddr)) == 4) +#define ADDR_ISV6(paddr) (ADDR_VERSION((paddr)) == 6) +struct ipaddr *IPV4ADDR2ADDR(struct in_addr *addr4); +struct ipaddr *IPV6ADDR2ADDR(struct in6_addr *addr6); + +/* + * Macros to check for congestion experienced bits + */ +#define IP_CE(pip) (((struct ip *)(pip))->ip_tos & IPTOS_CE) +#define IP_ECT(pip) (((struct ip *)(pip))->ip_tos & IPTOS_ECT) + +/* + * fixes for various systems that aren't exactly like Solaris + */ +#ifndef IP_MAXPACKET +#define IP_MAXPACKET 65535 +#endif /* IP_MAXPACKET */ + +/* max 32 bit number */ +#define MAX_32 (0x100000000LL) + +#ifndef ETHERTYPE_REVARP +#define ETHERTYPE_REVARP 0x8035 +#endif /* ETHERTYPE_REVARP */ + +#ifndef ETHERTYPE_VLAN +#define ETHERTYPE_VLAN 0x8100 +#endif /* 802.1Q Virtual LAN */ + +/* support for PPPoE encapsulation added by Yann Samama (ysamama@nortelnetworks.com)*/ +#ifndef ETHERTYPE_PPPOE_SESSION +#define ETHERTYPE_PPPOE_SESSION 0x8864 +#endif /* PPPoE ether type */ +#ifndef PPPOE_SIZE +#define PPPOE_SIZE 22 +#endif /* PPPOE header size */ + diff --git a/tcptrace.man b/tcptrace.man new file mode 100644 index 0000000..e824f93 --- /dev/null +++ b/tcptrace.man @@ -0,0 +1,403 @@ +.TH tcptrace 1 "14 Oct 2002" +.SH NAME +tcptrace - a TCP connection analysis tool +.SH SYNOPSIS +.B tcptrace [options] filename +.SH DESCRIPTION +tcptrace +takes a tcpdump file specified on the command line (or from standard input) +and produces a summarization of the connections. +.SH "OPTIONS" +.I Output format options +.TP 5 +.B \-b +brief output format +.TP 5 +.B \-l +long output format +.TP 5 +.B \-r +print rtt statistics (slower for large files) +.TP 5 +.B \-W +report on estimated congestion window (not generally useful) +.TP 5 +.B \-q +no output (if you just want modules output) +.PP +.I Graphing options +.TP 5 +.B \-T +create throughput graph[s], (average over 10 segments, see -A) +.TP 5 +.B \-R +create rtt sample graph[s] +.TP 5 +.B \-S +create time sequence graph[s] +.TP 5 +.B \-N +create owin graph[s] (_o_utstanding data on _N_etwork) +.TP 5 +.B \-F +create segsize graph[s] +.TP 5 +.B \-G +create ALL graphs +.PP +.I Output format detail options +.TP 5 +.B \-D +print in decimal +.TP 5 +.B \-X +print in hexadecimal +.TP 5 +.B \-n +don't resolve host or service names (much faster) +.TP 5 +.B \-s +use short names (list "picard.cs.ohiou.edu" as just "picard") +.PP +.I Connection filtering options +.TP 5 +.B \-iN +ignore connection N (can use multiple times) +.TP 5 +.B \-oN[-M] +only connection N (or N through M). Arg can be used many times. +In N is a file rather than a number, read list from file instead. +.TP 5 +.B \-c +ignore non-complete connections (didn't see syn's and fin's) +.TP 5 +.B \-BN +first segment number to analyze (default 1) +.TP 5 +.B \-EN +last segment number to analyze (default last in file) +.PP +.I Graphing detail options +.TP 5 +.B \-C +produce color plot[s] +.TP 5 +.B \-M +produce monochrome (b/w) plot[s] +.TP 5 +.B \-AN +Average N segments for throughput graphs, default is 10 +.TP 5 +.B \-z +zero axis options: +.TP 5 +.B \-z +plot time axis from 0 rather than wall clock time (backward compat) +.TP 5 +.B \-zx +plot time axis from 0 rather than wall clock time +.TP 5 +.B \-zy +plot sequence numbers from 0 (time sequence graphs only) +.TP 5 +.B \-zxy +plot both axes from 0 +.TP 5 +.B \-y +omit the (yellow) instantaneous throughput points in tput graph +.PP +.I Misc options +.TP 5 +.B \-Z +dump raw rtt sample times to file[s] +.TP 5 +.B \-p +print all packet contents (can be very long) +.TP 5 +.B \-P +print packet contents for selected connections +.TP 5 +.B \-t +\'tick' off the packet numbers as a progress indication +.TP 5 +.B \-v +print version information and exit +.TP 5 +.B \-w +print various warning messages +.TP 5 +.B \-d +whistle while you work (enable debug, use -d -d for more output) +.TP 5 +.B \-e +extract contents of each TCP stream into file +.TP 5 +.B \-h +print help messages +.TP 5 +.B \-u +print minimal UDP information too +.TP 5 +.B \-Ofile +dump matched packets to tcpdump file 'file' +.TP 5 +.B \+[v] +reverse the setting of the -[v] flag (for booleans) +.PP +.I Extended boolean options +(unambiguous prefixes also work) +.TP 5 +.B \--showsacks +show SACK blocks on time sequence graphs (default) +.TP 5 +.B \--noshowsacks +DON'T show SACK blocks on time sequence graphs +.TP 5 +.B \--showrexmit +mark retransmits on time sequence graphs (default) +.TP 5 +.B \--noshowrexmit +DON'T mark retransmits on time sequence graphs +.TP 5 +.B \--showoutorder +mark out-of-order on time sequence graphs (default) +.TP 5 +.B \--noshowoutorder +DON'T mark out-of-order on time sequence graphs +.TP 5 +.B \--showzerowindow +mark zero windows on time sequence graphs (default) +.TP 5 +.B \--noshowzerowindow +DON'T mark zero windows on time sequence graphs +.TP 5 +.B \--showurg +mark packets with URGENT bit set on the time sequence graphs (default) +.TP 5 +.B \--noshowurg +DON'T mark packets with URGENT bit set on the time sequence graphs +.TP 5 +.B \--showrttdongles +mark non-RTT-generating ACKs with special symbols +.TP 5 +.B \--noshowrttdongles +DON'T mark non-RTT-generating ACKs with special symbols (default) +.TP 5 +.B \--showdupack3 +mark triple dupacks on time sequence graphs (default) +.TP 5 +.B \--noshowdupack3 +DON'T mark triple dupacks on time sequence graphs +.TP 5 +.B \--showzerolensegs +show zero length packets on time sequence graphs (default) +.TP 5 +.B \--noshowzerolensegs +DON'T show zero length packets on time sequence graphs +.TP 5 +.B \--showzwndprobes +show zero window probe packets on time sequence graphs (default) +.TP 5 +.B \--noshowzwndprobes +DON'T show zero window probe packets on time sequence graphs +.TP 5 +.B \--showtitle +show title on the graphs (default) +.TP 5 +.B \--noshowtitle +DON'T show title on the graphs +.TP 5 +.B \--res_addr +resolve IP addresses into names (may be slow) (default) +.TP 5 +.B \--nores_addr +DON'T resolve IP addresses into names (may be slow) +.TP 5 +.B \--res_port +resolve port numbers into names (default) +.TP 5 +.B \--nores_port +DON'T resolve port numbers into names +.TP 5 +.B \--checksum +verify IP and TCP checksums +.TP 5 +.B \--nochecksum +DON'T verify IP and TCP checksums (default) +.TP 5 +.B \--dupack3_data +count a duplicate ACK carrying data as a triple dupack +.TP 5 +.B \--nodupack3_data +DON'T count a duplicate ACK carrying data as a triple dupack (default) +.TP 5 +.B \--check_hwdups +check for 'hardware' dups (default) +.TP 5 +.B \--nocheck_hwdups +DON'T check for 'hardware' dups +.TP 5 +.B \--warn_ooo +print warnings when packets timestamps are out of order +.TP 5 +.B \--nowarn_ooo +DON'T print warnings when packets timestamps are out of order (default) +.TP 5 +.B \--warn_printtrunc +print warnings when packets are too short to analyze +.TP 5 +.B \--nowarn_printtrunc +DON'T print warnings when packets are too short to analyze (default) +.TP 5 +.B \--warn_printbadmbz +print warnings when MustBeZero TCP fields are NOT 0 +.TP 5 +.B \--nowarn_printbadmbz +DON'T print warnings when MustBeZero TCP fields are NOT 0 (default) +.TP 5 +.B \--warn_printhwdups +print warnings for hardware duplicates +.TP 5 +.B \--nowarn_printhwdups +DON'T print warnings for hardware duplicates (default) +.TP 5 +.B \--warn_printbadcsum +print warnings when packets with bad checksums +.TP 5 +.B \--nowarn_printbadcsum +DON'T print warnings when packets with bad checksums (default) +.TP 5 +.B \--warn_printbad_syn_fin_seq +print warnings when SYNs or FINs rexmitted with different sequence numbers +.TP 5 +.B \--nowarn_printbad_syn_fin_seq +DON'T print warnings when SYNs or FINs rexmitted with different sequence numbers (default) +.TP 5 +.B \--dump_packet_data +print all packets AND dump the TCP/UDP data +.TP 5 +.B \--nodump_packet_data +DON'T print all packets AND dump the TCP/UDP data (default) +.TP 5 +.B \--continuous +run continuously and don't provide a summary +.TP 5 +.B \--nocontinuous +DON'T run continuously and don't provide a summary (default) +.TP 5 +.B \--print_seq_zero +print sequence numbers as offset from initial sequence number +.TP 5 +.B \--noprint_seq_zero +DON'T print sequence numbers as offset from initial sequence number (default) +.TP 5 +.B \--limit_conn_num +limit the maximum number of connections kept at a time in real-time mode +.TP 5 +.B \--nolimit_conn_num +DON'T limit the maximum number of connections kept at a time in real-time mode (default) +.TP 5 +.B \--xplot_all_files +display all generated xplot files at the end +.TP 5 +.B \--noxplot_all_files +DON'T display all generated xplot files at the end (default) +.TP 5 +.B \--ns_hdrs +assume that ns has the useHeaders_flag true (uses IP+TCP headers) (default) +.TP 5 +.B \--nons_hdrs +DON'T assume that ns has the useHeaders_flag true (uses IP+TCP headers) +.TP 5 +.B \--csv +display the long output as comma separated values +.TP 5 +.B \--nocsv +DON'T display the long output as comma separated values (default) +.TP 5 +.B \--tsv +display the long output as tab separated values +.TP 5 +.B \--notsv +DON'T display the long output as tab separated values (default) +.PP +.I Extended variable options +(unambiguous prefixes also work) +.TP 5 +.B \--output_dir=``STR'' +directory where all output files are placed (default: '') +.TP 5 +.B \--output_prefix=``STR'' +prefix all output files with this string (default: '') +.TP 5 +.B \--xplot_title_prefix=``STR'' +prefix to place in the titles of all xplot files (default: '') +.TP 5 +.B \--update_interval=``STR'' +time interval for updates in real-time mode (default: '') +.TP 5 +.B \--max_conn_num=``STR'' +maximum number of connections to keep at a time in real-time mode (default: '') +.TP 5 +.B \--remove_live_conn_interval=``STR'' +idle time after which an open connection is removed in real-time mode (default: '') +.TP 5 +.B \--remove_closed_conn_interval=``STR'' +time interval after which a closed connection is removed in real-time mode (default: '') +.TP 5 +.B \--xplot_args=``STR'' +arguments to pass to xplot, if we are calling xplot from here (default: '') +.TP 5 +.B \--sv=``STR'' +separator to use for long output with -separated-values (default: '') +.PP +.I Included Modules +.TP 5 + http Http analysis package +.TP 5 + tcplib TCPLib analysis package +.TP 5 + traffic traffic analysis package +.TP 5 + slice traffic efficiency data by time slices +.TP 5 + rttgraph round trip time analysis graphs +.TP 5 + collie connection summary package +.TP 5 + realtime example real-time package +.PP +For module-specific options, please use `tcptrace -hxargs` + +.I Filter Variables: +.PP +Please use 'tcptrace -hfilter' for the complete listing of filter variables. + +.I Filter Syntax: +.PP +Please use 'tcptrace -hfilter' for filter syntax. + +.PP +.SH ENVIRONMENT +Options are first read from the file $HOME/.tcptracerc +(if it exists), and then from the environment variable TCPTRACEOPTS +(if it exists), and finally from the command line. +.SH AUTHOR +Shawn Ostermann (ostermann@cs.ohiou.edu) +.SH CREDITS +Thanks to Mark Foster (mafoster@george.arc.nasa.gov) for writing this manual +page. Thanks to Avinash Lakhiani (alakhian@irg.cs.ohiou.edu) for updating it. +.SH FILES +Dump File Names +.br +Trailing (unrecognized) arguments are taken to be one or more filenames. +The files can be compressed, see compress.h for configuration. +If the dump file name is 'stdin', then we read from standard input +rather than from a file. +.SH SEE ALSO +.TP 8 +.B xplot +an interactive tool for examining .xpl files output by tcptrace. +.TP 8 +.B jPlot +a Java version of xplot. diff --git a/tcptrace.opt b/tcptrace.opt new file mode 100755 index 0000000..c3ed458 --- /dev/null +++ b/tcptrace.opt @@ -0,0 +1,36 @@ +obj$:version +obj$:compress +obj$:etherpeek +obj$:gcache +obj$:mfiles +obj$:names +obj$:netm +obj$:output +obj$:plotter +obj$:print +obj$:rexmit +obj$:snoop +obj$:nlanr +obj$:tcpdump +obj$:tcptrace +obj$:thruput +obj$:trace +obj$:ipv6 +obj$:filt_scanner +obj$:filt_parser +obj$:filter +obj$:udp +obj$:ns +obj$:netscout +obj$:pool +obj$:poolaccess +obj$:dstring +obj$:mod_http +obj$:mod_traffic +obj$:mod_rttgraph +obj$:mod_tcplib +obj$:mod_collie +obj$:mod_slice +obj$:mod_realtime +obj$:dyncounter +obj$:snprintf_vms diff --git a/thruput.c b/thruput.c new file mode 100644 index 0000000..38ccab9 --- /dev/null +++ b/thruput.c @@ -0,0 +1,159 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/thruput.c,v 5.5 2003/11/19 14:38:05 sdo Exp $"; + + + + +void +DoThru( + tcb *ptcb, + int nbytes) +{ + double etime; + double thruput; + char *myname, *hisname; + + /* init, if not already done */ + if (ZERO_TIME(&ptcb->thru_firsttime)) { + char title[210]; + + ptcb->thru_firsttime = current_time; + ptcb->thru_lasttime = current_time; + ptcb->thru_pkts = 1; + ptcb->thru_bytes = nbytes; + + + /* bug fix from Michele Clark - UNC */ + if (&ptcb->ptp->a2b == ptcb) { + myname = ptcb->ptp->a_endpoint; + hisname = ptcb->ptp->b_endpoint; + } else { + myname = ptcb->ptp->b_endpoint; + hisname = ptcb->ptp->a_endpoint; + } + /* create the plotter file */ + snprintf(title,sizeof(title),"%s_==>_%s (throughput)", + myname, hisname); + ptcb->thru_plotter = new_plotter(ptcb,NULL,title, + "time","thruput (bytes/sec)", + THROUGHPUT_FILE_EXTENSION); + if (graph_time_zero) { + /* set graph zero points */ + plotter_nothing(ptcb->thru_plotter, current_time); + } + + /* create lines for average and instantaneous values */ + ptcb->thru_avg_line = + new_line(ptcb->thru_plotter, "avg. tput", "blue"); + ptcb->thru_inst_line = + new_line(ptcb->thru_plotter, "inst. tput", "red"); + + return; + } + + /* if no data, then nothing to do */ + if (nbytes == 0) + return; + + /* see if we should output the stats yet */ + if (ptcb->thru_pkts+1 >= thru_interval) { + + /* compute stats for this interval */ + etime = elapsed(ptcb->thru_firsttime,current_time); + if (etime == 0.0) + etime = 1000; /* ick, what if "no time" has passed?? */ + thruput = (double) ptcb->thru_bytes / ((double) etime / 1000000.0); + + /* instantaneous plot */ + extend_line(ptcb->thru_inst_line, + current_time, (int) thruput); + + /* compute stats for connection lifetime */ + etime = elapsed(ptcb->ptp->first_time,current_time); + if (etime == 0.0) + etime = 1000; /* ick, what if "no time" has passed?? */ + thruput = (double) ptcb->data_bytes / ((double) etime / 1000000.0); + + /* long-term average */ + extend_line(ptcb->thru_avg_line, + current_time, (int) thruput); + + /* reset stats for this interval */ + ptcb->thru_firsttime = current_time; + ptcb->thru_pkts = 0; + ptcb->thru_bytes = 0; + } + + /* immediate value in yellow ticks */ + if (plot_tput_instant) { + etime = elapsed(ptcb->thru_lasttime,current_time); + if (etime == 0.0) + etime = 1000; /* ick, what if "no time" has passed?? */ + thruput = (double) nbytes / ((double) etime / 1000000.0); + plotter_temp_color(ptcb->thru_plotter,"yellow"); + plotter_dot(ptcb->thru_plotter, + current_time, (int) thruput); + } + + /* add in the latest packet */ + ptcb->thru_lasttime = current_time; + ++ptcb->thru_pkts; + ptcb->thru_bytes += nbytes; +} diff --git a/trace.c b/trace.c new file mode 100644 index 0000000..c13f74c --- /dev/null +++ b/trace.c @@ -0,0 +1,3625 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/trace.c,v 5.74 2004/11/04 22:43:51 mramadas Exp $"; + + +#include "gcache.h" + + +/* locally global variables */ +static int tcp_packet_count = 0; +static int search_count = 0; +static int active_conn_count = 0; +static int closed_conn_count = 0; +static Bool *ignore_pairs = NULL;/* which ones will we ignore */ +static Bool bottom_letters = 0; /* I don't use this anymore */ +static Bool more_conns_ignored = FALSE; +static double sample_elapsed_time=0; /* to keep track of owin samples */ +static double total_elapsed_time=0; /* to keep track of owin samples */ +static int num_removed_tcp_pairs = 0; +static int tline_left = 0; /* left and right time lines for the time line charts */ +static int tline_right = 0; + +/* provided globals */ +int num_tcp_pairs = -1; /* how many pairs we've allocated */ +tcp_pair **ttp = NULL; /* array of pointers to allocated pairs */ +int max_tcp_pairs = 64; /* initial value, automatically increases */ +u_long tcp_trace_count = 0; + + +/* local routine definitions */ +static tcp_pair *NewTTP(struct ip *, struct tcphdr *); +static tcp_pair *FindTTP(struct ip *, struct tcphdr *, int *, ptp_ptr **); +static void MoreTcpPairs(int num_needed); +static void ExtractContents(u_long seq, u_long tcp_data_bytes, + u_long saved_data_bytes, void *pdata, tcb *ptcb); +static Bool check_hw_dups(u_short id, seqnum seq, tcb *ptcb); +static u_long SeqRep(tcb *ptcb, u_long seq); +static void UpdateConnLists(ptp_ptr *tcp_ptr, struct tcphdr *ptcp); +static void UpdateConnList(ptp_ptr *tcp_ptr, + const Bool valid, + ptp_ptr **conn_list_head, + ptp_ptr **conn_list_tail); +static void RemoveOldConns(ptp_ptr **conn_list_head, + ptp_ptr **conn_list_tail, + const unsigned expire_interval, + const Bool num_conn_check, + int *conn_count); +static void RemoveConn(const ptp_ptr *tcp_ptr); +static void RemoveTcpPair(const ptp_ptr *tcp_ptr); +static Bool MissingData(tcp_pair *ptp); + +/* options */ +Bool show_zero_window = TRUE; +Bool show_rexmit = TRUE; +Bool show_out_order = TRUE; +Bool show_sacks = TRUE; +Bool show_rtt_dongles = FALSE; +Bool show_triple_dupack = TRUE; +Bool show_zwnd_probes = TRUE; +Bool nonames = FALSE; +Bool use_short_names = FALSE; +Bool show_urg = TRUE; +int thru_interval = 10; /* in segments */ + + +/* what colors to use */ +/* choose from: "green" "red" "blue" "yellow" "purple" "orange" + "magenta" "pink" */ +char *window_color = "yellow"; +char *ack_color = "green"; +char *sack_color = "purple"; +char *data_color = "white"; +char *retrans_color = "red"; +char *hw_dup_color = "blue"; +char *out_order_color = "pink"; +char *text_color = "magenta"; +char *default_color = "white"; +char *synfin_color = "orange"; +char *push_color = "white"; /* top arrow for PUSHed segments */ +char *ecn_color = "yellow"; +char *urg_color = "red"; +char *probe_color = "orange"; +char *a2b_seg_color = "green"; /* colors for segments on the time line chart */ +char *b2a_seg_color = "yellow"; + + +/* ack diamond dongle colors */ +char *ackdongle_nosample_color = "blue"; +char *ackdongle_ambig_color = "red"; + + + +/* + * ipcopyaddr: copy an IPv4 or IPv6 address + */ +static inline void IP_COPYADDR (ipaddr *ptoaddr, ipaddr *pfromaddr) +{ + if (ADDR_ISV6(pfromaddr)) { + memcpy(ptoaddr->un.ip6.s6_addr, pfromaddr->un.ip6.s6_addr, 16); + ptoaddr->addr_vers = 6; + } else { + ptoaddr->un.ip4.s_addr = pfromaddr->un.ip4.s_addr; + ptoaddr->addr_vers = 4; + } +} + + + +/* + * ipsameaddr: test for equality of two IPv4 or IPv6 addresses + */ +static inline int IP_SAMEADDR (ipaddr *paddr1, ipaddr *paddr2) +{ + int ret = 0; + if (ADDR_ISV4(paddr1)) { + if (ADDR_ISV4(paddr2)) + ret = (paddr1->un.ip4.s_addr == paddr2->un.ip4.s_addr); + } else { + /* already know ADDR_ISV6(paddr1) */ + if (ADDR_ISV6(paddr2)) + ret = (memcmp(paddr1->un.ip6.s6_addr, + paddr2->un.ip6.s6_addr,16) == 0); + } + if (debug > 3) + printf("SameAddr(%s(%d),%s(%d)) returns %d\n", + HostName(*paddr1), ADDR_VERSION(paddr1), + HostName(*paddr2), ADDR_VERSION(paddr2), + ret); + return ret; +} + +/* + * iplowaddr: test if one IPv4 or IPv6 address is lower than the second one + */ +static inline int IP_LOWADDR (ipaddr *paddr1, ipaddr *paddr2) +{ + int ret = 0; + if (ADDR_ISV6(paddr1)) { + if (ADDR_ISV6(paddr2)) + ret = (memcmp(paddr1->un.ip6.s6_addr, + paddr2->un.ip6.s6_addr,16) < 0); + } else { + /* already know ADDR_ISV4(paddr1) */ + if (ADDR_ISV4(paddr2)) + ret = (paddr1->un.ip4.s_addr < paddr2->un.ip4.s_addr); + } + if (debug > 3) + printf("LowAddr(%s(%d),%s(%d)) returns %d\n", + HostName(*paddr1), ADDR_VERSION(paddr1), + HostName(*paddr2), ADDR_VERSION(paddr2), + ret); + return ret; +} + + +/* return elapsed time in microseconds */ +/* (time2 - time1) */ +double +elapsed( + struct timeval time1, + struct timeval time2) +{ + struct timeval etime; + + /*sanity check, some of the files have packets out of order */ + if (tv_lt(time2,time1)) { + return(0.0); + } + + if (0) { + fprintf(stderr,"elapsed(%s,", ts2ascii(&time1)); + fprintf(stderr,"%s) is ", ts2ascii(&time2)); + } + + etime = time2; + tv_sub(&etime, time1); + + if (0) + fprintf(stderr,"\n\t%s \n", ts2ascii(&etime)); + + return((double)etime.tv_sec * 1000000 + (double)etime.tv_usec); +} + + + +/* subtract the rhs from the lhs, result in lhs */ +void +tv_sub(struct timeval *plhs, struct timeval rhs) +{ + /* sanity check, lhs MUST BE more than rhs */ + if (tv_lt(*plhs,rhs)) { + fprintf(stderr,"tvsub(%s,", ts2ascii(plhs)); + fprintf(stderr,"%s) bad timestamp order!\n", ts2ascii(&rhs)); +/* exit(-1); */ + plhs->tv_sec = plhs->tv_usec = 0; + return; + } + + if (plhs->tv_usec >= rhs.tv_usec) { + plhs->tv_usec -= rhs.tv_usec; + } else if (plhs->tv_usec < rhs.tv_usec) { + plhs->tv_usec += US_PER_SEC - rhs.tv_usec; + plhs->tv_sec -= 1; + } + plhs->tv_sec -= rhs.tv_sec; +} + + +/* add the RHS to the LHS, answer in *plhs */ +void +tv_add(struct timeval *plhs, struct timeval rhs) +{ + plhs->tv_sec += rhs.tv_sec; + plhs->tv_usec += rhs.tv_usec; + + if (plhs->tv_usec >= US_PER_SEC) { + plhs->tv_usec -= US_PER_SEC; + plhs->tv_sec += 1; + } +} + + +/* are the 2 times the same? */ +Bool +tv_same(struct timeval lhs, struct timeval rhs) +{ + return((lhs.tv_sec == rhs.tv_sec) && + (lhs.tv_usec == rhs.tv_usec)); +} + + +/* 1: lhs > rhs */ +/* 0: lhs == rhs */ +/* -1: lhs < rhs */ +int +tv_cmp(struct timeval lhs, struct timeval rhs) +{ + if (lhs.tv_sec > rhs.tv_sec) { + return(1); + } + + if (lhs.tv_sec < rhs.tv_sec) { + return(-1); + } + + /* ... else, seconds are the same */ + if (lhs.tv_usec > rhs.tv_usec) + return(1); + else if (lhs.tv_usec == rhs.tv_usec) + return(0); + else + return(-1); +} + + + +/* copy the IP addresses and port numbers into an addrblock structure */ +/* in addition to copying the address, we also create a HASH value */ +/* which is based on BOTH IP addresses and port numbers. It allows */ +/* faster comparisons most of the time */ +void +CopyAddr( + tcp_pair_addrblock *ptpa, + struct ip *pip, + portnum port1, + portnum port2) +{ + ptpa->a_port = port1; + ptpa->b_port = port2; + + if (PIP_ISV4(pip)) { /* V4 */ + IP_COPYADDR(&ptpa->a_address, IPV4ADDR2ADDR(&pip->ip_src)); + IP_COPYADDR(&ptpa->b_address, IPV4ADDR2ADDR(&pip->ip_dst)); + /* fill in the hashed address */ + ptpa->hash = ptpa->a_address.un.ip4.s_addr + + ptpa->b_address.un.ip4.s_addr + + ptpa->a_port + ptpa->b_port; + + } else { /* V6 */ + int i; + struct ipv6 *pip6 = (struct ipv6 *)pip; + IP_COPYADDR(&ptpa->a_address, IPV6ADDR2ADDR(&pip6->ip6_saddr)); + IP_COPYADDR(&ptpa->b_address, IPV6ADDR2ADDR(&pip6->ip6_daddr)); + /* fill in the hashed address */ + ptpa->hash = ptpa->a_port + ptpa->b_port; + for (i=0; i < 16; ++i) { + ptpa->hash += ptpa->a_address.un.ip6.s6_addr[i]; + ptpa->hash += ptpa->b_address.un.ip6.s6_addr[i]; + } + } + + if (debug > 3) + printf("Hash of (%s:%d,%s:%d) is %d\n", + HostName(ptpa->a_address), + ptpa->a_port, + HostName(ptpa->b_address), + ptpa->b_port, + ptpa->hash); +} + +/* + * This function tells us which way to go (Left or Right) in search for our + * matching 4-tuple {IP1:port1; IP2:port2} in the AVL tree hash-bucket. + * + * It returns LT or RT depending on if we had to go left or right in the AVL Tree to + * find our exact 4-tuple match, if it existed in the tree. + * If the exact 4-tuple is found, it returns 0. + */ + +int +AVL_WhichDir( + tcp_pair_addrblock *ptpa1, + tcp_pair_addrblock *ptpa2) +{ + + /* + * Here is our algorithm. If ptpa1={x1:p1; x2:p2} and ptpa2={y1:q1; y2:q2} + * we choose X1=min(x1,x2) and X2=max(x1,x2); Similarly for Y1, Y2. + * P1=port associated with X1, i.e. it is p1 if x1 LEFT; X1>Y1 => RIGHT; X1==Y1 => Continue down + * + * Compare (X2, Y2)? ; X2 LEFT; X2>Y2 => RIGHT; X2==Y2 => Continue down + * + * Compare (P1, Q1)? ; P1 LEFT; P1>Q1 => RIGHT; P1==Q1 => Continue down + * + * Compare (P2, Q2)? ; P2 LEFT; P2>Q2 => RIGHT; + * + * If P2==Q2, then this connection should have matched the A2B or B2A catch + * from WhichDir() + */ + + ipaddr *X1, *X2, *Y1, *Y2; + int P1, P2, Q1, Q2; + + if (IP_LOWADDR(&(ptpa1->a_address), &(ptpa1->b_address))) { + X1=&ptpa1->a_address; + P1=ptpa1->a_port; + X2=&ptpa1->b_address; + P2=ptpa1->b_port; + } + else { + X1=&ptpa1->b_address; + P1=ptpa1->b_port; + X2=&ptpa1->a_address; + P2=ptpa1->a_port; + } + + if (IP_LOWADDR(&(ptpa2->a_address), &(ptpa2->b_address))) { + Y1=&ptpa2->a_address; + Q1=ptpa2->a_port; + Y2=&ptpa2->b_address; + Q2=ptpa2->b_port; + } + else { + Y1=&ptpa2->b_address; + Q1=ptpa2->b_port; + Y2=&ptpa2->a_address; + Q2=ptpa2->a_port; + } + + // Optimization suggested by Dr.Ostermann. Check the ports first. + if (P1a_address), &(ptpa2->a_address))) + if (IP_SAMEADDR(&(ptpa1->b_address), &(ptpa2->b_address))) + if ((ptpa1->a_port == ptpa2->a_port)) + if ((ptpa1->b_port == ptpa2->b_port)) + return(A2B); + + /* reverse of first packet */ + if (IP_SAMEADDR(&(ptpa1->a_address), &(ptpa2->b_address))) + if (IP_SAMEADDR(&(ptpa1->b_address), &(ptpa2->a_address))) + if ((ptpa1->a_port == ptpa2->b_port)) + if ((ptpa1->b_port == ptpa2->a_port)) + return(B2A); +#else /* BROKEN_COMPILER */ + /* same as first packet */ + if (IP_SAMEADDR(&(ptpa1->a_address), &(ptpa2->a_address)) && + IP_SAMEADDR(&(ptpa1->b_address), &(ptpa2->b_address)) && + (ptpa1->a_port == ptpa2->a_port) && + (ptpa1->b_port == ptpa2->b_port)) + return(A2B); + + /* reverse of first packet */ + if (IP_SAMEADDR(&(ptpa1->a_address), &(ptpa2->b_address)) && + IP_SAMEADDR(&(ptpa1->b_address), &(ptpa2->a_address)) && + (ptpa1->a_port == ptpa2->b_port) && + (ptpa1->b_port == ptpa2->a_port)) + return(B2A); +#endif /* BROKEN_COMPILER */ + + /* different connection */ + return(0); +} + +int +SameConn( + tcp_pair_addrblock *ptpa1, + tcp_pair_addrblock *ptpa2, + int *pdir) +{ + + /* if the hash values are different, they can't be the same */ + if (ptpa1->hash != ptpa2->hash) + return(0); + + /* OK, they hash the same, are they REALLY the same function */ + *pdir = WhichDir(ptpa1,ptpa2); + return(*pdir != 0); +} + + + +static tcp_pair * +NewTTP( + struct ip *pip, + struct tcphdr *ptcp) +{ + char title[210]; + tcp_pair *ptp; + + if (0) { + printf("trace.c:NewTTP() calling MakeTcpPair()\n"); + } + ptp = MakeTcpPair(); + ++num_tcp_pairs; + + if (!run_continuously) { + /* make a new one, if possible */ + if ((num_tcp_pairs+1) >= max_tcp_pairs) { + MoreTcpPairs(num_tcp_pairs+1); + } + /* create a new TCP pair record and remember where you put it */ + ttp[num_tcp_pairs] = ptp; + ptp->ignore_pair = ignore_pairs[num_tcp_pairs]; + } + + + /* grab the address from this packet */ + CopyAddr(&ptp->addr_pair, + pip, ntohs(ptcp->th_sport), ntohs(ptcp->th_dport)); + + ptp->a2b.time.tv_sec = -1; + ptp->b2a.time.tv_sec = -1; + + ptp->a2b.host_letter = strdup(NextHostLetter()); + ptp->b2a.host_letter = strdup(NextHostLetter()); + + ptp->a2b.ptp = ptp; + ptp->b2a.ptp = ptp; + ptp->a2b.ptwin = &ptp->b2a; + ptp->b2a.ptwin = &ptp->a2b; + + /* fill in connection name fields */ + ptp->a_hostname = strdup(HostName(ptp->addr_pair.a_address)); + ptp->a_portname = strdup(ServiceName(ptp->addr_pair.a_port)); + ptp->a_endpoint = + strdup(EndpointName(ptp->addr_pair.a_address, + ptp->addr_pair.a_port)); + ptp->b_hostname = strdup(HostName(ptp->addr_pair.b_address)); + ptp->b_portname = strdup(ServiceName(ptp->addr_pair.b_port)); + ptp->b_endpoint = + strdup(EndpointName(ptp->addr_pair.b_address, + ptp->addr_pair.b_port)); + + /* make the initial guess that each side is a reno tcp */ + /* this might actually be a poor thing to do in the sense that + we could be looking at a Tahoe trace ... but the only side + effect for the moment is that the LEAST estimate may be + busted, although it very well may not be */ + ptp->a2b.tcp_strain = TCP_RENO; + ptp->b2a.tcp_strain = TCP_RENO; + + ptp->a2b.LEAST = ptp->b2a.LEAST = 0; + ptp->a2b.in_rto = ptp->b2a.in_rto = FALSE; + + /* init time sequence graphs */ + ptp->a2b.tsg_plotter = ptp->b2a.tsg_plotter = NO_PLOTTER; + if (graph_tsg && !ptp->ignore_pair) { + if (!ignore_non_comp || (SYN_SET(ptcp))) { + snprintf(title,sizeof(title),"%s_==>_%s (time sequence graph)", + ptp->a_endpoint, ptp->b_endpoint); + ptp->a2b.tsg_plotter = + new_plotter(&ptp->a2b,NULL,title, + graph_time_zero?"relative time":"time", + graph_seq_zero?"sequence offset":"sequence number", + PLOT_FILE_EXTENSION); + snprintf(title,sizeof(title),"%s_==>_%s (time sequence graph)", + ptp->b_endpoint, ptp->a_endpoint); + ptp->b2a.tsg_plotter = + new_plotter(&ptp->b2a,NULL,title, + graph_time_zero?"relative time":"time", + graph_seq_zero?"sequence offset":"sequence number", + PLOT_FILE_EXTENSION); + if (graph_time_zero) { + /* set graph zero points */ + plotter_nothing(ptp->a2b.tsg_plotter, current_time); + plotter_nothing(ptp->b2a.tsg_plotter, current_time); + } + } + } + + /* init owin graphs */ + ptp->a2b.owin_plotter = ptp->b2a.owin_plotter = NO_PLOTTER; + if (graph_owin && !ptp->ignore_pair) { + if (!ignore_non_comp || (SYN_SET(ptcp))) { + snprintf(title,sizeof(title),"%s_==>_%s (outstanding data)", + ptp->a_endpoint, ptp->b_endpoint); + ptp->a2b.owin_plotter = + new_plotter(&ptp->a2b,NULL,title, + graph_time_zero?"relative time":"time", + "Outstanding Data (bytes)", + OWIN_FILE_EXTENSION); + snprintf(title,sizeof(title),"%s_==>_%s (outstanding data)", + ptp->b_endpoint, ptp->a_endpoint); + ptp->b2a.owin_plotter = + new_plotter(&ptp->b2a,NULL,title, + graph_time_zero?"relative time":"time", + "Outstanding Data (bytes)", + OWIN_FILE_EXTENSION); + if (graph_time_zero) { + /* set graph zero points */ + plotter_nothing(ptp->a2b.owin_plotter, current_time); + plotter_nothing(ptp->b2a.owin_plotter, current_time); + } + ptp->a2b.owin_line = + new_line(ptp->a2b.owin_plotter, "owin", "red"); + ptp->b2a.owin_line = + new_line(ptp->b2a.owin_plotter, "owin", "red"); + + if (show_rwinline) { + ptp->a2b.rwin_line = + new_line(ptp->a2b.owin_plotter, "rwin", "yellow"); + ptp->b2a.rwin_line = + new_line(ptp->b2a.owin_plotter, "rwin", "yellow"); + } + + ptp->a2b.owin_avg_line = + new_line(ptp->a2b.owin_plotter, "avg owin", "blue"); + ptp->b2a.owin_avg_line = + new_line(ptp->b2a.owin_plotter, "avg owin", "blue"); + ptp->a2b.owin_wavg_line = + new_line(ptp->a2b.owin_plotter, "wavg owin", "green"); + ptp->b2a.owin_wavg_line = + new_line(ptp->b2a.owin_plotter, "wavg owin", "green"); + } + } + + /* init time line graphs (Avinash, 2 July 2002) */ + ptp->a2b.tline_plotter = ptp->b2a.tline_plotter = NO_PLOTTER; + if (graph_tline && !ptp->ignore_pair) { + if (!ignore_non_comp || (SYN_SET(ptcp))) { + /* We don't want the standard a2b type name so we will specify + * a filename of type a_b when we call new_plotter. + */ + char filename[25]; + snprintf(filename,sizeof(filename),"%s_%s", + ptp->a2b.host_letter, ptp->a2b.ptwin->host_letter); + + snprintf(title,sizeof(title),"%s_==>_%s (time line graph)", + ptp->a_endpoint, ptp->b_endpoint); + /* We will keep both the plotters the same since we want all + * segments going in either direction to be plotted on the same + * graph + */ + ptp->a2b.tline_plotter = ptp->b2a.tline_plotter = + new_plotter(&ptp->a2b,filename,title, + "segments", + "relative time", + TLINE_FILE_EXTENSION); + + /* Switch the x & y axis types. + * The default is x - timeval, y - unsigned, + * we need x - unsigned, y - dtime. + * Both the plotters are the same so we will + * only call this function once. + */ + plotter_switch_axis(ptp->a2b.tline_plotter, TRUE); + + /* set graph zero points */ + plotter_nothing(ptp->a2b.tline_plotter, current_time); + plotter_nothing(ptp->b2a.tline_plotter, current_time); + + /* Some graph initializations + * Generating a drawing space between x=0-100. + * The time lines will be at x=40 for source, x=60 for destination. + * Rest of the area on either sides will be used to print segment + * information. + * + * seg info |----->| + * |<-----| seg info + */ + tline_left = 40; + tline_right = 60; + plotter_invisible(ptp->a2b.tline_plotter, current_time, 0); + plotter_invisible(ptp->a2b.tline_plotter, current_time, 100); + } + } + + + /* init segment size graphs */ + ptp->a2b.segsize_plotter = ptp->b2a.segsize_plotter = NO_PLOTTER; + if (graph_segsize && !ptp->ignore_pair) { + snprintf(title,sizeof(title),"%s_==>_%s (segment size graph)", + ptp->a_endpoint, ptp->b_endpoint); + ptp->a2b.segsize_plotter = + new_plotter(&ptp->a2b,NULL,title, + graph_time_zero?"relative time":"time", + "segment size (bytes)", + SEGSIZE_FILE_EXTENSION); + snprintf(title,sizeof(title),"%s_==>_%s (segment size graph)", + ptp->b_endpoint, ptp->a_endpoint); + ptp->b2a.segsize_plotter = + new_plotter(&ptp->b2a,NULL,title, + graph_time_zero?"relative time":"time", + "segment size (bytes)", + SEGSIZE_FILE_EXTENSION); + if (graph_time_zero) { + /* set graph zero points */ + plotter_nothing(ptp->a2b.segsize_plotter, current_time); + plotter_nothing(ptp->b2a.segsize_plotter, current_time); + } + ptp->a2b.segsize_line = + new_line(ptp->a2b.segsize_plotter, "segsize", "red"); + ptp->b2a.segsize_line = + new_line(ptp->b2a.segsize_plotter, "segsize", "red"); + ptp->a2b.segsize_avg_line = + new_line(ptp->a2b.segsize_plotter, "avg segsize", "blue"); + ptp->b2a.segsize_avg_line = + new_line(ptp->b2a.segsize_plotter, "avg segsize", "blue"); + } + + /* init RTT graphs */ + ptp->a2b.rtt_plotter = ptp->b2a.rtt_plotter = NO_PLOTTER; + + ptp->a2b.ss = MakeSeqspace(); + ptp->b2a.ss = MakeSeqspace(); + + ptp->filename = cur_filename; + + return(ptp); +} + + + +/* connection records are stored in a hash table. Buckets are linked */ +/* lists sorted by most recent access. */ +#ifdef SMALL_TABLE +#define HASH_TABLE_SIZE 1021 /* oughta be prime */ +#else /* SMALL_TABLE */ +#define HASH_TABLE_SIZE 4099 /* oughta be prime */ +#endif /* SMALL_TABLE */ +static ptp_snap *ptp_hashtable[HASH_TABLE_SIZE] = {NULL}; + + +/* search efficiency data (optional) */ +/* one entry per hash table bucket */ +struct search_efficiency { + unsigned num_connections; + unsigned max_connections; + unsigned max_depth; + unsigned num_searches; + unsigned num_comparisons; +}; +static struct search_efficiency hashtable_efficiency[HASH_TABLE_SIZE]; + + +/* double linked-lists of live and closed connections */ +static ptp_ptr *live_conn_list_head = NULL; +static ptp_ptr *live_conn_list_tail = NULL; +static ptp_ptr *closed_conn_list_head = NULL; +static ptp_ptr *closed_conn_list_tail = NULL; +static timeval last_update_time = {0, 0}; + +static tcp_pair * +FindTTP( + struct ip *pip, + struct tcphdr *ptcp, + int *pdir, + ptp_ptr **tcp_ptr) +{ + ptp_snap **pptph_head = NULL; + ptp_snap *ptph; + tcp_pair_addrblock tp_in; + struct search_efficiency *pse = NULL; + unsigned depth = 0; + int dir, conn_status; + hash hval; + *tcp_ptr = NULL; + + if (debug > 10) { + printf("trace.c: FindTTP() called\n"); + } + + /* grab the address from this packet */ + CopyAddr(&tp_in, pip, ntohs(ptcp->th_sport), ntohs(ptcp->th_dport)); + + /* grab the hash value (already computed by CopyAddr) */ + hval = tp_in.hash % HASH_TABLE_SIZE; + + pptph_head = &ptp_hashtable[hval]; + + if (debug) { + /* search efficiency checking */ + pse = &hashtable_efficiency[hval]; + } + + if (pse) { + /* search efficiency instrumentation */ + depth = 0; + ++pse->num_searches; + } + + for (ptph = *pptph_head; ptph; ) { + if (debug) { + /* search efficiency instrumentation */ + ++search_count; + if (pse) { + ++depth; + ++pse->num_comparisons; + } + } + + /* See if the current node in the AVL tree hash-bucket + * is the exact same connection as ourselves, + * either in A2B or B2A directions. + */ + + dir = WhichDir(&tp_in, &ptph->addr_pair); + + if (dir == A2B || dir == B2A) { + /* OK, this looks good, suck it into memory */ + + tcb *thisdir; + tcb *otherdir; + tcp_pair *ptp; + if (run_continuously) { + ptp_ptr *ptr = (ptp_ptr *)ptph->ptp; + ptp = ptr->ptp; + } + else { + ptp = (tcp_pair *)ptph->ptp; + } + + /* figure out which direction this packet is going */ + if (dir == A2B) { + thisdir = &ptp->a2b; + otherdir = &ptp->b2a; + } else { + thisdir = &ptp->b2a; + otherdir = &ptp->a2b; + } + + /* check for "inactive" */ + /* (this shouldn't happen anymore, they aren't on the list */ + if (ptp->inactive) { + + if (!run_continuously) + continue; + else { + *tcp_ptr = (ptp_ptr *)ptph->ptp; + return ((*tcp_ptr)->ptp); + } + } + + + /* Fri Oct 16, 1998 */ + /* note: original heuristic was not sufficient. Bugs */ + /* were pointed out by Brian Utterback and later by */ + /* myself and Mark Allman */ + + if (!run_continuously) { + /* check for NEW connection on these same endpoints */ + /* 1) At least 4 minutes idle time */ + /* OR */ + /* 2) heuristic (we might miss some) either: */ + /* this packet has a SYN */ + /* last conn saw both FINs and/or RSTs */ + /* SYN sequence number outside last window (rfc 1122) */ + /* (or less than initial Sequence, */ + /* for wrap around trouble) - Tue Nov 3, 1998*/ + /* OR */ + /* 3) this is a SYN, last had a SYN, seq numbers differ */ + /* if so, mark it INACTIVE and skip from now on */ + if (0 && SYN_SET(ptcp)) { + /* better keep this debugging around, it keeps breaking */ + printf("elapsed: %f sec\n", + elapsed(ptp->last_time,current_time)/1000000); + printf("SYN_SET: %d\n", SYN_SET(ptcp)); + printf("a2b.fin_count: %d\n", ptp->a2b.fin_count); + printf("b2a.fin_count: %d\n", ptp->b2a.fin_count); + printf("a2b.reset_count: %d\n", ptp->a2b.reset_count); + printf("b2a.reset_count: %d\n", ptp->b2a.reset_count); + printf("dir: %d (%s)\n", dir, dir==A2B?"A2B":"B2A"); + printf("seq: %lu \n", (u_long)ntohl(ptcp->th_seq)); + printf("winend: %lu \n", otherdir->windowend); + printf("syn: %lu \n", otherdir->syn); + printf("SEQ_GREATERTHAN winend: %d\n", + SEQ_GREATERTHAN(ntohl(ptcp->th_seq),otherdir->windowend)); + printf("SEQ_LESSTHAN init syn: %d\n", + SEQ_LESSTHAN(ntohl(ptcp->th_seq),thisdir->syn)); + } + + if (/* rule 1 */ + (elapsed(ptp->last_time,current_time)/1000000 > nonreal_live_conn_interval)//(4*60)) - Using nonreal_live_conn_interval instead of the 4 mins heuristic + || /* rule 2 */ + ((SYN_SET(ptcp)) && + (((thisdir->fin_count >= 1) || + (otherdir->fin_count >= 1)) || + ((thisdir->reset_count >= 1) || + (otherdir->reset_count >= 1))) && + (SEQ_GREATERTHAN(ntohl(ptcp->th_seq),otherdir->windowend) || + SEQ_LESSTHAN(ntohl(ptcp->th_seq),thisdir->syn))) + || /* rule 3 */ + (SYN_SET(ptcp) && + (thisdir->syn_count > 1) && + (thisdir->syn != ntohl(ptcp->th_seq)))) { + + if (debug>1) { + printf("%s: Marking %p %s<->%s INACTIVE (idle: %f sec)\n", + ts2ascii(¤t_time), + ptp, + ptp->a_endpoint, ptp->b_endpoint, + elapsed(ptp->last_time, + current_time)/1000000); + if (debug > 3) + PrintTrace(ptp); + } + + /* we won't need this one anymore, remove it from the */ + /* hash table so we won't have to skip over it */ + ptp->inactive = TRUE; + + if (debug > 4) + printf("Removing connection from hashtable:\ + FindTTP() calling SnapRemove()\n"); + + /* Removes connection snapshot from AVL tree */ + SnapRemove(pptph_head, ptph->addr_pair); + + break; + } + } + + if (run_continuously) + (*tcp_ptr) = (ptp_ptr *)ptph->ptp; + + *pdir = dir; + return (ptp); + } else { // WhichDir returned 0, meaning if it exists, it's deeper + conn_status = AVL_WhichDir(&tp_in,&ptph->addr_pair); + if (conn_status == LT) + ptph = ptph->left; + else if (conn_status == RT) + ptph = ptph->right; + else if (!conn_status) { + fprintf(stderr, "WARNING!! AVL_WhichDir() should not return 0 if\n" + "\tWhichDir() didn't return A2B or B2A previously\n"); + break; + } + } + } + + + /* Didn't find it, make a new one, if possible */ + if (0) { + printf("trace.c:FindTTP() calling MakePtpSnap()\n"); + } + ptph = MakePtpSnap(); + + if (run_continuously) { + ptp_ptr *ptr = (ptp_ptr *)MakePtpPtr(); + ptr->prev = NULL; + + if (live_conn_list_head == NULL) { + ptr->next = NULL; + live_conn_list_head = ptr; + live_conn_list_tail = ptr; + } + else { + ptr->next = live_conn_list_head; + live_conn_list_head->prev = ptr; + live_conn_list_head = ptr; + } + ptr->from = ptph; + ptr->ptp = NewTTP(pip, ptcp); + ptph->addr_pair = ptr->ptp->addr_pair; + ptph->ptp = (void *)ptr; + if (conn_num_threshold) { + active_conn_count++; + if (active_conn_count > max_conn_num) { + ptp_ptr *last_ptr = live_conn_list_tail; + live_conn_list_tail = last_ptr->prev; + live_conn_list_tail->next = NULL; + RemoveConn(last_ptr); + num_removed_tcp_pairs++; + active_conn_count--; + FreePtpPtr(last_ptr); + } + } + } + else { + tcp_pair *tmp = NewTTP(pip,ptcp); + ptph->addr_pair = tmp->addr_pair; + ptph->ptp = tmp; + } + + /* To insert the new connection snapshot into the AVL tree */ + + if (debug > 4) + printf("Inserting connection into hashtable:\ + FindTTP() calling SnapInsert() \n"); + SnapInsert(pptph_head, ptph); + + if (pse) { + /* search efficiency instrumentation */ + ++pse->num_connections; + if (depth > pse->max_depth) + pse->max_depth = depth; + if (pse->num_connections > pse->max_connections) + pse->max_connections = pse->num_connections; + } + + + *pdir = A2B; + if (run_continuously) { + *tcp_ptr = (ptp_ptr *)ptph->ptp; + return ((*tcp_ptr)->ptp); + } + else + return (tcp_pair *)(ptph->ptp); +} + +static void +UpdateConnLists( + ptp_ptr *tcp_ptr, + struct tcphdr *ptcp) +{ + time_t real_time; + static int minutes = 0; + + if (0) { + printf("trace.c: UpdateConnLists() called\n"); + } + + if ((FinCount(tcp_ptr->ptp) > 0) || (ConnReset(tcp_ptr->ptp))) { + /* we have FIN or RST */ + if (!tcp_ptr->ptp->inactive) { + /* this is the only FIN or new RST - remove from list of active conns */ + if (debug > 6) { + printf("UpdateConnLists: removing conn from list of active conns\n"); + } + UpdateConnList(tcp_ptr, FALSE, + &live_conn_list_head, + &live_conn_list_tail); + tcp_ptr->ptp->inactive = TRUE; + + if (conn_num_threshold) { + active_conn_count--; + closed_conn_count++; + if (closed_conn_count > max_conn_num) { + ptp_ptr *last_ptr = closed_conn_list_tail; + closed_conn_list_tail = last_ptr->prev; + closed_conn_list_tail->next = NULL; + RemoveConn(last_ptr); + num_removed_tcp_pairs++; + closed_conn_count--; + FreePtpPtr(last_ptr); + } + } + + /* put entry into the list of inactive connections */ + if (closed_conn_list_head) { + tcp_ptr->next = closed_conn_list_head; + tcp_ptr->prev = NULL; + closed_conn_list_head->prev = tcp_ptr; + closed_conn_list_head = tcp_ptr; + } + else { + tcp_ptr->next = NULL; + tcp_ptr->prev = NULL; + closed_conn_list_head = tcp_ptr; + closed_conn_list_tail = tcp_ptr; + } + } + else { + /* update the list of closed connecitons */ + UpdateConnList(tcp_ptr, TRUE, &closed_conn_list_head, + &closed_conn_list_tail); + } + } + else {/* don't have FIN(s)/RST */ + /* update only list of active connections */ + if (tcp_ptr->ptp->inactive == TRUE) { + printf("WARNING!!! con is inactive, ptr=%p, con=%p, fin=%i, rst=%i\n", tcp_ptr, + tcp_ptr->ptp, FinCount(tcp_ptr->ptp), ConnReset(tcp_ptr->ptp)); + printf("a2b.reset_count=%i, b2a.reset_count=%i, RESET_SET(tcph)=%i\n", + tcp_ptr->ptp->a2b.reset_count, tcp_ptr->ptp->b2a.reset_count, + RESET_SET(ptcp)); + } + UpdateConnList(tcp_ptr, TRUE, &live_conn_list_head, &live_conn_list_tail); + } + + /* if we haven't updated the structures for at least update_interval number + * of seconds, update list of connections and hash table */ + if ((elapsed(last_update_time, current_time) / 1000000) >= update_interval) { + + real_time = time(&real_time); + if (debug > 10) + fprintf(stderr, "%3i program time: %i\tcurrent time: %i\tdifference: %i\n", + ++minutes, (int)current_time.tv_sec, (int)real_time, + (int)(real_time - current_time.tv_sec)); + if (conn_num_threshold) { + RemoveOldConns(&live_conn_list_head, + &live_conn_list_tail, + remove_live_conn_interval, + TRUE, + &active_conn_count); + RemoveOldConns(&closed_conn_list_head, + &closed_conn_list_tail, + remove_closed_conn_interval, + TRUE, + &closed_conn_count); + } + else { + RemoveOldConns(&live_conn_list_head, + &live_conn_list_tail, + remove_live_conn_interval, + FALSE, + 0); + RemoveOldConns(&closed_conn_list_head, + &closed_conn_list_tail, + remove_closed_conn_interval, + FALSE, + 0); + } + last_update_time = current_time; + } +} + + + +static void +UpdateConnList( + ptp_ptr *tcp_ptr, + const Bool valid, + ptp_ptr **conn_list_head, + ptp_ptr **conn_list_tail) +{ + ptp_ptr *ptr_prev; + ptp_ptr *ptr_next; + + if (0) { + printf("UpdateConnList() called\n"); + } + if (tcp_ptr == (*conn_list_head)) { + if (valid) { + return; + } + else { + *conn_list_head = tcp_ptr->next; + if ((*conn_list_tail) == tcp_ptr) + *conn_list_tail = NULL; + else + (*conn_list_head)->prev = NULL; + return; + } + } + + ptr_prev = tcp_ptr->prev; + ptr_next = tcp_ptr->next; + + ptr_prev->next = ptr_next; + + if (ptr_next) + ptr_next->prev = ptr_prev; + if (tcp_ptr == (*conn_list_tail)) + *conn_list_tail = ptr_prev; + + if (valid) { + tcp_ptr->next = (*conn_list_head); + tcp_ptr->prev = NULL; + (*conn_list_head)->prev = tcp_ptr; + *conn_list_head = tcp_ptr; + } + return; +} + + + +static void +RemoveOldConns( + ptp_ptr **conn_list_head, + ptp_ptr **conn_list_tail, + const unsigned expire_interval, + const Bool num_conn_check, + int *conn_count) +{ + ptp_ptr *ptr; + ptp_ptr *prev_ptr; + + if (0) { + printf("trace.c: RemoveOldConns() called\n"); + } + + if ((*conn_list_tail) == NULL) { + return; + } + + ptr = (*conn_list_tail); + prev_ptr = ptr->prev; + for (; prev_ptr != NULL; ptr = prev_ptr, prev_ptr = ptr->prev) { + if ((elapsed(ptr->ptp->last_time, current_time) / 1000000) >= + expire_interval) { + /* if the connection is old enough, remove the snap from the linked-list + and the hash_table */ + ptr->prev->next = NULL; + *conn_list_tail = ptr->prev; + RemoveConn(ptr); + num_removed_tcp_pairs++; + if (0) { + printf("trace.c:RemoveOldConns() calling FreePtpSnap()\n"); + } + FreePtpPtr(ptr); + if (num_conn_check) + --(*conn_count); + } + else { + break; + } + } + + if (((*conn_list_head)->ptp->last_time.tv_sec != 0) && + ((elapsed((*conn_list_head)->ptp->last_time, current_time) / 1000000) >= + expire_interval)) { + *conn_list_head = NULL; + *conn_list_tail = NULL; + RemoveConn(ptr); + num_removed_tcp_pairs++; + FreePtpPtr(ptr); + if (num_conn_check) + --(*conn_count); + } +} + + + +/* remove tcp pair from the hash table */ +static void +RemoveConn( + const ptp_ptr *tcp_ptr) +{ + hash hval; + + if (0) { + printf("trace.c: RemoveConn(%p %s<->%s) called\n", + tcp_ptr->ptp, tcp_ptr->ptp->a_endpoint, tcp_ptr->ptp->b_endpoint); + } + + ModulesPerOldConn(tcp_ptr->ptp); + + hval = tcp_ptr->ptp->addr_pair.hash % HASH_TABLE_SIZE; + + /* Remove the connection snapshot from AVL tree */ + if (debug > 4) + printf("Removing connection from hashtable:\ + RemoveConn() calling SnapRemove()\n"); + + SnapRemove(&ptp_hashtable[hval], tcp_ptr->ptp->addr_pair); + + RemoveTcpPair(tcp_ptr); +} + + + +static void +RemoveTcpPair( + const ptp_ptr *tcp_ptr) +{ + int i = 0; + tcp_pair *ptp = tcp_ptr->ptp; + + if (0) { + printf("trace.c: RemoveTcpPair(%p) called\n", tcp_ptr->ptp); + } + + free(ptp->a2b.host_letter); + free(ptp->b2a.host_letter); + + free(ptp->a_hostname); + free(ptp->a_portname); + free(ptp->a_endpoint); + + free(ptp->b_hostname); + free(ptp->b_portname); + free(ptp->b_endpoint); + + if (ptp->a2b.owin_line) { + free(ptp->a2b.owin_line); + } + + if (show_rwinline) { + if (ptp->a2b.rwin_line) { + free(ptp->a2b.rwin_line); + } + } + + if (ptp->a2b.owin_avg_line) { + free(ptp->a2b.owin_avg_line); + } + if (ptp->a2b.owin_wavg_line) { + free(ptp->a2b.owin_avg_line); + } + if (ptp->b2a.owin_line) { + free(ptp->b2a.owin_line); + } + + if (show_rwinline) { + if (ptp->b2a.rwin_line) { + free(ptp->b2a.rwin_line); + } + } + + if (ptp->b2a.owin_avg_line) { + free(ptp->b2a.owin_avg_line); + } + if (ptp->b2a.owin_wavg_line) { + free(ptp->b2a.owin_wavg_line); + } + + if (ptp->a2b.segsize_line) { + free(ptp->a2b.segsize_line); + } + if (ptp->a2b.segsize_avg_line) { + free(ptp->a2b.segsize_avg_line); + } + if (ptp->b2a.segsize_line) { + free(ptp->b2a.segsize_line); + } + if (ptp->b2a.segsize_avg_line) { + free(ptp->b2a.segsize_avg_line); + } + + if (ptp->a2b.ss) { + for (i = 0; i < 4; i++) { + if (ptp->a2b.ss->pquad[i] != NULL) { + freequad(&ptp->a2b.ss->pquad[i]); + } + } + FreeSeqspace(ptp->a2b.ss); + } + + if (ptp->b2a.ss) { + for (i = 0; i < 4; i++) { + if (ptp->b2a.ss->pquad[i] != NULL) { + freequad(&ptp->b2a.ss->pquad[i]); + } + } + FreeSeqspace(ptp->b2a.ss); + } + + FreeTcpPair(ptp); +} + + + +tcp_pair * +dotrace( + struct ip *pip, + struct tcphdr *ptcp, + void *plast) +{ + struct tcp_options *ptcpo; + tcp_pair *ptp_save; + int tcp_length; + int tcp_data_length; + u_long start; + u_long end; + tcb *thisdir; + tcb *otherdir; + tcp_pair tp_in; + PLOTTER to_tsgpl; + PLOTTER from_tsgpl; + PLOTTER tlinepl; + int dir; + Bool retrans; + Bool probe; + Bool hw_dup = FALSE; /* duplicate at the hardware level */ + Bool ecn_ce = FALSE; + Bool ecn_echo = FALSE; + Bool cwr = FALSE; + Bool urg = FALSE; + int retrans_num_bytes; + Bool out_order; /* out of order */ + u_short th_sport; /* source port */ + u_short th_dport; /* destination port */ + tcp_seq th_seq; /* sequence number */ + tcp_seq th_ack; /* acknowledgement number */ + u_short th_win; /* window */ + u_long eff_win; /* window after scaling */ + u_short th_urp; /* URGENT pointer */ + short ip_len; /* total length */ + enum t_ack ack_type=NORMAL; /* how should we draw the ACK */ + seqnum old_this_windowend; /* for graphing */ + ptp_ptr *tcp_ptr = NULL; + + /* make sure we have enough of the packet */ + if ((char *)ptcp + sizeof(struct tcphdr)-1 > (char *)plast) { + if (warn_printtrunc) + fprintf(stderr, + "TCP packet %lu truncated too short to trace, ignored\n", + pnum); + ++ctrunc; + return(NULL); + } + + + /* convert interesting fields to local byte order */ + th_seq = ntohl(ptcp->th_seq); + th_ack = ntohl(ptcp->th_ack); + th_sport = ntohs(ptcp->th_sport); + th_dport = ntohs(ptcp->th_dport); + th_win = ntohs(ptcp->th_win); + th_urp = ntohs(ptcp->th_urp); + ip_len = gethdrlength(pip, plast) + getpayloadlength(pip,plast); + + /* make sure this is one of the connections we want */ + ptp_save = FindTTP(pip,ptcp,&dir, &tcp_ptr); + + ++tcp_packet_count; + + if (ptp_save == NULL) { + return(NULL); + } + + ++tcp_trace_count; + + if (run_continuously && (tcp_ptr == NULL)) { + fprintf(stderr, "Did not initialize tcp pair pointer\n"); + exit(1); + } + + /* do time stats */ + if (ZERO_TIME(&ptp_save->first_time)) { + ptp_save->first_time = current_time; + } + ptp_save->last_time = current_time; + + + /* bug fix: it's legal to have the same end points reused. The */ + /* program uses a heuristic of looking at the elapsed time from */ + /* the last packet on the previous instance and the number of FINs */ + /* in the last instance. If we don't increment the fin_count */ + /* before bailing out in "ignore_pair" below, this heuristic breaks */ + + /* figure out which direction this packet is going */ + if (dir == A2B) { + thisdir = &ptp_save->a2b; + otherdir = &ptp_save->b2a; + } else { + thisdir = &ptp_save->b2a; + otherdir = &ptp_save->a2b; + } + + /* meta connection stats */ + if (SYN_SET(ptcp)) + ++thisdir->syn_count; + if (RESET_SET(ptcp)) + ++thisdir->reset_count; + if (FIN_SET(ptcp)) + ++thisdir->fin_count; + + /* end bug fix */ + + + /* compute the "effective window", which is the advertised window */ + /* with scaling */ + if (ACK_SET(ptcp) || SYN_SET(ptcp)) { + eff_win = (u_long) th_win; + + /* N.B., the window_scale stored for the connection DURING 3way */ + /* handshaking is the REQUESTED scale. It's only valid if both */ + /* sides request scaling. AFTER we've seen both SYNs, that field */ + /* is reset (above) to contain zero. Note that if we */ + /* DIDN'T see the SYNs, the windows will be off. */ + /* Jamshid: Remember that the window is never scaled in SYN */ + /* packets, as per RFC 1323. */ + if (thisdir->f1323_ws && otherdir->f1323_ws && !SYN_SET(ptcp)) + eff_win <<= thisdir->window_scale; + } else { + eff_win = 0; + } + + + /* idle-time stats */ + if (!ZERO_TIME(&thisdir->last_time)) { + u_llong itime = elapsed(thisdir->last_time,current_time); + if (itime > thisdir->idle_max) + thisdir->idle_max = itime; + } + thisdir->last_time = current_time; + + + /* calculate data length */ + tcp_length = getpayloadlength(pip, plast); + tcp_data_length = tcp_length - (4 * TH_OFF(ptcp)); + + /* calc. data range */ + start = th_seq; + end = start + tcp_data_length; + + /* seq. space wrap around stats */ + /* If all four quadrants have been visited and the current packet + * is in the same quadrant as the syn, check if latest seq. num is + * wrapping past the syn. If it is, increment wrap_count + */ + if ((thisdir->quad1 && thisdir->quad2 && thisdir->quad3 && thisdir->quad4)) { + if ((IN_Q1(thisdir->syn) && (IN_Q1(end))) || (IN_Q2(thisdir->syn) && (IN_Q2(end))) || ((IN_Q3(thisdir->syn) && (IN_Q3(end))) || ((IN_Q4(thisdir->syn) && (IN_Q4(end)))))) { + if (end >= thisdir->syn) { + if (debug>1) + fprintf(stderr, "\nWARNING : sequence space wrapped around here \n"); + thisdir->seq_wrap_count++; + thisdir->quad1=0; + thisdir->quad2=0; + thisdir->quad3=0; + thisdir->quad4=0; + } + } + } + + /* Mark the visited quadrants */ + if (!thisdir->quad1) { + if (IN_Q1(start) || IN_Q1(end)) + thisdir->quad1=1; + } + if (!thisdir->quad2) { + if (IN_Q2(start) || IN_Q2(end)) + thisdir->quad2=1; + } + if (!thisdir->quad3) { + if (IN_Q3(start) || IN_Q3(end)) + thisdir->quad3=1; + } + if (!thisdir->quad4) { + if (IN_Q4(start) || IN_Q4(end)) + thisdir->quad4=1; + } + + /* record sequence limits */ + if (SYN_SET(ptcp)) { + /* error checking - better not change! */ + if ((thisdir->syn_count > 1) && (thisdir->syn != start)) { + /* it changed, that shouldn't happen! */ + if (warn_printbad_syn_fin_seq) + fprintf(stderr, "\ +%s->%s: rexmitted SYN had diff. seqnum! (was %lu, now %lu, etime: %d sec)\n", + thisdir->host_letter,thisdir->ptwin->host_letter, + thisdir->syn, start, + (int)(elapsed(ptp_save->first_time,current_time)/1000000)); + thisdir->bad_behavior = TRUE; + } + thisdir->syn = start; + otherdir->ack = start; + /* bug fix for Rob Austein */ + } + if (FIN_SET(ptcp)) { + /* bug fix, if there's data here too, we need to bump up the FIN */ + /* (psc data file shows example) */ + u_long fin = start + tcp_data_length; + /* error checking - better not change! */ + if ((thisdir->fin_count > 1) && (thisdir->fin != fin)) { + /* it changed, that shouldn't happen! */ + if (warn_printbad_syn_fin_seq) + fprintf(stderr, "\ +%s->%s: rexmitted FIN had diff. seqnum! (was %lu, now %lu, etime: %d sec)\n", + thisdir->host_letter,thisdir->ptwin->host_letter, + thisdir->fin, fin, + (int)(elapsed(ptp_save->first_time,current_time)/1000000)); + thisdir->bad_behavior = TRUE; + } + thisdir->fin = fin; + } + + /* "ONLY" bug fix - Wed Feb 24, 1999 */ + /* the tcp-splicing heuristic needs "windowend", which was only being */ + /* calculated BELOW the "only" point below. Move that part of the */ + /* calculation up here! */ + + /* remember the OLD window end for graphing */ + /* (bug fix - Thu Aug 12, 1999) */ + old_this_windowend = thisdir->windowend; + + if (ACK_SET(ptcp)) { + thisdir->windowend = th_ack + eff_win; + } + /* end bugfix */ + + + + /***********************************************************************/ + /***********************************************************************/ + /* if we're ignoring this connection, do no further processing */ + /***********************************************************************/ + /***********************************************************************/ + if (ptp_save->ignore_pair) { + return(ptp_save); + } + + /* save to a file if requested */ + if (output_filename) { + PcapSavePacket(output_filename,pip,plast); + } + + /* now, print it if requested */ + if (printem && !printallofem) { + printf("Packet %lu\n", pnum); + printpacket(0, /* original length not available */ + (char *)plast - (char *)pip + 1, + NULL,0, /* physical stuff not known here */ + pip,plast,thisdir); + } + + /* grab the address from this packet */ + CopyAddr(&tp_in.addr_pair, pip, + th_sport, th_dport); + + + /* simple bookkeeping */ + if (PIP_ISV6(pip)) { + ++thisdir->ipv6_segments; + } + + + /* plotter shorthand */ + to_tsgpl = otherdir->tsg_plotter; + from_tsgpl = thisdir->tsg_plotter; + + /* plotter shorthand (NOTE: we are using one plotter for both directions) */ + tlinepl = thisdir->tline_plotter; + + /* check the options */ + ptcpo = ParseOptions(ptcp,plast); + if (ptcpo->mss != -1) + thisdir->mss = ptcpo->mss; + if (ptcpo->ws != -1) { + thisdir->window_scale = ptcpo->ws; + thisdir->f1323_ws = TRUE; + } + if (ptcpo->tsval != -1) { + thisdir->f1323_ts = TRUE; + } + /* NOW, unless BOTH sides asked for window scaling in their SYN */ + /* segments, we aren't using window scaling */ + if (!SYN_SET(ptcp) && + ((!thisdir->f1323_ws) || (!otherdir->f1323_ws))) { + thisdir->window_scale = otherdir->window_scale = 0; + } + + /* check sacks */ + if (ptcpo->sack_req) { + thisdir->fsack_req = 1; + } + if (ptcpo->sack_count > 0) { + ++thisdir->sacks_sent; + } + + /* unless both sides advertised sack, we shouldn't see them, otherwise + we hope they actually send them */ + if (!SYN_SET(ptcp) && (thisdir->fsack_req && otherdir->fsack_req)) { + thisdir->tcp_strain = otherdir->tcp_strain = TCP_SACK; + } + + /* do data stats */ + urg = FALSE; + if (tcp_data_length > 0) { + thisdir->data_pkts += 1; + if (PUSH_SET(ptcp)) + thisdir->data_pkts_push += 1; + thisdir->data_bytes += tcp_data_length; + if (URGENT_SET(ptcp)) { /* Checking if URGENT bit is set */ + urg = TRUE; + thisdir->urg_data_pkts += 1; + thisdir->urg_data_bytes += th_urp; + } + if (tcp_data_length > thisdir->max_seg_size) + thisdir->max_seg_size = tcp_data_length; + if ((thisdir->min_seg_size == 0) || + (tcp_data_length < thisdir->min_seg_size)) + thisdir->min_seg_size = tcp_data_length; + /* record first and last times for data (Mallman) */ + if (ZERO_TIME(&thisdir->first_data_time)) + thisdir->first_data_time = current_time; + thisdir->last_data_time = current_time; + } + + /* total packets stats */ + ++ptp_save->packets; + ++thisdir->packets; + + /* If we are using window scaling, update the win_scaled_pkts counter */ + if (thisdir->window_stats_updated_for_scaling) + ++thisdir->win_scaled_pkts; + + /* instantaneous throughput stats */ + if (graph_tput) { + DoThru(thisdir,tcp_data_length); + } + + /* segment size graphs */ + if ((tcp_data_length > 0) && (thisdir->segsize_plotter != NO_PLOTTER)) { + extend_line(thisdir->segsize_line, current_time, tcp_data_length); + extend_line(thisdir->segsize_avg_line, current_time, + thisdir->data_bytes / thisdir->data_pkts); + } + + /* sequence number stats */ + if ((thisdir->min_seq == 0) && (start != 0)) { + thisdir->min_seq = start; /* first byte in this segment */ + thisdir->max_seq = end; /* last byte in this segment */ + } + if (SEQ_GREATERTHAN (end,thisdir->max_seq)) { + thisdir->max_seq = end; + } + thisdir->latest_seq = end; + + + /* check for hardware duplicates */ + /* only works for IPv4, IPv6 has no mandatory ID field */ + if (PIP_ISV4(pip) && docheck_hw_dups) + hw_dup = check_hw_dups(pip->ip_id, th_seq, thisdir); + + + /* Kevin Lahey's ECN code */ + /* only works for IPv4 */ + if (PIP_ISV4(pip)) { + ecn_ce = IP_ECT(pip) && IP_CE(pip); + } + cwr = CWR_SET(ptcp); + ecn_echo = ECN_ECHO_SET(ptcp); + + /* save the stream contents, if requested */ + if (tcp_data_length > 0) { + u_char *pdata = (u_char *)ptcp + TH_OFF(ptcp)*4; + u_long saved; + u_long missing; + + saved = tcp_data_length; + if ((char *)pdata + tcp_data_length > ((char *)plast+1)) + saved = (char *)plast - (char *)pdata + 1; + + /* see what's missing */ + missing = tcp_data_length - saved; + if (missing > 0) { + thisdir->trunc_bytes += missing; + ++thisdir->trunc_segs; + } + + if (save_tcp_data) + ExtractContents(start,tcp_data_length,saved,pdata,thisdir); + } + + /* do rexmit stats */ + retrans = FALSE; + probe = FALSE; + out_order = FALSE; + retrans_num_bytes = 0; + if (SYN_SET(ptcp) || FIN_SET(ptcp) || tcp_data_length > 0) { + int len = tcp_data_length; + int retrans_cnt=0; + + if (SYN_SET(ptcp)) ++len; + if (FIN_SET(ptcp)) ++len; + + + /* Don't consider for rexmit, if the send window is 0 */ + /* We are probably doing window probing.. */ + /* Patch from Ulisses Alonso Camaro : Not treat the SYN segments + * as probes, even though a zero window was advertised from the + * opposite direction */ + if( (otherdir->win_last==0) && (otherdir->packets > 0) && + /* Patch from Ulisses Alonso Camaro : Not treat the SYN segments + * as probes, even though a zero window was advertised from the + * opposite direction */ + (!SYN_SET(ptcp)) ) { + probe=TRUE; + thisdir->num_zwnd_probes++; + thisdir->zwnd_probe_bytes += tcp_data_length; + } + else + retrans_cnt = retrans_num_bytes = rexmit(thisdir,start, len, &out_order); + + if (out_order) + ++thisdir->out_order_pkts; + + /* count anything NOT retransmitted as "unique" */ + /* exclude SYN and FIN */ + if (SYN_SET(ptcp)) { + /* don't count the SYN as data */ + --len; + /* if the SYN was rexmitted, then don't count it */ + if (thisdir->syn_count > 1) + --retrans_cnt; + } + if (FIN_SET(ptcp)) { + /* don't count the FIN as data */ + --len; + /* if the FIN was rexmitted, then don't count it */ + if (thisdir->fin_count > 1) + --retrans_cnt; + } + if (!probe){ + if(retrans_cnt < len) + thisdir->unique_bytes += (len - retrans_cnt); + } + } + + + /* do rtt stats */ + if (ACK_SET(ptcp)) { + ack_type = ack_in(otherdir,th_ack,tcp_data_length,eff_win); + + if ( (th_ack == (otherdir->syn+1)) && + (otherdir->syn_count == 1) ) + otherdir->rtt_3WHS=otherdir->rtt_last; + /* otherdir->rtt_last was set in the call to ack_in() */ + + otherdir->lastackno = th_ack; + } + + /* LEAST */ + if (thisdir->tcp_strain == TCP_RENO) { + if (thisdir->in_rto && tcp_data_length > 0) { + if (retrans_num_bytes>0 && th_seq < thisdir->recovered) + thisdir->event_retrans++; + if (IsRTO(thisdir, th_seq)) { + thisdir->recovered = thisdir->recovered_orig = thisdir->seq; + thisdir->rto_segment = th_seq; + } + if (!(retrans_num_bytes>0) && thisdir->ack <= thisdir->recovered_orig) + thisdir->recovered = th_seq; + } + if (otherdir->in_rto && ACK_SET(ptcp)) { + if (th_ack > otherdir->recovered) { + otherdir->LEAST -= + (otherdir->event_dupacks < otherdir->event_retrans)? + otherdir->event_dupacks:otherdir->event_retrans; + otherdir->in_rto = FALSE; + } else if (th_ack == otherdir->lastackno && + th_ack >= otherdir->rto_segment) otherdir->event_dupacks++; + } + } + + /* plot out-of-order segments, if asked */ + if (out_order && (from_tsgpl != NO_PLOTTER) && show_out_order) { + plotter_perm_color(from_tsgpl, out_order_color); + plotter_text(from_tsgpl, current_time, SeqRep(thisdir,end), + "a", "O"); + if (bottom_letters) + plotter_text(from_tsgpl, current_time, + SeqRep(thisdir,thisdir->min_seq)-1500, + "c", "O"); + } + + /* stats for rexmitted data */ + if (retrans_num_bytes>0) { + retrans = TRUE; + /* for reno LEAST estimate */ + if (thisdir->tcp_strain == TCP_RENO && + !thisdir->in_rto && IsRTO(thisdir, th_seq)) { + thisdir->in_rto = TRUE; + thisdir->recovered = thisdir->recovered_orig = thisdir->seq; + thisdir->rto_segment = th_seq; + thisdir->event_retrans = 1; thisdir->event_dupacks = 0; + } + thisdir->rexmit_pkts += 1; + thisdir->LEAST++; + thisdir->rexmit_bytes += retrans_num_bytes; + /* don't color the SYNs and FINs, it's confusing, we'll do them */ + /* differently below... */ + if (!(FIN_SET(ptcp)||SYN_SET(ptcp)) && + from_tsgpl != NO_PLOTTER && show_rexmit) { + plotter_perm_color(from_tsgpl, retrans_color); + plotter_text(from_tsgpl, current_time, SeqRep(thisdir,end), + "a", hw_dup?"HD":"R"); + if (bottom_letters) + plotter_text(from_tsgpl, current_time, + SeqRep(thisdir,thisdir->min_seq)-1500, + "c", hw_dup?"HD":"R"); + } + } else { + thisdir->seq = end; + } + + if(probe) { + if(from_tsgpl != NO_PLOTTER && show_zwnd_probes){ + plotter_perm_color(from_tsgpl,probe_color); + plotter_text(from_tsgpl,current_time,SeqRep (thisdir,end), + "b", "P"); + } + } + + /* draw the packet */ + if (from_tsgpl != NO_PLOTTER) { + plotter_perm_color(from_tsgpl, data_color); + if (SYN_SET(ptcp)) { /* SYN */ + /* if we're using time offsets from zero, it's easier if */ + /* both graphs (a2b and b2a) start at the same point. That */ + /* will only happen if the "left-most" graphic is in the */ + /* same place in both. To make sure, mark the SYNs */ + /* as a green dot in the other direction */ + if (ACK_SET(ptcp)) { + plotter_temp_color(from_tsgpl, ack_color); + plotter_dot(from_tsgpl, + ptp_save->first_time, SeqRep(thisdir,start)); + } + plotter_perm_color(from_tsgpl, + hw_dup?hw_dup_color: + retrans_num_bytes>0?retrans_color: + synfin_color); + plotter_diamond(from_tsgpl, current_time, SeqRep(thisdir,start)); + plotter_text(from_tsgpl, current_time, + SeqRep(thisdir,start+1), "a", + hw_dup?"HD SYN": + retrans_num_bytes>0?"R SYN": + "SYN"); + plotter_uarrow(from_tsgpl, current_time, SeqRep(thisdir,start+1)); + plotter_line(from_tsgpl, + current_time, SeqRep(thisdir,start), + current_time, SeqRep(thisdir,start+1)); + } else if (FIN_SET(ptcp)) { /* FIN */ + /* Wed Sep 18, 2002 - bugfix + * Check if data is present in the last packet. + * We will draw the data bytes with the normal color + * and then change the color for the last byte of FIN. + */ + if(tcp_data_length > 0) { /* DATA + FIN */ + /* Data - default color */ + plotter_darrow(from_tsgpl, current_time, SeqRep(thisdir,start)); + plotter_line(from_tsgpl, + current_time, SeqRep(thisdir,start), + current_time, SeqRep(thisdir,end)); + /* FIN - synfin color */ + plotter_perm_color(from_tsgpl, + hw_dup?hw_dup_color: + retrans_num_bytes>0?retrans_color: + synfin_color); + } + else { /* Only FIN */ + /* FIN - synfin color */ + plotter_perm_color(from_tsgpl, + hw_dup?hw_dup_color: + retrans_num_bytes>0?retrans_color: + synfin_color); + plotter_darrow(from_tsgpl, current_time, SeqRep(thisdir,end)); + } + plotter_line(from_tsgpl, + current_time, SeqRep(thisdir,end), + current_time, SeqRep(thisdir,end+1)); + plotter_box(from_tsgpl, current_time, SeqRep(thisdir,end+1)); + plotter_text(from_tsgpl, current_time, + SeqRep(thisdir,end+1), "a", + hw_dup?"HD FIN": + retrans_num_bytes>0?"R FIN": + "FIN"); + + } else if (tcp_data_length > 0) { /* DATA */ + if (hw_dup) { + plotter_perm_color(from_tsgpl, hw_dup_color); + } else if (retrans) { + plotter_perm_color(from_tsgpl, retrans_color); + } + plotter_darrow(from_tsgpl, current_time, SeqRep(thisdir,start)); + if (PUSH_SET(ptcp)) { + /* colored diamond is PUSH */ + plotter_temp_color(from_tsgpl, push_color); + plotter_diamond(from_tsgpl, + current_time, SeqRep(thisdir,end)); + plotter_temp_color(from_tsgpl, push_color); + plotter_dot(from_tsgpl, current_time, SeqRep(thisdir,end)); + } else { + plotter_uarrow(from_tsgpl, current_time, SeqRep(thisdir,end)); + } + plotter_line(from_tsgpl, + current_time, SeqRep(thisdir,start), + current_time, SeqRep(thisdir,end)); + } else if (tcp_data_length == 0) { + /* for Brian Utterback */ + if (graph_zero_len_pkts) { + /* draw zero-length packets */ + /* shows up as an X, really two arrow heads */ + plotter_darrow(from_tsgpl, + current_time, SeqRep(thisdir,start)); + plotter_uarrow(from_tsgpl, + current_time, SeqRep(thisdir,start)); + } + } + + /* Kevin Lahey's code */ + /* XXX: can this overwrite other labels!? */ + if (cwr || ecn_ce) { + plotter_perm_color(from_tsgpl, ecn_color); + plotter_diamond(from_tsgpl, + current_time, SeqRep(thisdir,start)); + plotter_text(from_tsgpl, current_time, SeqRep(thisdir, start), "a", + cwr ? (ecn_ce ? "CWR CE" : "CWR") : "CE"); + } + + } + + /* Plotting URGENT data */ + if(urg) { + if(from_tsgpl != NO_PLOTTER && show_urg){ + plotter_perm_color(from_tsgpl,urg_color); + plotter_text(from_tsgpl,current_time,SeqRep (thisdir,end), + "a", "U"); + } + } + + /* graph time line */ + /* Since the axis types have been switched specially for these graphs, + * x is actually used as y and y as x + * -Avinash. + * + * NOTE: This code is lacking about a 1000 lines of intellegence that is needed + * ----- to draw these graphs correctly. I have left it in here as the starting + * point to work on. Whoever is working on this project would want to clean + * up this file trace.c (based on the patches in the README.tline_graphs + * file), and continue development as a seperate module. We started this + * project thinking it is easy to draw these graphs, and then realized that + * it is infact quite a complicated task. All this works with a -L option at + * command line. + */ + if (tlinepl != NO_PLOTTER) { + char buf1[200]; + char buf2[50]; + static seqnum a2b_first_seqnum = 0; + static seqnum b2a_first_seqnum = 0; + /* 1/3rd rtt. Since we have the timestamps only on one side, we calculate the + * arrrival/departure time of the segments on the other side by adding/subtracting + * 1/3rd rtt. We assume that it takes 1/3rd time for the segment to travel in + * either direction, and 1/3rd time for processing. + * We also skew the calculated times so that the acks are not seen before the + * segments actually arrive. + */ + struct timeval one3rd_rtt; + struct timeval copy_current_time; + /* Make a copy of the current time (Needed for calculations) */ + copy_current_time.tv_sec = current_time.tv_sec; + copy_current_time.tv_usec = current_time.tv_usec; + /* Compute 1/3rd rtt */ + one3rd_rtt.tv_sec = 0; + one3rd_rtt.tv_usec = thisdir->rtt_last/3; + /* Adjust seconds and microseconds */ + while(one3rd_rtt.tv_usec >= US_PER_SEC) { + one3rd_rtt.tv_usec -= US_PER_SEC; + one3rd_rtt.tv_sec += 1; + } + + /* Initializations */ + memset(&buf1, 0, sizeof(buf1)); + memset(&buf2, 0, sizeof(buf2)); + + /* Segment information */ + /* Check the flags */ + if(SYN_SET(ptcp)) + strncat(buf1, "SYN ", 4); + if(FIN_SET(ptcp)) + strncat(buf1, "FIN ", 4); + if(RESET_SET(ptcp)) + strncat(buf1, "RST ", 4); + if(PUSH_SET(ptcp)) + strncat(buf1, "PSH ", 4); + if(URGENT_SET(ptcp)) + strncat(buf1, "URG ", 4); + + + /* Write the sequence numbers */ + if(dir == A2B) { + /* Use relative sequence numbers after the first segment in either direction */ + snprintf(buf2, sizeof(buf2), "%lu:%lu(%lu) ", (start - a2b_first_seqnum), + (end - a2b_first_seqnum), (end-start)); + strncat(buf1, buf2, strlen(buf2)); + if(a2b_first_seqnum == 0 && !SYN_SET(ptcp)) // Don't use relative sequence numbers until handshake is complete. + a2b_first_seqnum = thisdir->min_seq; + }else if(dir == B2A) { + /* Use relative sequence numbers after the first segment in either direction */ + snprintf(buf2, sizeof(buf2), "%lu:%lu(%lu) ", (start - b2a_first_seqnum), + (end - b2a_first_seqnum), (end-start)); + strncat(buf1, buf2, strlen(buf2)); + if(b2a_first_seqnum == 0 && !SYN_SET(ptcp)) + b2a_first_seqnum = thisdir->min_seq; + } + + /* Acknowledgements */ + if(ACK_SET(ptcp)) { + memset(&buf2, 0, sizeof(buf2)); + if(dir == A2B) + snprintf(buf2, sizeof(buf2), "ack %lu ", (th_ack - b2a_first_seqnum)); + else if(dir == B2A) + snprintf(buf2, sizeof(buf2), "ack %lu ", (th_ack - a2b_first_seqnum)); + strncat(buf1, buf2, strlen(buf2)); + } + + /* Advertised Window */ + memset(&buf2, 0, sizeof(buf2)); + snprintf(buf2, sizeof(buf2), "win %lu ", eff_win); + strncat(buf1, buf2, strlen(buf2)); + + /* Retransmits */ + if(retrans) { + memset(&buf2, 0, sizeof(buf2)); + snprintf(buf2, sizeof(buf2), "R "); + strncat(buf1, buf2, strlen(buf2)); + } + + /* Hardware Duplicates */ + if(hw_dup) { + memset(&buf2, 0, sizeof(buf2)); + snprintf(buf2, sizeof(buf2), "HD "); + strncat(buf1, buf2, strlen(buf2)); + } + + /* Draw the segment ------>/<------- */ + if(dir == A2B) { + tv_add(©_current_time, one3rd_rtt); + plotter_line(tlinepl, ptp_save->first_time, tline_left, copy_current_time, tline_left); + plotter_line(tlinepl, ptp_save->first_time, tline_right, copy_current_time, tline_right); + if(SYN_SET(ptcp)|| FIN_SET(ptcp) || RESET_SET(ptcp)) + plotter_perm_color(tlinepl, synfin_color); + else + plotter_perm_color(tlinepl, a2b_seg_color); + plotter_line(tlinepl, current_time, tline_left, copy_current_time, tline_right); + plotter_rarrow(tlinepl, copy_current_time, tline_right); + plotter_perm_color(tlinepl, default_color); + plotter_text(tlinepl, current_time, tline_left, "l", buf1); + } + else if(dir == B2A) { + tv_sub(©_current_time, one3rd_rtt); + plotter_line(tlinepl, ptp_save->first_time, tline_left, copy_current_time, tline_left); + plotter_line(tlinepl, ptp_save->first_time, tline_right, copy_current_time, tline_right); + if(SYN_SET(ptcp)|| FIN_SET(ptcp) || RESET_SET(ptcp)) + plotter_perm_color(tlinepl, synfin_color); + else + plotter_perm_color(tlinepl, b2a_seg_color); + plotter_line(tlinepl, copy_current_time, tline_right, current_time, tline_left); + plotter_larrow(tlinepl, current_time, tline_left); + plotter_perm_color(tlinepl, default_color); + plotter_text(tlinepl, copy_current_time, tline_right, "r", buf1); + } + + } + + + /* check for RESET */ + if (RESET_SET(ptcp)) { + u_long plot_at; + + /* if there's an ACK in this packet, plot it there */ + /* otherwise, plot it at the last valid ACK we have */ + if (ACK_SET(ptcp)) + plot_at = th_ack; + else + plot_at = thisdir->ack; + + if (to_tsgpl != NO_PLOTTER) { + plotter_temp_color(to_tsgpl, text_color); + plotter_text(to_tsgpl, + current_time, SeqRep(otherdir,plot_at), + "a", "RST_IN"); + } + if (from_tsgpl != NO_PLOTTER) { + plotter_temp_color(from_tsgpl, text_color); + plotter_text(from_tsgpl, + current_time, SeqRep(thisdir,start), + "a", "RST_OUT"); + } + if (ACK_SET(ptcp)) + ++thisdir->ack_pkts; + + if (run_continuously) { + UpdateConnLists(tcp_ptr, ptcp); + } + return(ptp_save); + } + + /* do window stats (include first SYN too!) */ + thisdir->win_last=eff_win; + + if (ACK_SET(ptcp) || SYN_SET(ptcp)) { + if (eff_win > thisdir->win_max) + thisdir->win_max = eff_win; + + /* If we *are* going to use window scaling, + * i.e., if we saw both SYN segments of the connection requesting + * window scaling, we flush out all the window stats we gathered till + * now from the SYN segments. + * + * o We set the flag window_stats_updated_for_scaling to TRUE + * o Set win_min and win_max to the value found in this first + * window-scaled segment + * o Reset win_tot value too, as this is used to calculate the + * average window advertisement seen in this direction at the end + * o We also use the field win_scaled_pkts for this purpose, so that + * in the end we calculate + * + * avg_win_adv = win_tot/win_scaled_pkts // Refer output.c + * + * Note : for a connection that doesn't use window scaling, + * + * avg_win_adv = win_tot/packets // Refer again to output.c + */ + + if ( (eff_win>0) && + ( thisdir->f1323_ws && otherdir->f1323_ws && !SYN_SET(ptcp) && + !thisdir->window_stats_updated_for_scaling + ) + ) { + thisdir->window_stats_updated_for_scaling=TRUE; + thisdir->win_min = thisdir->win_max = eff_win; + thisdir->win_tot = 0; + thisdir->win_scaled_pkts = 1; + } + else if ((eff_win > 0) && + ((thisdir->win_min == 0) || + (eff_win < thisdir->win_min))) + thisdir->win_min = eff_win; + + /* Add the window advertisement to win_tot */ + thisdir->win_tot += eff_win; + } + + /* draw the ack and win in the other plotter */ + if (ACK_SET(ptcp)) { + seqnum ack = th_ack; + u_long winend; + + winend = ack + eff_win; + + if (eff_win == 0) { + ++thisdir->win_zero_ct; + if (to_tsgpl != NO_PLOTTER && show_zero_window) { + plotter_temp_color(to_tsgpl, text_color); + plotter_text(to_tsgpl, + current_time, SeqRep(otherdir,winend), + "a", "Z"); + if (bottom_letters) { + plotter_temp_color(to_tsgpl, text_color); + plotter_text(to_tsgpl, + current_time, + SeqRep(otherdir,otherdir->min_seq)-1500, + "a", "Z"); + } + } + } + + ++thisdir->ack_pkts; + if ((tcp_data_length == 0) && + !SYN_SET(ptcp) && !FIN_SET(ptcp) && !RESET_SET(ptcp)) { + ++thisdir->pureack_pkts; + } + + + if (to_tsgpl != NO_PLOTTER && thisdir->time.tv_sec != -1) { + plotter_perm_color(to_tsgpl, ack_color); + plotter_line(to_tsgpl, + thisdir->time, SeqRep(otherdir,thisdir->ack), + current_time, SeqRep(otherdir,thisdir->ack)); + if (thisdir->ack != ack) { + plotter_line(to_tsgpl, + current_time, SeqRep(otherdir,thisdir->ack), + current_time, SeqRep(otherdir,ack)); + if (show_rtt_dongles) { + /* draw dongles for "interesting" acks */ + switch (ack_type) { + case NORMAL: /* normal case */ + /* no dongle */ + break; + case CUMUL: /* cumulative */ + /* won't happen, not plotted here */ + break; + case TRIPLE: /* triple dupacks */ + /* won't happen, not plotted here */ + break; + case AMBIG: /* ambiguous */ + plotter_temp_color(to_tsgpl, ackdongle_ambig_color); + plotter_diamond(to_tsgpl, current_time, + SeqRep(otherdir,ack)); + break; + case NOSAMP: /* acks retransmitted stuff cumulatively */ + plotter_temp_color(to_tsgpl, ackdongle_nosample_color); + plotter_diamond(to_tsgpl, current_time, + SeqRep(otherdir,ack)); + break; + } + } + } else { + plotter_dtick(to_tsgpl, current_time, SeqRep(otherdir,ack)); + if (show_triple_dupack && (ack_type == TRIPLE)) { + plotter_text(to_tsgpl, current_time, + SeqRep(otherdir,ack), + "a", "3"); /* '3' is for triple dupack */ + } + } + + /* Kevin Lahey's code */ + if (ecn_echo && !SYN_SET(ptcp)) { + plotter_perm_color(to_tsgpl, ecn_color); + plotter_diamond(to_tsgpl, current_time, SeqRep(otherdir, ack)); + } + + plotter_perm_color(to_tsgpl, window_color); + plotter_line(to_tsgpl, + thisdir->time, SeqRep(otherdir,old_this_windowend), + current_time, SeqRep(otherdir,old_this_windowend)); + if (old_this_windowend != winend) { + plotter_line(to_tsgpl, + current_time, SeqRep(otherdir,old_this_windowend), + current_time, SeqRep(otherdir,winend)); + } else { + plotter_utick(to_tsgpl, current_time, SeqRep(otherdir,winend)); + } + } + + /* track the most sack blocks in a single ack */ + if (ptcpo->sack_count > 0) { + ++thisdir->num_sacks; + if (ptcpo->sack_count > thisdir->max_sack_blocks) + thisdir->max_sack_blocks = ptcpo->sack_count; + + /* also see if any of them are DSACKS - weddy */ + /* eventually may come back and fix this, what if we+++++ + didn't see all the rexmits and so LEAST wesn't set + high enough, now it's too low */ + /* case 1, first block under cumack */ + if (ptcpo->sacks[0].sack_right <= th_ack) { + thisdir->num_dsacks++; + if (otherdir->LEAST > 0) otherdir->LEAST--; + /* case 2, first block inside second */ + } else if (ptcpo->sack_count > 1) { + if (ptcpo->sacks[0].sack_right <= ptcpo->sacks[1].sack_right + && ptcpo->sacks[0].sack_left >= ptcpo->sacks[1].sack_left) + { + thisdir->num_dsacks++; + if (otherdir->LEAST > 0) otherdir->LEAST--; + /* case 3, first and second block overlap */ + } else if ((ptcpo->sacks[0].sack_left <= + ptcpo->sacks[1].sack_left && + ptcpo->sacks[0].sack_right > + ptcpo->sacks[1].sack_left) || + (ptcpo->sacks[0].sack_right >= + ptcpo->sacks[1].sack_right && + ptcpo->sacks[0].sack_left < + ptcpo->sacks[1].sack_right)) { + thisdir->num_dsacks++; + if (otherdir->LEAST > 0) otherdir->LEAST--; + } + } + /* if we saw any dsacks from the other guy, we'll assume he did + it on purpose and is a dsack tcp */ + if (thisdir->num_dsacks > 0) thisdir->tcp_strain = TCP_DSACK; + } + + /* draw sacks, if appropriate */ + if (to_tsgpl != NO_PLOTTER && show_sacks + && (ptcpo->sack_count > 0)) { + int scount; + seqnum sack_top = ptcpo->sacks[0].sack_right; + + plotter_perm_color(to_tsgpl, sack_color); + for (scount = 0; scount < ptcpo->sack_count; ++scount) { + plotter_line(to_tsgpl, + current_time, + SeqRep(otherdir,ptcpo->sacks[scount].sack_left), + current_time, + SeqRep(otherdir,ptcpo->sacks[scount].sack_right)); + /* make it easier to read multiple sacks by making them look like + |-----| (sideways) + */ + plotter_htick(to_tsgpl, + current_time, + SeqRep(otherdir,ptcpo->sacks[scount].sack_left)); + plotter_htick(to_tsgpl, + current_time, + SeqRep(otherdir,ptcpo->sacks[scount].sack_right)); + + /* if there's more than one, label the order */ + /* purple number to the right of the top ("right" edge) */ + if (ptcpo->sack_count > 1) { + char buf[5]; /* can't be more than 1 digit! */ + snprintf(buf,sizeof(buf),"%u",scount+1); /* 1-base, rather than 0-base */ + plotter_text(to_tsgpl, + current_time, + SeqRep(otherdir,ptcpo->sacks[scount].sack_right), + "r", buf); + } + + /* maintain the highest SACK so we can label them all at once */ + if (SEQ_GREATERTHAN(ptcpo->sacks[scount].sack_right, sack_top)) + sack_top = ptcpo->sacks[scount].sack_right; + } + /* change - just draw the 'S' above the highest one */ + plotter_text(to_tsgpl, current_time, + SeqRep(otherdir,sack_top), + "a", "S"); /* 'S' is for Sack */ + } + thisdir->time = current_time; + thisdir->ack = ack; + +/* thisdir->windowend = winend; (moved above "only" point) */ + } /* end ACK_SET(ptcp) */ + + /* do stats for initial window (first slow start) */ + /* (if there's data in this and we've NEVER seen */ + /* an ACK coming back from the other side) */ + /* this is for Mark Allman for slow start testing -- Mon Mar 10, 1997 */ + if (!otherdir->data_acked && ACK_SET(ptcp) + && ((otherdir->syn+1) != th_ack)) { + otherdir->data_acked = TRUE; + } + if ((tcp_data_length > 0) && (!thisdir->data_acked)) { + if (!retrans) { + /* don't count it if it was retransmitted */ + thisdir->initialwin_bytes += tcp_data_length; + thisdir->initialwin_segs += 1; + } + } + + /* do stats for congestion window (estimated) */ + /* estimate the congestion window as the number of outstanding */ + /* un-acked bytes */ + if (!SYN_SET(ptcp) && !out_order && !retrans) { + u_long owin; + /* If there has been no ack from the other direction, owin is just + * bytes in this pkt. + */ + if (otherdir->ack == 0){ + owin = end - start ; + } + else { + /* ack always acks 'received + 1' bytes, so subtract 1 + * for owin */ + owin = end - (otherdir->ack - 1); + } + + if (owin > thisdir->owin_max) + thisdir->owin_max = owin; + if ((owin > 0) && + ((thisdir->owin_min == 0) || + (owin < thisdir->owin_min))) + thisdir->owin_min = owin; + + thisdir->owin_tot += owin; + thisdir->owin_count++; + + /* adding mark's suggestion of weighted owin */ + if (thisdir->previous_owin_sample_time.tv_sec == 0) { + /* if this is first ever sample for thisdir */ + thisdir->previous_owin_sample_time = thisdir->last_time; + thisdir->previous_owin_sample = owin; + } + else { + /* weight each owin sample with the duration that it exists for */ + sample_elapsed_time = (elapsed(thisdir->previous_owin_sample_time, ptp_save->last_time))/1000000; + total_elapsed_time = (elapsed(ptp_save->first_time, ptp_save->last_time))/1000000; + thisdir->owin_wavg += (u_llong)((thisdir->previous_owin_sample) * sample_elapsed_time); + /* graph owin_wavg */ + if (thisdir->owin_plotter != NO_PLOTTER) { + extend_line(thisdir->owin_wavg_line, thisdir->previous_owin_sample_time, + (total_elapsed_time)?((u_llong)((thisdir->owin_wavg)/total_elapsed_time)):0); + } + thisdir->previous_owin_sample_time = thisdir->last_time; + thisdir->previous_owin_sample = owin; + } + + /* graph owin */ + if (thisdir->owin_plotter != NO_PLOTTER) { + extend_line(thisdir->owin_line, current_time, owin); + if (show_rwinline) { + extend_line(thisdir->rwin_line, current_time, + otherdir->win_last); + } + extend_line(thisdir->owin_avg_line, current_time, + (thisdir->owin_count?(thisdir->owin_tot/thisdir->owin_count):0)); + } + } + if (run_continuously) { + UpdateConnLists(tcp_ptr, ptcp); + } + + return(ptp_save); +} + + + +void +trace_done(void) +{ + tcp_pair *ptp; + FILE *f_passfilter = NULL; + int ix; + static int count = 0; + Bool incomplete_pkt_capture = FALSE; + + if (!run_continuously) { + if (!printsuppress) { + if (tcp_trace_count == 0) { + fprintf(stdout,"%sno traced TCP packets\n", comment); + return; + } else { + fprintf(stdout,"%sTCP connection info:\n", comment); + } + } + + if (!printbrief) + fprintf(stdout,"%s%d TCP %s traced:\n", + comment, + num_tcp_pairs + 1, + num_tcp_pairs==0?"connection":"connections"); + if (ctrunc > 0) { + fprintf(stdout, + "%s*** %lu packets were too short to process at some point\n", + comment, + ctrunc); + if (!warn_printtrunc) + fprintf(stdout,"%s\t(use -w option to show details)\n", comment); + } + + /* generate statistics for data storage efficiency */ + if (debug>1) { + int h; + int occupied_buckets = 0; + int max_bucket_occupancy = 0; + int max_searches = 0; + int max_depth = 0; + int max_comparisons = 0; + float max_searches_compare = 0.0; + fprintf(stdout,"%sTotal searches: %u\n", comment, tcp_packet_count); + fprintf(stdout,"%s Total comparisons: %u\n", comment, search_count); + fprintf(stdout,"%s Average compares/search: %.2f\n", + comment, (float)search_count / (float)tcp_packet_count); + fprintf(stdout,"%sHash table size: %u\n", comment, HASH_TABLE_SIZE); + for (h=0; h < HASH_TABLE_SIZE; ++h) { + struct search_efficiency *pse = &hashtable_efficiency[h]; + float searches_compare; + if (pse->num_connections > 0) + ++occupied_buckets; + if (pse->max_connections > max_bucket_occupancy) + max_bucket_occupancy = pse->max_connections; + if (pse->num_searches > max_searches) + max_searches = pse->num_searches; + if (pse->num_comparisons > max_comparisons) + max_comparisons = pse->num_comparisons; + if (pse->max_depth > max_depth) + max_depth = pse->max_depth; + searches_compare = (float) pse->num_comparisons / (float) pse->num_searches; + if (searches_compare > max_searches_compare) + max_searches_compare = searches_compare; + } + fprintf(stdout,"%s Occupied hash buckets: %u\n", comment, occupied_buckets); + fprintf(stdout,"%s Max entries/bucket: %u\n", comment, max_bucket_occupancy); + fprintf(stdout,"%s Max searches/bucket: %u\n", comment, max_searches); + fprintf(stdout,"%s Max comparisons/bucket: %u\n", comment, max_comparisons); + fprintf(stdout,"%s Max avg compares/search: %.2f\n", comment, max_searches_compare); + fprintf(stdout,"%s Max tree depth: %u\n", comment, max_depth); + } + + /* complete the "idle time" calculations using NOW */ + for (ix = 0; ix <= num_tcp_pairs; ++ix) { + tcp_pair *ptp = ttp[ix]; + tcb *thisdir; + u_llong itime; + + /* if it's CLOSED, skip it */ + if ((FinCount(ptp)>=2) || (ConnReset(ptp))) + continue; + + /* a2b direction */ + thisdir = &ptp->a2b; + if (!ZERO_TIME(&thisdir->last_time)) { + itime = elapsed(thisdir->last_time,current_time); + if (itime > thisdir->idle_max) + thisdir->idle_max = itime; + } + + + /* b2a direction */ + thisdir = &ptp->b2a; + if (!ZERO_TIME(&thisdir->last_time)) { + itime = elapsed(thisdir->last_time,current_time); + if (itime > thisdir->idle_max) + thisdir->idle_max = itime; + } + } + } + + /* if we're filtering, see which connections pass */ + if (filter_output || ignore_non_comp) { + + /* file to dump matching connection numbers into */ + f_passfilter = fopen(PASS_FILTER_FILENAME,"w+"); + if (f_passfilter == NULL) { + perror(PASS_FILTER_FILENAME); + exit(-1); + } + + if (filter_output) { + if (!run_continuously) { + /* mark the connections to ignore */ + for (ix = 0; ix <= num_tcp_pairs; ++ix) { + ptp = ttp[ix]; + if (PassesFilter(ptp)) { + if (++count == 1) + fprintf(f_passfilter,"%d", ix+1); + else + fprintf(f_passfilter,",%d", ix+1); + } else { + /* else ignore it */ + ptp->ignore_pair = TRUE; + } + } + } + } + } + + if (!run_continuously) { + /* print each connection */ + if (!printsuppress) { + Bool first = TRUE; /* Used with -separated-values + * Keeps track of whether header has already + * been printed */ + for (ix = 0; ix <= num_tcp_pairs; ++ix) { + ptp = ttp[ix]; + + if (!ptp->ignore_pair) { + if ((printbrief) && (!ignore_non_comp || ConnComplete(ptp))) { + fprintf(stdout,"%3d: ", ix+1); + PrintBrief(ptp); + } else if (!ignore_non_comp || ConnComplete(ptp)) { + if(csv || tsv || (sv != NULL)) { + if(first) { + PrintSVHeader(); + first = FALSE; + } + fprintf(stdout, "%d%s", ix+1, sp); + } + else { + if (ix > 0) + fprintf(stdout,"================================\n"); + fprintf(stdout,"TCP connection %d:\n", ix+1); + + } + PrintTrace(ptp); + } + /* This piece of code dumps PF file when filtered with '-c' + option, this option says to select only complete connections. + The PF file will contain the connection numbers which are + selected to be complete */ + if (ignore_non_comp) + if (ConnComplete(ptp)) { + if (++count == 1) + fprintf(f_passfilter, "%d", ix+1); + else + fprintf(f_passfilter, ",%d", ix+1); + } + /******************************/ + + /* If we are extracting packet contents (-e option), we shall check to + * see if we missed segments during packet capture causing the + * X2Y_contents.dat files that we drop to contain voids in them. + * We shall emit a warning upon such an event below. */ + if (save_tcp_data && !incomplete_pkt_capture && MissingData(ptp)) + incomplete_pkt_capture = TRUE; + } + } + } + } + + /* if we're filtering, close the file */ + if (filter_output || ignore_non_comp) { + fprintf(f_passfilter,"\n"); + fclose(f_passfilter); + } + + if (incomplete_pkt_capture) { + fprintf(stderr, "\nWarning : some extracted files are incomplete!\n"); + fprintf(stderr, " Please see -l output for more detail.\n"); + } + + if ((debug>2) && !nonames) + cadump(); +} + +static void +MoreTcpPairs( + int num_needed) +{ + int new_max_tcp_pairs; + int i; + + if (num_needed < max_tcp_pairs) + return; + + new_max_tcp_pairs = max_tcp_pairs * 4; + while (new_max_tcp_pairs < num_needed) + new_max_tcp_pairs *= 4; + + if (debug) + printf("trace: making more space for %d total TCP pairs\n", + new_max_tcp_pairs); + + /* enlarge array to hold any pairs that we might create */ + ttp = ReallocZ(ttp, + max_tcp_pairs * sizeof(tcp_pair *), + new_max_tcp_pairs * sizeof(tcp_pair *)); + + /* enlarge array to keep track of which ones to ignore */ + ignore_pairs = ReallocZ(ignore_pairs, + max_tcp_pairs * sizeof(Bool), + new_max_tcp_pairs * sizeof(Bool)); + if (more_conns_ignored) + for (i=max_tcp_pairs; i < new_max_tcp_pairs;++i) + ignore_pairs[i] = TRUE; + + max_tcp_pairs = new_max_tcp_pairs; +} + + +void +trace_init(void) +{ + static Bool initted = FALSE; + + if (0) { + printf("trace_init called\n"); + } + + if (run_continuously) { + if (ignore_pairs) { + free(ignore_pairs); + ignore_pairs = NULL; + } + if (ttp) { + free(ttp); + ttp = NULL; + } + more_conns_ignored = FALSE; + } + + if (initted) + return; + + initted = TRUE; + + /* create an array to hold any pairs that we might create */ + ttp = (tcp_pair **) MallocZ(max_tcp_pairs * sizeof(tcp_pair *)); + + /* create an array to keep track of which ones to ignore */ + ignore_pairs = (Bool *) MallocZ(max_tcp_pairs * sizeof(Bool)); + if (!run_continuously) { + /* create an array to hold any pairs that we might create */ + ttp = (tcp_pair **) MallocZ(max_tcp_pairs * sizeof(tcp_pair *)); + + /* create an array to keep track of which ones to ignore */ + ignore_pairs = (Bool *) MallocZ(max_tcp_pairs * sizeof(Bool)); + } + + cainit(); + Minit(); +} + + +void +IgnoreConn( + int ix) +{ + if (debug) fprintf(stderr,"ignoring conn %d\n", ix); + +// trace_init(); + + --ix; + + MoreTcpPairs(ix); + + more_conns_ignored = FALSE; + ignore_pairs[ix] = TRUE; +} + + +void +OnlyConn( + int ix_only) +{ + int ix; + static Bool cleared = FALSE; + + if (debug) fprintf(stderr,"only printing conn %d\n", ix_only); + +// trace_init(); + + --ix_only; + + MoreTcpPairs(ix_only); + + if (!cleared) { + for (ix = 0; ix < max_tcp_pairs; ++ix) { + ignore_pairs[ix] = TRUE; + } + cleared = TRUE; + } + + more_conns_ignored = TRUE; + ignore_pairs[ix_only] = FALSE; +} + + +/* get a long (4 byte) option (to avoid address alignment problems) */ +static u_long +get_long_opt( + void *ptr) +{ + u_long l; + memcpy(&l,ptr,sizeof(u_long)); + return(l); +} + + +/* get a short (2 byte) option (to avoid address alignment problems) */ +static u_short +get_short_opt( + void *ptr) +{ + u_short s; + memcpy(&s,ptr,sizeof(u_short)); + return(s); +} + + +struct tcp_options * +ParseOptions( + struct tcphdr *ptcp, + void *plast) +{ + static struct tcp_options tcpo; + struct sack_block *psack; + u_char *pdata; + u_char *popt; + u_char *plen; + + popt = (u_char *)ptcp + sizeof(struct tcphdr); + pdata = (u_char *)ptcp + TH_OFF(ptcp)*4; + + /* init the options structure */ + memset(&tcpo,0,sizeof(tcpo)); + tcpo.mss = tcpo.ws = tcpo.tsval = tcpo.tsecr = -1; + tcpo.sack_req = 0; + tcpo.sack_count = -1; + tcpo.echo_req = tcpo.echo_repl = -1; + tcpo.cc = tcpo.ccnew = tcpo.ccecho = -1; + + /* a quick sanity check, the unused (MBZ) bits must BZ! */ + if (warn_printbadmbz) { + if (TH_X2(ptcp) != 0) { + fprintf(stderr, + "TCP packet %lu: 4 reserved bits are not zero (0x%01x)\n", + pnum, TH_X2(ptcp)); + } + if ((ptcp->th_flags & 0xc0) != 0) { + fprintf(stderr, + "TCP packet %lu: upper flag bits are not zero (0x%02x)\n", + pnum, ptcp->th_flags); + } + } else { + static int warned = 0; + if (!warned && + ((TH_X2(ptcp) != 0) || ((ptcp->th_flags & 0xc0) != 0))) { + warned = 1; + fprintf(stderr, "\ +TCP packet %lu: reserved bits are not all zero. \n\ +\tFurther warnings disabled, use '-w' for more info\n", + pnum); + } + } + + /* looks good, now check each option in turn */ + while (popt < pdata) { + plen = popt+1; + + /* check for truncation error */ + if ((char *)popt > (char *)plast) { + if (warn_printtrunc) + fprintf(stderr,"\ +ParseOptions: packet %lu too short to parse remaining options\n", pnum); + ++ctrunc; + break; + } + +#define CHECK_O_LEN(opt) \ + if (*plen == 0) { \ + if (warn_printtrunc) fprintf(stderr, "\ +ParseOptions: packet %lu %s option has length 0, skipping other options\n", \ + pnum,opt); \ + popt = pdata; break;} \ + if ((char *)popt + *plen - 1 > (char *)(plast)) { \ + if (warn_printtrunc) \ + fprintf(stderr, "\ +ParseOptions: packet %lu %s option truncated, skipping other options\n", \ + pnum,opt); \ + ++ctrunc; \ + popt = pdata; break;} \ + + + switch (*popt) { + case TCPOPT_EOL: ++popt; break; + case TCPOPT_NOP: ++popt; break; + case TCPOPT_MAXSEG: + CHECK_O_LEN("TCPOPT_MAXSEG"); + tcpo.mss = ntohs(get_short_opt(popt+2)); + popt += *plen; + break; + case TCPOPT_WS: + CHECK_O_LEN("TCPOPT_WS"); + tcpo.ws = *((u_char *)(popt+2)); + popt += *plen; + break; + case TCPOPT_TS: + CHECK_O_LEN("TCPOPT_TS"); + tcpo.tsval = ntohl(get_long_opt(popt+2)); + tcpo.tsecr = ntohl(get_long_opt(popt+6)); + popt += *plen; + break; + case TCPOPT_ECHO: + CHECK_O_LEN("TCPOPT_ECHO"); + tcpo.echo_req = ntohl(get_long_opt(popt+2)); + popt += *plen; + break; + case TCPOPT_ECHOREPLY: + CHECK_O_LEN("TCPOPT_ECHOREPLY"); + tcpo.echo_repl = ntohl(get_long_opt(popt+2)); + popt += *plen; + break; + case TCPOPT_CC: + CHECK_O_LEN("TCPOPT_CC"); + tcpo.cc = ntohl(get_long_opt(popt+2)); + popt += *plen; + break; + case TCPOPT_CCNEW: + CHECK_O_LEN("TCPOPT_CCNEW"); + tcpo.ccnew = ntohl(get_long_opt(popt+2)); + popt += *plen; + break; + case TCPOPT_CCECHO: + CHECK_O_LEN("TCPOPT_CCECHO"); + tcpo.ccecho = ntohl(get_long_opt(popt+2)); + popt += *plen; + break; + case TCPOPT_SACK_PERM: + CHECK_O_LEN("TCPOPT_SACK_PERM"); + tcpo.sack_req = 1; + popt += *plen; + break; + case TCPOPT_SACK: + /* see which bytes are acked */ + CHECK_O_LEN("TCPOPT_SACK"); + tcpo.sack_count = 0; + psack = (sack_block *)(popt+2); /* past the kind and length */ + popt += *plen; + while ((char *)psack < (char *)popt) { + struct sack_block *psack_local = + &tcpo.sacks[(unsigned)tcpo.sack_count]; + /* warning, possible alignment problem here, so we'll + use memcpy() and hope for the best */ + /* better use -fno-builtin to avoid gcc alignment error + in GCC 2.7.2 */ + memcpy(psack_local, psack, sizeof(sack_block)); + + /* convert to local byte order (Jamshid Mahdavi) */ + psack_local->sack_left = ntohl(psack_local->sack_left); + psack_local->sack_right = ntohl(psack_local->sack_right); + + ++psack; + if ((char *)psack > ((char *)plast+1)) { + /* this SACK block isn't all here */ + if (warn_printtrunc) + fprintf(stderr, + "packet %lu: SACK block truncated\n", + pnum); + ++ctrunc; + break; + } + ++tcpo.sack_count; + if (tcpo.sack_count > MAX_SACKS) { + /* this isn't supposed to be able to happen */ + fprintf(stderr, + "Warning, internal error, too many sacks!!\n"); + tcpo.sack_count = MAX_SACKS; + } + } + break; + default: + if (debug) + fprintf(stderr, + "Warning, ignoring unknown TCP option 0x%x\n", + *popt); + CHECK_O_LEN("TCPOPT_UNKNOWN"); + + /* record it anyway... */ + if (tcpo.unknown_count < MAX_UNKNOWN) { + int ix = tcpo.unknown_count; /* make lint happy */ + tcpo.unknowns[ix].unkn_opt = *popt; + tcpo.unknowns[ix].unkn_len = *plen; + } + ++tcpo.unknown_count; + + popt += *plen; + break; + } + } + + return(&tcpo); +} + + + +static void +ExtractContents( + u_long seq, + u_long tcp_data_bytes, + u_long saved_data_bytes, + void *pdata, + tcb *ptcb) +{ + u_long missing; + long offset; + u_long fptr; + /* Maximum filename could be : + aaaaaaaa2bbbbbbbb_contents.dat which + takes 8+1+8+ size of the extension */ + static char filename[MAX_HOSTLETTER_LEN + +1 /* for "2" */ + +MAX_HOSTLETTER_LEN + +sizeof(CONTENTS_FILE_EXTENSION) + +1]; /* for terminating NULL. */ + + if (debug > 2) + fprintf(stderr, + "ExtractContents(seq:%ld bytes:%ld saved_bytes:%ld) called\n", + seq, tcp_data_bytes, saved_data_bytes); + + if (saved_data_bytes == 0) + return; + + /* how many bytes do we have? */ + missing = tcp_data_bytes - saved_data_bytes; + if ((debug > 2) && (missing > 0)) { + fprintf(stderr,"ExtractContents: missing %ld bytes (%ld-%ld)\n", + missing,tcp_data_bytes,saved_data_bytes); + } + + + /* if the FILE is "-1", couldn't open file */ + if (ptcb->extr_contents_file == (MFILE *) -1) { + return; + } + + /* if the FILE is NULL, open file */ + snprintf(filename,sizeof(filename),"%s2%s%s", ptcb->host_letter, ptcb->ptwin->host_letter, + CONTENTS_FILE_EXTENSION); + if (ptcb->extr_contents_file == (MFILE *) NULL) { + MFILE *f; + + if ((f = Mfopen(filename,"w")) == NULL) { + perror(filename); + ptcb->extr_contents_file = (MFILE *) -1; + } + + if (debug) + fprintf(stderr,"TCP contents file is '%s'\n", filename); + + ptcb->extr_contents_file = f; + + if (ptcb->syn_count == 0) { + /* we haven't seen the SYN. This is bad because we can't tell */ + /* if there is data BEFORE this, which makes it tough to store */ + /* the file. Let's be optimistic and hope we don't see */ + /* anything before this point. Otherwise, we're stuck */ + ptcb->extr_lastseq = seq; + } else { + /* beginning of the file is the data just past the SYN */ + ptcb->extr_lastseq = ptcb->syn+1; + } + /* in any case, anything before HERE is illegal (fails for very */ + /* long files - FIXME */ + ptcb->extr_initseq = ptcb->extr_lastseq; + } + + /* it's illegal for the bytes to be BEFORE extr_initseq unless the file */ + /* is "really long" (seq space has wrapped around) - FIXME(ugly) */ + if ((SEQCMP(seq,ptcb->extr_initseq) < 0) && + (ptcb->data_bytes < (0xffffffff/2))) { + /* if we haven't (didn't) seen the SYN, then can't do this!! */ + if (debug>1) { + fprintf(stderr, + "ExtractContents: skipping data, preceeds first segment\n"); + fprintf(stderr,"\t and I didnt' see the SYN\n"); + } + return; + } + + /* see where we should start writing */ + /* a little complicated, because we want to support really long files */ + offset = SEQCMP(seq,ptcb->extr_lastseq); + + + if (debug>10) + fprintf(stderr, + "TRYING to save %ld bytes from stream '%s2%s' at offset %ld\n", + saved_data_bytes, + ptcb->host_letter, ptcb->ptwin->host_letter, + offset); + + /* seek to the correct place in the file */ + if (Mfseek(ptcb->extr_contents_file, offset, SEEK_CUR) == -1) { + perror("fseek"); + exit(-1); + } + + /* see where we are */ + fptr = Mftell(ptcb->extr_contents_file); + + if (debug>1) + fprintf(stderr, + "Saving %ld bytes from '%s2%s' at offset %ld in file '%s'\n", + saved_data_bytes, + ptcb->host_letter, ptcb->ptwin->host_letter, + fptr, filename); + + /* store the bytes */ + if (Mfwrite(pdata,1,saved_data_bytes,ptcb->extr_contents_file) + != saved_data_bytes) { + perror("fwrite"); + exit(-1); + } + + /* go back to where we started to not confuse the next write */ + ptcb->extr_lastseq = seq; + if (Mfseek(ptcb->extr_contents_file, fptr, SEEK_SET) == -1) { + perror("fseek 2"); + exit(-1); + } +} + + +/* check for not-uncommon error of hardware-level duplicates + (same IP ID and TCP sequence number) */ +static Bool +check_hw_dups( + u_short id, + seqnum seq, + tcb *tcb) +{ + int i; + struct str_hardware_dups *pshd; + + /* see if we've seen this one before */ + for (i=0; i < SEGS_TO_REMEMBER; ++i) { + pshd = &tcb->hardware_dups[i]; + + if ((pshd->hwdup_seq == seq) && (pshd->hwdup_id == id) && + (pshd->hwdup_seq != 0) && (pshd->hwdup_id != 0)) { + /* count it */ + ++tcb->num_hardware_dups; + if (warn_printhwdups) { + printf("%s->%s: saw hardware duplicate of TCP seq %lu, IP ID %u (packet %lu == %lu)\n", + tcb->host_letter,tcb->ptwin->host_letter, + seq, id, pnum,pshd->hwdup_packnum); + } + return(TRUE); + } + } + + /* remember it */ + pshd = &tcb->hardware_dups[tcb->hardware_dups_ix]; + pshd->hwdup_seq = seq; + pshd->hwdup_id = id; + pshd->hwdup_packnum = pnum; + tcb->hardware_dups_ix = (tcb->hardware_dups_ix+1) % SEGS_TO_REMEMBER; + + return(FALSE); +} + + +/* given a tcp_pair and a packet, tell me which tcb it is */ +struct tcb * +ptp2ptcb( + tcp_pair *ptp, + struct ip *pip, + struct tcphdr *ptcp) +{ + int dir = 0; + tcp_pair tp_in; + + /* grab the address from this packet */ + CopyAddr(&tp_in.addr_pair, pip, + ntohs(ptcp->th_sport), ntohs(ptcp->th_dport)); + + /* check the direction */ + if (!SameConn(&tp_in.addr_pair,&ptp->addr_pair,&dir)) + return(NULL); /* not found, internal error */ + + if (dir == A2B) + return(&ptp->a2b); + else + return(&ptp->b2a); +} + + +/* represent the sequence numbers absolute or relative to 0 */ +static u_long +SeqRep( + tcb *ptcb, + u_long seq) +{ + if (graph_seq_zero) { + return(seq - ptcb->min_seq); + } else { + return(seq); + } +} + + +/*------------------------------------------------------------------------ + * cksum - Return 16-bit ones complement of 16-bit ones complement sum + *------------------------------------------------------------------------ + */ +static u_short +cksum( + void *pvoid, /* any alignment is legal */ + int nbytes) +{ + u_char *pchar = pvoid; + u_long sum = 0; + + while (nbytes >= 2) { + /* can't assume pointer alignment :-( */ + sum += (pchar[0]<<8); + sum += pchar[1]; + + pchar+=2; + nbytes -= 2; + } + + /* special check for odd length */ + if (nbytes == 1) { + sum += (pchar[0]<<8); + /* lower byte is assumed to be 0 */ + } + + sum = (sum >> 16) + (sum & 0xffff); /* add in carry */ + sum += (sum >> 16); /* maybe one more */ + + return(sum); +} + +/* compute IP checksum */ +static u_short +ip_cksum( + struct ip *pip, + void *plast) +{ + u_short sum; + + if (PIP_ISV6(pip)) + return(0); /* IPv6 has no header checksum */ + if (!PIP_ISV4(pip)) + return(1); /* I have no idea! */ + + + /* quick sanity check, if the packet is truncated, pretend it's valid */ + if ((char *)plast < (char *)((char *)pip+IP_HL(pip)*4-1)) { + return(0); + } + + /* ... else IPv4 */ + sum = cksum(pip, IP_HL(pip)*4); + return(sum); +} + + +/* is the IP checksum valid? */ +Bool +ip_cksum_valid( + struct ip *pip, + void *plast) +{ + u_short sum; +/* PrintRawDataHex("IP header",pip,plast); */ + + sum = ip_cksum(pip,plast); + + return((sum == 0) || (sum == 0xffff)); +} + + +/* compute the TCP checksum */ +static u_short +tcp_cksum( + struct ip *pip, + struct tcphdr *ptcp, + void *plast) +{ + u_long sum = 0; + unsigned tcp_length = 0; + + /* verify version */ + if (!PIP_ISV4(pip) && !PIP_ISV6(pip)) { + fprintf(stderr,"Internal error, tcp_cksum: neither IPv4 nor IPv6\n"); + exit(-1); + } + + + /* TCP checksum includes: */ + /* - IP source */ + /* - IP dest */ + /* - IP type */ + /* - TCP header length + TCP data length */ + /* - TCP header and data */ + + if (PIP_ISV4(pip)) { + /* quick sanity check, if the packet is fragmented, + pretend it's valid */ + /* Thu Jul 6, 2000 - bugfix, bad check */ + if (((ntohs(pip->ip_off) << 2) & 0xffff) != 0) { + /* both the offset AND the MF bit must be 0 */ + /* (we shifted off the DF bit, which might be on) */ + return(0); + } + + /* 2 4-byte numbers, next to each other */ + sum += cksum(&pip->ip_src,4*2); + + /* type */ + sum += (u_short) pip->ip_p; + + /* length (TCP header length + TCP data length) */ + tcp_length = ntohs(pip->ip_len) - (4 * IP_HL(pip)); + sum += (u_short) tcp_length; + } else /* if (PIP_ISV6(pip))*/ { + + /* Support for IPv6 checksums has been added on Aug31, 2001 + * and has not been thoroughly tested. - Avinash + */ + + int total_length = 0; /* Total length of the extension headers */ + struct ipv6 *pip6 = (struct ipv6 *)pip; + + /* quick sanity check, it the packet is truncated, + * pertend it is valid. + */ + if(gettcp(pip, &ptcp, &plast) != 0) + return(0); + + /* Forming the pseudo-header */ + /* source address */ + sum += cksum(&pip6->ip6_saddr,16); + + /* Looking for the destination address. + * May be in the IPv6 header or the last address in the + * routing header (if present) + */ + + /* No extension headers, hence, routing header not present */ + if(pip6->ip6_nheader == IPPROTO_TCP) { + sum += cksum(&pip6->ip6_daddr,16); + } + /* Some extension headers present. Searching for routing header */ + else { + /* find the first header */ + struct ipv6_ext *pipv6_ext = (struct ipv6_ext *)(pip6+1); + + /* Searching for the routing header */ + int ret = getroutingheader(pip, &pipv6_ext, &plast); + + if(!ret) { /* Found the routing header */ + if(pipv6_ext->ip6ext_len >= 2) { /* Sanity check */ + char *daddr = (char *)((char *)pipv6_ext + 8 + ((pipv6_ext->ip6ext_len - 2) * 8)); + sum += cksum(&daddr,16); + } + else { /* Not a valid routing header */ + return(-1); + } + } + else { /* Routing header not found */ + sum += cksum(&pip6->ip6_daddr,16); + } + } + + /* Upper-Layer Packet Length */ + total_length = total_length_ext_headers(pip6); + if(total_length >= 0) + tcp_length = pip6->ip6_lngth - total_length; + else /* Unknown extension header seen */ + return(-1); + sum += (u_short) tcp_length; + + /* Next Header (Type) */ + sum += (u_short) IPPROTO_TCP; + } + + + /* quick sanity check, if the packet is truncated, pretend it's valid */ + if ((char *)plast < (char *)((char *)ptcp+tcp_length-1)) { + return(0); + } + + /* checksum the TCP header and data */ + sum += cksum(ptcp,tcp_length); + + /* roll down into a 16-bit number */ + sum = (sum >> 16) + (sum & 0xffff); + sum += (sum >> 16); + + return (u_short)(~sum & 0xffff); +} + + + +/* compute the UDP checksum */ +static u_short +udp_cksum( + struct ip *pip, + struct udphdr *pudp, + void *plast) +{ + u_long sum = 0; + unsigned udp_length; + + /* WARNING -- this routine has not been extensively tested */ + + /* verify version */ + if (!PIP_ISV4(pip) && !PIP_ISV6(pip)) { + fprintf(stderr,"Internal error, udp_cksum: neither IPv4 nor IPv6\n"); + exit(-1); + } + + + /* UDP checksum includes: */ + /* - IP source */ + /* - IP dest */ + /* - IP type */ + /* - UDP length field */ + /* - UDP header and data */ + + if (PIP_ISV4(pip)) { + /* 2 4-byte numbers, next to each other */ + sum += cksum(&pip->ip_src,4*2); + + /* type */ + sum += (u_short) pip->ip_p; + + /* UDP length */ + udp_length = ntohs(pudp->uh_ulen); + sum += htons(pudp->uh_ulen); + } else /* if (PIP_ISV6(pip))*/ { + + /* Support for IPv6 checksums has been added on Aug31, 2001 + * and has not been thoroughly tested. - Avinash + */ + + struct ipv6 *pip6 = (struct ipv6 *)pip; + + /* quick sanity check, it the packet is truncated, + * pertend it is valid. + */ + if(getudp(pip, &pudp, &plast) != 0) + return(0); + + /* Forming the pseudo-header */ + /* source address */ + sum += cksum(&pip6->ip6_saddr,16); + + /* Looking for the destination address. + * May be in the IPv6 header or the last address in the + * routing header (if present) + */ + + /* No extension headers, hence, routing header not present */ + if(pip6->ip6_nheader == IPPROTO_UDP) { + sum += cksum(&pip6->ip6_daddr,16); + } + /* Some extension headers present. Searching for routing header */ + else { + /* find the first header */ + struct ipv6_ext *pipv6_ext = (struct ipv6_ext *)(pip6+1); + + /* Searching for the routing header */ + int ret = getroutingheader(pip, &pipv6_ext, &plast); + + if(!ret) { /* Found the routing header */ + if(pipv6_ext->ip6ext_len >= 2) { /* Sanity check */ + char *daddr = (char *)((char *)pipv6_ext + 8 + ((pipv6_ext->ip6ext_len - 2) * 8)); + sum += cksum(&daddr,16); + } + else { /* Not a valid routing header */ + return(-1); + } + } + else { /* Routing header not found */ + sum += cksum(&pip6->ip6_daddr,16); + } + } + + /* Upper-Layer Packet Length */ + udp_length = ntohs(pudp->uh_ulen); + sum += htons(pudp->uh_ulen); + + /* Next Header (Type) */ + sum += (u_short) IPPROTO_UDP; + } + + + /* quick sanity check, if the packet is truncated, pretend it's valid */ + if ((char *)plast < (char *)((char *)pudp+udp_length-1)) { + return(0); + } + + /* checksum the UDP header and data */ + sum += cksum(pudp,udp_length); + + /* roll down into a 16-bit number */ + sum = (sum >> 16) + (sum & 0xffff); + sum += (sum >> 16); + + return (u_short)(~sum & 0xffff); +} + + +/* is the TCP checksum valid? */ +Bool +tcp_cksum_valid( + struct ip *pip, + struct tcphdr *ptcp, + void *plast) +{ + return(tcp_cksum(pip,ptcp,plast) == 0); +} + + +/* is the UDP checksum valid? */ +Bool +udp_cksum_valid( + struct ip *pip, + struct udphdr *pudp, + void *plast) +{ + if (ntohs(pudp->uh_sum) == 0) { + /* checksum not used */ + return(1); /* valid */ + } + + return(udp_cksum(pip,pudp,plast) == 0); +} + +/* Did we miss any segment during packet capture? */ +static Bool +MissingData(tcp_pair *ptp) +{ + tcb *pab = &ptp->a2b; + tcb *pba = &ptp->b2a; + + u_llong stream_length_pab=0, stream_length_pba=0; + u_long pab_last, pba_last; + + /* If packets were truncated (due to shorter snaplen) we miss data */ + if ( (pab->trunc_bytes > 0) || (pba->trunc_bytes > 0) ) + return TRUE; + + /* Also, if we missed whole segments (pcap dozing off) we miss data. + * The following code yanked off from output.c handles seq-space + * wrap around - Mani + * + * Compare to theoretical length of the stream (not just what + * we saw) using the SYN and FIN + * Seq. Space wrap around calculations: + * Calculate stream length using last_seq_num seen, first_seq_num + * seen and wrap_count. + * first_seq_num = syn + * If reset_set, last_seq_num = latest_seq + * else last_seq_num = fin + */ + + pab_last = (pab->reset_count>0)?pab->latest_seq:pab->fin; + pba_last = (pba->reset_count>0)?pba->latest_seq:pba->fin; + + /* calculating stream length for direction pab */ + if ((pab->syn_count > 0) && (pab->fin_count > 0)) { + if (pab->seq_wrap_count > 0) { + if (pab_last > pab->syn) { + stream_length_pab = pab_last + (MAX_32 * pab->seq_wrap_count) - pab->syn - 1; + } + else { + stream_length_pab = pab_last + (MAX_32 * (pab->seq_wrap_count+1)) - pab->syn - 1; + } + } + else { + if (pab_last > pab->syn) { + stream_length_pab = pab_last - pab->syn - 1; + } + else { + stream_length_pab = MAX_32 + pab_last - pab->syn - 1; + } + } + } + + /* calculating stream length for direction pba */ + if ((pba->syn_count > 0) && (pba->fin_count > 0)) { + if (pba->seq_wrap_count > 0) { + if (pba_last > pba->syn) { + stream_length_pba = pba_last + (MAX_32 * pba->seq_wrap_count) - pba->syn - 1; + } + else { + stream_length_pba = pba_last + (MAX_32 * (pba->seq_wrap_count+1)) - pba->syn - 1; + } + } + else { + if (pba_last > pba->syn) { + stream_length_pba = pba_last - pba->syn - 1; + } + else { + stream_length_pba = MAX_32 + pba_last - pba->syn - 1; + } + } + } + + /* Alright, now that we have the stream length in either direction, + * if the stream length is not equal to the total unique bytes we + * seen, we must have missed whole segments + */ + if ( (stream_length_pab != pab->unique_bytes) || + (stream_length_pba != pba->unique_bytes) ) + return TRUE; + + return FALSE; +} diff --git a/udp.c b/udp.c new file mode 100644 index 0000000..0e9ee27 --- /dev/null +++ b/udp.c @@ -0,0 +1,439 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED copyright[] = + "@(#)Copyright (c) 2004 -- Ohio University.\n"; +static char const GCC_UNUSED rcsid[] = + "@(#)$Header: /usr/local/cvs/tcptrace/udp.c,v 5.9 2003/11/19 14:38:06 sdo Exp $"; + +#include "gcache.h" + +/* locally global variables */ +static int packet_count = 0; +static int search_count = 0; +static Bool *ignore_pairs = NULL;/* which ones will we ignore */ +static Bool more_conns_ignored = FALSE; + + + +/* provided globals */ +int num_udp_pairs = -1; /* how many pairs we've allocated */ +udp_pair **utp = NULL; /* array of pointers to allocated pairs */ +int max_udp_pairs = 64; /* initial value, automatically increases */ +u_long udp_trace_count = 0; + + +/* local routine definitions */ +static udp_pair *NewUTP(struct ip *, struct udphdr *); +static udp_pair *FindUTP(struct ip *, struct udphdr *, int *); +static void MoreUdpPairs(int num_needed); + + + + +static udp_pair * +NewUTP( + struct ip *pip, + struct udphdr *pudp) +{ + udp_pair *pup; + + if (0) { + printf("trace.c:NewUTP() calling MakeUdpPair()\n"); + } + pup = MakeUdpPair(); + ++num_udp_pairs; + /* make a new one, if possible */ + if ((num_udp_pairs+1) >= max_udp_pairs) { + MoreUdpPairs(num_udp_pairs+1); + } + + /* create a new UDP pair record and remember where you put it */ + utp[num_udp_pairs] = pup; + pup->ignore_pair=ignore_pairs[num_udp_pairs]; + + + /* grab the address from this packet */ + CopyAddr(&pup->addr_pair, + pip, ntohs(pudp->uh_sport), ntohs(pudp->uh_dport)); + + /* data structure setup */ + pup->a2b.pup = pup; + pup->b2a.pup = pup; + pup->a2b.ptwin = &pup->b2a; + pup->b2a.ptwin = &pup->a2b; + + /* fill in connection name fields */ + pup->a2b.host_letter = strdup(NextHostLetter()); + pup->b2a.host_letter = strdup(NextHostLetter()); + pup->a_hostname = strdup(HostName(pup->addr_pair.a_address)); + pup->a_portname = strdup(ServiceName(pup->addr_pair.a_port)); + pup->a_endpoint = + strdup(EndpointName(pup->addr_pair.a_address, + pup->addr_pair.a_port)); + pup->b_hostname = strdup(HostName(pup->addr_pair.b_address)); + pup->b_portname = strdup(ServiceName(pup->addr_pair.b_port)); + pup->b_endpoint = + strdup(EndpointName(pup->addr_pair.b_address, + pup->addr_pair.b_port)); + + pup->filename = cur_filename; + + return(pup); +} + + + +/* connection records are stored in a hash table. Buckets are linked */ +/* lists sorted by most recent access. */ +#define HASH_TABLE_SIZE 1021 /* oughta be prime */ +static udp_pair * +FindUTP( + struct ip *pip, + struct udphdr *pudp, + int *pdir) +{ + static udp_pair *pup_hashtable[HASH_TABLE_SIZE] = {NULL}; + udp_pair **ppup_head = NULL; + udp_pair *pup; + udp_pair *pup_last; + udp_pair tp_in; + int dir; + hash hval; + + /* grab the address from this packet */ + CopyAddr(&tp_in.addr_pair, pip, + ntohs(pudp->uh_sport), ntohs(pudp->uh_dport)); + + /* grab the hash value (already computed by CopyAddr) */ + hval = tp_in.addr_pair.hash % HASH_TABLE_SIZE; + + + pup_last = NULL; + ppup_head = &pup_hashtable[hval]; + for (pup = *ppup_head; pup; pup=pup->next) { + ++search_count; + if (SameConn(&tp_in.addr_pair,&pup->addr_pair,&dir)) { + /* move to head of access list (unless already there) */ + if (pup != *ppup_head) { + pup_last->next = pup->next; /* unlink */ + pup->next = *ppup_head; /* move to head */ + *ppup_head = pup; + } + *pdir = dir; + return(pup); + } + pup_last = pup; + } + + /* Didn't find it, make a new one, if possible */ + pup = NewUTP(pip,pudp); + + /* put at the head of the access list */ + if (pup) { + pup->next = *ppup_head; + *ppup_head = pup; + } + + *pdir = A2B; + return(pup); +} + +void IgnoreUDPConn( + int ix) +{ + if (debug) + fprintf(stderr,"ignoring conn %d\n", ix); + + --ix; + + MoreUdpPairs(ix); + + more_conns_ignored=FALSE; + ignore_pairs[ix]=TRUE; +} + +void +OnlyUDPConn( + int ix_only) +{ + int ix; + static Bool cleared = FALSE; + + if (debug) fprintf(stderr,"only printing conn %d\n", ix_only); + + --ix_only; + + MoreUdpPairs(ix_only); + + if (!cleared) { + for (ix = 0; ix < max_udp_pairs; ++ix) { + ignore_pairs[ix] = TRUE; + } + cleared = TRUE; + } + + more_conns_ignored = TRUE; + ignore_pairs[ix_only] = FALSE; +} + + +udp_pair * +udpdotrace( + struct ip *pip, + struct udphdr *pudp, + void *plast) +{ + udp_pair *pup_save; + ucb *thisdir; + ucb *otherdir; + udp_pair tp_in; + int dir; + u_short uh_sport; /* source port */ + u_short uh_dport; /* destination port */ + u_short uh_ulen; /* data length */ + + /* make sure we have enough of the packet */ + if ((char *)pudp + sizeof(struct udphdr)-1 > (char *)plast) { + if (warn_printtrunc) + fprintf(stderr, + "UDP packet %lu truncated too short to trace, ignored\n", + pnum); + ++ctrunc; + return(NULL); + } + + + /* convert interesting fields to local byte order */ + uh_sport = ntohs(pudp->uh_sport); + uh_dport = ntohs(pudp->uh_dport); + uh_ulen = ntohs(pudp->uh_ulen); + + /* make sure this is one of the connections we want */ + pup_save = FindUTP(pip,pudp,&dir); + + ++packet_count; + + if (pup_save == NULL) { + return(NULL); + } + + ++udp_trace_count; + + /* do time stats */ + if (ZERO_TIME(&pup_save->first_time)) { + pup_save->first_time = current_time; + } + pup_save->last_time = current_time; + + // Lets not waste any more CPU cycles if we are ignoring this connection. + if (pup_save->ignore_pair) + return (pup_save); + + /* save to a file if requested */ + if (output_filename) { + PcapSavePacket(output_filename,pip,plast); + } + + /* now, print it if requested */ + if (printem && !printallofem) { + printf("Packet %lu\n", pnum); + printpacket(0, /* original length not available */ + (char *)plast - (char *)pip + 1, + NULL,0, /* physical stuff not known here */ + pip,plast,NULL); + } + + /* grab the address from this packet */ + CopyAddr(&tp_in.addr_pair, pip, + uh_sport, uh_dport); + + /* figure out which direction this packet is going */ + if (dir == A2B) { + thisdir = &pup_save->a2b; + otherdir = &pup_save->b2a; + } else { + thisdir = &pup_save->b2a; + otherdir = &pup_save->a2b; + } + + + /* do data stats */ + thisdir->packets += 1; + thisdir->data_bytes += uh_ulen; + + + /* total packets stats */ + ++pup_save->packets; + + return(pup_save); +} + + + +void +udptrace_done(void) +{ + udp_pair *pup; + int ix; + double etime; + + if(do_udp) { // Just a quick sanity check to make sure if we need to do + // anything at all.. + if(!run_continuously) { + if (!printsuppress) { + if (udp_trace_count == 0) { + fprintf(stdout,"no traced UDP packets\n"); + return; + } else { + if ((tcp_trace_count > 0) && (!printbrief)) + printf("\n============================================================\n"); + fprintf(stdout,"UDP connection info:\n"); + } + } + + if (!printbrief) + fprintf(stdout,"%d UDP %s traced:\n", + num_udp_pairs + 1, + num_udp_pairs==0?"connection":"connections"); + } + + /* elapsed time */ + etime = elapsed(first_packet,last_packet); + + if (ctrunc > 0) { + fprintf(stdout, + "*** %lu packets were too short to process at some point\n", + ctrunc); + if (!warn_printtrunc) + fprintf(stdout,"\t(use -w option to show details)\n"); + } + if (debug>1) + fprintf(stdout,"average search length: %d\n", + search_count / packet_count); + + /* print each connection */ + if(!run_continuously) { + if (!printsuppress) { + for (ix = 0; ix <= num_udp_pairs; ++ix) { + pup = utp[ix]; + if (!pup->ignore_pair) { + if (printbrief) { + fprintf(stdout,"%3d: ", ix+1); + UDPPrintBrief(pup); + } else { + if (ix > 0) + fprintf(stdout, + "================================\n"); + fprintf(stdout,"UDP connection %d:\n", ix+1); + UDPPrintTrace(pup); + } + } + } + } + } + } +} +static void +MoreUdpPairs( + int num_needed) +{ + int new_max_udp_pairs; + int i; + + if (num_needed < max_udp_pairs) + return; + + new_max_udp_pairs = max_udp_pairs * 4; + while (new_max_udp_pairs < num_needed) + new_max_udp_pairs *= 4; + + if (debug) + printf("trace: making more space for %d total UDP pairs\n", + new_max_udp_pairs); + + /* enlarge array to hold any pairs that we might create */ + utp = ReallocZ(utp, + max_udp_pairs * sizeof(udp_pair *), + new_max_udp_pairs * sizeof(udp_pair *)); + + /* enlarge array to keep track of which ones to ignore */ + ignore_pairs = ReallocZ(ignore_pairs, + max_udp_pairs * sizeof(Bool), + new_max_udp_pairs * sizeof(Bool)); + if (more_conns_ignored) + for (i=max_udp_pairs; i < new_max_udp_pairs;++i) + ignore_pairs[i] = TRUE; + + max_udp_pairs = new_max_udp_pairs; +} + + +void +udptrace_init(void) +{ + static Bool initted = FALSE; + + if (initted) + return; + + initted = TRUE; + + /* create an array to hold any pairs that we might create */ + utp = (udp_pair **) MallocZ(max_udp_pairs * sizeof(udp_pair *)); + + /* create an array to keep track of which ones to ignore */ + ignore_pairs = (Bool *) MallocZ(max_udp_pairs * sizeof(Bool)); +} diff --git a/version.c b/version.c new file mode 100644 index 0000000..e8715fc --- /dev/null +++ b/version.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid_version[] = + "@(#)$Header: /usr/local/cvs/tcptrace/version.c,v 5.4 2003/11/19 14:38:06 sdo Exp $"; + + +/* build information */ +/* constants filled in when version.c is compiled */ +char *built_bywhom = BUILT_USER; +char *built_when = BUILT_DATE; +char *built_where = BUILT_HOST; + diff --git a/version.h b/version.h new file mode 100644 index 0000000..4f95979 --- /dev/null +++ b/version.h @@ -0,0 +1,75 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +static char const GCC_UNUSED rcsid_version[] = + "@(#)$Header: /usr/local/cvs/tcptrace/version.h,v 5.73 2004/11/04 21:45:05 sdo Exp $"; + + +/* source code version information */ +#define VERSION_MAJOR "6" +#define VERSION_MINOR "6" +#define VERSION_BUGFIX "7" +#define VERSION_DATE "Thu Nov 4, 2004" + +#define VERSION_NUM VERSION_MAJOR "." VERSION_MINOR "." VERSION_BUGFIX + +/* the string to print */ +#define VERSION "Ostermann's tcptrace -- version " VERSION_NUM " -- " VERSION_DATE + + +/* build information */ +/* constants filled in when version.c is compiled */ +extern char *built_bywhom; +extern char *built_when; +extern char *built_where; diff --git a/versnum.c b/versnum.c new file mode 100644 index 0000000..b195536 --- /dev/null +++ b/versnum.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004 + * Ohio University. + * + * --- + * + * Starting with the release of tcptrace version 6 in 2001, tcptrace + * is licensed under the GNU General Public License (GPL). We believe + * that, among the available licenses, the GPL will do the best job of + * allowing tcptrace to continue to be a valuable, freely-available + * and well-maintained tool for the networking community. + * + * Previous versions of tcptrace were released under a license that + * was much less restrictive with respect to how tcptrace could be + * used in commercial products. Because of this, I am willing to + * consider alternate license arrangements as allowed in Section 10 of + * the GNU GPL. Before I would consider licensing tcptrace under an + * alternate agreement with a particular individual or company, + * however, I would have to be convinced that such an alternative + * would be to the greater benefit of the networking community. + * + * --- + * + * This file is part of Tcptrace. + * + * Tcptrace was originally written and continues to be maintained by + * Shawn Ostermann with the help of a group of devoted students and + * users (see the file 'THANKS'). The work on tcptrace has been made + * possible over the years through the generous support of NASA GRC, + * the National Science Foundation, and Sun Microsystems. + * + * Tcptrace is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Tcptrace is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tcptrace (in the file 'COPYING'); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Author: Shawn Ostermann + * School of Electrical Engineering and Computer Science + * Ohio University + * Athens, OH + * ostermann@cs.ohiou.edu + * http://www.tcptrace.org/ + */ +#include "tcptrace.h" +static char const GCC_UNUSED rcsid_versnum[] = + "@(#)$Header: /usr/local/cvs/tcptrace/versnum.c,v 5.5 2003/11/19 14:38:06 sdo Exp $"; + +#include +#include +#include "version.h" + +int +main() +{ + printf("%s\n", VERSION_NUM); + exit(0); +} diff --git a/xpl2gpl b/xpl2gpl new file mode 100755 index 0000000..fee6960 --- /dev/null +++ b/xpl2gpl @@ -0,0 +1,1402 @@ +#!/bin/sh +# +# xpl2gpl is a utility that converters tcptrace-style xplot input to gnuplot input. +# +# Avinash Lakhiani , Ohio Universtiy. +# +# July 15, 2001 + +# Argument checking +if [ $# -eq 1 ] +then + +# Extracting file-basename from the xplot filename +BASENAME=`basename $1 .xpl` +rm -f ${BASENAME}.dataset.*.* ${BASENAME}.gpl ${BASENAME}.ps ${BASENAME}.files ${BASENAME}.datasets ${BASENAME}.labels + +# AWK starts here +gawk -v BASENAME=$BASENAME ' + +# This function returns the filename in which data is to be stored based on color +# and style. +# It also stores the syle of the plot in an array for classification when all +# datasets are merged at the end of the script. +function data_set_name(color, style) + { + entered = 1; + array_index = color "." style; + ++dataset_type[array_index]; + file_style[array_index] = style; + return(BASENAME ".dataset." color "." style); +} + +# This function returns the dataset filename. Used when the ".gpl" file is being +# created. +function file_name(dataset) +{ + return(BASENAME ".dataset." dataset); +} + +# This function sets the x & y -axis formats +function format_to(datatype) { + if (datatype == "unsigned") + return("%.0f"); + if (datatype == "signed") + return("%.0f"); + if (datatype == "double") + return("%.0f"); + if (datatype == "timeval") + return("%.0f"); + if (datatype == "dtime") + return("%.0f"); + printf("Unknown datatype: \"%s\"\n", datatype) > "/dev/tty"; + exit; +} + +# Initializations +BEGIN { + TITLE=FILENAME; + XLABEL="x"; + YLABEL="y"; + + # Indicates the current color and style for the plot + current_dataset_color = "null"; + current_dataset_style = "null"; + + # Stores previous state information + prev_dataset_color = "null"; + prev_dataset_style = "null"; + + # All files used during conversion + remove_files = BASENAME ".dataset.*.*"; # Stores the list of files to be deleted after conversion is complete + gpl_file = BASENAME ".gpl"; # The final generated gnuplot file + labels_file = BASENAME ".labels" # Stores all the labels in the plot + printf("") >> labels_file; + current_dataset_file = "/nofile"; # Stores the filename for the current dataset + dataset_final_file = BASENAME ".datasets"; # The final file containing all the data that is to be plotted + dataset_file = BASENAME ".files"; # Contains the list of dataset files that are to be concatenated to generated the final dataset file + printf("#!/bin/sh\ncat ") >> dataset_file; # These two lines create the script file for final concatenation + system("chmod u+x " dataset_file); + + # Inital Values + initial_x=-1.; + initial_y=-1.; + dataset_index=-1.; + entered = 0; + min_xpoint = 9999999999.0; + max_xpoint = 0.0; + min_ypoint = 9999999999.0; + max_ypoint = 0.0; + label_index = 0; + + #No. of sec. from Jan 01, 1970 to Jan 01, 2000 + secs_2000=946684800.0; + + # get the axis types + getline; + xaxis_type=$1; + yaxis_type=$2; + xaxis_format=format_to(xaxis_type); + yaxis_format=format_to(yaxis_type); + } + +# Parsing begins here +# Valid plotting styles in xplot:- +# title, xlabel, ylabel, COLOR(as below), ltext, dot, line , diamond, box, uarrow, +# darrow, larrow, rarrow, utick, dtick, ltick, rtick, vtick, htick, dline, atext, +# go. + +# What the action statements below do:- +# For all the patterns, the corresponding actions behave more or less the same. +# Depending on the current color and style, the function data_set_name returns the +# corresponding filename. The x & y co-ordinates are then written to this file. + +/^title$/ { getline; TITLE=$0; next; } +/^xlabel$/ { getline; XLABEL=$0; next; } +/^ylabel$/ { getline; YLABEL=$0; next; } + + +/^((white)|(green)|(red)|(blue)|(yellow)|(purple)|(orange)|(magenta)|(pink))$/ { + current_dataset_color = $1; + next; + } + + +/^dot .*$/ { + current_dataset_style = $1; + if(NF == 4) + current_dataset_color = $4; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + + +/^line .*$/ { + current_dataset_style = $1; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x1point=$4; + y1point=$5; + if(min_xpoint > x1point) + min_xpoint = x1point; + if(max_xpoint < x1point) + max_xpoint = x1point; + if(min_ypoint > y1point) + min_ypoint = y1point; + if(max_ypoint < y1point) + max_ypoint = y1point; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + printf("\n") >> current_dataset_file; + next; + } + + +/^diamond .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^box .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^((uarrow)|(darrow))/ { + if(NR == 4) + prev_dataset_color = $4; + else + prev_dataset_color = current_dataset_color; + + prev_dataset_style = $1; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + getline; + if(NR == 4) + current_dataset_color = $4; + + x1point=$2; + y1point=$3; + if(min_xpoint > x1point) + min_xpoint = x1point; + if(max_xpoint < x1point) + max_xpoint = x1point; + if(min_ypoint > y1point) + min_ypoint = y1point; + if(max_ypoint < y1point) + max_ypoint = y1point; + + if(NR == 5) + { + x2point=$4; + y2point=$5; + if(min_xpoint > x2point) + min_xpoint = x2point; + if(max_xpoint < x2point) + max_xpoint = x2point; + if(min_ypoint > y2point) + min_ypoint = y2point; + if(max_ypoint < y2point) + max_ypoint = y2point; + } + current_dataset_style = $1; + + if(((prev_dataset_style == "uarrow" && current_dataset_style == "darrow") || (prev_dataset_style == "darrow" && current_dataset_style == "uarrow")) && (xpoint == x1point && ypoint == y1point) && (current_dataset_color == prev_dataset_color)) + { + current_dataset_style = "cross"; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + + else + { + current_dataset_file = data_set_name(prev_dataset_color, prev_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + if(current_dataset_style == "line" || current_dataset_style == "dline") + { + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + printf("\n") >> current_dataset_file; + } + + next; + } + } + +/^dtick .*$/ { + current_dataset_style = $1; + if(NF == 4) + current_dataset_color = $4; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^utick .*$/ { + current_dataset_style = $1; + if(NF == 4) + current_dataset_color = $4; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^x .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^plus .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^(ltick)|(rtick)|(htick)|(vtick) .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + + +/^(larrow)|(rarrow) .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^dline .*$/ { + current_dataset_style = $1; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x1point=$4; + y1point=$5; + if(min_xpoint > x1point) + min_xpoint = x1point; + if(max_xpoint < x1point) + max_xpoint = x1point; + if(min_ypoint > y1point) + min_ypoint = y1point; + if(max_ypoint < y1point) + max_ypoint = y1point; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + printf("\n") >> current_dataset_file; + next; + } + + + +/^atext .*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x_pt[label_index] = xpoint; + y_pt[label_index] = ypoint; + label_dir[label_index] = +1; + getline; + label[label_index++] = $0; + next; + } + +/^btext .*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x_pt[label_index] = xpoint; + y_pt[label_index] = ypoint; + label_dir[label_index] = -1; + getline; + label[label_index++] = $0; + next; + } + + +/^ltext.*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + if(NR == 4) + current_dataset_color = $4; + getline; + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("set label \"%s\" at (%f-%f), %f right\n", $0, xpoint, secs_2000, ypoint) >> labels_file; + else printf("set label \"%s\" at %f, %f right\n", $0, xpoint, ypoint) >> labels_file; + next; + } + +/^rtext.*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + if(NR == 4) + current_dataset_color = $4; + getline; + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("set label \"%s\" at (%f-%f), %f left\n", $0, xpoint, secs_2000, ypoint) >> labels_file; + else printf("set label \"%s\" at %f, %f left\n", $0, xpoint, ypoint) >> labels_file; + next; + } + + +/^go$/ {next} + + + { printf("Bad line %d: \"%s\"\n", NR, $0); next; } + + +# Creating the gnuplot file and deleting all the dataset files after concatenating all contents into one file + +END { + + printf("set title \"%s\"\n", TITLE) >> gpl_file; + printf("set xlabel \"%s\"\n", XLABEL) >> gpl_file; + printf("set ylabel \"%s\"\n", YLABEL) >> gpl_file; + printf("set format x \"%s\"\n", xaxis_format) >> gpl_file; + printf("set format y \"%s\"\n", yaxis_format) >> gpl_file; + if(xaxis_type == "timeval" || xaxis_type == "dtime") { + printf("set xdata time\n") >> gpl_file; + } + printf("set nokey\n") >> gpl_file; + printf("load \"%s\";\n", labels_file) >> gpl_file; + + first = 1; + + if(entered) + { + for (dataset in dataset_type) + { + + FILE=file_name(dataset); + if (first) + printf("plot ") >> gpl_file; + else + printf(", ") >> gpl_file; + first = 0; + printf("\"%s\" ", dataset_final_file) >> gpl_file; + + if(file_style[dataset] == "dot") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with dots", ++dataset_index) >> gpl_file; + else printf("index %d with dots", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "line") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with lines", ++dataset_index) >> gpl_file; + else printf("index %d with lines", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "diamond") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 1", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 1", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "box") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 3", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 3", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "cross") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 4", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 4", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "uarrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 1", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 1", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "darrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 1", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 1", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "dtick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "utick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "x") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 4", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 4", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "plus") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "ltick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "rtick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "htick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "vtick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 2", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 2", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + + if(file_style[dataset] == "larrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 5", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 5", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "rarrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with points pt 5", ++dataset_index) >> gpl_file; + else printf("index %d with points pt 5", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + if(file_style[dataset] == "dline") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("index %d using ($1-946684800.0):2 with linespoints pt 4", ++dataset_index) >> gpl_file; + else printf("index %d with linespoints pt 4", ++dataset_index) >> gpl_file; + printf("\n\n") >> FILE; + close( FILE ); + printf("%s ", FILE) >> dataset_file; + } + } + for(l=0; l < label_index; l++) + { + xpoint = x_pt[l]; + ypoint = y_pt[l]; + if(max_ypoint > 0 && label_dir[l] == -1) ypoint = ypoint - (50000000 * ((max_ypoint - min_ypoint)/max_ypoint)); + if(max_ypoint > 0 && label_dir[l] == +1) ypoint = ypoint + (50000000 * ((max_ypoint - min_ypoint)/max_ypoint)); + curr_label = label[l]; + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("set label \"%s\" at (%f-%f), %f center\n", curr_label, xpoint, secs_2000, ypoint) >> labels_file; + else printf("set label \"%s\" at %f, %f center\n", $1, xpoint, ypoint) >> labels_file; + + } + } + printf(";\n") >> gpl_file; + printf("set term postscript\n") >> gpl_file; + printf("set output \"%s.ps\"\n", BASENAME) >> gpl_file; + printf("replot\n") >> gpl_file; + printf("pause -1;\n") >> gpl_file; + close( gpl_file ); + close( labels_file ); + printf("> %s", dataset_final_file) >> dataset_file; + close( dataset_file ); + +# Concatenting all the datasets and deleting the individual files + + if(entered) + system("./" dataset_file); + system("rm -f " remove_files); + system("rm -f " dataset_file); + } +' $1 # end of AWK + +elif [ "$1" = "-s" ] #'-s' option part +then + +# Extracting file-basename from the xplot filename +BASENAME=`basename $2 .xpl` +rm -f ${BASENAME}.dataset.*.* ${BASENAME}.gpl ${BASENAME}.ps ${BASENAME}.files ${BASENAME}.datasets ${BASENAME}.labels + +gawk -v BASENAME=$BASENAME ' + +# This function returns the filename in which data is to be stored based on color and style +# It also stores the syle of the plot in an array for classification when all datasets are merged at the end of the script + +function data_set_name(color, style) + { + entered = 1; + array_index = color "." style; + ++dataset_type[array_index]; + file_style[array_index] = style; + return(BASENAME ".dataset." color "." style); +} + +# This function returns the dataset filename +# Used when the ".gpl" file is being created + +function file_name(dataset) +{ + return(BASENAME ".dataset." dataset); +} + +# This function sets the x & y -axis formats + +function format_to(datatype) { + if (datatype == "unsigned") + return("%.0f"); + if (datatype == "signed") + return("%.0f"); + if (datatype == "double") + return("%.0f"); + if (datatype == "timeval") + return("%.0f"); + if (datatype == "dtime") + return("%.0f"); + printf("Unknown datatype: \"%s\"\n", datatype) > "/dev/tty"; + exit; +} +# This function sets the x & y -axis formats + + +BEGIN { + TITLE=FILENAME; + XLABEL="x"; + YLABEL="y"; + + # Indicates the current color and style for the plot + current_dataset_color = "null"; + current_dataset_style = "null"; + + # Stores previous state information + prev_dataset_color = "null"; + prev_dataset_style = "null"; + + + remove_files = BASENAME ".dataset.*.*"; # Stores the list of files to be deleted after conversion is complete + gpl_file = BASENAME ".gpl"; # The final generated gnuplot file + labels_file = BASENAME ".labels" # Stores all the labels in the plot + printf("") >> labels_file; + current_dataset_file = "/nofile"; # Stores the filename for the current dataset + + # Inital Values + labels_present = 0; + initial_x=-1.; + initial_y=-1.; + dataset_index=-1.; + entered = 0; + min_xpoint = 9999999999.0; + max_xpoint = 0.0; + min_ypoint = 9999999999.0; + max_ypoint = 0.0; + label_index = 0; + + #No. of sec. from Jan 01, 1970 to Jan 01, 2000 + secs_2000=946684800.0; + + # get the axis types + getline; + xaxis_type=$1; + yaxis_type=$2; + xaxis_format=format_to(xaxis_type); + yaxis_format=format_to(yaxis_type); + } + +# Parsing begins here +# Valid plotting styles in xplot:- +# title, xlabel, ylabel, COLOR(as below), ltext, dot, line , diamond, box, uarrow, +# darrow, larrow, rarrow, utick, dtick, ltick, rtick, vtick, htick, dline, atext, +# go. + +# What the action statements below do:- +# For all the patterns, the corresponding actions behave more or less the same. +# Depending on the current color and style, the function data_set_name returns the +# corresponding filename. The x & y co-ordinates are then written to this file. + + +/^title$/ { getline; TITLE=$0; next; } +/^xlabel$/ { getline; XLABEL=$0; next; } +/^ylabel$/ { getline; YLABEL=$0; next; } + + +/^((white)|(green)|(red)|(blue)|(yellow)|(purple)|(orange)|(magenta)|(pink))$/ { + current_dataset_color = $1; + next; + } + + + +/^dot .*$/ { + current_dataset_style = $1; + if(NF == 4) + current_dataset_color = $4; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + + +/^line .*$/ { + current_dataset_style = $1; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x1point=$4; + y1point=$5; + if(min_xpoint > x1point) + min_xpoint = x1point; + if(max_xpoint < x1point) + max_xpoint = x1point; + if(min_ypoint > y1point) + min_ypoint = y1point; + if(max_ypoint < y1point) + max_ypoint = y1point; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + printf("\n") >> current_dataset_file; + next; + } + + +/^diamond .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^box .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^((uarrow)|(darrow))/ { + if(NR == 4) + prev_dataset_color = $4; + else + prev_dataset_color = current_dataset_color; + + prev_dataset_style = $1; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + getline; + if(NR == 4) + current_dataset_color = $4; + + x1point=$2; + y1point=$3; + if(min_xpoint > x1point) + min_xpoint = x1point; + if(max_xpoint < x1point) + max_xpoint = x1point; + if(min_ypoint > y1point) + min_ypoint = y1point; + if(max_ypoint < y1point) + max_ypoint = y1point; + + if(NR == 5) + { + x2point=$4; + y2point=$5; + if(min_xpoint > x2point) + min_xpoint = x2point; + if(max_xpoint < x2point) + max_xpoint = x2point; + if(min_ypoint > y2point) + min_ypoint = y2point; + if(max_ypoint < y2point) + max_ypoint = y2point; + } + current_dataset_style = $1; + + if(((prev_dataset_style == "uarrow" && current_dataset_style == "darrow") || (prev_dataset_style == "darrow" && current_dataset_style == "uarrow")) && (xpoint == x1point && ypoint == y1point) && (current_dataset_color == prev_dataset_color)) + { + current_dataset_style = "cross"; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + + else + { + current_dataset_file = data_set_name(prev_dataset_color, prev_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + if(current_dataset_style == "line" || current_dataset_style == "dline") + { + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + printf("\n") >> current_dataset_file; + } + + next; + } + } + +/^dtick .*$/ { + current_dataset_style = $1; + if(NF == 4) + current_dataset_color = $4; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^utick .*$/ { + current_dataset_style = $1; + if(NF == 4) + current_dataset_color = $4; + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^x .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^plus .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^(ltick)|(rtick)|(htick)|(vtick) .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + + +/^(larrow)|(rarrow) .*$/ { + current_dataset_style = $1; + if(NR == 4) + current_dataset_color = $4; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + next; + } + +/^dline .*$/ { + current_dataset_style = $1; + current_dataset_file = data_set_name(current_dataset_color, current_dataset_style); + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x1point=$4; + y1point=$5; + if(min_xpoint > x1point) + min_xpoint = x1point; + if(max_xpoint < x1point) + max_xpoint = x1point; + if(min_ypoint > y1point) + min_ypoint = y1point; + if(max_ypoint < y1point) + max_ypoint = y1point; + printf("%f %f\n", xpoint, ypoint) >> current_dataset_file; + printf("%f %f\n", x1point, y1point) >> current_dataset_file; + printf("\n") >> current_dataset_file; + next; + } + +/^atext .*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x_pt[label_index] = xpoint; + y_pt[label_index] = ypoint; + label_dir[label_index] = +1; + getline; + label[label_index++] = $0; + next; + } + +/^btext .*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + x_pt[label_index] = xpoint; + y_pt[label_index] = ypoint; + label_dir[label_index] = -1; + getline; + label[label_index++] = $0; + next; + } + + +/^ltext.*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + if(NR == 4) + current_dataset_color = $4; + getline; + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("set label \"%s\" at (%f-%f), %f right\n", $0, xpoint, secs_2000, ypoint) >> labels_file; + else printf("set label \"%s\" at %f, %f right\n", $0, xpoint, ypoint) >> labels_file; + next; + } + +/^rtext.*$/ { + xpoint=$2; + ypoint=$3; + if(min_xpoint > xpoint) + min_xpoint = xpoint; + if(max_xpoint < xpoint) + max_xpoint = xpoint; + if(min_ypoint > ypoint) + min_ypoint = ypoint; + if(max_ypoint < ypoint) + max_ypoint = ypoint; + if(NR == 4) + current_dataset_color = $4; + getline; + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("set label \"%s\" at (%f-%f), %f left\n", $0, xpoint, secs_2000, ypoint) >> labels_file; + else printf("set label \"%s\" at %f, %f left\n", $0, xpoint, ypoint) >> labels_file; + next; + } + + +/^go$/ {next} + + {printf("Bad line %d: \"%s\"\n", NR, $0); next;} + +# Creating the gnuplot file and deleting all the dataset files after concatenating all contents into one file + +END { + printf("set title \"%s\"\n", TITLE) >> gpl_file; + printf("set xlabel \"%s\"\n", XLABEL) >> gpl_file; + printf("set ylabel \"%s\"\n", YLABEL) >> gpl_file; + printf("set format x \"%s\"\n", xaxis_format) >> gpl_file; + printf("set format y \"%s\"\n", yaxis_format) >> gpl_file; + if(xaxis_type == "timeval" || xaxis_type == "dtime") { + printf("set xdata time\n") >> gpl_file; + } + printf("set nokey\n") >> gpl_file; + printf("load \"%s\";\n", labels_file) >> gpl_file; + first = 1; + + if(entered) + { + for (dataset in dataset_type) + { + + FILE=file_name(dataset); + if (first) + printf("plot ") >> gpl_file; + else + printf(", ") >> gpl_file; + first = 0; + printf("\"%s\" ", FILE) >> gpl_file; + + if(file_style[dataset] == "dot") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with dots") >> gpl_file; + else printf("with dots") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "line") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with lines") >> gpl_file; + else printf("with lines") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "diamond") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 1") >> gpl_file; + else printf("with points pt 1") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "box") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 3") >> gpl_file; + else printf("with points pt 3") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "cross") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 4") >> gpl_file; + else printf("with points pt 4") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "uarrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 1") >> gpl_file; + else printf("with points pt 1") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "darrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 1") >> gpl_file; + else printf("with points pt 1") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "dtick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "utick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "x") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 4") >> gpl_file; + else printf("with points pt 4") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "plus") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "ltick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "rtick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "htick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "vtick") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 2") >> gpl_file; + else printf("with points pt 2") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "larrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 5") >> gpl_file; + else printf("with points pt 5") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "rarrow") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with points pt 5") >> gpl_file; + else printf("with points pt 5") >> gpl_file; + close( FILE ); + } + + if(file_style[dataset] == "dline") + { + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("using ($1-946684800.0):2 with linespoints pt 4") >> gpl_file; + else printf("with linespoints pt 4") >> gpl_file; + close( FILE ); + } + + } + for(l=0; l < label_index; l++) + { + xpoint = x_pt[l]; + ypoint = y_pt[l]; + if(max_ypoint > 0 && label_dir[l] == -1) ypoint = ypoint - (50000000 * ((max_ypoint - min_ypoint)/max_ypoint)); + if(max_ypoint > 0 && label_dir[l] == +1) ypoint = ypoint + (50000000 * ((max_ypoint - min_ypoint)/max_ypoint)); + curr_label = label[l]; + if(xaxis_type == "timeval" || xaxis_type == "dtime") printf("set label \"%s\" at (%f-%f), %f center\n", curr_label, xpoint, secs_2000, ypoint) >> labels_file; + else printf("set label \"%s\" at %f, %f center\n", $1, xpoint, ypoint) >> labels_file; + + } + } + printf(";\n") >> gpl_file; + printf("set term postscript\n") >> gpl_file; + printf("set output \"%s.ps\"\n", BASENAME) >> gpl_file; + printf("replot\n") >> gpl_file; + if(labels_present) printf("load \"%s\";\n", labels_file) >> gpl_file; + printf("pause -1;\n") >> gpl_file; + close( gpl_file ); + + } +' $2 # end of AWK + +else + echo "Usage: xpl2gpl [-s] " 1>&2; + exit 1; +fi