【OSI参照モデル その1】基本概念と各階層の役割解説

about-osi-part1

この記事のポイント
  • OSI参照モデル=通信の共通の考え方を定義

  • 機能毎に役割を分担(7階層)

ふと思ったのだけど、色々なネットワーク機器やPCのメーカがあるけど組み合わせて使っても普通に通信出来るわね。これって案外すごいことなのかも?

チャーチルさん

ポン先生

良い点に気が付いたね。実はネットワークに参加している全員が同じルールを使っているからこそ出来ることなんだよ。今日はそのルールの基礎となる考え方を説明していくよ。

本記事ではネットワークの基礎であるOSI参照モデルについて解説します。設計、構築、運用、どこでも必要になる概念になるので必ずマスターしましょう。

通信の前提条件

共通ルールが必要

まずは一例として人間同士の場合で考えて見ましょう。他人と会話する時に誰と会話しているか分からなかったり、違う言語で喋っていては会話になりませんよね。当然ですがお互いに条件や認識を合わせる必要があります。

同じルールでないと会話できない

これはすんなり理解できるでしょう。ネットワークも同じです。末端のPCや中継するネットワーク機器が違うやり方で通信しようとしても上手く行きません。前提として、共通のルールが有り、はじめて通信することが可能です。

実は最初はこういったルールが無く、各メーカは独自の仕様で機器を作っていました。そのため同じメーカ同士でしか通信できないという状況でした。(今では考えられませんが・・・)

しかし、世の中にネットワーク機器やコンピュータのメーカはたくさんある訳で、それではあまりにも不便だろうと言うことで共通ルールを作りましょうとなりました。

まず、通信をする上でそのやり方を定めたお作法があります。これをプロトコル(Protocol)と言います。
※ネットワークの世界ではIPやHTTP等最後にPが付く文字がありますがこれはProtocolのPです。最後がPだったらプロトコルの一種かな?と確認してみましょう^^

そして各プロトコルのモデルを体系的にまとめました。それが「OSI参照モデル(Open Systems Interconnection Reference Model)」という概念です。

このOSI参照モデルは今後ネットワークエンジニアとしてやっていく上で根本的な概念になります。新しい機器、新しい技術、新しいサービス、何を学ぶにしてもこのOSI参照モデルがベースになるでしょう。

次の章ではOSI参照モデルについて説明します。

ポン先生

因みに、OSI参照モデルを定めたのはISO(国際標準化機構)という組織
OSI:モデルの名前
ISO:組織の名前
ややこしいねぇ~ww

OSI参照モデル

OSI参照モデルの概要

OSI参照モデルを検索すると以下のような内容が出てきます。

OSI参照モデル

これで全て分かれば良いですが、ちょっと難しいですね。。。もう少し噛み砕いて行きましょう。OSI参照モデルとは、通信を7つのブロック(階層/レイヤ)に役割分担して効率的に体系化しましょう、ということです。

例えば会社で言うと、営業/開発/経理/人事/総務・・・等々職種がありますが全部の仕事を1人でやっているというのは稀ですよね。仕事量的に捌けないというのもありますが、1人でやるのは効率が悪いです。なので一般的には職種毎に部署を分け、各部署毎に同じ仕事を続けます(営業はずっと営業業務をやる、人事はずっと人事業務をやる)。

ネットワークも同じような考え方です。通信の始まりから終わりまで、全てのことを1つの仕組みでやろうとすると大変です。なので要素毎に分解できるものは切り出して各々小さい枠組みの中で考えましょうという訳です。

こうしておくと、例えば新しい機能を実装する時やBugの修正等を考える時も一部分のみの変更で済むといったメリットがあります。(一般的に、小分けにして纏めるとこういったメリットがありますね。)

また、分解の仕方は物理的な内容か論理的な内容か、その度合で区切っています。物理というのはケーブル等の物理的に触れるもの、論理というのはコンピュータの中身のソフトウェアに近いもの、という意味合いです。

また個人的には、始めたてのネットワークエンジニア初心者であれば、とりあえずマスターすべきはレイヤ1~3です。次にレイヤ4、7。レイヤ5~6はまぁ知識程度にと言ったところです。

これは普段の設計/構築や運用で必要になる頻度的な意味での順位付けで、低い階層ほど頻度は高い傾向になります。もちろんレイヤ7の話が多い環境もありますが、参考程度には知っておきましょう。

以降では各階層の内容に触れていきます。

第1層(L1)物理層

物理層(L1)はコネクタの形状やピン数、ケーブルから電気信号などの物理的な接続周りを指します。例えばネットワーク機器側のポートの形状とケーブル側の形状が合っていなければそもそも接続できませんよね。そういった物理的な形状レベルでの形式や仕様が含まれます。また、ここで言う電気信号とはデジタル信号です。デジタル信号は電気的な信号に差異を付けてbit(0or1)を表現しています。PCやサーバ、スマートフォン含め概ね全ての機器はデジタルですから、それらの通信の正に基礎と言える階層になります。

レイヤ1

第2層(L2)データリンク層

データリンク層(L2)は隣接する機器との通信に関する取り決めです。要は同セグメント内の通信ということです。L2ネットワーク内ではMACアドレス(Media Access Control address)を使って通信をします。MACアドレスは工場出荷時に決まる筐体固有のアドレスで、世界中で重複しない値となっています。また、それ以外にもデータの誤りや衝突を検知する機能も持っています。衝突とは、複数の端末が同時に送信して、データがぶつかってしまうことです。上記のように同セグメント内で確実に通信する仕組みが備わっています。

レイヤ2

第3層(L3)ネットワーク層

ネットワーク層(L3)は複数のネットワークを中継しデータをやり取りする機能を持ちます。つまり、セグメントを跨ぐルーティングの話です。L2ではできなかった他のセグメントへの通信ができるようになります。具体的には宛先のセグメントに応じた最適な経路選択等を行っており、プロトコルで言うとIP(Internet Protocol)となります。良く使っているIPアドレスもこのIPというプロトコルから来ています。

レイヤ3

第4層(L4)トランスポート層

トランスポート層(L4)は通信品質を担保する機能を有します。具体的にはエラー検出、再送要求等を行います。実は、L3はとりあえず宛先に送ることを目的としており、“正確に送れたかどうかは担保していない”のです。インターネットの世界では地球の裏側と通信する場合もあり、何かしらのエラー出る可能性があるのは何となく想像付きますよね? 実際それでは困ってしまうので、L4ではエラーのチェック+エラー検出時は再送要求を送信元に返信し該当データを再送してもらうことで、通信品質を担保します。なお上記は主にTCP(Transmission Control Protocol))というプロトコルを主体とした話です。L4では他にUDP(User Datagram Protocol)というプロトコルもあり、UDPでは上記のような仕組みは省略されています。例えばストリーミング配信等データの正確さよりも速度を重視する通信の場合にはUDPが利用されます。

レイヤ4

第5層(L5)セッション層

セッション層(L5)は通信の開始~終了までの手順を規定しています。そもそもセッションという言葉自体が通信の開始から終了までを表す単位です。セッション層のプロトコルとしては例えば認証やログイン、ログアウト等が含まれます。

レイヤ5

第6層(L6)プレゼンテーション層

プレゼンテーション層(L6)はファイル形式や文字コード等データをやり取りする上での約束事を定義しています。例えば文字コードが異なると文字化けしてしまいますが、統一しておけばそういった問題もクリアできます。文字以外にも画像や音楽、動画ファイル含め形式を統一することがプレゼンテーション層の役割となります。

レイヤ6

第7層(L7)アプリケーション層

アプリケーション層(L7)はユーザが操作するソフトウェアの提供する具体的な機能についての仕様や通信手順やデータ形式などを定めています。プロトコルで言うとHTTPやFTP、DNSといった具体的な通信プロトコルが出てきます。この記事もPCやスマートフォンのWEBブラウザを開きHTTPSというプロトコルでURLへアクセスすることで表示しています。

レイヤ7

まとめ

まとめ
  • OSI参照モデル=通信の共通の考え方を定義

    • 複数メーカ間での世界共通ルールを決めた
  • 機能毎に役割を分担(7階層)
    • L1:ケーブル等の物理周り
    • L2:同セグメント内の通信
    • L3:セグメント跨ぎの通信
    • L4:通信の品質担保
    • L5:セッションの管理
    • L6:データの形式管理
    • L7:ユーザが利用するソフトウェアの通信

OSI参照モデルはネットワークの考え方の基本ではあるものの、出てくる単語や覚えることが多く、最初は苦労すると思います。特にこの記事だけを見てもイメージしにくい点も多々あるでしょう。しかし、ネットワークエンジニアとしては必修科目の1つですし、ある程度慣れてしまえば大したことではありません。むしろエンジニア同士L2はこうでー、L3はあーでー・・・といった会話をする位が普通なので是非とも理解しておきましょう。