Ethernet-Switch und unterschiedliche Datenrate

Gast #4580879
Lesenswert?

Hallo,
ich arbeite gerade an einem Ethernet-Switch auf FPGA-Basis und habe ein 
allgemeines Verständnisproblem bei der Unterstützung von 10M und 
100Mbit/s Übertragung (prinzipiell würde dies dann auch für 1000 Mbit/s 
auch gelten).

Wenn ich einen 1-auf-2 Switch designe, handeln ja die PHYs die Datenrate 
aus. Nun könnte ein 10M auf der einen Seite und ein 100M Netz auf der 
anderen Seite angeschlossen sein und die PHYs handeln ihre Verbindungen 
nach 100M und 10M ebenso demnach aus.

Wie vermeide ich nun, dass der 100M Link einen Durchsatz von 100 Mbit/s 
in den 10M Link drückt?
Muss ich etwas unternehmen? oder handelt eine übergeordnete Flow-Control 
die gesamte Strecke automatisch auf 10M aus?
#4580883
Lesenswert?

Tim schrieb:
> Muss ich etwas unternehmen? oder handelt eine übergeordnete Flow-Control
> die gesamte Strecke automatisch auf 10M aus?

Ethernet kann Flow-Control (m.W. kam das mit 1Gb) verwenden, muss aber 
nicht. Den Rest erledigt das TCP Protokoll, sofern verwendet. Dein 
DSL-Router stört sich ja auch nicht dran, dass er mit 1Gb in deinem Netz 
hängt, aber nur 1Mb in die Welt blasen kann.
Gast #4580923
Lesenswert?

Tim schrieb:
> Wie vermeide ich nun, dass der 100M Link einen Durchsatz von 100 Mbit/s
> in den 10M Link drückt?
Du könntest auf der anderen Seite vom Switch auch eine Datenrate von 10 
MBit/s erzwingen.

> Muss ich etwas unternehmen? oder handelt eine übergeordnete Flow-Control
> die gesamte Strecke automatisch auf 10M aus?
Da wird von oben nix ausgehandelt. Sobald Dein lokaler Paketspeicher 
voll ist, kommt es zu Paketverlusten.

Gute Switche schicken dann noch ICMP-Messages an den schnellen Host:
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Source_quench

Und gute Host-Implementierungen reagieren darauf...

Duke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren