Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Netto Datenrate bei Gigabit Verbindungen (https://www.delphipraxis.net/93870-netto-datenrate-bei-gigabit-verbindungen.html)

Udontknow 13. Jun 2007 10:41

Re: Netto Datenrate bei Gigabit Verbindungen
 
Hallo!

Zum Code:

Delphi-Quellcode:
repeat
      for i := 1 to 50 do
      begin
   //      IdTCPClient1.WriteBuffer(s[1], bufsize); // Indy 9
         IdTCPClient1.IOHandler.Write(s);           // Indy 10
         Inc(packets);
      end;
   until sw.Seconds > 3.0;
Das ist nicht performant. Um große Datenmengen zu versenden, solltest du nicht ständig wiederholt kleine Schnipsel senden, sondern ein großes Paket schnüren, daß mit einem Sendebefehl auf die Reise geht.

Ich verweise mal auf folgenden Thread, dort gibt es am Threadende Codeschnipsel für die Übertragung eines größeren Streams...

Cu,
Udontknow

creality 13. Jun 2007 11:13

Re: Netto Datenrate bei Gigabit Verbindungen
 
Ja das ist richtig. Bei TCP macht es auch keinen Sinn sich selber um die Pakete zu kümmern.

So sende ich TCP (der Stream ist dabei 11MByte groß)
Delphi-Quellcode:
// Send Buffer Size
Context.Connection.IOHandler.Write(Size);

// Send Stream
Log('[Send STREAM]', clGreen);
AContext.Connection.IOHandler.Write(stream);
Allerdings geht das bei UDP nicht. Hier muss man selber aufteilen...bei:
Delphi-Quellcode:
udpserver.SendBuffer('192.168.0.222', 1025, IdGlobal.Id_IPv4, TempBuffer);
Dabei ist TempBuffer vom Typ: TIdBytes und Ebenfalls 11MByte groß. Hier wird aber eine Exception ausgelöst: Buffersize too big.

Allerdings ist das auch nicht das Thema. Ich hab mit dem Tool: NETIO vom Heiseserver die selben Werte erzielt. Maximal 15MByte beim Senden.

shmia 13. Jun 2007 12:52

Re: Netto Datenrate bei Gigabit Verbindungen
 
Zitat:

Zitat von creality
Ich hab mit dem Tool: NETIO vom Heiseserver die selben Werte erzielt. Maximal 15MByte beim Senden.

Hast du auch alle beteiligten Netzwerkkarten explizit auf 1000MB & full duplex eingestellt.
Bei der Einstellung "Auto" handeln die Karten die Übertragungsrate selber aus.
Dabei kann es passieren, dass sich jeder auf den anderen einstellen möchte => Leistungseinbruch

creality 13. Jun 2007 13:36

Re: Netto Datenrate bei Gigabit Verbindungen
 
Tja das ist eine gute Vermutung...Speed geht nur bis 100MBit Full. Im Treiber ist keine Einstellung von 1000MBit zu sehen. Treiber ist aber eben schon der aktuellste...

die selbe karte ist bei beiden Rechnern drin. aber im Windows Taskmenu steht beim Icon: 1GB

creality 13. Jun 2007 14:29

Re: Netto Datenrate bei Gigabit Verbindungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Für die, dies interessiert:

Ich hab das kleine Tool von [shmia] noch ein bisschen erweitert...ich hoffe das is ok? Wenn nicht, dann lösch ich den Eintrag wieder. Einfach melden.

NEWS
--------------------
1. UDP Server implementiert
2. TCP Server implementiert
3. Tool ist Server und Client gleichzeitig
4. UDP IST NICHT FERTIG!

Usage
--------------------
1. Tool einmal auf einem Server starten und Serverparameter setzen
2. Tool einmal auf einem Client starten und Serverparameter eintragen
3. Connecten (TCP!)

ToDo
--------------------
1. UDP Fertig machen - hat jemand Zeit???
2. Optik bissel besser gestalten
3. Bugs ausbessern

Wer Lust hat, nehme sich das Tool und bastelt einfach dran rum. Vielleicht hilfts dem einen oder anderen. Wenn was geändert wurde, postet es wieder hier rein. Vielleicht entsteht so ein kleines feines Netzwerk Traffic Test Tool für Leute die sowas mal brauchen.

shmia 13. Jun 2007 15:26

Re: Netto Datenrate bei Gigabit Verbindungen
 
Zitat:

Zitat von creality
Ich hab das kleine Tool von [shmia] noch ein bisschen erweitert...ich hoffe das is ok?

Is ok. Sollte nur so sein, dass weiterhin die Möglichkeit besteht, über den Port 9 (Discard)
die Verbindung zu jedem beliebigen Windows- oder Unix-Server zu messen.
(ohne dass man das Tool auf dem Server starten muss)

creality 14. Jun 2007 06:47

Re: Netto Datenrate bei Gigabit Verbindungen
 
Ok, könnte man ja wieder einbinden.

Also Client/Server und/oder Discard oder Echo. Wenn die Ports nicht gebklockt sind. So wars bei mir. Darum der Server.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz