Torque & IPv6
by Sid Clink · in Technical Issues · 02/08/2005 (1:10 pm) · 10 replies
Is there any capability in the Torque networking system to support IPv6? I've been searching for it, but haven't been able to find anything relating to IPv6. If there is no capability, are there any plans to support it?
About the author
#2
02/08/2005 (1:41 pm)
Let windows worry about IPV6 at the O/S level. Your torque based games should work fine if / when people transition. What specifically are you concerned with?
#3
I may have answered my own question there... it may simply be up to the application, not the networking engine.
02/08/2005 (4:59 pm)
Well, if you want to connect to a game server via IP address, the application needs to have enough fields to put in a IPv6 address. Hopefully, you'd normally use a DNS address (because v6 addressing is so nasty), but a local LAN game may not have a DNS server set up.I may have answered my own question there... it may simply be up to the application, not the networking engine.
#4
XP, Unix, Linux, Mac OS X all support IPv6 natively, out of the box. There are IPv6 stacks for most other OSs, including Win98. Not sure on 95.
Eh ? It doesnt work like that, unfortunately. Network code needs to be updated in any program (be it a game or application, whatever) to support IPv6. The socket API is slightly different for IPv6 due to the increased length of the addresses.
The problem is this: Most IPv4 only software (including Torque) assume that an IP address is 32 bits. An IPv6 address is 128bits. To make Torque IPv6 capable requires someone going through not only Torque but the master server as well, and checking every single place that Torque stores or references IP addresses and updating it to the IPv6 way of doing things. It's a big job.
In short: An application designed to use IPv6 from the start is easy to write keeping backwards compatibility with IPv4. Converting an application designed for IPv4 to work with IPv6 can be hard or easy, and it mostly depends on how IP addresses are stored and used in that application.
Also, IPv6 DNS lookups do not use the same DNS records as IPv4. You cannot lookup an IPv6 address in software designed to use IPv4 without modifying the software to do so.
I dont really see why it's a problem. IPv6 isnt going to get you any advantage in the short term, and it's still a long way off becoming mainstream.
If you really want to persist down this route then I would strongly advise reading up on IPv6. There is a lot of good resources on the net for it, but you'll probably need to know a fair bit of IPv4 networking to understand it.
T.
02/09/2005 (12:33 am)
No, Torque doesnt support IPv6XP, Unix, Linux, Mac OS X all support IPv6 natively, out of the box. There are IPv6 stacks for most other OSs, including Win98. Not sure on 95.
Quote:Let windows worry about IPV6 at the O/S level. Your torque based games should work fine if / when people transition. What specifically are you concerned with?
Eh ? It doesnt work like that, unfortunately. Network code needs to be updated in any program (be it a game or application, whatever) to support IPv6. The socket API is slightly different for IPv6 due to the increased length of the addresses.
The problem is this: Most IPv4 only software (including Torque) assume that an IP address is 32 bits. An IPv6 address is 128bits. To make Torque IPv6 capable requires someone going through not only Torque but the master server as well, and checking every single place that Torque stores or references IP addresses and updating it to the IPv6 way of doing things. It's a big job.
In short: An application designed to use IPv6 from the start is easy to write keeping backwards compatibility with IPv4. Converting an application designed for IPv4 to work with IPv6 can be hard or easy, and it mostly depends on how IP addresses are stored and used in that application.
Also, IPv6 DNS lookups do not use the same DNS records as IPv4. You cannot lookup an IPv6 address in software designed to use IPv4 without modifying the software to do so.
I dont really see why it's a problem. IPv6 isnt going to get you any advantage in the short term, and it's still a long way off becoming mainstream.
If you really want to persist down this route then I would strongly advise reading up on IPv6. There is a lot of good resources on the net for it, but you'll probably need to know a fair bit of IPv4 networking to understand it.
T.
#5
02/09/2005 (1:58 pm)
The reason I'm interested is that I work in a simulation lab, where we're looking at developing a Torque-based simulation. The lab is using mixed IPv6 and v4, but encourage ipv6-based applications.
#6
02/09/2005 (3:29 pm)
In that case, with a bit of sweat and some reading you can probably make it work. There's a load of info on the net about porting from v4 to v6, and a few tools that help find sticky issues. They wont find everything, but they are a useful start.
#7
In addition to switching API's and the storage format for the address, one must also worry about UI. In particular, colons are used to separate 16-bit words in the text representation of IPv6 addresses, but the colon is currently used to separate the IPv4 address from a port specifier. Torque isn't the first to do this, so looking at how other apps deal with this problem would help. One approach is to follow the SMTP standard of delimiting raw addresses with brackets, so that the colon separating the address from the port goes outside the brackets.
As long as one is going to rework the network layer, one should probably also extend the UDP support to allow multiple UDP sockets.
04/26/2005 (11:30 am)
I just took a peek at this, given the ease of setting up IPv6 tunneling in Fedora Core Linux. IPv6 is also getting popular in places growing short of addresses, like Japan.In addition to switching API's and the storage format for the address, one must also worry about UI. In particular, colons are used to separate 16-bit words in the text representation of IPv6 addresses, but the colon is currently used to separate the IPv4 address from a port specifier. Torque isn't the first to do this, so looking at how other apps deal with this problem would help. One approach is to follow the SMTP standard of delimiting raw addresses with brackets, so that the colon separating the address from the port goes outside the brackets.
As long as one is going to rework the network layer, one should probably also extend the UDP support to allow multiple UDP sockets.
#8
04/26/2005 (12:36 pm)
TNL appears to be designed with IPv6 in mind, though I don't know if it's functional. I was just noticing yesterday that there are address spaces for IPv6 (or at least they were mentioned in the documentation). Since my focus has been more in the single-player arena, I haven't paid much attention to it. I was more interested in harvesting Mac addresses when I initially was looking at the code.
#9
Does TNL have SRV DNS support? That would be a natural way for more savvy server admins to name their servers, since it includes a port number in the record.
04/29/2005 (9:20 am)
Does TNL have any UI code to deal with IPv6? How are address/port pairs displayed?Does TNL have SRV DNS support? That would be a natural way for more savvy server admins to name their servers, since it includes a port number in the record.
Torque Owner Matt Harpold
It shouldn't be too hard to add it, if you've done networking code before.
(But I havn't seen any plans to support it)