🌐 TCP_IP解説_Part02_インターネット通信の基盤プロトコル
※「🌐 TCP_IP解説_Part01_インターネット通信の基盤プロトコル」の続きです。
🔄 TCP/IPの通信プロセス
実際のTCP/IP通信は、各層を上から下、下から上へとデータが移動することで行われます。これをカプセル化・非カプセル化と呼びます。
📦 カプセル化と非カプセル化
!
💡 初学者向けポイント
カプセル化は「箱詰め」のようなものです。手紙(データ)を書いて(アプリケーション層)、封筒に入れて(トランスポート層)、宛先を書いて(インターネット層)、最後に配達用の袋に入れる(ネットワークインターフェース層)イメージです。受信側では逆の順序で「開封」していきます。
📝 具体例:ウェブページにアクセスする場合
📱 アプリケーション層: ブラウザがHTTP要求を作成
GET /index.html HTTP/1.1 Host: www.example.com
🔄 トランスポート層: TCPがポート番号を追加し、データを分割
送信元ポート: 49152(クライアント) 宛先ポート: 80(HTTP) シーケンス番号: 1000 ...
🌐 インターネット層: IPがパケットにアドレスを追加
送信元IP: 192.168.1.5(クライアントPC) 宛先IP: 93.184.216.34(www.example.com) ...
📶 ネットワークインターフェース層: イーサネットフレームにMACアドレスを追加
送信元MAC: 00:1A:2B:3C:4D:5E(クライアントPC) 宛先MAC: 00:E0:81:5C:7D:1F(ルーター) ...
📡 物理媒体: ビットがケーブルや無線で転送される
⬆️ 受信側: 上記の逆の順序でデータを処理し、最終的にWebサーバーがHTTP要求を処理し、応答を返す
🔍 TCP/IPの主要プロトコル詳細
🌐 IP(Internet Protocol)
IPは、インターネット層の中核プロトコルで、パケットの配送と経路選択を担当します。
IPv4 とIPv6
- 📌 IPv4: 32ビットアドレス(例:192.168.1.1)、約43億個のアドレスを提供
- 📌 IPv6: 128ビットアドレス(例:2001:0db8:85a3:0000:0000:8a2e:0370:7334)、ほぼ無限のアドレス空間
!
IPパケットの構造
- 📋 ヘッダー: 送信元/宛先IPアドレス、プロトコルタイプ、TTL(Time To Live)など
- 📄 データ部: 上位層からのデータ(TCPセグメントやUDPデータグラムなど)
🔄 TCP(Transmission Control Protocol)
TCPは、信頼性の高い、接続型の通信を提供するトランスポート層プロトコルです。
TCPの主な特徴
- 🤝 接続型: 通信前に接続を確立(3ウェイハンドシェイク)
- ✅ 信頼性: 確認応答と再送メカニズム
- 🔢 順序保証: パケットの順序を保証
- 🚦 フロー制御: 受信側の処理能力に合わせた送信
- 🚧 輻輳制御: ネットワーク混雑時の送信量調整
TCPヘッダーの構造
- 🔢 ポート番号: 送信元と宛先のポート(各16ビット)
- 🔢 シーケンス番号: データの順序を管理
- ✅ 確認応答番号: 次に期待するバイト番号
- 🚩 フラグ: SYN, ACK, FIN, RSTなど
- 🪟 ウィンドウサイズ: フロー制御のためのバッファサイズ
🚀 UDP(User Datagram Protocol)
UDPは、シンプルで軽量な、非接続型のトランスポート層プロトコルです。
UDPの主な特徴
- 🔌 非接続型: 事前の接続確立なし
- 🏎️ 低遅延: オーバーヘッドが少なく高速
- 📊 信頼性なし: 配達保証、順序保証、再送なし
- 🎮 用途: ストリーミング、オンラインゲーム、DNS、DHCP
!
📱 アプリケーション層の主要プロトコル
🌐 HTTP/HTTPS(Hyper Text Transfer Protocol)
- 🔧 役割: Webページやリソースの転送
- 🔢 ポート: HTTP:80, HTTPS:443
- 🔐 HTTPS: SSLまたはTLSで暗号化されたHTTP
📧 SMTP/POP3/IMAP(メールプロトコル)
- 📤 SMTP: メール送信プロトコル(ポート25)
- 📬 POP3: メール受信プロトコル(ポート110)
- 📨 IMAP: 高度なメール管理プロトコル(ポート143)
🔍 DNS(Domain Name System)
- 🔧 役割: ドメイン名をIPアドレスに変換
- 🔢 ポート: 53(UDP/TCP)
- 📋 レコードタイプ: A, AAAA, MX, CNAME, TXT, NS など
📂 FTP(File Transfer Protocol)
- 🔧 役割: ファイル転送
- 🔢 ポート: 20(データ)と21(制御)
- 💻 コマンド: GET, PUT, LIST, DELETE など
🛠️ TCP/IPの設定
⚙️ 基本的なネットワーク設定
🔢 IPアドレス設定:
- 静的: 手動でIPアドレス、サブネットマスク、ゲートウェイを設定
- 動的: DHCPにより自動割り当て
🔍 DNSサーバー設定:
- 名前解決を行うDNSサーバーのIPアドレスを指定
🔍 一般的なネットワーク問題と診断方法
🚫 接続できない:
- IPアドレス設定の確認(ipconfig/ifconfig)
- 物理接続の確認
- デフォルトゲートウェイの到達性確認(ping)
🐢 接続が遅い:
- ネットワーク混雑
- 帯域幅制限
- ハードウェア制限
- 経路の確認
🔎 名前解決の問題:
- DNSサーバー設定の確認
- キャッシュの確認
🎓 なるほど!ポイント
ネットワークトラブルシューティングは「階段を一段ずつ上がる」ように、下位層から順に確認するのが効果的です。物理接続→IPアドレス→ローカル通信→インターネット接続→DNSという順序で確認していくと、問題箇所を効率よく特定できます。
🔒 TCP/IPのセキュリティ
⚠️ 主なセキュリティ課題
- 🕵️ パケットスニッフィング: 通信の盗聴
- 🎭 IPスプーフィング: 送信元IPアドレスの偽装
- ⚔️ 中間者攻撃: 通信の傍受と改ざん
- 🚫 DoS/DDoS攻撃: サービス拒否攻撃
🛡️ セキュリティ対策
🔐 暗号化プロトコル:
- TLS/SSL: HTTPS, SMTPS, FTPS
- IPsec: ネットワーク層での暗号化
- SSH: セキュアシェル
🔍 認証メカニズム:
- ユーザー認証
- デジタル証明書
- 多要素認証
🧱 ファイアウォール:
- パケットフィルタリング
- ステートフルインスペクション
- アプリケーションレイヤーゲートウェイ
!
📝 まとめ
TCP/IPは、インターネットの基盤となるプロトコル群であり、異なるネットワーク間でのデータ通信を可能にします。4つの階層(アプリケーション、トランスポート、インターネット、ネットワークインターフェース)で構成され、それぞれの層が特定の役割を担います。
IPはパケットの配送と経路選択を担当し、TCPとUDPはそれぞれ信頼性重視と速度重視のトランスポートプロトコルを提供します。アプリケーション層では、HTTP、SMTP、DNSなど様々なプロトコルが特定のサービスを実現します。
TCP/IPの理解は、ネットワークの設計、運用、トラブルシューティング、セキュリティ対策において不可欠です。基本概念を押さえることで、今後のネットワーク技術の習得もスムーズになります。
🎯 この記事のポイント
- 🌐 TCP/IPはインターネット通信の基盤となるプロトコル群
- 🏗️ 4つの階層(アプリケーション、トランスポート、インターネット、ネットワークインターフェース)で構成
- 🔄 TCPは信頼性重視、UDPは速度重視のトランスポートプロトコル
- 📱 アプリケーション層には、HTTP、SMTP、DNS、FTPなど様々なプロトコルがある
- 🔒 セキュリティ対策として、TLS/SSL、IPsec、認証、ファイアウォールなどが重要
TCP/IPの基本を理解することで、インターネットやネットワークの仕組みをより深く理解し、様々なネットワーク問題に対処する基盤を築くことができます。