Networking ICMP如何在没有传输层的情况下工作

Networking ICMP如何在没有传输层的情况下工作,networking,icmp,Networking,Icmp,我被告知ICMP不涉及TCP、UDP等传输协议。 那么ICMP是如何生成的呢?所以我想确认一件事,看看我的理解是否正确: 假设我想向服务器发送ICMP请求。ICMP消息没有传输头和传输有效负载(数据),是否正确单独的协议层而不是IP层(仅仅因为ICMP包被封装在IP包中),但是正如上面评论中提到的,它是IP层的强>积分部分< /强>。p> 传输层(如TCP或UDP)的任务是从端到端发送数据。但ICMP与数据传输无关,它的工作是帮助路由器确定互联网的形状以及发送数据包的方向 我被告知ICMP不涉及

我被告知ICMP不涉及TCP、UDP等传输协议。 那么ICMP是如何生成的呢?所以我想确认一件事,看看我的理解是否正确:


假设我想向服务器发送ICMP请求。ICMP消息没有传输头和传输有效负载(数据),是否正确单独的<强>协议层而不是IP层(仅仅因为ICMP包被封装在IP包中),但是正如上面评论中提到的,它是IP层的<>强>积分部分< /强>。p> 传输层(如TCP或UDP)的任务是从端到端发送数据。但ICMP与数据传输无关,它的工作是帮助路由器确定互联网的形状以及发送数据包的方向

我被告知ICMP不涉及TCP、UDP等传输协议。那么ICMP是如何生成的呢


您认为所有的数据包都必须有一个传输层的假设也是不正确的

“假设我想向服务器发送ICMP请求。”ICMP不是这样做的。ICMP是IP不可分割的一部分,ICMP请求发送到网络层,而不是应用层。ICMP的最大用途是向主机发送IP错误消息,而不是发出请求。@RonMaupin,因此每个ICMP消息都有传输头和数据?不。ICMP是IP(网络层协议)的一个组成部分。只需阅读RFC;这就解释了。@RonMaupin所以当我们使用ping时,涉及到传输层吗?不,你没有读RFC吗?它解释了ICMP。这不是一个大的或复杂的RFC,这正是ICMP的定义。好的,我似乎更了解ICMP。非常感谢。所以,我只想确认ICMP可以包含传输(traceroute使用UDP)或不包含传输(“Ping”)快速问题。ICMP是否与UDP相同,但不能添加海关信息?(只是一组用于诊断的预定义数字)。谢谢你的澄清。