【ネットワーク基礎】OSI参照モデル
はじめに
データが相手に適切に届けられるまでの流れを理解するために、これまでさまざまな知識を解説してきました。あと少しで全体の流れを理解できるようになります。
Ethernet周りの解説をしていく前に、ここでデータリンク層・物理層という階層を理解するためにOSI参照モデルについて、まとめていきます。
OSI参照モデルとは
ネットワークにおける通信機能を7つの階層に分割して定義した概念モデルです。異なるコンピュータやネットワーク機器間でのスムーズなデータ通信を実現するために、各階層が特定の役割を担っています。
※https://news.mynavi.jp/techplus/article/networksyosinsya-15/ より
相手にデータが届くまでの流れ
※https://shinmeisha.co.jp/newsroom/2020/01/23/osi参照モデルとは/ より
各階層で必要な情報(ヘッダ)を追加していき(カプセル化)、フレームはレイヤー1の物理層で電気信号に変換され、ケーブルやネットワークを通り、相手のレイヤー1に届けられます。
その後、届け先ではレイヤー1からレイヤー7に向かってカプセル化されたフレームを階層ごとに外していき(非カプセル化)、宛先のアプリケーションに届けられます。
OSI参照モデルはよくTCP/IPと比較されます。
実際の通信においてはTCP/IPモデルに即した構成が利用されており、OSI参照モデルは理論的なモデルで、より細かく理解する際に役立ちます。
OSI参照モデルとTCP/IP
※https://qiita.com/developer-kikikaikai/items/b426cc11fff09d9abe4d より
各階層の役割
※https://www.itmanage.co.jp/column/osi-reference-model/ より
アプリケーション層
ユーザーとのインターフェースで、人間が実際に使うアプリケーション(ソフト)と、ネットワーク通信をつなぐ役割を持っています。私たちが実際にアプリケーションを使うときに使用されます。
アプリケーション層では実際に通信をしているわけではなく、下の層にデータを渡しているだけになります。
(例)WebブラウザでGoogleを開いたり、LINEを使ったりする部分
(プロトコル)HTTP、FTP、SMTP(メール)など
プレゼンテーション層
アプリが生成したデータを暗号化やデータの形式変換などによって「通信に適した形」に「翻訳」をする層です。
アプリケーション層から渡されたデータを通信相手が解釈できるように形式をそろえる役割を果たします。文字コードの変換やデータの暗号化/復号、データの圧縮/展開などによりデータの形式を整えます。
(例)暗号化された通信(HTTPS)を人が読める文字に戻す
※HTTPS通信(暗号化されたWeb通信)で使われるSSL/TLSの処理はこの層の役割です。
セッション層
プレゼンテーション層から渡されたデータをやりとりするための「会話の制御(セッション制御)」を行ないます。具体的には、相手との通信(会話)の「はじめます」「終わります」を管理しており、いつからいつまで通信するのか、途中で切れたらどうするのか、といったやりとりを制御しています。
(例)ログイン状態の管理、ゲームでの部屋接続など
トランスポート層
アプリケーション同士の通信を安全・正確に、順番通りに、ちゃんと届くようにする層です。
セッション層までで整ったデータ(セッションを通じた会話の単位)を、さらに小分けにしてセグメントという単位で送る準備をします。
(例)Amazonからの荷物が箱ごとに分かれて届き、ちゃんと並び直す
(プロトコル)TCP・UDP
この層の機能として以下のことをしています。
・信頼性を確保するためにデータが途中で欠けたり壊れたりしないようにします。
・届かなかったデータを再送するしくみをもっています。
・大きなデータを小さな単位に分けて送信、受信側で再構成します。
・ポート番号によるアプリケーションの識別を行なうことで、同じ機器内で複数アプリが同時に通信できるようにします。
ネットワーク層
「相手のコンピュータまでデータを届ける」ため、データをどの道でどこへ届けるかをIPアドレスを使ってを決定します。
目的地までのルートを選ぶルーティングや、途中にあるルーターを通して中継するパケットの中継などを行なっています。
(例)インターネットでサイトを開くとき、Googleのサーバーに向かう道筋を決めます。
(プロトコル)IP・ICMP・ARP
ネットワーク層では、トランスポート層のセグメントに「IPヘッダ」 を付けて「パケット」という形で処理します。データ単位は「パケット」です。
データリンク層
データリンク層は、同じネットワークに接続された機器同士のデータ伝送を制御する役割を担います。
ネットワーク層から渡されたパケットに、MACアドレスなどの情報を追加し、フレームという単位のデータを生成します。
このフレームには、各機器に固有のMACアドレスが使用されており、同じネットワーク内で正しい相手にデータを届けるために使われます。
通信の際は、IPアドレスで論理的な宛先を指定し、MACアドレスで実際の機器を特定します。
このIPとMACの対応づけには、ARPが使われます。
MACアドレスで通信相手が決まり、スイッチなどがフレームを正しく届けます。
物理層
データをビット列として、物理的な媒体(ケーブルなど)を使って実際に送ります。
上位層で作られたフレームを0と1(ビット)の電気信号・光信号・電波などに変換して、物理的に相手へ届ける役割を担います。
ネットワーク層で「どこに送るか」が決まり、データリンク層で「誰に送るか」が決まったフレームを
電気や光などの物理的な方法で届ける方法を提供します。これにより、相手にデータが物理的なケーブルなどを伝って届けられます。
データ単位は「ビット(bit)」で、物理層ではデータをbit(0と1)で扱います。
まとめ
OSI参照モデルは、ネットワークの仕組みを階層ごとに整理して理解するのに役立ちます。
それぞれの層が何を担当し、どのように他の層と関わっているかを知ることで、通信トラブルの原因を特定しやすくなったり、プロトコルや機器の役割を的確に理解できたりするようになります。
しっかり理解していきましょう!
最後までお読みいただき、ありがとうございました。
参照・画像引用元URL
Discussion