SETTINGS_HEADER_TABLE_SIZE and ACK

SETTINGS_HEADER_TABLE_SIZE is used to inform the size of header
table to the other endpoint. Since the size of header table of
the decoder side has to be matched to the one in the encoder
side (otherwise, header table out-of-sync on eviction or
out-of-bound index), the received peer may not want to accept the
larger buffer size due to whatever reason (e.g., resource
constraints or variable buffer size is not implemented, etc).

The HPACK-03 has a text to allow the receiver to choose smaller
values in the acknowledgement, but now SETTINGS with ACK flags
must not have any settings value, the peer is forced to accept
the offer.

The SETTINGS_HEADER_TABLE_SIZE is special among the other
settings. The others affect the receiver's capability, but it can
regulate itself not to use more resources it wants (e.g.,
SETTINGS_MAX_CONCURRENT_STREAMS is informed as 500, but the
receiver only uses 100). For SETTINGS_HEADER_TABLE_SIZE, there is
no way but to just obey the informed value.

Best regards,
Tatsuhiro Tsujikawa

Received on Friday, 18 October 2013 12:32:00 UTC