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

Материал из Wiki - Факультет компьютерных наук
Перейти к навигации Перейти к поиску
мНет описания правки
 
(не показано 19 промежуточных версий 2 участников)
Строка 7: Строка 7:
'''Семинаристы:''' Никита Бегишев, Лев Хотов
'''Семинаристы:''' Никита Бегишев, Лев Хотов


Чат для объявлений и обсуждений: [https://t.me/joinchat/ADLxxUwcBPkRuVeN8HscNA telegram]
Чат для объявлений и обсуждений:


ОПРОС: [https://forms.gle/tvxmMgY3pvr2Fs2n9 Форма]
ОПРОС: [https://forms.gle/tvxmMgY3pvr2Fs2n9 Форма]
Строка 34: Строка 34:
| 1  
| 1  
| 11.01.2020
| 11.01.2020
| [https://drive.google.com/open?id=1eqHoCeR_wXDh_DrjJSmUWl4TlJVbZm6i Введение в компьютерные сети. Классификация компьютерных сетей. История возникновения и развития глобальной сети Интернет. Архитектура сети Интернет. Модель OSI/ISO. Модель TCP/IP. ]
| Введение в компьютерные сети. Классификация компьютерных сетей. История возникновения и развития глобальной сети Интернет. Архитектура сети Интернет. Модель OSI/ISO. Модель TCP/IP.
|-
|-
| 2  
| 2  
| 18.01.2020  
| 18.01.2020  
| [https://drive.google.com/open?id=11gkMdBe1H0pc5oYdUjynayRYo41mz9Yn Прикладной уровень. Архитектура и принципы организации сетевых приложений. Служба DNS. Электронная почта. Протоколы HTTP, FTP. ]
| Прикладной уровень. Архитектура и принципы организации сетевых приложений. Служба DNS. Электронная почта. Протоколы HTTP, FTP.
|-
|-
| 3
| 3
| 25.01.2020  
| 25.01.2020  
| [https://drive.google.com/open?id=1DqzFIq2rvBMrMdeHp4jsjg19DurIX9L_ Транспортный уровень. Службы транспортного уровня. Протокол UDP. Протокол TCP.]
| Транспортный уровень. Службы транспортного уровня. Протокол UDP. Протокол TCP.
|-
|-
| 4  
| 4  
| 01.02.2020
| 01.02.2020
| Отмена лекции в связи с проведением Олимпиады "Высшая проба"
| Отмена лекции в связи с проведением Олимпиады "Высшая проба".
|-
|-
| 5  
| 5  
| 08.02.2020
| 08.02.2020
| [https://drive.google.com/open?id=1BT3DMQfBqBkp0P7NnBGREDOIYrSmMtGf Транспортный уровень. Управление потоком. Протоколы скользящего окна. Перегрузки. Управление перегрузками. AIMD.] [https://drive.google.com/open?id=1wewm_yAZBTHDhWRIrVz701zNeFl-yXNW Max-min справедливость.]
| Транспортный уровень. Управление потоком. Протоколы скользящего окна. Перегрузки. Управление перегрузками. AIMD. Max-min справедливость.
|-
|-
| 6
| 6
| 15.02.2020
| 15.02.2020
| [https://drive.google.com/open?id=1fGd-m7qBcm6ReTJrWgqXGoSoSEoSdu1a Транспортный уровень. Управление перегрузками: алгоритмы TCP Tahoe, TCP Reno.]
| Транспортный уровень. Управление перегрузками: алгоритмы TCP Tahoe, TCP Reno.
|-
|-
| 7
| 7
| 22.02.2020
| 22.02.2020
| [вторая пара] [https://drive.google.com/open?id=1VuIsPZXzDrhdNiqamTuk0qSJlDbeaSz1 Сетевой уровень. IP адресация. Протоколы IPv4 и IPv6. Службы ICMP, DHCP, NAT, PAT. Принцип работы маршрутизатора.] <br>
| [вторая пара] Сетевой уровень. IP адресация. Протоколы IPv4 и IPv6. Службы ICMP, DHCP, NAT, PAT. Принцип работы маршрутизатора. <br>
[третья пара] [https://drive.google.com/open?id=1yxT5JIHtUda5mBCm1HWfGRm_D6RM5T4Y Сетевой уровень. Задачи сетевого уровня. Алгоритмы маршрутизации. Маршрутизация по состоянию канала. Маршрутизация по вектору расстояний. Иерархическая маршрутизация.]
[третья пара] Сетевой уровень. Задачи сетевого уровня. Алгоритмы маршрутизации. Маршрутизация по состоянию канала. Маршрутизация по вектору расстояний. Иерархическая маршрутизация.
|-
|-
| 8
| 8
| 29.02.2020
| 29.02.2020
| [https://drive.google.com/open?id=11wxkXvc52aZYHL3RtVB21ajlyNGtnDus Сетевой уровень. Протоколы маршрутизации (RIP, OSPF, BGP)]
| Сетевой уровень. Протоколы маршрутизации (RIP, OSPF, BGP)
|-
|-
| 9
| 9
| 07.03.2020
| 07.03.2020
| Канальный уровень. Физический уровень.
| Канальный уровень. Сервисы канального уровня. Обнаружение и исправление ошибок. Адресация. MAC адрес. Протокол Ethernet. Принцип работы коммутатора. Виртуальные локальные сети (VLAN)
|-
|-
| 10
| 10
| 14.03.2020
| 14.03.2020
| Сетевая безопасность.
| Жизненный цикл web-запроса. <br>  Сетевая безопасность. Понятие сетевой безопасности. Основные угрозы и методы защиты.
|-
|-
| 11
| 11
| 21.03.2020  
| 21.03.2020  
| Перспективы развития современных сетей: программно-конфигурируемые сети и виртуализация сетевых функций
| Перспективы развития современных сетей: программно-конфигурируемые сети (SDN) и виртуализация сетевых функций.
|}
|}


Строка 95: Строка 95:
| 25.01.2020  
| 25.01.2020  
| 165 группа: Wireshark, traceroute, Docker
| 165 группа: Wireshark, traceroute, Docker
166 группа: сокеты, RFC 2616, Docker
166 группа: сокеты, RFC 2616, Docker. Код с семинара [https://github.com/lfyuomr-gylo/hse-cs-sockets-intro здесь]
|-
|-
| 4  
| 4  
Строка 118: Строка 118:
| 8
| 8
| 29.02.2020
| 29.02.2020
| 166 группа: 2 пары по iptables & network namespaces
| 166 группа: 2 пары по iptables & network namespaces. Команды с семинара [https://gist.github.com/lfyuomr-gylo/3e4d9a5b2670e72cf878bd59665c94c9 здесь].
|-
|-
| 9
| 9
| 07.03.2020
| 07.03.2020
|  
| 166 группа: обсуждали варианты реализации RPC с использованием голых сокетов, JSON, Protobuf, HTTP, gRPC
|-
|-
| 10
| 10
| 14.03.2020
| 14.03.2020
|  
| 166 группа: обсуждали способы организации авторизации в сетевом приложении. Пример кода для работы с JWT [https://github.com/notWhaleB/hse-networks-jwt-example/tree/jwt-example здесь].
|-
|-
| 11
| 11
Строка 148: Строка 148:
|-
|-
| 1  
| 1  
| [https://drive.google.com/open?id=1lqLXJJuasUK_y-5nZdGob3-0hkAMBKGk Домашнее задание №1]
| Домашнее задание №1
| 24 февраля 23:59 MSK
| 24 февраля 23:59 MSK
|-
|-
| 2  
| 2  
| [https://drive.google.com/open?id=1otJZBt-Ln2Dwtk1bfgomFvWnUgh0UTIb Домашнее задание №2]
| Домашнее задание №2
| 15 марта 23:59 MSK
| 15 марта 23:59 MSK
|-
|-
| 3  
| 3  
|  
| Домашнее задание №3
| 23 марта 23:59 MSK
| 26 марта 23:59 MSK (продлен до 02 апреля 23:59 MSK)
|-
|-
|}
|}


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


Требования к программе:
1. Программа должна быть реализована на одном из следующих языков программирования: Python, C, C++, Java.
1. Программа должна быть реализована на одном из следующих языков программирования: Python, C, C++, Java.
2. Программа должна работать в среде Linux.
2. Программа должна работать в среде Linux.
3. Текст программы должен быть хорошо читаем, структурирован и оформлен в соответствии с правилами оформления программ на соответствующем языке программирования, а также содержать комментарии.
3. Текст программы должен быть хорошо читаем, структурирован и оформлен в соответствии с правилами оформления программ на соответствующем языке программирования, а также содержать комментарии.
4. Запрещено использование каких-либо готовых инструментов, реализующих парсинг GRAPHML или GML форматов.
4. Запрещено использование каких-либо готовых инструментов, реализующих парсинг GRAPHML или GML форматов.
5. Программа должна корректно обрабатывать все возможные ситуации ошибок и некорректного пользовательского ввода.
5. Программа должна корректно обрабатывать все возможные ситуации ошибок и некорректного пользовательского ввода.
6. Привествуется использование графовых баз данных для хранения и работы с графами(список можно посмотреть, например, здесь: "Википедия: графовая база данных"), но не является обязательным.
6. Привествуется использование графовых баз данных для хранения и работы с графами(список можно посмотреть, например, здесь: "Википедия: графовая база данных"), но не является обязательным.


В репозитории должен присутствовать README.md файл содержащий:
 
'''В репозитории должен присутствовать README.md файл содержащий:'''
 
1. ФИО, номер группы
1. ФИО, номер группы
2. Список библиотек, которые используете в реализации
2. Список библиотек, которые используете в реализации
3. Описанием, как собирать (с списком зависимостей, которые нужно предаварительно установить)
3. Описанием, как собирать (с списком зависимостей, которые нужно предаварительно установить)
4. Описание, как запускать вашу программу, как ей пользоваться
4. Описание, как запускать вашу программу, как ей пользоваться
5. в папку tests положить результаты работы Вашей программы на одной или нескольких топологиях (т.е. GRAPHML или GML файл топологии и соответствующие CSV файлы)
5. в папку tests положить результаты работы Вашей программы на одной или нескольких топологиях (т.е. GRAPHML или GML файл топологии и соответствующие CSV файлы)
6. Тестирование будет проводиться в ОС Ubuntu версии 18.04.4 LTS и выше
6. Тестирование будет проводиться в ОС Ubuntu версии 18.04.4 LTS и выше


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


Длительность экзамена 1 час (60 мин)
Экзамен состоится '''09 апреля (четверг)''', предварительный план:
* 12:00 - 13:00 - экзамен
* 13:00 - 16:30 - проверка работ, подведение итогов, выставление итоговых оценок.
 
[https://drive.google.com/open?id=101qTYrrblAc0iJhfH7kA4MMWKSih5KsZ Список вопросов к экзамену.]


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


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

Текущая версия от 12: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с