読み方 : ユーアールジーフラグ / アーグフラグ

URGフラグ【urgent flag】TCP URG

URGフラグとは?

TCPセグメントヘッダに設定される制御ビットの一つで、パケット内に緊急(urgent)処理が必要なデータが含まれていることを受信側に通知するためのもの。TCPヘッダのコードビット領域6ビットのうち最初の1ビットがこれにあたる。
URGフラグのイメージ画像

TCPTransmission Control Protocol)はデータセグメントという小さな単位に分割し、送信順を保ちながら確実に届ける通信プロトコルである。受信側は到着したパケットを順番に処理するのが原則だが、遠隔操作や端末制御のような用途では、処理中のデータに割り込んででも即座に届けたい指示が生じることがある。URGフラグはそうした場面で使われ、受信側に通常のデータとは異なる優先処理を促す。

URGフラグが有効な場合、TCPヘッダ内の「緊急ポインタ」と呼ばれる16ビットの値が同時に参照される。この値はパケット先頭から何バイト目までが緊急データであるかを示しており、受信側はその範囲を通常の受信キューより優先してアプリケーションに渡す。緊急ポインタはURGフラグが立っているときにのみ意味を持つ。

この仕組みはかつてTelnetFTPが利用していたことで知られている。利用者がコマンド実行中にCtrl+Cで中断を指示した場合や、FTPデータ転送中に制御コマンドを割り込ませたい場合などにURGフラグが使われていた。通常のデータストリームが滞っていても、緊急扱いの命令を先に届けることで、迅速に操作を制御できるようにしていたのである。

現在ではURGフラグが使われる機会は少ない。OSやアプリケーションによって実装や解釈にばらつきがあり、動作の一貫性が保証しにくいためである。RFC 6093でも新規アプリケーションへの利用は推奨されておらず、緊急データの伝達には別経路や独自の制御方式が用いられるのが一般的である。また、ファイアウォール侵入検知システムがURGフラグを含むパケットを異常と判断して遮断するケースもあり、過去にはこの処理の差異を悪用した攻撃も報告されている。

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