首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Icmp协议问题

Icmp协议问题
EN

Stack Overflow用户
提问于 2012-10-04 23:23:10
回答 1查看 481关注 0票数 0

我目前正在试验Icmp协议,我想实现一个新的类IcmpPacket。我在维基百科上读到了这个协议,我还在MSDN上找到了一篇关于使用Icmp进行with的文章。由于两个网站之间的一些差异,我有点困惑。

Wikipedia将Icmp数据包的结构定义为:1字节类型1字节码2字节校验和4字节报头的其余部分(无论这是什么)

在MSDN上有一个这样的IcmpPacket类的例子(类的摘录)

代码语言:javascript
复制
public class IcmpPacket { 
    public byte Type;
    public byte SubCode;
    public UInt16 CheckSum;
    public UInt16 Identifier;
    public UInt16 SequenceNumber;
    public byte[] Data;
}

前三个属性是明确的,但是IdentifierSequenceNumber (=> header的其余部分?)

我得到的另一个问题是,如果我想使用IcmpPacket来ping服务器,我真的需要IdentifierSequenceNumberData吗?(我的托管人说最小的IcmpPacket大约是28Bytes,所以如果使用IdentifierSequenceNumber,我必须用Data填充剩下的20Bytes吗?)

附言:有没有一个网站可以很好地描述Icmp的结构?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-07 18:14:44

标识符和SequenceNumber呢?

Identifier和SequenceNumber是对实现有意义的值,用于将回应请求与相应的回应回复进行匹配。RFC 792提供了一个使用它们的建议...

代码语言:javascript
复制
  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 ...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12730584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档