PDA

View Full Version : Requested logfile Kon


Neinth
01-08-2012, 02:54 PM
hope it helps

Neinth
01-08-2012, 03:14 PM
I have to type something

Neinth
01-08-2012, 04:29 PM
Post count up 1

Neinth
01-10-2012, 01:39 AM
update on what these are about.

After some thinking and looking,i do believe this is caused on my end.However,not much for networking,so need someone who knows it better to possibly help me clear it up.

Neinth
01-10-2012, 05:55 AM
I cant sleep again so was looking around at nat stuff.

This was on wikipedia(i know best source for random crap)
Symmetric NAT

Each request from the same internal IP address and port to a specific destination IP address and port is mapped to a unique external source IP address and port, if the same internal host sends a packet even with the same source address and port but to a different destination, a different mapping is used.
Only an external host that receives a packet from an internal host can send a packet back.


Log file indicates i have a symmetric nat,and that got me to thinking.The external ip is my modem,internal comp,through the router.Reading that little paragraph above,heres my guess on whats happening.



Someone attacks me,when i click fight it sends them oob,which passes through my modem,other player sends back to me,connect just fine and pvp.That oob hase the ip and port number of my modem,allowing us to connect.

I attack someone else,when they click fight,it sends me an oob,that I never actually get,because the player sending it doesnt know the correct ip nor port to sent it to/through.This theory is from reading the raknet stuff.

Symmetric NAT: A different port is chosen for every remote destination. The same source address and port to a different destination uses a different mapping. Since the port will be different, the first external punchthrough attempt will fail. For this to work it requires port-prediction (MAX_PREDICTIVE_PORT_RANGE>1) and that the router chooses ports sequentially.

Now my networking stuff is very basic,but while all this is happening,i am connected to the game server,so is other player,and pvp connects like a peer to peer(i think).Since i can connect to server,would be a workaround to have that oob sent from there instead of the player when they click fight,with the players ip and port.

Again just based on not being able to sleep,found something called udp proxy on the raknet site,so last qoute for this morning

The combination of NATPunchthrough and UDPProxy should enable any system to connect to any other system with a 100% success rate, provided you are willing to host enough proxy servers to forward all the traffic.

Not sure if thats helpful at all,sure hope it is cuz i wanna attack people lmao.Based on my understanding(which sucks) once I send other player something,it should open the correct stuff on my end,and allowing for me to be able to attack people instead of waiting to be attacked.

Edit: somehow getting my rig to send a file to the server with ip and port may also fix the "cant connect to city" thing as well(just got it had to restart router and all)

Konstantin Fomenko
01-10-2012, 10:49 AM
You might be on to something here! We spent the weekend looking into this specific bug you are me are having - in a nutshell by some reason server detects both me and you disconnecting from each other (purposely canceling the game) which doesn`t make any sense. But we don`t want to blame the networking code as me and you can get Army vs Army started just fine.

However - the difference with Army vs Town - at the same time as we are connected peer to peer to begin the game, there is also a lot of activity with peer to server - as I`m uploading my town to the server and you are downloading it.

Most likely we`ll just proceed with adding more and more debugs and kindly asking you to help test this again and again until we get it.


On a bright side we did fix Connection Timed Out but when connecting to other players, should be in the next patch:)

Neinth
01-10-2012, 03:00 PM
Aye dont mind testing it :> gonna try and get a copy of someone elses log files from me attacking them,and then them attacking me,compare them to my own log file for the same attacks.

I am either really tired or onto something :>

Neinth
01-11-2012, 03:26 PM
p->get_address()=ip|16256
connecting to player at ip|16256

-ID_CONNECTION_REQUEST_ACCEPTED 891712744254742824 ip|16256
-ID_CONNECTION_REQUEST_ACCEPTED 891712744254742824

ID_DISCONNECTION_NOTIFICATION ip|16256

I think this process is being done to late

Should be done earlier,and trigger the port prediction on other end,I do believe would solve this.

Right now,its being done afterwards,and other end is connecting immediately,but since nat protocol doesnt open ports my end until conenction is made,they get blocked.

Konstantin Fomenko
01-11-2012, 03:44 PM
You just might be on to something, got our lead programmer on this.

Neinth
01-11-2012, 04:37 PM
Would think saving the nat types,adding an if/then/else would solve this

also since i didnt post entire log file for this,the nat type i was connecting to was full cone

While a full cone,or an address rescricted cone shouldnt have this issue,i would think a port resctricted and a symmetric will,and need to conenct to other pc before they try and connect to us.

Wish it was a simple matter of changeing my settings.But since ip changes between each player,i cant really port forward,and since ports are sorta random on my end,would have to open up entire range,which would be bad

Neinth
01-14-2012, 03:06 PM
free post count

thomas_batty
01-16-2012, 11:06 PM
kon, heres the logfile you were asking for.

Neinth
01-17-2012, 01:00 AM
thomas,you need to go into router,maybe modem settings as well,and disable upnp,that should get you going :>

BTW KON I HAVE THE ANSWER FINALLY!!!!!!!!!


NAT type full cone
UPNP failed to open router<------is the problem

Thomas,if you diable upnp,log into the game,log into a city,can check logfile for "UPNP failed to open router" if thats no longer there,you should be good to go.

Kon,need to disable the upnp thing for full cone,then simple port forwarding will solve the symmetrical,be easier than solution john and i discussed,though it does mean player has to port forward through router and modem depending on their setup.Attached is two example logfiles from testing this.

Log1 is fixed,log4 is port forwarded but upnp enabled,causing random ports,which makes portforward useless.

Port forward will give nat type full cone---

Disable upnp for full cone type nats,keeps from trying random ports--not all modems able to turn upnp off,dont know why,cant do it with mine,is why this part needs to be removed from game.

Am 100% sure this is workable solution,much simpler than doing the proxy and port prediction,completly solves problem if upnp is removed from full cones,and player port forwards correctly.

Edit: forgot port is 30844----and ty joseph :>