Ian! offers these ideas, should someone else want to try. I don't know when I'll have another chance. On Mon, Jun 10, 2013 at 09:18:05AM -0400, Michael Richardson wrote: >I did my talk on June 7. It was an attempt to implement TCP as theatre. >It did not go as well as I would have liked, VJ's fountain analogy is >much more powerful, but significantly less portable. Good try, though. I think you can work around your problems. Perhaps like this: Get rid of the glasses. People can pick up one toffee with one hand. Get rid of the sequence numbers. It's not centrally relevant to understanding buffer bloat. Rather than having people walk/run from the transmitter, make them go down a "receiving line" of ten people that represents the transmission line delay and capacity. The toffee carriers have to shake hands for one full second at each of the ten people before moving on to the next person. If you have, say 11 or 12 people picking up toffee and circulating back for more, the transmission line will be operating at full capacity with no dead time. Adding another ten or twenty people picking up toffee won't make it any faster, and will significantly increase latency. You can demonstrate latency by giving one of the toffee carriers at the transmitter a big URGENT sign to wear around their neck when they pick up their toffee and seeing how long it takes for that packet to get to the receiver. Adding more buffers (toffee carriers) to the circuit doesn't increase network carrying capacity but does make latency much worse. If you want to introduce a delay in the line, e.g. the slowest router, pick one person in the middle of the receiving line who has to shake hands for five or ten seconds before letting the person move on. If you want to demonstrate what you can do to work around buffer bloat at your end, show that when you throttle back the number of toffee carriers to exactly match the line carrying capacity, you have maximum throughput with minimum latency. So your job at your end of the line is to figure out what that carrying capacity is and arrange not to transmit faster than that number, so that buffers don't accumulate. If/when this demonstration is working, you might talk about what happens if a packet is lost or out-of-sequence or times out, but that might be too much. -- | Ian! D. Allen - idallen@idallen.ca - Ottawa, Ontario, Canada | Home Page: http://idallen.com/ Contact Improv: http://contactimprov.ca/ | College professor (Free/Libre GNU+Linux) at: http://teaching.idallen.com/ | Defend digital freedom: http://eff.org/ and have fun: http://fools.ca/