29
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Web開発】TCP/IPを簡単に抑えておく

29
Posted at

はじめに

この記事では、インターネット通信の基礎となるTCP/IPについて、初めて学ぶ方にも分かりやすく解説します。

この記事で学べること

  • TCP/IPの基本的な仕組み
  • 階層構造の考え方
  • IPアドレスの役割
  • TCPとUDPの違い
  • 実際の通信がどのように行われるか

想定読者

  • プログラミングを学び始めた方
  • ネットワークの基礎を学びたい方
  • TCP/IPという言葉は聞いたことがあるが、詳しくは知らない方

TCP/IPとは何か

インターネット通信の基礎

TCP/IPは、インターネット上でコンピュータ同士が通信するための約束事(プロトコル)です。正式には「Transmission Control Protocol/Internet Protocol」と呼ばれます。

私たちが普段、Webサイトを見たり、メールを送ったりできるのは、すべてこのTCP/IPのおかげです。

TCP/IPが生まれた背景

1960年代、アメリカ国防総省は、核攻撃を受けても通信を維持できるネットワークを必要としていました。そこで開発されたのがARPANETで、これがインターネットの原型となりました。

TCP/IPは、異なる種類のコンピュータやネットワークでも通信できるように設計された、柔軟で堅牢なプロトコルです。

TCP/IPの階層構造

TCP/IPは、4つの階層に分かれています。この階層構造により、それぞれの層が独立して機能し、保守や拡張がしやすくなっています。

各層の役割

アプリケーション層

  • 役割:ユーザーが直接利用するアプリケーションの通信を担当
  • 例:Webブラウザ(HTTP)、メール(SMTP)、ファイル転送(FTP)

トランスポート層

  • 役割:データを確実に届けるための制御を行う
  • 例:TCP(信頼性重視)、UDP(速度重視)

インターネット層

  • 役割:データをどの経路で送るかを決定し、宛先まで届ける
  • 例:IP(インターネットプロトコル)

ネットワークインターフェース層

  • 役割:物理的なネットワーク機器とのやり取りを担当
  • 例:Ethernet(有線LAN)、Wi-Fi(無線LAN)

階層化のメリット

階層化することで、次のようなメリットがあります。

  • 独立性:各層が独立しているため、一つの層を変更しても他の層に影響しない
  • 再利用性:同じ層を異なるアプリケーションで共有できる
  • 保守性:問題が発生した際、どの層に問題があるか特定しやすい

郵便システムに例えると、手紙を書く人(アプリケーション層)、配達方法を決める人(トランスポート層)、配達ルートを決める人(インターネット層)、実際に配達する人(ネットワークインターフェース層)のように、役割が分担されているイメージです。

IPアドレスとは

IPアドレスの役割

IPアドレスは、ネットワーク上のコンピュータを識別するための住所のようなものです。インターネット上の各デバイスには、固有のIPアドレスが割り当てられています。

例えば、192.168.1.1 のような数字の並びがIPアドレスです。

IPv4とIPv6

現在、主に2種類のIPアドレスが使われています。

IPv4

  • 形式:192.168.1.1 のように、0〜255の数字を4つ並べた形式
  • アドレス数:約43億個
  • 課題:インターネットの普及により、アドレスが不足している

IPv6

  • 形式:2001:0db8:1234:5678:90ab:cdef:0123:4567 のように、16進数で表現
  • アドレス数:事実上無限(約340澗個)
  • 特徴:IPv4の枯渇問題を解決するために開発された

プライベートIPアドレスとグローバルIPアドレス

グローバルIPアドレス

  • インターネット上で一意に識別されるアドレス
  • 世界中で重複しないように管理されている
  • 例:自宅のルーターに割り当てられるアドレス

プライベートIPアドレス

  • ローカルネットワーク内でのみ使われるアドレス
  • 組織や家庭内で自由に使える
  • 範囲:192.168.0.0〜192.168.255.255 など

自宅のWi-Fiに接続したスマートフォンやPCには、プライベートIPアドレスが割り当てられ、ルーターを通じてグローバルIPアドレスでインターネットに接続します。

TCPとUDPの違い

トランスポート層では、主にTCPとUDPという2つのプロトコルが使われます。それぞれ異なる特徴を持ち、用途に応じて使い分けられています。

TCPの特徴

TCP(Transmission Control Protocol) は信頼性を重視したプロトコルです。

  • 接続確立:通信前に相手と接続を確立する(3ウェイハンドシェイク)
  • 確実な配送:データが確実に届いたか確認する
  • 順序保証:データが送った順番通りに届く
  • 再送制御:データが届かなかった場合は再送する

使われる場面

  • Webサイトの閲覧(HTTP/HTTPS)
  • メール送信(SMTP)
  • ファイル転送(FTP)

データの正確性が重要な場面で使われます。

UDPの特徴

UDP(User Datagram Protocol) は速度を重視したプロトコルです。

  • 接続不要:事前の接続確立が不要
  • 高速:確認処理がないため、TCPより高速
  • 順序不保証:データが順番通りに届くとは限らない
  • 再送なし:データが届かなくても再送しない

使われる場面

  • 動画配信(ストリーミング)
  • オンラインゲーム
  • 音声通話(VoIP)
  • DNS(ドメイン名解決)

多少のデータ欠損があっても問題なく、リアルタイム性が重要な場面で使われます。

それぞれの使い分け

実際の通信の流れ

Webページを表示するまでの流れ

ブラウザでWebページを開く際、次のような流れで通信が行われます。

各ステップの説明

  1. URL入力:ユーザーがブラウザにURLを入力
  2. DNS問い合わせ:ドメイン名(例:www.example.com)をIPアドレスに変換
  3. TCP接続確立:3ウェイハンドシェイクで接続を確立
  4. HTTPリクエスト:Webページのデータを要求
  5. データ受信:サーバーからHTMLデータを受け取る
  6. 表示:ブラウザがHTMLを解釈してページを表示

パケットの送受信

データは「パケット」という小さな単位に分割されて送信されます。

パケットの構造

各層で、データにヘッダー(制御情報)が追加されていきます。これをカプセル化と呼びます。

受信側では、この逆の処理(デカプセル化)が行われ、各層でヘッダーを取り除いていき、最終的に元のデータを取り出します。

まとめ

TCP/IPの重要ポイント

  • TCP/IPはインターネット通信の基礎となるプロトコル群
  • 4つの階層(アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層)に分かれている
  • IPアドレスはネットワーク上の住所
  • TCPは信頼性重視、UDPは速度重視
  • データはパケットに分割されて送受信される
29
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?