概要
基本情報技術者試験や応用情報技術者試験の出題範囲でもあるTCP/IPとOSI基本参照モデル。
何度も参考書を読み返してもなかなか覚えられない内容を、自分の理解を深めるためにQiitaにまとめました。
ざっくりとした内容ですが、試験対策などに役立てていただければ幸いです。
内容の正確性には注意していますが、誤りや補足などありましたらコメントいただけると嬉しいです。
目次
- TCP/IPでのデータ送受信の流れ / TCP/IPとは
- アプリケーション層
- トランスポート層
- インターネット層
- ネットワークインターフェース層
- OSI基本参照モデルとは
- まとめ
- 参考文献
TCP/IPでのデータ送受信の流れ
TCP/IPとは
現在、インターネットの世界において世界標準的に利用されている4層の通信プロトコル(通信の規則)のこと。
異なるメーカー、OSのコンピュータ間でデータの送受信を可能とします。
たとえば、AさんのPCからBさんのPCへメールを送りたいとします。
ネットワーク上には多くのPCやスマートフォンなどが接続されている為、メールの送受信などデータのやり取りをするときは、「どの機器のどのアプリケーション」から「どの機器のどのアプリケーション」にデータを送るのかを判別する必要があります。
データが送信されてから別の端末に受信されるまでのデータの通り道や、その手順を示したものがTCP/IPです。
階層 | 名称 | 主なプロトコル | できること | 機器例 |
---|---|---|---|---|
4 | アプリケーション層 | HTTP, HTTPS, SMTP, POP3, IMAP4, DNS, DHCPなど | Webサイトの閲覧、メールの送受信、アプリ間でのデータ転送など | ウェブサーバ、メールサーバなど |
3 | トランスポート層 | TCP, UDP | データを適切なアプリケーションに振り分ける | ロードバランサなど |
2 | インターネット層 | IP, ARP, RARP, ICMPなど | ルーティング(最適経路の選択)、エンドツーエンド通信 | ルーター、ファイアウォールなど |
1 | ネットワークインターフェース層 | Ethernet, Wi-Fiなど | 同一ネットワーク内でのデータの受け渡し | ブリッジ、スイッチなど |
TCP/IPにおいて、データは送信元端末の4階のアプリケーション層から様々な処理手順をクリアしつつ1階のネットワークインターフェース層へと下っていき、宛先端末の4階のアプリケーション層を目指してまた様々な処理手順をクリアしていく必要があります。
この処理が超高速で成されているおかげで、私たちはスムーズにメールの送受信やWebサイトの閲覧などができているのです。
アプリケーション層
アプリケーション層は、ユーザーが直接使うアプリケーション(例: Webブラウザやメールソフト)とネットワークの仕組みをつなぐ役割を担っています。
アプリケーション同士が「どんなデータを、どんな手順でやり取りするか」を決めるルールの集合です。
このおかげで、私たちユーザーは技術的な詳細を意識せずに、快適にアプリケーションを利用できています。
主なプロトコルに、以下のようなものがあります。
・HTTP、HTTPS
ユーザーがWebサイトにアクセスしたり、サーバからWebサイトの情報を持って来てユーザーの端末で表示させたりするために必要なプロトコルです。
ユーザーがWebサイトにアクセスするためにHTTPが行う処理を「HTTPリクエスト」、その返事として、ユーザーが閲覧したいWebサイトのデータをサーバから持って来る処理を「HTTPレスポンス」といいます。
・DNS
宛先となる機器のIPアドレスを求める、名前解決プロトコルです。
「名前解決」とは、人間が覚えやすい文字列(ドメイン名)と機械が通信で使用する数値(IPアドレス)を対応付ける仕組みを指します。
IPアドレスは数字の羅列で覚えにくいため、ユーザーは簡単に覚えられるドメイン名を使い、DNSがその変換を担当します。
・DHCP
コンピュータやスマートフォンがネットワークに接続するときに、必要な設定を自動的に行う仕組みです。
このおかげで、ユーザーが複雑な設定をせずに、簡単にインターネットやネットワークを利用できるようになります。
上記のプロトコルの他にも、メールを送信する際の標準的なプロトコルである「SMTP」や、メールを受信するための仕組みを提供する「IMAP4」、「POP3」などがあります。
また、コンピュータは「0」と「1」でデータを認識しますが、そのままだと私たち人間にとってはとてもわかりづらいです。
「0」「1」のデータを私たちが見やすい形に変換してくれるプロトコルとして、ASCIIやUTFなどの文字コードや、JPEG/PNGなどの画像形式、H.264やMP3などの動画・音声コーデックがあります。
トランスポート層
トランスポート層は、適切なアプリケーションへデータを振り分ける役割を担っています。
この層では、アプリケーション間でのデータ通信を制御し、信頼性の高い通信や効率的なデータ転送を実現するための仕組みが提供されます。
主なプロトコルに、以下のようなものがあります。
・TCP
トランスポート層で動作し、データがきちんと宛先まで届くように信頼性のあるデータ通信を提供する役割。
他にも、大きなデータを小さなデータ(パケット)に分割したり、ポート番号で宛先を識別したり、パケットの破損を検出して送信元に再送を要求するなど様々な役割を持っています。
IPは通信の信頼性や順序を保証しないため、TCPがそれを補完し、データが正しく届くよう制御します。
・UDP
信頼性よりも速度や効率を重視したプロトコル。
TCPと異なり、コネクションレス型(データを送る際に通信相手との接続を確立しない)で、通信の信頼性を保証する仕組みを持たないため、データ転送の手間が少なく、より高速な通信が可能です。
インターネット層
「0」「1」のデータをネットワーク間で効率的かつ正確にルーティング(経路選択)し、送信先に届ける役割を持ちます。
この層では、データを送信元から目的地まで運ぶための基盤が提供されます。
ルーティングやIPアドレスによるデバイスの識別を通じて、異なるネットワーク間でもシームレスな通信を可能にします。
主なプロトコルに、以下のようなものがあります。
・IP
ネットワーク層で、データを送信元から目的地まで届ける役割を担うプロトコル。
大きなデータを送る場合、通信が効率的になるようデータを小さな単位(パケット)に分割したり、パケットに「送信元IPアドレス」と「宛先IPアドレス」を付与し、どこから来てどこへ行くのかを明確にしたりします。
また、パケットが複数のネットワークを経由して目的地に到達するために、最適な経路を選択する「道しるべ」のような役割も担っています。
ネットワークインターフェース層
ハードウェアに最も近い層で、コンピュータが扱う「0」「1」のデータをネットワーク上を流れる物理的な信号(電流や電波、光信号など)として伝える役割を持ちます。
物理的な信号は、伝える時に物理的な距離などの制約を受けるため、ネットワークインターフェース層のプロトコルは、同じネットワーク内の限られた範囲を受け持ちます。
その時によく用いられるプロトコルであるイーサネットやWi-Fiは、MACアドレスによって物理的な信号の送信元と宛先を特定します。
その他、エラー検出(エラーの訂正はしない場合がある)なども行います。
主なプロトコルに、以下のようなものがあります。
・Ethernet(イーサネット)
最も一般的な有線LANの通信規格。
ネットワークインターフェース層において、データのフレーム化(大きなデータを宛先に届けるために小さくまとまったデータへ変換すること)やMACアドレスによる通信を担当します。
・Wi-Fi(無線LAN)
無線で通信するLANの規格。
Ethernetと同様にMACアドレスで宛先と送信元の識別を行いますが、有線(LANケーブル)で通信するEthernetと違い、電波干渉や盗聴のリスクがあるため、WPA2、WPA3などの暗号化方式を用いて暗号化することが重要です。
・ARP
IPアドレスから対応するMACアドレスを調べるプロトコルで、ネットワークインターフェース層とインターネット層の橋渡し役。
IP通信をするには、IPアドレスで通信相手を指定する必要がありますが、EthernetやWi-FiはMACアドレスで通信相手を識別しているため、ARPがIPアドレスとMACアドレスを紐づける役割を担います。
OSI基本参照モデルとは
異なる機器やシステム間で通信できるように標準化された、7層の通信モデル。
現在はTCP/IPによる通信が主流ですが、OSI基本参照モデルの各層の役割を理解しておくと、複雑なネットワーク設計を行う際や、教育目的のトラブルシューティングの際に役立ちます。
階層 | 名称 | 主なプロトコル | できること | 機器例 |
---|---|---|---|---|
7 | アプリケーション層 | HTTP, FTP, SMTP, DNSなど | ユーザーが使うアプリの通信機能 | パソコン、スマートフォン、サーバー、Webブラウザなど |
6 | プレゼンテーション層 | JPEG, MPEG, SSL/TLSなど | データの表現形式の変換・暗号化など | (通常は機器としては分離されない/ソフトウェア上で処理) |
5 | セッション層 | NetBIOS, RPCなど | 通信の開始・維持・終了の管理 | (通常は機器としては分離されない/ソフトウェア上で処理) |
4 | トランスポート層 | TCP, UDPなど | データの信頼性・順序制御 | (通常は機器としては分離されない/ソフトウェア上で処理) |
3 | ネットワーク層 | IP, ICMPなど | 宛先へのルーティングとIPアドレス管理 | ルーター、L3スイッチ |
2 | データリンク層 | Ethernet, PPP, スイッチなど | 同一ネットワーク内の通信とエラー検出 | L2スイッチ、ブリッジ、無線アクセスポイント |
1 | 物理層 | ケーブル、ハブ、無線、NICなど | 電気信号やビットを物理的に送受信 | ハブ、LANケーブル、NIC、無線機器、光ファイバ |
TCP/IPとOSI基本参照モデルの違い
現在、TCP/IPが実際の通信で使用されているのに対し、OSI基本参照モデルは複雑なネットワーク設定や教育目的のトラブルシューティングで役立てられています。
まとめ
TCP/IPとは、現在、インターネットの世界において世界標準的に利用されている4層の通信プロトコル(通信の規則)のこと。
各層で適切なプロトコルを選択できるため柔軟性が高く、信頼性重視のTCPと、速度重視のUDPのバランスを用途に応じて使い分けることが出来ます。
また、IPアドレスの枯渇などに対応して、IPv6など新しい技術にも対応可能となっています。
参考文献
- 『おうちで学べる ネットワークのきほん 第2版』 Gene 著、翔泳社( https://www.shoeisha.co.jp/book/detail/9784798185163 )
- 『マスタリングTCP/IP 入門編(第6版)』
井上直也 ほか著、オーム社( https://www.ohmsha.co.jp/book/9784274224478/ )