Обзор программирования сокетов для компьютерных сетей

Основы сокетной техники

Сокет – одна из фундаментальных технологий программирования компьютерных сетей. Сокеты позволяют сетевым программным приложениям взаимодействовать, используя стандартные механизмы, встроенные в сетевое оборудование и операционные системы.

Хотя это может звучать как еще одна особенность разработки программного обеспечения для Интернета, технология сокетов существовала задолго до появления Интернета. И многие из самых популярных на сегодняшний день сетевых программных приложений используют сокеты.

Что Socket Technology может сделать для вашей сети

Сокет представляет собой одно соединение между двумя точками программного обеспечения (так называемое соединение точка-точка ). Более двух программ могут обмениваться данными с клиент-серверными или распределенными системами, используя несколько сокетов. Например, многие веб-браузеры могут одновременно взаимодействовать с одним веб-сервером через группу сокетов, созданных на сервере.

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

Иногда одно приложение, которое инициирует связь, называют «клиентом», а другое приложение – «сервером», но эта терминология приводит к путанице в одноранговой сети и, как правило, ее следует избегать.

Socket API и библиотеки

В Интернете существует несколько библиотек, которые реализуют стандартные интерфейсы прикладного программирования (API). Первый основной пакет – библиотека сокетов Беркли все еще широко используется в системах UNIX.

Другим очень распространенным API является библиотека Windows Sockets (WinSock) для операционных систем Microsoft. По сравнению с другими компьютерными технологиями API-интерфейсы сокетов достаточно развиты: WinSock используется с 1993 года, а сокеты Berkeley – с 1982 года.

API сокетов относительно малы и просты. Многие из функций аналогичны тем, которые используются в процедурах ввода/вывода файлов, таких как read (), write () и close (). Фактические вызовы функций для использования зависят от языка программирования и выбранной библиотеки сокетов.

Типы Интерфейсов Сокетов

Интерфейсы сокетов можно разделить на три категории:

  1. Сокеты Stream , наиболее распространенный тип, требуют, чтобы две взаимодействующие стороны сначала установили соединение через сокет, после чего любые данные, передаваемые через это соединение, будут гарантированно поступать в том же порядке, в котором они были отправлены – так называемая модель программирования, ориентированная на соединение.

  2. Сокеты дейтаграммы предлагают семантику “без соединения”. В дейтаграммах соединения являются не явными, а явными, как с потоками. Любая из сторон просто отправляет дейтаграммы по мере необходимости и ждет ответа другой стороны; сообщения могут быть потеряны при передаче или получены не по порядку, но ответственность за решение этих проблем лежит на приложении, а не на сокетах. Реализация сокетов датаграмм может дать некоторым приложениям повышение производительности и дополнительную гибкость по сравнению с использованием потоковых сокетов, оправдывая их использование в некоторых ситуациях.

  3. Сокет третьего типа – сокет raw – обходит встроенную в библиотеку поддержку стандартных протоколов, таких как TCP и UDP. Сырые сокеты используются для разработки пользовательских низкоуровневых протоколов.

Поддержка сокетов в сетевых протоколах

Современные сетевые сокеты обычно используются в сочетании с Интернет-протоколами – IP, TCP и UDP. Библиотеки, реализующие сокеты для интернет-протокола, используют TCP для потоков, UDP для дейтаграмм и сам IP для необработанных сокетов.

Для связи через Интернет библиотеки IP-сокетов используют IP-адрес для идентификации определенных компьютеров. Многие части Интернета работают со службами именования, поэтому пользователи и программисты сокетов могут работать с компьютерами по имени ( например , «thiscomputer.wireless.lifewire.com») вместо адреса ( Например, , 208.185.127.40).

Сокеты потоков и дейтаграмм также используют номера портов IP, чтобы отличать несколько приложений друг от друга. Например, веб-браузеры в Интернете знают, что порт 80 используется по умолчанию для связи через сокеты с веб-серверами.

Оцените статью
Solutics.ru
Добавить комментарий