Hi Craig,

On Sat, 07 Sep 2002 10:07:51 -0500 "J. Craig Woods"
<[EMAIL PROTECTED]> wrote:

> > Complete ping response:
> 
> > PING 206.245.176.211 (206.245.176.211): 56 octets data
> > 64 octets from 206.245.176.211: icmp_seq=0 ttl=122 time=1099.4 ms
                                                            ^^^^^^^^^
This is the "clue"...  ping response arrives AFTER 1 second timer pops....

Here's part of my post back on Thu Mar 15 15:13:48 2001

BUG SUMMARY:
------------

Linux's "ping" waits (default= 1 sec) for a reply and proceeds to the next
ping
after INCREMENTING "data byte #0".  If a reply is seen before the timeout,
or
not at all, then ping does the right thing.

If a reply is delayed and the timer expires, ping increments "data byte
#0" for
the next packet to send.  Again, no problem here per se...  HOWEVER... 
ping
fails to take into account the possibility of delayed replies.  When such
a
reply finally shows up, ping compares "data byte #0" to the UPDATED value.
 No
need to maintain a list of sent counters; a simple algorithm works...  

Ping SHOULD compare "data byte #0" after first adjusting for the delay
this way:
- save starting"data byte #0"
- when reply arrives:
    if "data byte #0" == starting"data byte #0" + icmp_seq:
       OK                                       ^^^^^^^^^^
    else: error()

Any fix should also take into account "wrapping" of the random "data byte
#0"
counter.

Also, the output:
   wrong data byte #0 should be 0x3b but was 0x3737 da b0 3a 88 9e e 0
probably should be reformatted to read:
   wrong data byte #0 should be 0x3b but was 0x37  37 da b0 3a 88 9e e 0

Note that this false-problem output also confirms the bug:
  expecting: 0x3b
  got:  0x37
  proper check:  0x37 + ("time=4452.8 ms" * wait_timer)
              =  0x37 + (int(4.4528) * 1)  # seconds
              =  0x37 + (4 * 1)
              =  0x3b      # Gee....!

By fixing this bug, we'll be able to eliminate the "I'm getting this..."
and the
"you have a hardware problem" emails, and the resulting wasted time and $$
trying to fix hardware which is really OK...

> It appears, without the benefit of running a sniffer on your network,
> that some of your ICMP packets are getting munged while traversing the
> network. If this happens only occassionally, it might not be a big deal
> but if you see a lot of this, you might be looking at a bad TCP/IP stack
> implementation on your machine or some other machine/router between you
> and your ISP.
> 
> Try installing and using Ethereal for a better understanding of what is
> actually taking place on the network. It is a good sniffer, and comes in
> mandrake rpm binary or source.
> 
> drjung
> 

Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com

Reply via email to