What is the difference between “interface” and “protocol”?