3

以下の発言があります。

「TCP では、受信側ホストは送信元 IP、送信元ポート、宛先 IP、および宛先ポートのすべてを使用して、データグラムを適切なソケットに送信します。UDP では、受信側は宛先ポート番号のみをチェックしてデータグラムを送信します。」

上記の説明は本当ですか?

はいの場合、TCP では 1 つのプロセスで複数のソケットに同じポートを使用できますが、UDP では 1 つのプロセスのポートで 1 つのソケットしか使用できないということですか? 異なるプロセスのソケットはどうですか? 複数のプロセスが TCP/UDP で同じポートを使用できますか? (プログラミング言語: C/C++/Java)

そうでない場合、なぜですか?

4

2 に答える 2

4

「TCP では、受信側ホストは送信元 IP、送信元ポート、宛先 IP、および宛先ポートのすべてを使用して、データグラムを適切なソケットに送信します。UDP では、受信側は宛先ポート番号のみをチェックしてデータグラムを送信します。」

上記の説明は本当ですか?

はい。

はいの場合、TCPでは同じポートを1つのプロセスで複数のソケットに使用できるということですか?

はい、状況によっては可能です。

UDPでは、1つのプロセスのポートで1つのソケットしか使用できませんか?

いいえ、以下を参照してください。

異なるプロセスのソケットはどうですか? 複数のプロセスが TCP/UDP で同じポートを使用できますか? (プログラミング言語: C/C++/Java)

状況によっては、はい。UDP ポートは、それを共有するすべてのプロセスで再利用可能として指定する必要があります。TCP ポートは、異なるインターフェースにバインドされたソケットによってのみ再利用できます。共有はありません。

于 2013-04-11T22:57:44.697 に答える
1

つまり、TCP では、固有の通信「チャネル」は次の 4 つのタプルとして記述できます(src-ip, src-port, dst-ip, dst-port)

UDP では、特定のポート宛てのすべてのパケットは、そのパケットの送信元アドレスとポートに関係なく、そのポートでリッスンしている唯一の UDP ソケットに配信されます。私はそれを漏斗と考えるのが好きです。

于 2013-04-11T23:02:53.793 に答える