Скачать презентацию Операционные системы СОКЕТЫ ЮРГТУ НПИ Мохов В А Скачать презентацию Операционные системы СОКЕТЫ ЮРГТУ НПИ Мохов В А

Сокеты Мохов.ppt

  • Количество слайдов: 20

Операционные системы: СОКЕТЫ ЮРГТУ(НПИ) Мохов В. А. Операционные системы: СОКЕТЫ ЮРГТУ(НПИ) Мохов В. А.

Соединители Беркли n n n Современные ОС в настоящее время базируются на идеологии сокетов Соединители Беркли n n n Современные ОС в настоящее время базируются на идеологии сокетов (socket) Изначально технология сокетов была разработана в университете г. Беркли (США) для системы Unix. Ппоэтому сокеты называют соединителями Беркли (berkeley sockets) Сокеты Windows (Winsock) – это интерфейс прикладного программирования, разработанный на основе сокетов Беркли. Сокеты Беркли используются на различных ОС, а Winsock – для ОС семейства Windows Сокеты реализуют механизм взаимодействия процессов как в распределенных, так и в централизованных ЭВМ Технология сокетов лежит в основе современного сетевого программирования

IP-адрес и порт IP-адрес – это уникальный числовой идентификатор вычислительной системы, состоящий из 4 IP-адрес и порт IP-адрес – это уникальный числовой идентификатор вычислительной системы, состоящий из 4 -х 8 -разрядных чисел разделенных точками Порт – число от 1 до 65535, указывающее, какому приложению предназначен пакет полученных/передаваемых данных

Понятие «сокет» Система, ориентированная на соединение ЭВМ № 1 Вычислительный процесс А ЭВМ № Понятие «сокет» Система, ориентированная на соединение ЭВМ № 1 Вычислительный процесс А ЭВМ № 2 сокеты канал связи между двумя процессами IP 1 СА 1 PA IP 2 СА 2 PB Вычислительный процесс B Сокет = IP-адрес + номер порта

Этапы работы с сокетами 1. Создание 2. Настройка на заданный режим работы 3. Применение Этапы работы с сокетами 1. Создание 2. Настройка на заданный режим работы 3. Применение для организации обмена 4. Ликвидация

Прикладные программы n В прикладных программах сокет является не только комбинацией «IP-адрес + номера Прикладные программы n В прикладных программах сокет является не только комбинацией «IP-адрес + номера порта» . n Сокет – это указатель на структуру данных, где хранятся параметры виртуального канала.

Формирование сокета оператор – socket возвращает – дескриптор сокета, который указывает на элемент таблицы Формирование сокета оператор – socket возвращает – дескриптор сокета, который указывает на элемент таблицы дескрипторов вид элемента таблицы дескрипторов n n n код семейства протоколов; код типа сервиса; локальный IP-адрес; удаленный IP-адрес; номер локального порта; номер удаленного порта. Эта структура позволяет осуществлять несколько соединений между рабочей станцией и, например, WEBсервером, в том числе имеющих разный уровень приоритета

Связь с другим процессом оператор – connect возвращает – значение true (в случае успеха Связь с другим процессом оператор – connect возвращает – значение true (в случае успеха соединения) false (иначе)

Присвоиение определенного IP-адреса заданному сокету оператор – bind возвращает – значение true (в случае Присвоиение определенного IP-адреса заданному сокету оператор – bind возвращает – значение true (в случае успеха присвоения) false (иначе) Для того чтобы определить присвоенный адрес после выполнения оператора bind приложение может выполнить операцию getsockname

Установка сокета в режим ожидания оператор – listen возвращает – true или false При Установка сокета в режим ожидания оператор – listen возвращает – true или false При вызове в качестве параметра для организации очереди приходящих запросов требует указание максимального размера очереди

Извлечение запроса из очереди оператор – accept возвращает – true или false Когда входная Извлечение запроса из очереди оператор – accept возвращает – true или false Когда входная очередь сформирована, программа реализует процедуру accept и переходит в режим ожидания запросов

Разновидности TCPсокетов Серверный – ожидает запросы на установление соединений. Клиентский - инициирует соединение. После Разновидности TCPсокетов Серверный – ожидает запросы на установление соединений. Клиентский - инициирует соединение. После установления соединения между сокетами, клиент и сервер могут передавать и принимать данные или закрыть это соединение.

Схема использования сокетов Вариант соединения N клиентов с одним WEBсервером (при этом клиент № Схема использования сокетов Вариант соединения N клиентов с одним WEBсервером (при этом клиент № 1 сформировал два соединения) Клиенты WEB-сервер IPclient 1: Port 1 IPserver: Port(80) IPclient 1: Port 2 IPserver: Port(80) IPclient 2: Port 1 IPserver: Port(80) IPclient 3: Port 1 IPserver: Port(80) IPclient. N: Port 1 IPserver: Port(80) ……. . .

Ориентация на соединение С интерфейсом сокетов могут работать два вида протоколов: n n ориентированные Ориентация на соединение С интерфейсом сокетов могут работать два вида протоколов: n n ориентированные на соединение (протокол типа TCP, образующий надежный двунаправленный канал передачи данных); не ориентированные на соединение (протокол типа UDP, ненадежный, с пакетами фиксированного размера). При этом каждый тип протокола обслуживается различными наборами функций.

Ориентация на соединение Схема организации взаимодействия между сокетами с протоколами ориентированными на соединение В Ориентация на соединение Схема организации взаимодействия между сокетами с протоколами ориентированными на соединение В этом режиме программе клиента не нужно знать номер порта, поэтому она не обращается к процедуре bind, а для установления связи сразу вызывает оператор connect. Для многих видов услуг в Интернет выделены строго определенные номера портов. С клиентской стороны при этом используются номера портов со значениями из диапазона 1024 -5000. Для каждого нового клиентского запроса в ЭВМ-сервере, как правило, формируется новый процесс. Для пересылки данных могут использоваться команды write, read, send, recv.

Отсутствие ориентации на соединение Сервер вызывает socket и bind, после чего обращается к процедуре Отсутствие ориентации на соединение Сервер вызывает socket и bind, после чего обращается к процедуре recvfrom (вместо read или recv). Программа-клиент в данной схеме обращается к оператору bind и совсем не использует оператор connect (предварительного соединения не нужно). Для передачи запросов и приема откликов здесь служат операторы sendto и recvfrom, соответственно. Схема организации взаимодействия между сокетами с протоколами неориентированными на соединение

Оператор select n n n Помимо рассмотренных операторов для работы с сокетами имеется еще Оператор select n n n Помимо рассмотренных операторов для работы с сокетами имеется еще один - select, довольно часто используемый серверами. Оператор select позволяет процессу отслеживать состояние одного или нескольких соединителей. Для каждого соединителя вызывающая программа может запросить информацию о статусе read, write или error.

Оператор closesocket n Последним важным оператором является closesocket(s), который закрывает канал соединителя с одной Оператор closesocket n Последним важным оператором является closesocket(s), который закрывает канал соединителя с одной из сторон.

Обмен данными Лишь при успешной реализации всех перечисленных операций может начаться обмен данными. Для Обмен данными Лишь при успешной реализации всех перечисленных операций может начаться обмен данными. Для пересылки информации могут использоваться команды n write n read n send n recv

Выводы n n n Сокет — это абстрактное представление конечной точки сетевого соединения. Разработчики Выводы n n n Сокет — это абстрактное представление конечной точки сетевого соединения. Разработчики интерфейса сокетов приспособили его для работы не только с сетями на базе TCP/IP. Интерфейс сокетов пользуется понятиями группы (семейства) протоколов и сетевых адресов для того, чтобы иметь возможность работать с различными сетями. С интерфейсом сокетов могут работать как ориентированные, так и не ориентированные на соединение протоколы. Однако каждый тип протокола обслуживается различными наборами функций. При помощи интерфейса сокетов можно разрабатывать как программы-серверы, так и программы-клиенты, однако каждый тип приложения обслуживается различными функциями. До того как настроить сокет на сетевое соединение, программа должна создать его, вызвав функцию socket. Для соединения сокета с партнером на другом конце недостаточно толькоисоздать его. Кроме функции socket должна вызываться функция connect. То, какие функции вызываются для настройки сокета, зависит от того, серверу или клиенту предназначен этот сокет, а также от того, ориентирован или не ориентирован на соединение выбранный протокол. Для передачи данных в интерфейсе сокетов предназначены пять различных функций. На каждую функцию по передаче данных в интерфейсе сокетов приходится соответствующая функция для приема данных. При помощи интерфейса сокетов можно разрабатывать серверы как с последовательной, так и с параллельной обработкой данных.