Задание 1: I. ARP 1. 2. II. III. Определить MAC-адрес сетевого устройства своего компьютера. Определить производителя этого сетевого устройства. (ipconfig) Определить MAC-адрес сетевого устройства по IP-адресу 192.168.200.12 (или по любому другому, который находиться в вашей сети, можно взять IP-адрес соседнего компьютера). (arp) ICMP 1. Определить задержку передачи от ccfit.nsu.ru или с локальной машины до mail.ngs.ru, gorodok.net, citforum.ru, пользуясь ping. Определить максимальное, среднее и минимальное время для 10 посылок. 2. Выяснить, через сколько узлов проходят пакеты от ccfit.nsu.ru (traceroute) или с локальной машины (tracert) до gorodok.net, citforum.ru, ats44-2.risp.ru. Объяснить результат. 3. Выяснить, какой из участков сети вызывает макс. задержку при обмене с ats442.risp.ru, при помощи pathping (с локальной машины) или mtr (с ccfit.nsu.ru). * Теоретический вопрос: Как реализовать передачу данных с хоста А на хост Б средствами ICMP? Можно ли это сделать? Задание2: I. II. IP Выяснить, на каких портах есть открытые соединения (командой netstat): 1. На локальной машине 2. На ccfit.nsu.ru DNS Выяснить DNS и IP адрес сервера (серверов), отвечающих за почту в указанном домене при помощи nslookup/dig. 1. lenta.ru 2. mail.ru 3. hotmail.com 4. nsu.ru 5. ccfit.nsu.ru 6. google.ru 7. google.com 8. gorodok.net 9. citforum.ru Материалы: RFC 1034 , RFC 1035 Задание3: I. DNS+ICMP Используя ICMP и DNS (ping и nslookup) продемонстрировать список пингуемых в заданном домене узлов. Также список должен включать в себя информацию о том, какие узлы домена являются почтовыми серверами. Имя домена узнать у преподавателя. * 3: привести сам список, * 4: продемонстрировать процесс получения списка при помощи nslookup и ping, * 5: написать скрипт или программу для автоматизации процесса. Материалы: RFC 1034 , RFC 1035, RFC 2821 section 5 Задание 4: Стек протоколов 1. Продемонстрировать работу изученных протоколов (ARP, ICMP, IP, DNS) при помощи перехватчика пакетов Ethereal (Windows) или tcpdump (unix) на примере тех же задач. Рассказать, какое место в стеке протоколов занимает каждый протокол. 2. Продемонстрировать передачу пароля по FTP, HTTP, POP3 используя Ethereal/tcpdump. (Использовать стандартных клиентов данных протоколов.) I. Материалы: RFC 894, Ethereal Users Guide man 8 tcpdump man 8 tcpdump Задание 5: Написать приложение, которое показывает количество запущенных копий себя в локальной сети (UDP, broadcast message). I. Требования: Обработка ошибок и исключений, номер порта задаётся с командной строки, программа должна по -h (--help) выдавать краткое описание себя и список опций. Проверка размера приходящих данных и защита от переполнения буфера. Материалы: Java: JavaDoc по java.net.DatagramSocket, java.net.* С++/Unix: man 7 socket, man 7 UDP C++/Windows: MSDN или CCFIT (доступно только из университетской сети) Задание 6: Приём/передача данных. 1. Написать приложение (клент/сервер), которое "слушает" на указанном порту. При открытии соединения читает из порта, данные никуда не сохраняет, постоянно выводит мгновенную/среднюю скорость передачи. 2. Модифицировать приложение для одновременного приема данных с нескольких клиентов. I. Требования: Обработка ошибок и исключений, номер порта и имя хоста задаются с командной строки, программа должна по -h (--help) выдавать краткое описание себя и список опций. Проверка размера приходящих данных и защита от переполнения буфера. Java: JavaDoc по java.net.Socket, java.net.* С++/Unix: man 7 socket, man 7 TCP C++/Windows: MSDN или CCFIT (доступно только из университетской сети) Задание 7: Приложение (клент/сервер). Приём/передача данных. 1. Написать приложение, которое умеет передавать указанный файл на указанный IP адрес/порт, используя TCP. I. Требования: Обработка ошибок и исключений, номер порта и имя хоста задаются с командной строки, программа должна по -h (--help) выдавать краткое описание себя и список опций. Проверка размера приходящих данных и защита от переполнения буфера. Java: JavaDoc по java.net.Socket, java.net.* С++/Unix: man 7 socket, man 7 TCP C++/Windows: MSDN или CCFIT (доступно только из университетской сети) Задание 8: Реализация потокового протокола поверх UDP Реализовать свой потоковый протокол с гарантией доставки поверх UDP. Сравнить быстродействие с TCP, модифицировав программы из заданий 6 и 7 для использования этого протокола. Модифицировать программу так, чтобы она сохраняла данные в указанный файл, и использовать это для сравнения отправленного/принятого файла значительной длины при наличии сбоев в работе сети. I. Требования: Обработка ошибок и исключений, номер порта и имя хоста задаются с командной строки, программа должна по -h (--help) выдавать краткое описание себя и список опций. Проверка размера приходящих данных и защита от переполнения буфера. Материалы: Java: JavaDoc по java.net.DatagramSocket, java.net.Socket, java.net.* С++/Unix: man 7 socket, man 7 UDP, man 7 TCP C++/Windows: MSDN или CCFIT (доступно только из университетской сети) Задание 9: I. Упражнения с утилитами 1. POP3 Забрать почту через POP3, пользуясь telnet. Материалы: RFC 1939 2. IMAP Забрать почту через IMAP, пользуясь telnet. Материалы: RFC 2060, IMAP (рус) 3. SMTP Отправить почтовое сообщение через SMTP на адрес преподавателя, пользуясь Telnet. Материалы: RFC 2821 4. FTP Продемонстрировать разницу между активным и пассивным режимами работы FTP-сервера Материалы: STD 0009 5. HTTP Используя программу telnet, получить главную страницу сервера stud.novosoft.ru Материалы: RFC 2616 Задание 10: I. Проверка обновлений. Написать приложение для проверки обновления опубликованных данных. Общий алгоритм таков: с заданным интервалом приложение должно соединиться с отслеживаемым сервером, и проанализировать, произошли ли изменения с заданного момента. В случае обнаружения изменений вывести на экран соответствующую информацию. Компонент, выполняющий непосредственное соединение с сервером и проверку изменений, реализовать с учетом возможности легкой замены. Сделать любые две из следующих подзадач: 1. POP3 Проверка почты. Указывается POP3-подключение. Новизну почты проверять, анализируя заголовки received-by, и сравнивая со временем "последнего прочитанного". Материалы: RFC 1939 2. IMAP То же самое, но на IMAP сервере. Использовать флаг \Recent для определения новой почты. Материалы: RFC 2060 3. HTTP Указывается URL. Следить за указанным файлом на HTTP и при его изменении скачать его в текущий локальную директорию. + Дополнительный бонус за выбор регулярности проверки на основе заголовка Content-Expiration Материалы: RFC 2616 4. FTP То же самое. Дополнительно указывается имя пользователя и пароль. Материалы: STD 0009 Требования: Обработка ошибок и исключений, параметры задаются с командной строки, программа должна по -h (--help) выдавать краткое описание себя и список опций. Проверка размера приходящих данных и защита от переполнения буфера. Задание 11: Chat Написать multi-room chat систему, используя IMAP. Использовать соответствия папка комната; письмо - сообщение. Материалы: RFC 2060 Требования: Обработка ошибок и исключений, параметры задаются с командной строки, программа должна по -h (--help) выдавать краткое описание себя и список опций. Проверка размера приходящих данных и защита от переполнения буфера.