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.
|
feedback
|
|
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. | |||
feedback
|
|
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. | |||||||
feedback
|
|
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. | |||
|
feedback
|