Порт (компьютерные сети)
![]() | Эту статью предлагаетсяудалить. Пояснение причин и соответствующее обсуждение вы можете найти на страницеВикипедия:К удалению/15 марта 2025. Пока процесс обсуждения не завершён, статью можно попытаться улучшить, однако следует воздерживаться от переименований или немотивированного удаления содержания, подробнее см.руководство к дальнейшему действию. Не снимайте пометку о выставлении на удаление доподведения итога обсуждения. Последнее изменение сделано участникомKrBot (вклад ·журналы) в 02:37, 6 июня 2025 (UTC; около 40 дней назад). Администраторам и подводящим итоги: |
Возможно, эта статья содержиторигинальное исследование. Проверьте соответствие информации приведённым источникам и удалите или исправьте информацию, являющуюся оригинальным исследованием. В случае необходимости подтвердите информацию авторитетнымиисточниками. В противном случае статья может быть выставлена на удаление.(4 июня 2025) |
Порт (англ. port) — это целое неотрицательное число, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI, таких какTCP,UDP,SCTP иDCCP.
Описание
[править |править код]Обычно нахосте под управлениемоперационной системы впространстве пользователя исполняется несколькопроцессов, в каждом из которых выполняется какая-либопрограмма. В случае, если несколько программ используют компьютернуюсеть, то ОС периодически получает по сетиIP-пакет, предназначенный для одной из программ.
Процесс программы, желающей обмениваться данными по сети, может (например, при созданииsocket):
- запросить у ОС в своё распоряжение порт с определённым номером. ОС может либо предоставить порт с этим номером, либо отказать программе (например, в случае, когда порт с этим номером уже отдан в распоряжение другому процессу);
- запросить у ОС в своё распоряжение свободный порт с любым номером. ОС в этом случае сама выберет свободный порт, ещё не занятый никаким процессом, и предоставит его в распоряжение запрашивающей программе.
Обмен данными по сети ведётся между двумя процессами по определённомупротоколу. Для установки соединения необходимы:
- номерпротокола;
- дваIP-адреса (адрес хоста-отправителя и адрес хоста-получателя дляпостроения маршрута между ними);
- два номера порта (порт процесса-отправителя и порт получателя).
Порт процесса-отправителя (источника) может быть постоянным (статическим) или назначатьсядинамически для каждого нового сеанса связи.
При соединении по протоколуTCP порт процесса-отправителя используется:
- операционной системой хоста-получателя для отправки пакета-подтверждения о получении данных;
- процессом-получателем для отправки пакета-ответа.
При соединении по протоколуUDP допустимо вместо порта процесса-отправителя указывать число ноль, означающее «порт не указан».
При соединении по протоколуSCTP в рамках ассоциации может использоваться:
- несколько портов процесса-отправителя (источника)
- несколько портов процесса-получателя.
Так как IP-адрес хоста-отправителя и номер порта процесса-отправителя являются аналогом обратного адреса, записываемого на почтовыхконвертах (позволяют получателю отправить ответ отправителю), номер порта процесса-отправителя иногда называют «обратным» портом.
Если на хосте какой‑либо процесс постоянно использует один номер порта (например, процесс программы, реализующейweb-сервер, может использовать порт 80 для приёма и передачи данных), говорят, что порт является «открытым».
Термины «открытый порт» и «закрытый порт» (заблокированный) также используются, когда речь идёт о фильтрациисетевого трафика.
Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приёма и передачи данных, говорят, что процесс«прослушивает» (разг.слушает, отангл. listen) порт.
Обычно прослушиванием порта занимается процесс программы, реализующейсервер для какого-либо протокола. Процесс программы, реализующейклиент для того же протокола, часто позволяет ОС указать номер порта для подключения к серверу.
Еслихост получит пакет, порт процесса-отправителя называется «удалённым» (англ. remote) портом или "открытым на другомхосте", а порт процесса получателя — «локальным» портом, то есть открытым на текущем хосте. Если хост отправил пакет, порт процесса-отправителя называется «локальным» портом (открытым на текущемхосте), а порт процесса-получателя — «удалённым» портом (открытым на другомхосте).
Номера портов дляпротоколов прикладного уровня моделиTCP/IP (HTTP,SSH и др.) обычно назначаются организациейIANA (англ. internetassignednumbersauthority). Однако на практике в целях безопасности номера портов могут выбираться произвольно.
Термин «порт» чаще всего применяется по отношению кпротоколамTCP иUDP ввиду популярности этих протоколов. В протоколахSCTP иDCCP используются номера, соответствующие понятию «номер порта» для протоколов TCP и UDP.
В заголовках протоколовTCP иUDP для хранения номеров портов выделены поля размером16бит. Для протоколаTCP порт с номером 0 зарезервирован и не может использоваться. Для протоколаUDP указание порта процесса-отправителя («обратного» порта) не является обязательным, и порт с номером 0 означает отсутствие порта. Таким образом, номер порта — число в диапазонеот 1до 216-1=65 535.
Примеры использования портов
[править |править код]- Электронная почта (e-mail)
Насервере запущеныпроцессыпрограмм, реализующих следующие протоколы:
- SMTP —протокол для передачи почты отклиента ксерверу и междусерверами;
- POP,IMAP —протоколы, используемыеклиентами для получения почты ссервера.
Процесспрограммы, реализующейпротоколSMTP, обычно «слушает» портTCP с номером 25 (кратко: «tcp/25»).
Процесспрограммы, реализующейпротоколPOP, обычно «слушает» портTCP с номером 110 (кратко: «tcp/110»).
Процессы могут быть запущены на одномхосте (компьютере). Определение конкретногопроцесса осуществляется по номеру порта.
Процесспрограммы-клиента, желающей подключиться ксерверу для отправки (SMTP) или получения (POP или IMAP) почты, как правило, получает номер портадинамически.
В некоторых случаях использование заранее известных номеров портов является обязательным.
Например, для полученияIP-адреса попротоколуDHCPпроцесспрограммы-клиента попротоколуUDP отправляетдатаграмму с порта 68 (порт процесса-отправителя) на порт 67 (порт процесса-получателя).
Использование в URL-адресах
[править |править код]Номера портов могут указываться в адресахвеб-сайтов (URL) или в идентификаторах других ресурсов, доступных в компьютерных сетях (URI). По умолчанию в протоколеHTTP используется порт 80, а в протоколеHTTPS — порт 443.URL видаhttp://www.example.com:8080/path/ указывает, что веб-ресурс обслуживаетсявеб-сервером на порту 8080.
Состояния порта
[править |править код]Узнать номера активных (выданных процессам операционной системой) портов для протоколов транспортного уровня во многих операционных системах (Windows,Unix-подобных) можно с помощью утилитnetstat
иnmap
(в ОСUNIX иОСLinux).
Состояния порта, показываемые утилитамиnetstat
иnmap
, приведены в таблице.
Состояние порта[1] | Описание |
---|---|
Открыт или прослушивается (англ. open илиlisten) | Программа-сервер готова принимать подключенияпрограмм-клиентов («слушает» порт) |
Фильтруется (англ. filtered) | Не удаётся определить, открыт порт или закрыт, возможно, из-за работыфайрвола или по иной причине |
Закрыт (англ. closed) | ОС ещё не выдала номер порта никакомупроцессу, но в любой момент может это сделать |
Номера портов
[править |править код]Порты TCP не пересекаются с портами UDP: порт 1234 протокола TCP не будет мешать обмену данными по протоколу UDP через порт 1234.
В большинствеUNIX-подобныхОС прослушивание портов с номерами 0—1023 требует особых привилегий (root). Другие номера портов выдаются операционной системой первым запросившим их процессам.
Некоторые популярные программы-анализаторы трафика (например,Wireshark) исетевые брандмауэры используют общепринятые обозначения номеров портов для определенияпротокола передачи данных, что не всегда корректно. В некоторых случаях сетевые службы используют нестандартные номера портов или используют номера портов не по заявленному назначению. Например, известны случаи запускаинтернет-провайдерамиSMTP-серверов на портах 2525 (вместо 25) в целях обеспечения безопасности своих пользователей. Специализированные сайты, например, административныевеб-интерфейсы, нередко работают на портах, отличных от стандартных 80 и 443.
См. также
[править |править код]![]() | Имеетсявикиучебник по теме«Сетевой порт» |
---|
- Динамический порт
- Сетевые сервисы
- Файл/etc/services
- Проброс портов
- Сокет (программный интерфейс)
- NAT
- Трансляция порт-адрес
- Сканер портов
Примечания
[править |править код]- ↑
nmap
— Cканер портовАрхивная копия от 23 июля 2015 наWayback Machine //uCoz Дата публикации: 6 мая 2011 года.
- Википедия:Страницы с ежедневно очищаемым кэшем
- Википедия:Страницы на КУ (не распределённые по типам)
- Википедия:Кандидаты на удаление
- Википедия:Кандидаты на удаление по дате номинации
- Википедия:Просроченные подведения итогов по удалению страниц
- Википедия:Просроченные подведения итогов по удалению страниц по алфавиту
- Википедия:Статьи, подозреваемые в наличии оригинальных исследований с июня 2025 года
- Википедия:Статьи с шаблонами недостатков по алфавиту
- Википедия:Ссылка на Викиучебник непосредственно в статье