我有一个通过 UDP 传输视频流的应用程序,它完全成功。我将套接字更改为 TCP。当它在几个数据包传输后运行时,接收方发送 RST 并且它停止工作。 (大长度的数据包也很奇怪,在 MTU 为 1400 时从发送方传输到接收方 - 这是什么数据包?)
我检查了接收者和发送者的日志。接收方收到的最后一个数据包有一个大而奇怪的序列号(转储数据包)。它出错,然后应用程序停止。发件人没有发送这样的数据包。这个数据包是从哪里来的?是传输层实现的吗?
当我在每次发送数据包后向发送方添加一个 sleep 时间(0.1 秒)时。该程序在 Wireshark 中没有任何奇怪的大长度数据包或奇怪的序列号的情况下工作但这不是视频的合理解决方案。 你现在有什么建议?可能是什么问题呢?如何分析这个网络?怎么解决?
最佳答案
这不是一个奇怪的长度。这可能是 tcp 卸载。看 ethtool -k 界面。关闭卸载,然后重试。第一个可能无关。这可能是一个应用程序问题。
关于sockets - RST 在通过 TCP 套接字的视频流中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42031219/