我刚刚读到维基百科:
尽管 ICMP 消息包含在标准 IP 数据报中,但 ICMP 消息通常被视为特殊情况,与正常 IP 处理不同,而不是作为 IP 的正常子协议进行处理。
ICMP 有何独特之处?我试图找出运行时它是在 TCP 数据包中还是在 UDP 数据包中使用ping
,但我一直读到它是一种“独特”的协议,无法找到明确的答案。
另外,我在Wireshark 实验室关于 ICMP - ping:
如果 ICMP 发送的是 UDP 数据包(如在 Unix/Linux 中),探测数据包的 IP 协议号是否仍为 01?如果不是,那会是什么?
不是。如果 ICMP 发送的是 UDP 数据包,则 IP 协议号应该是 0x11。
如果 ICMP 发送 UDP 数据包,那么 IP 协议号为什么会不同?
另外,ICMP 不是使用 UDP 吗?它是如何工作的?
答案1
ICMP 有何独特之处?我尝试找出在运行 ping 时它是在 TCP 数据包中还是在 UDP 数据包中使用,但我一直认为它是一种“独特”的协议,因此无法找到明确的答案。
它未在 TCP 或 UDP 数据报中使用。
相反,我们应该这样看待它:
IP 是一个信封。当有人递给我一张纸并告诉我要发往何处时,传输就发生了。我将纸放入信封,在上面写上目的地,然后将其邮寄出去。接收则相反。信封以邮寄方式到达,我从信封中取出并交给下一个人。
请注意,我并不关心邮政部门是如何运作的。可能会有穿着邮政制服的人。可能是专职司机。有人可能会拿走信封并将它们绑在信鸽上。我所关心的只是将纸张放入信封和从信封中取出。
这些论文有多种格式。
- 其中之一只是一张写有文字的白纸。(UDP)。
- 其中一种是带有跟踪号码的纸张(想想:参考您的请求,这是第 2 部分...等等)(TCP)
- 其中一个不是带有文本的信件,而是带有状态消息(ICMP)的信件
每张纸的角落都有一个小标记。这三种纸的标记都不同(这可能是你的独特之处)
如果是标记的 UDP(17 或 0x11),则论文将按如下方式布局:
如果角落里的标记有 TCP(0x06)的符号/值,那么我知道纸张的布局将会如下:
如果我有一个 ICMP 数据报(0x01),我知道布局会有点不同。
但在所有情况下,我都可以检查一个特定位置(所有纸张上的相同位置)并读取一个值。基于此,我知道纸张其余部分的布局。
所有这些价值观都是 每张纸的布局都是独一无二的