Forum: Mikrocontroller und Digitale Elektronik Seltsames Verhalten mit UDP-Paketen


von Mathias O. (m-obi)


Lesenswert?

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?

von zatzerratz (Gast)


Lesenswert?

Portummer ok?

von Cube_S (Gast)


Lesenswert?

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.

von Nosnibor (Gast)


Lesenswert?

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.

von Mathias O. (m-obi)


Lesenswert?

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           .............

von Cube_S (Gast)


Lesenswert?

Mathias O. schrieb:
> UDP Checksum hab ich auch 0
> gelassen.

Diese zwei 00 00 kann ich auf den ersten Blick nicht entdecken

von Mathias O. (m-obi)


Lesenswert?

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
von F. F. (foldi)


Lesenswert?

Mathias O. schrieb:
> Aber bei meiner Anwendung kommt es nicht an.

Aber bei der NSA ... :-)

von Mathias O. (m-obi)


Lesenswert?

Das ist mir egal. Ich hab nix zu verheimlichen.

von Mathias O. (m-obi)


Lesenswert?

Ich habs. Identification muss 0 sein.

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.