読み方 : プッシュフラグ

PSHフラグ【push flag】TCP PSH

概要

PSHフラグとは、TCPパケットのヘッダに含まれる制御フラグの一つで、受信したデータをバッファに蓄積せず即座に上位層のアプリケーションへ引き渡すよう受信側に求めるもの。TCPヘッダの6ビットのコントロールビット領域における3番目のビットに位置する。
PSHフラグのイメージ画像

TCP(Transmission Control Protocol)による通信では、受信したデータをいったんバッファに蓄積し、一定量または一定時間が経過した時点でまとめて上位層へ渡す実装が用いられる場合がある。小さなデータを受信する度に上位層へ通知することによる処理負荷の増大を避けるための仕組みだが、応答の遅延が許されない対話型の通信では不都合が生じる。

PSHフラグが「1」にセットされたパケットを受信した場合、受信側はバッファリングを行わず、その時点で保持しているデータをただちに上位層へ渡すことが求められる。ただし、これは強制ではなく依頼であり、実際の動作はTCPの実装やオペレーティングシステム(OS)の制御に委ねられている。また、再送制御や確認応答といった信頼性制御の動作には影響しない。

主な用途として、SSHやTelnetのようなリモートシェル接続など、キー入力を逐次送受信する対話型アプリケーションがある。送信側はアプリケーションが送出したデータの区切りを示す意図でこのフラグを付与することがあるが、TCPはバイトストリーム型のプロトコルであるため、PSHフラグはメッセージの境界を表すものではなく、データの受け渡しを促す補助的な制御情報として扱われる。

TCPが設計された当初は通信回線や計算資源が限られており、受信データをまとめて処理する実装が一般的であったため、このフラグには一定の意義があった。現在ではコンピュータおよびネットワーク回線の性能が飛躍的に向上し、多くの環境でデータはほぼ即時に処理される。

RFC 793ではこのフラグの使用条件が規定されているが、実際のOSやプロトコルスタック(プロトコル処理を担当するプログラム)の多くはフラグの有無で挙動を変えることなく、実質的に無視している。パケットキャプチャツールでTCPの通信を観察する際にはしばしば目にするが、現代の通信環境においてアプリケーション開発者がその存在を意識する機会は少ない。

(2026.6.10更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。