UNIX-DEV-NET. Сетевое программирование в среде Unix (Linux/FreeBSD) [2022]
Высшая инженерная школа СПбПУ (Санкт-Петербургский Политехнический Университет)
Курс посвящен изучению методик создания сетевых приложений в среде Unix, интерфейсов операционной системы, применяемых в сетевом программировании, а так же оптимизации сетевого взаимодействия. Пристальное внимание уделяется параметрам функционирования сетевых протоколов и различным способам организации ввода-вывода.
После окончания данного курса слушатели будут обладать знаниями по следующим направлениям:
- Использование интерфейса сокетов для создания сетевых приложений;
- Использование параметров сокетов для оптимизации сетевого взаимодействия;
- Выбор и реализация необходимой модели ввода-вывода;
- Широковещательная и групповая передача данных;
- Управление параметрами функционирования стека TCP/IP;
- Доступ к канальному и сетевому уровням.
1. Проектирование и реализацию сетевых приложений в среде Unix.
Модуль 1. Введение в технологию TCP/IP
- Сетевой уровень: Протокол IPv4, Протокол IPv6
- Транспортный уровень: Протокол TCP, Протокол UDP
- Уровень приложения: Текстовые протоколы, Бинарные протоколы
- Структура адреса сокета
- Функции для работы с адресами: inet_pton, inet_ntop, sock_ntop и др.
- Создание сокета: функция socket
- Клиентский сокет: функция connect
- Серверный сокет: функции bind, listen и accept
- Получение параметров сокета: функции getsockname и getpeername
- Чтение и запись в сокет: функции read, write и их особенности при взаимодействии с сокетами.
- Закрытие сокета: функция close.
- Система DNS и её альтернативы
- Получение адреса хоста: функция gethostbyname
- Получение имени хоста: функция gethostbyaddr
- Преобразования номеров портов и имён служб: функции getservbyname и getservbyport
- Универсальная функция преобразования имён и адресов: getaddrinfo
- Общие параметры сокетов
- Параметры сокетов TCP
- Установка и получение параметров: функции setsockopt и getsockopt
- Тайм-ауты сокетов и способы их установки
- Дополнительные функции ввода-вывода: recv, readv, recvmsg, send, writev, sendmsg.
- Внеполосные данные протокола TCP: приём и отправка
- Присоединённые и неприсоединённые сокеты UDP
- Чтение и запись в неприсоединённый сокет: функции recvfrom и sendto
- Получение параметров дейтаграммы с помощью функции recvmsg.
- Способы повышения надёжности протокола UDP
- Свойства демонов.
- Создание процесса-демона.
- Конфигурирование демона: опции командной строки и конфигурационные файлы.
- Создание парсера конфигурационных файлов с помощью библиотеки libconfuse.
- Вывод сообщений: функция syslog.
Продажник