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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ссылка на основную публикацию