Hi! I'm a bit late to the party...
> Example: > Imagine a receiver with a limit of 1024 handles. A sender transmits a > message to that receiver. It gets access to half the limit not used by > anyone else, hence 512 handles. It does not matter how many senders > there are, nor how many messages are sent, it will reach its quota at > 512. As long as they all belong to the same user, they will share the > quota and can queue at most 512 handles. If a second sending user > comes into play, it gets half the remaining not used by anyone else, > which ends up being 256. And so on... If the peer dequeues messages in > between, the numbers get higher again. But if you do the math, the > most you can get is 50% of the targets resources, if you're the only > sender. In all other cases you get less (like intertwined transfers, > etc). > > We did look into sender-based inflight accounting, but the same set of > issues arises. Sure, a Request+Reply model would make this easier to > handle, but we want to explicitly support a Subscribe+Event{n} model. > In this case there is more than one Reply to a message. > > Long story short: We have uid<->uid quotas so far, which prevent DoS > attacks, unless you get access to a ridiculous amount of local UIDs. > Details on which resources are accounted can be found in the wiki > [1]. So if there's limit of 1024 handles, all I need is 10 UIDs, right? That might be a problem on multiuser unix machine, but on Android phones, each application gets its own UID. So all you need is 10 applications to bring the system down... Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
signature.asc
Description: Digital signature