Ethereal-dev: [Ethereal-dev] (Fwd) Re: Sniffer timestamps displayed incorrectly: Informatio
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Bill Meier" <wmeier@xxxxxxxxxxx>
Date: Thu, 03 Jul 2003 18:51:26 -0500
As I (and at least one other) have noted in previous postings to ethereal- users, distributed sniffer .cap files (sniffer v4.10 and greater ?) sometimes display dates/times incorrectly. Some debugging has indicated that the files which display incorrectly (at least the ones I have) display correctly if: 1. Ethereal uses a tick size of .8 usec (that is if the timehi/timelo values in the record headers are divided by 1250000 to get seconds. 2. Ethereal ignores the timehi/timelo values in the file header (i.e.: 0 used as value). I've determined the above by taking sniffer display of absolute and delta times from a capture and comparing them to the values stored in the capture file. Shown below are two examples with sniffer output and Ethereal debug dumps for the first one or two packets for: 1. a "2.002" capture in which the tick size is 1 usec ('timeunit' in file header is 0) 2. a "2.002" capture in which the tick size is .8 usec ('timeunit' in file header is 2) (Fow what it's worth: both of these capures are of 100 Mbits ordinary ethernet (POE?). I'm not actually familiar with the exact details of the sniffer hardware used to make the captures). Although I've kludged a version of netxray.c to be able to properly show the times for .cap files with a .8 usec tick size, I'm not altogether sure how to do a fix which will work for all different variations of sniffer capture files especially as the value Tps[2] in netxray.c already has a (different) 'ticks per second' value. So I'm submiiting this information in the hope someone with more knowledge in this area can make the actual fix. It would also appear that some work may be required in the code which writes netxray format files to allow for this new tick size. Bill Meier &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Example #1: .cap file header version = "2.002"; .cap file header timeunit = 0: [1 tick = 1 usec] Sniifer Version: Unknown; Ethereal 0.9.13 displays capture AOK ========================================================== Sniffer Output Extract (with certain details removed) ----------------------------------------------------- - - - - - - - - - - - - - - - - - - - - Frame 1 - - - - - - - - - - - - - - - - - - - - Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary 1 M ............ .............. 100 0:00:00.000 0.000.000 01/24/2003 09:20:20 AM TCP: ...... DLC: ----- DLC Header ----- DLC: DLC: Frame 1 arrived at 09:20:20.4631; frame size is 100 (0064 hex) bytes. File Header from Ethereal debug display --------------------------------------- - hdr {...} + version 0x0012ebe4 "002.002" start_time 1043418000 ;; --> date/time: Fri Jan 24 09:20:00 2003 EST nframes 10 xxx 1459 start_offset 128 end_offset 1459 - xxy 0x0012ec00 [0] 2275396 [1] 0 [2] 1459 network 0 - xxz 0x0012ec0e "" [0] 0 '' [1] 0 '' timeunit 0 '' ;; means 1 tick = 1 microsec - xxa 0x0012ec11 "" [0] 0 '' [1] 0 '' [2] 0 '' timelo 0 timehi 0 linespeed 100000000 - xxb 0x0012ec20 "" [0] 0 '' [1] 0 '' [2] 0 '' [3] 0 '' [4] 1 '' [5] 0 '' [6] 0 '' [7] 0 '' [8] 20 '' [9] 0 '' [10] 4 '' [11] 0 '' [12] 222 'Þ' [13] 52 '4' [14] 18 '' [15] 0 '' [16] 0 '' [17] 0 '' [18] 0 '' [19] 0 '' [20] 3 '' [21] 0 '' [22] 1 '' [23] 0 '' [24] 32 ' ' [25] 3 '' [26] 0 '' [27] 0 '' [28] 1 '' [29] 0 '' [30] 0 '' [31] 0 '' [32] 0 '' [33] 0 '' [34] 0 '' [35] 0 '' [36] 0 '' [37] 0 '' [38] 0 '' [39] 0 '' [40] 0 '' [41] 0 '' [42] 0 '' [43] 0 '' [44] 0 '' [45] 0 '' [46] 0 '' [47] 0 '' [48] 0 '' [49] 0 '' [50] 0 '' [51] 0 '' [52] 0 '' [53] 0 '' [54] 0 '' [55] 0 '' [56] 0 '' [57] 0 '' [58] 0 '' [59] 0 '' [60] 1 '' [61] 1 '' [62] 5 '' [63] 0 '' First Data Record Header from Ethereal Debug Display ---------------------------------------------------- - hdr_2_x {...} timelo 20463135 ;; 20.463135 secs after "start-time" timehi 0 orig_len 104 incl_len 104 - xxx 0x0012dfec "" [0] 0 '' [1] 0 '' [2] 255 'ÿ' [3] 255 'ÿ' [4] 0 '' [5] 0 '' [6] 0 '' [7] 0 '' [8] 0 '' [9] 0 '' [10] 0 '' [11] 0 '' [12] 0 '' [13] 0 '' [14] 0 '' [15] 0 '' [16] 0 '' [17] 0 '' [18] 0 '' [19] 0 '' [20] 0 '' [21] 0 '' [22] 0 '' [23] 0 '' [24] 0 '' [25] 0 '' [26] 0 '' [27] 0 '' =============== Example #2: .cap file header version = "2.002" .cap file header timeunit = 2 Sniifer Version: 4.10 ?; Ethereal 0.9.13 displays date/time NG Displays date/time correctly if: 1) timeunit = 1250000 2) timelo/timehi in file header ignored (i.e. 0 used) ============================================================== Sniffer Output Extract (with certain details removed) ---------------------------------------------------- - - - - - - - - - - - - - - - - - - - - Frame 1 - - - - - - - - - - - - - - - - - - - - Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary 1 M ............. ............ 66 0:00:00.000 0.000.000 06/06/2003 09:37:16 AM TCP: ........... DLC: ----- DLC Header ----- DLC: DLC: Frame 1 arrived at 09:37:16.0154; frame size is 66 (0042 hex) bytes. - - - - - - - - - - - - - - - - - - - - Frame 2 - - - - - - - - - - - - - - - - - - - - Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary 2 ............... ................ 316 0:00:00.000 0.000.329 06/06/2003 09:37:16 AM TCP: ............ DLC: ----- DLC Header ----- DLC: DLC: Frame 2 arrived at 09:37:16.0158; frame size is 316 (013C hex) bytes. File Header from Ethereal debug display --------------------------------------- - hdr {...} + version 0x0012ebe4 "002.002" start_time 1054906636 ;; --> date/time: Fri Jun 06 09:37:16 2003 EDT nframes 20701 xxx 8388608 start_offset 128 end_offset 7003354 - xxy 0x0012ec00 [0] 6966049 [1] 0 [2] 7003354 network 0 - xxz 0x0012ec0e "" [0] 0 '' [1] 0 '' timeunit 2 '' ;; seems to mean tick = .8 usecs - xxa 0x0012ec11 "" [0] 0 '' [1] 0 '' [2] 0 '' timelo 4095060683 ;; ?? Note that timelo, timehi in data hdrs timehi 5400 ;; ?? is *not* "based" upon this number linespeed 100000000 - xxb 0x0012ec20 "" [0] 0 '' [1] 0 '' [2] 0 '' [3] 0 '' [4] 1 '' [5] 0 '' [6] 0 '' [7] 0 '' [8] 20 '' [9] 0 '' [10] 4 '' [11] 0 '' [12] 222 'Þ' [13] 52 '4' [14] 18 '' [15] 0 '' [16] 0 '' [17] 0 '' [18] 0 '' [19] 0 '' [20] 3 '' [21] 0 '' [22] 1 '' [23] 0 '' [24] 32 ' ' [25] 3 '' [26] 0 '' [27] 0 '' [28] 0 '' [29] 0 '' [30] 0 '' [31] 0 '' [32] 0 '' [33] 0 '' [34] 0 '' [35] 0 '' [36] 0 '' [37] 0 '' [38] 0 '' [39] 0 '' [40] 0 '' [41] 0 '' [42] 0 '' [43] 0 '' [44] 0 '' [45] 0 '' [46] 0 '' [47] 0 '' [48] 0 '' [49] 0 '' [50] 0 '' [51] 0 '' [52] 0 '' [53] 0 '' [54] 0 '' [55] 0 '' [56] 0 '' [57] 0 '' [58] 0 '' [59] 0 '' [60] 1 '' [61] 1 '' [62] 5 '' [63] 0 '' First Data Record Header from Ethereal Debug Display ---------------------------------------------------- - hdr_2_x {...} timelo 19289 ;; = .015431 usecs using timeunit=1250000 timehi 0 orig_len 70 incl_len 70 - xxx 0x0012dfec "" [0] 0 '' [1] 0 '' [2] 255 'ÿ' [3] 255 'ÿ' [4] 0 '' [5] 0 '' [6] 0 '' [7] 0 '' [8] 0 '' [9] 0 '' [10] 0 '' [11] 0 '' [12] 0 '' [13] 0 '' [14] 0 '' [15] 0 '' [16] 0 '' [17] 0 '' [18] 0 '' [19] 0 '' [20] 0 '' [21] 0 '' [22] 0 '' [23] 0 '' [24] 0 '' [25] 0 '' [26] 0 '' [27] 0 '' Second Data Record Header from Ethereal Debug Display ---------------------------------------------------- - hdr_2_x {...} timelo 19700 ;; = .015760 usecs [Note delta = .000329 from last rec matches sniffer display] timehi 0 orig_len 320 incl_len 320 + xxx 0x0012dfec "" ------------------------------------------------------------------------- .cap file Hex Dump for Example #2: file header + 2 data record headers (matches above debug dump) File Hdr 0000 ¦ 58 43 50 00 30 30 32 2E 30 30 32 00 0C 99 E0 3E ¦ XCP.002.002..Öa> 0010 ¦ DD 50 00 00 00 00 80 00 80 00 00 00 DA DC 6A 00 ¦ ¦P....Ç.Ç...+_j. 0020 ¦ 21 4B 6A 00 00 00 00 00 DA DC 6A 00 00 00 00 00 ¦ !Kj.....+_j..... 0030 ¦ 02 00 00 00 CB AA 15 F4 18 15 00 00 00 E1 F5 05 ¦ ....-¬.(.....ß). 0040 ¦ 00 00 00 00 01 00 00 00 14 00 04 00 DE 34 12 00 ¦ ............¦4.. 0050 ¦ 00 00 00 00 03 00 01 00 20 03 00 00 00 00 00 00 ¦ ........ ....... 0060 ¦ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ¦ ................ 0070 ¦ 00 00 00 00 00 00 00 00 00 00 00 00 01 01 05 00 ¦ ................ Data Rec #1 Hdr 0080 ¦ 59 4B 00 00 00 00 00 00 46 00 46 00 00 00 FF FF ¦ YK......F.F... 0090 ¦ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ¦ ................ 00A0 ¦ 00 00 00 00 00 00 00 00 Data Rec #1 Captured Packet <snip> Data Rec #2 Hdr F4 4C ¦ .......!+.,à+h(L 00F0 ¦ 00 00 00 00 00 00 40 01 40 01 00 00 FF FF 00 00 ¦ ......@.@... .. 0100 ¦ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ¦ ................ 0110 ¦ 00 00 00 00 00 00 <snip>
- Prev by Date: Re: [Ethereal-dev] Bug report on ethereal 0.9.13a WIN2K platform
- Next by Date: Re: [Ethereal-dev] H.245 requesting help
- Previous by thread: Re: [Ethereal-dev] Bug report on ethereal 0.9.13a WIN2Kplatform
- Next by thread: [Ethereal-dev] h245 checked in to CVS but not enabled/cvompiled by default
- Index(es):