どうも、みなさんこんにちは、よしです。
この記事では、「TCP/IPモデルとは?」について解説します。
TCP/IPモデルは、インターネットで実際に使用されている通信プロトコルです。非常に重要な概念ですので、わかりやすく説明したいと思います。
ほな、いきましょう!
Contents
事実上標準となったTCP/IPモデル
ネットワークレイヤーの構成を示したモデルには、以前説明した「OSI参照モデル」(※)と今回説明する「TCP/IPモデル」の2つがあります。
(※)ネットワークレイヤーについては、以下の記事を参照ください。
ネットワークとは? ネットワークの本質は○○できることだ!
(※)OSI参照モデルについては、以下の記事を参照ください。
OSI参照モデルとは? もう迷わない!7層の役割
しかし、ほとんどの通信において、OSI参照モデルは使用されておらず、TCP/IPモデルが採用されています。その理由は、OSI参照モデルを作成している間にTCP/IPモデルが普及してしまったからだと言われています。
OSI参照モデルは、ISOやITUの国際標準機関により「標準」と認定されています。一方のTCP/IPモデルは、公的機関に標準と認定されていないものの、共通ルールとして広く使用されていることから、事実上の標準と言えます。これを「デファクトスタンダード」と呼びます。
皆さんが普段利用されているインターネットは、デファクトスタンダードとなったこのTCP/IPモデルに従って構築されています。
TCP/IPモデルとは?
TCP/IPモデルの定義
TCP/IPモデルは、インターネットをはじめとするコンピューターネットワークで、実際に使用されている通信のプロトコルやレイヤー構成を示したモデルです。
TCP/IPモデルはアプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層の4層から成り立っており、7層から成るOSI参照モデルを簡素化したモデルとなっています。そのため、OSI参照モデルの理解に自信のない方は、先にそちらを学習することをお勧めします。

TCP/IPの名称について
「TCP/IP」という名称から、このモデルはTCPとIPの二つのプロトコルから成り立っていると思われるかもしれません。しかし、実際にはインターネット通信を実現しているたくさんのプロトコル、例えば、UDPやHTTPS、FTPやSMTPなどを含んだ総称となっています。その中の代表格のプロトコルであるTCPとIPが、このモデルの名称となっています。また、「TCP/IPモデル」は単純に「TCP/IP」と呼ぶこともあります。
ところで、インターネット通信を実現するのプロトコル群を「インターネットプロトコルスイート」と呼びます。スイートは英語で「Suite」と表記し「一式」を意味します。インターネットを実現しているプロトコルのセットを表す言葉です。
TCP/IPの各層の役割
では、ここから、TCP/IPモデルで定義されているアプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層の4層それぞれの役割を見ていきましょう。繰り返しになりますが、TCP/IPモデルはOSI参照モデルを簡素化したモデルです。そのためOSI参照モデルについて、おさらいしながら説明します。
アプリケーション層
TCP/IPモデルのアプリケーション層は、OSI参照モデルのアプリケーション層、プレゼンテーション層、セッション層に相当するレイヤーです。
OSI参照モデルのアプリケーション層では、「アプリケーション固有の仕様を規定」しています。例えば、あるメッセージアプリでは、送信相手を選択し、メッセージ欄に文字を入力し、送信ボタンを押すことでメッセージを送信することができるでしょう。このように、アプリごとの仕様を決める役割を担っています。
プレゼンテーション層では、「データの表現形式を規定」しています。例えば、アプリケーション層から託されたメッセージを、コンピューターが理解できる「0」と「1」へどう変換するかのルールを決める役割を担っています。
そして、セッション層では、「プログラム間の通信の開始や終了のルールを規定」しています。例えば、「今から接続します!」や「接続が切れたので再接続します!」など、送信側と受信側のアプリケーション二者間において、通信の開始や終了などの一連の流れを維持、管理する役割を担っています。
これら全ての役割を、TCP/IPモデルのアプリケーション層が果たしています。
では、ここで、インターネットを使って調べごとをする場面を考えてみましょう。
Webブラウザを立ち上げ、調べたい用語を検索欄へ入力して検索ボタンを押せば、その用語を解説するページの一覧が表示されることでしょう。これは、Webブラウザが、「HTTPS: Hypertext Transfer Protocol Secure」と呼ぶプロトコルを用いてサーバーから必要なデータを取得し、「HTML: Hyper Text Markup Language」と呼ぶ言語で記述されたそのデータを、人間が理解できる文字や画像に変換して画面に表示しているからです。
つまり、
のプロトコルと言えるでしょう。これらOSI参照モデルの3層のプロトコル全てが、TCP/IPモデルのアプリケーション層のプロトコルになります。
他にも、
などのプロトコルが、このアプリケーション層で規定されています。
トランスポート層
TCP/IPモデルのトランスポート層は、OSI参照モデルのトランスポート層に相当するレイヤーです。OSI参照モデルと同じくTCP/IPモデルのトランスポート層でも、「データ送受信の信頼性を保つためのルールを規定」しています。
コンピューターネットワークは様々な機器の相互接続により形成されています。そのため、例えば、機器の不具合によってデータが消失したり、小分けにして送ったデータの到着順が入れ替わったりする場合があります。そのような環境においても、受信側でデータを受け取り、元の情報を正しく再生成するためのルールを規定しています。また、通信状況に応じて、送信作業を一時停止したり、送信データ量を調整したりする役割も担っています。
具体的には、
などのプロトコルが、このトランスポート層で規定されています。
インターネット層
TCP/IPモデルのインターネット層は、OSI参照モデルのネットワーク層に相当するレイヤーです。インターネット層では、送信元と受信先が互いに通信できるようにするための仕組み、具体的には、「データを目的地へ到達させるルートの決定方法などを規定」しています。
沢山の機器(ノード)の相互接続により形成されたコンピューターネットワークにおいては、データを目的地へ届ける経路がいくつも存在します。複数あるノードのうち、どのノードを辿って目的地に到達するのか。そのルートの決定方法など、送信元から受信先への通信路を確保するためのルールを規定しています。
インターネット層で規定されている具体的なプロトコルとして
などがあります。
このIPでは、IPアドレスと呼ぶ宛先を識別する識別子を用いて受信先を特定し、地球の裏側にあるかもしれない目的地へデータを届けています。
IPアドレスは重複が許されず、機器ごとにユニークな値が割り当てられる必要があります。当初のIPの仕様では、約43億個のIPアドレスしか割り当てることができませんでした。結果、インターネットへ接続する機器の増大に伴い、IPアドレスが枯渇する危機に直面しました。
この状況を回避すべく、IPの新しいバージョンとなるIPv6が策定されました。これまで使用していたIPをIPv4と呼び、IPv6と区別しています。IPv4とIPv6を包めて単にIPと呼びます。
よし
ネットワークインターフェース層
TCP/IPモデルのネットワークインターフェース層は、OSI参照モデルのデータリンク層、物理層に相当するレイヤーです。
OSI参照モデルのデータリンク層では、「直接接続されたノード間の通信方法を規定」しています。
複数のノードを辿ってデータを目的地に到達させるルートを決定するのは、上位層の役割でした。そこで、隣り合ったノード間でデータを確実に伝送することができれば、いずれ目的地に到達させることができるでしょう。その責任をデータリンク層が負っています。例えば、隣のノードから届いた「0」と「1」の組み合わせが、伝送途中でおかしくなっていないか検査する役割などを担っています。
物理層では、「物理的な要素を規定」しています。上位層で作成された「0」と「1」のデータを電気信号や光信号に変換してケーブルに流し込む際のルールや、LANケーブルの挿し込み口の形状などを取り決めています。
ネットワークインターフェース層の具体的なプロトコルとして、
などがあります。
皆さんが使用されているLANケーブルもイーサネットの仕様に従って作成されています。
ところで、電気信号に変換して伝送される「0」や「1」のデータは、ノイズの影響により「0」が「1」に、「1」が「0」になってしまうことがあります。これを「ビットエラー」と呼びます。また、ビットエラーを検出することを「誤り検出」と呼びます。
簡単な誤り検出の方法として「パリティチェック」があります。データに含まれる「1」が偶数個(もしくは奇数個)になるように、「0」または「1」を検査ビット(パリティービット)として付加して送付し、受け取ったデータがその取り決め通りになっているかを検査することで、ビットエラーを検出する仕組みです。ただし、パリティーチェックは簡易的な誤り検出の方式であり、誤りのビットが偶数個となってしまった場合はビットエラーを検出することができません。
よし
OSI参照モデルとTCP/IPの違い
説明のOSI参照モデル・実装のTCP/IP
インターネットを含む実際の通信ネットワークは、TCP/IPモデルに従って実装されていることを説明しました。しかし、ネットワークについての議論の場や、ネットワークの解説本では、OSI参照モデルのレイヤー構成を使って説明されることがほとんどです。
その理由は、「OSI参照モデルを用いた方が、より細やかな説明ができるから」と考えられます。
これまで説明してきた通り、4層から成るTCP/IPモデルは、7層からなるOSI参照モデルを簡素化したモデルです。そのため、例えば、「ネットワークインターフェース層」と言うより「L2のデータリンク層」や「L1の物理層」と言った方が、議論対象となっているプロトコルや機器のレイヤーをより詳しく特定できます。
結果として、説明にはOSI参照モデルが、実装にはTCP/IPモデルが利用される状況となっており、これら二つのモデルが共存しているのです。
OSI参照モデルとTCP/IPモデルの比較表
改めて、TCP/IPモデルとOSI参照モデルの違いを以下の表にまとめます。
まとめ
最後に、ここまでの内容を振り返ってまとめたいと思います。
今回、「TCP/IPモデルとは?」について解説して来ました。
TCP/IPモデルは、
ことを解説しました。
また、TCP/IPの
していることを説明しました。
ということで、今回は以上になります。
よし
「YouTube」で動画解説もしていますので、質問のある方はコメント欄へお気軽にメッセージください!
ほなね!