Что такое порты, какие бывают и зачем они нужны?
В компьютерах есть два вида портов — физические и программные (или сетевые):
Физический порт — это разъём на компьютере, с помощью которого можно подключить флешку, сетевой кабель, принтер, наушники и так далее. Физический порт обменивается электричеством с устройством, который вставлен в этот порт.
Сетевой порт — то число, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI. Оно используется для определения программы или процесса-получателя пакета в пределах одного IP-адреса.Порты позволяют определить сетевые приложения, работающие на компьютере, множество которых может быть запущено одновременно. Основными сетевыми программами могут быть:
- WEB-сервер – предоставляет трансляцию данных с веб-сайтов;
- Сервер почты – позволяет обмениваться электронными письмами;
- FTP-сервер – обеспечивает передачу информации.
Порт отображается в виде 16 битного числа от 1 до 65535, которое доступно приложениям для того, чтобы обмениваться трафиком. Организация IANA регламентирует использование портов, так как именно она предоставляет стандарты при работе с портами.Имеющееся количество портов предоставляет корректную работу всех приложений, которым необходимо использовать сетевое соединение.
Порты обеспечивают доступ в глобальную сеть не только программам, которые были установлены пользователем. Бывают ситуации, когда вредоносные программы размещаются в систему самостоятельно и открывают порт без ведома пользователя. И уже с помощью открытого порта могут считывать личную информацию, находящуюся на компьютере. Поэтому необходимо знать, какие основные порты требуются пользователю и каким образом можно их открывать и закрывать.
Для чего нужны порты?
Основным предназначением сетевых портов является прием и передача данных определенного вида, а также устранение ошибки неоднозначности при попытке установить связь с хостом по IP-адресу. Для обеспечения трансляции данных с веб-сервера необходимо указать IP адрес хоста и номер порта, определяющий программу веб-сервера.
Физические порты при подключении определяют, к какой программе относятся данные, которые получает сетевая плата. Например, для использования порта одновременно сетью и интернетом пользуются разные программы:
- ОС запрашивает обновления безопасности на сервере;
- браузер загружает страницу в соцсети;
- различные мессенджеры отправляют и принимают сообщения;
- фоном пользуетесь видеозвонком, который тоже отправляет видеоданные;
- различные облачные диски синхронизируют данные.
Порты TCP не пересекаются с портами UDP: порт 1234 протокола TCP не будет мешать обмену данными по протоколу UDP через порт 1234.В большинстве UNIX-подобных ОС прослушивание портов с номерами 0—1023 требует особых привилегий. Другие номера портов выдаются операционной системой первым запросившим их процессам.
Некоторые популярные программы-анализаторы трафика и сетевые брандмауэры используют общепринятые обозначения номеров портов для определения протокола передачи данных, что не всегда корректно. В некоторых случаях сетевые службы используют нестандартные номера портов или используют номера портов не по заявленному назначению.
Что можно сделать с портом?
Порт можно открыть, чтобы система знала, куда отдавать данные, пришедшие по этому адресу.
Порт можно закрыть, чтобы данные больше не передавались. Они будут игнорироваться.
Порт можно пробросить. Например, можно научить систему, что если запрос пришёл на порт 1212 — отправить его на порт 2121. Так устроены многие сетевые маршрутизаторы и, в частности, ваш интернет-провайдер.
Порты можно просканировать. Перебрать все числа от 0 до 65535, чтобы посмотреть, придёт ли с какого-нибудь из них ответ. Если придёт, то значит на этом порте сидит какая-то программа.
Порт можно заблокировать. Например, сказать вашему роутеру на работе или дома, чтобы все запросы на определённый порт выбрасывались или переадресовывались.
Порт можно задать. Если вы знаете, что какой-то порт у вас заблокирован, то можно задать для этой программы другой порт и общаться через него. Однако не все программы это поддерживают.
Можно ничего не делать — с точки зрения пользователя всё работает само.
Есть ещё кое-что, о чём нужно знать, знакомясь с тем, что такое порты компьютера. Это специальные термины, которые характеризуют состояние портов:
- Интернет-сокеты — файловые дескрипторы, конкретизирующие IP адрес и ассоциированный с ним номер порта плюс специальный протокол передачи, который будет работать с данными
- Привязка — процесс использования службой или сервисом интернет-сокета при передаче и приёме файлов
- Прослушивание — попытка связаться службой или сервисом с портом/протоколом/IP адресом или комбинацией этих составляющих сетевой идентификации системы с целью стать на ожидание запросов со стороны клиента сервиса
- Сканирование портов — проверка состояния портов с целью распознать их готовность к дальнейшим действиям
Научный форум dxdy
Здравствуйте.
Объясните пожалуйста по русски, что такое «порт» в компьютере. Я имею ввиду не тот порт куда вставляется штекер, а програмный порт. Вот устанавливаешь аську, Radmin, или чат
и там присутствуют опции «порт» и стоит номер — 5190. Что это за цифры такие?Это цифры номера порта? Так у меня что в компьютере 5190 портов? Где же они располагаются?
И что значит «открыть порт»? У меня, когда запускаешь чат написано — «требуемый порт заблокирован брэндмауэром. Хотите, что бы программа разблокировала его автоматически?»
Что мне этим грозит?
Можно ли сказать так, что «порт» — некое окно, через которое сетевая карта умеет передавать и получать сообщения от внешнего источника данных? И зачем так много портов в компе?
Можно ли также сказать, что порт это не только окно, но и некоторый драйвер, т.е. определённая программа, которая умеет работать с определённым форматом данных?
Например порт номер 1 умеет работать с потоками данных, которые были заархивированны
rar, а порт номер два — с zip?
Спасибо.
05.05.2008, 12:37
Экс-модератор |
Последний раз редактировалось AD 08.05.2008, 18:33, всего редактировалось 2 раз(а).
Как удаленный компьютер может достучаться до вашего?
Правильно, через IP-адрес.
А как удаленный компьютер может достучаться до конкретной программы на вашем компьютере? Ведь программ много, а IP-адресов мало (можно считать, что вообще всего один).
Вот для этого и придумали порты. Порт — это такая циферка. Программа может «открыть» порт — это значит заявить во всеуслышание что-то типа «если придет инфа на порт 5190 — знайте, это для меня». «Закрыть порт» — значит взять свои слова обратно.
Узнать, какой именно порт (из 65536 вроде бы, точно не помню) открыла программа на удаленном компьютере, нельзя. Поэтому за стандартными программами обычно закреплены некоторые порты с маленькими номерами. Скажем, за http-сервером закреплен порт 80, а за ftp-сервером — порт 21. Это означает, что когда вы пишите что-то типа http://mexmat.ru, то компьютер ваш обращается к компьютеру mexmat.ru (ну то есть сначала узнает его IP-адрес), а потом говорит «передайте 80-ой, что я хочу сайт посмотреть».
Брэндмауер, помимо всего прочего, следит, какие порты открываются, и выдает разрешение на открытие. Когда порт открыт — кто угодно может посылать на него информацию. В частности, злоумышленник может написать туда что-нибудь такое, от чего программа, слушающая этот порт, заглючится и сделает что-нибудь нехорошее. Но, не открыв порт, программа не сможет работать по назначению.
05.05.2008, 12:39
Супермодератор |
Я не силен в деталях протоколов и технических реализаций, но говоря по-простому, порт — это просто целое число на пакете данных, который показывает, для какой программы эти данные предназначены. Вроде адреса на письме. Мне приходилось программировать обмен данными между компьютерами в сетке. При этом я решаю, например, что обмен будет проходить по порту с номером 50000. При этом программа на одном компе сообщает своей операционной системе: «Придут данные с номером порта 50000 — это для меня». Соседний компьютер пересылает данные, указывая имя первого компьютера, и номер порта. Имя (или IP-адрес) нужно для того, чтобы данные дошли до правильного компьютера, а порт — чтобы уже на этом компьютере попали в правильную программу. Из интернета на ваш комп приходят самые разные пакеты данных: одни предназначены для браузера, другие — для icq, третьи — для обновления антивируса и т.д. Порты предназначены для того, чтобы они попадали по своим адресам.
Добавлено спустя 1 минуту 7 секунд:
AD немного (на 40 секунд) меня опередил.
Глоссарий
Порт (англ. port) — натуральное число (как правило, в диапазоне от 1 до 216-1=65 535), записываемое в заголовках протоколов транспортного уровня (например, TCP), которое используется для определения процесса-получателя пакета в пределах одного хоста. Обычно на хосте под управлением ОС в пространстве пользователя исполняется несколько процессов, в каждом из которых выполняется какая-либо программа. В случае, если несколько программ используют компьютерную сеть, то ОС периодически получает по сети IP-пакет, предназначенный для одной из программ.
Обмен данными по сети ведется между двумя процессами по определенному протоколу. Для установки соединения необходимы:
- номер протокола;
- два IP-адреса (адрес хоста-отправителя и адрес хоста-получателя для построения маршрута между ними);
- два номера порта (порт процесса-отправителя и порт получателя).
Порт процесса-отправителя (источника) может быть постоянным (статическим) или назначаться динамически для каждого нового сеанса связи.
При соединении по протоколу TCP порт процесса-отправителя используется:
- операционной системой хоста-получателя для отправки пакета-подтверждения о получении данных;
- процессом-получателем для отправки пакета-ответа.
Так как IP-адрес хоста-отправителя и номер порта процесса-отправителя являются аналогом обратного адреса, записываемого на почтовых конвертах (позволяют получателю отправить ответ отправителю), номер порта процесса-отправителя иногда называют «обратным» портом. Если на хосте какой-либо процесс постоянно использует один номер порта, говорят, что порт является «открытым». Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приема и передачи данных, говорят, что процесс «слушает» (англ. listen) порт.
Номера портов для протоколов прикладного уровня модели TCP/IP (например, HTTP) обычно назначаются организацией IANA. Однако на практике в целях безопасности номера портов могут выбираться произвольно. Номера портов могут указываться в адресах веб-сайтов (URL).
Что такое компьютерные порты?
Компьютерный сетевой порт – это число, которое идентифицирует назначение сетевых потоков данных в пределах одного компьютера. Все хосты (компьютеры) обмениваются друг с другом информацией при помощи уникальных цифровых IP-адресов, представленных двоичной системой.
Порты позволяют определить сетевые приложения, работающие на компьютере, множество которых может быть запущено одновременно. Основными сетевыми программами могут быть:
- WEB – сервер, предоставляющий трансляцию данных с веб-сайтов;
- Сервер почты, позволяющие обмениваться электронными письмами;
- FTP – сервер, обеспечивающий передачу информации.
Основным предназначением портов является прием и передача данных определенного вида, а также устранение ошибки неоднозначности при попытке установить связь с хостом по IP-адресу. Для обеспечения трансляции данных с веб-сервера необходимо указать IP адрес хоста и номер порта, определяющий программу веб-сервера.
Принцип работы портов
Порт отображается в виде 16 битного числа от 1 до 65535, которое доступно приложениям для обмена трафиком. Использование портов регламентируется специальной организацией IANA, предоставляющей стандарты при работе с портами.
Когда на определенном хосте пользователь открывает окно браузера и набирает необходимый поисковой запрос, веб-сервер автоматически отправляет пакеты данных по протоколу TCP/IP в порт 80.
В случае использования почтового клиента Outlook Express существуют два стандартизированных порта:
- 110 порт используется для получения электронных писем;
- посредством порта 25 письма отправляются в глобальную сеть в поисках своего адресата.
Существующее количество портов обеспечивает корректное функционирование всех приложений, которым необходимо использовать сетевое соединение.
Однако порты обеспечивают доступ в глобальную сеть не только программам, установленным пользователем. Возможны ситуации, когда вредоносные программы (вирусы) инсталлируются в систему и открывают порт без ведома пользователя. И уже с помощью открытого порта могут считывать информацию, находящуюся на компьютере. Поэтому стоит знать, какие основные порты требуются пользователю и каким образом можно их открывать и закрывать.