HLAPI network behaviour each sync takes 24 bytes header?

I have tried to sync network behavior, without passing any information, just set SetDirtyBit(1) and set my serialization to 20 per seconds, I find that I have 5kbps header or 480 Bytes header, or 24 bytes per network behavior sync, I was wondering what exact are those bytes represent, where I can modify this?

After some more digging into HLAPI, I saw that there is a bit header of 4 bytes, an message length of 2 bytes, and messeage type of 2 bytes, adding total up to 8 bytes(which is reasonable), but where did the rest 16 bytes from. would this cause more header files within LLAPI?

After some more digging:

  1. 16 bytes has nothing to do with sequential UDP or not.
  2. 16 bytes has to do with if I set dirty bit to (1), so I assume that if I set dirty bit(1) but not serialize anything, it will cause around extra 24 bytes(which 8 of those are been written and seen in the HLAPI code).

Can some expert explain to me more what’s going on?

if I have 6 players need to be synced within 1 second 20 times, not sending any messages, it would cost me 5kbps * 36, which would cost me 180kbps out of the box for doing pretty much nothing… I hope somebody can explain to me is this something can be fixed within HLAPI, I track down problem into m_buffer however I don’t think I can modify this.

1 Like

The rest 16 bytes is what LLAPI adds to every message: 6 bytes if you have any reliable channel, 4 bytes per packet and session, 2 bytes per connection number, 2 bytes per message and 1 byte delimiter.

1 Like

Thanks for the heads up, I asked unity staff, pretty much it’s the IP header…