【OSI参照モデル その2】ヘッダとカプセル化 ~各レイヤ間の連携~

about-osi-part2

この記事のポイント
  • 送信時

    • 各レイヤ毎にヘッダ付与(カプセル化)

    • 上位レイヤから処理して下位レイヤへ引き渡し

  • 受信時

    • 各レイヤ毎にヘッダ解除(非カプセル化)

    • 下位レイヤから処理して上位レイヤへ引き渡し

  • キーワード

    • ヘッダ:制御に必要な情報

    • ペイロード:データ部分

    • PDU:全体

OSI参照モデルの各レイヤの役割は何となく分かったのだけど、レイヤ間の繋がりはイマイチ分からないわね。実際通信するときはどういった動きになるのかしら?

チャーチルさん

ポン先生

もちろん各レイヤが単独で動く訳では無く、それぞれ連携して動いているよ。今日はそのあたりの内容を見ていこうか。

本記事ではOSI参照モデルにおける各レイヤ間の連携について解説します。前回の記事とセットで読むことでOSI参照モデルの全体像が掴めるようになるでしょう。

データのカプセル化

データとヘッダ

まずは手紙を出す時のことを少し考えてみましょう。手紙本文だけあっても配達員の人はどこに届ければ良いか分からず、相手の手元には届かないですよね。普通は封筒に入れて相手の住所を書きます。

手紙とネットワーク

ネットワークもこれと同じです。送りたい「手紙」と宛先が書いてある「封筒」がセットになってはじめて相手に届きます。ここで出てきた手紙をデータ、封筒をヘッダと呼びます。
※データは各アプリケーションや目的によって様々なのでここでは割愛しますね。

ヘッダですが、一口にヘッダと言ってもその中には複数の情報が含まれています。また、ヘッダは各レイヤ毎にあります。つまりL2のヘッダ、L3のヘッダ、・・・、L7のヘッダとあり、各レイヤの役割を果たすにあたり必要な情報が載っています。

単純な送信効率の数字だけを見れば元々のデータにヘッダ分情報が追加されるので効率が悪くなってしまいそうです。しかし通信の目標は、「正確に」「速く」データを届けることです。重くなってしまいそうですが、データを制御するためにはヘッダ情報を付与する必要があるのです。

カプセル化

データは各レイヤ間で以下のように処理されます。ここではデータを送信する際の動作を例に説明します。

カプセル化

■①生データ出力
まずアプリケーションから、送りたいデータが出力されます。ここでは“生データ”と呼ぶことにします。

■②カプセル化
各レイヤの処理は上位レイヤから進んでいきます。最初はL7で、生データにL7ヘッダを付与します。ヘッダ付与とは文字通りデータにヘッダ情報をくっつけて1つの塊にすることです。このようにヘッダをデータに付与することを「カプセル化」と言います。

③下位レイヤへの引き渡し
そして「L7ヘッダ+生データ」の状態で下位レイヤ出であるL6へ渡します。以降はまた同様の繰り返しですが、先程と違う点は、L7視点でのデータは生データになりますが、L6視点でのデータは「L7ヘッダ+生データ」になるということです。 つまり上位レイヤから渡されたものは、上位レイヤのヘッダも纏めて全てデータとして扱い、自身のレイヤのヘッダでカプセル化、さらに下位レイヤへ引き渡すという流れになります。

送信時(カプセル化)

そしてL1まで来るとケーブルやWi-Fiなどの媒体に即した信号に変換し送り出します。
※因みに、L1は送信に必要な信号の変換を担っており、L1の情報をデータに追加するという事はないので、L1にヘッダはありません。

非カプセル化

今度は受信した際の動作を見ていきます。動作としては送信時の逆です。L1で受信した信号はL2→L3→L4と引き渡されます。その際、各レイヤのヘッダは取り除かれ上位レイヤへ渡します。最終的にL7ヘッダが取り除かれ生データがアプリケーションへ渡され処理されます。このように付与されたヘッダを取り除くことを「非カプセル化」と言います。

受信時(非カプセル化)

PDU

最後に用語の補足です。以下3点を押さえておきましょう。

ヘッダ(Header)
各レイヤでの処理や転送に必要な情報が入っている部分(上記の通り)。

ペイロード(Payload)
各レイヤでのデータ”に相当する部分(生データではなく、上位レイヤのヘッダも含んだ部分)。

PDU(Protocol Data Unit)
ヘッダとペイロードを足した全体。コンピュータ間で送受信する際の単位。

PDU

また、PDUはレイヤ毎に個別の名称が付けられています。

  • L4でのPDU名称:セグメント
  • L3でのPDU名称:パケット
  • L2でのPDU名称:フレーム

※L4のセグメントは、ネットワークセグメントとは別物なので注意。
※スマートフォンのプラン等で出てくるパケットはここから来ています。厳密には上記の通りL3限定でのPDUの名称ですが、IPというL3のプロトコルが有名なこともあり、一般的な会話ではデータ=パケット位の感覚で浸透しているでしょう。

まとめ

ポイント
  • 送信時

    • 各レイヤ毎にヘッダ付与(カプセル化)
      • L7~L2までヘッダ追加
    • 上位レイヤから処理して下位レイヤへ引き渡し
  • 受信時

    • 各レイヤ毎にヘッダ解除(非カプセル化)

      • L2~L7のヘッダ解除

    • 下位レイヤから処理して上位レイヤへ引き渡し

  • キーワード

    • ヘッダ:制御に必要な情報

    • ペイロード:データ部分

    • PDU:全体

      • L4:セグメント

      • L3:パケット

      • L2:フレーム

今回は各レイヤ間でのデータの受け渡し、処理方法について解説しました。単純にデータを送ると言っても、普段利用しているPCやスマートフォンでは、これだけヘッダを付けたり剥がしたりを頻繁にやっているのです。(なのでPCやスマートフォンをもっと労いましょう^^)
特にカプセル化という概念はネットワークではかなり一般的です。元は同じデータでも別のヘッダを付与するだけで全く異なる通信制御が可能なので意外と便利ですし、今後勉強する技術でも出てくるので内容は押さえておきましょう。