0

I'm having problem with UDP communication between Linux/Windows machines. I implemented a simple P2P communication protocol over UDP using a relay server. It uses UDP hole punching to eliminate role of server in data transfer. Data transmission between peers and server are on TCP while data is sent on UDP between peers.

Everything works fine when using Linux machines on both sides. But using Windows, program refuses to establish a TCP connection with server. I turned both firewall and anti virus protection off and tried again. Then connection between peer and server established successfully but no UDP packets was sent between peers.

I'm using Cygwin to compile program on Windows. Source code is plain C with (traditional sockets. nothing special)

Is this something related to protocol or firewall? How can I check ?

sorush-r
  • 10,490
  • 17
  • 89
  • 173
  • You have to remember that UDP is completely unreliable. The Windows driver could just be slightly different than the Linux one, causing the packets to not go through. – Linuxios Jun 20 '13 at 15:14
  • OK, I installed wireshark to see what happens to packets. Surprisingly, it works fine between my Windows installation on PC and Linux on laptop... I'm using home internet (so both laptop and PC are behind same NAT). Why it works without any change to firewall while it does not work on other Windows computers (another city)? I'm more confused now... Any ideas? – sorush-r Jun 20 '13 at 15:18

0 Answers0