For server Focus on Linux?

Discussion in 'Planetary Annihilation General Discussion' started by syox, May 12, 2013.

  1. Polynomial

    Polynomial Moderator Alumni

    Messages:
    1,680
    Likes Received:
    53
    You sure about that statement? >.>
  2. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    Yes, I am.
    Windows Vista and above have native IPv6 support, so you can use dual stack. Even if the user has chosen to deactivate the IPv6 part of the stack, you can set the IPV6_V6ONLY to 0 (this is unlike Linux or OSX where 0 is default!) to turn an IPv6 socket into a dual stack socket and it will still be able to handle IPv4, even if IPv6 handling has been deactivated.
    This option does not exist in Windows XP am I'm not sure if there is a way to achieve IPv6 support on Windows XP all together (it has been ages that I've used a Windows XP setup).

    Native IPv6 AND Dualstack support should therefor be available in Linux >=2.6, Windows NT >= 6.X (Vista, 7, 8) and OSX >= 10.5, official support since 10.7.

    You might wanna add manual 6 to 4 mapping in case you are only provided with an IPv4 socket.

    There remains only one issue, IPv6 is disabled in some setups. (This sadly happened quite alot in the Windows world since disabling IPv6 was praised as a secret way to increase performance and was even automatically performed by some tuning tools. Needless to say, that this is complete bullshit.) So no IPv6-support for users of these systems, but IPv4 via dual stack will (should) still work.
  3. sylvesterink

    sylvesterink Active Member

    Messages:
    907
    Likes Received:
    41
    Well, when writing a network stack, getting the most basic stuff working is often easier to do in IPv4, especially if you're writing from scratch. Sure it's a better idea to write the IPv6 codebase first, but in an iterative development process, getting working code tends to be the first goal, hence why IPv4 is often targeted initially.

    In any case, converting an IPv4 implementation to handle IPv6 is actually simple enough to do with a few find/replace cycles, so I don't think Uber will have all that tough a time making that jump.

    That said, I'm speaking only from Linux network programming experience here, so I can't say how well that would turn out in the Windows realm, as it's been ages since I've had to do network coding for Windows.
  4. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    There is not much difference when using IPv6 straight away. Right now, I can think only of three differences. One is the use of multicast instead of broadcast for a possible server announcement in a local network, the second would be output formating, and then there is the fact that a hostname can be resolved into both an IPv4 and IPv6 address and you might have to test both protocols.
    Thats it, nothing more.

    If you decide to switch from IPv4 to IPv6 later on (and you have stored IP addresses in 32bit integers and alike) theres possibly much more which needs to be reworked.
  5. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    Keep in mind this is a recycled network stack so we haven't done any work on it for this project at this point. IPV6 is a good thing that we want to support but compared to literally a million other things it's not bubbling up at the moment.
  6. Polynomial

    Polynomial Moderator Alumni

    Messages:
    1,680
    Likes Received:
    53
    This all sounds so nice on the software level ;)
  7. antillie

    antillie Member

    Messages:
    813
    Likes Received:
    7
    As a network engineer I feel that IPv6 support should be on the road map for all major internet aware applications. While supporting IPv6 pretty much limits you to Vista/7/8 in the Windows world this isn't really much of an issue these days. Linux and OSX have had IPv6 support for ages and many ISPs are even offering it, although mostly in the business class market at the moment. Even home routers are starting to add support at a pretty good rate.

    However it is safe to assume that people who want to play PA online will have an IPv4 capable internet connection for the next couple of years at least. (With the possible exception of people in Asia.) So shipping PA without IPv6 support won't be a big deal really. IPv6 doesn't really let you do anything new or special that you couldn't do with IPv4 from an application developer's standpoint anyway.

    As long as IPv6 support is added to PA in a post release patch at some point I will be happy.

    I don't see any point in bothering with 6to4 mapping, NAT-PT, teredo tunneling, or any of the other "transitional" technologies. They are all just as much of a pain as implementing native IPv6 and each have their own very annoying limitations so you might as well just go native from the start. Although in 6in4 is certainly useful.

    As (probably) one the very few people on these forums that has a fully v4/v6 dual stacked network with real native IPv6 addresses and a dual stacked internet connection I will be more than happy to help test any IPv6 support that Uber may add to PA in the future.

    I am actually rather curious what the alpha version of PA will do when I point it to a server on my LAN using a DNS name that returns both an A and a AAAA record.
    Last edited: May 15, 2013
  8. antillie

    antillie Member

    Messages:
    813
    Likes Received:
    7
    Indeed. Its not until you realize that you have over 10,000 live production devices that implement the entire TCP/IP stack in hardware DSPs which are all hardwired for 32 bit addresses that deploying IPv6 in an enterprise starts to get interesting.
  9. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    IPV6 is definitely on the roadmap. As usual it's all about priorities.
  10. Polynomial

    Polynomial Moderator Alumni

    Messages:
    1,680
    Likes Received:
    53
    <----- IT Management Master's guy ;)
  11. hostileparadox

    hostileparadox Well-Known Member

    Messages:
    1,186
    Likes Received:
    151
    Can't wait until I finish my applied networking class to understand most of what this means :lol:
  12. Polynomial

    Polynomial Moderator Alumni

    Messages:
    1,680
    Likes Received:
    53
    It means we physically ran out of IPv4 addresses and IPv6 is the new thing. But getting both addresses to work with each other through software and hardware is a massive massive headache.
  13. hostileparadox

    hostileparadox Well-Known Member

    Messages:
    1,186
    Likes Received:
    151
    Going to go build some network cables today.
    [​IMG]
  14. bmb

    bmb Well-Known Member

    Messages:
    1,497
    Likes Received:
    219
    linux might have better perf because you can make a more barebones install of it

    but it might not matter in practice unless it's a custom cut down version of gentoo or something
  15. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    Better performance has nothing to do with barebone or not, at least not in this case.
    It is simply a fact, that the Linux kernel causes less overhead in several situations which can mean a heavy performance boost in applications which are limited by calls to the OS API (network stack, memory allocation, scheduling).

    This is not unlikely OpenGL vs DirectX as Valve (you know, Steam developers) had to notice lately. DX is bloated in many ways and will never achieve the same performance as OpenGL due to flaws in the architecture. Sure, they were able to catch up a bit by communicating their experiences back to the developers of the DX drivers (Nvidia and AMD), but OpenGL still kicks *** performance wise. Read this if you want to know more about that topic.

    Main issue in the Windows world is, that none of the Windows developers care about optimizing existing parts which is for two reasons: First, the always live in fear that they could possibly break something (and even if they just fixed a misbehavior which has has been adapted as feature) and second, a 1-2% overall performance gain sells not as well as simply developing new features or a new API which (should) overcome the shortcomings of the old API.
    This is unlike the open source world where each single 1-2% performance gain in established systems is welcomed, and there are hundreds of these improvements every year in the Linux kernel, but in return there is much more resistance when introducing new features.
  16. Col_Jessep

    Col_Jessep Moderator Alumni

    Messages:
    4,227
    Likes Received:
    257
    I LOLed.
  17. antillie

    antillie Member

    Messages:
    813
    Likes Received:
    7
    While I can't speak to OpenGL vs DirectX I can attest that in the enterprise space the Linux vs Windows thing has nothing to do with performance. Its all about what platform features you need and what your development teams are more comfortable working with or what platform your application vendor supports.

    If you need more performance you can always buy faster hardware and/or more hardware. The performance difference between Windows and Linux on headless servers is essentially non existent given identical hardware.

    Once you get into serious enterprise grade stuff its more about offloading your SSL/IPSec to hardware accelerators, balancing your traffic properly among one or more farms of servers, organizing your vlan topology to fit your traffic flow patterns, making sure your application is able to take full advantage of all the available CPU cores in each server, making sure the network communication portions of the application are as efficient as possible to keep bandwidth usage down, and having a proper HA solution in place. Windows and Linux can both live in such an environment just fine and which one you pick has essentially no impact on performance on its own.
  18. ticklemeelmo

    ticklemeelmo Member

    Messages:
    145
    Likes Received:
    1
    You sir, clearly work in enterprise. The name of the game is easy of use and serviceability. As we all know Linux is only free if your time is worthless. :)
  19. antillie

    antillie Member

    Messages:
    813
    Likes Received:
    7
    And if you don't buy a Red Hat support contract. ;)
  20. ticklemeelmo

    ticklemeelmo Member

    Messages:
    145
    Likes Received:
    1
    haha, true.

Share This Page