UDP und Java?

Gast #1018879
Lesenswert?

Moin,

ich habe eine Mikrocontroller-Anwendung gebaut, die Daten per Ethernet 
versendet. Als Protokoll habe ich dabei UDP implementiert. Nun 
funktioniert dies hinreichend gut, mit einem Netzwerkmonitor kann ich 
die Pakete empfangen und dieser zeigt auch an, dass sie richtig 
aufgebaut sind. Ein Java-Programm, dass ich zu ihrem Empfang 
programmiert habe, bekommt allerdings keine Daten.
Nun verwende ich das Checksum-Feld des UDP-Headers nicht, weil ich es 
moeglichst einfach halten wollte. Kann es damit zusammenhaengen? Oder 
sperrt eventuell die Firewall mich einfach aus, der Netzwerkmonitor kann 
die Daten aber dennoch erst einmal empfangen? (War schwierig 
rauszufinden, weil es ein Uni-Rechner war und ich nicht einfach die 
Firewall ausstellen konnte.)
Oder gibt es da Java-spezifische Probleme?

Danke und Gruss, Joern
Persönliche Seite #1018982
Lesenswert?

Joern wrote:
> Oder gibt es da Java-spezifische Probleme?
>
Wieso sollte es "Java-spezifische Probleme" geben? Das Problem wird 
sein, das der Layer welcher für UDP zuständig ist ob der 
fehlenden/falschen Prüfsumme das Paket verwirft.
Wobei falsch noch gehen könnte aber weglassen halte ich für keine Gute 
Idee ;)
Du mußt auch sichergehen das der Port korrekt ist sowie die Zieladresse.
Gast #1019008
Lesenswert?

Danke erstmal! Eigentlich glaube ich, dass meine Pakete richtig sind. 
Ich hatte anfangs einige Probleme mit der Endianess und infolge falsche 
Pakete. Das hat auch mein Netzwerkmonitor angezeigt, der nun aber die 
Pakete fuer richtig haelt. Zum Thema Pruefsumme im UDP-Header habe ich 
folgendes bei wikipedia gefunden:

"In dem Prüfsummenfeld kann eine 16 Bit große Prüfsumme mitgesendet 
werden. Die Prüfsumme wird über den Header, den so genannten 
Pseudo-Header und die Daten gebildet. Die Prüfsumme ist optional, wird 
aber in der Praxis fast immer benutzt (falls nicht, wird diese auf "0" 
gesetzt)."

Nun wundere ich mich, ob Java das vielleicht strenger sieht oder ob 
einfach nur die Firewall meine Pakete abfaengt. Wuerden sie in letzterem 
Falle trotzdem vom Monitor angezeigt??
Und wie koennte ich die Firewall ueberreden, die Verbindung zuzulassen? 
Erstmal vom Computer aus Pakete schicken anstatt einfach auf welche zu 
warten?

Gruss, Joern
Gast #1019083
Lesenswert?

Fehlerhafte Prüfsummen beim UDP-Protokoll werden AFAIK vom IP-Stack
des OS ignoriert, d.h. die Applikation muss sich da selber kümmern.
Das Paket sollte also ankommen, egal ob UDP-Prüfsumme ok oder nicht.

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