node.js UDP data lost at high package rates
- by koleto
I am observing a significant data-lost on a UDP connection with node.js 0.6.18 and 0.8.0 .
It appears at high packet rates about 1200 packet per second with frames about 1500 byte limit.
Each data packages has a incrementing number so it easy to track the number of lost packages.
var server = dgram.createSocket("udp4");
server.on("message", function (message, rinfo) {
//~processData(message);
//~ writeData(message, null, 5000);
}).bind(10001);
On the receiving callback I tested two cases I first saved 5000 packages in a file. The result ware no dropped packages.
After I have included a data processing routine and got about 50% drop rate. What I expected was that the process data routine should be completely asynchronous
and should not introduce dead time to the system, since it is a simple parser to process binary data in the package and to emits events to a further processing routine.
It seems that the parsing routine introduce dead time in which the event handler is unable to handle each packets.
At the low package rates (< 1200 packages/sec) there are no data lost observed! Is this a bug or I am doing something wrong?