MENU

YouTube

「YouTube」始めました!
、だからさらに・・・分かる!

プロフィール

よし

「IT」をこよなく愛する大手メーカーの現役エンジニア
IT技術を独自の視点で、初心者の方にもわかりやすく解説します!


\Follow me/
YouTube始めました!

TCP/IPとは? OSI参照モデルとの違いは○○だ!

TCP/IPとは?

どうも、みなさんこんにちは、よしです。

この記事では、「TCP/IPモデルとは?」について解説します。

TCP/IPモデルは、インターネットで実際に使用されている通信プロトコルです。非常に重要な概念ですので、わかりやすく説明したいと思います。

ほな、いきましょう!

事実上標準となったTCP/IPモデル

ネットワークレイヤーの構成を示したモデルには、以前説明した「OSI参照モデル」(※)と今回説明する「TCP/IPモデル」の2つがあります。

(※)ネットワークレイヤーについては、以下の記事を参照ください。
ネットワークとは? ネットワークとは? ネットワークの本質は○○できることだ! (※)OSI参照モデルについては、以下の記事を参照ください。
OSI参照モデルとは? OSI参照モデルとは? もう迷わない!7層の役割

実際の通信にはOSI参照モデルではなくTCP/IPが使用されている

しかし、ほとんどの通信において、OSI参照モデルは使用されておらず、TCP/IPモデルが採用されています。その理由は、OSI参照モデルを作成している間にTCP/IPモデルが普及してしまったからだと言われています。

デファクトスタンダード

OSI参照モデルは、ISOやITUの国際標準機関により「標準」と認定されています。一方のTCP/IPモデルは、公的機関に標準と認定されていないものの、共通ルールとして広く使用されていることから、事実上の標準と言えます。これを「デファクトスタンダード」と呼びます。

皆さんが普段利用されているインターネットは、デファクトスタンダードとなったこのTCP/IPモデルに従って構築されています。

TCP/IPモデルとは?

TCP/IPモデルの定義

TCP/IPの定義

TCP/IPモデルは、インターネットをはじめとするコンピューターネットワークで、実際に使用されている通信のプロトコルやレイヤー構成を示したモデルです。

TCP/IPモデルはアプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層の4層から成り立っており、7層から成るOSI参照モデルを簡素化したモデルとなっています。そのため、OSI参照モデルの理解に自信のない方は、先にそちらを学習することをお勧めします。

OSI参照モデルとは? OSI参照モデルとは? もう迷わない!7層の役割

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」と呼ぶ言語で記述されたそのデータを、人間が理解できる文字や画像に変換して画面に表示しているからです。

つまり、

  • Webブラウザ = OSI参照モデルのアプリケーション層
  • HTML = OSI参照モデルのプレゼンテーション層
  • HTTPS = OSI参照モデルのセッション層

のプロトコルと言えるでしょう。これらOSI参照モデルの3層のプロトコル全てが、TCP/IPモデルのアプリケーション層のプロトコルになります。

他にも、

  • ファイル転送で用いる「FTP: File Transfer Protocol」
  • 電子メールの送信で用いる「SMTP: Simple Mail Transfer Protocol」

などのプロトコルが、このアプリケーション層で規定されています。

トランスポート層

トランスポート層

TCP/IPモデルのトランスポート層は、OSI参照モデルのトランスポート層に相当するレイヤーです。OSI参照モデルと同じくTCP/IPモデルのトランスポート層でも、「データ送受信の信頼性を保つためのルールを規定」しています。

通信途中でのデータ消失

コンピューターネットワークは様々な機器の相互接続により形成されています。そのため、例えば、機器の不具合によってデータが消失したり、小分けにして送ったデータの到着順が入れ替わったりする場合があります。そのような環境においても、受信側でデータを受け取り、元の情報を正しく再生成するためのルールを規定しています。また、通信状況に応じて、送信作業を一時停止したり、送信データ量を調整したりする役割も担っています。

具体的には、

  • 「TCP: Transmission Control Protocol」
  • 「UDP: User Datagram Protocol」

などのプロトコルが、このトランスポート層で規定されています。

インターネット層

ネットワーク層

TCP/IPモデルのインターネット層は、OSI参照モデルのネットワーク層に相当するレイヤーです。インターネット層では、送信元と受信先が互いに通信できるようにするための仕組み、具体的には、「データを目的地へ到達させるルートの決定方法などを規定」しています。

沢山の機器(ノード)の相互接続により形成されたコンピューターネットワークにおいては、データを目的地へ届ける経路がいくつも存在します。複数あるノードのうち、どのノードを辿って目的地に到達するのか。そのルートの決定方法など、送信元から受信先への通信路を確保するためのルールを規定しています。

インターネット層で規定されている具体的なプロトコルとして

  • 「ICMP:Internet Control Message Protocol」
  • 「IP: Internet Protocol」

などがあります。

このIPでは、IPアドレスと呼ぶ宛先を識別する識別子を用いて受信先を特定し、地球の裏側にあるかもしれない目的地へデータを届けています。

IPアドレスの枯渇

IPアドレスは重複が許されず、機器ごとにユニークな値が割り当てられる必要があります。当初のIPの仕様では、約43億個のIPアドレスしか割り当てることができませんでした。結果、インターネットへ接続する機器の増大に伴い、IPアドレスが枯渇する危機に直面しました。

この状況を回避すべく、IPの新しいバージョンとなるIPv6が策定されました。これまで使用していたIPをIPv4と呼び、IPv6と区別しています。IPv4とIPv6を包めて単にIPと呼びます。

pingはICMPのコマンド

よし

ところで、「送信先との接続確認に『ping』コマンドを使用する」という話を聞いたことはないでしょうか?これはインターネット層の接続が確立しているかを確認する、ICMPで定義されているコマンドです。

ネットワークインターフェース層

TCP/IPモデルのネットワークインターフェース層は、OSI参照モデルのデータリンク層、物理層に相当するレイヤーです。

データリンク層

OSI参照モデルのデータリンク層では、「直接接続されたノード間の通信方法を規定」しています。

複数のノードを辿ってデータを目的地に到達させるルートを決定するのは、上位層の役割でした。そこで、隣り合ったノード間でデータを確実に伝送することができれば、いずれ目的地に到達させることができるでしょう。その責任をデータリンク層が負っています。例えば、隣のノードから届いた「0」と「1」の組み合わせが、伝送途中でおかしくなっていないか検査する役割などを担っています。

物理層

物理層では、「物理的な要素を規定」しています。上位層で作成された「0」と「1」のデータを電気信号や光信号に変換してケーブルに流し込む際のルールや、LANケーブルの挿し込み口の形状などを取り決めています。

ネットワークインターフェース層の具体的なプロトコルとして、

  • 「Ethernet(イーサネット)」
  • 「無線LAN」

などがあります。

皆さんが使用されているLANケーブルもイーサネットの仕様に従って作成されています。


ビットエラー

ところで、電気信号に変換して伝送される「0」や「1」のデータは、ノイズの影響により「0」が「1」に、「1」が「0」になってしまうことがあります。これを「ビットエラー」と呼びます。また、ビットエラーを検出することを「誤り検出」と呼びます。

パリティーチェック

簡単な誤り検出の方法として「パリティチェック」があります。データに含まれる「1」が偶数個(もしくは奇数個)になるように、「0」または「1」を検査ビット(パリティービット)として付加して送付し、受け取ったデータがその取り決め通りになっているかを検査することで、ビットエラーを検出する仕組みです。ただし、パリティーチェックは簡易的な誤り検出の方式であり、誤りのビットが偶数個となってしまった場合はビットエラーを検出することができません。

クレジットカードのチェックデジット

よし

同様の仕組みが用いられている身近な例として、クレジットカード番号の確認が挙げられます。16桁のカード番号の1桁目(右端)の数字が「チェックデジット」と呼ぶ検査用の番号となっており、例えば、オンラインショップで入力されたクレジットカード番号に転記ミスがないか、の検出に利用されています。

OSI参照モデルとTCP/IPの違い

説明のOSI参照モデル・実装のTCP/IP

インターネットを含む実際の通信ネットワークは、TCP/IPモデルに従って実装されていることを説明しました。しかし、ネットワークについての議論の場や、ネットワークの解説本では、OSI参照モデルのレイヤー構成を使って説明されることがほとんどです。

その理由は、「OSI参照モデルを用いた方が、より細やかな説明ができるから」と考えられます。

これまで説明してきた通り、4層から成るTCP/IPモデルは、7層からなるOSI参照モデルを簡素化したモデルです。そのため、例えば、「ネットワークインターフェース層」と言うより「L2のデータリンク層」や「L1の物理層」と言った方が、議論対象となっているプロトコルや機器のレイヤーをより詳しく特定できます。

OSI参照モデルとTCP/IPの違い

結果として、説明にはOSI参照モデルが、実装にはTCP/IPモデルが利用される状況となっており、これら二つのモデルが共存しているのです。

OSI参照モデルとTCP/IPモデルの比較表

改めて、TCP/IPモデルとOSI参照モデルの違いを以下の表にまとめます。

OSI参照モデルとTCP/IPの比較表

OSI参照モデルとTCP/IPの比較表(レイヤー構成)

まとめ

最後に、ここまでの内容を振り返ってまとめたいと思います。

今回、「TCP/IPモデルとは?」について解説して来ました。

まとめ

TCP/IPモデルは、

  • インターネットをはじめとするコンピューターネットワークで、実際に使用されている通信のプロトコルやレイヤー構成を示したモデル
  • アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層の4層からなる

ことを解説しました。

また、TCP/IPの

  • アプリケーション層は「アプリケーション固有の仕様」や「データの表現形式」や「プログラム間の通信の開始や終了のルール」を規定
  • トランスポート層は「データ送受信の信頼性を保つためのルール」を規定
  • インターネット層は「データを目的地へ到達させるルートの決定方法」を規定
  • ネットワークインターフェース層は「直接的に接続されたノード間の通信方法」や「物理的な要素」を規定

していることを説明しました。


ということで、今回は以上になります。

よし

ここまで、記事をお読み下さり、ありがとうございました。

「YouTube」で動画解説もしていますので、質問のある方はコメント欄へお気軽にメッセージください!

ほなね!