[ENet-discuss] Huge latency issue with larger unreliable packets

Ola Røer Thorsen ola at silentwings.no
Mon May 5 01:49:54 PDT 2014


Hi all,

I am using ENet in a new application where I have a Windows PC (Windows 7)
communicating with an ARM-based computer running Linux. They are connected
via Ethernet on the same LAN. I use a few small reliable packets that are
sent back and forth at about 4Hz, which works really well. The ENet version
I've been using is 1.3.11.

The ARM device is set up as host, the Windows PC connects as a client. Both
are set up with "unlimited bandwidth" in both directions.

The Windows PC also has to send larger unreliable packets to the ARM
device. Each packet is 115200 bytes, and is sent at 10Hz. As I don't really
need any throttling mechanisms, I've disabled this by setting the
deceleration parameter on the throttle configuration to zero. The Ethernet
connection can handle much more data than this and is not used by anything
else.

Some times this works fine, but more often it seems like the unreliable
packets are buffered somewhere on the way. I can have up to about 30
seconds latency (!) until they arrive at the "receiving end"
(enet_host_service loop). However, no packets are lost. At the same time,
there is no latency for the other smaller reliable packets.

I call enet_host_service fairly often, the interval on the Windows PC is
around 5 ms, the ARM device does this every 30 ms. I've checked the
incoming udp buffer in Linux. It seems to be read often enough, so it seems
like the packets are buffered on the Windows PC before even being sent.

Is there some hard-coded max bandwidth setting in ENet that I have
exceeded? Does it have an "outgoing buffer" that can grow this much? Have
any of you seen any similar behavior?

Best regards,
Ola Røer Thorsen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cubik.org/pipermail/enet-discuss/attachments/20140505/3aac8be9/attachment.html>


More information about the ENet-discuss mailing list