4.1. Message Header Format (メッセージヘッダーフォーマット)
4.1. Message Header Format (メッセージヘッダーフォーマット)
各メッセージには固定サイズのヘッダーがあります。メッセージタイプによっては、ヘッダーの後にデータ部分がある場合とない場合があります。これらのフィールドのレイアウトを以下に示します。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ +
| Marker |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Marker (マーカー):
この 16 オクテットのフィールドは互換性のために含まれています。これはすべて 1 に設定しなければなりません (MUST)。
Length (長さ):
この 2 オクテットの符号なし整数は、ヘッダーを含むメッセージの全長をオクテット単位で示します。したがって、これにより、TCP ストリーム内の次のメッセージ (のマーカーフィールド) を見つけることができます。Length フィールドの値は、常に少なくとも 19 でなければならず (MUST)、4096 を超えてはならず (MUST)、メッセージタイプによってはさらに制約される場合があります (MAY)。メッセージの後の余分なデータの「パディング」は許可されません。したがって、Length フィールドは、メッセージの残りの部分を考慮すると、必要な最小の値を持たなければなりません (MUST)。
Type (タイプ):
この 1 オクテットの符号なし整数は、メッセージのタイプコードを示します。このドキュメントでは、次のタイプコードを定義しています。
- 1 - OPEN
- 2 - UPDATE
- 3 - NOTIFICATION
- 4 - KEEPALIVE
[RFC2918] は、もう 1 つのタイプコードを定義しています。