- •Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
- •Учебно-методический комплекс
- •1. Рабочая учебная программа дисциплины
- •1.1. Цели и задачи дисциплины
- •1.2. Структура и объем дисциплины Распределение фонда времени по семестрам, неделям, видам занятий
- •1.3. Содержание дисциплины Распределение фонда времени по темам и видам занятий
- •1.4. Требования к уровню освоения дисциплины и формы текущего и промежуточного контроля
- •Примерный перечень вопросов для подготовки к экзамену по дисциплине «Сети эвм и телекоммуникации»
- •1.5. Содержание самостоятельной работы
- •Распределение самостоятельной работы студентов по темам с указанием времени
- •Содержание каждого вида самостоятельной работы и вида контроля
- •2. Учебно-методическое пособие
- •2.1. Теоретические сведения
- •2.1.1. Введение
- •2.1.2.1. Эталонная модель osi
- •2.1.2.2. Аппаратура локальных сетей
- •2.1.2.3. Стандартные сетевые протоколы
- •2.1.2.4. Протоколы высоких уровней
- •2.1.2.5. Взаимодействие между стеками протоколов
- •2.1.2.6. Стандартные сетевые программные средства
- •2.1.2.7. Применение модели osi
- •2.1.2.8. Методы и технологии проектирования средств телекоммуникаций
- •2.1.3. Конфигурации локальных вычислительных сетей и методы доступа в них
- •2.1.3.1. Топология локальных сетей
- •2.1.3.2. Назначение пакетов и их структура
- •2.1.3.3. Методы управления обменом
- •2.1.3.4. Метод управления обменом csma/cd
- •2.1.3.5. Оценка производительности сети
- •2.1.3.6. Использование помехоустойчивых кодов для обнаружения ошибок в сети
- •2.1.4. Сети эвм с моноканалом и кольцевые. Проектирование сетей эвм по принципу «клиент-сервер»
- •2.1.4.1. Сети Ethernet и Fast Ethernet
- •2.1.4.2. Сеть Token-Ring
- •2.1.4.3. Сеть fddi
- •2.1.4.4. Сеть 100vg-Any lan
- •2.1.4.5. Сверхвысокоскоростные сети
- •2.1.4.6. Беспроводные сети
- •2.1.4.7. Стандартные сегменты семейства Ethernet
- •2.1.4.8. Стандартные сегменты Fast Ethernet
- •2.1.4.9. Автоматическое определение типа сети (Auto-Negotiation)
- •2.1.4.10. Производительность эвм и информационно-вычислительных сетей
- •2.1.4.11. Проектирование сетей эвм по принципу «клиент-сервер»
- •2.1.5. Конфигурации глобальных сетей и методы коммутации в них. Менеджмент в телекоммуникационных системах
- •2.1.5.1. Глобальные связи компьютерных сетей
- •2.1.5.2. Глобальные связи на основе выделенных каналов
- •2.1.5.3. Глобальные сети на основе коммутации каналов
- •2.1.5.4. Глобальные сети с коммутацией пакетов
- •2.1.6. Аппаратные средства телекоммуникации
- •2.1.6.1. Аппаратные средства локальных сетей
- •2.1.6.2. Аппаратные средства глобальных сетей
- •2.1.7. Составные и корпоративные сети
- •2.1.7.1. Принципы построения составных сетей
- •2.1.7.2. Алгоритмы и протоколы выбора маршрута
- •2.1.7.3. Иерархическая маршрутизация
- •2.1.7.4. Общие сведения о корпоративных сетях
- •2.1.7.5. Уровни и протоколы
- •2.1.7.6. Структура территориальных сетей
- •2.1.7.7. Адресация компьютеров в сети Интернет
- •2.1.7.8. Службы обмена данными
- •2.1.7.9. Сервисы сети Интернет
- •2.1.7.10. Виды конференц-связи
- •2.1.8. Программные средства телекоммуникации
- •2.1.8.1. Классификация операционных систем
- •2.1.8.2. Обобщенная структура операционных систем
- •2.1.8.3. Модель клиент-сервер и модель ос на базе микроядра
- •2.1.8.4. Топологии распределенных вычислений
- •2.1.8.5. Функции сетевых операционных систем
- •2.1.8.6. Распределенная обработка приложений
- •2.1.8.7. Адресация прикладных процессов в сетях эвм
- •2.1.8.8. Сетевые службы
- •2.1.9. Обеспечение безопасности телекоммуникационных связей и административный контроль. Проблемы секретности в сетях эвм и методы криптографии
- •2.1.9.1. Общие сведения и определения
- •2.1.9.2. Виды угроз информации
- •2.1.9.3. Классификация угроз безопасности и их нейтрализация
- •2.1.9.4. Методы и средства защиты информации в сетях. Программные средства защиты информации
- •2.1.9.5. Стандартные методы шифрования и криптографические системы
- •2.1.9.6. Администрирование сети
- •2.1.9.7. Безопасность в корпоративных сетях
- •2.1.9.8. Архивирование. Источники бесперебойного питания
- •2.1.10. Тенденции развития телекоммуникационных систем
- •2.3. Лабораторный практикум
- •Распределение тем лабораторных занятий по времени
- •2.3.1. Лабораторная работа № 1 Расчет конфигурации сети Ethernet
- •1.1. Критерии корректности конфигурации
- •1.2. Методика расчета времени двойного оборота и уменьшения межкадрового интервала
- •1.3. Пример расчета конфигурации сети
- •1.4. Задание на лабораторную работу
- •1.5. Справочные данные ieee
- •2.3.2. Лабораторная работа № 2 Изучение структуры ip-адреса
- •2.1. Типы адресов стека tcp/ip
- •2.2. Классы ip-адресов
- •2.3. Особые ip-адреса
- •2.4. Использование масок в ip-адресации
- •2.5. Задание на лабораторную работу
- •2.3.3. Лабораторная работа № 3 Взаимодействие прикладных программ с помощью транспортного протокола тср
- •3.1. Транспортный протокол tcp
- •3.2. Транспортный протокол udp
- •3.3. Порты, мультиплексирование и демультиплексирование
- •3.4. Логические соединения
- •3.5. Программирование обмена данными на основе транспортных протоколов
- •3.6 Пример реализации простейшего клиент-серверного приложения на основе сокетов
- •3.7. Задание на лабораторную работу
- •3.8. Справочные данные Основные свойства компонента ServerSocket:
- •2.3.4. Лабораторная работа № 4 Взаимодействие прикладных программ с помощью протоколов электронной почты smtp и pop3
- •4.1. Модель протокола, команды и коды ответов smtp
- •4.2. Кодировка сообщений
- •4.3. Процесс передачи сообщений
- •4.4. Пример последовательности команд почтовой транзакции
- •4.5. Модель протокола рор3, его назначение и стадии рор3-сессии
- •4.6. Формат сообщений
- •4.7. Процесс получения сообщений. Команды и ответы протокола рор3
- •4.8. Задание на лабораторную работу
- •4.9. Справочные данные
- •2.3.5. Лабораторная работа № 5 Взаимодействие прикладных программ с помощью протокола передачи данных ftp
- •5.1. Назначение и модели работы протокола ftp
- •5.2. Особенности управления процессом обмена данными
- •5.3. Команды и ответы протокола ftp
- •5.4. Задание на лабораторную работу
- •5.5. Справочные данные
- •2. Команды управления потоком данных.
- •3. Команды ftp-сервиса.
- •2.3.6. Лабораторная работа № 6 Построение и исследование компьютерных сетей с помощью системы NetCracker
- •6.1. Основы компьютерной системы NetCracker
- •6.2. Задание на лабораторную работу
- •2.3.7. Лабораторная работа № 7 Изучение алгоритма маршрутизации ospf
- •7.1. Алгоритмы маршрутизации
- •7.2. Задание на лабораторную работу
- •3. Учебно-методическое обеспечение дисциплины
- •3.1. Перечень основной и дополнительной литературы
- •3.1.1. Основная литература:
- •3.1.2. Дополнительная литература:
- •3.2. Методические рекомендации преподавателю
- •3.3. Методические указания студентам по изучению дисциплины
- •3.4. Методические указания и задания для выполнения курсовой работы
- •3.4.1. Постановка задачи курсовой работы. Обязательное содержание разделов
- •3.4.2. Выбор конфигурации сети Ethernet
- •3.4.3. Выбор конфигурации Fast Ethernet
- •3.4.4. Методика и начальные этапы проектирования сети
- •3.4.5. Выбор с учетом стоимости сети
- •3.4.6. Проектирование кабельной системы
- •3.4.7. Оптимизация и поиск неисправностей в работающей сети
- •3.4.8. Проектирование локальной корпоративной компьютерной сети с помощью системы автоматизированного проектирования NetWizard
- •3.4.9. Правила выполнения и оформления курсовой работы
- •Пример правильного оформления расчета
- •3.5. Учебно-методическая карта дисциплины
- •3.6. Материально-техническое обеспечение дисциплины
- •3.7. Программное обеспечение использования современных информационно-коммуникативных технологий
- •3.8. Технологическая карта дисциплины Поволжский государственный университет сервиса
- •Образец оформления титульного листа лабораторной работы
- •Образец оформления титульного листа журнала отчетов по лабораторным работам
- •Лист обложки пояснительной записки курсовой работы
- •Титульный лист пояснительной записки курсовой работы
- •Поволжский государственный университет сервиса
- •Задание по курсовому проектированию
- •Типовые варианты* задания на выполнение курсовой работы
3.4. Логические соединения
Для надежной передачи данных между двумя прикладными процессами предусматривается установление логического соединения. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров (IP-адрес, номер порта) имеет название сокет (socket).
Каждый взаимодействующий процесс идентифицируется сокетом – парой (IP-адрес интерфейса, номер порта), а каждое соединение – парой сокетов взаимодействующих процессов. Каждый процесс одновременно может участвовать в нескольких соединениях.
Так, например, если (IP1, n1), (IP2, n2), (IP3, n3) – сокеты трех разных процессов, то возможно образование следующих соединений:
– соединение 1 – {(IP1, n1), (IP2, n2)};
– соединение 2 – {(IP1, n1), (IP3, n3)};
– соединение 3 – {(IP2, n2), (IP3, n3)}.
Каждая такая пара однозначно идентифицирует соединение. Сутью же понятия «соединение» является договоренность о параметрах, характеризующих процедуру обмена данными между двумя процессами. В протоколе TCP каждая сторона соединения посылает противоположной стороне следующие параметры:
– максимальный размер сегмента, который она готова принимать;
– максимальный объем данных (возможно несколько сегментов), которые она разрешает другой стороне передавать в свою сторону, даже если та еще не получила подтверждения на предыдущую порцию данных;
– начальный порядковый номер байта, с которого она начинает отсчет потока данных в рамках данного соединения.
После того как в результате переговорного процесса модулей TCP с двух сторон соединения параметры процедуры обмена определены, одни из них остаются постоянными в течение всего сеанса связи, а некоторые адаптивно изменяются.
Когда устанавливается несколько соединений, то может случиться, что несколько машин пошлют запросы на соединение, в которых указаны одинаковые порты источники и получатели. Однако путаницы с соединениями не возникает, потому что IP-адреса у всех машин разные, следовательно, каждое соединение будет однозначно определено своим сокетом.
3.5. Программирование обмена данными на основе транспортных протоколов
TCP должен взаимодействовать не только с протоколами нижележащего уровня, но и с протоколами и приложениями прикладного уровня. Связь с прикладным уровнем осуществляется с помощью набора сервисных примитивов.
Сервисные примитивы определены в стандарте протокола, а для прикладных программ они доступны в форме библиотек работы с сокетами.
При установлении соединения каждая из сторон выполняет некоторые операции, называемые открытием соединения. Открытие может быть пассивным или активным. Как правило, одна из сторон производит активное открытие соединения, а другая – пассивное, тогда соединение устанавливается. Оба режима подчиняются четким правилам. Пассивное соединение еще иногда называют серверным, а активное – клиентским.
При активном соединении процесс прикладного уровня передает программному обеспечению TCP на той же ЭВМ сервисный примитив запроса на установление соединения с номером сокета, после чего TCP отправляет получателю запрос на установление соединения, затем ждет ответа. После установления соединения активный процесс (клиент) может инициировать прием или передачу данных.
При пассивном соединении прикладная программа переводит программное обеспечение TCP в режим ожидания запроса на соединение от удаленной системы. Когда поступает запрос, программное обеспечение TCP осуществляет установку соединения, после чего пассивный процесс (сервер) готов принимать и передавать данные.
Программный интерфейс сокетов изначально был разработан для операционной системы (ОС)UNIX. Библиотека функций, поддерживающих этот интерфейс, входит в ядро всех ОС типа UNIX и Linux. Однако принципы работы с этим программным интерфейсом применимы к большинству ОС, поддерживающих TCP/IP (например, в семействе ОС и оболочек типа Windows программный интерфейс сокетов реализован в динамической библиотеке (Winsock.dll).
Для протокола TCP пассивное (на стороне сервера) соединение с сокетом приводит к выполнению следующих функций:
– создание сокета и установление его типа (в ОС типа UNIX функция socket);
− настройка сокета на конкретное соединение (указывает адрес и номер порта – в ОС типа UNIX – функция bind);
− создание очередей клиентов (в ОС типа UNIX – функция listen);
− ожидание приходящего запроса на соединение с сокетом (в ОС типа UNIX – функция accept);
− прием и передача данных от клиента (в ОС типа UNIX – функции read, write, send, recv и их модификации);
− закрытие соединения с клиентом (в ОС типа UNIX – функция close).
Получив входящий запрос на соединение, сервер должен решать как бы две задачи одновременно: обслуживать уже установленное с клиентом соединение в соответствии с прикладным протоколом (принимать и отдавать данные клиенту) и ожидать поступления новых запросов на соединение от других клиентов. Обычно в развитых ОС (к ним относятся все современные ОС) эта проблема решается за счет возможностей параллельного выполнения нескольких процессов. Сервер может породить новый процесс (или новую цепочку выполнения – thread), который и должен будет заняться обслуживанием уже установленного соединения, а основной процесс сервера может закрыть текущее соединение и вновь вернуться к ожиданию запросов на соединение от других клиентов. В ОС типа UNIX создание нового процесса решается с помощью функции fork, при этом за вновь созданным процессом сохраняются все соединения, сделанные в основном процессе.
Для протокола TCP активное (на стороне клиента) соединение с сокетом приводит к выполнению следующих функций:
− создание сокета и установление его типа (в ОС типа UNIX функция socket);
− установление соединения с сервером (указывает адрес и номер порта – в ОС типа UNIX – функция connect);
− прием и передача данных (в ОС типа UNIX – функции read, write, send, recv и их модификации);
− закрытие соединения с сервером (в ОС типа UNIX – функция close).
Клиент, как правило, не требует для своей работы параллельного выполнения нескольких процессов.
В среде программирования Borland Delphi существуют специальные классы, которые позволяют выполнять те же действия, что и библиотека сокетов в ОС UNIX. Они взаимодействуют с библиотекой Winsock.dll на основе специальных технологий ОС (ActiveX технологии и COM-объекты). В среде Borland Delphi версии 3.0 для целей клиентского и серверного соединений служит класс объектов TTCP; а в среде Borland Delphi версии 5.0 и выше для клиентского соединения существует класс объектов TClientSocket, а для серверного – TServerSocket. Естественно, пользователь может на основе базовых классов разрабатывать свои собственные классы, которые будут поддерживать соединения по определенным им самим прикладным протоколам.
Для того чтобы создать сокет, достаточно создать экземпляр объекта выбранного класса (TTCP – в среде Borland Delphi версии 3.0 на страничке компонент «Internet», TClientSocket или TServerSocket – в среде Borland Delphi версии 5.0 и выше также на страничке компонент «Internet»). Это можно выполнить при проектировании приложения в среде разработки или же средствами языка программирования при выполнении приложения. Чтобы специфицировать (настроить) сокет, необходимо созданному экземпляру объекта присвоить нужные значения в указанные свойства (properties) – как правило, это свойства с именами вида «Port» и «Host» (имена и состав свойств зависят от версии среды разработки). Это тоже можно сделать как в режиме проектирования приложения, так и командами присвоения свойств объекта в тексте программы. После этого сокет инициализирован и с ним можно работать.
Для работы сокета клиента необходимо открыть сокет (процедура Open устанавливает в Thru свойство Active), затем использовать процедуры установления соединения, передачи и приема данных, а в конце работы закрыть сокет (процедура Close). При удалении экземпляра объекта автоматически прекратит существование и связанный с ним сокет. Краткое описание основных свойств, событий и методов объектов приведено в п. 3.8 «Справочные данные».
По установлению соединения наступит событие, которое программист должен соответствующим образом обработать. В среде Borland Delphi версии 3.0 программист сам должен создавать потоки выполнения для обслуживания соединения (для выполнения потоков служат экземпляры класса объектов TThread), а в среде Borland Delphi версии 5.0 и выше это можно сделать в автоматическом режиме.
Более подробную информацию о функциях программного интерфейса с сокетами можно получить в справке соответствующей среды разработки или специализированной литературе.