Entwickler-Ecke

Internet / Netzwerk - TCP Übertragungsgeschwindigkeit


ZO_orki - So 11.06.06 14:32
Titel: TCP Übertragungsgeschwindigkeit
Hallo,

habt ihr eine Idee, wie ich aus einer Menge von TClientSockets die schnellste Verbindung herraussuchen kann (von einem TServerSocket)?

Ich habe ein TServerSocket und mehrere Connections, und würde jetzt gerne die Übertragungsraten bestimmen. Gibt es dazu Möglichkeiten ohne alle möglichen Leute anzupingen?

Wenn es Möglichkeiten mit den Indy Komponenten gibt ist mir das auch Recht, dann steige ich im Notfall um.

Wenn ich anpingen muss, wie mache ich das am besten?
Ich könnte ja alle Verbindungen in einer For-Schleife anpingen, und der, der als erstes antwortet ist am schnellsten. Das Problem: Bei mehreren Verbindungen kann es sein, dass die erste Antwort zurück ist, bevor jeder Ping draußen ist.
Alternativ könnte ich jeden einzeln anpingen, nacheinander, und erst den nächsten, wenn der letzte geantwortet hat. Das ist aber relativ aufwendig.

Habt ihr andere Ideen, gibt es sonstige Möglichkeiten?

Hoffe ihr könnt mir helfen,

mfG ZO_orki


Narses - So 11.06.06 23:51

Moin!

user profile iconZO_orki hat folgendes geschrieben:
habt ihr eine Idee, wie ich aus einer Menge von TClientSockets die schnellste Verbindung herraussuchen kann (von einem TServerSocket)?

Das setzt voraus, dass du mal definiert, wie du dir denn "die schnellste (TCP-)Verbindung" vorstellst. ;) Das ist nämlich mal gar nicht so einfach... :D

user profile iconZO_orki hat folgendes geschrieben:
Ich habe ein TServerSocket und mehrere Connections, und würde jetzt gerne die Übertragungsraten bestimmen. Gibt es dazu Möglichkeiten ohne alle möglichen Leute anzupingen?

Könnte mit Anpingen schwer werden. Da wirst du wohl eher ein Testdatenpaket mit bekannter Länge (und zwar mehr als die paar Bytes beim Ping) senden müssen und dir die Ergebnisse anschauen.

user profile iconZO_orki hat folgendes geschrieben:
Wenn ich anpingen muss, wie mache ich das am besten?
Ich könnte ja alle Verbindungen in einer For-Schleife anpingen, und der, der als erstes antwortet ist am schnellsten.

Falls du tatsächlich pingen willst, bekommst du doch die RTT zurück. ;) Guckst du [http://www.delphi-forum.de/topic_ICMPEchoAPI+quotPingquot+WrapperUnit_53259.html].

cu
Narses


ZO_orki - Mo 12.06.06 23:31

Hmm... ja sorry, habs bissel schlecht formuliert. Ich will nciht die schnellste Verbindung, sodass die Daten per Verbindung schnell ankommen, sondern den Client, der die beste Übertragungsrate generell, also Upstream und Downstream hat. Gibt es da ne möglichkeit?


Narses - Di 13.06.06 01:16

user profile iconNarses hat folgendes geschrieben:
Da wirst du wohl eher ein Testdatenpaket mit bekannter Länge (und zwar mehr als die paar Bytes beim Ping) senden müssen und dir die Ergebnisse anschauen.