Wie implementiere ich PsPing TCP Ping in C #

Ich versuche Mark Russinovichs SysInternals zu implementierenPsPing tool in C #, um Latenzen mithilfe von TCP-Ping zu messen.

Ich bin mir nicht sicher, wie der Ping-Aufruf ausgeführt wird (verwendet anscheinend keine unformatierten Window-Sockets, da keine Administratorrechte erforderlich sind). Ich kennehping sendet ein SYN-Paket über TCP und misst die Antwortzeit.

Was wäre die Implementierungstechnik für die genaue Messung der Serverlatenz, bei der über TCP nicht die Ladezeiten, sondern nur die Netzwerklatenz für die Paketbestätigung gemessen werden? Gibt es dafür eine Bibliothek?

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

Update: Bitte antworte nicht wie "Warum benutzt du nicht die Ping-Klasse, sie macht schon das Ding", da ich nach Ping über TCP frage, nicht nach ICMP.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage