※本記事にはプロモーション(広告)を含みます。

TCP/IPの基礎は「4階層構造」と「TCP・UDPの使い分け」の2点を押さえれば、実務のトラブルシューティングで困ることはほとんどありません。サーバー構築やクラウド運用の現場では、通信が届かないときに「どの階層で問題が起きているか」を切り分けられるかどうかで、原因調査にかかる時間が大きく変わります。本記事では、TCP/IPの構造からIPアドレスの読み方、通信確認コマンドの使い方まで、実務で使える形にまとめて解説します。
  • TCP/IPとは何か
  • 4階層モデルの中身
  • TCPとUDPの違い
  • IPアドレスとサブネット
  • 通信トラブルの調べ方
  • よくある質問
  • まとめ

TCP/IPとは何か

TCP/IPは、インターネットや社内LANでコンピュータ同士が通信するための取り決め(プロトコル群)の総称です。TCP(Transmission Control Protocol)とIP(Internet Protocol)という2つの主要プロトコルの名前を組み合わせて呼ばれていますが、実際には数十種類のプロトコルが階層的に組み合わさって動作しています。Webサイトの閲覧、メールの送受信、ファイル転送、クラウドサーバーへのSSH接続など、ネットワークを介したあらゆる通信の土台になっている仕組みです。

プロトコルスタックの構造

TCP/IPは単一のプロトコルではなく、役割ごとに層が分かれた「プロトコルスタック」として設計されています。上位層は下位層の機能を利用し、下位層は上位層がどんなデータを運んでいるかを意識しません。この分離構造のおかげで、たとえばWebブラウザを作る開発者は物理的な配線やルーティングの仕組みを知らなくても通信アプリケーションを作れます。逆に、ネットワーク機器のメーカーはアプリケーションの中身を知らなくてもパケットを正しく転送できます。層ごとに責任範囲が独立しているため、片方を変更してももう片方に影響が及びにくいという利点があります。

OSI参照モデルとの違い

ネットワークの教科書ではOSI参照モデル(7階層)もよく登場しますが、TCP/IPは実務で実際に使われているプロトコル群を基に整理された4階層(または5階層)のモデルです。OSI参照モデルは通信の概念を整理するための理論的な枠組みとして広く使われている一方、実際にインターネット上を流れているパケットはTCP/IPの階層構造に基づいて処理されています。両者の対応関係をざっくり把握しておくと、ネットワーク機器のマニュアルや障害報告書を読むときに用語の混乱を避けられます。

4階層モデルの中身

TCP/IPの通信は、送信側でデータが上位層から下位層へ渡されるたびにヘッダー情報が付加され(カプセル化)、受信側では逆に下位層から上位層へ渡されるたびにヘッダーが取り除かれる(非カプセル化)という流れで進みます。この4つの層を理解しておくと、通信障害が起きたときに「どの層の問題か」を絞り込みやすくなります。

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

物理的なケーブルや無線を通じて、同一ネットワーク内の機器同士がデータを送受信する層です。イーサネットやWi-Fi(IEEE 802.11)がこの層に該当し、MACアドレスを使って隣接する機器を識別します。この層で扱われる単位は「フレーム」と呼ばれます。ケーブルの断線やスイッチの故障、無線LANの電波干渉といった物理的な障害は、この層の問題として現れます。

インターネット層とIPアドレス

異なるネットワーク間でデータを届けるための層で、IPアドレスを使って宛先を識別します。この層の主役はIPプロトコルで、データはルーターを経由しながら目的のネットワークまで運ばれます。データの単位は「パケット」と呼ばれ、ICMP(pingで使われるプロトコル)もこの層に含まれます。経路上のどこかでルーティング設定に誤りがあると、パケットが目的地に届かない、あるいは想定外の経路を通るといった現象が起きます。

トランスポート層の役割

アプリケーション同士の通信を橋渡しする層で、ポート番号を使って「どのアプリケーション宛てのデータか」を識別します。代表的なプロトコルはTCPとUDPで、データの単位はTCPでは「セグメント」、UDPでは「データグラム」と呼ばれます。同じサーバー上でWebサーバーとメールサーバーが同時に動いていても混線しないのは、この層でポート番号による振り分けが行われているためです。

アプリケーション層の役割

ユーザーが直接触れるサービスに近い層で、HTTP(Web閲覧)、HTTPS(暗号化されたWeb閲覧)、SMTP(メール送信)、DNS(名前解決)、SSH(リモート接続)などが該当します。開発やインフラ運用の現場で日常的に扱うプロトコルの大半はこの層に集まっています。アプリケーション層のエラーは「サーバーは応答しているが正しい結果が返ってこない」という形で現れることが多く、下位層のトラブルとは切り分けて調査する必要があります。

TCPとUDPの違い

トランスポート層の2大プロトコルであるTCPとUDPは、性質がまったく異なります。どちらを使うべきかはアプリケーションの要件次第で決まり、優劣で選ぶものではありません。

項目TCPUDP
接続方式コネクション型(3ウェイハンドシェイクで接続確立)コネクションレス型(確立処理なし)
信頼性再送制御・順序制御あり再送制御・順序制御なし
速度制御処理のぶん遅延が発生しやすいオーバーヘッドが少なく低遅延
主な用途Webアクセス、メール、ファイル転送DNS問い合わせ、動画配信、オンラインゲーム
代表ポート例80(HTTP)、443(HTTPS)、22(SSH)53(DNS)、123(NTP)

3ウェイハンドシェイク

TCPが通信を開始する際に行う手順で、SYN、SYN/ACK、ACKという3回のやり取りで接続を確立します。送信側がSYNパケットを送り、受信側がSYN/ACKで応答し、送信側が最後にACKを返すことで、双方が「通信の準備ができた」ことを確認し合う仕組みです。この手順を経てから実際のデータ転送が始まるため、UDPと比べると接続確立に時間がかかりますが、その代わりデータの欠落や順序の乱れを検出・修復できます。パケットキャプチャツールで通信を解析する際、この3ウェイハンドシェイクが完了しているかどうかは接続確立の可否を判断する重要な手がかりになります。

用途で使い分ける

Webサイトの閲覧やファイルダウンロードのように「1バイトも欠けてはいけない」通信にはTCPが選ばれます。一方、DNS問い合わせのように短時間で完結し、多少の失敗があってもアプリケーション側で再試行すればよい通信や、動画のリアルタイム配信のように多少のパケットロスより速度を優先したい通信にはUDPが向いています。オンラインゲームの一部でもUDPが採用されているのは、少々のデータ欠落よりも遅延の少なさを優先する設計思想があるためです。どちらのプロトコルを使うかはアプリケーションの設計者があらかじめ決めており、利用者側で切り替えられるものではありません。

IPアドレスとサブネット

IPアドレスはネットワーク上の機器を識別するための番号で、インターネット層で使われます。現在主流のIPv4と、次世代規格のIPv6の2種類が存在し、両者はアドレス形式もアドレス空間の広さも大きく異なります。

IPv4とIPv6の違い

IPv4は「192.168.1.1」のように32ビットを4つの数字で表記する形式で、表現できるアドレス数は約43億個です。インターネットの普及に伴いIPv4アドレスの枯渇が課題となったため、128ビットで構成されるIPv6が策定されました。IPv6は「2001:0db8:85a3:0000:0000:8a2e:0370:7334」のように16進数をコロンで区切って表記し、理論上のアドレス数はIPv4とは比較にならないほど膨大です。国内の多くのISPやクラウドサービスは現在もIPv4での接続を提供していますが、IPv6への対応を進めている事業者も増えているため、サーバー構築時にはどちらに対応する必要があるか事前に確認しておく必要があります。

サブネットマスクの計算

サブネットマスクは、IPアドレスのうち「ネットワーク部」と「ホスト部」の境界を示すための値です。たとえば「192.168.1.0/24」という表記は、先頭24ビットがネットワーク部であることを意味し、残りの8ビット(256通りから予約分を除いた254台分)がホスト部として利用できます。社内LANを部署ごとにネットワークで分割する「サブネッティング」を行う際は、この計算方法を理解しておく必要があります。目安として、小規模な部署単位のネットワークでは/24(254台分)、小規模な機器間接続では/30(2台分)といった単位がよく使われます。実際の設計では利用予定台数や将来の拡張を踏まえて割り当てを決めるため、初めて設計する場合はサブネット計算ツールを併用すると計算ミスを防げます。

通信トラブルの調べ方

ネットワーク障害の一次切り分けは、専門的なツールがなくても標準搭載のコマンドで進められます。Windows、macOS、Linuxのいずれにも共通のコマンドが用意されているため、まずはここから調査を始めるのが定石です。

疎通確認とpingコマンド

pingコマンドはICMPプロトコルを使って対象ホストへ到達可能かを確認するツールです。「ping 8.8.8.8」のように実行すると、応答時間(ミリ秒)とパケットロスの有無が表示されます。応答が返ってこない場合、宛先が停止している、経路上のファイアウォールでICMPが遮断されている、そもそも経路が存在しないといった複数の可能性が考えられます。IPアドレス指定では通信できるがドメイン名指定では通信できない場合は、DNSの名前解決に問題があると判断できます。

経路確認とtraceroute

tracerouteコマンド(Windowsではtracert)は、宛先までの経路上を通過するルーターを1台ずつ表示し、どの区間で応答が遅延・停止しているかを可視化するツールです。社内から特定のクラウドサービスに接続できないといったトラブルでは、traceroute結果を見ることで自社ネットワーク内の問題か、ISP側の問題か、接続先サービス側の問題かをある程度絞り込めます。ただし、経路上の一部の機器がICMPへの応答を意図的に無効化している場合もあるため、結果の一部が欠けていても必ずしも障害を意味するわけではありません。

よくあるトラブル事例

実務でよく遭遇するトラブルには、いくつかの典型パターンがあります。以下に代表例をまとめます。

  • サーバーは起動しているのに接続できない → ファイアウォールで該当ポートが閉じている可能性を確認する
  • 社内からは接続できるが外部から接続できない → ルーターのポートフォワーディング設定を確認する
  • 特定の時間帯だけ通信が不安定になる → 回線の帯域不足やDHCPアドレス枯渇を確認する
  • ドメイン名でアクセスできない → DNSレコードの設定やTTL経過後の反映状況を確認する

クラウド環境ではセキュリティグループやネットワークACLといった仮想的なファイアウォール機能が別途存在するため、OS側のファイアウォール設定だけでなく、クラウドサービス側の設定も併せて確認する必要があります。セキュリティに関わる設定変更は、公開範囲を誤ると意図しない第三者からのアクセスを許してしまうリスクがあるため、変更内容を必ず事前に確認したうえで自己責任のもとで実施してください。

よくある質問

Q1. TCP/IPとHTTPの関係は?

HTTPはTCP/IPの4階層モデルにおけるアプリケーション層に位置するプロトコルで、下位層としてTCPとIPを利用します。HTTP通信を行う際は、まずTCPで接続を確立し、その上でHTTPのリクエスト・レスポンスがやり取りされます。

Q2. IPアドレスが枯渇するとどうなりますか?

IPv4アドレスは有限であるため、新規に割り当てられるグローバルIPアドレスが不足する状況が課題として指摘されています。対策として、複数の端末で1つのグローバルIPアドレスを共有するNAT(ネットワークアドレス変換)や、アドレス空間の広いIPv6への移行が進められています。

Q3. ポート番号は自由に決めてよいですか?

0番から1023番までは「ウェルノウンポート」と呼ばれ、HTTP(80番)やSSH(22番)など主要なプロトコルに割り当てが決まっています。それ以外のポート番号は独自のアプリケーションで利用できますが、既に他のサービスが使用しているポートと重複しないよう確認する必要があります。

Q4. pingが通らない場合、必ず障害ですか?

必ずしも障害とは限りません。セキュリティ対策としてICMPへの応答を意図的に無効化しているサーバーやネットワーク機器も一般的に存在するため、pingが通らないだけでは通信全体が不可能とは判断できません。TCP接続そのものを試すツール(telnetやcurlなど)で確認することをおすすめします。

Q5. プライベートIPとグローバルIPの違いは?

プライベートIPアドレスは社内LANなど閉じたネットワーク内でのみ使われるアドレスで、インターネット上から直接アクセスすることはできません。グローバルIPアドレスはインターネット上で一意に識別されるアドレスで、インターネットに公開するサーバーにはこちらが必要になります。ルーターのNAT機能によって、プライベートIPとグローバルIPが相互に変換されています。

Q6. 実務でTCP/IPの知識が必要になる場面は?

サーバー構築、クラウドインフラの設計、アプリケーションの通信障害調査、セキュリティ設定の見直しなど、インフラに関わる作業のほとんどでTCP/IPの理解が前提になります。特にファイアウォールやセキュリティグループの設定ミスは、ポート番号やプロトコルの理解不足が原因で起きるケースが目立ちます。

まとめ

TCP/IPは、ネットワークインターフェース層・インターネット層・トランスポート層・アプリケーション層という4つの階層が役割分担しながら動く仕組みです。通信トラブルに遭遇したときは、この階層構造を思い浮かべながら「ケーブルや無線の問題か」「IPアドレスやルーティングの問題か」「ポート番号やファイアウォールの問題か」「アプリケーション自体の問題か」の順に切り分けていくと、原因にたどり着きやすくなります。TCPとUDPはどちらが優れているというものではなく、信頼性を優先するか速度を優先するかというアプリケーションの要件によって使い分けられているプロトコルです。IPv4とIPv6の違いやサブネットマスクの考え方も、サーバー構築やネットワーク設計の場面で繰り返し登場する知識なので、pingやtracerouteといった基本コマンドと合わせて実際に手を動かしながら覚えていくと定着しやすくなります。バージョンや仕様が更新されるプロトコルも含まれるため、実際の設定作業を行う際は各プロトコルの公式ドキュメントやRFC文書で最新の仕様を確認したうえで進めてください。

【編集・制作ポリシー】
本記事はInfra Academy編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。 編集ポリシーはこちら
ABOUT ME
たから
フリーランスIT講師/エンジニア。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900//サーティファイC言語/情報処理技術者 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営