I based the lesson around extending an activity Aaron Shaw does in his class. Basically, all of the students are assigned to be either users, servers, or routers. We started by simulating how packets get passed from users to servers (and back). We then continued to add layers of complexity - TCP, SSH, and Tor and showed how each technology helps to deal with the shortcomings of a decentralized, ‘dumb’ network.
See my blog post with additional detail and lesson materials.