Serverantwortzeit verkürzen möglich?

  • Hallo zusammen,

    ich greife per inetget() und div. _ftpxxxx auf Web- bzw. ftp-Server zu. Ist der Server offline, dauert der Versuch des Verbindungsaufbaus ca. 10 Sekunden, bevor das Script die Info Server=offline ausgibt.
    Kann man diese "Abfragezeit" einstellen? So daß man schon nach ~1-2 Sekunden die Info server=offline bekommt?
    Ich befürchte, daß diese Zeitspanne Teil des tcp ist, dann habe ich natürlich gelitten....oder doch nicht? ;(

    thx vorab
    .Andy

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (12. Januar 2009 um 23:56)

    • Offizieller Beitrag

    Du könntest ja vor jedem Connect zu einem Server einen Ping senden , dann kannst du im Vorfeld schon abklären ob der Server erreichbar ist .

  • Hi,

    Thx, gute Idee, funzt einwandfrei!
    *edit* doch nicht....der Ping gibt nur einen "erreichbaren" Rechner zurück, aber der darauf laufende (z.b.) FTP-Server kann nicht abgefragt werden...

    ciao
    .Andy

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    2 Mal editiert, zuletzt von Andy (13. Januar 2009 um 02:19)

    • Offizieller Beitrag

    Also für nen Ping hab ich noch keine Firewallrules anlegen müssen . Probiers doch einfach aus . Das einzige was dir passierne kann , das der Server keinen Pingrequest gibt wie z.B. Microsoft.com oder EBay.com

  • sry, wenn man als alter DOS-ler eher an den Befehl PING denkt als an die schon in AutoIt implementierte Funktion....dann wird das nix, aber nach 5 Tassen Kaffee gehen einem ab und zu auchmal Kronleuchter auf 8o

    gute Nacht :rock:
    .Andy

    • Offizieller Beitrag

    Selbst das Dos-Ping funzt hinter der Firewall , mal so von einem Dosler zum anderen ;)

  • Na dann frag dich mal, wozu du eine Firewall brauchst, wenn da "jeder" nach Hause telefonieren (oder pingen) kann 8)
    Natürlich muss die FW den Ping blocken, wenn du das nicht explizit freigegeben hast.

    Aber nochmal zum Topic :D
    Ping ändert nichts an meinem Problem, d.h. wenn der Rechner zwar erreichbar ist, aber der serverprozess z.b. nicht läuft.
    Habe das ganze mal auf socket-ebene getestet:

    [autoit]


    ; aus der Hilfe
    Opt("TCPTimeout",1000) ;1000 milliseconds egal welche zahl, bringt nix....
    $szIPADDRESS = "XXX.xxx.xxx.xxx" ; ip-adresse des ftp-servers
    $nport=21 ;ftp
    TCPStartup()
    $MainSocket = TCPconnect($szIPADDRESS, $nPORT) ; wenn -1, dann keine Verbindung
    msgbox(0,"mainsocket",$mainsocket)
    If $MainSocket = -1 Then Exit

    [/autoit]


    Läuft der FTP-Server, bekomme ich sofort eine Rückmeldung (sowohl beim Server als auch beim Script), ist der Server offline, warte ich 13 Sekunden auf Rückmeldung d.h. dann erscheint erst die Msgbox. Unabhängig von der opt("tcptimeout",xxx). Dieser timeout hat wahrscheinlich nur Auswirkung auf eine bestehende Verbindung.

    *weitersuchendaltesteintafelnausgrauervorzeitentziffert* :?:
    .Andy

    *edit*
    Die Antwortpakete werden Providerseitig geblockt! Das hat wohl etwas mit evtl. möglichen DoS-Angriffen zu tun.
    Laut Protokoll/Microsoft wird die maximale Wartezeit auf Antwort dynamisch berechnet, Problem ist nun folgendes:
    1.Fall: Die angefragte IP-Adresse ist offline oder nicht existent: Router(oder Gateway im i-net) sendet eine Antwort (ICMP Paket 3), die wird vom Script innerhalb der einstellbaren Zeit (timeout) ausgewertet. Alles paletti.
    2.Fall: Die IP-Adresse ist erreichbar, ein darauf laufender Server( oder Port) aber nicht. Das Gateway(Zielrechner) sendet die Antwort "Rechner existiert (Port offen)" (per ICMP). Der anfragende Rechner weiss nun, dass die Gegenseite sendet und wartet jetzt auf ein Antwortpaket vom Zielrechner (dieser timeout ist wie gesagt dynamisch und kann m.e. nicht "einfach" verändert werden, jedenfalls habe ich nichts bis wenig dazu gefunden). Der Zielrechner sendet nun ein Paket "Port nicht erreichbar( Serverdienst läuft nicht)". Dieses Paket wird, wohl weil über ICMP Angriffe (DoS) möglich sind, vom Provider geblockt (oder vom Ziel-Router), und der anfragende Rechner wartet und wartet und wartet....., bis nach Ablauf des dynamisch berechneten timeout (bis zu 15 Sekunden) das Script die Info erhält, daß der Zielrechner nichts sendet.

    Wenn ich einen Web(FTP)Server über die lokale IP-Adresse (Lan) anfrage, bekomme ich die Antwortpakete, sobald I-net mit im spiel ist , dann nicht.

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (13. Januar 2009 um 12:40)


  • Wenn ich einen Web(FTP)Server über die lokale IP-Adresse (Lan) anfrage, bekomme ich die Antwortpakete, sobald I-net mit im spiel ist , dann nicht.


    Wenn ich mich recht erinner ist der Router schuld mit Modem gehts glaube.

  • Habe nun mal mittels Ethereal den Paketen auf den Zahn gefühlt.

    Anfrage an den ftp-Server über lokale IP, der Client sendet ein [SYN] und "merkt" sofort , daß der Server offline ist, d.h. der Server schickt NICHTS zurück

    Anfrage an den Server über I-net (Router), der Client sendet mehrere [SYN] (das wird wohl diese schon angesprochene dynamische Timeoutgeschichte sein) bis nach ca 15 Sekunden vom Server (oder Router?) ein [RST] (reset) zurückgesendet wird, was der Client auch sofort anzeigt.....Info in diesem Paket "ACKs a Segment we have not seen (lost)" d.h. doch, der Server (bzw Rechner, der den Port 21 offen hält) hat Antworten geschickt, aber vom Client nix bekommen und deshalb die Verbindung gekappt.

    Es scheint wirklich so zu sein, daß der Router (oder Provider) Antwortpakete droppen. :thumbdown: Der Sinn erschließt sich mir nicht, 15 Sekunden warten zu müssen damit die Info kommt, dass irgendein Dienst NICHT läuft...

    Werde mal in den Eingeweiden meines Routers graben ....

    ciao
    .Andy

  • Definitiv liegts nicht am Router sondern an der....Anfrage!?

    Diverse Portscanner melden nach 1-2 Sekunden den Port bzw laufenden FTP-Server, genausoschnell auch den Fall, wenn ich den Serverprozess beende. Frage ist: Wie machen die das? ?(

  • solange Ihr die NW-Architektur / Server / Programme / Strategie / auf der anderen Seite nicht kennt, könnt ihr über mögliche Ursachen nur RATEN

    Zitat

    Laughing Man

    "I thought, what I'd do was, I'd pretend I was one of those deaf-mutes"

  • solange Ihr die NW-Architektur / Server / Programme / Strategie / auf der anderen Seite nicht kennt, könnt ihr über mögliche Ursachen nur RATEN


    Da ich sowohl die eine, als auch andere Seite bin, gibts da nicht viel zu raten.
    Wirf dem usenet oder der Tante die dementsprechenden Brocken zu und du wirst feststellen, daß es Threads über dieses Thema gibt, die teilweise 10 Jahre alt sind. Lösungsvorschläge bzw. -ansätze Fehlanzeige. Von Dokumentationen mal ganz zu schweigen.
    Teilweise funtionierts, meistens nicht^^.
    Jedenfalls bleib ich mal am Ball, man lernt ja nie aus und Bitweises vergleichen von Transportströmen durch mehrere Schichten eines Protokolls hat ja auch was ^^. Jedenfalls bekomm ich´s raus.
    ciao
    .Andy

  • hmm dann versteh ich die Sache mit dem Ping nicht !? ist icmp teilweise offen und teilweise zu?

    *edit pille palle*

    jetzt hab ich verstanden WAS du meinst ... ich grübel mal - vielleicht fällt mir was ein

    *edit*

    *wieder lösch*

    Zitat

    Laughing Man

    "I thought, what I'd do was, I'd pretend I was one of those deaf-mutes"