? how cisco router handle the out-of-order ICMP echo-reply packets

Hi,

Does someone happen to know how the Cisco IOS handle the out-of-order ICMP echo-reply packets? print it as success or lose?

Thanks,

Zhao Ping

Considering that Ciscos wait for a response before sending the next echo-request, you should never end up in a situation where replys are received out of order.

That is going by my knowledge of traditional IOS. Ive not yet had any experience with IOS XE or XR to be able to quote any other experience.

Tom

There aren't sequence numbers with ICMP. And the timeout value is
watched/triggered before the next ICMP is sent, so there shouldn't really be
any ordering problem/interpretation anyway.

HTH,

Scott

Linux ping command does sequencing (so that part of your statement isn't accurate), and you can get out of order packets. It'll say a sequence number and ping time, and there really isn't any "timeout", an ICMP packet can come back 60 seconds later and it'll be counted, even though there were 59 other packets send and returned in the meantime.

$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.020 ms

In IOS, my interpretation anyway, is that the timeout value (2 seconds) mean that it really considers this packet as dropped, so no, in IOS you cannot get out of order packets, at least not that the CLI will show. If the ICMP response packet comes back after timeout value has triggered, it's considered lost.

Scott Morris wrote:

There aren't sequence numbers with ICMP. And the timeout value is
watched/triggered before the next ICMP is sent, so there shouldn't really be
any ordering problem/interpretation anyway.

FYI, from RFC 792:

  Sequence Number

   Description

      The data received in the echo message must be returned in the echo
      reply message.

      The identifier and sequence number may be used by the echo sender
      to aid in matching the replies with the echo requests. For
      example, the identifier might be used like a port in TCP or UDP to
      identify a session, and the sequence number might be incremented
      on each echo request sent. The echoer returns these same values
      in the echo reply.

Steve

Steve Bertrand wrote:

Scott Morris wrote:

There aren't sequence numbers with ICMP. And the timeout value is
watched/triggered before the next ICMP is sent, so there shouldn't really be
any ordering problem/interpretation anyway.

FYI, from RFC 792:

My apologies. I should have actually used the subject to scope what you
were saying.

Steve

Guess I'll have to go back and look at wireshark output again... I didn't
recall seeing sequence number used in pings between Cisco devices, although
that may just be the implementation ('may be used') part.

I'll stand corrected. :wink:

Scott