
20年間エンジニアとして働いた後、フリーランスを経て現在は1人社長として活動しているユウイチです。
プログラミング講師やIT教育を中心に発信しながら、趣味でゲーム開発やシナリオ作成にも挑戦しています。
「創造と教育を通じて、自分らしく生きたい人の“自由な一歩”を支援する」――そんな想いを込めて、このブログを書いています。
今回は基礎技術の紹介で、TCP/IPプロトコルについて書いてみようと思います。
これからエンジニアを目指す方やエンジニアとして経験の浅い方の中には「そもそもプロトコルってなんやねん」という方も多いかと思います。さらに「スタックもよーわからん!」という方もいらっしゃるのではないでしょうか。
そのような方にとっては「プロトコルだけでもわからんのにスタックまでついとるやないか!」
ってなりますよね。僕も若い頃その状態でした笑
今回はそんな状態の方にも理解していただけるように、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プロトコルの仕組みを図でわかりやすく解説!
20年間エンジニアとして働いた後、フリーランスを経て現在は1人社長として活動しているユウイチです。 プログラミング講師やIT教育を中心に発信しながら、趣味でゲーム開発やシナリオ作成にも挑戦しています。 ...
続きを見る
✅ ITキャリアを育てるコミュニティ「ITキャリアラボ」
未経験からIT業界に挑戦したい方、資格学習、プログラミング学習が続かない方、転職に不安がある方へ。
僕自身、未経験からエンジニアになり、フリーランス、そして起業へと進んできました。
だからこそ、同じように悩んでいる人たちに寄り添い、サポートしたいという想いで、
LINE公式アカウント「ITキャリアラボ」 を開設しました。
🔹 こんな方におすすめです!
こんな方におすすめ
- IT業界へ未経験からチャレンジしたい方
- ITパスポート・基本情報技術者などの資格勉強中の方
- プログラミング学習でつまずいている方
- 転職・キャリアチェンジを検討中の方
- モチベーションを保つために仲間がほしい方
- 将来的な独立に興味がある方
📌参加は無料・匿名OK・LINEだけで完結!
こちらで詳しく紹介してますので、まずは気軽にのぞいてみてくださいね👇
ITキャリアラボ
-

ITキャリアを育てるコミュニティ「ITキャリアラボ」|自分らしい働き方を目指す人へ
20年間エンジニアとして働いた後、フリーランスを経て現在は1人社長として活動しているユウイチです。 プログラミング講師やIT教育を中心に発信しながら、趣味でゲーム開発やシナリオ作成にも挑戦しています。 ...
続きを見る
