Введение

Сетевой разъём - это программная структура в сетевом узле компьютерной сети, которая служит конечной точкой для отправки и приема данных по сети. Структура и свойства сокета определяются интерфейсом программирования приложений (API) для сетевой архитектуры. Сокеты создаются только в течение срока службы процесса приложения, работающего в узле. Из-за стандартизации протоколов TCP/IP в развитии Интернета термин сетевой разъём чаще всего используется в контексте пакета протоколов Интернета, и поэтому его часто также называют интернет-разъемом. В этом контексте сокет внешне идентифицируется другим хостам по адресу сокета, который представляет собой триаду транспортного протокола, IP-адреса и номера порта. Термин "сокет" также используется для конечной точки программного обеспечения узла внутренней межпроцессной связи (IPC), который часто использует тот же API, что и сетевой сокет.

Использование

Использование термина "сокет" в программном обеспечении аналогично функции электрического женского разъема, устройства в аппаратном обеспечении для связи между узлами, взаимосвязанными электрическим кабелем. Аналогичным образом, термин порт используется для внешних физических конечных точек в узле или устройстве. Интерфейс программирования приложений (API) для стека сетевых протоколов создает рукоятку для каждого сокета, созданного приложением, обычно называемую дескриптором сокета. В операционных системах Unix этот дескриптор является типом дескриптора файла. Он сохраняется в процессе подачи заявки для использования при каждой операции чтения и записи на канале связи. На момент создания с помощью API сетевой разъём связан с комбинацией типа сетевого протокола, который будет использоваться для передачи, сетевого адреса хоста и номера порта. Порты - это пронумерованные ресурсы, которые представляют собой другой тип программной структуры узла. Они используются в качестве типов услуг и, как только они создаются процессом, служат внешним (из сети) адресуемым компонентом местоположения, чтобы другие хосты могли устанавливать соединения. Сетевые разъемы могут быть предназначены для постоянных соединений для связи между двумя узлами, или они могут участвовать в бесконтактной и многоканальной связи. На практике, из-за распространения протоколов TCP/IP, используемых в Интернете, термин сетевой разъём обычно относится к использованию с протоколом Интернета (IP). Поэтому его часто называют также интернет-сокетом.

Адреса сокетов

Приложение может общаться с удаленным процессом путем обмена данными с TCP/IP, зная комбинацию типа протокола, IP-адреса и номера порта. Эта комбинация часто называется адресом сокета. Это сетевой ручка, обращенная к сетевому разъему. Удаленный процесс устанавливает сетевой сокет в собственном экземпляре стека протоколов и использует сетевой API для подключения к приложению, представляя свой собственный адрес сокета для использования приложением.

Определение

Различия между сокетом (внутренним представлением), дескриптором сокета (абстрактным идентификатором) и адресом сокета (публичным адресом) тонкие, и они не всегда различаются в повседневном использовании. Кроме того, конкретные определения разъема различаются между авторами. В запросе IETF о комментариях, стандартах Интернета, во многих учебниках, а также в этой статье, термин "сокет" относится к сущности, которая однозначно идентифицируется номером сокета. В других учебниках термин "сокет" относится к локальному адресу сокета, т.е. "комбинации IP-адреса и номера порта". В первоначальном определении сокета, данном в RFC 147, как это было связано с сетью ARPA в 1971 году, "сокет указан как 32-битное число с четными сокетами, идентифицирующими приемные сокеты, и нечетными сокетами, идентифицирующими отправляющие сокеты". Однако сегодня сокетные коммуникации являются двунаправленными. В операционной системе и приложении, создавшем сокет, сокет обозначается уникальным целым значением, называемым дескриптором сокета.

Стеклы в сетевом оборудовании

Сокет - это в первую очередь концепция, используемая в транспортном слое пакета протоколов Интернета или в уровне сеанса модели OSI. Сетевое оборудование, такое как маршрутизаторы, которые работают на уровне интернета, и коммутаторы, которые работают на уровне связи, не требуют реализации транспортного уровня. Однако, состоятельные сетевые брандмауэры, сетевые переводчики адресов и прокси-серверы отслеживают активные пары сокетов. В многослойных коммутаторах и поддержке качества обслуживания (QoS) в маршрутизаторах потоки пакетов могут быть идентифицированы путем извлечения информации о парах сокетов. Необработанные сокеты обычно доступны в сетевом оборудовании и используются для протоколов маршрутизации, таких как IGRP и OSPF, и для протокола управления сообщениями в Интернете (ICMP).