Компьютерные Сети 4 курс — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Добавлена страница курса компьютерных сетей для 4 курса ПМИ)
 
м
 
(не показана одна промежуточная версия 3 участников)
Строка 3: Строка 3:
 
Курс читается для студентов 4-го курса [https://cs.hse.ru/ami ПМИ ФКН ВШЭ] специализации "Распределенные системы" в 3 модулe.
 
Курс читается для студентов 4-го курса [https://cs.hse.ru/ami ПМИ ФКН ВШЭ] специализации "Распределенные системы" в 3 модулe.
  
'''Лектор и семинарист:''' Пашков Василий Николаевич
+
'''Лектор:''' Пашков Василий Николаевич
  
Чат для объявлений и обсуждений -- TBD
+
'''Семинаристы:''' Никита Бегишев, Лев Хотов
  
=== Правила выставления оценок ===
+
Чат для объявлений и обсуждений:
TBD
+
 
 +
ОПРОС: [https://forms.gle/tvxmMgY3pvr2Fs2n9 Форма]
 +
 
 +
=== Правила выставления оценок за курс ===
 +
 
 +
Итоговая оценка складывается из 2-х компонент:
 +
* выполнение трех домашних практических заданий
 +
* оценка за письменный экзамен
 +
 
 +
O<sub>накопл</sub> = 3/16 * O<sub>ДЗ1</sub> + 3/16 * O<sub>ДЗ2</sub> + 6/16 * O<sub>ДЗ3</sub>
 +
 
 +
O<sub>итог</sub> = О <sub>накопл</sub> + 4/16 * О<sub>экз</sub>
 +
 
 +
Накопленная и итоговая оценки округляются арифметически.
  
 
=== Текущие результаты ===
 
=== Текущие результаты ===
TBD
+
 
 +
* [https://drive.google.com/file/d/1eRissCslDuiBGBk4whgwQ0Tyun7TyelG/view?usp=sharing Таблица с текущими результатами]
  
 
== Лекции ==
 
== Лекции ==
TBD
+
{| class="wikitable" style="width: 60%;"
 +
|-
 +
! Неделя !! Дата !! Темы
 +
|-
 +
| 1
 +
| 11.01.2020
 +
| Введение в компьютерные сети. Классификация компьютерных сетей. История возникновения и развития глобальной сети Интернет. Архитектура сети Интернет. Модель OSI/ISO. Модель TCP/IP.
 +
|-
 +
| 2
 +
| 18.01.2020
 +
| Прикладной уровень. Архитектура и принципы организации сетевых приложений. Служба DNS. Электронная почта. Протоколы HTTP, FTP.
 +
|-
 +
| 3
 +
| 25.01.2020
 +
| Транспортный уровень. Службы транспортного уровня. Протокол UDP. Протокол TCP.
 +
|-
 +
| 4
 +
| 01.02.2020
 +
| Отмена лекции в связи с проведением Олимпиады "Высшая проба".
 +
|-
 +
| 5
 +
| 08.02.2020
 +
| Транспортный уровень. Управление потоком. Протоколы скользящего окна. Перегрузки. Управление перегрузками. AIMD. Max-min справедливость.
 +
|-
 +
| 6
 +
| 15.02.2020
 +
| Транспортный уровень. Управление перегрузками: алгоритмы TCP Tahoe, TCP Reno.
 +
|-
 +
| 7
 +
| 22.02.2020
 +
| [вторая пара] Сетевой уровень. IP адресация. Протоколы IPv4 и IPv6. Службы ICMP, DHCP, NAT, PAT. Принцип работы маршрутизатора. <br>
 +
[третья пара] Сетевой уровень. Задачи сетевого уровня. Алгоритмы маршрутизации. Маршрутизация по состоянию канала. Маршрутизация по вектору расстояний. Иерархическая маршрутизация.
 +
|-
 +
| 8
 +
| 29.02.2020
 +
| Сетевой уровень. Протоколы маршрутизации (RIP, OSPF, BGP)
 +
|-
 +
| 9
 +
| 07.03.2020
 +
| Канальный уровень. Сервисы канального уровня. Обнаружение и исправление ошибок. Адресация. MAC адрес. Протокол Ethernet. Принцип работы коммутатора. Виртуальные локальные сети (VLAN)
 +
|-
 +
| 10
 +
| 14.03.2020
 +
| Жизненный цикл web-запроса. <br>  Сетевая безопасность. Понятие сетевой безопасности. Основные угрозы и методы защиты.
 +
|-
 +
| 11
 +
| 21.03.2020
 +
| Перспективы развития современных сетей: программно-конфигурируемые сети (SDN) и виртуализация сетевых функций.
 +
|}
  
 
== Семинары ==
 
== Семинары ==
TBD
+
{| class="wikitable" style="width: 60%;"
 +
|-
 +
! Неделя !! Дата !! Темы
 +
|-
 +
| 1
 +
| 11.01.2020
 +
| Отмена семинаров
 +
|-
 +
| 2
 +
| 18.01.2020
 +
| 165 группа: сокеты, RFC 2616
 +
166 группа: стек сетевых протоколов, Wireshark, механизм работы traceroute
 +
|-
 +
| 3
 +
| 25.01.2020
 +
| 165 группа: Wireshark, traceroute, Docker
 +
166 группа: сокеты, RFC 2616, Docker. Код с семинара [https://github.com/lfyuomr-gylo/hse-cs-sockets-intro здесь]
 +
|-
 +
| 4
 +
| 01.02.2020
 +
| 165 группа: Docker network, iperf, ssh tunneling, socat, socks5, private intranet
 +
166 группа: ARP, nmap, ssh tunneling
 +
|-
 +
| 5
 +
| 08.02.2020
 +
| 165 группа: никто не пришёл
 +
166 группа: обсуждение ДЗ 1, SOCKS5 over SSH tunnel, private intranet
 +
|-
 +
| 6
 +
| 15.02.2020
 +
| 165 группа: никто не пришёл
 +
166 группа: повторное обсуждение ДЗ 1
 +
|-
 +
| 7
 +
| 22.02.2020
 +
| 166 группа: перенесен на 29.02
 +
|-
 +
| 8
 +
| 29.02.2020
 +
| 166 группа: 2 пары по iptables & network namespaces. Команды с семинара [https://gist.github.com/lfyuomr-gylo/3e4d9a5b2670e72cf878bd59665c94c9 здесь].
 +
|-
 +
| 9
 +
| 07.03.2020
 +
| 166 группа: обсуждали варианты реализации RPC с использованием голых сокетов, JSON, Protobuf, HTTP, gRPC
 +
|-
 +
| 10
 +
| 14.03.2020
 +
| 166 группа: обсуждали способы организации авторизации в сетевом приложении. Пример кода для работы с JWT [https://github.com/notWhaleB/hse-networks-jwt-example/tree/jwt-example здесь].
 +
|-
 +
| 11
 +
| 21.03.2020
 +
|
 +
|}
  
 
== Домашние задания ==
 
== Домашние задания ==
TBD
 
  
== Контрольные работы ==
+
'''Отправка работ:'''
TBD
+
  
===Контрольная работа №1===
+
Тема письма : [номер группы] – ДЗ №<N> – Фамилия Имя
  
===Контрольная работа №2===
+
Пример: [165] – ДЗ №3 – Иванов Иван
 +
 
 +
Адрес для отправки работ: '''computer-networks.hse@yandex.ru'''
 +
 
 +
{| class="wikitable"
 +
|-
 +
! !! Задание !! Жесткий дедлайн
 +
|-
 +
| 1
 +
| Домашнее задание №1
 +
| 24 февраля 23:59 MSK
 +
|-
 +
| 2
 +
| Домашнее задание №2
 +
| 15 марта 23:59 MSK
 +
|-
 +
| 3
 +
| Домашнее задание №3
 +
| 26 марта 23:59 MSK (продлен до 02 апреля 23:59 MSK)
 +
|-
 +
|}
 +
 
 +
'''Требования к ДЗ №2:
 +
'''
 +
'''Требования к программе:'''
 +
 
 +
1. Программа должна быть реализована на одном из следующих языков программирования: Python, C, C++, Java.
 +
 
 +
2. Программа должна работать в среде Linux.
 +
 
 +
3. Текст программы должен быть хорошо читаем, структурирован и оформлен в соответствии с правилами оформления программ на соответствующем языке программирования, а также содержать комментарии.
 +
 
 +
4. Запрещено использование каких-либо готовых инструментов, реализующих парсинг GRAPHML или GML форматов.
 +
 
 +
5. Программа должна корректно обрабатывать все возможные ситуации ошибок и некорректного пользовательского ввода.
 +
 
 +
6. Привествуется использование графовых баз данных для хранения и работы с графами(список можно посмотреть, например, здесь: "Википедия: графовая база данных"), но не является обязательным.
 +
 
 +
 
 +
'''В репозитории должен присутствовать README.md файл содержащий:'''
 +
 
 +
1. ФИО, номер группы
 +
 
 +
2. Список библиотек, которые используете в реализации
 +
 
 +
3. Описанием, как собирать (с списком зависимостей, которые нужно предаварительно установить)
 +
 
 +
4. Описание, как запускать вашу программу, как ей пользоваться
 +
 
 +
5. в папку tests положить результаты работы Вашей программы на одной или нескольких топологиях (т.е. GRAPHML или GML файл топологии и соответствующие CSV файлы)
 +
 
 +
6. Тестирование будет проводиться в ОС Ubuntu версии 18.04.4 LTS и выше
  
 
== Экзамен ==
 
== Экзамен ==
TBD
+
 
 +
По окончании курса проводится письменный экзамен.
 +
 
 +
Экзамен состоится '''09 апреля (четверг)''', предварительный план:
 +
* 12:00 - 13:00 - экзамен
 +
* 13:00 - 16:30 - проверка работ, подведение итогов, выставление итоговых оценок.
 +
 
 +
[https://drive.google.com/open?id=101qTYrrblAc0iJhfH7kA4MMWKSih5KsZ Список вопросов к экзамену.]
 +
 
 +
Экзамен будет проводится в дистанционной форме.
 +
Экзамен будет включать в себя:
 +
* теоретические вопросы с любым количеством ответов,
 +
* теоретические вопросы без ответов, требующие написания развернутого ответа
  
 
== Рекомендуемая литература ==
 
== Рекомендуемая литература ==

Текущая версия на 15:45, 7 сентября 2020

О курсе

Курс читается для студентов 4-го курса ПМИ ФКН ВШЭ специализации "Распределенные системы" в 3 модулe.

Лектор: Пашков Василий Николаевич

Семинаристы: Никита Бегишев, Лев Хотов

Чат для объявлений и обсуждений:

ОПРОС: Форма

Правила выставления оценок за курс

Итоговая оценка складывается из 2-х компонент:

  • выполнение трех домашних практических заданий
  • оценка за письменный экзамен

Oнакопл = 3/16 * OДЗ1 + 3/16 * OДЗ2 + 6/16 * OДЗ3

Oитог = О накопл + 4/16 * Оэкз

Накопленная и итоговая оценки округляются арифметически.

Текущие результаты

Лекции

Неделя Дата Темы
1 11.01.2020 Введение в компьютерные сети. Классификация компьютерных сетей. История возникновения и развития глобальной сети Интернет. Архитектура сети Интернет. Модель OSI/ISO. Модель TCP/IP.
2 18.01.2020 Прикладной уровень. Архитектура и принципы организации сетевых приложений. Служба DNS. Электронная почта. Протоколы HTTP, FTP.
3 25.01.2020 Транспортный уровень. Службы транспортного уровня. Протокол UDP. Протокол TCP.
4 01.02.2020 Отмена лекции в связи с проведением Олимпиады "Высшая проба".
5 08.02.2020 Транспортный уровень. Управление потоком. Протоколы скользящего окна. Перегрузки. Управление перегрузками. AIMD. Max-min справедливость.
6 15.02.2020 Транспортный уровень. Управление перегрузками: алгоритмы TCP Tahoe, TCP Reno.
7 22.02.2020 [вторая пара] Сетевой уровень. IP адресация. Протоколы IPv4 и IPv6. Службы ICMP, DHCP, NAT, PAT. Принцип работы маршрутизатора.

[третья пара] Сетевой уровень. Задачи сетевого уровня. Алгоритмы маршрутизации. Маршрутизация по состоянию канала. Маршрутизация по вектору расстояний. Иерархическая маршрутизация.

8 29.02.2020 Сетевой уровень. Протоколы маршрутизации (RIP, OSPF, BGP)
9 07.03.2020 Канальный уровень. Сервисы канального уровня. Обнаружение и исправление ошибок. Адресация. MAC адрес. Протокол Ethernet. Принцип работы коммутатора. Виртуальные локальные сети (VLAN)
10 14.03.2020 Жизненный цикл web-запроса.
Сетевая безопасность. Понятие сетевой безопасности. Основные угрозы и методы защиты.
11 21.03.2020 Перспективы развития современных сетей: программно-конфигурируемые сети (SDN) и виртуализация сетевых функций.

Семинары

Неделя Дата Темы
1 11.01.2020 Отмена семинаров
2 18.01.2020 165 группа: сокеты, RFC 2616

166 группа: стек сетевых протоколов, Wireshark, механизм работы traceroute

3 25.01.2020 165 группа: Wireshark, traceroute, Docker

166 группа: сокеты, RFC 2616, Docker. Код с семинара здесь

4 01.02.2020 165 группа: Docker network, iperf, ssh tunneling, socat, socks5, private intranet

166 группа: ARP, nmap, ssh tunneling

5 08.02.2020 165 группа: никто не пришёл

166 группа: обсуждение ДЗ 1, SOCKS5 over SSH tunnel, private intranet

6 15.02.2020 165 группа: никто не пришёл

166 группа: повторное обсуждение ДЗ 1

7 22.02.2020 166 группа: перенесен на 29.02
8 29.02.2020 166 группа: 2 пары по iptables & network namespaces. Команды с семинара здесь.
9 07.03.2020 166 группа: обсуждали варианты реализации RPC с использованием голых сокетов, JSON, Protobuf, HTTP, gRPC
10 14.03.2020 166 группа: обсуждали способы организации авторизации в сетевом приложении. Пример кода для работы с JWT здесь.
11 21.03.2020

Домашние задания

Отправка работ:

Тема письма : [номер группы] – ДЗ №<N> – Фамилия Имя

Пример: [165] – ДЗ №3 – Иванов Иван

Адрес для отправки работ: computer-networks.hse@yandex.ru

Задание Жесткий дедлайн
1 Домашнее задание №1 24 февраля 23:59 MSK
2 Домашнее задание №2 15 марта 23:59 MSK
3 Домашнее задание №3 26 марта 23:59 MSK (продлен до 02 апреля 23:59 MSK)

Требования к ДЗ №2: Требования к программе:

1. Программа должна быть реализована на одном из следующих языков программирования: Python, C, C++, Java.

2. Программа должна работать в среде Linux.

3. Текст программы должен быть хорошо читаем, структурирован и оформлен в соответствии с правилами оформления программ на соответствующем языке программирования, а также содержать комментарии.

4. Запрещено использование каких-либо готовых инструментов, реализующих парсинг GRAPHML или GML форматов.

5. Программа должна корректно обрабатывать все возможные ситуации ошибок и некорректного пользовательского ввода.

6. Привествуется использование графовых баз данных для хранения и работы с графами(список можно посмотреть, например, здесь: "Википедия: графовая база данных"), но не является обязательным.


В репозитории должен присутствовать README.md файл содержащий:

1. ФИО, номер группы

2. Список библиотек, которые используете в реализации

3. Описанием, как собирать (с списком зависимостей, которые нужно предаварительно установить)

4. Описание, как запускать вашу программу, как ей пользоваться

5. в папку tests положить результаты работы Вашей программы на одной или нескольких топологиях (т.е. GRAPHML или GML файл топологии и соответствующие CSV файлы)

6. Тестирование будет проводиться в ОС Ubuntu версии 18.04.4 LTS и выше

Экзамен

По окончании курса проводится письменный экзамен.

Экзамен состоится 09 апреля (четверг), предварительный план:

  • 12:00 - 13:00 - экзамен
  • 13:00 - 16:30 - проверка работ, подведение итогов, выставление итоговых оценок.

Список вопросов к экзамену.

Экзамен будет проводится в дистанционной форме. Экзамен будет включать в себя:

  • теоретические вопросы с любым количеством ответов,
  • теоретические вопросы без ответов, требующие написания развернутого ответа

Рекомендуемая литература

  • Таненбаум Э. С., Уэзеролл Д. Компьютерные сети. 5-е издание. Издательство Питер - 2012.
  • Куроуз Дж. Ф. Компьютерные сети : многоуровневая архитектура Интернета. Издательство Питер - 2004.
  • Куроуз Джеймс, Росс Кит. Компьютерные сети. Нисходящий подход.
  • Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. 4-е издание. Учебник. СПб.: Питер, 2012. - 944с