Intereting Posts
Поиск файлов, которые используют наибольшее дисковое пространство ядро реального времени / низкая латентность происходит от источника ванили Упрощенная обработка параметров сценария оболочки компиляция оболочки nginx не выполняется как выполнять административные команды без sudo? Устранение клонирования настроенного сервера RHEL, размещенного в центре обработки данных удаленно Самый простой способ отправить однострочную почту через командную строку с помощью gmail? Когда мы используем команду mv, какие изменения происходят в HDD? windows 7 переустановка убита grub Правильно проанализировать аргументы в скрипте, которые ведут себя как оболочка, вызываемая через SSH Удалить все, кроме нескольких расширений Найти все файлы, создать CSV с одной строкой для каждого подкаталога и имена файлов в столбцах Вход LXDM не работает nginx: не удалось создать referer_hash, вы должны увеличить referer_hash_bucket_size: 64 Установите SVN 1.8 на Centos 7

Связь между портом, номером порта и протоколом?

  1. Является ли «порт» конечной точкой связи (в транспортном слое)?

    Является ли «номер порта» адресом, назначенным порту?

    Учитывая порт, можем ли мы изменить присвоенный ему номер порта, аналогично тому, что можно изменить IP-адрес, назначенный сетевому интерфейсу?

  2. Из https://en.wikipedia.org/wiki/Network_socket

    сокеты с TCP-портом 53 и UDP-портом 53 являются отдельными сокетами

    Что означает эта цитата? В частности,

    • Может ли порт использоваться двумя транспортными протоколами (например, TCP и UDP) одновременно? (Я понимаю, что порт является частью транспортного протокола и не может принадлежать другому протоколу даже в разное время.)

    • Указывает ли это, что номер порта 53 может быть назначен порту в TCP и порту в UDP в разное время (но не одновременно)?

Компьютер может иметь один или несколько IP-адресов.

Некоторым IP-протоколам, таким как ICMP, требуется только IP-адреса для связи. Другие, такие как UDP и TCP, требуют, чтобы пакеты были адресованы как порту, так и IP-адресу. Как правило, у вас есть программа, реализующая сервис, прослушивание на хорошо известном порту, чтобы другие системы знали, как с ним связаться. Например, ssh сервер будет прослушивать порт 22 / tcp:

 $ netstat -a -t Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN $ netstat -a -t -n Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 

Программа netstat предоставит символические имена номерам портов, просмотрев /etc/services , а программа, например sshd , вызовет getervbyname («ssh», «tcp»), чтобы преобразовать имя в номер порта.

Если вы прослушиваете IP-адрес 0.0.0.0 , это означает, что вы должны прослушивать все IP-адреса системы, поэтому netstat печатает * .

Сервер ssh не должен прослушивать порт 22. Вы можете изменить его конфигурационный файл для прослушивания на порту 8022, скажем. Пока удаленный пользователь знает номер порта, и любые промежуточные брандмауэры разрешают трафик на порт 8022, он будет работать.

Для сотен сервисов по всему миру известные номера портов хранятся в реестре номеров портов имен служб и транспортных протоколов . Это надмножество /etc/services вашей локальной системы.

Сокет – конечная точка связи. Прежде чем его можно будет использовать, он должен быть связан с IP-адресом, номером порта и протоколом. Если он использует TCP, он должен быть подключен к другому сокету, прежде чем пакеты могут быть обменены. Сервер вызывает socket для создания сокета, bind для его привязки и listen прослушивания подключений. Клиент использует socket и bind , а затем подключается к серверу. (Вызов bind является необязательным для клиента, при вызове соединения система выделяет неиспользуемый порт и выбирает соответствующий IP-адрес для привязки к сокету.)

сокеты с TCP-портом 53 и UDP-портом 53 являются отдельными сокетами

Если услуга может быть предложена как для TCP, так и для UDP, обычно для номера порта является одинаковым в обоих протоколах. В приведенном выше случае у вас, вероятно, будет один DNS-сервер, который создает два сокета, один из которых прослушивает 0.0.0.0:53/tcp а другой – 0.0.0.0:53/udp .

Некоторые старые службы были разработаны для работы только по одному протоколу, и в этих случаях вы можете видеть две службы, использующие один и тот же номер порта (но, конечно, по разным протоколам). Например, 512 / tcp для rexec, но 512 / udp для biff. Такие системы имеют совершенно разные программы, прослушивающие порты. rexecd прослушивает 512 / tcp, а comsat прослушивает 512 / udp.

TCP и UDP – это два разных протокола поверх IP. Номер порта TCP является частью протокола TCP, а часть номера UDP-порта – протоколом UDP. Так что да, эти два могут использоваться одновременно, поскольку TCP и UDP – это два разных протокола с разными номерами протоколов (см. /etc/protocols ).

DNS-сервер может и одновременно прослушивать как UDP / 53, так и TCP / 53, поскольку UDP работает быстрее и имеет меньше накладных расходов для повседневных запросов, тогда как TCP может потребоваться для особо больших DNS-запросов за счет пакета UDP ограничение размера с обратной стороны когда. Здесь named прослушивание обоих, в то же время, например:

 $ sudo lsof -i -nP | fgrep \*:53 named 1267 named 20u IPv6 9691 0t0 TCP *:53 (LISTEN) named 1267 named 512u IPv6 9690 0t0 UDP *:53 $ 

Это named может обслуживать сотни или даже тысячи одновременных запросов UDP и TCP-клиентов через два отдельных порта, перечисленных выше.

TCP и UDP в противном случае представляют собой две различные реализации транспортного уровня и несут два поля по шестнадцать бит, каждый из которых указывает порт источника и порт назначения для каждого пакета TCP или UDP. Номер порта для сопоставления сопоставления может быть изменен путем настройки файла /etc/services (возможно, очень и очень плохой идеи), или серверу может быть поручено прослушивать некоторые номера портов не по умолчанию, при условии, что клиентские системы все правильно переконфигурированы для подключения к этому номеру нестандартного порта, например, sshd -p 1234 на server а затем server ssh -p 1234 server для подключения к этому TCP-порту 1234 не по умолчанию, вместо обычного tcp/22 . Или DNS-сервер может быть настроен для работы на UDP-порту 8475, хотя тогда нужно будет использовать пользовательскую клиентскую программу, такую ​​как dig -p 8475 @server ... для запроса этого пользовательского UDP-порта, поскольку операционные системы в целом будут только общаться с UDP / 53 или TCP / 53 на любом IP-адресе сервера имен.