本記事の内容
サイバーウェーブでインターン生をしている勝畑です。先日、基本情報技術者試験に合格しました。試験勉強を通じてITに関する基本的な知識を身に付けることができました。しかし、試験を終えても理解しきれていない分野がありました。ネットワークです。
基本情報技術者試験は次の分野から出題されています。
(基本情報技術者試験シラバスを元に筆者作成 https://www.ipa.go.jp/shiken/syllabus/t6hhco000000ijhj-att/syllabus_fe_ver8_1.pdf)
ネットワークの分野の中でも、プロトコルや階層の理解が一番難しいと感じました。詳細は後述しますが、通信機能のプロトコルは役割に応じて階層構造になっています。通信の仕組みの全体像がよくわかりませんでした。
試験の終了を期に理解を深めることにしました。学習の参考にしたのが、本記事でご紹介する『図解入門 TCP/IP 仕組み・動作が見てわかる』です。
図解入門TCP/IP 仕組み・動作が見てわかる | みやた ひろし |本 | 通販 | Amazon
本書は6章で構成されています。第1章ではネットワークの基礎知識を解説しています。第2章〜第6章では、階層構造モデルの各層の動きを解説しています。
ネットワークの全体像を把握してから各層の具体的な動きを見ることで、各層の意義やデータ送受信の流れが理解しやすくなりました。
本記事では『図解入門 TCP/IP 仕組み・動作が見てわかる』をもとに、各層がどのように関わりあってデータが送られるのかを解説します。
本記事で前提とする階層構造モデル
階層構造モデルにはOSI参照モデルやTCP/IP参照モデルがあります。
OSI参照モデル TCP/IP参照モデル
画像の通り、OSI参照モデルとTCP/IP参照モデルには違いがあります。『図解入門 TCP/IP 仕組み・動作が見てわかる』では、筆者の現場経験を踏まえて、両者の特徴を合わせたモデルが使われています。
『図解入門 TCP/IP 仕組み・動作が見てわかる』で使われている階層構造モデル
基本情報技術者試験の過去問などを理解する上でも支障はないと感じたため、本記事ではこのモデルを前提に解説します。
各層の連携の仕組み
異なる端末で通信をするためには、通信時のルールであるプロトコルが必要になります。プロトコルには、情報の宛先をどう表すかや暗号化の方式を定めたものなど、様々な種類があります。
プロトコルは、役割ごとに層(レイヤ)としてまとめられています。
また、層の順番はやり取りするデータの処理の順番に関わっています。
データを送るためには、送ろうとするデータそのものだけではなく、宛先などの制御情報が必要です。そのため送信端末側では、送信するデータに制御情報をつける作業(カプセル化)が行われます。
カプセル化は、アプリケーション層→トランスポート層→ネットワーク層→データリンク層→物理層 の順で行われます。
物理層まで処理が完了すると、そのデータは受信端末側の物理層に送られます。
受信端末側では、送信端末側でつけられた制御情報を外す作業(非カプセル化)が行われます。非カプセル化は、カプセル化とは反対に物理層→データリンク層→ネットワーク層→トランスポート層→アプリケーション層 の順で行われます。
また、送信端末側のデータリンク層でつけられた制御情報は受信端末側のデータリンク層で外すといったように、ある層で付加された制御情報は同じ層で外されます。
各層の役割
物理層
物理層では、0と1で表されるデジタルデータを、物理的な方法で送信できるよう信号に変換しています。信号にすることで、電波やケーブルなどで送受信ができるようになります。
また物理層のプロトコルは、データの変調方法やケーブルの形など、物理的な仕様について定めています。
データリンク層
データリンク層の主な役割は2つです。
1.物理層の信頼性を保つ
2.同じネットワークにいる端末に接続できるようにする
物理層だけではデータを送る際のエラーに対処しきれないため、データリンク層で情報の信頼性を補っています。
また、同じネットワークにいる端末を接続するための伝送路を作っています。
ネットワーク層
データリンク層は、同じネットワークにいる端末同士であれば接続できます。しかし、異なるネットワークにいる端末までは接続できません。異なるネットワークにいる端末をつなげるのはネットワーク層の役割です。
ネットワーク層は、データリンク層で形成されたネットワーク同士を接続し、さらに大きなネットワーク(インターネットなど)を組み上げています。その上で、端末を識別するための情報であるIPアドレスをもとに、どの端末に情報を送ればよいかを判断しています。
トランスポート層
ネットワーク層でデータを渡す端末までは識別できます。しかし、受信端末のどのアプリケーションにデータを送ればよいかまでは判断できません。
アプリケーションの識別は、トランスポート層が行います。その判断に使われるものがポート番号です。ポート番号はアプリケーションと対応しています。例えば、ポート番号80はHTTPを表しています。
ポート番号のデータをアプリケーションデータに付けておくことで、受信端末のどのアプリケーションにデータを届ければよいか判断できます。
アプリケーション層
HTTPなどのアプリケーションをユーザーに提供する層です。トランスポート層から受け取ったデータを、各アプリケーションで扱うために必要な処理をします。
以上の過程を経て、送信されたデータは受信端末のアプリケーションまで送り届けられます。
各層の役割と通信全体の流れを交互に学ぶことで理解が深まった
階層構造モデルにおける各層は単独で動くものではないため、全体として理解しないと習得が難しい分野でした。また、プロトコルの具体的な働きまで見ないと、各層の意義がつかみにくいとも感じました。
今回参考にした『図解入門 TCP/IP 仕組み・動作が見てわかる』では、ネットワークの構造もプロトコルの仕組みも解説されているため、理解を深めやすかったです。ネットワークの知識基盤を作りたい方におすすめします。