Netzwerk-Profis: TCP/IP-Ping auf Dienste?
Hi Leute
ich hätte da mal ne Frage: die geht recht tief in die Technik. Wer die Ausdrücke nicht kennt - einfach weiterklicken - habt einen schönen Tag. Das ist fettes Brot (evtl.)
Problem:
- von einem Programm aus (ist jetzt Access, kann irgendein VBA sein, Pascal oder C/C++) soll die Verfügbarkeit eines Server-Dienstes (!) geprüft werden.
- Klar: einfach einen ping auf die IP-Adresse und ich weiß, ob die Maschine läuft - hab ich schon.
- reicht leider nicht. Das ist ICMP/IP - das läuft. Tagsüber bricht aber die Leistung ein, obwohl die Maschinen keine Last haben.
Problem ist nämlich
- Maschine ist erreichbar, aber ein Dienst läuft nicht oder schlecht
- dito, aber der Dienst ist in Firewalls, Routing, VPN irgendwie (!) benachteiligt - er läuft nicht so schnell, wie er könnte.
- diese Funktion würde ich in Programmen benutzen, bevor der Dienst (z.B. SQL) abgefragt wird. Da gibt es Verzögerungen und ich weiß noch nicht, woher sie kommen - also Fehlersuche
Ping und Tracert fallen weg, weil sie nur auf der IP-Ebene laufen. Pech gehabt.
Wenn der Dienst aber läuft (und die Software dahinter nicht gerade abgeschmiert ist, möchte ich so was wie die Laufzeiten vergleichen können.
Meine Überlegung: ich baue eine TCP-Verbindung zu dem Dienst auf (könnte man sich vorstellen wie einen telnet [IP] [port] und schauen, wie lange das dauert. Das würde mir helfen.
Untendrunter wird erst mal der TCP-Handshake ausgeführt (SYN ACK SYN-ACK) , dann kämen die Daten - die brauche ich nicht. da könnte gleich ein FIN gesendet werden (oder unsauber eben nicht) und Feierabend.
Meine Frage: dieser Mechanismus müsste auf Win entweder in einem Kommandozeilen-Programm oder in einer der DLLs sowieso existieren - da will ich das Rad nicht neu erfinden.
Könnt ihr mir sagen, wo ich da anfange zu suchen?
Keine Frage - dann muss ich rausfinden, wer bremst usw - aber finden msus man ihn.
PS: Es geht nur um Basis-Dienste wie FTP, DNS, SMTP, SMB, hier: MySQL und solche Sachen.
Sorry - ist mir erst jetzt aufgefallen: TCP-Handshake ist natürlich SYN SYN--ACK ACK. Das dürfte die Antworten aber kaum beeinflussen.
2 Antworten
warum nicht sowas nutzen?
Das könnte es sein. Sieht vielversprechend aus. Ich guck mal. Danke
Meine Überlegung: ich baue eine TCP-Verbindung zu dem Dienst auf (könnte man sich vorstellen wie einen telnet [IP] [port] und schauen, wie lange das dauert. Das würde mir helfen.
Ich denke folgender Link könnte ganz hilfreich sein:
https://learn.microsoft.com/en-us/windows/win32/winsock/winsock-timestamping