3

Я уже прочитал тему, очень похожую на эту, но я все еще не понял ее.

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

Что я знаю до сих пор:

общеизвестные порты используются для прослушивания и перенаправляются для отправки трафика на конкретный IP

динамические порты на стороне клиента и используются только для активного сеанса. после истечения срока действия порт снова становится доступным. Они используются только для того, чтобы трафик возвращался правильному пользователю.

Зарегистрировался - совсем не понимаю

4 ответа4

6

Что касается протоколов TCP и UDP, все порты одинаковы. Любой из них может использоваться для прослушивания службы / демона, любой из них может быть перенаправлен через порт в шлюзе NAT (он же NAPT, PAT), и любой из них может использоваться клиентом для инициирования соединения.

Исторически, многим хорошо известным протоколам, таким как HTTP (80), были назначены порты по умолчанию ниже 1024, поэтому многие ОС, включая большинство Unix и Unix-подобных ОС, не позволяют открывать прослушиватель на этих портах, если только у вас есть учетные данные администратора /root. Предполагается, что ваш Unix-бокс на самом деле является многопользовательской системой, и J. Random User не должен иметь возможность запускать на сервере HTTP-сервер и создавать впечатление, что HTTP-сервер этого пользователя является ОФИЦИАЛЬНЫМ HTTP-сервером для этот ящик, запустив его на порт 80. То же самое с SSH (22), Telnet (23), SMTP (25), FTP (21) и т.д.

Между 1024 и 49152 находятся несколько портов, которые были назначены в качестве порта по умолчанию для многих не очень известных, особенно корпоративных / проприетарных протоколов. Рекомендуется, чтобы ОС не использовала эти порты.

Когда процесс клиента или сервера запрашивает прослушивание порта или инициирует исходящее TCP-соединение или UDP-поток и не указывает конкретный порт, сетевой код TCP и UDP в ядре ("сетевой стек") назначает им неиспользуемый в настоящее время порт произвольно. Чтобы не мешать службам, которые впоследствии могут захотеть использовать проприетарные "зарегистрированные" порты, сетевой стек обычно старается избегать использования для этого хорошо известных или зарегистрированных портов и вместо этого ограничивается эфемерными / динамические порты между 49152 и 65535.

6

Хорошо известные порты

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

Динамические порты

  • Диапазон 49152–65535 (от 2 15+2 14 до 2 16 -1) содержит динамические или частные порты, которые не могут быть зарегистрированы в IANA. Этот диапазон используется для частных или настраиваемых услуг или для временных целей и для автоматического распределения временных портов.

Зарегистрированные порты

  • Диапазон номеров портов от 1024 до 49151 - это зарегистрированные порты. Они назначаются IANA для конкретной услуги по заявке запрашивающей организации. [1] В большинстве систем зарегистрированные порты могут использоваться обычными пользователями. Вот известные порты и вот зарегистрированные порты.

Вот отличное объяснение того, для чего нужны порты, дополнения к jcrawford

2

Они просто цифры. Вам не нужно думать о них как о более сложном, чем это.

Например, TCP-порт 80 широко известен как порт HTTP. Поскольку эта служба была признана важной, ей было дано относительно небольшое количество в списке портов IANA. (Нажмите на гиперссылку "XML" на этой странице, если хотите просмотреть весь список, а не по номеру порта.)

Однако, если вы хотите разместить другую службу (например, SSH-сервер) на порте не по умолчанию (например, TCP-порт 80), это будет работать. Как правило, это означает, что и сервер, и клиент должны будут указывать нестандартные настройки, и могут быть некоторые другие побочные эффекты (например, «netstat -a», показывающий "www", даже если это соединение SSH), но это будет Работа.

Так что это означает, что на самом деле нет никакой технической разницы между "хорошо известным" портом, или "зарегистрированным портом", или "динамическим"/"эфемерным" портом. Во многих случаях порты ведут себя точно так же, и если порты обрабатываются по-разному, в зависимости от того, в какой диапазон номеров они попадают, это часто просто поведение по умолчанию, которое можно переопределить.

Порты 1023 и ниже относятся к категории "общеизвестных" только потому, что их число 1023 или меньше. Фактически, на странице IANA даже есть разные имена для этих категорий: "Системные" порты (для 0-1023), Пользовательские порты (для 1024-49151) и Частные порты (для 49152-65535). Таким образом, даже названия категорий могут отличаться. Таким образом, если вы не готовитесь к экзамену, вам обычно не нужно слишком беспокоиться о том, к какой категории относится номер порта.

1

Ваше определение динамических портов выглядит более понятным в некоторых отношениях, чем любой из ответов.

Ты пишешь

динамические порты на стороне клиента и используются только для активного сеанса. после истечения срока действия порт снова становится доступным. Они используются только для того, чтобы трафик возвращался правильному пользователю ".

Я бы просто изменил это последнее слово на "клиент".

Пользователи не имеют отношения, все дело в компьютерах. Пользователи просто облегчают общение на компьютерах!

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

Тоомго указывает в своем комментарии, что процесс может начать много "разговоров".

Порт клиента будет определять, к какому разговору относится этот пакет.

Ты пишешь

общеизвестные порты используются для прослушивания и перенаправляются для отправки трафика на конкретный IP

Я бы сказал, что хорошо известные порты предназначены для прослушивания. Итак, как вы знаете, они на стороне сервера. Компьютер с портом, который слушает, является сервером (в соответствии с основным определением для сервера в любом случае)

Маршрутизаторы NAT, если они выполняют переадресацию портов, будут перенаправлять их на них. Но переадресация портов - это то, что, если сделано, выполняется на "маршрутизаторе NAT", но вы можете подключиться с одного компьютера в вашей локальной сети к другому компьютеру в вашей локальной сети. Нет переадресации портов. Так что это не является частью какого-либо определения того, когда вы используете хорошо известный порт.

Зарегистрировался - совсем не понимаю

Я не уверен, что я тоже.

Похоже, они могут быть такими же, как хорошо известные порты, но не так хорошо известные, т.е. их можно назвать менее известными портами. И так называемые хорошо известные порты <1024, и так называемые зарегистрированные порты более 1023.

На самом деле технически не имеет значения, для чего IANA говорит о порте. Люди могут запускать серверы на любом желаемом порту, если они знают или узнают, что работает на этом порту, чтобы они знали, к чему они подключаются / к какому порту подключаться. Конечно, если вы имеете дело с людьми, которые ожидают, что что-то на конкретном порту или программное обеспечение ожидает, то вы можете использовать этот порт. Как порт 80 для веб-страниц ... и некоторые используют порт 8080 для внутренней сети. Или в качестве помощи памяти вы можете придерживаться соглашения. Как один уровень безопасности люди иногда запускают сервер на высоком порту, поэтому хакер не может этого догадаться.

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

Таким образом, различие, которое вы сделали, является лучшим. Динамические порты на стороне клиента и порты на стороне сервера. И да, если какой-либо маршрутизатор NAT выполняет переадресацию портов, он будет делать это с портами на стороне сервера. И у IANA, похоже, есть списки, которые присваивают номера портов на стороне сервера тем, что обычно будут там, и они классифицируют списки, с соглашениями для портов <1024 как "хорошо известные" и соглашениями для портов> 1023 как "зарегистрированные". который, я думаю, менее известен. Но технически я думаю, что на самом деле нет разницы за этим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .