Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
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 1430 times)
0 Members and 1 Guest are viewing this topic.
Offline kevglass
« League of Dukes »

JGO Kernel


Medals: 54
Projects: 20


Mentally unstable, best avoided.


« 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
« League of Dukes »

JGO Kernel


Medals: 54
Projects: 20


Mentally unstable, best avoided.


« 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
« League of Dukes »

JGO Kernel


Medals: 54
Projects: 20


Mentally unstable, best avoided.


« 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.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

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

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (121 views)
2013-05-17 21:29:12

alaslipknot (129 views)
2013-05-16 21:24:48

gouessej (159 views)
2013-05-16 00:53:38

gouessej (150 views)
2013-05-16 00:17:58

theagentd (164 views)
2013-05-15 15:01:13

theagentd (149 views)
2013-05-15 15:00:54

StreetDoggy (193 views)
2013-05-14 15:56:26

kutucuk (217 views)
2013-05-12 17:10:36

kutucuk (216 views)
2013-05-12 15:36:09

UnluckyDevil (219 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.115 seconds with 21 queries.