QA@IT
«回答へ戻る

回答を投稿

ご回答いただき、ありがとうございます。

独自にパケットのフォーマットを規定できるのであれば
ご教示いただきました方法等を考えることができるのですが
区切りコードのないデータ長を使用するプロトコルの場合は
一般的にどのように扱われるのでしょうか。

例えば、RADIUSパケットのフォーマットは、
以下のようになっています。

Code: 1オクテット
Identifier: 1オクテット
Length: 2オクテット
Autenticator:16オクテット
Attribute: 任意のオクテット

このパケットのフォーマットでは、「Length」のみでパケット長に合わないパケットは破棄しなければなりません。
(区切りコード等がありません。)

RADIUSは、UDPを使用するのでパケットは一つの塊として送受信されるので、
上記のようなフォーマットでパケットを判断できるというのは理解できるのですが
RADIUSに付随した「RADIUS over TCP」というRFCがあり、
その中で「RADIUSパケットフォーマットに変更はない」と記載されています。

SCTPを使用する方法があるかとは思いますが、TCPで扱うことができればと思っています。

ご回答いただき、ありがとうございます。

独自にパケットのフォーマットを規定できるのであれば
ご教示いただきました方法等を考えることができるのですが
区切りコードのないデータ長を使用するプロトコルの場合は
一般的にどのように扱われるのでしょうか。

例えば、RADIUSパケットのフォーマットは、
以下のようになっています。

Code:         1オクテット
Identifier:   1オクテット
Length:       2オクテット
Autenticator:16オクテット
Attribute:   任意のオクテット

このパケットのフォーマットでは、「Length」のみでパケット長に合わないパケットは破棄しなければなりません。
(区切りコード等がありません。)

RADIUSは、UDPを使用するのでパケットは一つの塊として送受信されるので、
上記のようなフォーマットでパケットを判断できるというのは理解できるのですが
RADIUSに付随した「RADIUS over TCP」というRFCがあり、
その中で「RADIUSパケットフォーマットに変更はない」と記載されています。

SCTPを使用する方法があるかとは思いますが、TCPで扱うことができればと思っています。