Материалы курса "Сетевые технологии" — различия между версиями
Материал из SEWiki
Antonk (обсуждение | вклад) |
(→Лабораторные работы) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | == Результаты == | ||
+ | |||
+ | [https://docs.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0Aif17q2hwUt4dEExQVBKc2syeV9EVXY5NjZMbnBaQlE&output=html Текущий рейтинг] | ||
+ | |||
== Репозиторий == | == Репозиторий == | ||
[http://code.google.com/p/spbau-network-2011/source/checkout GIT GoogleCode] | [http://code.google.com/p/spbau-network-2011/source/checkout GIT GoogleCode] | ||
Строка 5: | Строка 9: | ||
=== Лекция 30 сентября === | === Лекция 30 сентября === | ||
− | |||
[[Медиа:Network_Sockets_20110930.pdf | Сокеты]] | [[Медиа:Network_Sockets_20110930.pdf | Сокеты]] | ||
+ | === Лекция 07 октября === | ||
+ | [[Медиа:Network_Sockets02_20111007.pdf | Сокеты-2]] | ||
== Лабораторные работы == | == Лабораторные работы == | ||
Строка 22: | Строка 27: | ||
## traceroute | ## traceroute | ||
## icmpaddrmask (позволяет узнать маску сети по IP) | ## icmpaddrmask (позволяет узнать маску сети по IP) | ||
+ | |||
+ | === Задание на 21 октября === | ||
+ | |||
+ | Написать чат. Спецификация: | ||
+ | * В начале работы клиент находит все сервера в сети и подключается к одному из них. | ||
+ | * Клиент: '''hello<name><version>''' Сервер: '''n|y<N><commands>''' Здесь N - номер текущеё итерации сервера, version - 1 или 2 (соответствено, простые сообщения и сжатые), y|n - ответ сервера о том, готов ли он работать с этим клиентом, commands - дополнительные команды, которые поддерживает сервер, через ','. | ||
+ | * Клиент: '''bye''' Сервер: без ответа | ||
+ | * Клиент: '''send<message>''' Сервер: без ответа. | ||
+ | * Клиент: '''get<N>''' Сервер: '''<N'><messages_from_N_to_N'-1>''' Сервер передаёт сообщения от за все итерации от N до N'-1 (с последнего запроса и до конца). | ||
+ | * В начале любой команды находится поле <len>. | ||
+ | * Все числа типа uint32_t. | ||
+ | Дополнительно нужно реализовать одно из заданий: | ||
+ | * Поддержка list и history. | ||
+ | * Аутентификация на заднем фоне. | ||
+ | * Настройки пользователя. | ||
+ | |||
+ | === Задание на 25 октября === | ||
+ | |||
+ | На свой курсовой проект нарисовать UML-диаграммы: | ||
+ | # Протокол общения (UML Sequence) | ||
+ | # Формат сообщений (неизвестная UML-диаграмма) | ||
+ | # Usecase (UML) |
Текущая версия на 09:38, 21 октября 2011
Содержание
Результаты
Репозиторий
Лекции
Лекция 30 сентября
Лекция 07 октября
Лабораторные работы
Задание на 7 октября
- Написать TCP эхо-сервер и эхо-клиент.
- Написать UDP эхо-сервер и эхо-клиент. Запустить на одновременное выполнение 1000 клиентов по возможности на нескольких компьютерах. Посмотреть в каком порядке поступают запросы на сервер.
Задание на 14 октября
- Написать утилиту myARP, позволяющую, путем посылки ARP-запроса, узнавать, какой MAC-адрес соответствует указанному IP
- Написать на выбор одну из следующих утилит, использующих протокол ICMP:
- ping
- traceroute
- icmpaddrmask (позволяет узнать маску сети по IP)
Задание на 21 октября
Написать чат. Спецификация:
- В начале работы клиент находит все сервера в сети и подключается к одному из них.
- Клиент: hello<name><version> Сервер: n|y<N><commands> Здесь N - номер текущеё итерации сервера, version - 1 или 2 (соответствено, простые сообщения и сжатые), y|n - ответ сервера о том, готов ли он работать с этим клиентом, commands - дополнительные команды, которые поддерживает сервер, через ','.
- Клиент: bye Сервер: без ответа
- Клиент: send<message> Сервер: без ответа.
- Клиент: get<N> Сервер: <N'><messages_from_N_to_N'-1> Сервер передаёт сообщения от за все итерации от N до N'-1 (с последнего запроса и до конца).
- В начале любой команды находится поле <len>.
- Все числа типа uint32_t.
Дополнительно нужно реализовать одно из заданий:
- Поддержка list и history.
- Аутентификация на заднем фоне.
- Настройки пользователя.
Задание на 25 октября
На свой курсовой проект нарисовать UML-диаграммы:
- Протокол общения (UML Sequence)
- Формат сообщений (неизвестная UML-диаграмма)
- Usecase (UML)