【问题标题】:Does the reply of PING contain the original data?PING 的回复是否包含原始数据?
【发布时间】:2010-02-16 17:44:27
【问题描述】:

我正在使用 C# Ping 类来 ping 服务器。

如果我使用缓冲区(比如 10240 字节)发送 ping,服务器是否也会返回原始的 10240 字节?

我问这个是因为我正在测量两个端点之间的延迟以及数据大小(以查看数据大小对 Ping 延迟的影响有多大)。

如果我用 10240 字节 ping,服务器会用 10240 字节发回回复,还是只告诉我它收到了,而不是 10240 字节?

【问题讨论】:

  • 感谢您很快回答这个问题

标签: c# ping


【解决方案1】:

icmp 回复应包含所有数据。

请注意,当您发送如此大的数据包时 - 它可能会在 IP 层被分割成碎片 - 这通常会很昂贵。例如TCP 将尝试不发送碎片化的数据包,而是将数据分割成适合 MTU 的段。

【讨论】:

    【解决方案2】:

    它将回显所有数据。见ping: Message format

    【讨论】:

      【解决方案3】:

      来自 rfc 792

      " 回显消息中接收到的数据必须在回显中返回 回复消息。”

      一个icmp数据包可以是10k吗?我怀疑

      【讨论】:

      • 成功时,它必须返回全部数据。它也允许失败。
      猜你喜欢
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      相关资源
      最近更新 更多