Como implementar ping de PsPing TCP em c #

Estou tentando implementar o SysInternals de Mark RussinovichFerramenta PsPing em C # para medir latências usando ping TCP.

Não tenho certeza de como ele faz a chamada de ping (aparentemente não usa soquetes de janela não processados, porque não requer privilégios de administrador para ser executado). eu seihping envia pacotes SYN pelo TCP e mede o tempo de resposta.

Qual seria a técnica de implementação para medir com precisão a latência do servidor, que através do TCP não mede o tempo de carregamento da página, mas apenas a latência da rede para o reconhecimento de pacotes? Existe uma biblioteca para isso?

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

Atualização: Por favor, não responda como "por que você não usa a classe Ping, ela já funciona", pois estou perguntando sobre o ping por TCP, não por ICMP.

questionAnswers(2)

yourAnswerToTheQuestion