2025-08-30
7 min read

Ping Response: Request Timed Out vs Destination Host Unreachable

Ping Response: Request Timed Out vs Destination Host Unreachable

TLDR: "Request timed out" means your ping packet was sent but no response came back - the host might be down, blocking ICMP, or unreachable beyond your network. "Destination host unreachable" means a router along the path actively told you it cannot reach the destination - this is usually a routing problem or the destination network doesn't exist. Timeout is silence; unreachable is an explicit error message.

When you ping a host and it fails, the error message tells you a lot about where the problem is. The two most common responses - timeout and unreachable - indicate very different issues.

Request Timed Out

When you see "Request timed out," your computer sent the ICMP echo request but never received a reply:

$ ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3

Here's what's happening:

Your Computer          Network          Target Host
      |                                      |
      |----ICMP Echo Request--------------->|
      |                                      |
      |                  ... silence ...     |
      |                                      |
      |<------ (no response) ---------------|
      |                                      |
   [timeout]

Your packet was sent, but nothing came back. This happens when:

The Host Is Down

The target machine is powered off or unreachable. Your packet arrives at the network segment but there's no host to respond:

# Pinging a host that's turned off
ping 192.168.1.50
# Request timeout - host exists on the network but is powered down

Firewall Blocking ICMP

The host is up but configured to drop ICMP echo requests. Many servers disable ping for security:

# On the target server (Linux)
# Block all ICMP echo requests
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

# Now pings to this server time out
# The server receives packets but silently drops them

Windows firewall does this too:

# Windows - disable ICMP echo requests
New-NetFirewallRule -DisplayName "Block Ping" `
    -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Block

Network Congestion or Packet Loss

If the network is overloaded, packets might get dropped without any error message:

# High packet loss
ping google.com
PING google.com (142.250.80.46): 56 data bytes
64 bytes from 142.250.80.46: icmp_seq=0 ttl=116 time=15.2 ms
Request timeout for icmp_seq 1
64 bytes from 142.250.80.46: icmp_seq=2 ttl=116 time=14.8 ms
Request timeout for icmp_seq 3

Some packets get through, others don't - indicates congestion or wireless interference.

Routing Black Hole

Your packet reaches a router that forwards it, but somewhere downstream it gets lost with no error sent back:

Your PC -> Router 1 -> Router 2 -> Router 3 -> [black hole]
                                                No response,
                                                no error

Destination Host Unreachable

When you see "Destination host unreachable," a router is actively telling you it cannot deliver the packet:

$ ping 10.50.99.99
PING 10.50.99.99 (10.50.99.99): 56 data bytes
From 192.168.1.1 icmp_seq=0 Destination Host Unreachable
From 192.168.1.1 icmp_seq=1 Destination Host Unreachable
From 192.168.1.1 icmp_seq=2 Destination Host Unreachable

Notice the "From 192.168.1.1" - this is your gateway router telling you it cannot reach the destination:

Your Computer          Gateway Router       Target Network
      |                      |                    |
      |--ICMP Echo-------->  |                    |
      |                      |                    |
      |                      X  Can't route       |
      |                      |  to 10.50.99.99    |
      |                      |                    |
      |<--ICMP Unreachable-- |                    |
      |  (from router)       |                    |

The router sends back an ICMP "Destination Unreachable" message. This is helpful - it tells you where the problem is.

No Route to Network

The destination network doesn't exist in the router's routing table:

# Pinging a nonexistent network
ping 172.99.99.99
# Destination Host Unreachable - no route to 172.99.0.0/16

Check routing tables to confirm:

# Linux/macOS - show routing table
route -n
# or
ip route show

# Windows
route print

If there's no route to the destination network, your router can't forward the packet.

Host Unreachable on Local Network

If you're pinging a host on your local subnet and get "unreachable," the host doesn't respond to ARP requests:

# Pinging a host on the same subnet (192.168.1.0/24)
ping 192.168.1.200
# Destination Host Unreachable

# Check ARP table
arp -a
# 192.168.1.200 is not in the ARP table - host isn't on the network

The computer tried to resolve the MAC address via ARP but got no response, so it knows the host isn't reachable.

Network Interface Down

If your own network interface is down or misconfigured:

# Interface is down
ping google.com
# connect: Network is unreachable

# Check interface status
ip link show

# Bring it up
sudo ip link set eth0 up

The error comes immediately because your own system knows it can't send packets.

Comparing the Two

Here's a decision tree for diagnosing:

Ping fails
    |
    |
    ├─> "Request timed out"
    |       |
    |       ├─> Check if host is powered on
    |       ├─> Check if firewall blocks ICMP
    |       ├─> Check for packet loss (wireless, congestion)
    |       └─> Verify host is reachable beyond your network
    |
    └─> "Destination host unreachable"
            |
            ├─> Check "From" IP address
            |       |
            |       ├─> Your gateway? Routing problem
            |       ├─> Your computer? Interface down
            |       └─> Intermediate router? Network path broken
            |
            ├─> Check routing table
            ├─> Check ARP table (for local subnet)
            └─> Verify network cable/WiFi connection

Detailed Troubleshooting Examples

Example 1: Request Timeout

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

Diagnosis steps:

# 1. Check if you have a route to 8.8.8.8
ip route get 8.8.8.8
# Output: 8.8.8.8 via 192.168.1.1 dev wlan0 src 192.168.1.10

# 2. Ping your gateway to verify local network works
ping 192.168.1.1
# 64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=1.2 ms
# Gateway responds - local network is fine

# 3. Try another public IP
ping 1.1.1.1
# Request timeout - same issue

# 4. Try DNS resolution
nslookup google.com
# Works - DNS is fine

# Conclusion: Your ISP might be blocking ICMP, or there's packet loss
# Try TCP-based connectivity test
curl -I https://google.com
# Works - internet is up, just ICMP is blocked/filtered

Example 2: Destination Unreachable

$ ping 10.0.50.100
PING 10.0.50.100 (10.0.50.100): 56 data bytes
From 192.168.1.1 icmp_seq=0 Destination Host Unreachable

Diagnosis steps:

# 1. Check who sent the unreachable message
# "From 192.168.1.1" - this is your gateway

# 2. Check your routing table
route -n | grep 10.0.50
# No route found

# 3. Check if there should be a route
# Is 10.0.50.0/24 supposed to be accessible from your network?
# Maybe you need to be on VPN?

# 4. Connect to VPN and try again
# (After VPN connection)
route -n | grep 10.0.50
# 10.0.50.0/24 via 10.8.0.1 dev tun0

ping 10.0.50.100
# 64 bytes from 10.0.50.100: icmp_seq=0 ttl=64 time=45.2 ms
# Now it works!

# Conclusion: Network required VPN connection

Example 3: Mixed Timeout and Unreachable

Sometimes you see both:

$ ping 192.168.1.150
PING 192.168.1.150 (192.168.1.150): 56 data bytes
From 192.168.1.10 icmp_seq=0 Destination Host Unreachable
Request timeout for icmp_seq 1
From 192.168.1.10 icmp_seq=2 Destination Host Unreachable
Request timeout for icmp_seq 3

This pattern indicates:

  • Initially, ARP lookup fails (unreachable)
  • Then ARP cache times out and ping just waits (timeout)
  • Then ARP tries again (unreachable)

The host definitely isn't on the network.

ICMP Types Behind the Scenes

Understanding the actual ICMP messages helps:

Request Timed Out:
- Your computer sends: ICMP Type 8 (Echo Request)
- Target should send: ICMP Type 0 (Echo Reply)
- You receive: Nothing (timeout)

Destination Unreachable:
- Your computer sends: ICMP Type 8 (Echo Request)
- Router sends back: ICMP Type 3 (Destination Unreachable)
  - Code 0: Network unreachable
  - Code 1: Host unreachable
  - Code 2: Protocol unreachable
  - Code 3: Port unreachable
  - etc.

You can see these with tcpdump or Wireshark:

# Capture ICMP traffic
sudo tcpdump -i any icmp -n

# In another terminal
ping 192.168.1.100

# Output shows the ICMP types:
# > 192.168.1.10 > 192.168.1.100: ICMP echo request, id 1234, seq 0
# < 192.168.1.1 > 192.168.1.10: ICMP 192.168.1.100 host unreachable

When Ping Works But Service Doesn't

Sometimes ping succeeds but you still can't connect to a service:

# Ping works
ping database.example.com
# 64 bytes from database.example.com (10.0.1.50): icmp_seq=0 ttl=64 time=1.2 ms

# But connection fails
telnet database.example.com 5432
# telnet: Unable to connect to remote host: Connection refused

This means:

  • Host is reachable (ping works)
  • ICMP is allowed
  • But the specific service port (5432) is blocked or not running

Ping only tests ICMP connectivity, not TCP/UDP services.

Practical Tips

For timeouts:

  1. Verify the host IP is correct
  2. Check if the host is powered on
  3. Try pinging from a different location
  4. Use traceroute to see how far packets get
  5. Consider that ICMP might be intentionally blocked

For unreachable:

  1. Note which router sent the error
  2. Check routing tables
  3. Verify network cables and WiFi connection
  4. Check if VPN is required
  5. Verify the destination network exists

Better diagnostics than ping:

# See the path packets take
traceroute google.com

# Test specific TCP port connectivity
nc -zv google.com 443
# or
telnet google.com 443

# Test with actual HTTP request
curl -v https://google.com

# Full network path with MTR (better than traceroute)
mtr google.com

The key difference is that "request timed out" means silence (packet sent, no reply), while "destination unreachable" means active rejection (router explicitly saying it cannot reach the destination). Understanding this distinction helps you troubleshoot network issues faster.

Published: 2025-08-30|Last updated: 2025-08-30T14:30:00Z

Found an issue?