
今回は、ネットワークの基礎中の基礎である
「TCP/IPプロトコルスタック」 について、できるだけシンプルに解説します。
エンジニアの勉強を始めたばかりの頃、
そもそも「プロトコルって何?」
「スタック」ってどういう意味?
OSI参照モデルと何が違うの?
このあたりで一度は混乱すると思います。
実は僕自身も、最初はまったく同じ状態でした。
この記事では、
プロトコル=何のルールなのか
TCP/IPとは何者なのか
なぜ「層(スタック)」になっているのか
データは実際どう流れているのか
このあたりを 図とイメージ重視で、直感的に理解できる形で整理しています。
まずは「全体像」をつかむところから、一緒に見ていきましょう。
TCP/IPプロトコルスタックとは
まず、プロトコルとはルールです。通信する決まりですね。そして、TCP/IPとはインターネットにおいて標準的に利用されるプロトコルになります。
つまり、TCP/IPとは「インターネットで利用される標準的なルール」ということになります。そして、「スタック」とついている理由はこのルールが階層になっていて、各層にルールがあるからです。具体的には4層あって、各層と対応するルールは以下の感じになります。
| 層の名前 | ルール(プロトコル) |
| アプリケーション層 | HTTP,DNS,SMTP,FTP,Telnet,DHCPなど |
| トランスポート層 | TCP,UDP |
| インターネット層 | IP,ICMP,ARP |
| リンク層 | Ethernetケーブル、無線LAN |
これが、TCP/IPプロトコルスタックの層とルールなります。TCP/IPプロトコルスイートと言ったりもします。
「あれ?なんか見たことあるぞ」と思われた方、おそらくOSI参照モデルだと思います。ただ、OSI参照モデルはISOが規定した通信に関する概念なので実際のルールではありません。ですので、実際にルールとして使用されているTCP/IPプロトコルスタックと完全に対になるわけではないのですが、比較すると以下の感じになります。
| レイヤ | OSI参照モデル | TCP/IPプロトコルスタック |
| 7 | アプリケーション層 | アプリケーション層 |
| 6 | プレゼンテーション層 | |
| 5 | セッション層 | |
| 4 | トランスポート層 | トランスポート層 |
| 3 | ネットワーク層 | インターネット層 |
| 2 | データリンク層 | リンク層 |
| 1 | 物理層 |
では実際のデータの流れについて簡単に説明します。
TCP/IPプロトコルで流れるデータ
有線LANでネットワークに接続しているPCを使ってホームページを見る例で説明します。この場合、それぞれの層で使われるルールはアプリケーション層がHTTP,トランスポート層がTCP(UDPの場合もあるがTCPとします)、インターネット層がIP、リンク層がEthernetとなります。
そして、送信側は上位のアプリケーション層→リンク層で送信データを作成し、受信側はリンク層→アプリケーション層の順でデータを処理していきます。以下のようなイメージです。
説明します。
まず送信側ですが、各層で使われるルールに対するヘッダがデータに追加されていきます。Webブラウザを使いインターネットへアクセスを開始すると同時にアプリケーション層では「使われるルールはHTTPか、じゃあ、HTTPヘッダを追加だ」となってHTTPヘッダを追加します。
次にトランスポート層で「使用するルールはTCPだな。じゃあTCPヘッダを追加だ」となって、TCPヘッダが追加されます。以下同様にインターネット層ではIPヘッダが、リンク層ではEthernetヘッダが追加されます。このように各層で使用されるルールに従ったヘッダが追加され、送信データが作られていきます。ここではわかりやすいように「ルール」と記載しましたが、この「ルール」が「プロトコル」になります。
そして、受信側では逆にリンク層から受け取ります。まずリンク層でEthernetヘッダを解析して処理し、上位のインターネット層へ渡します。このとき、リンク層でEthernetヘッダは処理完了しておりますので、Ethernetヘッダを省いてインターネット層へ渡します。同様にインターネット層ではIPヘッダを解析して処理し、IPヘッダを省いてトランスポート層へ。トランスポート層ではTCPヘッダを省いてアプリケーション層へ渡す。このように、各層で処理されたヘッダデータが取り除かれて上位の層へ流れていきます。
各層のプロトコルについて詳細はそれぞれ別の記事にしてまとめようと思っておりますが、基本的な流れは上記のようになります。
以上、今回はTCP/IPプロトコルスタックについて説明してみました。
まとめ
情報処理試験の参考書などにはOSI参照モデルが説明されることが多いですが(僕が受験したはるか昔はそうだった。今もなのかな・・・)、実際はTCP/IPプロトコルスタックに従って通信されています。
僕は大昔OSI参照モデルに従ってプロトコルを覚えて、機器も合わせて覚えたりしました。

みたいな感じです^^;
実際にネットワークの設定をしたことがなくイメージできていない状態でも情報処理試験は覚えるだけで合格できてしまったのですが、やっぱり、イメージできていることが重要になると思っています。
IOTという言葉も一般的になってきて、最近は組み込み系開発であってもネットワークを使わないシステムはなくなってきております。僕も組み込み業界にいたころ、「Wireshark」というパケットキャプチャツールを使ってネットワーク上を流れるデータ解析をよくやりました。(この解析はTCP/IPプロトコルを理解するよい経験になりました)
ですので、ネットワークを専門にしていなくてもネットワークの知識をつけることは必須になってきていると感じております。ちなみに、僕も専門のネットワーク屋さんではありません^^;
ですので、基本的な知識しか説明できないのですが、今後も基本的な知識をわかりやすく伝えていこうと思います。
※各プロトコルの詳細についてはこちらで紹介しております。
こちらもCHECK
-

【完全版】TCP/IPプロトコルの仕組みを図でわかりやすく解説!
今回は、ネットワークの基礎である TCP/IPプロトコル について解説します。 現在のシステム開発において、ネットワークは避けて通れません。組み込み開発であっても、クラウド連携やIoT通信など、TCP ...
続きを見る
✅ ITキャリアを育てるコミュニティ「ITキャリアラボ」
「独学だと続かない…」
「相談できる人がいない…」
「同じ目標の仲間がほしい…」
そんな方向けに、
無料のLINEコミュニティ『ITキャリアラボ』を運営しています。
エンジニア歴20年・講師の僕が、
・資格学習のコツ
・勉強法アドバイス
・キャリア相談
・IT業界のリアル情報
などを発信&質問対応しています。
📌 参加無料・匿名OK・LINEだけで完結
📌 まずは「話を聞くだけ」でも大歓迎
独学で悩む時間を減らしたい人は、気軽に頼ってください。
👇お気軽にどうぞ
ITキャリアラボ
-

【無料】ITの悩みを気軽に相談できるコミュニティ・ITキャリアラボ
IT業界を目指すあなたへ|「ITキャリアラボ」無料コミュニティのご案内 「IT業界に転職したいけど、何から始めればいいかわからない…」「資格の勉強が続かない…」「相談できる人がいない…」 そんな不安、 ...
続きを見る
