You seem to indicate that dropped packets are caused by the user queues, is that the only way a dropped packet can occur? ie Will TCP guarantee that every packet will reach its destination ?
Yes. Packets are dropped to save the server from exploding when too much data is queued for later delivery until the network is congested/slow.
Without this mechanism you would end up queuing up messages until you eventually fill all the available heap memory and crash the Server loosing all connections... with this perspective you can see why dropping packets is not as evil as loosing the service.
What causes a user queue to fill up and drop packets?
As mentioned before... general lack of bandwidth, client connection slowness, too high message frequency etc...
We get a quite regular (but still quite rare) occurance of single messages not being sent from the flash client to the server.
You should make sure that is not programming logic problem.
Btw... the queues I am talking about are server side not client side. The client side message queuing is handled by the Flash Player internals.
Could a user queue in its default configuration cause such a problem? (as you may have guessed, I have no idea how to configure the queues, or what each setting might do)
Yes. If you don't know how to configure it read our documentation ( Chapter 2.2 ) and experiment different settings. There's no golden rule, it depends a lot on your application.
One more question, what happens client side if the game is using 100% processor and smartfox messages are coming in. Do they get delayed because the flash player is at 100% cpu? Might they even get dropped?
Delayed: it's likely, Dropped: no.