Порты аппаратные и программные
Основной автор данной статьи — эксперт. | |
Владимир Дмитриевич Ильин, учёный-информатик, доктор технических наук, профессор |
Порт (англ. port, от лат. — porta ворота, вход) — аппаратная или программная составляющая компьютеров, смартфонов и других компьютерных устройств, предназначенная для их соединения.
Аппаратные порты
Аппаратный порт — аппаратная составляющая компьютера, цифровой фотокамеры или другого компьютерного устройства для подключения клавиатуры, монитора или др. внешнего устройства (в том числе другого компьютера), взаимодействие с которым определено аппаратным интерфейсом[1] определённого типа.
Интерфейсы аппаратных средств (компьютеров, компьютерных устройств и их компонентов) реализуются двумя способами подключений:
- контактные подключения — посредством шин, разъёмов, кабелей (на основе интерфейсов USB (англ. Universal Serial Bus — универсальная последовательная шина), HDMI (англ. High Definition Multimedia Interface — интерфейс для мультимедиа высокой чёткости) или др.);
- бесконтактные подключения — через радиоинтерфейсы (на основе технологий Wi-Fi, Bluetooth и др.).
Порты для контактных подключений
Каждому типу контактного аппаратного интерфейса (USB, HDMI и др.) соответствует тип аппаратного порта со специфической формой наружного разъёма, количеством контактов, их конструктивным исполнением и расположением.
Внешнее устройство может быть подключено к порту компьютера непосредственно (напр., USB флеш-накопитель), посредством кабеля (напр., монитор) или через адаптер аппаратного интерфейса (напр., используя адаптер Mini DisplayPort Adapter for HDMI и кабель HDMI, можно к ноутбуку с портом Thunderbolt подключить телевизор с портом HDMI).
Адаптеры контактных аппаратных интерфейсов (в обиходе называемые «переходниками») и кабели (с встроенными адаптерами) позволяют увеличить число вариантов соединения устройств, имеющих разнотипные порты.
К порту HDMI цифрового монитора или телевизора могут быть подключены персональный компьютер, ноутбук, цифровой видеорегистратор (DVR — digital video recorder), цифровая видеокамера или др. Порт Thunderbolt позволяет к одному порту подключать цепочки высокопроизводительных периферийных устройств без использования концентратора или коммутатора (до 6 устройств). Напр., в составе одной цепочки Thunderbolt могут одновременно работать цифровой монитор, видеорегистратор и несколько высокопроизводительных внешних жёстких дисков. А интерфейс Thunderbolt 2 даёт возможность подключать мониторы 4К с разрешением около 4000 точек по горизонтали и 2000 — по вертикали.
Порты для бесконтактных подключений
Каждой технологии беспроводной связи (Wi-Fi, Bluetooth и др.) соответствует специальный тип порта, к которому подключена антенна (или несколько антенн — в зависимости от технологии связи).
Универсализация интерфейсов
Уменьшение числа типов аппаратных портов, предназначенных для подключения растущего числа различных внешних устройств, — признак продвижения в решении задачи универсализации аппаратных интерфейсов.
USB
Довольно успешным решением этой задачи стало создание контактного аппаратного интерфейса USB. Контроллер шины USB допускает подключение до 127 устройств, а встроенные линии питания позволяют подключать к USB порту веб-камеры, внешние накопители и др. устройства, не имеющие собственного источника питания [при условии, что максимальная сила тока, потребляемого устройством, не превышает допустимую величину (для USB 1.0 и USB 2.0 — 500 мА; USB 3.0 — 900 мА; USB 3.1 и USB4 — 5 А)].
Важным свойством интерфейса USB является то, что присоединение устройств к портам USB и их отсоединение может выполняться во время работы компьютера.
Со 2-й половины 1990-х гг. порт USB 1.0 начали использовать для подключения клавиатуры и мыши; с начала 2000-х гг. к порту USB 2.0 (с пропускной способностью 25-480 Мбит/с в высокоскоростном режиме) стали подключать и внешний жёсткий диск, а после 2011 к порту USB 3.0 — внешний твёрдотельный накопитель (SSD). Порт USB предназначен был также заменить порт SCSI (англ. Small Computer System Interface — интерфейс малых компьютерных систем) и игровой порт Gameport/MIDI-port.
Современный (начала 2020-х годов) порт Thunderbolt/USB 4 (с разъёмом USB-C) поддерживает порты: USB 4 (до 40 Гбит/с); USB 3.1 (до 10 Гбит/с); DisplayPort; Thunderbolt 3 (до 40 Гбит/с); поддержка Thunderbolt 2, HDMI, DVI и VGA — через дополнительные адаптеры.
В конце 2001 года важным событием для пользователей мобильных устройств (смартфонов, цифровых видеокамер и др.) стало создание интерфейса USB OTG (сокр. англ. On-The-Go — на ходу). Устройства с портами USB, поддерживающими интерфейс USB OTG, могут быть соединены между собой без участия компьютера, например, к цифровой фотокамере можно подключить фотопринтер, если соединяемые устройства имеют соответствующие порты.
С начала 2000-х всё чаще контактное подключение заменяют бесконтактным. Например, для подключения клавиатур и мышей используют интерфейс Bluetooth, а для подключения к компьютерной сети ноутбука или смартфона — Wi-Fi.
Программные порты
Программный порт — буфер в памяти компьютера или компьютерного устройства, который создан операционной системой для размещения данных исполняющейся программы, осуществляющей сетевой обмен сообщениями с другой программой. Поскольку на каждом компьютере (или компьютерном устройстве) одновременно могут выполняться несколько разных программ, осуществляющих сетевой обмен данными с другими программами, технология программных портов позволяет разделять между ними аппаратный сетевой порт.
Номера программных портов
Номера программных портов уникальны на каждом сетевом компьютере (или компьютерном устройстве) для каждого из двух протоколов: TCP (Transmission Control Protocol — протокол управления передачей) и UDP (User Datagram Protocol — протокол пользовательских структур данных), то есть один и тот же программный порт не может одновременно использоваться несколькими программами.
Операционная система каждого сетевого компьютера (или компьютерного устройства) постоянно ведёт учёт свободных и занятых номеров программных портов.
Определено три диапазона номеров:
- «хорошо известные порты» (англ. the well-known ports) имеют номера от 0 до 1023 включительно;
- «зарегистрированные порты» (the registered ports) — номера с 1024 по 49151;
- «динамические» или «приватные порты» (the dynamic or private ports) — с 49152 по 65535.
Порты с фиксированными номерами выделяются операционной системой работающим программам-«сервисам» (называемым также «серверными приложениями», «службами» или «сервисами»). Сервисы обслуживают запросы на передачу и/или обработку данных от программ-«клиентов» (называемых также «клиентскими приложениями» или «клиентами»). В запросах клиента к сервису указывается IP-адрес устройства (Internet Protocol — протокол Интернета), на котором работает сервис, и номер порта сервиса.
Назначением «хорошо известных» номеров портов сетевым службам массового применения занимается некоммерческая организация IANA (США) (англ. Internet Assigned Numbers Authority — Администрация адресного пространства Интернет)[2]. За широко известными службами закрепляются определённые (назначенные) номера портов, публикуемые в стандартах Интернета (RFC 1700, RFC 3232). Назначенные номера централизованно закреплены за определёнными сетевыми службами.
Примеры номеров «хорошо известных портов» для обмена сообщениями по протоколу TCP:
- 25 — номер порта службы доставки сообщений электронной почты в сетях TCP/IP, работающей по протоколу SMTP (Simple Mail Transfer Protocol — простой протокол доставки почты);
- 53 — номер порта службы доменных имён DNS (Domain Name System);
- 80 — номер порта веб-службы, работающей по протоколу [[HTTP|HTTP (Hypertext Transfer Protocol — протокол передачи гипертекста.
UDP-порты могут быть назначены IANA или частными организациями.
При отправке UDP-пакета в его заголовок включаются номера портов отправителя и получателя.
Если сервис не относится к хорошо известным, то при запуске он запрашивает у операционной системы свой (назначенный разработчиком сервиса) номер из диапазона зарегистрированных портов.
Динамический порт выделяется программе-клиенту на время её взаимодействия с сервисом. По запросу на соединение от программы-клиента операционная система создаёт динамический порт, которому назначает номер из списка имеющихся в её распоряжении свободных номеров динамических портов. Выделенный номер операционная система заносит в список занятых, а после завершения соединения возвращает в список свободных номеров.
Основы функционирования
Задача обмена пакетами данных между аппаратными сетевыми портами компьютеров и компьютерных устройств решается по правилам протокола IP, а задача обмена данными, содержащимися в пакетах, — по правилам протоколов TCP и UDP.
Программа, взаимодействующая через сеть с другой программой, записывает выходные данные в выделенный ей операционной системой программный порт и читает из него входные данные, полученные из сети от взаимодействующей программы. Данные, отправляемые через сеть взаимодействующей программе, сетевой модуль операционной системы оформляет в виде последовательности пакетов, в каждом из которых указаны адреса программы-получателя и программы-отправителя. Адрес программы-получателя (и программы-отправителя) включает IP-адрес компьютера (или компьютерного устройства) и номер программного порта. При обработке пакетов, поступающих из сети, по указанному в каждом пакете адресу программы-получателя определяется номер программного порта, в который записываются данные, содержащиеся в пакете.
Примечания
- ↑ Ильин А. В. Интерфейс в информатике . Большая российская энциклопедия: научно-образовательный портал (21.09.2022). Дата обращения: 29 апреля 2023.
- ↑ IANA (Internet Assigned Numbers Authority)
Литература
- Порт в информатике / Ильин А. В., Ильин В. Д. // Большая российская энциклопедия [Электронный ресурс]. — 2016.