Материалы курса "Сетевые технологии" — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Лабораторные работы)
 
(не показаны 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

Результаты

Текущий рейтинг

Репозиторий

GIT GoogleCode

Лекции

Лекция 30 сентября

Сокеты

Лекция 07 октября

Сокеты-2

Лабораторные работы

Задание на 7 октября

  1. Написать TCP эхо-сервер и эхо-клиент.
  2. Написать UDP эхо-сервер и эхо-клиент. Запустить на одновременное выполнение 1000 клиентов по возможности на нескольких компьютерах. Посмотреть в каком порядке поступают запросы на сервер.

Задание на 14 октября

  1. Написать утилиту myARP, позволяющую, путем посылки ARP-запроса, узнавать, какой MAC-адрес соответствует указанному IP
  2. Написать на выбор одну из следующих утилит, использующих протокол ICMP:
    1. ping
    2. traceroute
    3. 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-диаграммы:

  1. Протокол общения (UML Sequence)
  2. Формат сообщений (неизвестная UML-диаграмма)
  3. Usecase (UML)