現在、Icmp プロトコルを試していて、新しいクラスを実装したいと考えていIcmpPacket
ます。ウィキペディアでプロトコルについて読み、MSDN で Icmp による ping に関する記事を見つけました。両方のウェブサイトにいくつかの違いがあるため、少し混乱しています。
ウィキペディアでは、Icmp パケットの構造を次のように定義しています。 1 バイト タイプ 1 バイト コード 2 バイト チェックサム 4 バイト 残りのヘッダー (これが何であれ)
MSDN には、そのようなIcmpPacket
クラスの例 (クラスの抜粋) があります。
public class IcmpPacket {
public byte Type;
public byte SubCode;
public UInt16 CheckSum;
public UInt16 Identifier;
public UInt16 SequenceNumber;
public byte[] Data;
}
最初の 3 つの属性は明確ですが、Identifier
and SequenceNumber
(=> ヘッダーの残りの部分?) はどうですか?
私が受けたもう 1 つの質問は、 を使用してサーバーに ping を実行したい場合、IcmpPacket
本当に必要ですか?と? です。(私のホスティング事業者は、可能な最小の IcmpPacket は約 28 バイトの大きさであると述べたので、とを使用する場合、残りの 20 バイトを で埋める必要がありますか?)Identifier
SequenceNumber
Data
Identifier
SequenceNumber
Data
PS: Icmp の構造を詳しく説明している Web サイトはありますか?