どのプロセスがネットワークポートからデータを読み取ることができますか?どのように?

どのプロセスがネットワークポートからデータを読み取ることができますか?どのように?

たとえば、postgresはlsof -iに示されているように次のことを行います。

COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 29200 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29202 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29203 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29204 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29205 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152 
postgres 29206 postgres    8u  IPv6 470362      0t0  UDP localhost.localdomain:53152->localhost.localdomain:53152

まず、これがマルチキャストですか(どうすればわかりますか)?それでは、他のアプリケーションもUDPポートに接続してそのポートを通過するデータを購読できますか?私はネットワーキングに初めて触れましたが、これが可能かどうかは完全にはわかりませんが、セキュリティを考慮すると疑問に思うだけです。

EDIT 8/30/13:ネットワークまたは同じシステムのどこからでも、一部のプロセスがポート(たとえば、上記の53152)に入って来るデータを観察できますか?そしてどんな権限がありますか?どのように?

答え1

localhost.localdomain接続されているという事実は、localhost.localdomainマルチキャストが不可能であることを意味します。以下は、IPv6のマルチキャストの説明です。http://en.wikipedia.org/wiki/IPv6#マルチキャスト

達成しようとする目標を説明すれば、助けを容易にします。マルチキャストを使用しますか?それでは、どのような具体的な目的で?それともマルチキャストにならないようにすることが目標ですか?

答え2

他のアプリケーションもUDPポートに接続して、そのポートを通過するデータを購読できますか?

ポート番号は一意です。たとえば、複数のプロセスが特定のポートを開いてリッスンできるようにすることはできません。ただし、設定できる接続数に制限はありません。到着ポート。ポートを制御するプロセスはこれらの接続を可能にします。

したがって、ある意味では1つのデータフローしか存在しませんが、複数の接続で構成することもでき、ポートを制御するプロセスだけがすべてのデータを見ることができます。ただし、ポートはトラフィックをルーティング(デフォルトで注文)するために使用されるアドレスにすぎないため、実際には安全でもプライベートでもありません。ネットワークの本質は実際にこれです。みんなネットワークトラフィック(「ローカルループバック」を含む)みんなそのネットワーク上のマシン(ループバックの場合はローカルマシンは1つだけです)、少なくとも* nixには正しい権限を持つプロセスがこれを観察できるようにする方法があります。みんなの。しかし、観測者は、この意味では参加者ではないため、コミュニケーション技術としては使用されません(いずれとも接続を確立することは含まれません)。

関連情報