Forged Alliance Forever Forged Alliance Forever Forums 2014-10-26T21:51:37+02:00 /feed.php?f=42&t=8600 2014-10-26T21:51:37+02:00 2014-10-26T21:51:37+02:00 /viewtopic.php?t=8600&p=84353#p84353 <![CDATA[Re: Surviving (some) disconnect scenarios]]> Statistics: Posted by Dragonfire — 26 Oct 2014, 21:51


]]>
2014-10-26T19:39:40+02:00 2014-10-26T19:39:40+02:00 /viewtopic.php?t=8600&p=84340#p84340 <![CDATA[Re: Surviving (some) disconnect scenarios]]> The feature is planned to be in the coming lobby update.
It will be an optional feature for the moment.
Still a lobby update doesnt happen too often, so if you want to help test it, help now.

Follow the instructions here: viewtopic.php?f=45&t=8746

then run these commands:

git remote add faf5678 https://github.com/faf5678/lobby.git
git fetch faf5678
git checkout p2preconnect

then you can run the lobby.
to switch back to the develop branch, execute:

git checkout develop

While a p2preconnect lobby can connect to games started from lobbies without the feature,
you should not really do that. Maybe protect test games with a password and invite other
testers via chat. Send logs to this thread. Only forever.log is required.
If you have set up the test lobby, PM me or post your FAF nick in this thread, so that i can stalk you.

Explanation of the mechanisms can be found here: https://github.com/FAForever/lobby/wiki/P2PReconnect

Statistics: Posted by rootbeer23 — 26 Oct 2014, 19:39


]]>
2014-10-07T18:02:29+02:00 2014-10-07T18:02:29+02:00 /viewtopic.php?t=8600&p=82840#p82840 <![CDATA[Re: Surviving (some) disconnect scenarios]]>
http://www.faforever.com/mediawiki/inde ... IRC_server
Channel: #faf_dev

Ps.: if you want to call me, check if "IDragonfire" is online in #aeolus

Statistics: Posted by Dragonfire — 07 Oct 2014, 18:02


]]>
2014-10-07T17:57:31+02:00 2014-10-07T17:57:31+02:00 /viewtopic.php?t=8600&p=82839#p82839 <![CDATA[Re: Surviving (some) disconnect scenarios]]>
Dragonfire wrote:
Are you online in the irc dev channel?


no. sounds like a good place to recruit more beta testers. post relevant link.

i got it working between me and myself. (i have 2 computers...)
wouldnt hurt to have 1 or 2 more ppl to try it out.

Statistics: Posted by rootbeer23 — 07 Oct 2014, 17:57


]]>
2014-10-06T09:08:38+02:00 2014-10-06T09:08:38+02:00 /viewtopic.php?t=8600&p=82785#p82785 <![CDATA[Re: Surviving (some) disconnect scenarios]]>
rootbeer23 wrote:
the forwarding through the FAFlobby works fine.
now i need somebody to debug the reconnect state machine.

1)
git clone https://github.com/faf5678/lobby.git
git checkout p2preconnect
2)
send me PM with your nick so i can stalk you on FAF.


For normal players it is not easy to run faf from source ;)
I send you a pm as soon I am online^^
Are you online in the irc dev channel?
Nick: IDragonfire

Statistics: Posted by Dragonfire — 06 Oct 2014, 09:08


]]>
2014-10-06T08:18:46+02:00 2014-10-06T08:18:46+02:00 /viewtopic.php?t=8600&p=82783#p82783 <![CDATA[Re: Surviving (some) disconnect scenarios]]> now i need somebody to debug the reconnect state machine.

1)
git clone https://github.com/faf5678/lobby.git
git checkout p2preconnect
2)
send me PM with your nick so i can stalk you on FAF.

Statistics: Posted by rootbeer23 — 06 Oct 2014, 08:18


]]>
2014-10-03T16:02:41+02:00 2014-10-03T16:02:41+02:00 /viewtopic.php?t=8600&p=82601#p82601 <![CDATA[Re: Surviving (some) disconnect scenarios]]> to other computers.

Statistics: Posted by rootbeer23 — 03 Oct 2014, 16:02


]]>
2014-10-03T15:25:57+02:00 2014-10-03T15:25:57+02:00 /viewtopic.php?t=8600&p=82595#p82595 <![CDATA[Re: Surviving (some) disconnect scenarios]]>
So you can make FAF listen on the external IP/ LAN IP, and forward packets to localhost:6112, where FA is listening.

I think.

Statistics: Posted by Phlegm — 03 Oct 2014, 15:25


]]>
2014-10-03T14:09:46+02:00 2014-10-03T14:09:46+02:00 /viewtopic.php?t=8600&p=82588#p82588 <![CDATA[Re: Surviving (some) disconnect scenarios]]> FA.exe has to be put on another port.
is there a mechanism to do this automatically, or is everyone gonna have to do it manually?

Statistics: Posted by rootbeer23 — 03 Oct 2014, 14:09


]]>
2014-10-01T22:37:57+02:00 2014-10-01T22:37:57+02:00 /viewtopic.php?t=8600&p=82441#p82441 <![CDATA[Re: Surviving (some) disconnect scenarios]]>
Everything is in place (it's basically a local proxy server, you don't need to wireshark or anything, it's done), it needs some work to be complete. Once done, reconnection is another layer, but probably easier.

Statistics: Posted by Ze_PilOt — 01 Oct 2014, 22:37


]]>
2014-10-01T22:01:22+02:00 2014-10-01T22:01:22+02:00 /viewtopic.php?t=8600&p=82437#p82437 <![CDATA[Re: Surviving (some) disconnect scenarios]]>
_VODKA_ wrote:
Just commenting because I like the idea. No idea where you got your information or if it can actually be fixed though.


nobody argued to the contrary, i take this as confirmation that it can be done like this and i will
do it in a little while.
its not forgotten or abandoned, no negative comments was all i was looking for.
the details of the connection procedure can be learned from wireshark dumps and the faf lobby code.

Statistics: Posted by rootbeer23 — 01 Oct 2014, 22:01


]]>
2014-10-01T17:20:01+02:00 2014-10-01T17:20:01+02:00 /viewtopic.php?t=8600&p=82411#p82411 <![CDATA[Re: Surviving (some) disconnect scenarios]]> Statistics: Posted by Col_Walter_Kurtz — 01 Oct 2014, 17:20


]]>
2014-09-29T05:05:48+02:00 2014-09-29T05:05:48+02:00 /viewtopic.php?t=8600&p=82034#p82034 <![CDATA[Surviving (some) disconnect scenarios]]> temporary failure of internet connections.
for example a mandatory disconnect after max 24 hours is
common in some parts of the world.
the issue then of course is that the various instances of
FA.exe try to communicate with the obsolete IP address in
vain.

how it works so far:

when you join a game, the FAForever client launches
FA.exe which then exchanges UDP packets with faforever.com
using a GPGnet protocol. Via this protocol FA.exe receives
information about the other peers in the game and then
starts exchanging UDP packets directly with the peers via
a different GPGnet protocol that is used during the game ("lobbyCom").
when the IP address of a peer changes, there is no mechanism
by which all others can stay up to date and the connection
is lost.

the solution is not complicated:

the player whose IP changed has to send updates to all peers
to inform them of the new address.
To facilitate this, all lobbyCom connections are proxied through
the FAForever client. That is, FA.exe talks to localhost:port
and the lobby sends the datagram to the real peers. The same
method is used for the current proxy with the difference that
the lobby does not send datagrams to the peers directly, but
to the central proxy server. To clarify: the central proxy
isnt involved in this feature. (to see what i am talking about,
search for "ConnectToProxy" in src/fa/relayserver.py)

First the lobby has to detect that the address has changed.
2 things have to be true: no data arrives from either the
peers or the server in a reasonable time.
In that case a new connection is made to the server via TCP
(falobby protocol). Optionally the server can confirm that
the IP address has changed indeed.
When the server is reachable again the lobby sends UDP
datagrams to all peers. those datagrams are received by
the remote lobbies, but are not forwarded to FA.exe.
And they do not conform to the lobbyCom protocol.
Since they come from a yet unknown sender IP, the lobby
can distinguish them from lobbyCom traffic.
The remote lobbies then retrieve the updated IP address
and exchange of lobbyCom messages can continue.

Bonus: since FA.exe only ever talks to localhost, IPv6 would
not be a problem.

changing IP address makes up 99% of disconnects for me,
the other 1% being BSOD or tripping over the power cable,
so i expect that it will address a significant portion
of problems.
EDIT: actually the distribution of all failure causes is approx
90% Ip change, 9% simulation freeze, 1% rest.

comments?

Statistics: Posted by rootbeer23 — 29 Sep 2014, 05:05


]]>