Hallo, ich verwende einen Mega16 und den ENC28J60. Zudem hab ich mir eine Anwendung mit Qt Creator geschrieben um UDP-Pakete zu senden und zu empfangen. Wenn ich ein Paket vom PC zum µC sende antwortet der µC wiederum mit einem Paket. Dieses Paket sehe ich auch in Wireshark, dass es ankommt beim PC. Aber bei meiner Anwendung kommt es nicht an. Sende ich aber ein Paket mit meinem Smartphone zum PC sehe ich es auch in Wireshark und es kommt bei meiner Anwendung an. Nur wenn das Paket vom µC kommt, kommt es nicht bis zu meiner Anwendung durch. Ich bin schon seit gestern am verzweifeln. Kann mir jemand evtl. helfen?
Checksum(s) OK? Laut Dokumentation sollte es auch ohne die UDP-Checksum gehen. Ich meine mich aber erinnern zu können, dass zumindest bei Windows dann nichts ankommt. Wireshark prüft die UDP-Checksum standartmäßig nicht, da fällt das nicht auf. Alle Angaben ohne Gewähr, da die Erinnerung hier momentan etwas schwächelt.
Meine Wireshark-Erfahrungen liegen etwas zurück, daher weiß ich nicht, wo genau man heutzutage klicken muß, um alles zu sehen, aber Wireshark zeigt eigentlich alle Einzelheiten an, die man braucht. Ein paar Dinge, die das Betriebssystem prüft, bevor die Applikation das empfangene Paket bekommt: - Stimmt die Absenderadresse (IP source address)? Da muß die Adresse des µC stehen. - Stimmt die Empfängeradresse (IP destination address)? Da muß die Adresse des PC stehen. - Stimmt die IP-Header-Prüfsumme? Wireshark sollte fett dranschreiben, wenn die falsch ist. - Längenplausibilität: Im IP-Header steht, wie lang das Paket ist. Ist es wirklich mindestens so lang? - Flags und Fragmentoffset sollten 0 sein - Protokollnummer: im IP-Header muß stehen, daß es ein UDP-Paket ist (nicht TCP oder sonstwas) - UDP-Portnummern: destination port muß mit der Portnummer übereinstimmen, auf die die Applikation "hört" - Längenplausibilität: Im UDP-Header steht auch nochmal 'ne Länge. Ist das Paket tatsächlich so lang? - Stimmt die UDP-Prüfsumme? Die ist optional: wenn sie 0 ist, ist gut, wenn nicht, muß sie korrekt sein. Sollte Wireshark aber auch fett markieren, wenn die nicht stimmt.
Also alles was du aufgezählt hast stimmt. UDP Checksum hab ich auch 0 gelassen. Falls jemand Zeit hat, könnte er sich ja mal die Pakete ansehen. Vielleicht hab ich irgendwas übersehen.
1 | Vom µC: |
2 | 0000 00 1f e1 47 7a 2b ac de 48 aa bb cc 08 00 45 00 ...Gz+..H.....E. |
3 | 0010 00 2f 00 03 40 00 80 11 14 a9 c0 a8 b2 28 c0 a8 ./..@........(.. |
4 | 0020 b2 98 13 88 13 89 00 1b aa bb ff 4f 4b 00 01 02 ...........OK... |
5 | 0030 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ............. |
6 | |
7 | Vom Smartphone: |
8 | 0000 00 1f e1 47 7a 2b 84 00 d2 53 9e aa 08 00 45 00 ...Gz+...S....E. |
9 | 0010 00 2f 00 00 40 00 40 11 54 56 c0 a8 b2 7e c0 a8 ./..@.@.TV...~.. |
10 | 0020 b2 98 c9 e6 13 89 00 1b b1 57 ff 4f 4b 00 01 02 .........W.OK... |
11 | 0030 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ............. |
Mathias O. schrieb: > UDP Checksum hab ich auch 0 > gelassen. Diese zwei 00 00 kann ich auf den ersten Blick nicht entdecken
Die einzigen nennenswerten Unterschiede sind diese im IP-Header. Vom µC: Identification: 0x0002 (2) Time to live: 128 Vom Smartphone: Identification: 0x0000 (0) Time to live: 64 Edit: Sorry, das war vom Checksum Test :P
1 | 0000 00 1f e1 47 7a 2b ac de 48 aa bb cc 08 00 45 00 ...Gz+..H.....E. |
2 | 0010 00 2f 00 02 40 00 80 11 14 aa c0 a8 b2 28 c0 a8 ./..@........(.. |
3 | 0020 b2 98 13 88 13 89 00 1b 00 00 ff 4f 4b 00 01 02 ...........OK... |
4 | 0030 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ............. |
:
Bearbeitet durch User
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.