web-dev-qa-db-ja.com

プロキシとルーティングの違い

プロキシとルーターが何に使用されているかはよく知っています。しかし、それらを確実に区別する方法がわかりません。

ここに私がそれらで見つけた要因のリストがあります。

プロキシサーバー

  • アプリケーション層のデータを自由に変更できます
  • 通常、TCPセッションをOriginから受信します
  • 通常、TCPターゲットへのセッションを形成します
  • アプリケーションレイヤーデータを読み取ってターゲットを定義できます
  • IPプロトコルを使用する場合、IPパケットのターゲットです。

ここでは、ネットワーク機器について考えないようにしましょう。 SOAPリクエストをルーティングするアプリケーションサーバーのメッシュについて考えてみましょう。ルーター

  • 明確に定義されたルーティングプロトコルに準拠
  • 通常、TCPセッションをOriginから受信します
  • 通常、TCPターゲットへのセッションを形成します
  • アプリケーションレイヤーデータを読み取ってターゲットを定義できます
  • IPプロトコルを使用する場合、IPパケットのターゲットです。

ルーティングのルールがすべての関係者に知られている場合はルーティングと呼ばれ、知られていない場合はプロキシと呼ばれますか? 2つを区別する決定的な要因があると私は確信しています。

9
Mikuz

プロキシサーバーとルーターは、プロトコルスタックの異なるレベルで動作します。プロキシはアプリケーション層で機能します(HTTPプロキシなど)。ルーターは、インターネットワークレイヤー(IPプロトコルなど)で機能します。

ルーターの主な役割は、ネットワーク間でパケットを移動することです。

プロキシの主な役割は、HTTPコンテンツのキャッシング、アプリケーションレベルのフィルタリングおよび承認機能の適用などの有用なサービスを実行することです。

ルーターは通常、TCPセッションの確立に関係しません。ネットワークアドレス変換(NAT)を実行するルーターでも、内部クライアントと外部サーバー間のセッションを追跡し、必要に応じてIPアドレスを修正します。

通常の使用では、ルーターはTCPセッションのエンドポイントではありません。

通常の使用では、ルーターはアプリケーション層プロトコルの内容を読み取りません。

11
RedGrittyBrick

OSIモデルでは、ルーティングは通常、ネットワークレイヤーであるレイヤー3に制限されます。ルーターは主にネットワーク間でIPパケットをシャッフルします(QoSが機能していない限り、実際にはTCPストリームにあまり関心がありません)。ルーターは、ネットワーク間を移動するときにパケットのIPヘッダーを変更します。ただし、通常はパケットのペイロードを変更しません。

プロキシは通常、レイヤー4(トランスポート)以上で機能します(レイヤー7、アプリケーションレイヤーが最も一般的です)。プロキシは、単一のパケットよりも大きなデータユニットで機能する可能性が高く、データのペイロードを変更するためにadd(HTTPプロキシVia:ヘッダーは良い例です)。

ネットワーキングのほとんどすべての場合と同様に、レイヤー間の境界はぼやけていることがあり、時にはぼやけています。ルーターは、トラフィックの変更、セキュリティのためのフィルタリングなど、プロキシの多くの機能を実行できます。また、プロキシを使用して、2つの異なるネットワークが相互に通信できるようにすることができます。通常、特定のアプリケーショントラフィックだけでなく、ネットワーク全体のすべてのインターネットトラフィックを確実に処理する必要があるため、パフォーマンスとコストの理由から、ルーターができる限り少ないことを行うことが最も理にかなっています。

3
LawrenceC

私は決定的な要因を理解したと思います。

プロキシサーバーは、ターゲットにそれ自体への返信を強制します。プロキシサーバーは、同期または非同期で、応答をオリジンにリレーできます。それ自体で応答を強制すると、プロキシサーバーが定義されます。

プロキシはクラスタにすることもできます。この場合、単一のプロキシサーバーではなく、単一のプロキシクラスタを介して応答が強制されます。

1
Mikuz