UDP Multicast: 1. Paket hat keine gültige Checksumme.

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Gaius
User
Beiträge: 4
Registriert: Mittwoch 14. November 2012, 11:35

Hallo zusammen,

ich habe folgendes Problem:
ich muß UDP-Pakete im Multicast senden, um ein KNX-Gateway anzusteuern.
UDP-Pakete werden, wohl wegen dem fehlenden Handshake, doppelt gesendet. Mit Wireshark sehe ich nun, daß das erste der beiden Pakete im IP-Header eine ungültige Checksumme hat (0x0000), das 2. Paket ist aber vollkommen in Ordnung.

Das ist mein Code:

Code: Alles auswählen

import socket

IPADDR = '224.0.23.12'    # Multicast Adresse
PORT = 3671

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.bind(('0.0.0.0', PORT))
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
sock.sendto('0610053000112900bce0fffe0064010081'.decode('hex'), (IPADDR, PORT) );
sock.close()
Hat Jemand eine Idee, was das sein könnte? Mir fällt nichts mehr ein. :K
Vielen Dank für Eure Aufmerksamkeit.
Gaius
User
Beiträge: 4
Registriert: Mittwoch 14. November 2012, 11:35

Was ich zu erwähnen vergaß:
das ganze läuft unter Win7 auf Python 2.7.3.

Danke
Gaius
User
Beiträge: 4
Registriert: Mittwoch 14. November 2012, 11:35

Hallo,

kann denn Niemand das oben beschriebene Verhalten verifizieren?
Da nur ein Paket abgeschickt wird, braucht man dazu auch keine Gegenstelle.
Wäre nett, wenn das mal Jemand ausprobieren würde.

Danke.
BlackJack

@Gaius: Bei mir wird pro Programmaufruf nur ein Paket geschickt. Und das hat auch eine korrekte Prüfsumme im IP-Header.
Gaius
User
Beiträge: 4
Registriert: Mittwoch 14. November 2012, 11:35

Danke für Deine Nachricht.
Das ist ja seltsam; ich war der Meinung das 2. Paket würde von irgendeiner Übertragungsschicht dazu gemogelt, da auch die von mir abgefangenen fremden UDP-Pakete immer doppelt geschickt wurden.
Aber vielen Dank, jetzt kann ich an anderer Stelle suchen.

Grüße,
Gaius
Antworten