我想尝试使用 ttcp 发送如下所示的 udp 数据:
echo 12345 | ttcp -tup 123 10.0.0.123
但是当我在 wireshark 中看到实际上在第一个 12345 中发送了 5 个数据包而在其他 1234 中发送了 5 个数据包时,为什么?
答案1
发生以下过程:
程序
ttcp
发送所请求的数据。程序
echo
关闭输入管道。该
ttcp
程序关闭“连接”,发送您看到的额外数据包。
如果您这样做(echo 12345 ; sleep 10) | ttcp ...
,您将看到它发送数据请求,然后 10 秒后关闭连接并发送您看到的额外数据包。
这与在支持 T/TCP 的机器上使用 TCP 时所具有的语义基本相同。发送的第一个数据包将是 SYN,但它也将包含数据(希望它可以建立连接并在单个数据包中发送数据)。如果没有收到回复,它将重新传输。(并且重新传输可能不会包含太多数据,因为成功的机会较低,因此不浪费带宽更有意义。)如果您尝试在超时之前正常关闭连接,它仍会停留,尝试建立连接并发送数据。