MX10: UDP Paketen vom Zentrale kommen nicht an

Post Reply
rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 31.10.2018, 10:03

Moin,

ich spreche das Thema hier nochmals an weil WireShark die UDP Pakete, welche der MX10 sendet, auflistet, aber über normale Sockets nicht rein kommen.
Im angehängte ScreenShot sieht man das der Checksum fehlt:
Screenshot 2018-10-31 at 08.27.47.png
Wie WireShark es dann doch schaft diese UDP Pakete zu zeigen übersteigt mein Socket Kenntnis.
So weit ich im Internet finden kann gibt es nur Socket Optionen um Checksum Null zu senden, aber beim Empfang spielt da das Betriebsystem vielleicht nicht mit.
Ein UDP Paket mit Checksum Zero scheint noch zulässig zu sein, aber wenn es ganz weggelassen wird...???

Diese Wahrnehmung habe ich auch der Zimo Entwickler per Email gesendet.

Nachtrag: Der Roco Z21, verwant mit Zimo, setzt der Checksum korrekt und kommt dann auch in Rocrail an.
Screenshot 2018-10-31 at 10.34.46.png
Also, UDP ohne Checksum, 0, kommen bei normale Programme nicht an.
https://en.wikipedia.org/wiki/User_Datagram_Protocol#Checksum_computation wrote:If the checksum calculation results in the value zero (all 16 bits 0) it should be sent as the one's complement (all 1s).
You do not have the required permissions to view the files attached to this post.

rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 31.10.2018, 15:00

Hallo,

also, der MX10 schickt immer UDP ohne Checksum um, laut Zimo Entwickler, CPU Leistung zu sparen...
(das MX10 hat gerade mal einen Cortex-M3 und muss JEDES Bit selber berechnen)
Ich kann kein Unterschied in die UDP Daten entdecken zwischen 192.168.1.x und 192.168.100.x.
Beim erste kommen die UDP Pakete an, beim zweite nicht.
In beide Segmenten sind die Paket mit WireShark sichtbar, nur im 192.168.100.x dauert es lange bevor man endlich ein Paket von der MX10 sieht.
Vielleicht gibt es unterschiedliche Regeln für diese beide Segmenten, aber ich bin mit mein Latein am ende... Netzwerk Profis sind jetzt gefragt.

aling
Posts: 232
Joined: 15.06.2012, 11:50
Location: Ruhrgebiet

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by aling » 31.10.2018, 15:15

Hallo,

ich kenne UDP ohne Checksum nur mit 0 als Checksum. Das Feld muss nach meiner Meinung immer übertragen werden. Eine 0 als Checksum wird daher ja auch als all 1 übertragen damit eben bei der 0 klar ist das hier keine berechnet wurde. Vielleicht sollten die Jungs bei Zimo mal die entsprechenden RFC lesen.

@Rob
Wireshark liest jedes Paket über einen Speziellen Modus. Da kommen dann auch Pakete mit falscher oder fehlender Checksum oder verstümmelte Pakete an.

rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 31.10.2018, 15:27

Hi Achim,

nur ist es rätselhaft das es mit bestimmte IP Ranges doch ankommt mit checksum 0.
Der Z21 sendet immer ein korrekte checksum und kommt auch in 192.168.100.x an.

Um Zeit herein zu stecken um diese falsche Pakete doch in Rocrail bekommen zu können, ist IMHO ein Fehlinvestition. (Hast du ja auch nicht vorgeschlagen: Zimo muss ran.)

bertc3p0
Posts: 219
Joined: 25.04.2012, 20:19
Location: near Frankfurt Germany

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by bertc3p0 » 31.10.2018, 16:12

Hallo Rob,

auch wenn das eigentlich ein Thema von Zimo* ist - Du kannst es ja mal mit der Socket Option SO_NO_CHECK versuchen:

Code: Select all

int disable = 1;
if (setsockopt(sock, SOL_SOCKET, SO_NO_CHECK, (void*)&disable, sizeof(disable)) < 0) {
    perror("setsockopt failed");
}
Zumindest für IPv4 lässt sich diese Option nutzen.

Gruß

Gerd

* Ich denke, die Checksum Berechnung lässt sich sehr gut optimieren.

aling
Posts: 232
Joined: 15.06.2012, 11:50
Location: Ruhrgebiet

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by aling » 31.10.2018, 16:28

Hallo Gerd,

SO_NO_CHECK ist eigentlich für den Sender gedacht damit 0x0000 als Checksum übertragen wird. Der Empfänger erkennt ja die fehlenden Checksum an der 0x0000. Aber probieren kann man das ja mal. Ist nur die Frage ob die Betriebssystem da alle gleich reagieren.

rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 31.10.2018, 16:53

Hallo,

diese Option ist nur für Senden, und hat beim Empfang keine Bedeutung.

Ich bekomme von Zimo bald ein Test Firmware mit Checksum.
Wenn das dann Tatsächlich funktioniert gibt es ein Problem:
Zimo wrote:Blöd wär natürlich, wenn da nur die mit berechneter Checksumme funktioniert.
Denn dann müsste ich da im MX10 eine Option einbauen und die Anzahl der möglichen Clients drastisch reduzieren.
Nicht ohne Grund fängt die Z21 ja ziemlich zu spinnen an, wenn da mehr als 4 Clients echt Trafik machen, …

bertc3p0
Posts: 219
Joined: 25.04.2012, 20:19
Location: near Frankfurt Germany

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by bertc3p0 » 31.10.2018, 17:32

Hallo Rob,
rjversluis wrote:Hallo,

diese Option ist nur für Senden, und hat beim Empfang keine Bedeutung.
bist Du sicher ?:
(How to disable udp checksum control in kernel)
If you can’t receive udp packets in your udp server application while you’re seeing packets in tcpdump/wireshark session, you should think about UDP checksum control in Linux kernel.
...
If you have the same problem and you want to disable UDP checksum control only for your udp server application not the kernel in general, you can use SO_NO_CHECK socket option to related udp socket fd in your application as below: ...


Gruß

Gerd

rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 31.10.2018, 17:44

Hi Gerd,

vielleicht, aber es sollte auch unter macOS und Windows funktionieren.
Es gab mal eine Option unter macOS, aber diese ist weg. (Ab IP6 ist es sowieso nicht mehr zulässig.)
Grundsätzlich will ich mit Rocrail kein Konkurrenz mit WireShark angehen, und will mich auf normale/zulässige UDP Pakete verlassen können.
Weil der Z21 auch über diese gleiche UDP 'hin und her' kommuniziert, egal über welches Netzwerk segment, gehe ich erst mal davon aus das Rocrail nicht der ShowStopper ist.
Auch der Mä CS2/3 verwendet diese Kanäle; Funktioniert bis jetzt.

Wenn man eine neue Zentrale entwickelt, sollte man Basis Funktionen im Kauf nehmen, auch wenn es weh tut...

rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 01.11.2018, 08:52

Hallo Gerd,

ich habe diese socket option mal ein gebaut; Hilft nichts.
https://stackoverflow.com/questions/140 ... -checksums

Auch Microsoft hat es so dokumentiert:
https://docs.microsoft.com/en-us/window ... et-options
UDP_NOCHECKSUM wrote:When TRUE, UDP datagrams are sent with the checksum of zero. Required for service providers. If a service provider does not have a mechanism to disable UDP checksum calculation, it may simply store this option without taking any action. This option is not supported for IPv6.

Gartenbahner
Posts: 5
Joined: 12.10.2018, 19:59
Location: Petershagen, NRW

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by Gartenbahner » 14.11.2018, 08:24

Hallo Rob,

von ZIMO (Hrn. Hubinger) kam die Info, dass das IP-Adressbereichsproblem mit der Beta-FW 1.24.0006/0008 behoben sein soll. Bin da skeptisch, da ich davon ausgehe, dass Du auch diese Versionen schon ausprobiert hast.

Gruß
Jürgen

rjversluis
Site Admin
Posts: 37179
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: MX10: UDP Paketen vom Zentrale kommen nicht an

Post by rjversluis » 14.11.2018, 08:44

Hi Jürgen,

ich warte vom Entwickler noch auf ein Test Version wobei dann der UDP Checksum gesetzt wird wie es vorgeschrieben ist weil mit Checksum=0 kommen die Pakete nicht an.
Der Entwickler lässt diese vorgeschriebene checksum weg um CPU Last zu sparen...
Er befürchtet eine massive eingrenzung von angeschlossene MX32 wenn er diese checksum berechnen muss... Echt Geil diese Firmware...

Post Reply

Return to “Zentralen (DE)”