2017-03-02 7 views
0

TCP/IPネットワークやソケット/ポートについて学ぶのは初めてです。私はいくつかの混乱があります。私は理解していることを言及しています。コンピュータネットワーキングのソケット、ポート、プロセスの関係

ノードN1には複数のプロセスが実行されています。プロセスP1に、他のノードN2に送信したい文字列がいくつかあるとします。 N1はOSに、本質的にネットワークI/Oストリーミングチャネルに似たソケットを作成するよう要求する。そのようなチャネルは作成され、ソケット記述子と共にプロセスに渡されます。したがって、ソケットを要求したノード+プロセスのノード、すなわちノードによってソケットが世界で認識されると言うことができる。したがって、基本的にノード+ポートアドレスのIP(プロセスを識別するために使用される)であるソケットアドレスという概念があります。だから私の疑問は次のとおりです。

  1. ここからポートのアイデアが出てきます。ソケットはノード+プロセスIDのIPとして識別できます。プロセスを識別するためにポートが必要な理由プロセスディスクリプタが自己完結していないのはなぜですか?なぜポートアドレス。例?

  2. ノードがデータを渡すだけで何も受信する必要がない場合、ソケットをソケットアドレスにバインドする必要があるのはなぜですか。ソケットアドレスの束縛とは、基本的には、「ノード+ポートアドレスのIPアドレスを持つソケットをその記述子から離れて認識すること」を意味します。ノードN1に何らかのデータを送信したい場合、他のノードにとって有益です。しかし、私が考えているのは、ネットワーク上で通信したいノード内のプロセスの場合、バインドされない「グローバル」ソケットが1つ存在する必要があるということです。すべてのプロセスがそれを使用してデータを送信します。いずれかのノードがデータを受信したい場合、ネットワーク内の他のノードがその特定のソケットを認識できるようにバインドされる別個のソケットを持つことができます。

  3. 正確にTCP/UDPは画像に収まりますか? TCPポート3000とUDPポート3000のような2つのポートを持つことができます。つまり、トランスポートプロトコルは異なるがポート番号は同じである別々のポートを使用できますか。これもソケットで可能ですか?

答えて

1

だから、私たちは、そのソケットは、ソケットを要求されたノード+プロセスのノード、すなわちIPによって世界に認識できると言うことができます。

「世界ではありません」。ローカルホスト内のみ。ソケットはlocalhost内にのみ存在し、プロセスIDはlocalhost内でのみ認識されます。

したがって、(識別プロセスのために使用)、基本的にはノード+ポートアドレスのIPであるソケットアドレスの概念

号ポートがサービスを識別する来ます。プロセスサービスを実装します。

ここからポートのアイデアが出てきます。

RFC 793

ソケットはノード+プロセスIDのIPとして同定することができます。

いいえできません。別のホスト上のピアは、リモートプロセスIDを取得する方法がありません。いくつかの固定されたオペレーティングシステムに依存しない識別子が必要です。プロセスは多くのポートを所有できます。この提案は意味をなさない。

プロセスを識別するためにポートが必要な理由

ポートはプロセスを識別しません。質問は意味をなさない。

なぜプロセス記述子が自己完結していないのですか?なぜポートアドレス。

あなたが最初に質問したのは間違っているからです。これは単なる別のバージョンです。

ノードがデータを渡すだけで何も受信する必要がない場合、ソケットをソケットアドレスにバインドする必要があるのはなぜですか。

接続はアドレス:ポートのペアで識別されるためです。

ソケットアドレスの結合は、本質的に、彼らはノードN1にいくつかのデータを送信したい場合は、他のノードのために有用である「別にその記述からノード+ポートアドレスのIPアドレスでソケットを認識し起動する」を意味します。

このノードでは、着信データがどこに送られるべきかを知ることもむしろ役立ちます。

しかし、私は、ネットワーク上で通信したいノード内のプロセスに対して、バインドされない「グローバル」ソケットが1つあるべきだと思います。すべてのプロセスがそれを使用してデータを送信します。いずれかのノードがデータを受信したい場合、ネットワーク内の他のノードがその特定のソケットを認識できるようにバインドされる別個のソケットを持つことができます。

このスキームの無効性と無意味さにかかわらず、あなたの考えは40年遅れです。

TCPポート3000とUDPポート3000のような2つのポート、つまりトランスポートプロトコルは異なるがポート番号は異なる別のポートを使用できますか。

はい。

正確にTCP/UDPは画像に収まりますか?

これらはポートを実装します。

これもソケットで可能ですか?

私はこの質問の意味を理解できません。すべてのソケットは互いに区別されます。

関連する問題