我有一个需要在服务器和客户端之间传输数据的应用程序。两端都在公司防火墙后面,但它们需要安全通信。我编写了一个 TCP 中继服务器,它可以在 2 个应用程序之间建立通信。
我的问题是 TCP 流的性能现在大大降低了,我想找出原因。我将服务器、客户端和中继的 TCP 接收和发送缓冲区大小设置为 10 MB。性能问题在较大的 RTT 中最为明显,因此我当前的 RTT 为 60 毫秒。一旦进行了初始握手,中继在服务器和客户端之间通过管道传输原始 TCP 流,而无需额外的帧。
我检查了 TCP 窗口大小比例并且设置正确。尝试在wireshark中搜索tcp.analysis.flags
以查看接收窗口是否已满,但从未生成过此类警告。
我该怎么做才能弄清楚为什么性能会这样下降?先感谢您!
以下是我能够使用 Wireshark 收集的一些数据:
- 上传同行:
- [计算窗口大小:10485504]
- [iRTT:0.062404000 秒]
- [飞行中的字节:163200](就在速度下降之前)
- [自上次 PSH 标志以来发送的字节数:217600](就在速度下降之前)
- 下载对等体:
- [计算窗口大小:10485760]
- [iRTT:0.061190000 秒]