[ENet-discuss] Inconsistent connection status between hosts in bad network conditions

kristin.nielsen at se.atlascopco.com kristin.nielsen at se.atlascopco.com
Tue Jun 23 06:45:33 PDT 2015


I've investigated this further and is seems like the problem occurs when 
the server side gets two connect commands, ENET_PROTOCOL_COMMAND_CONNECT 
from the same client without any disconnect in between. The ENet host at 
the server will in that case get two peers with the exact same address and 
port. After a while one of them will get a timeout, and that timeout is 
what triggers the strange ENET_EVENT_TYPE_DISCONNECT. Our application code 
at the server side interprets this as a connection loss, but on the client 
side it is still connected since we have that other peer still up and 
running and responding.

I've solved this by letting the application code on the server do a reset 
on the current peer when a new is received with the same address and port.


Best regards, 




Kristin Nielsen 
Software Developer LHD Applications 
Rocktec Division 
Atlas Copco Rock Drills AB 
Address: 
Klerkgatan 21 
701 91 Örebro 
Sweden 

Phone: 
+46 019 768 25 85 




E-mail: 
kristin.nielsen at se.atlascopco.com 
Visit us at: 
Follow us at: 
http://www.atlascopco.com
Facebook / Twitter / LinkedIn / YouTube 
Committed to sustainable productivity 







From:   kristin.nielsen at se.atlascopco.com
To:     enet-discuss at cubik.org
Date:   2015-06-18 16:06
Subject:        [ENet-discuss] Inconsistent connection status between 
hosts in bad    network conditions
Sent by:        "ENet-discuss" <enet-discuss-bounces at cubik.org>



I've been investigating a system with two Enet hosts under bad network 
conditions, and noticed  a spurious disconnect at the server. 

I've used Enet v.1.3.13 and for simulating bad network I've used netem 
with configuration "delay 100ms 100ms 5% loss random 45% corrupt 35%" 
which means a delay of all packets of 100ms a random loss of 45% for all 
packets and 35% of all packets are corrupt. 

At first, the network is good and both client and server connects to each 
other, Enet reports ENET_EVENT_TYPE_CONNECT. 

Then I apply the bad network and both the client and the server 
disconnects, Enet reports ENET_EVENT_TYPE_DISCONNECT on both client and 
server. 

When the bad network conditions are restored, at first, everything seems 
to work fine. Enet reports ENET_EVENT_TYPE_CONNECT  for both client and 
server. 
But then, after some second, I will get a spurios 
ENET_EVENT_TYPE_DISCONNECT on the server side only. The client still 
thinks everything is up and running. 
And I'm stuck in a state that I can only get out from by restarting one of 
the applications(either the server or the client doesn't matter) 
This happens almost everytime. 

I have also noted that if I apply really bad network, for example a random 
loss of 95% of all packets, and the restore. Then, I havn't seen this 
strange disconnect.

Best regards, 




Kristin Nielsen 
Software Developer LHD Applications 
Rocktec Division 
Atlas Copco Rock Drills AB 
Address: 
Klerkgatan 21 
701 91 Örebro 
Sweden 
Phone: 
+46 019 768 25 85 




E-mail: 
kristin.nielsen at se.atlascopco.com 
Visit us at: 
Follow us at: 
http://www.atlascopco.com
Facebook / Twitter / LinkedIn / YouTube 
Committed to sustainable productivity               



_______________________________________________
ENet-discuss mailing list
ENet-discuss at cubik.org
http://lists.cubik.org/mailman/listinfo/enet-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cubik.org/pipermail/enet-discuss/attachments/20150623/0cf25ae5/attachment.html>


More information about the ENet-discuss mailing list