THIS IS A TEST INSTANCE. Feel free to ask and answer questions, but take care to avoid triggering too many notifications.
0

No Response found on ICMP Request

  • retag add tags

Hello everytime I type the Command in the CMD-prompt ping 8.8.8.8 -l "X"

X= Above 68

I Receive a "No Response found" message from Wireshark.

When the Datalength is 68 or under 68 I dont get these messages.

Could you tell me why this happen ?

rokit's avatar
1
rokit
asked 2020-02-09 13:12:57 +0000
edit flag offensive 0 remove flag close merge delete

Comments

Can you paste the output of Help->About Wireshark here.

Chuckc's avatar Chuckc (2020-02-09 14:56:26 +0000) edit

I cant Upload Data because I dont have enough Points.

rokit's avatar rokit (2020-02-09 15:38:47 +0000) edit
add a comment see more comments

3 Answers

2

Hmm, RFC 792 says on page 15: "The data received in the echo message must be returned in the echo reply message". If not, the checksum will be different, which is part of the key to match the ICMP echo requests and responses.

If there's a valid reason to limit the payload size (e.g. anti DDOS), it may be needed to tweak the PDU matching code.

Jaap's avatar
13.7k
Jaap
answered 2020-02-09 15:17:43 +0000, updated 2020-02-09 15:23:14 +0000
edit flag offensive 0 remove flag delete link

Comments

It looks as though the key for matching transactions (beyond the basic conversation) consists of: (1) the IP checksum (2) ID & sequence number (i.e. next 2 16-bit fields) (3) possible VLAN Id

But this part of packet-icmp.c could be a lot clearer.

martinMath's avatar martinMath (2020-02-09 17:34:55 +0000) edit

I'm also not sure about the dissector displaying both big-endian and little -endian values for ID and sequence number. Is there an actual need to display both? I can't see anything in the RFC or subsequent updates that shows the byte order for these fields.

grahamb's avatar grahamb (2020-02-09 17:43:56 +0000) edit

This question discusses the reason for both BE and LE representations.

grahamb's avatar grahamb (2020-02-09 17:45:59 +0000) edit

https://bugs.wireshark.org/bugzilla/s...
There has been some recent work on the checksum check.
Perhaps add a preference to ignore checksum then match on basic IP info, ICMP ID and ICMP Seq.

Chuckc's avatar Chuckc (2020-02-09 20:15:53 +0000) edit
add a comment see more comments
0

Testing locally with a dev build of Wireshark I see the same. The target only returns 68 bytes of data and I think the ICMP dissector is not matching up the responses with the request due to the size difference.

I can't see anything about this in bugzilla, please raise an issue there and attach a capture showing the problem.

grahamb's avatar
23.8k
grahamb
answered 2020-02-09 14:12:54 +0000
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments
0

Google's DNS server's truncate a ping reply to a maximum payload of 68 bytes regardless of the size of the request.

On a windows system if you initiate a ping to 8.8.8.8 with a length value greater than 68 (e.g. 69), Microsoft's ping will indicate that the ping is successful, but Wireshark's analysis reports "no response found!".

C:\>ping -l 69 8.8.8.8

Pinging 8.8.8.8 with 69 bytes of data:
Reply from 8.8.8.8: bytes=68 (sent 69) time=26ms TTL=54
Reply from 8.8.8.8: bytes=68 (sent 69) time=13ms TTL=54
Reply from 8.8.8.8: bytes=68 (sent 69) time=12ms TTL=54
Reply from 8.8.8.8: bytes=68 (sent 69) time=23ms TTL=54

Ping statistics for 8.8.8.8:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 12ms, Maximum = 26ms, Average = 18ms

C:\>

But there's a subtle addition to the Microsoft's ping Reply report. Note that it indicates "bytes=68 (sent 69)".

On a macOS system a ping to 8.8.8.8 with a length of 69 also indicates a reply was received but in this case an second line follows each reply message reporting "wrong total length 96 instead of 97".

$ ping -c 4 -s 69 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 69 data bytes
76 bytes from 8.8.8.8: icmp_seq=0 ttl=54 time=18.353 ms
wrong total length 96 instead of 97
76 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=18.038 ms
wrong total length 96 instead of 97
76 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=15.280 ms
wrong total length 96 instead of 97
76 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=22.787 ms
wrong total length 96 instead of 97

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 15.280/18.614/22.787/2.689 ms
$

Pinging other commonly accessible sites, for example two open DNS server addresses of 1.1.1.1 and 9.9.9.9, does not appear to have this reply size downgrade behavior.

There's a few things to consider here:

The 8.8.8.8 servers only reply with the first 68 octets of the ping request's payload for lengths greater than 68, is this in fact a successful ping? Perhaps.

Could Wireshark's ping analysis be enhanced to report on the reply as successful but we have a length discrepancy? Perhaps.

Jim Young's avatar
196
Jim Young
answered 2020-02-10 01:37:46 +0000
edit flag offensive 0 remove flag delete link

Comments

No. It works just as @Jaap stated. The checksums are expected to match, but they don't. When matching requests to replies, I took the approach of trying to make the heuristics as strong as possible to avoid accidentally matching replies to the wrong request, but of course when the RFC's aren't followed, things like this are the result.

Some possible solutions:

  • Don't change anything since the response payload doesn't match the request payload, a violation of the RFC.
  • Ignore the checksum in the request/response matching.
  • Ignore the checksum in the request/response matching, but only for packets of a particular size (such as 68 bytes). I suppose that value could even be made configurable as an ICMP option, if needed or desired for more flexibility.
  • Compromise and add an ICMP option to relax the checksum match requirement, but I'd recommend adding an expert ...
(more)
cmaynard's avatar cmaynard (2020-02-10 02:20:00 +0000) edit

You are correct Chris, Wireshark does indeed work as Jaap stated.

Would a Wireshark user be better served with enhanced ICMP reply matching code here? I'm not really convinced anything needs to change. But more than once I have had to personally explain that Wireshark was not technically wrong in this exact case.

If a change is made to match truncated ICMP echo replies to their full size requests, then the Info column should be augmented and/or an expert info generated to indicate that less bytes than the requested number of bytes was received to make it obvious that this reply is not technically correct in the sense of RFC 792.

Jim Young's avatar Jim Young (2020-02-10 03:54:56 +0000) edit

Would a Wireshark user be better served with enhanced ICMP reply matching code here?

Yes, probably so. While technically not the expected response, the user is probably just mainly concerned about connectivity. Can I reach a host and can the host reach me? And what is the round-trip delay in reaching that host? So to be more flexible, one of bullets 2, 3 or 4 I mentioned above should probably be considered.

cmaynard's avatar cmaynard (2020-02-10 15:16:48 +0000) edit
add a comment see more comments

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss.

Add Answer