[ENet-discuss] Unable to establish connection despite UDP packets flowing fine back and forth

Martin Man mman at martinman.net
Wed Oct 25 19:51:13 UTC 2017


You seem to be absolutely correct. I’m calling enet_host_service in response to socket being reported as readable (as well as from the timer) and in this particular case something got so broken in the CFNetwork layer that UDP packets captured by wireshark were not actually delivered up to my app... 

I’m still looking at this but it looks like a super rare and random CFNetwork bug.

Thanks for your quick reply Lee,
Martin

> On 25 Oct 2017, at 21:24, Lee Salzman <lsalzman at gmail.com> wrote:
> 
> This is almost always a failure of the client to call
> enet_host_service enough for the handshake to actually finish.
> 
>> On Wed, Oct 25, 2017 at 2:31 PM, Martin Man <mman at martinman.net> wrote:
>> Hi guys,
>> 
>> I’m facing a strange issue today, one of my enet clients is unable to
>> connect to a (otherwise perfectly working) enet server.
>> 
>> Since it seems to be perfectly reproducible for the moment I took a capture
>> and I’m looking at the dump, but I am not familiar with the internals to
>> understand what is happening… could you please help me out?
>> 
>> Looks like the client sends a connect, and server replies two connect verify
>> packets, yet client does not signal this up and sends another connect, and
>> server replies another connect verify, and this go on and on and on until
>> the client connect attempt timeouts and enet signals this up … then I try
>> after several seconds, and the same sequence happens…
>> 
>> Here is the full dump from Wireshark with hidden IP addresses and port
>> numbers, I can send in the full capture if that helps but this is the
>> essence, only the 0x82 and 0x83 being exchanged.
>> 
>> Could you please help?
>> 
>> thanks,
>> Martin
>> 
>> Client packet 1:
>> 
>> ENet
>>    Peer ID: 0x8fff
>>    Sent Time: 0xc321
>>    Command: 0x82
>>    Channel ID: 0xff
>>    Reliable Sequence Number: 0x0001
>>    Connect: 8fffc32182ff00010000ffff000005780001000000000001...
>>    Outgoing Peer ID: 0x0000
>>    Incoming Session ID: 0xff
>>    Outgoing Session ID: 0xff
>>    MTU: 0x00000578
>>    Window Size: 0x00010000
>>    Channel Count: 0x00000001
>>    Incoming Bandwidth: 0x00000000
>>    Outgoing Bandwidth: 0x00000000
>>    Packet Throttle Interval: 0x00001388
>>    Packet Throttle Acceleration: 0x00000002
>>    Packet Throttle Deceleration: 0x00000002
>>    Connect ID: 0x7642aa94
>>    Data: 0x00000000
>> 
>> Server reply 1:
>> 
>> ENet
>>    Peer ID: 0x9000
>>    Sent Time: 0xc37c
>>    Command: 0x83
>>    Channel ID: 0xff
>>    Reliable Sequence Number: 0x0001
>>    Verify Connect: 9000c37c83ff000100c00101000005780001000000000001...
>>    Outgoing Peer ID: 0x00c0
>>    Incoming Session ID: 0x01
>>    Outgoing Session ID: 0x01
>>    MTU: 0x00000578
>>    Window Size: 0x00010000
>>    Channel Count: 0x00000001
>>    Incoming Bandwidth: 0x00000000
>>    Outgoing Bandwidth: 0x00000000
>>    Packet Throttle Interval: 0x00001388
>>    Packet Throttle Acceleration: 0x00000002
>>    Packet Throttle Deceleration: 0x00000002
>>    Connect ID: 0x7642aa94
>> 
>> Server reply 2:
>> 
>> ENet
>>    Peer ID: 0x9000
>>    Sent Time: 0xc570
>>    Command: 0x83
>>    Channel ID: 0xff
>>    Reliable Sequence Number: 0x0001
>>    Verify Connect: 9000c57083ff000100c00101000005780001000000000001...
>>    Outgoing Peer ID: 0x00c0
>>    Incoming Session ID: 0x01
>>    Outgoing Session ID: 0x01
>>    MTU: 0x00000578
>>    Window Size: 0x00010000
>>    Channel Count: 0x00000001
>>    Incoming Bandwidth: 0x00000000
>>    Outgoing Bandwidth: 0x00000000
>>    Packet Throttle Interval: 0x00001388
>>    Packet Throttle Acceleration: 0x00000002
>>    Packet Throttle Deceleration: 0x00000002
>>    Connect ID: 0x7642aa94
>> 
>> Client packet 2:
>> 
>> ENet
>>    Peer ID: 0x8fff
>>    Sent Time: 0xc709
>>    Command: 0x82
>>    Channel ID: 0xff
>>    Reliable Sequence Number: 0x0001
>>    Connect: 8fffc70982ff00010000ffff000005780001000000000001...
>>    Outgoing Peer ID: 0x0000
>>    Incoming Session ID: 0xff
>>    Outgoing Session ID: 0xff
>>    MTU: 0x00000578
>>    Window Size: 0x00010000
>>    Channel Count: 0x00000001
>>    Incoming Bandwidth: 0x00000000
>>    Outgoing Bandwidth: 0x00000000
>>    Packet Throttle Interval: 0x00001388
>>    Packet Throttle Acceleration: 0x00000002
>>    Packet Throttle Deceleration: 0x00000002
>>    Connect ID: 0x7642aa94
>>    Data: 0x00000000
>> 
>> Server reply 3:
>> 
>> ENet
>>    Peer ID: 0x9000
>>    Sent Time: 0xc958
>>    Command: 0x83
>>    Channel ID: 0xff
>>    Reliable Sequence Number: 0x0001
>>    Verify Connect: 9000c95883ff000100c00101000005780001000000000001...
>>    Outgoing Peer ID: 0x00c0
>>    Incoming Session ID: 0x01
>>    Outgoing Session ID: 0x01
>>    MTU: 0x00000578
>>    Window Size: 0x00010000
>>    Channel Count: 0x00000001
>>    Incoming Bandwidth: 0x00000000
>>    Outgoing Bandwidth: 0x00000000
>>    Packet Throttle Interval: 0x00001388
>>    Packet Throttle Acceleration: 0x00000002
>>    Packet Throttle Deceleration: 0x00000002
>>    Connect ID: 0x7642aa94
>> 
>> 
>> 
>> _______________________________________________
>> ENet-discuss mailing list
>> ENet-discuss at cubik.org
>> http://lists.cubik.org/mailman/listinfo/enet-discuss
>> 
> 
> _______________________________________________
> ENet-discuss mailing list
> ENet-discuss at cubik.org
> http://lists.cubik.org/mailman/listinfo/enet-discuss



More information about the ENet-discuss mailing list