なぜエンジニアにネットワーク知識が必要なのか
「プログラムを書くだけなのに、ネットワークの知識って必要?」と思っているエンジニアは多いですが、実際にはネットワークの基礎知識は様々な場面で必要になります。
APIのタイムアウトがなぜ発生するのか・なぜHTTPSが必要なのか・CDNはどのように動いているのか・マイクロサービス間の通信をどう設計するか、これらはすべてネットワークの知識が必要な問題です。特にバックエンドエンジニア・インフラエンジニア・フルスタックエンジニアにとって、ネットワーク基礎は必須の知識です。
OSIモデルとTCP/IPの基礎
コンピュータネットワークの基礎として「OSI参照モデル」と「TCP/IPモデル」を理解することが重要です。
OSI参照モデル(7層):
第7層(アプリケーション層):HTTP・FTP・SMTP等のアプリケーションプロトコル
第6層(プレゼンテーション層):データの変換・暗号化・圧縮
第5層(セッション層):通信セッションの確立・維持・終了
第4層(トランスポート層):TCP・UDP。エンドツーエンドの通信制御
第3層(ネットワーク層):IP。ルーティング・論理アドレス
第2層(データリンク層):MACアドレス・スイッチ
第1層(物理層):電気信号・ケーブル
実務では特にL4(TCP/UDP)とL7(HTTP/HTTPS)を深く理解することが重要です。
TCP/IPの仕組み|3ウェイハンドシェイクと信頼性確保
TCPは信頼性の高い通信プロトコルです。データが確実に届くことを保証します。
3ウェイハンドシェイク:
TCP接続の確立は3段階で行われます。クライアントがSYNを送信 → サーバーがSYN-ACKで応答 → クライアントがACKを送信。この後データ通信が始まります。
TCP vs UDP:
TCPは信頼性重視(順序保証・再送制御・輻輳制御)でWebアクセス・ファイル転送に使用。UDPは速度重視(信頼性なし)でリアルタイム動画・ゲーム・DNSに使用されます。
HTTP/HTTPSの仕組みを深く理解する
Web開発において最も重要なプロトコルであるHTTP/HTTPSの仕組みを解説します。
HTTPリクエスト・レスポンスの構造:
HTTPリクエストはメソッド(GET・POST・PUT・DELETE・PATCH)・URL・ヘッダー・ボディで構成されます。HTTPレスポンスはステータスコード・ヘッダー・ボディで構成されます。
重要なHTTPステータスコード:
200 OK・201 Created・204 No Content(成功)
301 Moved Permanently・302 Found(リダイレクト)
400 Bad Request・401 Unauthorized・403 Forbidden・404 Not Found(クライアントエラー)
500 Internal Server Error・502 Bad Gateway・503 Service Unavailable(サーバーエラー)
HTTPS・TLSの仕組み:
HTTPSはHTTPをTLS(Transport Layer Security)で暗号化したものです。TLSハンドシェイクの過程で証明書の検証・共有鍵の交換が行われ、その後の通信が暗号化されます。現代のWebではHTTPSは必須です。
DNSの仕組みと実務での活用
DNSはドメイン名をIPアドレスに変換するシステムです。「www.example.com」を入力するとDNSが裏で動いてIPアドレスを返します。
DNSの解決フロー:ブラウザがDNSキャッシュを確認 → なければリゾルバサーバーへ問い合わせ → ルートサーバー → TLDサーバー → 権威DNSサーバーの順で解決。
実務でよく使うDNSレコード:
・Aレコード:ドメインをIPv4アドレスに対応付ける
・AAAAレコード:ドメインをIPv6アドレスに対応付ける
・CNAMEレコード:ドメインの別名(エイリアス)を設定
・MXレコード:メールサーバーのアドレスを指定
・TXTレコード:SPF・DKIMなどのメール認証設定
エンジニアが知っておくべきネットワークセキュリティの基礎
Webアプリ開発においてネットワークセキュリティの知識は不可欠です。基本的な攻撃手法と防御策を理解することで、安全なシステムを構築できます。
- HTTPS/TLS:通信を暗号化するプロトコル。Lets EncryptでSSL証明書が無料で取得できます。2025年現在、全てのWebサイトでHTTPS対応が必須です。
- ファイアウォール:不正なネットワークアクセスをブロックする仕組み。AWSではセキュリティグループとNACLで設定します。
- DDoS攻撃と対策:大量リクエストでサーバーをダウンさせる攻撃。AWS ShieldやCloudFlareなどのCDN/WAFサービスで防御します。
- VPN(仮想プライベートネットワーク):インターネット上に仮想的な専用回線を構築。リモートワーク環境のセキュリティ確保に使われます。
- ゼロトラストセキュリティ:「信頼しない、常に検証する」原則。VPNだけに依存しない現代的なセキュリティモデルとして普及しています。
- Wireshark・tcpdump:ネットワークパケットを分析するツール。トラブルシューティング時に実際の通信を確認できます。