0

I'm trying to send some UDP packets to a server. I use Wireshark to monitor my activity. When I send a packet, wireshark tells me my header checksum is incorrect.

wireshark

At the wireshark preferences the option "Validate the UDP chechsum if possible" is disabled.

this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
this.destination = new IPEndPoint(IPAddress.Parse("***.***.***.***"), 80);

this.socket.Connect(this.destination);
this.socket.Send(Encoding.ASCII.GetBytes("foo"));
this.socket.Shutdown(SocketShutdown.Both);
this.socket.Disconnect(true);

Did I forgot something? Do I need to set specific options? Help is much appreciated!

2
  • @leppie: whats wrong with port 80? Commented Dec 16, 2011 at 11:23
  • @leppie: I'm pretty sure SSDP uses something similar - essentially something like HTTP over UDP (it's definitely not RFC2616, hence "something like HTTP"): en.wikipedia.org/wiki/… Commented Dec 16, 2011 at 11:25

1 Answer 1

3

Known issue - note the "maybe caused by IP Checksum offload". From the Wireshark wiki:

Most modern operating systems support some form of network offloading, where some network processing happens on the NIC instead of the CPU.
[...]
On systems that support checksum offloading, IP, TCP, and UDP checksums are calculated on the NIC just before they're transmitted on the wire. In Wireshark these show up as outgoing packets marked black with red Text and the note [incorrect, should be xxxx (maybe caused by "TCP checksum offload"?)].

The page also lists how to disable this feature for your specific OS.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.