0

In our organization, we have two test machines running Windows XP. While attempting to test a roll-my-own UDP message server, I found that both could receive small messages (under 2k) just fine. However, when I test sending large packets to both of these machines, one receives them fine, while the other can't receive them at all. Both machines have SP3 and both have their Windows Firewall shut off, but one still isn't working. Can anyone tell me where to look for anything that might be blocking or limiting the packet size on a Windows Machine? Thanks.

Tom A
  • 218
  • 1
  • 3
  • 10

3 Answers3

1

UDP is a connection-less protocol. Which roughly means that it's delivery cannot be guaranteed. The reasons for not arriving can be nearly anything. You might simply be hitting the max windows size and your packets are being thrown into the "bit-bucket". What are you using to measure the size of the packet? (are you sending wchar data instead of char data? (2-bytes vs 1-byte per-character) typically the windows-size is around 4k... which you'd run into with 2k of 2-byte characters...

If all else fails... dig out wireshark & see what is actually going down the wire.

TheCompWiz
  • 7,349
  • 16
  • 23
  • We're using it as a logging system, and don't care too much since it goes from one computer to an internal switch, and right back to the other system. The packets are set to a max of 64,000 bytes (UDP allows 64KB), so we're under the theoretical maximum and ASCII encoding, so no space doubling. Can't use Wireshark, anytime i mention anything like that internally the network guy here goes crazy. – Tom A Sep 20 '10 at 18:10
1

Are both systems on the same switch? If so, then there shouldn't normally be any drops. If they are on the same switch, then the systems can possibly monitor/sniff/wireshark themselves for possible hints.

user48838
  • 7,393
  • 2
  • 17
  • 14
  • I'm pretty sure the switch isn't the problem. I can send and receive packets of all sizes between other computers on the same and on different switches. – Tom A Sep 21 '10 at 19:29
  • 1
    That's where local Wiresharks at each end may help in gaining some insights. – user48838 Sep 22 '10 at 06:02
1

Look with Wireshark on both ends.

Also, look in the settings of the NIC driver and possibly NIC documentation. Not every NIC allows for 64k packets, some make problems with as low as 6k packets (which also count as "jumbo frames").

General advice: if you try something "new" try to keep the rest of the setup as standards-compliant as possible to avoid stacking of subtle bugs of different components. In your case this would mean ensuring a MTU of 1500 bytes until you are sure you understood the sending and receiving behaviour of your application.

knitti
  • 700
  • 6
  • 9
  • I get this problem when trying to run the "server" part of my app via an administrator account through Task Scheduler and double clicking on the "client" portion myself. I don't see any broadcasts this way. I do see them, however, if I double click on the "server" app. Is this a firewall issue? Both apps are running on the same machine so what gives? I'm using Windows 8.1 for this. – gonzobrains Jul 16 '13 at 18:09