It has been the paradigm for a very long time, that if you want to host games in a NAT, you have to forward your ports. libupnp has changed that a bit, but it doesn't seem like it changed the situation for many. We also have a UDP holepunching solution, but that only works in very rare cases.
I saw these test results hanging at the chair I worked at for a while, and it seems like there is room for improvement for us. I'm currently considering several options:
* Implement a more powerful UDP holepunching. That would need a way for the Masterserver/netpuncher server to send packets to a host, on the clients request. The host is already permanently connected to the netpuncher, so that is not a big deal. (The client would request the host to connect to him, while the client connects to the host at about the same time. I've already tried that in a test implementation and it worked nicely with my router and a few others, for which the current implementation is useless.)
* Using STUN (Session Traversal Utilities for NAT). From what I grasped, STUN is a framework for recognizing NAT types and establishing connections based on that, using Holepunching or other means. The problem I see here is that I can't find well-maintained and documented libraries. A maybe more complete solution is ICE, but I think that needs servers to be actually of more use than STUN.
* Using NAT-PMP, which is apparently an an alternative to UPnP. I don't think it will be of much use, but it might just be as easy as switching to a different UPnP library.
Currently, the homemade implementation is my favorite. Does anyone have opinions regarding that?
I saw these test results hanging at the chair I worked at for a while, and it seems like there is room for improvement for us. I'm currently considering several options:
* Implement a more powerful UDP holepunching. That would need a way for the Masterserver/netpuncher server to send packets to a host, on the clients request. The host is already permanently connected to the netpuncher, so that is not a big deal. (The client would request the host to connect to him, while the client connects to the host at about the same time. I've already tried that in a test implementation and it worked nicely with my router and a few others, for which the current implementation is useless.)
* Using STUN (Session Traversal Utilities for NAT). From what I grasped, STUN is a framework for recognizing NAT types and establishing connections based on that, using Holepunching or other means. The problem I see here is that I can't find well-maintained and documented libraries. A maybe more complete solution is ICE, but I think that needs servers to be actually of more use than STUN.
* Using NAT-PMP, which is apparently an an alternative to UPnP. I don't think it will be of much use, but it might just be as easy as switching to a different UPnP library.
Currently, the homemade implementation is my favorite. Does anyone have opinions regarding that?
Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill