Various TCP backoff algorithms are also a great study in how to approach problems with insufficient knowledge of the system under test, and building desirable properties (reliable in-order delivery) from a undesirable input (arbitrary packet loss, and loss in the face of congestion). I make all the kids try to implement their own, then walk through the history of TCP approaches to the modern day.
One more protocol / paper which fits this description, imo, is Bitcoin paper . It's easy and accessible to all and elegently explains how to solve a complex problem with existing tools. Not sure it can be called as an 'algorithm'
 - https://bitcoin.org/bitcoin.pdf
An Introduction to Kademlia DHT & How It Works
 - http://www.bittorrent.org/beps/bep_0003.html
 - https://wiki.theory.org/index.php/BitTorrentSpecification
It worked pretty well. Used it for several years until I started making real money and decided I could buy things rather than pirate them.
I had only been coding for a year or two at that point, so it is probably filled with lots of odd choices, but it also isn't super optimized like I would guess the more well known clients might be, and so might be easier to parse.