Cокет

Cокет известно как тип программного обеспечения, которое действует как конечная точка, которая функционирует при установлении двунаправленного сетевого соединения между конечной точкой сервера и программой-получателем клиента.[1] Ее также часто называют одной конечной точкой в канале двусторонней связи. Эти сокеты изготавливаются и мобилизуются вместе с набором программных запросов, которые идентифицируются как вызовы функций, которые технически называются интерфейсом прикладного программирования (API). Сокет может упростить работу программы, поскольку теперь программистам остается только беспокоиться о том, как управлять функциями сокета, и это позволяет им полагаться на операционную систему для корректной передачи сообщений по сети.[2]

Функциональность

Как правило, сокет придерживается определенного потока событий, чтобы он работал. Для модели клиент-сервер с ориентацией на подключение, сокет на сервере ожидает запроса от клиента. Для этого серверу необходимо в первую очередь установить адрес, который клиенты могут использовать для поиска и подключения к серверу. После успешного установления соединения сервер будет ждать, пока клиенты запросят услугу. Обмен данными между клиентом и сервером будет происходить, если клиент подключится к серверу через разъем. Затем сервер ответит на запрос клиента и отправит ответ.[3]

В большинстве случаев URL-адреса и их соединения используются для доступа в Интернет. Программы требуют простой связи между клиентом и сервером программы. Эта роль связана с сокетами, которые помогут связать клиентские и серверные части программы. Если клиент начинает устанавливать связь с сервером, то надежное соединение с сервером и клиентом будет осуществляться по каналу связи TCP. При таком типе связи и клиент, и сервер могут читать и писать на разъемах, привязанных к определенному каналу связи.[^04]

Типы розеток

Ниже перечислены различные типы розеток:

Розетки датаграммы

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

Сырьевые розетки

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

Последовательные розетки пакетов Гнезда

Это похоже на сокет потока, за исключением того, что границы записи сохраняются. Этот тип сокета позволяет пользователям управлять протоколом последовательностей пакетов (SPP) или заголовками протокола интернет-протокола датаграмм (IDP) в пакете или даже группе пакетов. Этот сокет также позволяет пользователю получать заголовки входящих пакетов.

Розетки для ручьев

Этот тип сокета полагается на TCP для передачи данных. Если доставка данных невозможна, отправитель получит сообщение о том, что соединение привело к ошибке. Записи данных не имеют границ.[4] Этот разъем обеспечивает ориентированный на подключение, последовательный и уникальный поток данных без границ записи, с четко определенными механизмами для создания и/или разрушения соединений и обнаружения ошибок. Он передает надежные данные в порядке и без использования внеполосных возможностей. Предполагается, что процессы взаимодействуют только между розетками одного типа, но нет никаких ограничений, препятствующих взаимодействию между этими розетками разных типов.

Активное гнездо

Это разъемное соединение с активными удаленными разъемами через открытое соединение для передачи данных. Если это соединение будет закрыто, активные розетки в каждой точке также будут разрушены. Используется клиентами, которые хотят инициировать запросы на подключение для подключения. Однако, это активное гнездо также может быть преобразовано в пассивное гнездо путем привязки имени к гнезду с помощью bind-macro и путем указания готовности принимать соединения с микрофоном listen-macro.

Пассивная розетка

Эта розетка не подключена, а ждет входящего соединения, которое вызовет новую активную розетку. Используется серверами для того, чтобы принимать запросы на соединение с микрофоном Connect-macro. Эта пассивная розетка не может использоваться для инициирования запросов на подключение. Понятия активных и пассивных сокетов для потоковых сокетов не применимы к другим типам сокетов, таким как сокеты датаграммы.[5]

Порты и розетки

Гнездо - это интерфейс для отправки и получения данных по определенному порту, в то время как порт представляет собой числовое значение, назначенное определенному процессу или приложению в устройстве.[6] Даже при наличии тесной связи между гнездом и портом, гнездо на самом деле не является портом. Каждый порт может иметь одну пассивную розетку, ожидающую входящие соединения, и несколько активных розеток, каждая из которых соответствует открытому соединению в порту.[1:1] В настоящее время розетка делает общение более простым и эффективным. Это позволяет установить связь между двумя разными процессами на одном и том же или разных машинах. Проще говоря, это способ общения с другим компьютером.

История

Термин "розетка" начал употребляться с 1971 года, когда он использовался при разработке ARPANET. Большинство розеток, реализуемых сегодня, основаны на розетках Беркерли, которые были разработаны в 1983 году. Однако розетки, используемые для подключения к Интернету, созданы по образцу моделей Winsock, которые были сделаны в 1991 году. Гнезда Беркерли также известны как гнезда BSD. В 1989 году Berkerley выпустила версии своей операционной системы и сетевой библиотеки, свободные от лицензионных ограничений. Другие ранние версии были написаны для TOPS-20, MVS, VM и IBM-DOS.


  1. https://www.techopedia.com/definition/16208/socket ↩︎ ↩︎

  2. https://www.webopedia.com/TERM/S/socket.html ↩︎

  3. https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzab6/howdosockets.htm ↩︎

  4. https://www.tutorialspoint.com/unix_sockets/what_is_socket.htm ↩︎

  5. https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.hala001/astream.htm ↩︎

  6. http://pediaa.com/difference-between-socket-and-port/ ↩︎