ネットワーク

OSI参照モデルとは | 分かりやすく図解で解説

2020年2月28日

OSI参照モデル

OSI参照モデルとは、国際標準化機構(ISO)によって策定されたコンピュータ間で通信するためのモデルです。OSI参照モデルは、その役割を7階層に分けて定義しています。

OSI参照モデル

国際標準化機構(ISO)が通信する際のルールを「OSI参照モデル」に策定したことで、あとは「OSI参照モデル」に従うだけです。ルールが統一されたことで異なるベンダー同士でも問題なく通信できます。

しかし、実際は1977年から1984年にかけて定義された「OSI参照モデル」自体は普及せず、その内容だけがネットワークの基本モデルとして広く参照されています。

そしてTCP/IP」の階層モデルが事実上の標準として広く普及しています。

スポンサーリンク

OSI参照モデル、TCP/IPの階層の主なプロトコルは次の通りです。

OSI参照モデルの層TCP/IPの階層主なプロトコル
アプリケーション層アプリケーション層HTTP、SMTP、POP3、FTPなど
プレゼンテーション層
セッション層
トランスポート層トランスポート層TCPUDPなど
ネットワーク層インターネット層IPICMPなど
データリンク層ネットワークインターフェース層イーサネットPPPなど
物理層

OSI参照モデルのカプセル化

OSI参照モデルは、7階層に分けて役割分担しています。そして、各層が必要なヘッダ情報を付与していく形で梱包されていきます。

この各層が必要なヘッダ情報を付与していく作業を「カプセル化」といいます。

OSI参照モデルのカプセル化

レイヤ7~レイヤ2でデータを送信するために必要な情報を付与、そしてレイヤ1ではビット列を「電気信号」や「光信号」「無線」などに変換し、通信を実現しています。

カプセル化されたデータは次のように呼ばれています。

層(レイヤ)呼び方
レイヤ7~レイヤ5データ
レイヤ4セグメント
レイヤ3パケット
レイヤ2フレーム
レイヤ1ビット

OSI参照モデルの非カプセル化

データを送信する際は、各層が必要なヘッダ情報を付与(カプセル化)してからデータを送信していました。

受信側は、送信側とは真逆で受け取った「電気信号」や「光信号」「無線」などをビット列に戻し、更に送信時に付与した各層のヘッダ情報を取り除いていく作業をします。

この作業のことを「非カプセル化」といいます。

OSI参照モデルの非カプセル化

宅配便と同じようなイメージです。宅配便も荷物を梱包(カプセル化)して送り、受け取り側は梱包したダンボールなどを取り除いて(非カプセル化)荷物を受け取ります。

スポンサーリンク

OSI参照モデル 各層の役割

[L7] アプリケーション層

利用者がコンピュータを使いインターネット上で通信する際の入り口がアプリケーション層です。

アプリケーション層の役割は、利用者が使うアプリケーションが通信できるようにするためルール(プロトコル)を定めています。例えばWebサイトを閲覧するには「HTTP」と呼ばれるプロトコルを使用します。そしてメール送信には「SMTP」、ファイル転送には「FTP」を使用します。

このように利用者が使うアプリケーションが通信するためのルール(プロトコル)を定めることで、クライアント(送信側)とサーバ間(受信側)で問題なく通信できます。

アプリケーション層のプロトコル

アプリケーション層で使われる主なプロトコルは次の通りです。

プロトコル説明
HTTP(Hypertext Transfer Protocol)Webサイトを表示する際に使用するプロトコル。HTMLやXML、画像、音楽などの様々なデータの受け渡しを行う。デフォルトのポートは「80」を使用。トランスポート層ではTCPを使用する。
SMTP(Simple Mail Transfer Protocol)電子メールを送信する際に使用するプロトコル。ポート番号は「25」を使用。トランスポート層では通常TCPが使われる。
POP3(Post Office Protocol)電子メールを受信する際に使用するプロトコル。ポート番号はPOP2では「109」、POP3では「110」を使用。トランスポート層ではTCPを使用する。
IMAP(Internet Message Access Protocol)電子メールを受信する際に使用するプロトコル。POPとの主な違いは、受信するとメールサーバから消えるPOPとは違いIMAPはメールサーバに受信メールが残る。TCPを利用する場合は、IMAP4ではポート番号「143」、IMAP over SSL/TLS(IMAPS)では「993」を使用する。
Telnet(Teletype network)遠隔地にあるサーバやルータを遠隔操作する際に使用するプロトコル。ポート番号は「23」を使用。
FTP(File Transfer Protocol)ファイルを転送する際に使用するプロトコル。ポート番号は「20」「21」を使用。トランスポート層ではTCPを使用する。
DHCP(Dynamic Host Configuration Protocol)IPアドレスを自動的に採番し各コンピュータに割り振るプロトコル。ポート番号は「66」「67」を使用。トランスポート層ではUDPを使用する。
NTP(Network Time Protocol)ネットワークに接続されているコンピュータの時刻を正しい時刻へ同期するためのプロトコル。ポート番号は「123」を使用。トランスポート層ではUDPを使用する。
DNS(Domain Name System)IPアドレスからドメイン名を導き出すプロトコル。
SNMP(Simple Network Management Protocol)インターネット上のネットワーク機器を監視するためのプロトコル。ポート番号は「161」「162」を使用。トランスポート層ではUDPを使用する。

[L6] プレゼンテーション層

プレゼンテーション層の役割は、コンピュータ間で通信する際のデータ形式(文字コードや圧縮、暗号化など)を決めることです。

例えば異なる文字コードを使用していると、文字化けが発生してしまいます。このような文字化けの問題はコンピュータ間で文字コードを統一すれば解決できます。

文字に限らず画像や音楽などもデータ形式を統一する必要があります。このようにコンピュータ間のデータ形式を統一することがプレゼンテーション層の役割です。

また、データの暗号や復号もプレゼンテーション層が担当しています。

[L5] セッション層

セッション層の役割は、コネクションの確立から切断までの通信の一連の手順を管理(セッションの管理)することです。

スポンサーリンク

[L4] トランスポート層

トランスポート層の役割は、コンピュータ間で通信する際の信頼性について定めています。

インターネット上で通信する時、必ずデータの送信に成功するとは限りません。また送信に成功してもデータが欠落してしまうことも考えられます。

そこでデータの送信に失敗したケースや欠落してしまったケースを考慮し、通信の信頼性について定義しているのがトランスポート層です。

具体的には、コネクション型の 「TCP」とコネクションレス型の「UDP」がトランスポート層で定義されている代表的なプロトコルです。

TCP(Transmission Control Protocol)

TCPはコネクション型のプロトコルです。コネクション型とは、会話のように相手とやり取りをしながら行う通信のことです。

TCPではデータを転送する前に、通信相手とコネクションの確立を行います。この通信相手とのコネクションの確立を「3ウェイハンドシェイク」といいます。

「3ウェイハンドシェイク」のイメージは次の通りです。

3ウェイハンドシェイク

TCPを利用することで通信相手とまるで会話するようにやり取りをしていきます。

仮にデータの送信に失敗した場合、次の図のように通信相手から返事が返ってきません。そして一定時間待機して再送する仕組みになっています。

TCP再送信

またデータが欠落した場合もTCPヘッダにある「チェックサム」を利用することでデータの欠落が検知できます。

このようにTCPを利用する事で信頼性の高い通信が可能です。

UDP(User Datagram Protocol)

UDPは、TCPとは違い速度を優先したプロトコルです。

UDPはコネクションレス型のプロトコルです。その特徴は、相手にデータが届いたかの確認を行いません。一方的にデータを送ることで速度の速い通信を実現しています。そのため、多少のデータの欠落があっても高速性やリアルタイム性を重視する通信で使われています。

UDPとは

[L3] ネットワーク層

ネットワーク層の役割は、目的地までデータを届ける(エンド・ツー・エンド)ことです。

宅配便では、宅配物を届け先に届けるために住所を利用します。インターネット上の通信も宅配便の仕組みと似ていて「IPアドレス」と呼ばれるインターネット上の住所を利用します。

ネットワーク層では、このIPアドレスを参照し目的地までデータを届けるためのルール(プロトコル)を定義しています。

ネットワーク層で使われる主なプロトコルは次の通りです。

プロトコル説明
IP(Internet Protocol)インターネット上で通信する際に主要となる通信プロトコル。インターネット上の住所である「IPアドレス」についての定義をしている。IPの主要バージョンはInternet Protocol Version 4 (IPv4) であり最も普及しているが、IPアドレスの枯渇問題により、後継の Internet Protocol Version 6 (IPv6) への移行を推奨している。
ICMP(Internet Control Message Protocol)ICMPは 主要プロトコルである「IP」 を補助する役割を持つ通信プロトコル。コネクションレス型(一方的に送る)のプロトコルである「IP」を使った通信において、ICMPは発生した各種エラー情報の検知などを行う。

ネットワーク層では、ルータ(L3スイッチ)と呼ばれるネットワーク機器が活躍します。ルータとは異なるネットワーク間の中継器。

ネットワーク上のコンピュータが自分の所属しているネットワークから外部にアクセスする時は必ずルータを経由します。例えば次の図のように、「PC1」が「ネットワークB」や「ネットワークC」にあるコンピュータにアクセスするためには、「ルータA」を経由します。

ネットワーク層

ルータには「ルーティングテーブル」と呼ばれる経路情報を保持しており、その経路情報を元に最適な経路を導き出すことができます。この最適経路を導き出す仕組みをルーティングといいます。

ルーティングテーブルには、インターネット上の住所である「IPアドレス」が管理されており「宛先のIPアドレス」から宛先のコンピュータが、どのネットワークに所属しているかを確認しそのネットワークへとデータを転送していきます。

スポンサーリンク

[L2] データリンク層

データリンク層の役割は、隣接する機器間の通信を可能にすることです。

データリンク層

データリンク層では、コンピュータ間で通信する際の手順やエラーの検出、対処方法などのルール(プロトコル)を定めています。

例えば、コンピュータをネットワークに接続する際に一般的に使用するイーサネットは、データリンク層のプロトコルです。イーサネットを使うことで、イーサネットで定義されているルールに従い通信を行います。

またデータリンク層では、コンピュータの識別番号であるMACアドレスを使用します。

目的地まで届けるのは「IPアドレス」の役割ですよね?「MACアドレス」は何に使うのですか?
「IPアドレス」と「MACアドレス」は役割が違います。どのように違うかは次の図をご覧ください。

IPアドレスとmacアドレス

上記の例は「PC1」がインターネット上にある「PC2」へデータを送信する際、送信先と送信元の「MACアドレス」「IPアドレス」がどのように設定されるかを表した図です。

PC1 → ルータA → ルータB → PC2

とルータを2つ経由して目的地のPC2へとデータが渡ります。

では、送信先の「MACアドレス」そして「IPアドレス」がどのように設定されているか確認していきましょう。

まず、「送信先IPアドレス」は常に目的地である「PC2」を指定しています。それに比べ「送信先MACアドレス」は次に送る相手を指定しています。

このように、最終的にどこに届けるかという情報がIPアドレス(目的地までデータを転送する役割)、それに対し次にどこへ届けるかという情報がMACアドレス(隣接する機器間の通信を可能にする役割)なのです。

[L1] 物理層

物理層の役割は、上位層から送られてきたデータのビット列を「電気信号」や「光信号」「無線」などに変換することです。

物理層のイメージ図

上記図のようにLANケーブルで接続されたコンピュータ同士が通信するためには、「0」と「1」で表現されたビット列を「電気信号」に変換する必要があります。また、光通信であれば「光信号」に変換、無線通信であれば「無線(電波)」に変換します。

各信号に変換することで、LANケーブルや光ケーブル、無線などでデータを送ることができます。また、受信側では「電気信号」や「光信号」「無線」などをビット列に戻していきます。

helpful