Hi !
Featured games (84)
games approved by the League of Dukes
Games in Showcase (593)
Games in Android Showcase (168)
games submitted by our members
Games in WIP (646)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  UDP Masquerading  (Read 2001 times)
0 Members and 1 Guest are viewing this topic.
Offline kevglass

« JGO Spiffy Duke »

Medals: 272
Projects: 25
Exp: 18 years

Coder, Trainee Pixel Artist, Game Reviewer

« Posted 2003-08-08 05:27:38 »

Odd question for this forum, but when you're using NAT with UDP, are port numbers maintained? If you open a UDP port on and send out packets, the outside world might see your address as but would the port be arbitary, or kept at 54321 ?

Thanks for any help,


Offline davidaprice

Junior Devvie

« Reply #1 - Posted 2003-08-08 05:48:40 »

In experiments I've been doing (using a PC connected over GPRS through my operator's NAT/firewall to the Internet), servers always see my IP address as that of the NAT/firewall, and see a port number assigned by the NAT/firewall (from an incrementing sequence). If I send another UDP packet within a minute or so it has the same port number, otherwise it gets a new port number (and the old NAT mapping becomes invalid). The NAT/firewall will allow the server to send UDP packets back to me through this mapping (its IP address and this assigned port number), but won't accept UDP packets through this mapping from any other server.

(It uses the same type of mapping for TCP connections, but the mapping remains valid for the lifetime of the TCP connection).
Offline Jeff

JGO Coder

Got any cats?

« Reply #2 - Posted 2003-08-08 07:24:45 »

Yep thats right.

If you want to get return packets you need to map a port on the
NAT firewall to forward UDP packets back to your machine.

Now I understand there are some recent clever NAT firewalls that watch the packets going out and attempt to guess at the mapping back the other way for you...

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline kevglass

« JGO Spiffy Duke »

Medals: 272
Projects: 25
Exp: 18 years

Coder, Trainee Pixel Artist, Game Reviewer

« Reply #3 - Posted 2003-08-08 09:21:30 »

Infact, any real gateway should do this guessing (re: Linux iptables) if you configure UDP masquerading.. but.. if the ports don't stay the same you're kinda frigged if both server and client can be behind gateways and UDP connections come up on arbitary ports..

And so.. on to the next design Wink


Offline davidaprice

Junior Devvie

« Reply #4 - Posted 2003-08-10 06:02:01 »

My limited experience matches Kev's: receiving UDP responses is no problem if they come from the same machine I sent the request to, and within a minute of my sending the request. It's easy enough to send 'keep-alive' packets to stop the mapping being lost.

If both client and server are behind this kind of firewall, then yes indeed you're stuffed. For this reason, UDP is useless for peer-to-peer phone games, at least if the NAT/firewalls behave as my operators' do (highly probable, I think).

But if the server is behind a firewall that you're able to configure (e.g. that on my home machine), you're typically able to specify some fixed UDP ports that don't get mapped, and then clients can connect to your machine no problem.
Offline kevglass

« JGO Spiffy Duke »

Medals: 272
Projects: 25
Exp: 18 years

Coder, Trainee Pixel Artist, Game Reviewer

« Reply #5 - Posted 2003-08-10 06:06:47 »

Coincidently, thats exactly what I've ended up doing Wink


Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

Riven (15 views)
2015-07-03 11:22:16

deepthought (42 views)
2015-06-30 15:39:44

deepthought (46 views)
2015-06-30 15:39:09

deepthought (56 views)
2015-06-30 15:36:52

Za\'Anzabar (26 views)
2015-06-29 05:44:54

TritonDreyja (42 views)
2015-06-24 17:10:40

CopyableCougar4 (41 views)
2015-06-23 00:34:45

BurntPizza (45 views)
2015-06-21 20:36:46

cookiecompiler (87 views)
2015-06-11 15:42:53

cookiecompiler (50 views)
2015-06-11 15:41:14
How Do I Expand My Game?
by bashfrog
2015-06-14 11:34:43

List of Learning Resources
by PocketCrafter7
2015-05-31 05:37:30

Intersection Methods
by Roquen
2015-05-29 08:19:33

List of Learning Resources
by SilverTiger
2015-05-05 10:20:32

How to: JGO Wiki
by Mac70
2015-02-17 20:56:16

2D Dynamic Lighting
by ThePixelPony
2015-01-01 20:25:42

How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21

Resources for WIP games
by kpars
2014-12-18 10:26:14 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!