IT用語集 › インフラ › BIG-REQUESTS

BIG-REQUESTS

インフラ Svenska → 更新: 2026-10-21

1回のリクエストの上限を256キロバイトから16メガバイトに引き上げたX11拡張。古いサーバが理解する必要のない、長さフィールドの小細工で実現している。

Xのコアプロトコルでは、すべてのリクエストが先頭のヘッダを持ち、その長さは4バイトワード単位で16ビットのフィールドに入る。つまり最大65,535ワード、262,140バイトで、1987年にはそれで十分だった。そこへ画像が登場する。画面サイズの24ビットカラー画像をPutImageで送ると数メガバイトになり、Xlibはそれを黙って短冊状に切り分け、サーバに1枚ずつ描かせていた。1994年のX11R6とともに登場したBIG-REQUESTSは、新しいリクエストBigReqEnable1つでこれを解決する。以後、クライアントは長さフィールドを0にして、本当の長さを入れた32ビットワードを後ろに続けてよい。サーバは受け入れ可能な大きさを返信し、X.Orgでは約16メガバイトである。

巧妙なのは、拡張を持たないサーバはこの形式を目にすることがない(クライアントが先に問い合わせるため)点と、従来のヘッダの形がそのまま保たれる点だ。Xlibは接続開始時に自動で有効化し、XExtendedMaxRequestSizeで新しい上限を、従来のXMaxRequestSizeと並べて報告する。XCBも同様で、それでも大きすぎる分は自分で分割する。同じマシン上の巨大な画像なら、コピーを一切しないMIT-SHMのほうがいまも速い。BIG-REQUESTSは同じリリースのXC-MISC(クライアントに新しいリソースIDを渡す拡張)と一緒に入った。どちらも誰の目にも触れないが、現代のX11クライアントなら起動後1ミリ秒以内に使っている種類の拡張だ。

← 用語集に戻る