Schnuber B. schrieb:
> Was für einen Datendurchsatz erreicht man den mit den jeweiligen
> Methoden (WinPcap, NDIS). Ich habe eine Gigabit Ethernet schnittstelle
> und möchte damit mit der gleichen Methode wie unser Startautor Ing. ET
> (Gast) daten darüber streamen. Mindestens 30 MB/s sollte hanfhabbar
> sein.
Zum Datendurchsatz kann ich Dir leider nichts allgemeingültiges sagen.
Ich habe die jeweiligen Implementierungen im Rahmen von LAN-Bootloadern
verwendet. Nachdem da seitenweise ins Flash geschrieben, CRC-Vergleiche
vorgenommen und Protokollchecks durchgeführt werden, könnte man da nur
einen absoluten E2E-Durchsatz messen, der sehr von der Performance des
uCs und der Bootloader-Applikation + Protokoll abhängig ist (Blockgröße,
Multipages, etc). Ich habe versucht den Bootloader auf unter 4k zu
bringen, daher auch die RAW-Ethernet-Methode mit proprietärem
Lightweight-Protokoll(gelandet bin ich dann bei etwa 3 kB).
Nachdem ich mit den PCAP Libs angefangen habe und ich zum Test einen
644er geflasht habe, hatte ich Zeiten im Minutenbereich für den gesamten
Flashinhalt (abzüglich Bootloader).
Das lag vor allem nicht an den Sendezeiten, sondern durch hohe Latenz
beim Empfang innerhalb des PCap-Stacks.
Nachdem mein Bootloader-Client objektorientiert aufgebaut ist, habe ich
den PCap-Stack gegen einen NDIS-Stack getauscht und lag so unter einer
Minute.
D.h. hier war in etwa der Faktor 3 in der Performance zu sehen. Für
meine Bootloader-Tests war diese Aussage ausreichend (insbesondere da
die Engines dennoch softwaremäßig umschaltbar sind).
Bei Deinen angestrebten 30MB/s sollte zunächst mal definiert werden, von
was gesprochen wird. Brutto-Durchsatz, Netto-Durchsatz, Datenrichtung,
Protokollaufbau (Blockgrösse, Handshaking, Verbindungsart).
Möchtest Du ein eigenes Schicht 3 Protokoll entwerfen oder Dich an einen
Standard halten ?
Wenn Du in diesen Parametern frei bist, kannst Du hier natürlich auf
Performance optimieren, so wie ich im Rahmen des Bootloaders auf
Programsize optimiert habe.
Ich schätze mal, daß bei Verwendung von NDIS der Flaschenhals für 30MBit
sicher nicht im Treiber, bzw. der PC-Protokollimplementierung liegt.