Откуда взялся порт номер 5432

PostgreSQLПару месяцев назад меня спросили почему порт в PostgreSQL по умолчанию — именно 5432. Именно это сочетание цифр. Я кое-чего тогда поискал, потом ещё и ещё. Ну и сохраню найденную информацию у себя.

Я так и не нашёл информацию почему используется именно это цифросочетание. Возможно, что кто-то когда-то по клавиатуре клацнул пальцами — и получилось 5432. Удобно. Ну а дальше уже понеслось.

В переписке постгресовой можно найти вот такой тред: time’s running short for you to reserve 5432/tcp!!!!

Кто-то предлагает забронировать порт 5431 для PostgreSQL официально. И чуть ниже Том Лэйн отвечает:

With only a minor slap on the wrist, we now officially own port #5432.

			regards, tom lane

------- Forwarded Message

Date:    Wed, 14 Nov 2001 13:31:18 -0800
From:    "IANA" <iana(at)icann(dot)org>
To:      <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: RE: Application for port-number (5432)

Dear Tom,

We have assigned the following user port number with you as the point of contact:

postgresql      5432/tcp   PostgreSQL Database
postqresql      5432/udp   PostgreSQL Database
#                          Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>

Please notify the IANA if there is a change in contact information.

Note for future:  Port numbers should NOT be used before they are assigned.  Applicants should not pick their own port number.  The IANA will assign the port number after your application is approved.

Thank you,

Michelle S. Cotton
IANA Administrator

То есть он уже отправлял такой запрос для порта 5432 в IANA (Internet Assigned Numbers Authority — «Администрация адресного пространства Интернет»), и получил официальный ответ — порт закреплён за PostgreSQL.

И можно заглянуть в официальный документ с перечнем всех портов и закрепленными за ними приложениями, такой документик есть на сайте IANA:

Internet Assigned Numbers Authority

                                               Service Name and Transport Protocol Port Number Registry

   Last Updated
   2023-12-05

Майская версия этого года. Имщем там что-то с «5432» ииии:

postgresql         5432        tcp    PostgreSQL Database          [Tom_Lane]
postgresql         5432        udp    PostgreSQL Database          [Tom_Lane]

Такие дела.

Ещё можно заглянуть вот в этот коммит: d31084e9d1118b25fd16580d9d8c2924b5740dff:

commit d31084e9d1118b25fd16580d9d8c2924b5740dff
Author: Marc G. Fournier <scrappy@hub.org>
Date:   Tue Jul 9 06:22:35 1996 +0000

# CONFIGURATION SECTION
...
# Globally pass the default TCP port for postmaster(1).
CFLAGS+= -DPOSTPORT='"5432"'

Я только в нём нашел упоминание о вставке номера порта.

В постгресовой документации есть отсылочка к IANA — первый абзац:

«Для серверов, поддерживающих этот протокол, в IANA зарезервирован номер TCP-порта 5432, но на практике можно задействовать любой порт, не требующий особых привилегий».

UPD: Нашёл документацию на проект POSTGRES95. Там фигурирует следующее сообщение об ошибке при подключении к серверу:

connectDB() failed: Is the postmaster running at 'localhost' on port '4322'?

Так что раньше номер порта был, похоже, другим, но очень рядом.

Дальше я попробовал поискать упоминания сочетания «5432» в исходном коде Ingres’a, но не нашёл. В интернете находил упоминания разных портов, например: 117, 134, 21071. Но ни разу не нашёл связи Ingres и 5432.

Из доки по Ingres «Ingres® 9.3. Connectivity Guide» за 2009 год можно только такое почерпнуть:

port

Identifies the listen address of the Ingres instance on the remote node.

Явным образом почему-то нигде номер порта не прописывают.

Снова заглянул в документ с перечнем портов от IANA, нашёл там упоминание ingres-net:

ingres-net          134        tcp    INGRES-NET Service           [Mike_Berrow]
ingres-net          134        udp    INGRES-NET Service           [Mike_Berrow]

Но это точно не 5432 🙂

Кстати, если погуглить этого Майка Берроу — то он во второй половине восьмидесятых работал как раз в компании Ingres.

Так что я так и не смог найти причину почему в PostgreSQL уже давным-давно используется именно 5432. Но этот номер официально застолбили в IANA за PostgreSQL.


Be the first to comment

Leave a Reply

Ваш Mail не будет опубликован.


*