为什么 ttcp 重复了我的数据的第一个字节 4 个?

为什么 ttcp 重复了我的数据的第一个字节 4 个?

我想尝试使用 ttcp 发送如下所示的 udp 数据:

 echo 12345 | ttcp -tup 123 10.0.0.123 

但是当我在 wireshark 中看到实际上在第一个 12345 中发送了 5 个数据包而在其他 1234 中发送了 5 个数据包时,为什么?

答案1

发生以下过​​程:

  1. 程序ttcp发送所请求的数据。

  2. 程序echo关闭输入管道。

  3. ttcp程序关闭“连接”,发送您看到的额外数据包。

如果您这样做(echo 12345 ; sleep 10) | ttcp ...,您将看到它发送数据请求,然后 10 秒后关闭连接并发送您看到的额外数据包。

这与在支持 T/TCP 的机器上使用 TCP 时所具有的语义基本相同。发送的第一个数据包将是 SYN,但它也将包含数据(希望它可以建立连接并在单个数据包中发送数据)。如果没有收到回复,它将重新传输。(并且重新传输可能不会包含太多数据,因为成功的机会较低,因此不浪费带宽更有意义。)如果您尝试在超时之前正常关闭连接,它仍会停留,尝试建立连接并发送数据。

相关内容