「TCP/IPって何のこと?」
「TCP/IPは何に使われていて、どのような種類があるの?」
コンピュータネットワークについて勉強され始めた方や、仕事などで扱われるようになった方は、TCP/IPという言葉を耳にしたことがあると思います。従来はそれぞれが単独で機能していたコンピュータですが、次第にお互いが接続しあい、個々のコンピュータが持つ情報を送ったり、閲覧したりすることができるようになりました。現代では、普段何気なく使用しているインターネットですが、どのような仕組みで利用できているのか、知っている方は少ないのではないでしょうか。
そこでこの記事では、コンピュータネットワークに不可欠なTCP/IPについての基本知識から、各階層の役割や使われている代表的なプロトコル、OSI参照モデルとの違いまで、詳しく解説します。
TCP/IPについて知りたい方は、ぜひ最後まで読んでください。
1. TCP/IPとは
TCP/IP(Transmission Control Protocol /Internet Protocol)とは、一般的にインターネットや他のネットワークで通信を行うための世界標準で使用されるプロトコル群のことを指し、インターネットプロトコルスイートとも呼ばれております。
TCP/IPは、ネットワーク通信の役割を階層的に分類し、各層での機能の目的を分かりやすく共有するため、以下の4階層のモデルで表されます。
- アプリケーション層
- トランスポート層
- インターネット層
- ネットワークインターフェース層
それぞれの階層にどのような役割があるのか、またどのようなプロトコルが使用されるのかを併せて解説します。
(1)アプリケーション層
アプリケーション層の役割は、 ユーザーが利用するさまざまなアプリケーションが、問題なく利用できるようにするためのプロトコルを規定することです。メールやウェブサイトなどアプリケーションサービスは、それぞれに適したプロトコルが個別に存在しています。それらのプロトコルを定めることで、異なるハードウェアを持つユーザーであっても、各アプリケーションで扱うデータをネットワークに適したデータ形式に変換し、通信を行なうことができます。
アプリケーション層に分類されるプロトコルで代表的なものを以下にあげます。
HTTP(Hypertext Transfer Protocol)
HTTPは、WebサーバーとWebブラウザ間のデータ通信を行い、Webページの取得と表示を行うプロトコルです。ユーザーがWebサイトを閲覧する際に使用される最も基本的なプロトコルで、Webページのリクエストとレスポンスを管理します。
SMTP(Simple Mail Transfer Protocol)
SMTPは、メールを送信するためのプロトコルです。メールクライアントからメールサーバ、またはメールサーバ間でメールを転送する際に使用されます。SMTPは、メールの送信プロセスを管理し、受信者のメールサーバに正しく配送する役割を担います。
POP3(Post Office Protocol version 3)
POP3は、メールサーバからユーザーのメールクライアントにメールをダウンロードするためのプロトコルです。POP3は、メールサーバ上のメールを一旦ダウンロードし、その後はクライアント上で管理する方式を採用しています。
DNS(Domain Name System)
DNSは、ドメイン名とIPアドレスを相互に変換するためのプロトコルです。ユーザーがウェブブラウザにURLを入力すると、DNSはそのURLを対応するIPアドレスに変換し、適切なサーバへの接続を可能にします。
(2)トランスポート層
トランスポート層の役割は、データを適切なアプリケーションに振り分けることで、通信の信頼性を確保することを目的としています。アプリケーション層での通信を実現するためにも、トランスポート層で正しく通信を行う必要があるため、トランスポート層のプロトコルはアプリケーション層のプロトコルを識別するためのポート番号管理もしています。
アプリケーション層に分類されるプロトコルで代表的なものを以下にあげます。
UDP(User Datagram Protocol)
UDPは、軽量で高速な通信を提供するプロトコルです。速いデータ転送が可能で、リアルタイムでの通信が重要となるアプリケーション (ビデオストリーミング、音声通信など)で利用されますが、データ送信と受信の確認を行わないため、データ信頼性は保証されません。
TCP(Transmission Control Protocol)
TCPは、高い信頼性を提供するプロトコルです。コネクション型通信と呼ばれる通信方法で、正常に相手と通信できているかを確認してから接続し、データの通信を行います。
さらに、データ転送中においても、相手からの返答を待ち、データが転送されたことを確認しながらデータ転送を行い、もし返答がなければ再度データを転送します。このように通信を実行することで、TCPは確実に送信ができる信頼性の高い通信を可能とします。
(3)インターネット層
インターネット層の役割は、複数のネットワーク間をつないでデータを最終的な目的地まで送ることです。ネットワークとは、多くのコンピュータが接続される一つの大きなものがあるわけではなく、ルータによって接続された数多くのネットワークがつながりあっているものです。この中から、任意のコンピュータ同士が適切に通信するためのルールを定めることで、適切な通信を実現します。
IP(Internet Protocol)
IPは、ネットワーク上の宛先IPアドレスに基づいてデータを送受信します。さらに、コンピュータAからコンピュータBへデータを転送する際の最適経路を判断する方法や、送受信にはデータを小分けした「パケット」を利用するパケット交換方式を定めています。
(4)ネットワークインターフェース層
ネットワークインターフェース層の役割は、一つのネットワークの中で、通信を実現することです。物理的なコネクタや電気信号の仕様などを定め、ハードウェア同士の通信を可能にしています。
ネットワークインターフェース層に分類される代表的なプロトコルはEthernetです。
Ethernet
Ethernetは、有線LANの標準プロトコルです。Ethernetは、同一ネットワーク内のデバイス間でのデータ送信を効率的に行うための技術を提供します。これにより、ローカルエリアネットワーク(LAN)内での高速かつ安定した通信が可能となります。
2. OSI参照モデル
OSI参照モデルは、TCP/IPと同じようにネットワークシステムを階層に分けて表現したモデルであり、ISO(国際標準化機構)により標準化された通信体系です。TCP/IPとよく比較されますが、OSI参照モデルはあくまでも概念であり、標準のプロトコル群として広く普及しているのはTCP/IPです。
OSI参照モデルでは、通信に必要な機能を以下の7つの階層に分けてます。
- アプリケーション層
- プレゼンテーション層
- セッション層
- トランスポート層
- ネットワーク層
- データリンク層
- 物理層
ここでは、それぞれの階層にどのような役割があるのかを解説します。
(1)アプリケーション層
アプリケーション層は、ユーザーに最も近い層であり、通信サービスを提供します。この層は、ユーザーが直接使用するソフトウェアアプリケーションとやり取りを行い、具体的な通信機能を実現します。
(2)プレゼンテーション層
プレゼンテーション層は、データの形式を変換する役割を担います。この層では、データのエンコーディング、デコーディング、圧縮、暗号化などが行われ、異なるシステム間でのデータの互換性を確保します。
(3)セッション層
セッション層は、通信セッションの管理を行います。この層では、セッションの確立、維持、終了を制御し、データ交換の同期を提供します。セッション層は、対話型通信やデータベースアクセスなどに重要な役割を果たします。
(4)トランスポート層
トランスポート層は、エンドツーエンドの通信を管理し、データの誤りや順序を制御します。この層では、データの分割と再構築、エラーチェック、フロー制御などが行われ、信頼性の高いデータ転送を実現します。
(5)ネットワーク層
ネットワーク層は、データの転送経路を決定し、異なるネットワーク間でのデータ伝送を管理します。この層では、ルーティング、アドレッシング、パケット転送などが行われ、データが送信元から目的地まで効率的に届くようにします。
(6)データリンク層
データリンク層は、隣接するネットワークデバイス間でのデータ伝送を管理します。この層では、データフレームの生成、エラーチェック、フロー制御などが行われ、物理層での通信をサポートします。
(7)物理層
物理層は、物理的な媒体を通じてデータを送受信する役割を担います。この層では、ビット単位でのデータ転送、信号の変換、物理的接続の確立などが行われ、通信のハードウェア的側面を担当します。
3. TCP/IPとOSI参照モデルの違い
TCP/IPとOSI参照モデルでは通信の概念が異なるため、TCP/IPは4階層、OSI参照モデルは7階層と、階層の数や区切りが異なります。ここでは、それぞれがどの階層に対応するのか比較するとともに、領域も併せて確認します。
OSI参照モデル | TCP/IP | 領域 |
アプリケーション層 | アプリケーション層 | ソフトウェア |
プレゼンテーション層 | ||
セッション層 | ||
トランスポート層 | トランスポート層 | ネットワーク |
ネットワーク層 | インターネット層 | |
データリンク層 | ネットワークインターフェース層 | |
物理層 | ハードウェア |
4. カプセル化・非カプセル化とは
TCP/IPの4階層モデルにおける各階層間の連絡手段として、「カプセル化」があります。通信データを整理し、各階層で必要な情報をヘッダー情報として付加することで、ネットワーク通信で送られる情報を管理することができ、ネットワーク間のデータの輸送を効率的に、正確に実施することが可能になります。
- カプセル化
- 非カプセル化
ここでは、これらについて、説明します。
(1)カプセル化
上位の階層のデータを下位の階層に格納する際、データにはヘッダーと呼ばれる通信に必要な情報を転送したいデータの前に付与します。この処理をカプセル化と言います。
例えば、WebサイトをPCから閲覧しようとする場合を考えます。まず、アプリケーション層に位置づけられるブラウザでリスエストメッセージを作成します。次に、メッセージを受け取ったトランスポート層のTCP/IP処理ソフトがTCPのプロトコルでメッセージデータにヘッダーをつけ、ネットワーク層に送信します。続いてIPヘッダーがつけられ、さらにネットワークインターフェース層でMACヘッダーなどの情報が追加され、Ethernetを通じてデータが転送されます
(2)非カプセル化
カプセル化と反対に、下位の階層から上位の階層へデータが送られる際の処理を、「非カプセル化」と言います。各階層でヘッダーを取り外し上位の階層へデータを送る、という処理を繰り返し、もともとのデータをアプリケーション層まで届けます。
これらによってユーザー側のサーバーからのさまざまな要求を効率的にクライアントまで転送することができます。
TCP/IPのことならソフトフロントジャパンにお任せください
この記事ではTCP/IPの基礎知識やTCP/IPの階層モデル、OSI階層モデルとの違いや、各階層の代表的なプロトコル、階層間のデータ転送に必要なカプセル化まで詳しく解説しました。
TCP/IPを理解することは、ネットワーク通信の知識を身に着けるだけでなく、セキュリティ運用サービスなどのシステムの監視サービスの導入を検討する際に必要な知識となります。
ソフトフロントジャパンでは、TCP/IPに関するソリューションを提供しています。TCP/IPについてはソフトフロントジャパンにご相談ください。