私はLDAPクライアントとサーバーの通信でメッセージを分析しており、メッセージの長さの計算方法を理解できません。 LDAP標準に基づくLDAPの長いメッセージ長の表現
、ASN.1で通信するときに各メッセージは0x30
(LDAPメッセージスタート)で始まり、バイトはメッセージ長(又は数又は追従関連バイト)であるべきである以下アップ刚性あります0x2
および0x1
はメッセージIDを通知します。これは明らかです。
短いメッセージでは、それはこのような何かを見ることができます:
0x30 (start),
0x3c (length),
0x2 (msg id..
0x1
0x1 ),
...
長さが0x3c
または12月中に単に60
、およびメッセージの終わりそれまでは、次のバイトの数であるとすると、実際に60でです。
少し長いメッセージは次のようになります。
0x30 (start),
0x81 (???),
0x8e (length),
0x2 (msg id..
0x1
0x1 ),
...
の長さは正確に0x8e
(またはDECでは142
)ですが、前のバイトはどういう意味ですか?
さらに長いメッセージのようになります。0x82
、0x2
または0xe3
もないと
0x30 (start),
0x82 (???),
0x2 (???),
0xe3 (???),
0x2 (msg id..
0x1
0x1 ),
...
(または130
、12月中に2
または227
)実際の長さ(つまり、実際に739である)
私は最後の2つの例の間の論理を見ることができません。コードの長さはどのように表示されますか?
ありがとうございました。私が知りたかったのはそれです。 – toddddos