Разница между проверкой доступности порта через ICMP и TCP заключается в том, что ICMP и TCP используют разные протоколы и подходы.
ICMP (Internet Control Message Protocol) — протокол сетевого уровня, который используется для отправки сообщений об ошибках и информации о том, успешна ли связь с IP-адресом. 12 ICMP не использует номера портов, поэтому проверить конкретный порт с его помощью нельзя. 12
TCP (протоколы транспортного уровня) используют номера портов, которые помогают определить, куда пересылается интернет или другое сетевое сообщение. 12 Существует такой метод, как TCP Ping, где вместо типичного трёхстороннего рукопожатия TCP выполняются только первые два шага и измеряется задержка между ними. 4
Таким образом, ICMP предназначен для общего определения доступности, в то время как TCP позволяет более детально проверить доступность конкретного порта.