Сетевые порты – что это такое?

Сетевые порты – что это такое?

В одной из наших статей мы рассказывали Вам о физических портах. Однако в компьютерах есть и виртуальные – сетевые – порты. Сегодня нет программ еще, которые не используют для своей работы сетевой протокол. Довольно часто можно услышать про использование сетевых портов, но не все понимают, что это такое. И для начала давай дадим определение:

Сетевой порт – это некое виртуальное расширение, дополнение к сетевому адресу (IP-адресу). Для большего понимания можно сказать, что без сетевого порта информация с другого устройства вряд ли дойдет до нашего компьютера, так как она будет идти только по IP. Компьютер просто не поймёт, как обработать её, с помощью какого приложения.

Но с технической точки зрения также можно выделить и другое понятие – это натуральное число от 0 до 65535, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI.

Сетевые порты – что это такое?

Для передачи данных используются транспортные протоколы, самые популярные – это TCP/IP (Transmission Control Protocol/Internet Protocol) и UDP (User Datagram Protocol). Обычно приложение либо ожидает входящие данные (или запроса на соединение), либо посылает данные (или запрос на соединение) на известный порт, открытый приложением-сервером (роль клиента).

По умолчанию приложению выдается порт с произвольным номером (к примеру, ближайшим свободным, большим 1234). При необходимости приложение может запросить конкретный (предопределённый) номер порта. Так веб-серверы обычно открывают для ожидания соединения предопределённый порт 80 протокола TCP.

Порты TCP не пересекаются с портами UDP. То есть, порт 1234 протокола TCP не будет мешать обмену по UDP через порт 1234.

Сетевые порты – что это такое?

Сколько вообще портов существует?

В компьютере точное количество портов – 65 535. И ух них есть своя градация. То есть порты с номерами до 1023 Линукс и Unix-подобными ОС считаются за «критически важные» для сетевой деятельности системы, так что для доступа к ним и службам, с ними связанными часто требуются root права. Windows также их считает системными и пристально следит за ними.

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

Остальные (начиная с 49152) порты не зарегистрированы и используются по усмотрению пользователей ОС и имеют название – «динамические» порты. Так что запоминать, какой порт для какой службы установлен, просто бесполезно.

Сетевые порты – что это такое?

Однако есть несколько уже хорошо известных портов:

  • FTP-Data. Канал данных файлового транспортного протокола, используется для передачи файлов между системами по протоколу TCP. Используется 21 порт;
  • FTP. Управляющий канал FTP. Используется участниками сеанса этого канала для обмена командами и откликами на них по протоколу TCP. Использует 20 порт;
  • Telnet. Используется для выполнения команд на удаленном компьютере через порт № 23 через протокол TCP;
  • SMTP. Простой почтовый протокол для передачи данных по email. Раньше использовался порт под номером 25, сейчас используется шифрование и номер порта уже другой. Зависит от поставщика услуг;
  • Domain. Использует 53 порт по протоколам UDP и TCP для получения запросов на разрешение имен хостов;
  • HTTP. Транспортный протокол для гипертекстовой разметки. Используется для передачи запросов от браузера (например, ваши запросы в Яндексе). Используется 80 порт;
  • POP3. Используется для получения электронной почты. до шифрования использовал 110 порт, сейчас номер изменился. Номера портов нужно уточнять у поставщика услуг.
Сетевые порты – что это такое?

Как работает технология сетевых портов?

Возьмем пример: на сервере с одним IP может быть размещен сайт и установлены дополнительные программы, кроме самого сайта. Как в таком случае получить доступ к конкретному сервису? Необходимо указать при обращении не только IP-адрес, но и соответственно порт. Сайту отводится один порт, каждому другому сервису назначается другой уникальный порт. В результате по одному IP-адресу доступно множество сервисов.

При обращении к сайту браузер обычно не указывает порт в строке адреса, он подставляет его автоматически. Например, запрос к сайту https://example.com на самом деле выглядит как https://fenix.host:443. Порт в URL-адресе указывается после двоеточия, в данном примере 443 – для https (если бы использовался http – порт был бы 80).

Когда трафик перенаправляется другой системе, TCP/IP использует комбинацию IP адреса и определенного порта. Такая связка называется сокетом. Сокет – это файловые дескрипторы, конкретизирующие IP адрес и ассоциированный с ним номер порта плюс специальный протокол передачи, который будет работать с данными. К примеру, из Интернета можно получить доступ к папке FTP-сервера, указав через двоеточие IP-адрес и порт.

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

Сетевые порты – что это такое?
Начать дискуссию