I received a feature request (thanks Jasper) a while back about adding more options to the Ping tool for hosts that don't respond to ICMP requests.
I'm happy to announce that there is now a drop down next to the ping button that allows you to select what type of ping you would like to perform. This now lets you pick between ICMP (default), HTTP and TCP. When selecting from the latter two options a port needs to be provided. For HTTP requests this will typically be port 80 for insecure (HTTP) and port 443 for secure (HTTPS) requests.
You can see it in action below:
Differences between ICMP, TCP, and HTTP pings
HTTP and TCP pings take longer than ICMP pings due to the additional overhead and steps involved in their protocols. An ICMP ping, used by the standard ping command, is the most straightforward: it sends a single ICMP echo request packet and waits for an ICMP echo reply, totaling a minimum of two packets (one out, one back).
In contrast, a TCP ping, at its minimum, involves a three-step process known as the TCP handshake: the client sends a SYN packet, the server responds with a SYN-ACK packet, and the client replies with an ACK packet. This makes a minimum of three packets sent (SYN, SYN-ACK, ACK) for a successful connection establishment, not including the packets for closing the connection.
HTTP ping builds on top of TCP. First, it completes the TCP handshake (three packets), and then it sends an HTTP request (another packet) and waits for an HTTP response (yet another packet). This means a minimum of five packets are exchanged (SYN, SYN-ACK, ACK, HTTP request, HTTP response) for a basic HTTP ping.
The additional steps in TCP and HTTP pings, especially the handshake and protocol-specific data exchange, contribute to their longer durations compared to the more direct ICMP ping.
What do you think?
Find this feature useful or have an idea how to improve it? add a comment below to let me know!