本章では、コンピュータ同士がどのように通信しているのかを理解するために、 ネットワークの基本構造とプロトコルを体系的に学ぶ。
WebアプリケーションやAPI通信の仕組みを正しく理解し、 通信の流れとボトルネックを把握できるようになることを目的とする。
1. ネットワークとは
ネットワークとは、複数のコンピュータやデバイスを接続し、 データをやり取りする仕組みである。
- LAN(Local Area Network):ローカルネットワーク
- WAN(Wide Area Network):広域ネットワーク(インターネット)
インターネットは、世界中のネットワークが相互接続された巨大なWANである。
2. OSI参照モデルとTCP/IP
ネットワーク通信は、複数の層に分割して設計されている。
■ OSI参照モデル(7層)
- 第7層:アプリケーション層(HTTPなど)
- 第6層:プレゼンテーション層
- 第5層:セッション層
- 第4層:トランスポート層(TCP/UDP)
- 第3層:ネットワーク層(IP)
- 第2層:データリンク層(Ethernet)
- 第1層:物理層
■ TCP/IPモデル
- アプリケーション層
- トランスポート層
- インターネット層
- ネットワークインターフェース層
実務ではTCP/IPモデルが主に使用される。
3. IPアドレスとDNS
■ IPアドレス
ネットワーク上の機器を識別するための番号。
- IPv4(例:192.168.1.1)
- IPv6(より大規模なアドレス空間)
■ DNS(Domain Name System)
ドメイン名(example.com)をIPアドレスに変換する仕組み。
通信の流れ:
- ユーザーがURLを入力
- DNSサーバに問い合わせ
- IPアドレス取得
- 対象サーバへ接続
4. TCPとUDP
■ TCP(Transmission Control Protocol)
- 信頼性重視(再送制御あり)
- 順序保証あり
- 通信が遅くなることがある
■ UDP(User Datagram Protocol)
- 高速通信
- 信頼性保証なし
- リアルタイム通信向き
用途に応じて使い分けることが重要である。
5. HTTP / HTTPS
■ HTTP
- Web通信の基本プロトコル
- リクエスト / レスポンス型
GET /index.html HTTP/1.1
■ HTTPS
- HTTP + SSL/TLSによる暗号化
- セキュリティ向上
現代のWebはほぼHTTPSが標準となっている。
6. 通信の流れ(Webアクセスの例)
Webページ表示までの流れは以下の通り。
- URL入力
- DNSでIP解決
- TCP接続確立(3-way handshake)
- HTTPリクエスト送信
- サーバからレスポンス受信
この一連の流れを理解することで、 通信遅延の原因を特定できるようになる。
7. レイテンシとボトルネック
ネットワーク性能は以下の要素で決まる。
- レイテンシ(遅延)
- 帯域幅(スループット)
- パケットロス
主なボトルネック:
- DNS遅延
- ネットワーク混雑
- サーバ処理時間
8. 実務における設計指針
ネットワーク設計では、以下の観点が重要となる。
- CDNによる分散配信
- ロードバランサによる負荷分散
- キャッシュ活用(HTTPキャッシュ)
- API設計(REST / GraphQL)
これにより、スケーラブルで高速なシステムを構築できる。
まとめ
本章では、ネットワーク通信の基本構造を理解した。
- ネットワークは層構造で設計される
- IPとDNSが通信の基盤
- TCPとUDPの特性を理解する
- HTTP/HTTPSでWeb通信が実現
- 通信の流れを把握することが重要
これにより、Webアプリケーションの通信構造と パフォーマンスを理解できるようになる。
次章では、これらのネットワークを活用したクラウド環境(AWSなど)の設計へと進む。