我目前正在试验Icmp协议,我想实现一个新的类IcmpPacket。我在维基百科上读到了这个协议,我还在MSDN上找到了一篇关于使用Icmp进行with的文章。由于两个网站之间的一些差异,我有点困惑。
Wikipedia将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;
}前三个属性是明确的,但是Identifier和SequenceNumber (=> header的其余部分?)
我得到的另一个问题是,如果我想使用IcmpPacket来ping服务器,我真的需要Identifier、SequenceNumber和Data吗?(我的托管人说最小的IcmpPacket大约是28Bytes,所以如果使用Identifier和SequenceNumber,我必须用Data填充剩下的20Bytes吗?)
附言:有没有一个网站可以很好地描述Icmp的结构?
发布于 2012-10-07 18:14:44
标识符和SequenceNumber呢?
?
Identifier和SequenceNumber是对实现有意义的值,用于将回应请求与相应的回应回复进行匹配。RFC 792提供了一个使用它们的建议...
For example, the identifier might be used like a port in TCP or UDP to
identify a session, and the sequence number might be incremented
on each echo request sent. The echoer returns these same values
in the echo reply.如果我想使用IcmpPacket来ping服务器,我真的需要标识符、SequenceNumber和数据吗?
帧中必须存在标识符、SequenceNumber和数据字段...
我的主办者说,最小的标识符大约是28Bytes,所以如果使用IcmpPacket
SequenceNumber,我是否必须用数据填充剩余的20Bytes?
如果他们谈论的是28字节的IPv4数据包,那么最小的数据包必须包括最小的20字节IPv4报头+8字节的ICMP报头。
有没有一个网站可以很好地描述Icmp的结构?
你应该在线阅读RFC 792 ...
https://stackoverflow.com/questions/12730584
复制相似问题