Порт (компьютерная сеть) - Port (computer networking)

В компьютерная сеть, а порт конечная точка связи. На уровне программного обеспечения в пределах Операционная система, порт - это логическая конструкция, которая определяет конкретный процесс или тип сетевая служба. Порт идентифицируется для каждого транспортный протокол и комбинация адресов 16-битным беззнаковое число, известный как номер порта. Наиболее распространенными транспортными протоколами, использующими номера портов, являются Протокол управления передачей (TCP) и Протокол пользовательских датаграмм (UDP).

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

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

Номер порта

Номер порта представляет собой 16-битовое целое число без знака, в диапазоне от 0 до 65535. Для TCP номер порта 0 зарезервирован и не может использоваться, а для UDP, исходный порт не является обязательным, а нулевое значение означает отсутствие порта. А процесс связывает свои входные или выходные каналы через Интернет-розетка, который является разновидностью дескриптор файла, связанный с транспортный протокол, айпи адрес, и номер порта. Это известно как привязка. Сокет используется процессом для отправки и получения данных по сети. Сетевое программное обеспечение операционной системы выполняет задачу передачи исходящих данных со всех портов приложений в сеть и пересылки поступающих данных. сетевые пакеты для процессов путем сопоставления IP-адреса пакета и номера порта с сокетом. Для TCP только один процесс может привязаться к определенной комбинации IP-адреса и порта. Общие сбои приложений, иногда называемые портовые конфликты, возникают, когда несколько программ пытаются использовать один и тот же номер порта на одном IP-адресе с одним и тем же протоколом.

Приложения, реализующие общие службы, часто используют специально зарезервированные известные номера портов для приема запросов на обслуживание от клиентов. Этот процесс известен как слушая, и включает получение запроса на хорошо известном порту, потенциально устанавливающем однозначный диалог сервер-клиент с использованием этого порта прослушивания. Другие клиенты могут одновременно подключаться к тому же порту прослушивания; это работает, потому что TCP-соединение идентифицируется кортежем, состоящим из локального адреса, локального порта, удаленного адреса и удаленного порта.[1] Общеизвестные порты определяются по соглашению, контролируемому Управление по присвоению номеров в Интернете (IANA). Во многих операционных системах приложениям требуются специальные привилегии для привязки к этим портам, поскольку они часто считаются критически важными для работы IP-сетей. И наоборот, клиентская часть соединения обычно использует высокий номер порта, выделенный для краткосрочного использования, поэтому это называется эфемерный порт.

Общие номера портов

IANA отвечает за глобальную координацию корня DNS, IP-адресации и других ресурсов интернет-протокола. Сюда входит регистрация часто используемых номеров портов для известных интернет-служб.

Номера портов делятся на три диапазона: известные порты, то зарегистрированные порты, а динамичный или же частные порты.

Хорошо известные порты (также известные как системные порты) - это значения от 0 до 1023. Требования для новых назначений в этом диапазоне строже, чем для других регистраций,[2] примеры включают:

Общие номера портов
ЧислоНазначение
20протокол передачи файлов (FTP) Передача данных
21протокол передачи файлов (FTP) Командное управление
22Безопасная оболочка (SSH) Безопасный вход
23Telnet служба удаленного входа в систему, незашифрованные текстовые сообщения
25Простой протокол передачи почты (SMTP) Маршрутизация электронной почты
53система доменных имен (DNS) сервис
67, 68Протокол динамического конфигурирования сервера (DHCP)
80Протокол передачи гипертекста (HTTP) используется в Всемирная паутина
110Почтовый протокол (POP3)
119Протокол передачи сетевых новостей (NNTP)
123Сетевой протокол времени (NTP)
143Протокол доступа к Интернет-сообщениям (IMAP) Управление цифровой почтой
161Простой протокол управления сетью (SNMP)
194Интернет-чат (IRC)
443HTTP Secure (HTTPS) HTTP через TLS / SSL

Зарегистрированы порты с 1024 по 49151. IANA ведет официальный список хорошо известных и зарегистрированных диапазонов.[3] К динамическим или частным портам относятся порты с 49152 по 65535. Обычно этот диапазон используется для эфемерные порты.

Сетевое поведение

Транспортный уровень протоколы, такие как Протокол управления передачей (TCP) и Протокол пользовательских датаграмм (UDP), передавать данные с помощью блоки данных протокола (PDU). Для TCP PDU - это сегмент, а дейтаграмма для UDP. Оба протокола используют заголовок поле для записи номера порта источника и назначения. Номера портов закодированы в транспортном протоколе. заголовок пакета, и они могут быть легко интерпретированы не только отправляющими и получающими компьютерами, но и другими компонентами сетевой инфраструктуры. Особенно, брандмауэры обычно настраиваются так, чтобы различать пакеты на основе номеров их портов источника или назначения. Перенаправление порта является примером применения этого.

Сканирование портов

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

Примеры

Примером использования портов является Интернет-почтовая система. Сервер, используемый для отправки и получения электронной почты, обычно нуждается в двух службах. Первая служба используется для передачи электронной почты на другие серверы и обратно. Это достигается с помощью Простой протокол передачи почты (SMTP). Приложение службы SMTP обычно прослушивает порт TCP 25 на предмет входящих запросов. Вторая услуга обычно либо Почтовый протокол (POP) или Протокол доступа к Интернет-сообщениям (IMAP), который используется почтовый клиент приложения на персональных компьютерах пользователей для получения сообщений электронной почты с сервера. Служба POP прослушивает TCP-порт с номером 110. Обе службы могут работать на одном и том же хост-компьютере, и в этом случае номер порта определяет службу, запрошенную удаленным компьютером, будь то компьютер пользователя или другой почтовый сервер.

Хотя номер порта прослушивания сервера хорошо определен (IANA называет их хорошо известными портами), номер порта клиента часто выбирается из динамического диапазона портов (см. Ниже). В некоторых приложениях клиенты и сервер используют каждый конкретные номера портов, присвоенные IANA. Хорошим примером этого является DHCP в котором клиент всегда использует UDP-порт 68, а сервер всегда использует UDP-порт 67.

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

Номера портов иногда можно увидеть в Интернете или другом единые указатели ресурсов (URL-адреса). По умолчанию HTTP использует порт 80, а HTTPS использует порт 443, но URL-адрес http://www.example.com:8080/path/ указывает, что веб-браузер вместо этого подключается к порту 8080 HTTP-сервера.

История

Концепция номеров портов была создана первыми разработчиками ARPANET в неформальном сотрудничестве авторов программного обеспечения и системных администраторов.

Период, термин номер порта в то время еще не использовался. Этому предшествовало использование термина номер розетки на ранних этапах развития сети. Номер сокета для удаленного хоста был 40-битным.[4] Первые 32 бита были похожи на сегодняшний адрес IPv4, но в то время наиболее значимые 8 бит были номером хоста. Наименее значимая часть номера сокета (биты с 33 по 40) была объектом, называемым Еще одно восьмибитное число, сокращенно AEN.[5] Сегодня, сетевой разъем относится к родственной, но отличной концепции, а именно к внутреннему адресу конечной точки (используется только внутри узла).

26 марта 1972 г. Винт Серф и Джон Постел призвал к документированию текущего использования и созданию каталога номеров сокетов в RFC 322. Сетевых администраторов попросили отправить заметку или позвонить по телефону ",описание функций и номеров сокетов программ сетевых служб на каждом ХОСТЕ".[6]

Этот каталог впоследствии был опубликован как RFC 433 в декабре 1972 года и включал список хостов и их номера портов, а также соответствующую функцию, используемую на каждом хосте в сети. Эта первая функция реестра служила в основном для документирования использования и указывала, что использование номера порта конфликтует между некоторыми хостами для "полезные общественные услуги".[5]

Документ обещал разрешение конфликтов на основе стандарта, опубликованного Постелом в мае 1972 г. RFC 349, в котором он впервые предложил официальное назначение номеров портов сетевым службам и предложил специальную административную функцию, которую он назвал царь, чтобы вести реестр.[7]

256 значений AEN были разделены на следующие диапазоны:

Диапазоны AEN
Диапазон номеров портовНазначение
От 0 до 63общесетевые стандартные функции
С 64 по 127специфичные для хоста функции
128–239зарезервировано для будущего использования
240–255любая экспериментальная функция

В Telnet service получил первое официальное присвоение значения 1. Подробно первый набор присвоений был:[7]

Назначение портов в RFC  349
Номер портаНазначение
1Telnet
3Передача файла
5Удаленный ввод вакансий
7Эхо
9Отказаться

В раннем ARPANET AEN также назывался имя сокета,[8] и использовался с протоколом начального подключения (ICP), компонентом Программа управления сетью (NCP).[9][10] NCP был предшественником современных Интернет-протоколов. Сегодня терминология наименование услуги по-прежнему тесно связан с номерами портов, первые из которых представляют собой текстовые строки, используемые в некоторых сетевых функциях для представления числового номера порта.

Рекомендации

  1. ^ Постел, Джон. «RFC 793». Получено 29 июн 2012.
  2. ^ Мишель Коттон; Ларс Эггерт; и другие. (Август 2011 г.). Процедуры Управления по присвоению номеров Интернета (IANA) для управления реестром имен служб и транспортных протоколов. IETF. Дои:10.17487 / RFC6335. БКП 165. RFC 6335.
  3. ^ "Номера портов". Управление по распределению номеров в Интернете (IANA).
  4. ^ RFC 36, Примечания к протоколу, С. Крокер (16 марта 1970 г.)
  5. ^ а б RFC 433, Список номеров розеток, Дж. Постел, Н. Нейгус (22 декабря 1972 г.)
  6. ^ RFC 322, Хорошо известные номера розеток, В. Серф, Дж. Постел (26 марта 1972 г.)
  7. ^ а б RFC 349, Предлагаемые стандартные номера розеток Дж. Постел (30 мая 1972 г.)
  8. ^ RFC 197, Протокол первоначального подключения - проверено, А. Шошани, Э. Харслем (14 июля 1971 г.)
  9. ^ NIC 7104, Справочник по протоколу ARPANET
  10. ^ Постел, Джон; Фейнлер, Э. (1978). Справочник по протоколу ARPANET. Менло-Парк, Калифорния: Сетевой информационный центр.