TCPという通信の仕組みは、データを順番に、丁寧に届けることを前提に設計されています。 その整然とした流れの中に、ひとつだけ“割り込み”のための仕組みがあります。 それが 緊急ポインタ(Urgent Pointer)領域 です。
緊急ポインタは、TCPヘッダの末尾にある 16ビットのフィールド で、 「この位置から先が緊急データです」と受信側に知らせるために使われます。 ただし、この領域が意味を持つのは URGフラグが1のときだけ。 URGフラグが立つと、受信側はこのポインタを参照し、 通常のデータ処理の順番を一時的に無視して、 指定された部分を優先的に扱います。
かつては Telnet の Ctrl+C のような割り込み操作で使われていました。 ユーザーが「今すぐ中断したい」と入力したとき、 その合図を通常のデータ列に埋もれさせないために、 緊急ポインタが“ここからが急ぎだ”と示していたのです。
現代では、ネットワーク性能の向上やアプリケーション設計の変化により、 緊急ポインタが使われる場面はほとんどありません。 それでもこの仕組みは、TCPが誕生した時代の思想── 「すべてのデータが同じ重さではない」 という考え方を静かに残しています。
緊急ポインタ領域とは、 整然と並ぶデータの列の中で、 どうしても先に通すべき情報の“入口”を示す、 小さくて控えめな位置情報なのかもしれません。
HR