Hallo, meine Schaltung mit dem ENC28j60 und ATMEGA32 funktioniert ganz gut. Ich bin gerade dabei einen TCP Verbindung vom Controller aus aufzubauen. Wenn ich nun ein Packet mit einer beliebigen SEQ-Nummer verschicke, erhalte ich als antwort eigentlich ein richtiges Packet, außer das die relative SEQ-Nummer der Antwort (laut Wireshark) nie 0 ist, sondern immer eine riesengroße Zahl. Woran kann das liegen? Muss man die SEQ-Nummer die man verschickt berechnen? Bis jetzt hab ich immer eine Zufallszahl genommen. mfg
Es ist völlig korrekt und sogar erwünscht, mit einer zufälligen Sequenznummer zu beginnen, um ggf. bestimmte Angriffe gegen TCP zu unterbinden. Da die Sequenznummern 32Bit lang sind, sollte also ein entsprechender Zahlenbereich erscheinen.
Die SEQ wird von modernen Betriebssystemen (Linux auf jeden Fall, andere gehe ich mal stark davon aus) für jede neue Verbindung mit einem Zufallswert initialisiert. Das verhindert, dass man massenhaft ungültige Verbindungen ausgehend von beliebigen IP-Adressen aufbauen kann. Abgesehen davon, dass man das SEQ aus dem Verbindungsaufbau nicht ignorieren darf, sollte das auf die SEQ/ACK Implementierung keinen Einfluss haben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.