Пару месяцев назад меня спросили почему порт в 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.
Leave a Reply