2015-03-06 3 views
2

Зарезервированные порты TCP/IP требуют, чтобы программа работала и привязана к порту? Если такая программа не работает или не существует, может ли другая программа использовать этот порт? Например, в Linux порт 7 зарезервирован для эхо-сервера. Я предполагаю, что есть некоторая программа, работающая и привязанная к порту 7 машины. Программа в основном echos обратно вход. Если эта программа остановлена, выйдет ли порт 7?Зарезервированные порты TCP/IP

Если я написал свой собственный эхо-сервер и связал его с каким-либо другим портом, не освободился бы этот порт после того, как моя пользовательская программа эхо-сервера будет убита?

Случается ли то же самое для зарезервированных портов?

Кроме того, если все эти программы работают на зарезервированных портах, не будут ли они потреблять системные ресурсы, даже если они заблокированы при прослушивании соединения? Всегда ли эти программы работают?

ответ

0

[EDIT] Идея зарезервированного порта заключается в том, что любое настраиваемое программное обеспечение, которое вы пишете, должно заботиться о том, чтобы избежать привязки к ним, чтобы избежать вмешательства в установленную службу. Кроме того, пользователи, не являющиеся пользователями root, не могут привязывать ни один из портов ниже 1024, многие из которых зарегистрированы в IANA (aka reserved).

Нет необходимости связывать определенный процесс с каким-либо портом. Порт - это всего лишь системный ресурс. Обычно мастер inetd запускается в начале последовательности загрузки системы, привязывается к некоторым портам с низким номером и обрабатывает тривиальные сервисы, такие как эхо. Эти алгоритмы настолько просты и так редко используются на практике, что потребляется очень мало ресурсов. Вот почему вы не найдете отдельный процесс «эхо-сервера». Если вы читаете страницу inetd.conf вручную:

http://www.freebsd.org/cgi/man.cgi?query=inetd.conf&sektion=5&manpath=FreeBSD%209.2-RELEASE

Inetd утилита также предоставляет ряд других «тривиальные» услуги меж- наконец путем использования подпрограмм внутри себя. Этими услугами являются «echo», «discard», «зарядное устройство» (генератор символов), «дневное время» (человеческое чтение - способное время) и «время» (машиночитаемое время, в виде количества секунд с полночь, 1 января 1900 года).

+0

Идея зарезервированного порта заключается в том, что он находится в списке в IANA, так что только одна служба может его использовать. Идея портов 1-1023 заключается в том, что к ним может привязываться только пользователь root. Это не одно и то же. Есть много зарезервированных портов выше 1023. – EJP

+0

«Список хорошо известных портов. Номера портов варьируются от 0 до 65536, но только номера портов от 0 до 1024 * зарезервированы для привилегированных сервисов и обозначены как известные порты. Известные номера портов определяют порт, используемый серверным процессом как его контактный порт. " http://www.webopedia.com/quick_ref/portnumbers.asp – BaseZen

+0

Exacfly. Зарезервировано * для привилегированных пользователей. * Произвольные веб-сайты не являются нормативными ссылками и не могут «указать» что-либо. Только IANA может это сделать. Если вы обратитесь за советом к своей ссылке и обратитесь к RFC 1700, вы увидите, что реальный список на эту дату продлился значительно дальше 1023 года, а сам RFC 1700 был устаревшим много лет назад. – EJP

0

Доступны порты 1-65535, а порты в диапазоне 1-1023 являются привилегированными и используются для стандартных приложений.

И будет Ephemeral диапазон портов также существует в вашей системе, и она может быть найдена следующим образом:

sysctl -A | grep ip_local_port_range 

диапазон портов Epeheral доступен для всех клиентских сокетов.

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

Вы можете проверить наличие порта с помощью команды:

netstat -a | grep <port number> 
2

Do зарезервированные порты TCP/IP требует, чтобы программа работает и привязанными к порту?

No.

Если такая программа не работает, или существует, может другая программа использовать этот порт?

Ничего не остановить, но оно по-прежнему сохраняется, и пользователи имеют право жаловаться вам, если вы злоупотребляете портами, зарезервированными для чего-то другого.

Например, в Linux порт 7 зарезервирован для эхо-сервера. Я предполагаю, что есть некоторая программа, работающая и привязанная к порту 7 машины. Программа в основном echos обратно вход. Если эта программа остановлена, выйдет ли порт 7?

Да.

Если я написал свой собственный сервер эхо-сигналов и связал его с каким-либо другим портом, не будет ли этот порт выпущен после того, как будет уничтожена моя пользовательская программа эхо-сервера?

Да.

Случается ли то же самое для зарезервированных портов?

Да, конечно.

Кроме того, если все эти программы работают на зарезервированных портах, не будут ли они потреблять системные ресурсы, даже если они заблокированы при прослушивании соединения?

Да.

Эти программы работают постоянно?

Либо они работают, либо они не работают. Вы спрашиваете обо всех ситуациях одновременно. Если вы имеете в виду «выполнение», то есть потребление процессора, ответ «нет», они заблокированы в ожидании соединений, пока нет соединений.

Смежные вопросы