Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4,9,10,13,15.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
192.03 Кб
Скачать

2 Winsock пример проги udp

Обзор Winsock

Socket-интерфейс с позиций программиста представляет собой набор системных вызовов, которые можно разделить на четыре группы:

  1. локального управления, к числу которых относятся, например, функции создания сокета и связывания сокета;

  2. установления связи, в число которых входят функции ожидания установления соединения, запроса на установление соединения, приема запроса на установление соединения, формирования адреса узла сети;

  3. обмена данными (ввода/вывода), к числу которых относятся функции посылки данных и получения данных;

  4. закрытия связи, включая функции закрытие сокета и сброса буферизованных данных.

Библиотека Winsock поддерживает два вида сокетов – блокируемые или синхронные и неблокируемые или асинхронные. Синхронные сокеты не возвращают управление в течение времени выполнения операции, а асинхронные возвращают немедленно, продолжая выполнение в фоновом режиме, а по завершении работы уведомляют об этом вызывающий код.

В данных МУ рассматриваются, главным образом, синхронные сокеты.

Вообще, библиотека сокетов позволяет работать со множеством протоколов и является удобным средством взаимодействия между процессами, но речь пойдет только о сокетах семейств протоколов TCP/IP (использующихся для обмена данными между узлами сети Интернет) и о некоторых особенностях использования WinSock со стеком IPX/SPX.

Независимо от вида, сокеты делятся на два типа – потоковые и дейтаграммные. Потоковые сокеты работают с установлением соединения, обеспечивая гарантированность доставки и правильность сборки данных. Дейтаграмные сокеты работают без установления соединения и не обеспечивают контроля успешности доставки данных, зато они заметно быстрее потоковых.

Выбор типа сокетов определяется транспортным протоколом, на котором работает сервер, в частности, клиент при всем желании не сможет по своему усмотрению установить с дейтаграммным сервером потоковое соединение.

Взаимосвязь Socket – функций

Диаграммы демонстрируют в каком порядке должны следовать вызовы функций в зависимости от типа сокетов (потоковый или дейтаграммный) и рода обработки запросов (клиент или сервер). Для случая дейтаграммных сокетов (см. рис. 2.1) необходимо учитывать то обстоятельство, что в силу дейтаграммного характера обмена по времени функция recvfrom должна использоваться на каждой вызываемой стороне до соответствующего использования sendto в приложении, работающем на противоположной (вызывающей) стороне.

Д

Сервер

socket

bind

recvfrom

Блокировка серверного приложения до получения запроса от клиента

socket

Клиент

ля большей наглядности взаимосвязь socket-функций друг с другом показана на диаграммах вызовов (рис. 2.1, 2.2).

Обработка запроса

sendto

bind

sendto

recvfrom

Запрос

Отклик

ис. 2.1. Схема взаимодействия операторов winsock для процедур,

не ориентированных на соединение

Билет 15

ArcNet см Билет 13

FrameRelay. ARP

Frame relay (англ. «ретрансляция кадров», FR) — протокол канального уровня сетевой модели OSI. Служба коммутации пакетов Frame Relay в настоящее время широко распространена во всём мире. Максимальная скорость, допускаемая протоколом FR — 34,368 мегабит/сек (каналы E3). Коммутация: точка-точка.

Frame relay обеспечивает множество независимых виртуальных каналов (Virtual Circuits, VC) в одной линии связи, идентифицируемых в FR-сети по идентификаторам подключения к соединению (Data Link Connection Identifier, DLCI). Вместо средств управления потоком включает функции извещения о перегрузках в сети. Возможно назначение минимальной гарантированной скорости (CIR) для каждого виртуального канала.

В основном применяется при построении территориально распределённых корпоративных сетей, а также в составе решений, связанных с обеспечением гарантированной пропускной способности канала передачи данных (VoIP, видеоконференции и т. п.).

CIR (англ. Committed Information Rate) — гарантированная полоса пропускания виртуального канала PVC в сетях Frame Relay (FR).

Способность технологии frame relay гарантировать некоторые параметры качества обслуживания (QoS) является ключевой. Именно поэтому данная технология получила широкое распространение и считается одной из самых перспективных технологий глобальных сетей.

Для передачи данных от отправителя к получателю в сети Frame Relay создаются виртуальные каналы, VC (англ. Virtual Circuit), которые бывают двух видов:

  • постоянный виртуальный канал, PVC (Permanent Virtual Circuit), который создаётся между двумя точками и существует в течение длительного времени, даже в отсутствие данных для передачи;

  • коммутируемый виртуальный канал, SVC (Switched Virtual Circuit), который создаётся между двумя точками непосредственно перед передачей данных и разрывается после окончания сеанса связи

формат кадра

ARP

В протоколе IP-адрес узла, то есть адрес компьютера или порта маршрутизатора, назначается произвольно администратором сети и прямо не связан с его локальным адресом, как это сделано, например, в протоколе IPX. Подход, используемый в IP, удобно использовать в крупных сетях и по причине его независимости от формата локального адреса, и по причине стабильности, так как в противном случае, при смене на компьютере сетевого адаптера это изменение должны бы были учитывать все адресаты всемирной сети Internet (в том случае, конечно, если сеть подключена к Internet'у).

Локальный адрес используется в протоколе IP только в пределах локальной сети при обмене данными между маршрутизатором и узлом этой сети. Маршрутизатор, получив пакет для узла одной из сетей, непосредственно подключенных к его портам, должен для передачи пакета сформировать кадр в соответствии с требованиями принятой в этой сети технологии и указать в нем локальный адрес узла, например его МАС-адрес. В пришедшем пакете этот адрес не указан, поэтому перед маршрутизатором встает задача поиска его по известному IP-адресу, который указан в пакете в качестве адреса назначения. С аналогичной задачей сталкивается и конечный узел, когда он хочет отправить пакет в удаленную сеть через маршрутизатор, подключенный к той же локальной сети, что и данный узел.

Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol, ARP. Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети - протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, frame relay), как правило не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу - нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP - RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом.

Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. На рисунке 5.12 показан формат пакета протокола ARP для передачи по сети Ethernet.

0 8 16 31 Т

Тип сети

Тип протокола

Длина локального адреса

Длина сетевого адреса

Операция

Локальный адрес отправителя (байты 0 - 3)

Локальный адрес отправителя (байты 4 - 5)

IP-адрес отправителя (байты 0-1)

IP-адрес отправителя (байты 2-3)

Искомый локальный адрес (байты 0 - 1)

Искомый локальный адрес (байты 2-5)

Искомый IP-адрес (байты 0 - 3)

Рис.5.12. Формат пакета протокола ARP