TCPフォールバック 【TCP fallback】

概要

TCPフォールバック(TCP fallback)とは、ドメイン名IPアドレスの変換などをDNS(Domain Name System)で、DNSサーバからの応答が512バイトを超える場合に通信UDPからTCPに切り替える仕組み。

DNSではクライアントからサーバへ問い合わせを送り、サーバは問い合わせに応じて調べた内容を応答する。このやり取りは通常、トランスポート層プロトコルとしてUDPUser Datagram Protocol)を使用するが、DNSの初期の仕様では一度に応答できる内容は512バイトまでに制限されていた。

512バイトを超える場合、サーバは応答メッセージの制御情報に含まれる「TCビット」(Truncation Bit)をオンに設定し、短く切り詰めた応答を返信する。クライアントはこれを受けてTCPTransmission Control Protocol)で改めて同じ問い合わせを送り、TCPによって応答全体を受け取る。この仕組みをTCPフォールバックという。

TCPフォールバックが発生すると同じやり取りをTCPでやり直さなければならないため応答を得られるまでの時間が長くなる。また、TCPデータ伝送を確実にするため手順が複雑で、UDPによる通信よりもサーバの処理負荷が増大する。

512バイトIPInternet Protocol)の仕様上、UDPデータグラムが分割されずに必ず一度で送信できることが保証された最大サイズであるため、信頼性の低かった古いインターネット環境では必要な制約だったが、現代では通信環境が改善されており、ほとんど意味のない制約となっている。

一方、現代ではDNSによる情報のやり取りは様々な用途で用いられており、長い応答を返す場面も増えている。そこで、1999年に「EDNS0」という拡張仕様が策定され、可能であればUDPで一度に最大65,535バイトまで送受信するよう制限が緩和された。現在ではクライアントサーバの双方がEDNS0での通信に合意すればTCPフォールバックは起こらなくなっている。

(2022.4.15更新)
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる