ネットワーク監視・トラブルシュート

接続タイムアウト せつぞくたいむあうと

タイムアウトTCP接続コネクション確立ネットワーク障害トラブルシュートレイテンシ
接続タイムアウトって何?

簡単に言うとこんな感じ!

「電話をかけたのに、ずっと呼び出し音が鳴り続けて誰も出ない」状態だよ!相手のサーバーに「つながせて!」とノックしたのに、一定時間たっても返事がなくて、あきらめた——それが接続タイムアウトなんだ。


接続タイムアウトとは

接続タイムアウト(Connection Timeout) とは、クライアント(PCやアプリなど)がサーバーへの接続を試みたとき、一定時間内に接続が確立できなかった場合に発生するエラーのことです。たとえばWebブラウザでURLを開こうとしたのに、ぐるぐるが回り続けて最終的に「接続がタイムアウトしました」と表示される、あの状態です。

タイムアウトには複数の種類がありますが、接続タイムアウトは「そもそも相手とつながる前の段階」で起こる点が特徴です。つながったあとに「応答が遅い」「データが来ない」で起きるものは「読み取りタイムアウト(Read Timeout)」と区別されます。ビジネスシーンで「システムにアクセスできない」「社内システムが開かない」といったトラブルの多くは、この接続タイムアウトが原因です。

接続タイムアウトは、ネットワーク機器・サーバー・ファイアウォールDNS設定など、さまざまな箇所の問題がトリガーになります。エラーメッセージだけでは原因が見えにくいため、どこで詰まっているかを切り分けることがトラブルシュートの基本になります。


接続タイムアウトが起きる仕組み

ネットワーク通信でよく使われるTCPプロトコルでは、接続開始時に「3ウェイハンドシェイク」と呼ばれるやりとりが必要です。

クライアント ──── SYN ────────────────► サーバー
クライアント ◄─── SYN-ACK ─────────── サーバー
クライアント ──── ACK ────────────────► サーバー
               ↑ この3ステップが完了して初めて「接続確立」

接続タイムアウトは、このハンドシェイクの途中でサーバーから SYN-ACK が返ってこないときに発生します。クライアントは一定時間(タイムアウト値)待ち続けたあと、「これ以上待てない」と判断してエラーを返します。

接続タイムアウトの主な原因

原因カテゴリ具体的な状況確認ポイント
ネットワーク経路の問題ルーターや回線の障害、パケットロスpingコマンドで疎通確認
ファイアウォール・ACLポートがブロックされている設定変更・例外許可の有無
サーバー側の過負荷接続キューが溢れて新規接続を受け付けられないサーバーのリソース監視
IPアドレスポート番号の誤りそもそも存在しないアドレスに接続しようとしている設定値の確認
DNSの解決失敗ドメイン名からIPアドレスを引けないnslookupで名前解決テスト
プロキシ・NATの設定ミス社内プロキシで詰まっているプロキシ設定の確認

覚え方:「タイムアウト3兄弟」

接続まわりのタイムアウトは3種類あります。まとめて「つながる・もらう・待つ」で覚えましょう。

名前英語起きるタイミング
接続タイムアウトConnection Timeout接続確立前(ハンドシェイク段階)
読み取りタイムアウトRead Timeout接続後、データを受信待ちの段階
アイドルタイムアウトIdle Timeout接続後、しばらく通信がなかった場合

歴史と背景

  • 1970年代:ARPANETでTCPプロトコルが設計される際、「返事が来なかったらどうするか」の問題が認識され、タイムアウトの概念が生まれた
  • 1981年:RFC 793でTCPが正式に標準化され、再送タイムアウト(RTO: Retransmission Timeout)の仕組みが定義された
  • 1990年代:インターネットの商用普及にともない、Webアプリケーションやブラウザが一般化。「接続タイムアウト」がエンドユーザーにも見えるエラーとして広く認知されるようになった
  • 2000年代以降:クラウド化・マイクロサービス化が進み、サービス間の接続が複雑化。タイムアウト値の適切な設定がシステム設計の重要テーマになった
  • 現在Kubernetes・コンテナ環境では、ヘルスチェックサービスメッシュの設定でタイムアウトが多用され、設定ミスによる障害も増加傾向

接続タイムアウト vs 関連するエラーの比較

エラーメッセージが似ていても、原因は全然違います。受け取ったエラーから「どこが問題か」を見極めるのがポイントです。

タイムアウト・接続エラーの比較マップ 接続タイムアウト Connection Timeout ハンドシェイク段階で 返事が来ない (つながれなかった) 読み取りタイムアウト Read Timeout 接続後、データが 一定時間来ない (つながったが遅い) 接続拒否 Connection Refused サーバーが即座に RSTを返してきた (明示的に拒否) ▼ 起きる場所の違い クライアント ──→ ①接続要求(SYN) ──→ ②応答待ち ──→ ③データ送受信 ──→ 完了 接続タイムアウト ↑ここで詰まる 読み取りタイムアウト ↑ここで詰まる トラブルシュートの順序 ① pingで疎通確認 → ② ポート疎通確認(telnet / nc) → ③ ファイアウォール設定確認 ④ DNS名前解決確認(nslookup) → ⑤ サーバーログ確認 → ⑥ タイムアウト値の見直し

タイムアウト値の目安(実務参考)

シナリオ推奨タイムアウト値備考
社内システム間の接続3〜10秒同一ネットワークなら短めでOK
インターネット越しのAPI呼び出し10〜30秒回線品質に依存
データベース接続5〜15秒DBの起動時間も考慮
ヘルスチェック(監視ツール)2〜5秒短めに設定して早期検知

関連する規格・RFC

規格・RFC番号内容
RFC 793TCPの基本仕様。再送タイムアウト(RTO)の概念を定義
RFC 6298TCPの再送タイムアウト(RTO)の計算方法を規定
RFC 9293TCPの最新統合仕様(RFC 793を更新)

関連用語