What is the Server Message Block (SMB) protocol? How does it work?

What is the Server Message Block (SMB) protocol? How does it work?