はじめに
TCP/IPを学んで衝撃を受けたのでまとめます。
現代がこんなに便利なのはこの技術のおかげかもしれません。
TCP/IPって何?
TCP/IPは「Transmission Control Protocol/Internet Protocol」の略で、インターネット上でデータをやり取りするためのルール(プロトコル)の集合体です。
わかりやすい例え話
TCP/IPを郵便システムに例えてみましょう。
-
TCP(Transmission Control Protocol):配達方法
- 確実に届けるための仕組み
- 書留郵便のように、確実に相手に届いたか確認する
-
IP(Internet Protocol):住所システム
- どこに送るかを決める(IPアドレス)
- 郵便番号や住所のようなもの
TCP/IPが使われている身近な例
実は、私たちが普段使っているサービスのほとんどでTCP/IPが活躍しています!
🌐 インターネットサービス
ウェブサイト閲覧
- Google、YouTube、Amazon
- ニュースサイト、SNS
- オンラインショッピング
メール
- Gmail、Outlook
- 企業のメールシステム
動画・音楽配信
- Netflix、Amazon Prime Video
- Spotify、Apple Music
📱 スマートフォン・アプリ
SNSアプリ
- Twitter(X)、Instagram、TikTok
- LINE、WhatsApp
ゲーム
- オンラインゲーム
- スマホゲームのデータ通信
地図・ナビ
- Google Maps、Apple Maps
- リアルタイム交通情報
🏠 家庭内ネットワーク
スマート家電
- スマートテレビでの動画視聴
- Amazon Echo、Google Home
- スマート照明、エアコン
IoTデバイス
- 防犯カメラ
- スマートドアベル
💼 ビジネス
リモートワーク
- Zoom、Teams でのビデオ会議
- クラウドサービス(Google Drive、OneDrive)
- VPN接続
電子商取引
- オンライン決済
- 在庫管理システム
つまり、デジタル社会のすべてがTCP/IPで成り立っていると言っても過言ではありません!
なぜTCP/IPが必要なのか?
1. 異なるネットワーク同士の接続
昔は、各社が独自のネットワーク規格を作っていました:
- IBMのSNA(Systems Network Architecture)
- DECのDECnet
- AppleのAppleTalk
これでは、異なるメーカーのコンピュータ同士で通信できません。TCP/IPは共通の言語として、どんなメーカーのコンピュータでも通信できるようにしました。
2. 大規模ネットワークの実現
世界中の何億台ものコンピュータをどうやって接続すべきか。
TCP/IPの解決策:
- 階層化:複雑な問題を4つの層に分けて解決
- ルーティング:最適な経路を自動的に見つける
- パケット分割:大きなデータを小さく分けて送信
3. 信頼性の確保
インターネットは不安定なネットワークです。
- ケーブルが切れることがある
- サーバーがダウンすることがある
- データが途中で失われることがある
TCP/IPが提供する解決策:
送信者: 「データ1を送ったよ」
受信者: 「データ1、受け取りました!」
送信者: 「データ2を送ったよ」
受信者: 「...(応答なし)」
送信者: 「あれ?もう一度データ2を送るね」
受信者: 「データ2、受け取りました!」
4. スケーラビリティ(拡張性)
TCP/IPはどんなサイズのネットワークにも対応できます。
- 小規模: 家庭のWi-Fi(数台のデバイス)
- 中規模: 企業のLAN(数百〜数千台)
- 大規模: インターネット全体(数十億台)
5. 現実世界の例
もしTCP/IPがなかったら...
ウェブサイト閲覧:
❌ www.google.com にアクセスしようとする
❌ でも、Googleのサーバーがどこにあるかわからない
❌ データの送り方もわからない
❌ 結果:何もできない
TCP/IPがあると:
✅ www.google.com → IPアドレスに変換
✅ 最適な経路を自動で見つける
✅ データを安全に送受信
✅ 結果:検索ページが表示される
6. 標準化の重要性
TCP/IPは国際標準です:
- どの国でも同じルールで通信
- どのメーカーの機器でも相互接続可能
- 新しい技術も同じ基盤の上で開発
例: 日本のスマホからアメリカのサーバーにアクセス
日本のスマホ(TCP/IP)
↓
世界中のルーター(TCP/IP)
↓
アメリカのサーバー(TCP/IP)
つまり、TCP/IPはインターネットを可能にした革命的な技術なんです!
TCP/IPの4層モデル
TCP/IPは4つの層(レイヤー)に分かれています。下から順番に見ていきましょう。
1. ネットワークインターフェース層(物理層)
役割: 実際にデータを送る物理的な部分
- LANケーブル、Wi-Fi、光ファイバーなど
- 0と1のデジタル信号を電気信号や光信号に変換
2. インターネット層(ネットワーク層)
役割: データをどこに送るかを決める
- IP(Internet Protocol) が動作
- IPアドレスを使って宛先を特定
- ルーティング(道順決め)を行う
3. トランスポート層
役割: データを確実に届ける
- TCPやUDPが動作
- データの分割・組み立て
- エラー検出・修正
4. アプリケーション層
役割: 私たちが使うアプリケーションが動作
- HTTP/HTTPS(ウェブサイト)
- SMTP(メール送信)
- FTP(ファイル転送)
IPアドレスとは?
IPアドレスは、インターネット上の住所のようなものです。
IPv4アドレス
192.168.1.1
- 4つの数字を「.」で区切った形式
- 各数字は0〜255の範囲
- 約43億個のアドレスが利用可能
IPv6アドレス
2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 16進数を「:」で区切った形式
- IPv4のアドレス不足を解決
- 約340澗(かん)個のアドレスが利用可能
43億 x 43億 x 43億 x 43億 らしい。デカ~
プライベートIPとパブリックIP
プライベートIP: 家庭内ネットワークで使用
192.168.xxx.xxx
10.xxx.xxx.xxx
172.16.xxx.xxx 〜 172.31.xxx.xxx
パブリックIP: インターネット上で使用される唯一のアドレス
TCPとUDPの違い
どちらもデータを送るトランスポート層のプロトコルですが、目的が異なります。
TCP(Transmission Control Protocol)
特徴: 信頼性重視
- データが確実に届く
- 順序が保たれる
- エラー検出・修正機能あり
- 速度は比較的遅い
使用例:
- ウェブサイトの閲覧(HTTP/HTTPS)
- メール送信(SMTP)
- ファイル転送(FTP)
UDP(User Datagram Protocol)
特徴: 速度重視
- データが届かない可能性がある
- 順序が保たれない場合がある
- エラー検出機能は最小限
- 速度が速い
使用例:
- 動画配信(YouTube、Netflix)
- オンラインゲーム
- DNS(名前解決)
ポート番号とは?
ポート番号は、同じコンピュータ内でどのアプリケーションにデータを渡すかを決める番号です。
よく使われるポート番号
| ポート番号 | プロトコル | 用途 |
|---|---|---|
| 80 | HTTP | ウェブサイト(暗号化なし) |
| 443 | HTTPS | ウェブサイト(暗号化あり) |
| 8080 | HTTP | 開発用ウェブサーバー |
| 25 | SMTP | メール送信 |
| 110 | POP3 | メール受信 |
| 22 | SSH | セキュアなリモート接続 |
| 21 | FTP | ファイル転送 |
アドレスの書き方
192.168.1.1:8080
-
192.168.1.1:IPアドレス -
8080:ポート番号
localhost:8080 ってこれのことか!!
TCP/IPの通信の流れ
実際にウェブサイトにアクセスする時の流れを見てみましょう。
1. DNS名前解決
www.example.com → 192.0.2.1
ドメイン名をIPアドレスに変換
2. TCP接続確立(3ウェイハンドシェイク)
クライアント → サーバー: SYN
サーバー → クライアント: SYN-ACK
クライアント → サーバー: ACK
3. HTTPリクエスト送信
GET / HTTP/1.1
Host: www.example.com
4. HTTPレスポンス受信
HTTP/1.1 200 OK
Content-Type: text/html
<html>...</html>
5. TCP接続終了
まとめ
TCP/IPは、インターネットの基盤となる重要な技術です。
重要なポイント:
- TCP/IPは4つの層に分かれている
- IPアドレスはインターネット上の住所
- TCPは信頼性、UDPは速度を重視
- ポート番号でアプリケーションを特定
- 普段使っているインターネットサービスはすべてTCP/IPで動いている