Thanks for the reproducable bug report... I get the same behavior, so long as the packets are small enough.. above 10k or so I don't see this behavior. This looks like like Nagel's algorithm at work, try setting TCP_NODELAY on the subscriber, like this: #include ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback, ros::TransportHints().tcpNoDelay());