ID:132832
 
Okey so now when i aswell create a game i reminded myself of that i can't host. Yes i know about those lousy sites which doesn't even got my router on it and i know how to open ports. But alot don't. I know that alot of downloaded games (I mean torrented) are like virus, so that they can force open the ports. Why not make a similar function/program here? For example, you make a button in the pager, which says something like "Ports" and then when you press there, you get a list of the ports which needs to be opened. And then you can press like "Force open" and/or "Force open all". Doesn't this sound good?
I really doubt a virus can forward a port on your router: it's an entirely separate machine. It's theoretically possible, sure, but the exploit would depend entirely on the router that you had, if an exploit existed at all.

This is assuming you're talking about forwarding ports and not actually talking about opening ports, which is a fundamental aspect of network communication and so is already done by BYOND, as well as every other program that interacts with a network.

I'd go on about how silly you're being (the idea of "forcing open" a port would be where I'd start) but I'm just too tired. To summarize: no.
In response to Garthor (#1)
I think he's talking about how a lot of real games/applications don't require port forwarding to host a server/make connections. But they don't use some sort of virus(?) to force open ports, they just use a different connection method than BYOND does. There was a discussion about it somewhere, but I couldn't find it.
In response to Falacy (#2)
Falacy wrote:
I think he's talking about how a lot of real games/applications don't require port forwarding to host a server/make connections. But they don't use some sort of virus(?) to force open ports, they just use a different connection method than BYOND does. There was a discussion about it somewhere, but I couldn't find it.

"don't require port forwarding to host a server/"

You are mistaken on this.

To host a server, you will *always* need either direct, uninhibited access to the internet or port forwarding & firewall exceptions to fit the situation.

You cannot simply write a program that will 'force' open ports for all different makes and models of software (firewalls) and hardware (routers, switches, modems, and occasional NIC cards that have built in firewalls)

Making connections however, can be done with anyone who can be connected to (see above) and can be done BY anyone who doesn't otherwise have severe restrictions on their internet access. This is the case with BYOND as well as anyone can join a server, but you must set up port forwarding to host a server.

Making connections is easy. Receiving connections is not.


To OP:
The concept you're talking about isn't possible.
BYOND could include the built in functionality to open ports in the windows firewall, but 90% of the people who have the capacity to host already have this shut off. Making your router port forward remotely using software that has no idea what kind of firmware your router has is pretty much impossible.
In response to AJX (#3)
AJX wrote:
To host a server, you will *always* need either direct, uninhibited access to the internet or port forwarding & firewall exceptions to fit the situation.

I can host a L4D server without any type of outside setup. I just hit the host button in-game and it goes. How do you think RA or messenger applications like MSN/AIM send information back and forth? No port forwarding involved. Obviously its possible.
In response to Falacy (#4)
Falacy wrote:
AJX wrote:
To host a server, you will *always* need either direct, uninhibited access to the internet or port forwarding & firewall exceptions to fit the situation.

I can host a L4D server without any type of outside setup. I just hit the host button in-game and it goes. How do you think RA or messenger applications like MSN/AIM send information back and forth? No port forwarding involved.

MSN / AIM are an outgoing connection you are making to their server. Again, outgoing is easy, incoming is not.

In regards to you hosting L4D: I'm going to venture one of two guesses, more likely the second.
1: You already have the relevant ports open.
2: L4D uses a dynamic networking mechanism. I know GunZ does this, dunno about Steam games.

Basically it works like this: You can create a game however the hell you want, whenever you want. The game joining / leaving is handled from a central server. If two people who are unable to host are in the game together, they will be unable to communicate (unless the central server takes over for them). Once someone who is capable of 'truly' hosting joins, they become the active host.

In games like that if two people can accept incoming connections then they will communicate freely. If only one of the two can, the game will accommodate for this by only communicating through a connection opened by the non-host directed to the host. I'm not sure what the ramifications of this are, you'd have to ask someone more experienced in networking. I do believe the two hostable players communicate more effectively than the one way connections,but that is merely my speculation.
In response to AJX (#5)
As I said; somebody already explained an alternate method that could be used, but I can't find the topic.

EDIT: Was related to this I believe: http://en.wikipedia.org/wiki/Upnp (Which sounds almost exactly like what the OP was talking about?)
I can also host rainbow 6 without additional setup. In which I've had friends connect who I know also had nothing setup (in a 2 person co-op game) So unless they have some central server handling everything, which seems like it would eliminate the point... Also, though R6 has an option for upnp in it, I can't enable it (supposedly).
In response to Falacy (#6)
Falacy wrote:
As I said; somebody already explained the alternate connection method that could be used, but I can't find the topic.

EDIT: Was related to this I believe: http://en.wikipedia.org/wiki/Upnp
I can also host rainbow 6 without additional setup. In which I've had friends connect who I know also had nothing setup (in a 2 person game) so unless they have some central server handling everything, which seems like it would eliminate the point... Also, though R6 has an option for upnp in it, I can't enable it (supposedly).

You are probably thinking of this networking protocol: http://en.wikipedia.org/wiki/User_Datagram_Protocol

And you are probably thinking of this post: [link]
Or one of the other UDP mentioning(s) around the forums.

Though there are a few problems with this approach, which relate to the core differences between how TCP and UDP handle packet loss. I'm sure there are other problems too, but that is just what comes to mind.

Anyway, you should probably read this post: [link]
In response to Falacy (#6)
Falacy wrote:
EDIT: Was related to this I believe: http://en.wikipedia.org/wiki/Upnp

Correct. On routers with UPnP enabled, you can tell them to forward ports dynamically.

Torrent programs like ┬ÁTorrent and even some games automatically do this if they find that UPnP is available: when you start downloading a torrent/hosting the game, it automatically opens the port(s) it needs to use on the router. When you stop using the program, the port(s) are automatically closed.

However this depends on UPnP being enabled on both the router and the host computer. Windows starts out with UPnP enabled by default (which is a potential security risk if your computer is fully exposed to the internet, as outsiders may be able to use UPnP exploits against you).

Routers do not always have UPnP enabled though, but if they do, you can use that to forward ports.

Provided that your router does have UPnP enabled, you don't even need the feature I've explained above to be added for BYOND; with UPnP on you can manually open ports by telling Windows to tell the router to do it: you'll find an "internet gateway" under your network connections of your control panel if you have UPnP enabled. Through there you can open as many ports as you want.


In any case such a "virus" as you're explaining here doesn't exist, but if it did, would it really be wise for BYOND Staff to embed a virus to their program? =P


Whilst I'm blabbing on I'll also tell you about two other ways to bypass your router and host anyway:
The first way is to create an outgoing connection, which doesn't work if you're at school (they tend to protect against that) but will if you're just at home. However this method is useless to you as it only allows you to connect to other servers, not become one yourself.

Your best bet, short of reconfiguring your router or using UPnP, is to download a program like Hamachi and use that. Hamachi bypasses your router not by using some kind of virus, but by forwarding your connection to their own private network: you'll essentially be connecting to them (outgoing, so your router allows it) and once the connection has been established it can be used to send any kind of information.

The only downside to using Hamachi is that only others who are on Hamachi (and who have joined your network) are able to join your server. Outsiders - including the BYOND Hub which is supposed to display your game and get information from it - won't be able to connect to your server.
In response to Garthor (#1)
I haven't read up on this much but aside from UPnP, there's also a technique called TCP hole punching that bypasses NAT used in routers. Apparently this has limited applications since there is no standardized way for NATs to handle these situations, but it has been used in some P2P networks.

Lummox JR