Цели данного раздела:
Все упражнения рассчитаны на выполнение на занятии.
Упражнения 1-5 демонстрируют использование соответствующих протоколов. В упражнении 6 (его первая часть может быть выполнена в время выполнения первых четырех упражнений) студенты <заглядывают внутрь> этих протоколов. Вторая часть упражнения 6 знакомит студентов с более сложными случаями использования стека протоколов. Ее надо использовать для:
Все задания в этом разделе рассчитаны на выполнение за 4 занятия.
Определить MAC-адрес по IP-адресу 192.168.200.12 (или по любому другому)
Материалы: STD 0037, утилита "arp" (WinHelp/man)
Материалы: RFC 0792
Выяснить, на каких портах есть открытые соединения (командой netstat)
Выяснить DNS и IP адрес сервера (серверов), отвечающих за входящую почту в указанном домене при помощи nslookup/dig. Домен выбрать по усмотрению преподавателя.
Используя ICMP и DNS (ping и nslookup) продемонстрировать список пингуемых в заданном домене узлов. Также список должен включать в себя информацию о том, какие узлы домена являются почтовыми серверами. Рекомендуется выдать студентам различные домены во избежание повторного использования результатов.
На тройку: привести сам список
На четверку: продемонстрировать процесс получения списка при помощи nslookup и ping
На пятерку: написать скрипт или программу для автоматизации процесса.
Материалы: RFC 1034, RFC 1035, RFC 2821 section 5
Материалы: RFC 894; Ethereal Users Guide
Основная задача этого раздела - научить студентов основам работы с сокетами, а также привить более глубокое понимание различных аспектов использования протоколов транспортного уровня в сетевых приложениях.
Задачи даны по нарастанию сложности. Важно контролировать как понимание принципов работы протоколов, так и библиотек реализации. Особое внимание уделить вопросам корректности работы сетевых приложений, таким как:
Написать приложение, которое показывает количество запущенных копий себя в локальной сети. (1 занятие)
Материалы:
Реализовать передачу/прием данных:
Материалы:
Реализовать свой потоковый протокол с гарантией доставки поверх UDP. Сравнить быстродействие с TCP, модифицировав программы из задания 8 для использования этого протокола. Модифицировать программу так, чтобы она сохраняла данные в указанный файл, и использовать это для сравнения отправленного/принятого файла значительной длины при наличии сбоев в работе сети (2 занятия)
Задачи этого раздела направлены на ознакомление с основными прикладными протоколами Internet. Первая задача (точнее, набор упражнений) дает возможность "заглянуть внутрь" прикладных протоколов и играет такую же роль в понимании соответствующих RFC, как сниффер в понимании работы протоколов более низких уровней.
1 занятие на все:
Забрать почту через POP3, пользуясь telnet.
Материалы: RFC 1939
Отправить почтовое сообщение через SMTP на адрес преподавателя, пользуясь Telnet.
Материалы: RFC 2821
Продемонстрировать разницу между активным и пассивным режимами работы FTP-сервера
Материалы: STD 0009
Используя программу telnet, получить главную страницу сервера stud.novosoft.ru
Материалы: RFC 2616
Написать приложение для проверки обновления опубликованных данных. Общий алгоритм таков: с заданным интервалом приложение должно соединиться с отслеживаемым сервером, и проанализировать, произошли ли изменения с заданного момента. В случае обнаружения изменений вывести на экран соответствующую информацию. Компонент, выполняющий непосредственное соединение с сервером и проверку изменений, реализовать с учетом возможности легкой замены. Сделать любые две из следующих подзадач:
Проверка почты. Указывается POP3-подключение. Новизну почты проверять, анализируя заголовки received-by, и сравнивая со временем "последнего прочитанного".
Материалы: RFC 1939
То же самое, но на IMAP сервере. Использовать флаг \Recent для определения новой почты
Материалы: RFC 2060
Указывается URL,. Следить за указанным файлом на HTTP и при его изменении скачать его в текущий локальный фолдер.
+ Дополнительный бонус за выбор регулярности проверки на основе заголовка Content-Expiration
Материалы: RFC 2616
То же самое. Дополнительно указывается имя пользователя и пароль.
Материалы: STD 0009
Написать multi-room chat систему, используя IMAP. Использовать соответствия фолдер - комната; письмо - сообщение.
Материалы: RFC 2060