4

What exactly is the difference between ICMP type 3 code 1 and code 7 messages? By reading their descriptions they seem to be used for the same purpose. I am trying to understand when a router will choose to send one or the other.

1 Answer 1

4

The differences are explained in RFC 1812 IPv4 Router Requirements, page 81:

1 = Host Unreachable - generated by a router if a forwarding path (route) to the destination host on a directly connected network is not available (does not respond to ARP);

7 = Destination Host Unknown - generated only when a router can determine (from link layer advice) that the destination host does not exist;

Later in the RFC, it requires routers not to send a "Network Unreachable" instead of Type 3 Codes 1 or 7 when other hosts on the subnet are reachable...

Routers MUST use Host Unreachable or Destination Host Unknown codes whenever other hosts on the same destination network might be reachable; otherwise, the source host may erroneously conclude that all hosts on the network are unreachable, and that may not be the case.

Speaking practically, I haven't seen a router implement Type 3 Code 7 (Destination Host Unknown), normally I see Type 3 Code 1 (Host Unreachable).

4
  • Agreed, I think I may have seen a Destination Host Unknown once. IIRC, the host in question was directly connected to a router Ethernet port and powered off at the time.
    – YLearn
    Jun 3, 2014 at 1:38
  • 1
    I would be quite interested in seeing the conditions which would trigger Tpe 3 Code 7; I spent about 30 minutes trying to kick my lab switches into sending one but never found a way to trigger it. Jun 3, 2014 at 1:41
  • I was thinking about doing this as well, but it has been many years since this happened and don't remember the hardware details. I suspect that sending Type 3 Code 1 in cases that are this similar is easier to program than adding code for Type 3 Code 7, so hardly anything will actually do so.
    – YLearn
    Jun 3, 2014 at 1:47
  • @Mike , I was also trying to generate a code 7 on my lab but was unable to actually get one. That was the trigger to post the question. As YLearn mentions, it might have something to do with the code. Thanks for the information!
    – user5469
    Jun 3, 2014 at 13:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.