TCP/IPネットワークやソケット/ポートについて学ぶのは初めてです。私はいくつかの混乱があります。私は理解していることを言及しています。コンピュータネットワーキングのソケット、ポート、プロセスの関係
ノードN1には複数のプロセスが実行されています。プロセスP1に、他のノードN2に送信したい文字列がいくつかあるとします。 N1はOSに、本質的にネットワークI/Oストリーミングチャネルに似たソケットを作成するよう要求する。そのようなチャネルは作成され、ソケット記述子と共にプロセスに渡されます。したがって、ソケットを要求したノード+プロセスのノード、すなわちノードによってソケットが世界で認識されると言うことができる。したがって、基本的にノード+ポートアドレスのIP(プロセスを識別するために使用される)であるソケットアドレスという概念があります。だから私の疑問は次のとおりです。
ここからポートのアイデアが出てきます。ソケットはノード+プロセスIDのIPとして識別できます。プロセスを識別するためにポートが必要な理由プロセスディスクリプタが自己完結していないのはなぜですか?なぜポートアドレス。例?
ノードがデータを渡すだけで何も受信する必要がない場合、ソケットをソケットアドレスにバインドする必要があるのはなぜですか。ソケットアドレスの束縛とは、基本的には、「ノード+ポートアドレスのIPアドレスを持つソケットをその記述子から離れて認識すること」を意味します。ノードN1に何らかのデータを送信したい場合、他のノードにとって有益です。しかし、私が考えているのは、ネットワーク上で通信したいノード内のプロセスの場合、バインドされない「グローバル」ソケットが1つ存在する必要があるということです。すべてのプロセスがそれを使用してデータを送信します。いずれかのノードがデータを受信したい場合、ネットワーク内の他のノードがその特定のソケットを認識できるようにバインドされる別個のソケットを持つことができます。
正確にTCP/UDPは画像に収まりますか? TCPポート3000とUDPポート3000のような2つのポートを持つことができます。つまり、トランスポートプロトコルは異なるがポート番号は同じである別々のポートを使用できますか。これもソケットで可能ですか?