[МУЗЫКА]
Здравствуйте!
С вами снова я, Николай Булахов, и мы продолжаем изучать компьютерные сети.
Сегодня мы поговорим о передаче почты.
Мы уже говорили с вами о том, что в UNIX все протоколы — текстовые,
и там придерживаются концепции, что передача данных должна быть понятна для
человека в качестве стороннего наблюдателя.
Для примера рассмотрим с вами протокол POP3.
POP3 — это сокращение от Post Office Protocol, то есть тот самый протокол
общения, который позволяет клиенту получить почтовые сообщения с сервера.
Он очень просто и подразумевает поочередный обмен сообщениями между
клиентом и сервером в рамках одного TCP-соединения.
Стандартный порт для данного протокола — 110-й.
Клиент в рамках такого сеанса связи может передавать следующие команды с аргументом,
если это потребуется: APOP, USER, PASS, DELE, LIST,
NOOP, RETR, RSET, STAT, TOP, QUIT.
Как видите, даже из названия этих команд уже в принципе можно сделать выводы,
для чего они предназначаются.
В ответ, если это приемлемо, клиент получает либо +
OK и текст подтверждения, либо -R и текст сообщения об ошибке.
APOP — данная команда предназначается для передачи серверу имени
пользователя и зашифрованного пароля, дайджеста, как его еще называют.
Эти сведения передаются в качестве аргументов данной команды.
При том digest — это хеш-сумма временной метки,
конкатенированной с паролем и зашифрованная алгоритмом MD5.
В случае поддержки этой команды временная метка передается в самом
начале сеанса связи.
USER служит для передачи серверу имени пользователя,
которое служит для идентификации соответствующего почтового ящика.
PASS, соответственно, передает серверу пароль от данного почтового ящика.
DELE служит для пометки указанного сообщения для удаления с сервера.
Номер сообщения должен быть указан в качестве аргумента.
При этом удаление не происходит сразу — оно выполняется либо при закрытии сеанса
связи, то есть после команды QUIT, либо же может происходить по истечении некоторого
промежутка времени, так называемого таймаута.
Команда LIST может быть передана как с аргументом, в качестве которого выступает
номер сообщения, тогда клиент в ответ получает сведения об указанном сообщении.
Если же команда выполнена без аргументов,
тогда сервер присылает сведения о все сообщениях, находящихся в почтовом ящике.
Сообщения же, которые помечены для удаления, в этом случае не отображаются.
NOOP — эта команда ничего не делает,
сервер всегда отвечает положительно, она нужна только для поддержания сеанса связи.
RETR — эта команда передает в ответ сообщения с указанным в качестве аргумента
номером.
RSET — эта команда производит откат транзакций внутри сессии.
Например, если пользователь пометил какие-либо сообщения для удаления, но
затем передумал, он может воспользоваться этой командой, чтобы убрать эти пометки.
STAT возвращает количество сообщений в почтовом ящике и размер почтового
ящика в октетах, то есть в байтах.
При том сообщения, помеченные для удаления,
в данном случае просто не учитываются.
Команда TOP возвращает заголовки письма,
затем пустую строку и указанное количество первых строк самого тела письма.
Команда QUIT говорит серверу о том,
что сеанс связи завершается и надо разорвать соединение.
Далее вы видите на экране пример достаточно тривиального сеанса связи,
где клиент производит авторизацию, затем смотрит,
что находится в его почтовом ящике и выводит одно из почтовых сообщений.
Итак, необходимая теория вами теперь изучена.
Настало время перейти к практике, но это уже будет на следующей лекции.
[МУЗЫКА]
[МУЗЫКА]