Как реализовать TCP ping PsPing в C #

Я пытаюсь реализовать SysInternals Марка РуссиновичаPsPing инструмент в C # для измерения задержек, используя пинг TCP.

Я не уверен, как это делает пинг-вызов (очевидно, не использует необработанные сокеты Windows, потому что это не требует привилегий администратора для запуска). я знаюhping отправляет пакет SYN через TCP и измеряет время ответа.

Какой будет метод реализации для точного измерения задержки сервера, который по TCP не измеряет время загрузки страницы, а просто задержку сети для подтверждения пакета? Есть ли библиотека для этого?

C:\>psping stackoverflow.com:80

PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

Pinging 198.252.206.16 with 32 bytes of data:
5 iterations (warmup 1) ping test:
Reply from 198.252.206.16: 81.57ms
Reply from 198.252.206.16: 80.81ms
Reply from 198.252.206.16: 80.68ms
Reply from 198.252.206.16: 80.52ms
Reply from 198.252.206.16: 80.71ms

Ping statistics for 198.252.206.16:
  Sent = 4, Received = 4, Lost = 0 (0% loss),
  Minimum = 80.52ms, Maximum = 80.81ms, Average = 80.68ms

Обновление: пожалуйста, не отвечайте «почему вы не используете класс Ping, он уже работает», поскольку я спрашиваю о ping поверх TCP, а не ICMP.

Ответы на вопрос(2)

Ваш ответ на вопрос