Tasks_CN

advertisement
Задание 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) выдавать краткое описание себя и список опций. Проверка
размера приходящих данных и защита от переполнения буфера.
Download