Tailscale ping message types
The standard ping
command uses Internet Control Message Protocol (ICMP) Echo Request and Echo Reply messages to test connectivity between two devices on a network. When you run a standard ping command, your system:
- Sends ICMP Echo Request packets to the target IP address.
- Waits for ICMP Echo Reply packets from the target.
- Measures the round-trip time.
- Reports packet loss statistics.
The standard ping
command primarily tests basic IP connectivity and measures latency. Many firewalls and network configurations block ICMP traffic, which can cause standard ping
commands to fail even when other types of connectivity exist.
The Tailscale ping command extends beyond standard ICMP ping functionality. It lets you test connectivity using multiple protocols to provide more comprehensive information about your Tailscale network (known as a tailnet) to help troubleshoot Tailscale-specific connectivity issues.
You can use the Tailscale CLI (tailscale ping
) to send Tailscale ping messages. Tailscale ping supports four distinct ping message types, each serving a specific purpose in diagnosing network connectivity. The supported ping types are DISCO, ICMP, TSMP, and peer API.
DISCO
DISCO (discovery) is Tailscale's protocol for peer-to-peer path discovery and NAT traversal. By default, the Tailscale ping command uses the DISCO protocol. DISCO ping messages test direct connectivity between tailnet devices.
To send a DISCO ping message, use tailscale ping
command without any flags.
tailscale ping device-name
pong from device-name (100.100.100.123) via DERP(nue) in 20ms
pong from device-name (100.100.100.123) via 1.2.3.4:56126 in 20ms
ICMP
Tailcale ICMP ping messages send a normal ICMP ping message over Tailscale's encrypted WireGuard connection. Tailscale ICMP ping message test end-to-end IP connectivity between Tailscale devices.
To send a ICMP ping message, use the --icmp
flag with the tailscale ping
command.
tailscale ping --icmp device-name
pong from device-name (100.100.100.123) via ICMP in 20ms
TSMP (Tailscale Message Protocol)
TSMP is a Tailscale-specific protocol designed to test connectivity when ICMP might be blocked. Tailscale TSMP ping messages test end-to-end IP connectivity over Tailscale's encrypted WireGuard tunnel but they bypass the device's operating system's IP stack.
To send a TSMP ping message, use the --tsmp
flag with the tailscale ping
command.
tailscale ping --tsmp device-name
pong from device-name (100.100.100.123, 12345) via TSMP in 20ms
Peer API
Peer API ping tests the HTTP-based peer API connectivity between tailnet devices. It's useful when troubleshooting Tailscale features like Serve, Taildrive, and Taildrop.
To send a peer API ping message, use the --peerapi
flag with the tailscale ping
command.
tailscale ping --peerapi device-name
hit peerapi of 100.100.100.123 (device-name.corp.ts.net.) at http://100.100.100.123:12345 in 20ms