On Mar 23, 2007, at 9:43 AM, Avinash Sridharan wrote:

Hi Phil,
By service rates of a packet I mean the service rate that the queue is giving to each packet. Since the buffer space for the clients and the forwarders are different the probability that you serve a client packet should be lower then the probability that you serve a forwarded packet (assuming both are generating packets at the same rate).

Again, you're assuming that the forwarding engine is trying to achieve fairness. It's not. No fixed ratio between those two rates can provide fairness. The assumption is that if you want fairness, you have to have higher-level mechanisms/feedback/rate control/etc. If you do, then you can just control the rate at which packets enter the client queues, and so why should CTP introduce additional logic that is bloat except for this case?


I agree fairness is at the flow level but the fair rates that you would calculate for each flow is closely tied to the maximum possible rate that each flow can be serviced at, which in turn is determined by the queuing dynamics. This reasoning leads to my statement " that there seems to be an inherent unfairness in the queuing dynamics ".

You're assuming that rate control is independent of servicing rates. It's not. If you decrease the generation rate throughout the entire network, then you can change the ratio between local generation and forwarding. IFRC does this, after all.


Also under light loads the above affects might not show up as you stated since if the average queue length of the forwarded packets is going to be close to 1 then all the above dynamics I just described wouldn't come into play. But again this would depend on what you define a "light" load as (what if the average queue length is greater than 1 ?).


I mean "light loads" in the traditional sense for this sort of problem, that is, "loads low enough that you do not drop packets from your queues." If every node is generating packets at its fair rate F, and you are not dropping packets, then you have fairness. If you want to control fairness through packet drops, then generally you need to maintain per-child state. Also, given that these are nominally low power networks, the idea of rate control through wasting energy seems a bit questionable.

Nevertheless, the Intercept handler allows you to tell CTP to drop packets. So you can control the generation rate, and you can drop packets from the forwarding queue.

Please, if there's some piece of functionality that you think the forwarding engine needs but does not understand, state it clearly and succinctly. E.g., "I need a command that tells me the number of forwarding packets in the transmission queue."

My objective here was to develop a rate control mechanism on top of the CTP framework and the rates that I was calculating was based on the notion that all flows are treated the same in the queues. However as I mentioned earlier the rates I was getting were coming out to be disproportional, but I concede that the experiments were being carried out at heavy load (all queues were almost fully loaded).


Well, under light load, fairness doesn't matter/make any sense.

It sounds like you wrote an algorithm that made an incorrect assumption about CTP.

You should talk with Om. He is the lead person on CTP, after all, and I suspect his office is not so far from yours... he can probably answer your questions much more completely and quickly than I can. Sumit (also at USC) had a paper in SIGCOMM on fair queueing in wireless sensornets, implemented in TinyOS. You might want to talk with these people to get a sense of the scope of the problem.

Phil

_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to