この記事では、多重化と逆多重化について説明します

前に書く:これはXiao Wangの成長ログです。普通の大学生が学習後に彼の研究ノートを共有し、彼の成長軌道を記録し、それを必要とするかもしれない人々を助けたいと思っています。研究ノート、実用的なプロジェクトノート、いくつかの技術的探求、および私自身の考えのいくつか。誰でも注意を払って大歓迎です、私はあなたが好きで、フォローするすべてのコメントを注意深く読んでいきます。ご不明な点がございましたら、お気軽にお問い合わせください。

最近私はコンピューターネットワークを見ています。これは自習であり、レベルは限られているため、これは学習ノートであり、必ずしもそれほど深くはありませんが、送信されたものは自分で考えて整理する必要があることが保証されています。すべての文が検証されました。ようこそ、兄貴ガイダンス、エラーがある場合は軽くスプレーしてください。

事前知識

プロセスがネットワークからデータを取得する方法

最初に、プロセスがネットワークからデータを受信するプロセスを理解します。

宛先ホストでは、トランスポート層はその下のネットワーク層からメッセージセグメントを受信する必要があります。

トランスポート層は、これらのセグメントのデータをターゲットプロセスの指定されたソケットに配信します(プロセスには複数のソケットがある場合があります)。

したがって、ソケット(Socket)は、プロセスからネットワークにデータを転送したり、プロセスからネットワークにデータを転送したりするためのゲートウェイとして機能します。
以下に示すように

ここに画像の説明を挿入

トランスポート層のメッセージ構造

我々が見ることができるように送信元ポート番号及び宛先ポート番号-各トランスポート層パケットのヘッダには2つのフィールドを有しています

ホストでは、各ソケットはプロセスに対応し、各ソケットにはポート番号を割り当てることができます

したがって、セグメントがホストに到達すると、トランスポート層はセグメント内の宛先ポート番号を確認し、対応するソケットに転送(多重化)します。その後、セグメント内のデータはソケットを介してユーザーに入ります。接続先のプロセス。

概観

逆多重化

各トランスポート層セグメントにはいくつかのフィールド(つまり、上記の送信元ポート番号と宛先ポート番号)があります。受信側では、トランスポート層がこれらのフィールドをチェックして受信ソケットを識別し、それをソケットの識別情報と比較して、一致する場合は、メッセージセグメントをソケットに送信します。

多重化

ソースホストは、さまざまなソケットからデータブロックを収集し、各データブロックのヘッダー情報をカプセル化して(後で分解に使用されるソースポート番号と宛先ポート番号をカプセル化します)、メッセージセグメントを生成してレポートします。テキストはネットワーク層に渡されます。

栗をあげる

本では栗を使用して、逆多重化と多重化の内容を説明しています。

この栗は合計2つの家族(2つのエンドシステム)があり、各家族には7人の子供(プロセス)がいます。各家族の子供は毎週お互いに手紙書きます。たとえば、上司から上司、2番目古くて書かれています(封筒の文字はアプリケーションレベルのメッセージを表しています)。

最初の小さなBと2番目の古いAが、家の中でメール送受信する責任を負います(トランスポート層はIP層からメッセージを受信し、対応するプロセスに配信します)明らかに、外部の郵便システムは、2つのエンドシステム間の情報伝送チャネルとして機能します。

それぞれの子は名前で識別されます。小さなBが郵便配達員(IP層)から手紙のバッチを受け取り、受信者の名前(メッセージの宛先ポート番号)を確認することにより、兄弟(プロセス)に手紙を配達したときこれは分解操作です。

古いA が兄弟(プロセス)から手紙を収集し、郵便配達人(IP層)に配達すると、多重化操作を実行します。

UDPとTCPの多重化と逆多重化の違いは何ですか

主な違いは、scoketです。

UDPソケット接続なしの逆多重化および多重化

UDPソケットを作成すると、トランスポート層が自動的に、または1024-65535のポートを人工的にバインドします(残りのポートは、既知のアプリケーション層プロトコル用に予約されている既知のポートです)。

タプル包括的な識別によるにUDPソケット

  • 2つのタプルには、宛先IPアドレスと宛先ポート番号が含まれています

    したがって、2つのUDPセグメントは、異なる送信元IPアドレスまたは送信元ポート番号を持っている場合が、同じ宛先IPアドレスと宛先ポート番号と、2つのセグメントは、ソケットを介して同一のオブジェクトであることに向けられ同じ目的のプロセス(多重化)

  • 送信元ポート番号は、「返信アドレス」の一部として使用され、応答メッセージの宛先ポートに入力します。これは明らかです。

ここに画像の説明を挿入

TCPソケット接続指向の多重化および逆多重化

単語とUDPソケットの間でTCPソケット接続ながらニュアンスTCPソケットは、4タプル(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号)によって識別されます

したがってためのソケットを検索する4つの値の使用のように、同じソースが異なるIPポートから2つのTCPセグメントが2つの異なるソケットに指向され、そして逆もまた同様です。(多重化)

サーバーホストは多くの並列TCPソケットをサポートでき、各ソケットはプロセスに関連付けられており、各ソケットは4タプルで識別されます。TCPセグメントがホストに到達すると、4つのフィールドすべて(送信元Pアドレス、送信元ポート、宛先Pアドレス、宛先ポート)を使用して、セグメントを対応するソケットに転送(分解)します

ここに画像の説明を挿入

WebサーバーとTCP

まだ上の写真を見てください。

上の図は、接続ごとに新しいプロセスを生成するサーバーを示しています。図に示すように、そのような各プロセスには独自の接続ソケットがあり、HTTP要求を受信して​​HTTP応答を送信できます。

  • 接続ソケットとプロセスの間には、常に1対1の対応があるわけではありません。
  • 今日の高性能Webサーバーは通常1つのプロセスのみを使用しますが、新しいクライアント接続ごとに新しい接続ソケットを持つ新しいスレッドを作成します。(スレッドは軽量の子プロセスと見なすことができます。)
  • クライアントとサーバーが継続的なHTTPを使用する場合、クライアントとサーバーは、接続の全期間中、同じサーバーソケットを介してHTTPメッセージを交換します。ただし、クライアントとサーバーが非永続接続を使用する場合、新しいTCP接続が要求/応答ペアごとに作成されてから閉じられるため、要求/応答ペアごとに新しいソケットが作成されて閉じられます。 。このようなソケットが頻繁に作成およびクローズされると、ビジー状態のWebサーバーのパフォーマンスに深刻な影響を与える可能性があります(ただし、この問題の影響を軽減するために利用できるオペレーティングシステムのトリックは数多くあります)。

私はここで見ました、私の兄弟、姉妹、叔父、そして叔母はシャオワンにコメントを与え、コメントを残します。シャオワンで育ち、あなたの注意が私の最大のサポートです。よろしければ
、見てみましょう:Xiaowangブログのディレクトリインデックスにアクセスして確認してください。


上記の内容に誤りや欠落がある場合、またはより良い意見がある場合は、コメントを残してお知らせください。できる限りお答えします。

元の記事を23件公開 賞賛された266件 10,000件以上の表示

おすすめ

転載: blog.csdn.net/weixin_45761327/article/details/105549455