今回のテーマは「TCP/IP」の階層モデルについてです。
OSI参照モデルと何が違うの?
基本情報技術者試験や応用情報技術者試験で出題される「TCP/IPの階層モデル」についての問題。TCP/IPの各層の役割を知らないと難しく感じる問題ですが、知っていればそこまで難しい問題ではありません。
本記事では、ネットワークの基本である「TCP/IP」について解説しています。
スポンサーリンク
目次
TCP/IPとは
TCP/IPは、ARPANET(アーパネット:高等研究計画局ネットワーク)のプロジェクトから生まれた通信プロトコル群です。
インターネットの基本概念を生み出し、それを実現するための通信プロトコル群「TCP/IP」を提唱したのが、「ヴィントン・サーフ博士」と「ロバート・エリオット・カーン博士」で、両博士は「インターネットの父」と呼ばれています。
別名「インターネット・プロトコル・スイート」とも呼ばれています。
コンピュータ間で通信するには、通信するにはルール(決まり事)が必要です。
そこで、国際標準化機構(ISO)が通信する際のルール「OSI参照モデル」を策定しました。ルールが統一されれば、異なるベンダー間でも通信できます。
しかし、1977年から1984年にかけて定義された「OSI参照モデル」自体は普及せず、その内容だけがネットワークの基本モデルとして広く参照されています。
そして、「TCP/IP」の階層モデルが事実上の標準として広く普及しています。
TCP/IPは、通信の中心的な役割を果たす「TCP」と「IP」から「TCP/IP」と呼ばれています。
TCP/IPという名前から「TCP」と「IP」を利用する通信がTCP/IPであると、勘違いしてしまいそうですが、TCP/IPはあくまでも通信プロトコルのセットです。
通信でよく利用するプロトコル群(IP, ICMP, TCP, UDP, HTTP, SMTP, SSH, TELNETなど)を総称してTCP/IPと呼びます。
TCP/IPの階層モデル
TCP/IPは、OSI参照モデルと同じように、階層にわけて役割分担しています。
OSI参照モデルは「7階層」ですが、TCP/IPは「4階層」で定義しています。
OSI参照モデルの階層 | TCP/IPの階層 |
---|---|
アプリケーション層 | アプリケーション層 |
プレゼンテーション層 | |
セッション層 | |
トランスポート層 | トランスポート層 |
ネットワーク層 | インターネット層 |
データリンク層 | ネットワークインターフェース層 |
物理層 |
OSI参照モデルとの違いは、OSI参照モデルは7階層~5階層を「アプリケーション層」「プレゼンテーション層」「セッション層」にわけていますが、TCP/IPでは「アプリケーション層」のみです。
また、OSI参照モデルの「ネットワーク層」は、TCP/IPでは「インターネット層」、さらにOSI参照モデルでは「データリンク層」と「物理層」にわけていますが、TCP/IPでは「ネットワークインターフェース層」の1階層で定義しています。
TCP/IP 各層の役割
アプリケーション層
利用者がコンピュータを使い、通信する際の入り口がアプリケーション層です。
アプリケーション層の役割は、アプリケーションが提供する機能についての仕様や通信手順などを定めることです。
例えば、Webサイトを閲覧するには「HTTP」と呼ばれるプロトコルを使用します。HTTPには、Webを閲覧するために必要な手順や規格が定められているので、送信側と受信側は「HTTP」のルールに従い通信します。
その他にも、メールを送信する「SMTP」、メールを受信する「POP3」「IMAP」、ファイルを転送する「FTP」、IPアドレスを自動的に採番し各コンピュータに割り振る「DHCP」、ドメインからIPアドレスを導き出す(もしくはその逆)「DNS」など、アプリケーション層には、さまざまなプロトコルがあります。
トランスポート層
トランスポート層は、TCP/IPの主役プロトコルである「TCP」が定義されている層で、その役割は、通信する際の信頼性を定めることです。
インターネット上で通信するとき、必ずデータの送信に成功するとは限りません。また、送信に成功してもデータが欠落しているかもしれません。
そこで、データの送信に失敗したケースや欠落してしまったケースを考慮し、通信の信頼性について定義しているのがトランスポート層です。
具体的には、コネクション型の「TCP」とコネクションレス型の「UDP」がトランスポート層で定義されています。
次の図は、「TCP」の通信イメージ例です。
コネクション型(接続を確立してから通信をおこなう方式)のTCPは、通信相手と「まるで会話している」かのようにやり取りしながら、データの送受信をおこないます。
また、送信に失敗した場合やデータが欠落した場合は、再送する仕組みが用意されています。
そのため、TCPは信頼性の高い通信を提供しています。
コネクションレス型のUDPは、信頼性重視のTCPと違い、速度を優先したプロトコルです。
次の図は、「UDP」の通信イメージ例です。
UDPはコネクションレス型(接続を確立せずに通信をおこなう方式)のプロトコルです。
相手にデータが届いたかの確認はおこなわず、「一方的にデータを送りつける」ことで、速度の速い通信を実現しています。
そのため、多少のデータ欠落があっても高速性やリアルタイム性を重視する通信で使われています。
トランスポート層では、信頼性重視の「TCP」、速度重視の「UDP」を定義しています。
インターネット層
インターネット層は、「TCP/IP」の主役プロトコルである「IP」が定義されている層で、その役割は、主役プロトコルである「IP」を使って目的地までデータを届ける(エンド・ツー・エンド)ことです。
IPアドレスと呼ばれるインターネット上の住所と、ルーティングと呼ばれる最適経路を導き出す仕組みで、目的地までの経路を導き出します。
インターネット層で定義されている、代表的なプロトコルは次のとおりです。
プロトコル | 説明 |
IP(Internet Protocol) | インターネット上で通信する際に主要となる通信プロトコル。インターネット上の住所である「IPアドレス」についての定義をしている。IPアドレスのバージョンはInternet Protocol Version 4 (IPv4) と後継の Internet Protocol Version 6 (IPv6) がある。 |
ICMP(Internet Control Message Protocol) | 主要プロトコルである「IP」を補助する役割を持つ通信プロトコル。コネクションレス型(一方的に送る)のプロトコルである「IP」を使った通信において、ICMPは発生した各種エラー情報の検知などを行う。 |
インターネット層では、異なるネットワーク間の中継器であるルータ(L3スイッチ)と呼ばれるネットワーク機器を使用します。ネットワーク上のコンピュータが、自分の所属しているネットワークから外部にアクセスする時は必ずルータを経由します。
例えば次の図のように、「PC1」が「ネットワークB」や「ネットワークC」にあるコンピュータにアクセスするためには、「ルータA」を経由します。
ルータには「ルーティングテーブル」と呼ばれる経路情報を保持しており、その経路情報を元に最適な経路を導き出します。
そして、この最適経路を導き出す仕組みを「ルーティング」といいます。
ルーティングテーブルには、インターネット上の住所である「IPアドレス」が管理されており、「IPアドレス」から宛先のコンピュータが、どのネットワークに所属しているか判断し、そのネットワークへとデータを転送していきます。
ネットワークインターフェース層
ネットワークインターフェース層の役割は、隣接するコンピュータ間の通信を可能にすることです。
コンピュータをネットワークに接続する際に使用するイーサネット(LANケーブルの規格)は、ネットワークインターフェース層のプロトコルであり、イーサネットで定義されているルールに従い通信をおこないます。
そして、隣接するコンピュータ間の通信は、コンピュータの識別番号である「MACアドレス」を使います。
通信相手のMACアドレスは、IPアドレスからMACアドレスを取得するプロトコル「ARP」を使って取得します。
ネットワークインターフェース層の代表的なプロトコルは次のとおりです。
通信プロトコル名称 | 説明 |
ARP(Address Resolution Protocol) | IPアドレスからMACアドレスを取得するプロトコル。 |
RARP(Reverse Address Resolution Protocol) | MACアドレスからIPアドレスを取得するプロトコル。 |
イーサネット(Ethernet) | コンピュータをネットワークに接続する時に使うネットワークケーブル(有線LAN)の規格。 |
無線LAN | 無線通信を利用してコンピュータ同士でデータの送受信をおこなうLANシステムの規格。 |
PPP(Point-to-Point Protocol) | 電話回線などの通信回線を利用し、1対1の通信を可能とするプロトコル。 |
※本記事ではARPとRARPをネットワークインターフェース層で定義していますが、ARPとRARPはインターネット層とネットワークインターフェース層の橋渡しをおこなっているプロトコルのため、文献によってはインターネット層で定義されています。
上位層から送られてきた「0」と「1」で表現されたビット列を「電気信号」や「光信号」「無線」に変換します。
各信号に変換し、LANケーブルや光ケーブル、無線などでデータを送信します。また、各信号を受け取った受信側は、「電気信号」や「光信号」「無線」などをビット列に戻していきます。
基本情報技術者試験 過去問の解説
基本情報技術者令和4年免除 問30
TCP/IPネットワークで使用されるARPの説明として、適切なものはどれか、ア~エを順番に確認していきます。
ア:IPアドレスからMACアドレスを得るためプロトコル
正解:ARPの説明です。ARPは、IPアドレスからMACアドレスを取得します。
イ:IPアドレスからホスト名(ドメイン名)を得るためのプロトコル
不正解:DNS(逆引き)の説明です。DNSは「アプリケーション層」で定義されているプロトコルで、IPアドレスからホスト名(ドメイン名)を取得します。(正引き:ホスト名→IPアドレス、逆引き:IPアドレス→ホスト名)
ウ:MACアドレスからIPアドレスを得るためのプロトコル
不正解:RARPの説明です。RARPは、MACアドレスからIPアドレスを取得します。(ARPとは逆の動作をする)
エ:ホスト名(ドメイン名)からIPアドレスを得るためのプロトコル
不正解:DNS(正引き)の説明です。DNSは「アプリケーション層」で定義されているプロトコルで、ホスト名(ドメイン名)からIPアドレスを取得します。(正引き:ホスト名→IPアドレス、逆引き:IPアドレス→ホスト名)
「ア」が正解です。