Это то, что описывает как должны общаться две системы. Т.к. задачи для обмена между информационными системами (однотипными, либо не однотипными) очень разные, то создают описание обмена - протокол.
Как пример - протокол передачи писем между почтовыми серверами. Специфика - передача информации, в основном текстовой. Поэтому серверы по ПРОТОКОЛУ SMTP общаются примерно так(кратко):
HELO
MAIL FROM:
RCPT TO:
DATA
RSET
SEND FROM:
SOML FROM:
SAML FROM:
VRFY
EXPN
HELP
NOOP
QUIT
Т.е. устанавливают соединение, устанавливают параметры передачи. Вы можете сами этот самый протокол пощупать руками, подключившись к SMTP серверу с помощью банального telnet клиента:
$ telnet smtp.mail.ru 25
Trying 94.100.177.1...
Connected to smtp.mail.ru.
Escape character is '^]'.
220 mail.ru ESMTP Wed, 18 Nov 2009 20:44:13 +0300
HELO some.host.ru
250 mx30.mail.ru Hello some.host.ru [123.45.67.89]
AUTH LOGIN
334 VXNlcm5hbWU6
dXNlckBtYWlsLnJ1
334 UGFzc3dvcmQ6
cXdlcnR5
235 Authentication succeeded
Тут мы коннектимся к SMTP-серверу, он приветствует нас кодом 220, в ответ мы называем имя своего хоста HELO some.host.ru
Это собственно и есть протокол передачи данных.