Порт (компьютерные сети)

Поделись знанием:
Перейти к: навигация, поиск

Порт (англ. port) — натуральное число, записываемое в заголовках протоколов транспортного уровня модели OSI (TCP, UDP, SCTP, DCCP). Используется для определения процесса-получателя пакета в пределах одного хоста.





Описание

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

Процесс программы, желающей обмениваться данными по сети, может (например, при создании socket):

  • запросить у ОС определённый номер порта. Система может либо предоставить запрошенный номер порт, либо отказать программе (например, если номер порта уже выдан какому-либо процессу);
  • запросить у ОС любой свободный номер порта. ОС сама выберет номер порта, ещё не выданный никакому процессу, и предоставит его запрашивающей программе.

Обмен данными по сети ведётся между двумя процессами по определённому протоколу. Для установки соединения необходимы:

  • два номера порта (порт процесса-отправителя и порт получателя).

Порт процесса-отправителя (источника) может быть постоянным (статическим) или назначаться динамически для каждого нового сеанса связи.

При соединении по протоколу TCP порт процесса-отправителя используется:

  • операционной системой хоста-получателя для отправки пакета-подтверждения о получении данных;
  • процессом-получателем для отправки пакета-ответа.

При соединении по протоколу UDP допустимо вместо порта процесса-отправителя указывать число ноль, означающее «порт не указан».

При соединении по протоколу SCTP в рамках ассоциации может использоваться:

  • несколько портов процесса-отправителя (источника)
  • несколько портов процесса-получателя.

Так как IP-адрес хоста-отправителя и номер порта процесса-отправителя являются аналогом обратного адреса, записываемого на почтовых конвертах (позволяют получателю отправить ответ отправителю), номер порта процесса-отправителя иногда называют «обратным» портом.

Если на хосте какой‑либо процесс постоянно использует один номер порта (например, процесс программы, реализующей web-сервер, может использовать порт 80 для приёма и передачи данных), говорят, что порт является «открытым».

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

Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приёма и передачи данных, говорят, что процесс «слушает» (англ. listen) порт.

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

Если хост получит пакет, порт процесса-отправителя называется «удалённым» (англ. remote) портом или "открытым на другом хосте", а порт процесса получателя — «локальным» портом, то есть открытым на текущем хосте. Если хост отправил пакет, порт процесса-отправителя называется «локальным» портом (открытым на текущем хосте), а порт процесса-получателя — «удалённым» портом (открытым на другом хосте).

Номера портов для протоколов прикладного уровня модели TCP/IP (HTTP, SSH и др.) обычно назначаются организацией IANA (англ. internet assigned numbers authority). Однако на практике в целях безопасности номера портов могут выбираться произвольно.

Термин «порт» чаще всего применяется по отношению к протоколам TCP и UDP ввиду популярности этих протоколов. В протоколах SCTP и DCCP используются номера, соответствующие понятию «номер порта» для протоколов TCP и UDP.

В заголовках протоколов TCP и UDP для хранения номеров портов выделены поля размером 16 бит. Для протокола TCP порт с номером 0 зарезервирован и не может использоваться. Для протокола UDP указание порта процесса-отправителя («обратного» порта) не является обязательным, и порт с номером 0 означает отсутствие порта. Таким образом, номер порта — число в диапазоне от 1 до 216-1=65 535.

Примеры использования портов

Электронная почта (e-mail)

На сервере запущены процессы программ, реализующих следующие протоколы:

Процесс программы, реализующей протокол SMTP, обычно «слушает» порт TCP с номером 25 (кратко: «tcp/25»).

Процесс программы, реализующей протокол POP, обычно «слушает» порт TCP с номером 110 (кратко: «tcp/110»).

Процессы могут быть запущены на одном хосте (компьютере). Определение конкретного процесса осуществляется по номеру порта.

Процесс программы-клиента, желающей подключиться к серверу для отправки (SMTP) или получения (POP или IMAP) почты, как правило, получает номер порта динамически.

DHCP

В некоторых случаях использование заранее известных номеров портов является обязательным.

Например, для получения IP-адреса по протоколу DHCP процесс программы-клиента по протоколу UDP отправляет датаграмму с порта 68 (порт процесса-отправителя) на порт 67 (порт процесса-получателя).

Использование в URL-адресах

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

Состояния порта

Узнать номера активных (выданных процессам операционной системой) портов для протоколов транспортного уровня во многих операционных системах (Windows, Unix-подобных) можно с помощью утилит netstat и nmap (в ОС UNIX и ОС Linux).

Состояния порта, показываемые утилитами netstat и nmap, приведены в таблице.

Состояние порта[1] Описание
Открыт или прослушивается (англ. open или listen) Программа-сервер готова принимать подключения программ-клиентов («слушает» порт)
Фильтруется (англ. filtred) Не удаётся определить, открыт порт или закрыт, возможно, из-за работы файрвола или по иной причине
Закрыт (англ. closed) ОС ещё не выдала номер порта никакому процессу, но в любой момент может это сделать

Номера портов

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

В большинстве UNIX-подобных ОС прослушивание портов с номерами 0—1023 требует особых привилегий (root). Другие номера портов выдаются операционной системой первым запросившим их процессам.

Некоторые популярные программы-анализаторы трафика (например, Wireshark) и сетевые брандмауэры используют общепринятые обозначения номеров портов для определения протокола передачи данных, что не всегда корректно. В некоторых случаях сетевые службы используют нестандартные номера портов или используют номера портов не по заявленному назначению. Например, известны случаи запуска интернет-провайдерами SMTP-серверов на портах 2525 (вместо 25) в целях обеспечения безопасности своих пользователей. Специализированные сайты, например, административные веб-интерфейсы, нередко работают на портах, отличных от стандартных 80 и 443.

См. также

Напишите отзыв о статье "Порт (компьютерные сети)"

Примечания

  1. [rootmaster.at.ua/publ/nmap_skaner_portov/1-1-0-54 nmap — Cканер портов] // uCoz Дата публикации: 6 мая 2011 года.

Отрывок, характеризующий Порт (компьютерные сети)

Богучарово находилось последние три дня между двумя неприятельскими армиями, так что так же легко мог зайти туда русский арьергард, как и французский авангард, и потому Ростов, как заботливый эскадронный командир, желал прежде французов воспользоваться тем провиантом, который оставался в Богучарове.
Ростов и Ильин были в самом веселом расположении духа. Дорогой в Богучарово, в княжеское именье с усадьбой, где они надеялись найти большую дворню и хорошеньких девушек, они то расспрашивали Лаврушку о Наполеоне и смеялись его рассказам, то перегонялись, пробуя лошадь Ильина.
Ростов и не знал и не думал, что эта деревня, в которую он ехал, была именье того самого Болконского, который был женихом его сестры.
Ростов с Ильиным в последний раз выпустили на перегонку лошадей в изволок перед Богучаровым, и Ростов, перегнавший Ильина, первый вскакал в улицу деревни Богучарова.
– Ты вперед взял, – говорил раскрасневшийся Ильин.
– Да, всё вперед, и на лугу вперед, и тут, – отвечал Ростов, поглаживая рукой своего взмылившегося донца.
– А я на французской, ваше сиятельство, – сзади говорил Лаврушка, называя французской свою упряжную клячу, – перегнал бы, да только срамить не хотел.
Они шагом подъехали к амбару, у которого стояла большая толпа мужиков.
Некоторые мужики сняли шапки, некоторые, не снимая шапок, смотрели на подъехавших. Два старые длинные мужика, с сморщенными лицами и редкими бородами, вышли из кабака и с улыбками, качаясь и распевая какую то нескладную песню, подошли к офицерам.
– Молодцы! – сказал, смеясь, Ростов. – Что, сено есть?
– И одинакие какие… – сказал Ильин.
– Развесе…oo…ооо…лая бесе… бесе… – распевали мужики с счастливыми улыбками.
Один мужик вышел из толпы и подошел к Ростову.
– Вы из каких будете? – спросил он.
– Французы, – отвечал, смеючись, Ильин. – Вот и Наполеон сам, – сказал он, указывая на Лаврушку.
– Стало быть, русские будете? – переспросил мужик.
– А много вашей силы тут? – спросил другой небольшой мужик, подходя к ним.
– Много, много, – отвечал Ростов. – Да вы что ж собрались тут? – прибавил он. – Праздник, что ль?
– Старички собрались, по мирскому делу, – отвечал мужик, отходя от него.
В это время по дороге от барского дома показались две женщины и человек в белой шляпе, шедшие к офицерам.
– В розовом моя, чур не отбивать! – сказал Ильин, заметив решительно подвигавшуюся к нему Дуняшу.
– Наша будет! – подмигнув, сказал Ильину Лаврушка.
– Что, моя красавица, нужно? – сказал Ильин, улыбаясь.
– Княжна приказали узнать, какого вы полка и ваши фамилии?
– Это граф Ростов, эскадронный командир, а я ваш покорный слуга.
– Бе…се…е…ду…шка! – распевал пьяный мужик, счастливо улыбаясь и глядя на Ильина, разговаривающего с девушкой. Вслед за Дуняшей подошел к Ростову Алпатыч, еще издали сняв свою шляпу.
– Осмелюсь обеспокоить, ваше благородие, – сказал он с почтительностью, но с относительным пренебрежением к юности этого офицера и заложив руку за пазуху. – Моя госпожа, дочь скончавшегося сего пятнадцатого числа генерал аншефа князя Николая Андреевича Болконского, находясь в затруднении по случаю невежества этих лиц, – он указал на мужиков, – просит вас пожаловать… не угодно ли будет, – с грустной улыбкой сказал Алпатыч, – отъехать несколько, а то не так удобно при… – Алпатыч указал на двух мужиков, которые сзади так и носились около него, как слепни около лошади.
– А!.. Алпатыч… А? Яков Алпатыч!.. Важно! прости ради Христа. Важно! А?.. – говорили мужики, радостно улыбаясь ему. Ростов посмотрел на пьяных стариков и улыбнулся.
– Или, может, это утешает ваше сиятельство? – сказал Яков Алпатыч с степенным видом, не заложенной за пазуху рукой указывая на стариков.
– Нет, тут утешенья мало, – сказал Ростов и отъехал. – В чем дело? – спросил он.
– Осмелюсь доложить вашему сиятельству, что грубый народ здешний не желает выпустить госпожу из имения и угрожает отпречь лошадей, так что с утра все уложено и ее сиятельство не могут выехать.
– Не может быть! – вскрикнул Ростов.
– Имею честь докладывать вам сущую правду, – повторил Алпатыч.
Ростов слез с лошади и, передав ее вестовому, пошел с Алпатычем к дому, расспрашивая его о подробностях дела. Действительно, вчерашнее предложение княжны мужикам хлеба, ее объяснение с Дроном и с сходкою так испортили дело, что Дрон окончательно сдал ключи, присоединился к мужикам и не являлся по требованию Алпатыча и что поутру, когда княжна велела закладывать, чтобы ехать, мужики вышли большой толпой к амбару и выслали сказать, что они не выпустят княжны из деревни, что есть приказ, чтобы не вывозиться, и они выпрягут лошадей. Алпатыч выходил к ним, усовещивая их, но ему отвечали (больше всех говорил Карп; Дрон не показывался из толпы), что княжну нельзя выпустить, что на то приказ есть; а что пускай княжна остается, и они по старому будут служить ей и во всем повиноваться.
В ту минуту, когда Ростов и Ильин проскакали по дороге, княжна Марья, несмотря на отговариванье Алпатыча, няни и девушек, велела закладывать и хотела ехать; но, увидав проскакавших кавалеристов, их приняли за французов, кучера разбежались, и в доме поднялся плач женщин.
– Батюшка! отец родной! бог тебя послал, – говорили умиленные голоса, в то время как Ростов проходил через переднюю.
Княжна Марья, потерянная и бессильная, сидела в зале, в то время как к ней ввели Ростова. Она не понимала, кто он, и зачем он, и что с нею будет. Увидав его русское лицо и по входу его и первым сказанным словам признав его за человека своего круга, она взглянула на него своим глубоким и лучистым взглядом и начала говорить обрывавшимся и дрожавшим от волнения голосом. Ростову тотчас же представилось что то романическое в этой встрече. «Беззащитная, убитая горем девушка, одна, оставленная на произвол грубых, бунтующих мужиков! И какая то странная судьба натолкнула меня сюда! – думал Ростов, слушяя ее и глядя на нее. – И какая кротость, благородство в ее чертах и в выражении! – думал он, слушая ее робкий рассказ.
Когда она заговорила о том, что все это случилось на другой день после похорон отца, ее голос задрожал. Она отвернулась и потом, как бы боясь, чтобы Ростов не принял ее слова за желание разжалобить его, вопросительно испуганно взглянула на него. У Ростова слезы стояли в глазах. Княжна Марья заметила это и благодарно посмотрела на Ростова тем своим лучистым взглядом, который заставлял забывать некрасивость ее лица.
– Не могу выразить, княжна, как я счастлив тем, что я случайно заехал сюда и буду в состоянии показать вам свою готовность, – сказал Ростов, вставая. – Извольте ехать, и я отвечаю вам своей честью, что ни один человек не посмеет сделать вам неприятность, ежели вы мне только позволите конвоировать вас, – и, почтительно поклонившись, как кланяются дамам царской крови, он направился к двери.
Почтительностью своего тона Ростов как будто показывал, что, несмотря на то, что он за счастье бы счел свое знакомство с нею, он не хотел пользоваться случаем ее несчастия для сближения с нею.
Княжна Марья поняла и оценила этот тон.
– Я очень, очень благодарна вам, – сказала ему княжна по французски, – но надеюсь, что все это было только недоразуменье и что никто не виноват в том. – Княжна вдруг заплакала. – Извините меня, – сказала она.
Ростов, нахмурившись, еще раз низко поклонился и вышел из комнаты.


– Ну что, мила? Нет, брат, розовая моя прелесть, и Дуняшей зовут… – Но, взглянув на лицо Ростова, Ильин замолк. Он видел, что его герой и командир находился совсем в другом строе мыслей.
Ростов злобно оглянулся на Ильина и, не отвечая ему, быстрыми шагами направился к деревне.
– Я им покажу, я им задам, разбойникам! – говорил он про себя.
Алпатыч плывущим шагом, чтобы только не бежать, рысью едва догнал Ростова.
– Какое решение изволили принять? – сказал он, догнав его.
Ростов остановился и, сжав кулаки, вдруг грозно подвинулся на Алпатыча.
– Решенье? Какое решенье? Старый хрыч! – крикнул он на него. – Ты чего смотрел? А? Мужики бунтуют, а ты не умеешь справиться? Ты сам изменник. Знаю я вас, шкуру спущу со всех… – И, как будто боясь растратить понапрасну запас своей горячности, он оставил Алпатыча и быстро пошел вперед. Алпатыч, подавив чувство оскорбления, плывущим шагом поспевал за Ростовым и продолжал сообщать ему свои соображения. Он говорил, что мужики находились в закоснелости, что в настоящую минуту было неблагоразумно противуборствовать им, не имея военной команды, что не лучше ли бы было послать прежде за командой.
– Я им дам воинскую команду… Я их попротивоборствую, – бессмысленно приговаривал Николай, задыхаясь от неразумной животной злобы и потребности излить эту злобу. Не соображая того, что будет делать, бессознательно, быстрым, решительным шагом он подвигался к толпе. И чем ближе он подвигался к ней, тем больше чувствовал Алпатыч, что неблагоразумный поступок его может произвести хорошие результаты. То же чувствовали и мужики толпы, глядя на его быструю и твердую походку и решительное, нахмуренное лицо.