1

I have one specific Ubuntu VM on my network that won't send UDP packets with a data length below 12 bytes. E.g:

"HelloWorld123" gets sent.

"HelloWorld" does not get sent.

I tried all kinds of different methods, all to the same outcome.

All these packets get sent:

printf 'HelloWorld123' | nc -u 192.168.20.49 30303
echo -n 'HelloWorld123' > /dev/udp/192.168.20.49/30303
php udp_send.php 192.168.20.49 30303 "HelloWorld123"

All these packets do not get sent on this one machine:

printf 'HelloWorld' | nc -u 192.168.20.49 30303
echo -n 'HelloWorld' > /dev/udp/192.168.20.49/30303
php udp_send.php 192.168.20.49 30303 "HelloWorld"

On every other machine in my network (older Ubuntu VMs and Windows machines) all packets get sent, no matter how many bytes long (as expected).

I need this as a specific piece of hardware needs a UDP packet 11 bytes long (see my original question on Stack Overflow)

Wireshark logs all packets as if they're sent correctly:

# 'HelloWorld123' entry:
537 11.677245720    192.168.20.8    192.168.20.49   UDP 55  51956 → 30303 Len=13

# 'HelloWorld' entry:
207 5.684951175 192.168.20.8    192.168.20.49   UDP 52  58603 → 30303 Len=10

Anyone have a clue what's going on here? A bug in Ubuntu's latest UDP checksum generation for messages below 12 bytes? How could I find out more about who's rejecting these UDP packets in the end?

2
  • 1
    Your title is pretty confident that packets don't get sent, but then in the body of the question you state that "Datashark"(btw, what is this? I know Wireshark, but not Datashark) says they DO get sent and even hypothesize about these packets being rejected on the receiving side. In these cases it's very important to be clear with your language. Do they get sent or not? Is the problem on the submitting side, or on the receiving side?
    – mtak
    Commented Aug 17, 2022 at 14:15
  • @mtak: You're right, I don't have a clue where the problem lies, so I changed the title. I also corrected Datashark to Wireshark.
    – fseydel
    Commented Sep 2, 2022 at 11:19

1 Answer 1

1

It was caused by a bug in Microsft VM regarding checksum creation. See here for details: WSL issue and workaround on StackOverflow

1
  • 1
    Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Nov 7, 2022 at 16:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .