Not logged inOpenClonk Forum
Up Topic General / Help and Questions / Who coded UDP hole punching?
- - By Tyron [lv] Date 2018-02-26 08:24
Heya! ^_^
Great work the editor update! I hope you'll make a few tutorial videos on it for new users.

I've got a burning question - who coded the udp hole punching update, and if you are reading this, can I hire you to add TCP hole punching to my voxel game? :D
I can code it myself but I much rather like to have someone with knowledge of the topic implement it so I can focus on other tasks.

For more information on my game: https://www.vintagestory.at
Parent - - By Caesar [jp] Date 2018-02-26 15:44
Luchs and Isilkor (I think) made the IPv6 stuff, the extension of UDP hole punching is by me. Luchs was talking about TCP hole punching, but I have doubts that that can work.

UDP hole punching is fairly simple though. You first connect to an external server to figure out the external IP and whether the NAT router changes the source port. Then you have all participants establish connections to each other at the same time to the known external IP/ports. (Conveniently, that external server can coordinate that.)
Parent - - By Tyron [lv] Date 2018-02-26 16:33
According to the wiki, TCP hole punching should work just the same: https://en.wikipedia.org/wiki/TCP_hole_punching

Would be interested to implement this for me in C#, paid that is? (including the external server to handle the client2client negotiation)
Parent - - By Caesar [jp] Date 2018-02-27 00:13
I'm a little bit interested, but in an utter lack of time. If your network implementation isn't as complex as OC's, you might just go for using ICE. That should give you a ready-made server and the magic you need.

Jusy for my understanding: if you use TCP, you do not get to pick your source port, as non-root user, and you get a new one for every connection? That sounds like it would make port prediction difficulty. Also, a firewall may get smart and deny an incoming SYN on an outgoing connection. Does e.g. iptables do this?
Parent - By Tyron [lv] Date 2018-02-27 07:34
Okay, let me know if your time situation changes :)
I did not look up the details on TCP hole punching so I don't know how about its challenges and issues. UDP hole punch would also be possible, if someone has the time to implement a udp layer. Currently it only runs on TCP. I'd prefer to put the networking part in capable hands and not worry about it myself ^_^
Parent - - By K-Pone [de] Date 2018-02-26 18:16

>I hope you'll make a few tutorial videos on it for new users.


I actually have plans for that. I'm currently just working on what to cover in the tutorials and what to do first.
Parent - By Tyron [lv] Date 2018-02-27 21:56
Neat!
Parent - - By Sven2 [us] Date 2018-02-28 06:03
Are you already supporting uPNP? I think that's relatively easy to implement (just use a library) and could help a lot of customers with their ports already.
Parent - By Tyron [lv] Date 2018-02-28 08:52
Oh no, I'm not. I'll definitely take a look at that. Thank you for the suggestion Sven!
Up Topic General / Help and Questions / Who coded UDP hole punching?

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill