Скачать 122.08 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Московский государственный институт электроники и математики (технический университет) «УТВЕРЖДАЮ» Проректор по учебной работе _____________ А.Ф. Каперко "____"_____________ 2011 г. РАБОЧАЯ ПРОГРАММА Наименование дисциплины: Программирование сетевых приложений Направление подготовки: 230100 Информатика и вычислительная техника Магистерская программа: Сети ЭВМ и телекоммуникации Квалификация выпускника: магистр Форма обучения: очная Факультет: Автоматики и вычислительной техники Кафедра: Вычислительные системы и сети Москва 2011 1. Цели и задачи дисциплины: Целью и задачами изучения дисциплины является получение знаний принципов разработки независимых от программной и аппаратной платформы многопоточных сетевых приложений, использующих протоколы TCP и UDP. Студенты должны уметь выбирать подходящие под задачу тип сетевого протокола, модель сетевого ввода-вывода, а также модель клиентского и серверного приложения; разрабатывать сетевое программного обеспечение с использованием выбранных моделей, пользоваться современными средствами разработки приложений. 2. Место дисциплины в структуре ООП Дисциплина относится к дисциплинам профессионального цикла. Дисциплина базируется на материале ранее изученной дисциплины «Технология разработки программного обеспечения». Знания и навыки, полученные в результате изучения дисциплины, должны быть использованы в дисциплинах: «Организация распределенных вычислений», «Сетевое программное обеспечение». 3. Требования к результатам освоения дисциплины: Процесс изучения дисциплины направлен на формирование следующих компетенций:
В результате изучения дисциплины студент должен: Знать: назначение и состав прикладного программного интерфейса сокетов, основные отличия реализации этого интерфейса для ОС семейства UNIX и Windows; способы описания адресов сокетов, функции создания, установки режимов, использования и удаления сокетов; модели сетевого ввода-вывода; отличия между многоадресной и широковещательной рассылкой, принципы использования многоадресных групп; основы создания многопоточных сетевых приложений, базовые примитивы синхронизации потоков; основные модели построения многопоточных сетевых приложений. Уметь: выбирать программную платформу для реализации сетевого приложения, модель сетевого ввода-вывода, тип сетевого взаимодействия, тип приложения (однопоточное/многопоточное), модель построения многопоточных серверных приложений. Владеть: методами реализации сетевых приложений с использованием прикладного интерфейса программирования сокетов; средой разработки прикладных сетевых приложений; иметь опыт разработки сетевых программных средств. 4. Объем дисциплины и виды учебной работы
5. Содержание дисциплины 5.1. Содержание разделов дисциплины 1. Введение в сетевое программирование. Краткая история развития прикладного программного интерфейса сокетов BSD для UNIX, его дальнейшее развитие и текущее состояние в операционных системах семейств Windows и UNIX. 2. Введение в архитектуру протоколов TCP/IP. Соотношение между OSI/ISO и TCP/IP. Межсетевой протокол IP: заголовок IP-сегмента, IP-адрес, фрагментация IP-сегментов, дополнительные данные IP-заголовка. Протокол управления передачей TCP: заголовок TCP-пакета, номер порта, принцип «скользящего окна», важные данные, этапы TCP-взаимодействия, таймеры (таймер повторной передачи, таймер возобновления передачи, таймер закрытия связи, таймеры поддержки соединения), алгоритмы повышения эффективности (задержка подтверждения, исключение малых окон, исключение коротких TCP-пакетов, алгоритм медленного старта). Протокол дейтаграмм пользователя UDP. Межсетевой протокол управляющих сообщений ICMP. 3. Интерфейсы прикладного программирования WinSock и сокеты UNIX, основные функции сетевого взаимодействия, определенные в стандарте POSIX. Введение в сокеты. Структура адреса сокетов IPv4 и IPv6, универсальная структура адреса сокетов (sockaddr). Функции преобразования порядка байтов, строковых и двоичных представлений адреса и порта. Базовые функции управления TCP-сокетами: создание (socket), удаление (close), локальное связывание (bind), установка соединения с удаленным узлом (connect), перевод в состояние ожидания подключения (listen). Аргументы функций типа «значение-результат». Функции получения свойств и состояния сокетов (getsockopt, setsockopt), ioctl-команды управления сокетом, преобразования имен и адресов (gethostbyname, gethostbyaddr). Основные отличия UDP-сокетов от TCP-сокетов. Функции получения и отправки данных (read, write), векторный ввод-вывод (readv, writev, sendmsg, recvmsg). Получение размера готовых к приему данных, проблема обрезания UDP-дейтаграмм. Методы создания клиентского приложения, использующего соединения TCP и UDP. 4. Модели сетевого ввода-вывода. Мультиплексирование ввода-вывода (функции select и poll). Блокируемый и неблокируемый ввод-вывод. Ввод-вывод, управляемый сигналом. Асинхронный ввод-вывод. Сравнение моделей ввода-вывода. Создание однопоточного сервера, обслуживающего несколько подключений. 5. Многоадресная и широковещательная рассылка. Многоадресная передача, адрес многоадресной передачи, область его действия. Сравнение многоадресной и широковещательной передачи в локальной сети. Многоадресная передача в глобальной сети. Понятие широковещательной группы, функции вхождения и выхода из широковещательной группы (mcast_join и родственные функции), получение анонсов сеансов многоадресной передачи, отправка и получение данных в широковещательной группе. Создание клиентского приложения, использующего широковещательную и многоадресную рассылку. 6. Многопоточные сетевые приложения. Функции стандарта POSIX для управления программными потоками: создание (pthread_create) и остановка (pthread_join, pthread_exit), управление атрибутами и состоянием (группа функций pthread_attr_*). Прикладные системные функции, безопасные в многопоточной среде. Собственные данные потоков. Ситуации взаимоблокировок и примитивы синхронизации: мьютексы и условные переменные. Создание простого многопоточного сетевого приложения. 7. Обзор моделей построения многопоточных серверных приложений. Однопоточное серверное приложение. Сервер TCP с предварительным порождением процессов без блокировки и вызова accept. Сервер TCP с предварительным порождением процессов и защитой вызова accept блокировкой файла. Сервер TCP с предварительным порождением процессов и защитой вызова accept мьютексом. Сервер TCP с предварительным порождением процессов и передачей дескрипторов. Параллельный сервер TCP с одним потоком для каждого клиента. Сервер TCP с предварительным порождением потоков, каждый из которых вызывает accept. Сервер TCP с предварительным порождением потоков; основной поток вызывает accept. Сравнение моделей. 5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами
5.3. Разделы дисциплин и виды занятий
6. Лабораторный практикум
7. Учебно-методическое и информационное обеспечение дисциплины: а) основная литература:
б) дополнительная литература:
в) программное обеспечение:
8. Материально-техническое обеспечение дисциплины: При выполнении лабораторных работ используются дисплейный класс, состоящий из ПЭВМ типа IBM РС с процессорами архитектуры Intel Pentium 4 и выше, объединенными в локальную сеть, с выходом в Интернет. 9. Методические рекомендации по организации изучения дисциплины: При изучении дисциплины целесообразно давать примеры проектирования упрощенных реализаций реальных сетевых приложений, широко распространенных в сети Интернет: приложения для обмена мгновенными сообщениями, Web-серверы, почтовые и Web-клиенты. Текущий контроль подразумевает регулярную проверку преподавателем правильности выполнения заданий для лабораторных работ. Итоговая аттестация — экзамен. Составитель: / Королев С.В. / Рецензент: / Саксонов Е.А. / Заведующий кафедрой ВСиС: / Вишнеков А.В. / Декан факультета АВТ: / Петросянц К.О. / |
Рабочая программа Шифр и наименование специальности/направления: 080200 Регионоведение 2 Код и наименование дисциплины (в соответствии с Учебным планом): гсэ. В. 04. 1 Политические реформы на Ближнем Востоке | Рабочая программа По дисциплине «В ысокоуровневые методы информатики... Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | ||
Рабочая программа биология /наименование дисциплины/ Для специальности... Рабочая программа по биологии разработана в соответствии с федеральным государственным образовательным стандартом высшего профессионального... | Рабочая программа ботаника /наименование дисциплины/ Для специальности... Рабочая программа по ботанике разработана в соответствии с федеральным государственным образовательным стандартом высшего профессионального... | ||
Рабочая программа дисциплины Международное право (наименование дисциплины)... Рабочая программа учебной дисциплины «Международное право» подготовлена Яблоковым Е. К., старшим преподавателем кафедры общественных... | Рабочая программа дисциплины Профессиональная этика (наименование... Рабочая программа учебной дисциплины «Профессиональная этика» подготовлена Слободян Л. Д. старшим преподавателем кафедры общественных... | ||
Рабочая программа дисциплины Наименование дисциплины: проблемы совершенствования гражданского законодательства | Рабочая программа учебной дисциплины гражданское процессуальное право... Рабочая программа учебной дисциплины одобрена на заседании кафедры трудового, экологического права и гражданского процесса | ||
Учебно-методический комплекс дисциплины: 1с-бухгалтерия (наименование... Наименование документа: «Положение об основной профессиональной образовательной программе по специальности (профессии)» | Рабочая программа дисциплины избирательная система в РФ (наименование... ... | ||
Рабочая программа дисциплины семейное право (наименование дисциплины)... Рабочая программа учебной дисциплины «Семейное право» подготовлена Фофановой А. Ю., к э н., доцентом кафедры экономики | Рабочая программа дисциплины коммерческое право (наименование дисциплины)... Рабочая программа учебной дисциплины «Коммерческое право» подготовлена Фофановой А. Ю., к э н., доцентом кафедры экономики | ||
Рабочая программа дисциплины предпринимательское право (наименование... ... | Рабочая программа дисциплины жилищное право (наименование дисциплины)... Рабочая программа учебной дисциплины «Жилищное право» подготовлена Фофановой А. Ю., к э н., доцентом кафедры экономики | ||
Рабочая программа дисциплины гражданское право (наименование дисциплины)... Рабочая программа учебной дисциплины «Гражданское право» подготовлена Фофановой А. Ю., к э н., доцентом кафедры экономики | Рабочая программа дисциплины финансовое право (наименование дисциплины)... Рабочая программа учебной дисциплины «Финансовое право» подготовлена Фофановой А. Ю., к э н., доцентом кафедры экономики |