hi folks,
dies ist mein erster Beitrag hier. Konnte zu diesem Thema nicht schweigen, da es auch in unserer Firma grosse Diskussionen darüber gab. Wir haben ein geswitchtes Netzwerk mit Cisco-Komponenten und GigaBit-LWL-Backbone. Die Clients bestehen aus Windows- (Win98-XP), Mac- und Linux-Rechnern, die Server aus Windows (2000-2003), UNIX (AIX, SCO) und Linux-Rechnern. Die Mac's haben mit Mac OS 9 Schwierigkeiten mit Full-Duplex, sie werden fest clientseitig auf auto und am Switch auf 100/half gestellt. Die Windows-Clients werden z. Zt. nach und nach ebenfalls auf 100/half gestellt (Client auto, Switchport fest 100/half). Grund ist der Flow-Control-Mechanismus. In einem komplett geswitchtem Netz greift nicht mehr der gute alte CSMA/CD-Mechanismus, sondern Client und Server handeln über Flow-Control selbst aus, auf welche Art und Weise die Daten übertragen werden. Wenn die Daten nun über mehrere Switche gehen (über die Trunking Ports) können Datenpakete gedroppt werden. Dies kann zu erheblich verlängert Übertragungszeiten führen. Ein Kollege von mir hat das etwas technischer so erklärt:
Bei Fullduplex werden Pakete am Switchport immer mit maximaler
Geschwindigkeit geforwardet. Wenn dies mehrere Endgeräte gleichzeitig tun,
kann die Trunkingverbindungen des Access-Switches in die Sättigung fahren.
Wenn der Interfacebuffer des Trunkingports voll ist, werden weitere Pakete
gedropped.
Es gibt in diesem Fall keine Mechanismen, die einen Clienten dazu bewegen
können, seinen Datenfluss zu bremsen. Das jetzt Pakete verloren gegangen
sind, merkt der TCP-Stack erst nachdem, nach Ablauf seiner Timer, kein ACK
gekommen ist. Dieser Timer ist oft auf mehrere Sekunden eingestellt. Wenn
dieser Effekt häufiger auftritt, verlängert sich beispielsweise eine
Dateiübertragung um einige Minuten, was dann auch meist die dahinterliegende
Applikation in eine tiefe Krise stürzt. So erwartet ein SAP-Client seine
Antworten vom Server innerhalb eines kurzem Zeitraumes (der mir jetzt gerade
nicht mehr einfällt).
Sind die Endgeräte Ports jetzt in Halfduplex konfiguriert, greift der gute,
alte Mechanismus der Collision. Wenn der Buffer des Uplink-Ports voll läuft,
schickt der Switch an das Endgerät ein Collision-Signal. Das Endgeräte tut
das, was es vor 30 Jahren mal vom ALOHAnet gelernt hat. Es stoppt
unverzüglich die Datenübertragung, startet einen Zufallstimer und startet
nach Ablauf des Timers einen erneuten Versuch.
Die Unterbrechungen im Datenstrom dauern in diesem Fall nur wenige
Millisekunden UND es werden keine Pakete gedropped.
Deshalb werden bei uns die Clients auf 100/half und die Server auf 100/full gestellt.
Gruss
hatty