终止TCP传输的最佳方法



我将数据从我的服务器应用程序转储到我的客户端应用程序块(TCP/IP)。在某些时候,客户端可能希望终止传输并向服务器发出新的请求。完成此任务的快速方法是终止TCP连接,以便转储服务器已经发送并存在于网络上的任何数据。新的连接将处理新的请求/传输,因此不会延迟接收旧的冗余数据。

这是一个可以接受的解决方案吗?

NB:我确实考虑过将块分成更小的大小,由客户端返回消息分隔,但然后你有固定块大小....的问题太小和太多的ack(减慢传输)....

转储冗余数据时仍然有剩余延迟。

有什么我应该知道的想法或标准设计方法吗?TIA

你可以使用两个类似FTP的TCP连接-一个发送控制请求到服务器&其他传输实际数据。如果您希望中止传输,那么只需通过控制通道请求中止。

发送数据块,但不确认。当客户端想要终止传输时,向服务器发送一个取消请求。客户端现在只是丢弃数据块(这些数据块仍在到达)。最终,服务器收到取消请求并停止发送数据。如果你想,你可以让服务器发送一个取消的确认。

这样你就可以用最小的开销获得小块。您可以使用1KB的块,其中包含块大小的块头为4或8字节。这是一个非常小的带宽和延迟开销。

请注意,小块通常不会产生小IP数据包。TCP传输数据。它不关心你的块大小

相关内容

最新更新