В курсе рассматриваются технологии сетевого взаимодействия и обработки сетевого трафика. Теоретическая часть курса позволяет изучить базовые термины и определения, необходимые для работы в сфере современных сетевых компьютерных технологий. В этой части курса будут рассмотрены протоколы модели tcp/ip, а также базовые механизмы обработки трафика, применимые к любому стеку протоколов. В практической части рассматриваются избранные задачи данной предметной области, такие как: обеспечение приватности и анонимности сетевого взаимодействия, сетевая адресная трансляция, эффективная обработка большого потока пакетов в различных целях и другие. В этой части курса будут рассмотрены прикладные протоколы, реализующие основные сетевые службы: DNS, DHCP, HTTP, SMTP, gRPC; протоколы, обеспечивающие защищённую передачу данных: TLS, набор протоколов IPSec; протоколы туннелирования: GRE, wireguard; протоколы, реализующие анонимные сети: tor, i2p и технологии, которые они используют: такие как проксирование (на примере socks), одноранговые сети (на примере bittorrent) и другие. В каждой теме, помимо подхода к решению той или иной проблемы будут рассмотрены сложности и ограничения, связанные с выбором конкретной архитектуры на примере конкретных протоколов. Кроме того, студенты получат практические навыки работы с сетевыми утилитами и инструментами для анализа и отладки сетевых проблем.
Тематический план курса
Темы лекций:
Введение. Модели сетевого взаимодействия: Введение в курс. Обзор моделей сетевого взаимодействия. Понятие инкапсуляции, понятие протокола. Заголовки и данные. Плоскость управления и передачи данных (Control plane и Data plane).
Сетевой, канальный и физический уровни модели OSI: Понятие PDU. Отличия задач, решаемых сетевым (L3) и канальным (L2) уровнями модели OSI. Механизмы обработки сетевого трафика: распознавание и разбор, копирование, пересылка данных, модификация заголовков, фрагментирование данных, разрешение сетевых адресов.
Сетевой уровень модели OSI: Сетевая адресная трансляция. Способы межсетевого взаимодействия. Обзор протоколов динамической маршрутизации.
Транспортный и сеансовый уровни модели OSI: Сравнение протоколов TCP и UDP. Гарантии целостности, доставки, порядка доставки. Понятие сеанса. Приоритезация, управление формой трафика.
Верхние уровни модели OSI (сеансовый, представления и прикладной): Выполнение задач информационной безопасности в контексте сетей передачи данных. Реализация сетевых служб.
Оверлейные сети: Обзор необходимой инфраструктуры. Варианты применения. Использование оверлейных сетей в распределённой обработке и хранении информации.
Одноранговые сети: Прямое взаимодействие клиентов друг с другом. Достоинства и недостатки одноранговых сетей на примере протокола bittorrent.
Темы семинаров:
Создание виртуального стенда: Создание виртуального стенда для настройки сетевого взаимодействия. Режимы работы сетей в средах виртуализации. Работа с программами захвата трафика.
Работа с сетевыми интерфейсами в ОС на основе Linux: Задание параметров работы канального уровня. Работа протокола ARP. Виртуальные локальные компьютерные сети (VLAN). Взаимодействие с параметрами сетевого уровня, протоколы IP и ICMP.
Взаимодействие с интерфейсом сетевых сокетов ОС на основе Linux: Формирование пакетов канального, сетевого уровня средствами «сырых» сокетов. Перехват трафика.
Взаимодействие с прикладными протоколами на примере DNS: Обзор структуры и схем работы протокола DNS. Реализация DNS клиента. Обзор механизмов кэширования.
Применение криптографии в обработке сетевого трафика: Работа с библиотекой openssl, шифрование, генерация ключей и сертификатов.
Проксирование: Обзор протоколов туннелирования в общем и проксирования в частности.
Оверлейные сети: Демонстрация возможности оверлейных сетей на практике. Хостинг сайта, хостинг файла. Работа с анонимными сетями.
Литература:
1. В.Г. Олифер, Н.А. Олифер. Компьютерные сети. Принципы, технологии, протоколы
2. Д.Ф. Куроуз, К.В. Росс. Компьютерные сети. Нисходящий подход
3. Э. Таненбаум Н.Фимстер Д.Уэзеролл Компьютерные сети
4. Ran Gilagi. Network Processors
|