Skip to content

ICKP_DEADLINK meaning, and recovery. #275

@roelfdiedericks

Description

@roelfdiedericks

I have forked KCP-Go, to fiddle with some changes, and exposed the kcp.state as GetState so that I can see if a connection is "dead" and then reestablish a connection.

I also tweaked the IKCP_DEADLINK to a value of 200, as it appears that in my high throughput application 20 is way too litle, and blocks the connection under high throughput, which I can detect using the new GetState function.

However I'm still rather confused as it what "dead" is, and what the definition of it is. It seems to happen every so often (even with ICKP_DEADLINK=200) under high throughput conditions on mobile connections.

Is there a way for KCP to recover from this condition? As it seems that in DEADLINK state, the server is still trying to send some packets, but the client is refusing to transmit, until I detect DEADLINK, and reconnect on a new conversation.

I have confirmed that the "server" is still sending packets using tcpdump, but the client stops transmitting.

I'm using KCP in Turbo mode, with 128 send/recv buffers. No encryption and no FEC.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions