接続タイムアウト せつぞくたいむあうと
簡単に言うとこんな感じ!
「電話をかけたのに、ずっと呼び出し音が鳴り続けて誰も出ない」状態だよ!相手のサーバーに「つながせて!」とノックしたのに、一定時間たっても返事がなくて、あきらめた——それが接続タイムアウトなんだ。
接続タイムアウトとは
接続タイムアウト(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 関連するエラーの比較
エラーメッセージが似ていても、原因は全然違います。受け取ったエラーから「どこが問題か」を見極めるのがポイントです。
タイムアウト値の目安(実務参考)
| シナリオ | 推奨タイムアウト値 | 備考 |
|---|---|---|
| 社内システム間の接続 | 3〜10秒 | 同一ネットワークなら短めでOK |
| インターネット越しのAPI呼び出し | 10〜30秒 | 回線品質に依存 |
| データベース接続 | 5〜15秒 | DBの起動時間も考慮 |
| ヘルスチェック(監視ツール) | 2〜5秒 | 短めに設定して早期検知 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 793 | TCPの基本仕様。再送タイムアウト(RTO)の概念を定義 |
| RFC 6298 | TCPの再送タイムアウト(RTO)の計算方法を規定 |
| RFC 9293 | TCPの最新統合仕様(RFC 793を更新) |