Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (429)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (467)
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 1682 times)
0 Members and 1 Guest are viewing this topic.
Offline kevglass

JGO Kernel


Medals: 85
Projects: 22


Coder, Trainee Pixel Artist, Game Reviewer


« Posted 2003-08-08 07: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 192.168.0.1:54321 and send out packets, the outside world might see your address as bob.myip.com... but would the port be arbitary, or kept at 54321 ?

Thanks for any help,

Kev

Offline davidaprice

Junior Member





« Reply #1 - Posted 2003-08-08 07: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 09: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!

http://wiki.java.net/bin/view/Games/JeffFAQ
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline kevglass

JGO Kernel


Medals: 85
Projects: 22


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #3 - Posted 2003-08-08 11: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

Kev

Offline davidaprice

Junior Member





« Reply #4 - Posted 2003-08-10 08: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 Kernel


Medals: 85
Projects: 22


Coder, Trainee Pixel Artist, Game Reviewer


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

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

Kev

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

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (81 views)
2014-04-15 18:08:23

BurntPizza (73 views)
2014-04-15 03:46:01

UprightPath (84 views)
2014-04-14 17:39:50

UprightPath (67 views)
2014-04-14 17:35:47

Porlus (84 views)
2014-04-14 15:48:38

tom_mai78101 (107 views)
2014-04-10 04:04:31

BurntPizza (167 views)
2014-04-08 23:06:04

tom_mai78101 (263 views)
2014-04-05 13:34:39

trollwarrior1 (214 views)
2014-04-04 12:06:45

CJLetsGame (223 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org 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‑gaming.org
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!