- •1 Расчет конфигурации сети Ethernet 4
- •2 Изучение структуры ip-адреса 17
- •3 Взаимодействие прикладных программ с помощью транспортного протокола tcp 25
- •4 Взаимодействие прикладных программ с помощью протокола электронной почты smtp 40
- •5 Взаимодействие прикладных программ с помощью протокола электронной почты pop3 52
- •6 Взаимодействие прикладных программ с помощью протокола передачи данных ftp 61
- •Расчет конфигурации сети Ethernet
- •1.1Критерии корректности конфигурации
- •1.2Методика расчета времени двойного оборота и уменьшения межкадрового интервала
- •1.3Пример расчета конфигурации сети
- •1.4Задание на лабораторную работу
- •1.5Справочные данные ieee
- •1.6Контрольные вопросы
- •Изучение структуры ip-адреса
- •1.7Типы адресов стека tcp/ip
- •1.8Классы ip-адресов
- •1.9Особые ip-адреса
- •1.10Использование масок в ip-адресации
- •1.11Задание на лабораторную работу
- •1.12Контрольные вопросы
- •Взаимодействие прикладных программ с помощью транспортного протокола tcp
- •1.13Транспортный протокол tcp
- •1.14Транспортный протокол udp
- •1.15Порты, мультиплексирование и демультиплексирование
- •1.16Логические соединения
- •1.17Программирование обмена данными на основе транспортных протоколов
- •1.18Пример реализации простейшего клиент-серверного приложения на основе сокетов
- •1.19Задание на лабораторную работу
- •1.20Справочные данные
- •1.21Контрольные вопросы
- •Взаимодействие прикладных программ с помощью протокола электронной почты smtp
- •1.22Модель протокола, команды и коды ответов smtp
- •1.23Кодировка сообщений
- •1.24Процесс передачи сообщений
- •1.25Пример последовательности команд почтовой транзакции
- •1.26Задание на лабораторную работу
- •1.27Справочные данные
- •1.28Контрольные вопросы
- •Взаимодействие прикладных программ с помощью протокола электронной почты pop3
- •1.29Модель протокола рор3, его назначение и стадии рор3-сессии
- •1.30Формат сообщений
- •1.31Процесс получения сообщений. Команды и ответы протокола рор3
- •1.32Задание на лабораторную работу
- •1.33Справочные данные
- •1.34Контрольные вопросы
- •Взаимодействие прикладных программ с помощью протокола передачи данных ftp
- •1.35Назначение и модели работы протокола ftp
- •1.36Особенности управления процессом обмена данными
- •1.37Команды и ответы протокола ftp
- •1.38Задание на лабораторную работу
- •1.39Справочные данные
- •1.40Контрольные вопросы
- •Список рекомендуемой литературы
1.25Пример последовательности команд почтовой транзакции
Каждой строке присвоен номер и обозначено, кому они принадлежат – передатчику (C) или приемнику (S). Текст справа от двоеточия содержит действительно передаваемые данные. Трехзначные цифровые комбинации в начале передаваемых строк обозначают коды ответа. Ответ SMTP похож на сообщения-подтверждения о доставке, поскольку появляется лишь в том случае, когда приемник получил данные.
S: 220 mail.ru ESMTP Wed, 07 Sep 2005 09:21:58 +0400
C: Helo XName
S: 250 mx1.mail.ru Hello XName [62.76.36.11]
C: mail from: klimov@mail.ru
S: 250 OK
C: rcpt to: ivanov@yandex.ru
S: 250 Accepted
C: rcpt to: petrov@mail.ru
S: 250 Accepted
C: data
S: 354 Enter message, ending with "." on a line by itself
C: From: klimov@mail.ru
C: To: ivanov@yandex.ru
C: Subject: Тема
C: Текст сообщения
C: простой
C: .
S: 250 OK id=1ECsNi-000ATp-00
C: quit
S: 221 mx1.mail.ru closing connection
Как видно из строки 1, когда SMTP-клиент устанавливает TCP-соединение с портом протокола 25, SMTP-сервер отвечает кодом 220. Это означает, что соединение успешно установлено.
После того как почтовые агенты компьютеров установили соединение и обменялись приветствиями, первой командой, согласно спецификации, должна быть команда HELO. Как указано в строке 2, SMTP-клиент передает HELO, указывая имя своего компьютера в качестве аргумента (имя может быть вымышленным).
В ответ на HELO приемник выдает код 250, сообщая передатчику о том, что команда принята и обработана.
После установления TCP-соединения и идентификации (при помощи HELO) SMTP-клиент приступает к почтовой транзакции. Для начала он выполняет одну из следующих команд: MAIL, SEND, SOML или SAML. В нашем примере использована команда MAIL.
После того как сервер выдал код ответа 250 (строка 5), согласившись обработать сообщение от klimov@mail.ru, необходимо указать получателя сообщения. Это делается при помощи команды RCPT. Команда RCPT имеет аргумент – имя получателя. На одну команду приходится только одно имя, поэтому, если получателей несколько, команда RCPT выдается несколько раз. В нашем примере команды RCPT выполняются в строках 6 и 8. Выдав команду RCPT, клиент ожидает получить ответ с кодом 250.
После того как посланы все команды RCPT, клиент начинает передачу данных при помощи команды DATA. В строке 10 показано, как клиент (передатчик) высылает команду DATA, в строке 11 – как сервер отвечает кодом 354. Этот код означает, что передача данных разрешена и должна заканчиваться комбинацией CRLF-точка-CRLF (новой строкой, содержащей только точку).
После того как получен код 354, клиент может начать передачу данных. Сервер, в свою очередь, помещает принятые данные в очереди входящих сообщений. Сервер не высылает никаких ответов до тех пор, пока не получит комбинацию CRLF-точка-CRLF от клиента, означающую конец передачи данных. Как показано в строках 17 и 18, в ответ на полученную комбинацию CRLF-точка-CRLF сервер выдает код 250, который означает успешное окончание операции.
Для того чтобы закончить почтовую транзакцию, клиент, по правилам SMTP, обязан послать команду QUIT. Сервер, в свою очередь, отвечает кодом 221. Этот код подтверждает клиенту, что соединение будет закрыто, после чего соединение действительно закрывается.
В любой момент во время транзакции клиент может использовать команды NOOP, HELP, EXPN и VRFY. В ответ на каждую команду сервер высылает клиенту определенную информацию. В зависимости от ответа, клиент может предпринять определенные действия, однако в спецификации SMTP это не оговаривается.