$ 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:57504
UDP 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が選択されていると疑われます。