postgresqlサーバーに `localhost:57504`から `localhost:57504` UDP「接続」があるのはなぜですか?

postgresqlサーバーに `localhost:57504`から `localhost:57504` UDP「接続」があるのはなぜですか?
$ sudo netstat -ap | grep postg
tcp        0      0 localhost:postgresql    0.0.0.0:*               LISTEN      1567/postgres       
udp        0      0 localhost:57504         localhost:57504         ESTABLISHED 1567/postgres       
unix  2      [ ACC ]     STREAM     LISTENING     27116    1567/postgres        /var/run/postgresql/.s.PGSQL.5432

postgresqlサーバーにlocalhost:57504UDP localhost:57504「接続」があるのはなぜですか?それはどういう意味ですか?

ありがとうございます。

答え1

少し掘ると、これは統計コレクターです。明らかに、統計はローカルループバック(別名localhost)UDPを介して公開されます。ねえ:http://www.neilconway.org/talks/hacking/ottawa/ottawa_slides.pdf。デフォルトでは、PostgreSQLの他の(バックエンド)サブプロセスはこのUDPポートを使用して統計コレクタに統計を送信します。あなたが見ているのは、メッセージの受信を待つ「受信」ソケットです。

ポート 57504 はい一時ポート。つまり、誰もこれを選択せず​​、実行時にランダムに割り当てられます。ここに注意してください: https://www.postgresql.org/message-id/[Eメール保護]

UDP は、接続に関心がないという点で TCP とは大きく異なります。 UDPソケットはメールボックスのように動作します。どこからでもメッセージを受け取り、各メッセージのアドレスに送信します。したがって、リモートホストとリモートポートはしばしば無視できます。

UDPはパケットが受信されるかどうかに関心がない。統計コレクタがフラッディングされても、バックエンドが統計コレクタを待たないため、UDPが選択されていると疑われます。

関連情報