Forum: Mikrocontroller und Digitale Elektronik Tcp Verbindungswunsch ablehnen


von Trundle T. (shaheed)


Lesenswert?

Hi,

ich weiß nicht ob das hier das richtige Forum ist aber ich versuchs mal.
Es geht um folgendes ich implementiere gerade nen Ethernet-Controller 
mit abgespecktem TCP/IP-Stack in Hardware (aufm FPGA).
Das läuft auch schon recht gut und stabil.
Einschränkung ist das nur ein Port (aufm FPGA, fest) angefunkt werden 
darf und auch nur ein Port (vom PC, variabel) der Sender sein darf.
Es ist dabei egal welcher PC-Port das ist. Es darf aber immer nur einer 
gleichzeitig auf meinen Ethernet-FPGA zu greifen. D.h. den ganzen Krams 
mit 3-Wege-Handschlag, etc mach ich immer nur mit einem Port, wenn noch 
eine Verbindungsanfrage vom einem anderen Port kommt (während 
bestehender Verbindung), ignoriere ich die bisher immer, aber dann funkt 
mir der Pc immer wieder diese Anfragen in den Datenverkehr und 
verlangsamt und zum Teil destabilisiert ihn auch.
Ich wollt mal fragen ob es irgendeine Möglichkeit, per Optionsbytes oder 
ein bestimmtes Paket, der Gegenseite zu signalisieren, das der 
Verbindungswunsch registriert wurde aber nicht akzeptiert wurde, also 
ala "versuch's nicht nochmal"...
Oder am besten gleich der Gegenseite mitteilen es kann nur eine 
Port-zu-Port-Verbindung geben?
Hab dazu nichts mit SuFu gefunden weder hier im Forum noch im Inet.

von (prx) A. K. (prx)


Lesenswert?

Als Antwort auf SYN ein RST senden, statt SYN+ACK.

von Trundle T. (shaheed)


Lesenswert?

cool das ging ja schnell danke

von Trundle T. (shaheed)


Lesenswert?

Nochmal ne ganz kurze Frage an dich A.K. vllt kannst du mir das 
erläutern:

Was ist der Unterschied zwischen einem reinen RST-Paket(ohne Ack-Bit) 
und einem RST/ACK-Paket??
Und wann setzte ich die jeweiligen ein?

Ich brauch konkret 2 Fälle: erstens Verbindungswunsch ablehnen und 
zweitens der Gegenseite signalisieren ... bei mir is was falsch gelaufen 
-> Verbindung sofort schliessen und wieder neueröffnen (also 
Syn->SynAck->Ack).

Wenn ich bei Fall 2 ein RST/ACK-Paket sende, reagiert die Gegenseite 
(Win7-PC) nicht darauf. Zumindest nicht wie ich es mir vorstelle, der PC 
sendet einfach weiter Datenpaket auf den gleichen Port...
Obwohl ich das RST/ACK-Paket bei Wireshark sehe und es auch von 
Checksummen etc richtig ist. Vllt eine kurze Anmerkung wenn ich das 
RST-Paket sende dann setzte ich vorher meine SeqNummer auf Null.. ist 
das vllt der Fehler??

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.